利用 python modbus工具实现modbus从站的数据采集,很方便简单。Python Modbus 协议工具目前有下面三种:
pymodbus
MinimalModbus
Modbus-tk
modbus_tk:完整modbus协议栈的实现,支持modbus tcp/rtu{1.提供slave模拟器,即模拟modbus server:502), web-based hmi master支持}
pymodbus:使用twisted实现的modbus完整协议(支持异步通讯)
MinimalModbus:只支持modbusrtu
至于那个更好,可以参考stack overflaw上的一个回答http://stackoverflow.com/questions/17081442/python-modbus-library
Modbus_tk是很简单易用的工具。相关资料查看:https://pypi.python.org/pypi/modbus_tk
Modbsu_tk库使用
execute(slave,功能代码,开始地址,quantity_of_x=0,output_value=0,data_format="",指定长度=-1)
实现数据读与写,用功能码很容易实现。
READ_COILS = 1读线圈READ_DISCRETE_INPUTS = 2读离散输入READ_HOLDING_REGISTERS = 3【读保持寄存器】READ_INPUT_REGISTERS = 4读输入寄存器WRITE_SINGLE_COIL = 5写单一线圈WRITE_SINGLE_REGISTER = 6写单一寄存器WRITE_MULTIPLE_