S7-1200PLC 与温控仪表Modbus RTU通信

硬件:cpu 1214C
目的:通过Modbus RTU协议,实现对温控仪表参数的读写
软件:Portal V14SP1

温控仪表参数地址

根据以下地址,我们来编写一个程序,通过Modbus功能对实际测量温度进行读取操作,对AL-1参数进行读取和写入操作。
实际测量温度的地址1001H为16进制,转换成十进制后为4097
AL-1的地址0001H为16进制,转换成十进制后为1
S7-1200PLC 与温控仪表Modbus RTU通信_第1张图片

硬件接线

根据仪表接线图可知,该温控仪表的3号口为RS485+,将其接到CM1241 RS422/RS485 DB9针3号针脚,4号口为RS485-,将其接到DB9针8号针脚。

S7-1200PLC 与温控仪表Modbus RTU通信_第2张图片温控仪表
S7-1200PLC 与温控仪表Modbus RTU通信_第3张图片RS485模块

硬件组态

1.插入cpu 1214C,添加CM1241 RS422/RS485模块,并更改组态参数
S7-1200PLC 与温控仪表Modbus RTU通信_第4张图片
2.记录下RS485模块的硬件标识符
S7-1200PLC 与温控仪表Modbus RTU通信_第5张图片

软件编程

1.PLC_1作为Modbus主站,在OB1中插入Modbus_Comm_Load 指令和Modbus_Master 指令
调用指令后系统会自动生成背景数据块Modbus_Comm_Load_DB与Modbus_Master_DB

Modbus_Comm_Load指令参数:
PORT:填入之前我们记录的PLC_1的通信模块硬件标识符
BAUD:波特率,组态的时候已经将其设置为9600,需要把温控仪表中的波特率也调整为9600
MB_DB:连接到Modbus_Master_DB的MB_DB

Modbus_Master指令参数
MB_ADDR:填入从站的地址,温控仪表中设置的地址为1
DATA_PTR:数据读取或者数据写入的地址

*MODE与DATA_ADDR参数的组合可以用来选择各种Modbus功能代码,具体组合查询手册可得
S7-1200PLC 与温控仪表Modbus RTU通信_第6张图片
S7-1200PLC 与温控仪表Modbus RTU通信_第7张图片

2.将Modbus_Comm_Load指令的背景数据块Modbus_Comm_Load_DB中的静态变量“MODE”修改为4
该变量MODE默认值为0,需要根据实际组态情况修改成相应的数值
0 = 全双工 (RS232)
1 = 全双工 (RS422) 四线制模式(点对点)
2 = 全全双工 (RS 422) 四线制模式(多点主站,CM PtP (ET 200SP))
3 = 全全双工 (RS 422) 四线制模式(多点从站,CM PtP (ET 200SP))
4 = 半双工 (RS485) 二线制模式
S7-1200PLC 与温控仪表Modbus RTU通信_第8张图片

3.因为RS485属于半双工通信,如果我们需要对Modbus从站进行多个读或写操作,那我们需要采用轮询的方式来实现这个功能,程序如下
S7-1200PLC 与温控仪表Modbus RTU通信_第9张图片

监控测试

1.进入监控界面,调用一遍Modbus_Comm_Load指令,然后开始轮询
2.监控DB3.DBW0,DB3.DBW4,DB3.DBW20这三个变量值
 DB3.DBW4可以实时显示温控仪表的当前温度值
 DB3.DBW4可以实时显示温控仪表AL-1的设定值
 修改DB3.DBW20的数值后,温控仪表AL-1参数也发生相应的变化
S7-1200PLC 与温控仪表Modbus RTU通信_第10张图片

你可能感兴趣的:(S7-1200PLC 与温控仪表Modbus RTU通信)