串口调试在CANopen运动控制协议中的应用技术研究

2018-12-14 12:56:22陈家新
自动化与仪表 2018年11期
关键词:字典上位串口

钱 城,陈家新

(东华大学 机械工程学院,上海 201620)

目前,在伺服驱动领域中,PLC变频器控制逐渐被运动控制器驱动器所取代,因此传统的用来调试PLC和变频器的方法已然无法适用。在现今的运动控制系统调试中,往往是通过控制器、驱动器、伺服电机三者联调实现的[1]。然而,各厂家为了自身利益,主推自家一体化产品,使得不同厂家的控制器和驱动器难以直接互换使用,直接增加了研发的难度,拖慢了研发的时间。对此,各厂家通过PC模拟控制主机,通过CAN分析仪发送相关数据给驱动器,从而调试伺服电机。尽管该方法无需专门配备主机调试,降低了一部分成本,但是性能强大的CAN分析仪同样价格不菲,而且使用CAN分析仪进行调试必须保证驱动器的CANopen协议通讯正常。

针对上述调试问题,在此,利用驱动器上闲置的串口资源进行系统开发,驱动器直接通过串口与上位机相连接,将调试命令与调试数据直接通过串口发送。这样不仅无需控制主机的支持,绕开CAN通讯限制,同时不必经常为修改参数而擦除程序重新下载,因此也在一定程度上延长单片机寿命[2]。

1 总体框架

文中首先在STM32F4芯片上实现了CANopen DS402协议从站的运行,进而在从站程序中嵌入了一套基于串口的调试电机的系统。其中,DS402协议从站运行的程序框架如图1所示。

图1 CANopen运动控制协议程序框架Fig.1 Program framework of CANopen motion control protoco

从机程序首先对波特率、中断以及CAN控制器等进行相关初始化,再将设定好的对象字典写入STM32的内存中去,最后初始化CANopen协议栈。根据协议要求,通讯系统首先进入未准备启动状态和预操作状态,完成系统自检之后自动进入取消启动状态。此时,通讯系统可以接收主机的指令,进入准备启动状态、启动状态、允许运行状态和快速停止状态,并能够在这些状态与取消准备状态之间切换。在任何运行状态中,一旦出现故障,就会进入到故障响应状态,并且通过故障状态进入到取消准备状态[3]。

由于在CANopen DS402协议中从机的运行状态复杂,为便于调试,在此利用闲置的串口资源设计了一套调试电机状态的系统,其原理框架如图2所示。

图2 串口调试系统原理框架Fig.2 Principle frame of serial port debugging system

PC端可以通过串口调试工具直接发送命令消息,串口接收到预设的命令之后,会触发定时器中断,导致CANopen主程序暂停,转而执行中断程序。理论上在任何状态下,都可以利用中断程序实现修改CANopen设备的对象字典、切换设备的运行状态等功能,但是为了保证运动控制的安全性,当设备处于允许运行状态的时候,调试功能会被限制在一定的范围内。除了设备的运行状态信息之外,串口也会将从站设备的初始化信息,故障错误信息等发送给上位机,从而使相关人员能更方便地监控设备运行情况、排查错误原因。

2 硬件方案设计

STM32F407ZGT6是意法半导体公司开发的一款32位微处理器。这款芯片拥有非常多的片上外设,在此使用了SRAM,Flash,16位定时器、串口、CAN口等资源[4]。

CAN口的外围硬件电路如图3(a)所示。STM内部具有CAN控制器,因此外接1个CAN收发器就完成了CAN物理层连接。在此,选用TJA1050收发器;在VCC与GND之间增加1个104电容,可以起到滤波,消除高频噪声的作用;在CAN_H和CAN_L之间加上1个终端120 Ω电阻来匹配总线阻抗,以提高数据通信的抗干扰性及可靠行[5]。

由于PC的USB口不遵循TTL电平,因此需要CH340G芯片将USB转换成TTL电平。串口外围电路设计如图3(b)所示。其中,RXD和TXD口分别与STM32的PA9和PA10引脚连接,D+和D-口通过标准的接口与USB相连即可。

图3 硬件相关电路Fig.3 Hardware correlation circuit

3 调试平台程序设计

调试平台使用串口进行通信,串口波特率设为115200,停止位设为1 b,数据位设为8 b,奇偶校验选择无。上位机可以使用任意的串口调试软件。

3.1 调试系统人机交互设计

系统启动后会显示调试的帮助信息,帮助信息中包含2个指令:help和list指令。help指令可以随时获得调试的帮助信息;list指令可以显示当前可用的函数名和列表。

