赞
踩
硬件:cpu 1214C
目的:通过Modbus RTU协议,实现对温控仪表参数的读写
软件:Portal V14SP1
根据以下地址,我们来编写一个程序,通过Modbus功能对实际测量温度进行读取操作,对AL-1参数进行读取和写入操作。
实际测量温度的地址1001H为16进制,转换成十进制后为4097
AL-1的地址0001H为16进制,转换成十进制后为1
1.插入cpu 1214C,添加CM1241 RS422/RS485模块,并更改组态参数
2.记录下RS485模块的硬件标识符
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功能代码,具体组合查询手册可得
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) 二线制模式
3.因为RS485属于半双工通信,如果我们需要对Modbus从站进行多个读或写操作,那我们需要采用轮询的方式来实现这个功能,程序如下
1.进入监控界面,调用一遍Modbus_Comm_Load指令,然后开始轮询
2.监控DB3.DBW0,DB3.DBW4,DB3.DBW20这三个变量值
DB3.DBW4可以实时显示温控仪表的当前温度值
DB3.DBW0可以实时显示温控仪表AL-1的设定值
修改DB3.DBW20的数值后,温控仪表AL-1参数也发生相应的变化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。