以下是一个使用Python编写的基本的Modbus-RTU通信程序示例:
import serial
from pymodbus.client.sync import ModbusSerialClient
# 设置串口参数
ser = serial.Serial(
port='/dev/ttyUSB0', # 修改为实际的串口设备
baudrate=9600,
bytesize=8,
parity='N',
stopbits=1,
timeout=1
)
# 创建Modbus RTU客户端
client = ModbusSerialClient(method='rtu', port=ser)
# 连接到从机
if client.connect():
print('连接成功')
# 读取从机的保持寄存器
result = client.read_holding_registers(address=0, count=1, unit=1)
if not result.isError():
print('从机返回:', result.registers)
else:
print('读取失败:', result)
# 写入从机的保持寄存器
result = client.write_register(address=0, value=123, unit=1)
if not result.isError():
print('写入成功')
else:
print('写入失败:', result)
# 断开连接
client.close()
else:
print('连接失败')
上述代码使用了pymodbus
库来实现Modbus-RTU通信,首先设置了串口参数,然后创建Modbus RTU客户端,并连接到从机。接下来可以使用read_holding_registers
函数读取从机的保持寄存器,使用write_register
函数写入从机的保持寄存器。最后断开连接。
注意:在代码中需要根据实际情况修改串口参数,并根据从机的地址和寄存器地址进行相应的读写操作。