pymodbus启动一个简单的modbus tcp client

发布于:2025-09-09 ⋅ 阅读:(20) ⋅ 点赞:(0)

pymodbus启动一个简单的modbus tcp client

文章目录

前言

pymodbus是一个用Python实现的Modbus协议库,支持Modbus RTU、ASCII和TCP/IP通信。它提供了客户端(主站)和服务器(从站)的实现,适用于工业自动化、物联网(IoT)等场景。12

主要功能:

  • 协议支持:兼容Modbus RTU、ASCII、TCP/IP。
  • 同步/异步操作:支持同步和异步(基于asyncio)通信模式。
  • 客户端与服务器:提供ModbusClient(主站)和ModbusServer(从站)的实现。
  • 功能码覆盖:支持常用功能码如读取线圈(Read Coils)、写入寄存器(Write Registers)等。

实现

from pymodbus.client import ModbusTcpClient
import time

# PCL 设备的 IP 地址和端口号
ip_address = "192.168.3.4"
port = 502

# 建立 Modbus TCP 连接
client = ModbusTcpClient(host=ip_address, port= port)

if client.connect():
    print("Modbus TCP client is running...")
    read_bool_data_x = 0
    write_bool_data_x = True
    for i in range(10):
        print("读取和写入循环第 %d 次" % (i + 1))
        slave_address = 1  # 设备的从站地址
        start_address = 300  # 起始地址
        num_registers = 1  # 要读取的寄存器数量
        try:
            read_response = client.read_coils(address = start_address, count = num_registers, device_id = slave_address)
            print(read_response)
            if not read_response.isError():
                read_bool_data_x = read_response.bits[0]
                print("读取的数据: %d", read_bool_data_x)
            else:
                print("读取数据时出错:", read_response)
        except Exception as e:
            print("发生异常:", str(e))

        try:
            write_response = client.write_coil(address = start_address, value = write_bool_data_x, device_id = slave_address)
            print(write_response)
            if not write_response.isError():
                # data = response.registers
                print("写入的数据: %d", write_bool_data_x)
            else:
                print("写入数据时出错:", write_response)
        except Exception as e:
            print("发生异常:", str(e))

        if write_bool_data_x == False :
            write_bool_data_x = True
        else:
            write_bool_data_x = False
        time.sleep(2)
    # 关闭连接
    client.close()
else:
    print("无法连接到设备")

运行程序

"Python312\python.exe" e:/.../modbus_tcp_test/modbus_tcp_client.py
Modbus TCP client is running...

测试

这里使用Mthings作为modbus调试助手。3

请添加图片描述


  1. Modbus协议及基于Python的ModbusTCP客户端实现_python modbus-CSDN博客 ↩︎

  2. python使用pymodbus库进行modbus tcp通信-CSDN博客 ↩︎

  3. MThings MODBUS上位机软件-CSDN博客 ↩︎


网站公告

今日签到

点亮在社区的每一天
去签到