西门子1200 modbus RTU 程序
时间: 2023-11-01 16:06:40 浏览: 139
西门子1200ModbusRTU示例
以下是西门子1200 PLC通过Modbus RTU通信的程序示例,仅供参考:
```
ORG 0
LD M100
OUT I0.0
COMINIT:
MOV #9600,AR1
MOV #1,AR2
MOV #0,AR3
MOV #0,AR4
CALL "UART_INIT"
MOV #0,AR1
MOV #100,AR2
MOV #0,AR3
MOV #0,AR4
CALL "TIMER_INIT"
MAIN:
MOV #1,AR1 ;modbus功能码,读取线圈状态
MOV #0,AR2 ;读取起始地址,低8位
MOV #10,AR3 ;读取起始地址,高8位
MOV #0,AR4 ;读取数量,低8位
MOV #2,AR5 ;读取数量,高8位
CALL "MODBUS_SEND"
MOV AR1,B0 ;读取modbus返回码,存储在B0中
CMP #0,B0 ;判断modbus返回码是否为0
JNE ERROR ;如果不为0,则跳转到ERROR标签
MOV B2,M100 ;将modbus返回值存储在M100中
INC M100 ;将M100的值加1
WAIT #100 ;延时100ms
JMP MAIN ;无限循环
ERROR:
MOV #0,M100 ;如果读取失败,将M100的值设置为0
WAIT #100 ;延时100ms
JMP MAIN ;无限循环
```
此程序使用了MODBUS_SEND函数来发送Modbus RTU请求,该函数需要在PLC中进行定义。请注意,此程序仅供参考,实际应用时需要根据具体情况进行修改和调整。
阅读全文