pymodbus启动一个简单的modbus tcp server
前言
pymodbus是一个用Python实现的Modbus协议库,支持Modbus RTU、ASCII和TCP/IP通信。它提供了客户端(主站)和服务器(从站)的实现,适用于工业自动化、物联网(IoT)等场景。12
主要功能:
- 协议支持:兼容Modbus RTU、ASCII、TCP/IP。
- 同步/异步操作:支持同步和异步(基于asyncio)通信模式。
- 客户端与服务器:提供ModbusClient(主站)和ModbusServer(从站)的实现。
- 功能码覆盖:支持常用功能码如读取线圈(Read Coils)、写入寄存器(Write Registers)等。
实现
from pymodbus.server import (
StartTcpServer,
)
from pymodbus.datastore import (
ModbusSequentialDataBlock,
ModbusServerContext,
ModbusDeviceContext,
)
datablock = ModbusSequentialDataBlock.create()
context = ModbusDeviceContext(
di=datablock,
co=datablock,
hr=datablock,
ir=datablock,
)
single = True
# Build data storage
store = ModbusServerContext(devices=context, single=single)
if __name__ == '__main__':
address = ("127.0.0.1", 502)
StartTcpServer(
context=store, # Data storage
address=address
)
运行程序
"Python312\python.exe" e:/.../modbus_tcp_test/modbus_tcp_server.py
Modbus TCP server is running...
测试
这里使用Mthings作为modbus调试助手。