我有两个以菊花链方式连接在一起的 Moxa modbus,然后连接到我网络的以太网端口。modbus 连接到控制板上,控制板上带有用于线圈的 LED 灯和用于数字输入的按钮。
我已经将 modbus 设备设置为具有静态 IP 地址,并且可以从树莓派连接到它。我可以使用以下代码打开和关闭 LED,但仅适用于 Modbus A。我似乎无法访问另一个 modbus 单元,而且我不知道该设备的单元 ID(我如何获得它?)
import time
import logging
logging.basicConfig()
log = logging.getLogger()
log.setLevel(logging.DEBUG)
from pymodbus.client.sync import ModbusTcpClient as ModbusClient
client = ModbusClient('10.x.x.x1', port=502)
client.connect()
def powerOn():
for i in range(3):
client.write_coil(i, True, unit=0x0)
client.read_coils(i, 1, unit=0x0)
time.sleep(1)
def powerOff():
for i in range(3):
client.write_coil(i, False, unit=0x0)
client.read_coils(i, 1, unit=0x0)
time.sleep(1)
powerOn()
powerOff()
client.close()
Modbus 寻址的设置方式如下。使用左上角的“启用 Modbus/TCP 从站协议”。但是,我不完全确定如何阅读这些数字并将它们应用于 RBP,所以有人可以在正确的方向上给我一些指导来访问奴隶和主人吗?