CPU ST30加上SB CM01通讯板,用来和6个带modbus 485的传感器进行通讯,程序应该如何编写,是执行MBUS_CTRL后就执行MBUS_MSG吗?6个modbus通讯,MBUS_CTRL是执行一次还是执行6次?主机查询命令如下所示,应该怎么写
图片说明:
最佳答案
1、
6个站设成不同的从站地址(设备地址);
通讯参数必须是一样的,波特率相同、数据位8位、检验方式相同、停止位1位;
通讯线路手拉手连接;
6个站至少要用 6 MBUS_MSG,用下面轮循的方式写程序。
就你如图的主站请求帧只要填写 MBUS_MSG 指令的相应管脚,帧是由CPU自已组织的。
Slave 从站地址:1
RW 读写请求:0 0 = 读, 1 = 写
Addr 数据地址:40003 图中的00 02H 对应的就是这个地址,
有些仪表存在上、下偏移现象,这个测试一下,或者有 MODSCAN32 可以对其进行验证。
Count 数据个数:7
DataPtr 数据指针:&VB0,读回的数据放到VB0-VB13 这一连续的区域中
Modbus RTU 主站 (最下面有MODBUS RTU 轮循实例)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
2、
S7-200 SMART Modbus RTU通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc347936.html