一、背景

  近期,我需要驱动一款市面上常见的 Modbus RTU 继电器控制模块。如何利用 Python 快速实现对该模块的驱动,已成为当务之急。
▲ 图1 继电器模块

▲ 图1 继电器模块

二、基于PyModbus库的Modbus RTU应用实例

1、介绍

  PyModbus 是一款基于 BSD 开源协议的 Modbus 协议 Python 库,功能强大且全面,实现了 Modbus 协议中约定的所有功能。它不仅支持同步通信,还支持异步通信(如 asyncio、tornado、twisted 等),在保证良好性能的同时,为 Python 开发者在构建 Modbus 协议应用时提供了丰富的功能拓展空间。PyModbus 支持以太网和串行接口来承载 Modbus 协议的物理层传输。如果开发者不使用串行接口(PyModbus 的串行接口实现依赖于 pyserial 库包),那么 python3-pymodbus 库完全不依赖第三方库包,是一款轻量级的库。

2、安装PyModbus

pip install pymodbus
from pymodbus.client import ModbusSerialClient as ModbusClient

3、创建客户端实例

# 创建Modbus客户端
client = ModbusClient(port='COM3', baudrate=9600, timeout=1)# 连接Modbus设备

# 连接Modbus设备要判断是否连接成功
if client.connect():
    print("Modbus设备连接成功")
else:
    print("Modbus设备连接失败")

4、继电器开关控制-05功能码-正常开关

▲ 图2 继电器开关控制

▲ 图2 继电器开关控制

5、继电器脉冲输出-06功能码-可调时间

▲ 图3 继电器脉冲输出

▲ 图3 继电器脉冲输出

6、读取开关量状态-02功能码

▲ 图4 读开关量

▲ 图4 读开关量

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