函数中存在常量UART_USE_HELP,其值默认设置为1,这样一旦系统开始运行,帮助信息界面就会显示;如果对帮助系统比较熟悉,可以将其改为0。另外,list中的函数并不是要进入list界面之中才能使用。在系统启动之后,随时可以输入list中的函数进行调用。

3.2 CANopen系统状态显示设计

由于CANopen中运行状态复杂,显示当前的运行状态是非常必要的。系统内部显示流程如图4所示。

图4 显示流程Fig.4 Display flow chart

一旦STM32外设初始化之后,会显示CANopen系统的基本信息。随着CANopen协议栈初始化的完成,节点号、CAN控制器、对象字典以及CANopen各项服务的初始化信息也会在界面上进行显示。在STM32和协议栈初始化时,如果程序发生错误,界面上会显示错误信息,程序也会停止运行。当设备开始运行之后,运行状态只有改变之后才会才上位机上显示。运行状态出现错误会使得设备进入故障响应状态,并不会使程序停止运行,上位机也会及时显示当前的错误信息以及运行状态。

3.3 电机状态参数修改

CANopen DS402协议的运动控制相关参数均保存在对象字典里,因此利用串口对相关的对象字典进行写操作即可修改CANopen运行中的参数。为了方便调试,可用的修改指令都添加在list指令之下,调试人员可以按照list所显示的函数清单通过编写好的函数进行相关参数的修改。文中针对运动控制中一些常用的参数进行了修改程序的编写,可修改的相关参见表1。

表1 常用参数Tab.1 Common parameter

4 系统功能验证

上位机通过串口调试软件与STM32进行串口通讯,实现了初始化显示、人机交互以及修改参数的功能。完成串口程序设置后打开串口,就会进入初始化显示。

4.1 系统初始化显示

初始化显示信息如图5所示。首先显示项目名称,使用人信息以及系统版本号。其次显示初始化节点信息和CANopen各项服务的初始化信息,至此就开始等待主机通讯。在等待主机通讯的同时进行自检,直至设置完成PDO,SDO的通道,从机可对主机命令进行执行与应答操作,状态机也将从未准备启动状态切换到准备启动状态。

4.2 人机交互界面

人机交互界面中help指令和list指令显示的信息如图6所示。在初始化完成之后的任何时间都可以直接使用这2个指令。help指令会呼出帮助界面,方便调试者了解系统的帮助指令;list指令会呼出系统所有可用的函数命令以及调用命令的格式,无需调试人员记住所有调用的函数及其格式。帮助系统并非仅支持这2个指令,使用者还可以按照自己的想法,在程序里定义的结构体变量sys_cmd_tab中,添加帮助指令及其功能。

4.3 电机状态修改验证

修改参数功能是利用STM32的中断,对CANopen程序中对象字典的相关参数进行读写操作,从而达到上位机直接修改进行调试的目的。因此可以通过读取对象字典中相应的参数来对此功能进行验证。

图5 初始化显示信息Fig.5 Initialize display information

图6 人机交互显示信息Fig.6 Human-computer interaction display information

在系统启动之后,利用传统的CAN分析仪通过SDO服务来读取相关对象字典,读取的各参数初始值如图 7(a)所示。

在CANopen协议中,数据位第1个字节为功能码,第2和第3字节为对象字典主索引,第4字节为子索引,之后的4个字节为传输的数据位[6]。因此,由图可见,程序初始化后初值除电机状态、实际转矩、轨迹速度之外全部为0。

在获得初值之后,上位机通过串口调试软件,利用调试系统对相关参数进行修改,修改界面及相关参数值如图7(b)所示。由于CANopen通讯中所有参数为16进制数,因此在输入参数时程序中会将输入的参数值转换为16进制。

修改结束后,通过SDO服务读取电机参数的对象字典,可以发现参数值已经改变成重新设定的值,如图 7(c)所示。

图7 电机控制参数相关值Fig.7 Motor control parameter correlation values

5 结语

针对传统CANopen设备调试繁琐的问题,利用闲置的串口资源,设计了一个小型的调试系统,实现了上位机绕过CANopen服务主机,直接控制从机对电机进行调试,免去以往调试、修改、下载、再次调试的复杂操作。目前,该调试系统已在企业机械臂运动调试中投入应用,缩短了设备调试的时间,提高了工作效率。

猜你喜欢
字典上位串口
开心字典
家教世界(2023年28期)2023-11-14 10:13:50
开心字典
家教世界(2023年25期)2023-10-09 02:11:56
浅谈AB PLC串口跟RFID传感器的通讯应用
特斯拉 风云之老阿姨上位
车迷(2018年12期)2018-07-26 00:42:22
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
我是小字典
正版字典
读者(2016年14期)2016-06-29 17:25:50
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
地矿测绘(2015年3期)2015-12-22 06:27:26