你的位置: 首页> 工业控制> 工业控制

西门子S7-1500PLC MODBUS通讯案例

2024-04-08 02:33:30 |人围观 | 评论:

MODBUS MASTER:
先组态 硬件,如下所示:

b16fc9ca-ee17-11ed-90ce-dac502259ad0.png
然后打开OB1,进行编程,如下所示:
先调用初始化的块 MODBUS COMMONLOAD

b17b19a6-ee17-11ed-90ce-dac502259ad0.png
管脚说明:
REQ: 指令起始于上升沿(0 到 1)。
PORT: 安装并组态完 CM 后,便可在设备组态的“硬件ID”(Hardware ID) 属性中找到 CM端口值。符号端口名称在PLC变量表的“系统常数”(Systemconstants) 选项卡中指定。就是前面提到的硬件标识符
BAUD: 选择数据传输速率:
1 = 300, 2 = 600, 3= 1200, 4 = 2400, 5 = 4800, 6 = 9600, 7 = 19200, 8 = 38400, 9 = 57600, 10 =76800, 11 = 115200 bit/s。所有其它值无效。
PARITY: 选择奇偶校验:
· 0 – 无
· 1 – 奇校验
· 2 – 偶校验
RESP_TO: 响应超时:
5 ms 到 65535 ms - Modbus_Master 等待从站响应的时间(以毫秒为单位)。如果从站在此时间段内未响应,Modbus_Master 将重复请求,或者在指定数量的重试请求后取消请求并提示错误(请参见下文,RETRIES参数)。
MB_DB:用MODBUS MASTER的背景数据块里面的一部分,如下所示:
对 Modbus_Master 或Modbus_Slave 指令的背景数据块的引用。必须以 Modbus_Master 或 Modbus_Slave 指令的 MB_DB 参数替换 MB_DB 参数(静态,因此在指令中不可见)。

b195613a-ee17-11ed-90ce-dac502259ad0.png
然后调用MODBUS MASTER 的功能块,如下所示:

b1aa5f4a-ee17-11ed-90ce-dac502259ad0.png
管脚说明如下所示:
REQ;是脉冲信号,给一次脉冲,收发一次
MB_ADDR:是从站地址
MODE:读写模式,0是读,1是写
DATA_ADDR:对应功能码
LEN:数据长度
DATA_PRA:接收或发送的存储区域
上述是模式和功能码的对应关系
除上述做法,还需要设置一个地方:
打开MODBUS COMMON LOAD的背景数据块,如下所示:

b1b48cd6-ee17-11ed-90ce-dac502259ad0.png

b1ce900e-ee17-11ed-90ce-dac502259ad0.png
将MODE 设置成4
上述是主站的总结
接下来说一下从站的设置:
前面参数和主站是一样的,就是调用MODBUS SLAVE需要说明一下:

b1d9d7ca-ee17-11ed-90ce-dac502259ad0.png
MB_ADDR: MODBUS 的从站地址
MB_HOLD_REG:这对应的是40001的功能码
例如00001的功能码对应的是 Q0.0
10001 ------I0.0
30001-------IW0
其余和主站设置一样.
编辑:黄飞





标签: [db:tags]