S7-1200PLC 两台CPU之间Modbus RTU通信

硬件:cpu 1214C
目的:建立两台cpu之间的Modbus RTU通信
软件:Portal V14SP1

Modbus RTU是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,每个从站必须有唯一的地址,从站的地址范围为0 – 247,其中0为广播地址,从站的实际地址范围为1 – 247。
本例中使用的为CM1241 RS422/485模块,将其组态为Mdbus RTU主站时,支持最多与32个Modbus RTU从站建立通信。

RS485接口的接线

西门子Modbus通信使用的是DB9针RS485串行接口
*RS422和RS485其实并没有定义接口标准,具体采用什么接口,接口中使用哪些引脚,完全取决于设备设计生产商自己的定义

CM1241 RS422/RS485模块针脚的定义如下,RS485通信模式下,我们需要用到的针脚为3号和8号针脚

S7-1200PLC 两台CPU之间Modbus RTU通信

硬件组态

1.插入两台cpu 1214C,为两台PLC分别添加CM1241 RS422/RS485模块

S7-1200PLC 两台CPU之间Modbus RTU通信

3.记录下硬件标识符

S7-1200PLC 两台CPU之间Modbus RTU通信
Modbus_Comm_Load指令的PORT参数填入之前我们记录的PLC_1的通信模块硬件标识符
Modbus_Comm_Load指令的MB_DB参数连接到Modbus_Master_DB的MB_DB

Modbus_Master指令参数
MB_ADDR:填入从站的地址,本例中定义从站的地址为2
DATA_PTR:数据读取或者数据写入的地址

*MODE与DATA_ADDR参数的组合可以用来选择各种Modbus功能代码,具体组合查询手册可得
MODE=0 DATA_ADDR=40001 LEN=1,相当于读取从站保持寄存器从地址0开始的一个字的数据
MODE=1 DATA_ADDR=40001 LEN=1,相当于往从站保持寄存器从地址0开始写入一个字的数据

S7-1200PLC 两台CPU之间Modbus RTU通信

3.因为RS485属于半双工通信,如果我们需要对Modbus从站进行多个读或写操作,那我们需要采用轮询的方式来实现这个功能。

S7-1200PLC 两台CPU之间Modbus RTU通信
Modbus_Comm_Load指令的PORT参数填入PLC_2的通信模块硬件标识符
Modbus_Comm_Load指令的MB_DB参数连接到Modbus_Slave_DB的MB_DB

Modbus_Slave指令参数:
MB_ADDR:设定该Modbus从站的地址
MB_HOLD_REG:指定Modbus从站的保持寄存器区域(本例中定义的为DB3中的前10个字)

*从站中Modbus功能代码与PLC输入输出地址的对应关系可查询手册得到,如下图

S7-1200PLC 两台CPU之间Modbus RTU通信

来源:后知,后觉

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月7日
下一篇 2020年2月7日

相关推荐