一、硬件准备
以下以 CPU1215C DC/DC/DC和CM1241 RS485 模块为例,介绍S7-1200 Modbus RTU 主站通信控制汇川IS620P系列伺服驱动器的组态及编程步骤。
二、伺服驱动器通信参数设置
功能码
名称
设定值
出厂值
备注
H00-00
电机编号
14101
14000
H03-10
DI5端子功能选择
0
1
取消输入端子DI5的默认伺服使能功
能,以便使用通信VDI控制伺服使能
H05-00
主位置指令来源
2
0
修改成多段位置指令
H05-02
电机每旋转1圈的位置指令数
10000
0
H0C-00
驱动器轴地址
9
1
H0C-02
串口波特率设置
2
5
H0C-09
通信VDI
1
0
H0C-26
MODBUS通信数据高低位顺序
0
1
H11-04
位移指令类型选择
1
0
绝对位移指令
H17-00
VDI1端子功能选择
1
0
伺服使能
H17-02
VDI2端子功能选择
28
0
多段位置指令使能
参数修改完成后,需要重现上电,修改H02-01为1,重启伺服驱动器,否则驱动器上电后需要进行原点复归确认机械原点,断电后无位置记忆。若报警731,则将H0D-20设置为1,然后重新上电重启,若报警ER994,则表示通讯地址冲突。
三、S7-1200PLC的程序编写
1、plc硬件组态和相关指令的详细介绍请参考以下链接(西门子官方技术文档)
http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/SmartSMS/016.html
在西门子1200plc中Modbus RTU通信指令有两个版本,在这里使用的是旧版本指令
通信参数的设置只需主站和从站一致即可,如果觉得在伺服驱动器处修改比较麻烦,也可以从plc的组态中进行修改,为了参考官方技术文档资料,本例从伺服驱动器修改通信参数
2、完成硬件组态之后,按如下方式添加通信数据块
3、右键数据块图标→点击“属性”→“属性”→去掉“优化的块访问”的“√”
4、双击打开刚添加的伺服控制数据块,在数据块中添加如下变量并编译
5、添加“MB_COMM_LOAD”指令组态端口使用 Modbus RTU 协议来通信
注意:要组态 Modbus RTU 的端口,必须调用“MB_COMM_LOAD”一次。完成组态后,“MB_MASTER”和“MB_SLAVE”指令可以使用该端口。如果要修改其中一个通信参数,则只需再次调用“MB_COMM_LOAD”。每次“MB_COMM_LOAD”调用将删除通信缓冲区中的内容。为避免通信期间数据丢失,应避免不必要地调用该指令。
6、添加如下指令,当按下i0.0时,读取当前位置并将数值存入DB块中的编码器反馈值,功能码首地址H0B-58(指令首地址计算:16进制0B00改为10进制2816