CANopen是一种架构在CAN(控制局域网路)上的高层通讯协定,包括通讯子协定及设备子协定常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。
MOTEC 智能步进驱动器集成了CANopen协议,方便用户通过各种上位机(PLC、HMI或其它运动控制器)通讯。MOTEC 智能步进驱动器采用集成CAN芯片进行CANopen通讯,使用此功能可驱动MOTEC 智能步进驱动器、变更参数以及监视MOTEC 智能步进驱动器状态等多项功能。
本例中,使用的是集成了CANopen的施耐德电气PLC TW238LFDC24DT来控制MOTEC SD388B步进驱动器,由于对于施耐德PLC来说,没有集成对于非施耐德电气品牌的通用伺服驱动器和步进驱动器的DS402协议的控制,所以我们通过DS301内规范的SDO来实现对驱动器的通信。
1、创建工程
本例中使用逻辑梯形图的方式编程
创建完成的界面如下
2、添加SD388B的EDS文件
点击菜单栏的工具—>设备库来添加SD388B的EDS文件,安装后的EDS文件可以在
里面找到。
3、添加CANopen主站和SD388B的从站,如下图
4、设置SD388B的PDO映射,本例使用的是SDO来控制,因此将RPDO的映射去掉。如图
5、设置好波特率和同步报文等参数后,编写程序www.cechina.cn,使用CIA405库集成的SDO通信来读写驱动器内的内容,如图
编写完成的程序如下
用户可以在www.motec365.com上下载到相关的程序。
6、程序调试
本例中,使用在线调试的方式,用来调试速度控制和位置控制,
A、速度模式控制:
通过CANopen使用速度模式控制,需要至少两个功能块:
1)、将当前的控制模式设置成速度控制方式,即将6060h索引,00h子索引中的内容改成3;
2)、设置匀速运动的转速,即向60FFh索引,00h子索引中写入当前运行的转速。
如图中,设置velocity_Mode_Change为3,设置velocity_value为5*256,即1280rpm;
使用在线调试给velocity_ModeEN一个上升沿CONTROL ENGINEERING China版权所有,那么电机会匀速转动,转速为60FFh内设定转速。如下图
电机启动以后如图
3)、可以通过将目标速度设置成0或者将控制字6040h的第8位写1,
4)、用户如果需要设定其余参数控制工程网版权所有,例如加速度,减速度,电机电流等参数,请参见用户手册和EDS文件里面定义的内容。
B、位置模式控制:
通过CANopen使用速度模式控制,需要至少三个功能块:
1)、将当前的控制模式设置成位置控制方式,即将6060h索引索引中的内容改成1;
2)、设置位置控制的运动距离,即将运行距离写入607Ah索引中;
3)、向控制字6040h中写入启动位置控制的指令,本例中做相对运动位置控制控制工程网版权所有,即向6040h中写入0x005F;
4)、本例中,添加了做位置控制时最大转速的设定,即向索引6081h中写入设定的位置控制的最大转速。
整个数据写入值如下
设置position_Mode_Change(6060h)为1,设置position_value(607Ah)为0x000A0000,设置position_max_velocity_value(6081h)为0x00500,设定position_GO_Start(6040h)为0x005F;
给position_ModeEN一个上升沿,直接启动程序,如图
5)、如果需要停止当前运行,只需要将6040h的第八位设置成1,如图
6)、用户如果需要设定其余参数控制工程网版权所有,例如加速度,减速度,电机电流等参数,请参见用户手册和EDS文件里面定义的内容。
注意:为了方便用户监控调试www.cechina.cn,本例中使用在线模拟的方式,仿真监控PLC的动作和设定参数,用户可以使用赋值语句来对相关的变量进行操作。
注意:由于本例使用SDO操作,如需使用PDO操作,请详见《MOTEC网络步进驱动器CANopen操作手册》的 附录B MOTEC驱动器CANopen操作流程示例一节。