Modbus-TCP 通过 WIFI 远程控制IO口
[远程IO模块购买链接](Profinet远程IO模块总线分布式16DI16DO支持西门子PLC12001500200-淘宝网 (taobao.com))
本测试购买的型号为HJ3202N。
使用方式:
- 输入电压10-30V
- 使用网线将网口与路由器连接
- 连接好IO口
Modbus-RTU
该协议是给rs485等有线连接使用的。
[图文详解Modbus-RTU协议](图文详解Modbus-RTU协议 - 极术社区 - 连接开发者与智能计算生态 (aijishu.com))
Modbus-TCP
软件配置:
打开配置软件,配置好Modbus-TCP地址,设定静态IP 关闭DHCP服务器。
ProfinetIO界面配置好 TCP端口 502 地址0 打开Modbus-TCP控制。地址一定要配置成0才能直接使用 python 的库。
## 安装python modbus模块
pip3 install pymodbus
from pymodbus.client.sync import ModbusTcpClient
import time
def shift(lst,k):
return lst[k:] + lst[:k]
client = ModbusTcpClient('192.168.1.98')
## 得到数字量输入
result = client.read_discrete_inputs(1000, 8)
print(result.bits)
contorl_lst = [True,False,False,False,False,False,False,False]
while True:
## 循环流水灯控制
client.write_coils(0, contorl_lst)
contorl_lst = shift(contorl_lst,1)
time.sleep(2)
得到结果: