设备是S7-200 224XP 用port0口与一台压力传感器通信 传感器采用
modbus通信协议,采用modubs中的子集RTU方式,RS485半双工工作方式
传感器串口设置 无效验 8数据位 1停止位 波特率9600 crc校验0xA001
通信格式
1读命令格式 (03功能码)
A发送读命令格式
地址 功能码 数据起始(H) 数据起始(L) 数据个数(H) 数据个数(L) CRC16(L) CRC16(H)
0X01 0X03 0X00 0X00 0X00 0X01 0X84 0X0A
B返回读命令格式
地址 功能码 数据长度 数据(H) 数据(L) CRC16(L) CRC16(H)
0X01 0X03 0X02 0X00 0X01 0X79 0X84
我用的是西门子的标准库
modbus master port0 中的 mbus_ctrl 和mbus_MSG
我的实验指令是这样写的
LD SM0.1
= L60.0
LD SM0.0
= L63.7
LD L60.0
CALL MBUS_CTRL:SBR4, L63.7, 9600, 0, 1000, M2.0, VB10
LD M2.0
= L60.0
LD SM0.6
EU
= L63.7
LD L60.0
CALL MBUS_MSG:SBR5, L63.7, 1, 0, 3, 1, &VB100, M2.1, VB12
通讯报 错误6 也就是
modbus忙于其他通讯
我感觉addr写错了 指令用的不对
是不是要改西门子的标准库啊? 怎么改呢?