资讯 > 正文

施耐德电气PLC通过CANopen的SDO报文控制SD388B

发布时间:2015-03-20 作者:www.cechina.cn

  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、设置好波特率和同步报文等参数后,编写程序,使用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一个上升沿,那么电机会匀速转动,转速为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文件里面定义的内容。
  注意:为了方便用户监控调试,本例中使用在线模拟的方式,仿真监控PLC的动作和设定参数,用户可以使用赋值语句来对相关的变量进行操作。
  注意:由于本例使用SDO操作,如需使用PDO操作,请详见《MOTEC网络步进驱动器CANopen操作手册》的 附录B MOTEC驱动器CANopen操作流程示例一节。

标签:CANopen,通讯协定,CAN,步进驱动器,PLC,施耐德电气

相关文章