黄工无刷电机学习
直播中

陈飞

8年用户 1249经验值
私信 关注
[问答]

LXM32伺服驱动器与西门子PLC是怎样进行Profibus通信的

LXM32伺服驱动器与西门子PLC是怎样进行Profibus通信的?有哪些操作流程?

回帖(1)

姜钰

2021-10-9 09:29:43
  1、硬件连接
  ① 需要用到西门子的Profibus通信连接头,通信电缆。需要注意,两端的接线口均为A1B1输入口,两端的DP头开关置为ON,打开终端匹配电阻;中间所有的连接头开关置为OFF,连接完成后,用万用表检查,两端的3和3针脚可以导通,针脚8和8之间也能导通。两端的同一个连接头,针脚3和针脚8之间的电阻为220欧姆。
  ②用schneider伺服调试软件SOMOVE,连接伺服驱动器,设定通讯参数及其伺服电机各种性能的参数
  用调试线连接SOMOVE时需要注意,选择communicationàEdit Connect/scanàModbus Serialà右边高级设置;如下图,COM port要和所选端口一致,波特率选择19200
  
  ③DEVcmdinterf参数选择Fieldbus Control Mode,PBaddress和PLC中组态要对应
  
  2、PLC硬件组态
  ①在西门子300cpu的硬件组态上,组态好施耐德伺服驱动器。首先就是安装它的GSD文件,配置profibus的通讯参数和DP地址。
  
  ②在硬件组态画面,profibus-Additional Field Decives-驱动器-schneider-选择需要控制的报文。此处选择的报文为第一种。注意I和Q的地址。
  
  3、PLC程序编写
  ①选项—》全局库—》恢复库(导入LXM32库文件,没有的关注施耐德公众好,找人工服务要,版本要与所使用的PORTAL软件一致,此处选择SE_Motion_LXM32_V1005)。
  ②在左侧的设备视图中,PLC数据类型—》添加数据类型。在SE_Motion_LXM32_V1005_V14中选择Axis_Ref_LXM32以及DataSet_LXM32两种数据结构,导入后需要编译。
  
  ③添加数据块DB1,数据类型选择Axis_Ref_LXM32
  添加数据块DB2,数据类型选择Array[1,2200]of Word(目前还不知道有什么用)
  添加数据块DB3,名称添加dataRead,dataWrit,数据类型均选择DataSet_LXM32。
  ④添加OB100,在该OB快中进行初始化。DPAddress为DP地址,和组态时的PBaddress对应;InputAdrModul为输入起始地址,和组态时的I地址对应;OutputAdrModul为输出起始地址,和组态时的Q地址对应。
  
  4、驱动器各模块的使用
  ①有个英文参考手册可以参考,购买的时候施耐德一般都会给的
  
  注意,Init在在数据块DB1中,选择Init后选择其中的一位即可,各功能块不要重复。
  ②然而施耐德的大多数功能块都是需要脉冲驱动的,当程序比较复杂的时候,一般就需要把和硬件接口相关联的代码放到时间中断循环中(如OB35),这样使用梯形图编程就比较困难,下面就说一下怎样使用和C语言比较接近的SCL语句来对伺服电机进行控制,速度控制如下
  
  其中,Low_m_move为控制电机启动的变量,Low_m_busy为电机是否在运行的变量,#volecity_on为临时变量
  在其它的FC块中,我们可以这样控制电机运动
  
  按向上的按钮电机正转,按向下的按钮电机反转,Low_m_move取反说明:如果只发一次脉冲的话,中断程序可能检测不到,所以如果电机没有动作的话,就多发几个吧
  5、相对位置运动模块
  循环中断中的程序
  
  在FC块中的程序
  
  这段代码实现正转10圈,10圈结束后反转15圈,达到一个开机后模块自检的功能
  6、总结
  由于本人也是第一次使用PLC,第一次使用施耐德LXM32系列伺服电机,网上资料比较少,所以自己慢慢摸索出来的。可能会有缺陷,但能用。人又比较懒,既不想做,也不想做的很好。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分