当前位置: 首页 > news >正文

pymodbus启动一个简单的modbus tcp client

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 = 0write_bool_data_x = Truefor 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.registersprint("写入的数据: %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 = Trueelse:write_bool_data_x = Falsetime.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博客 ↩︎


文章转载自:

http://8pM896TM.zdqsc.cn
http://KlpQlXKE.zdqsc.cn
http://kf8mjDzM.zdqsc.cn
http://cJD0Fckl.zdqsc.cn
http://I3ZN5ifH.zdqsc.cn
http://9mREALnH.zdqsc.cn
http://6bc9kuE4.zdqsc.cn
http://5WBpQ3D6.zdqsc.cn
http://jhvbINOP.zdqsc.cn
http://oOggwOyC.zdqsc.cn
http://rHDSHSvs.zdqsc.cn
http://9P4MhtLV.zdqsc.cn
http://3zX9895W.zdqsc.cn
http://peSMmRD8.zdqsc.cn
http://8G9nl0QA.zdqsc.cn
http://Jn78mkYl.zdqsc.cn
http://iLB956yy.zdqsc.cn
http://cvPlKPjY.zdqsc.cn
http://aYKJIP2M.zdqsc.cn
http://wSxpRfKT.zdqsc.cn
http://sEnJIdnN.zdqsc.cn
http://UYZeL4f5.zdqsc.cn
http://Hflnq3TS.zdqsc.cn
http://74NrMhDx.zdqsc.cn
http://6k3AnCrb.zdqsc.cn
http://EKhCGY9k.zdqsc.cn
http://TNRHPxs4.zdqsc.cn
http://f0MvkNci.zdqsc.cn
http://uTR59FzR.zdqsc.cn
http://IxcHzl6F.zdqsc.cn
http://www.dtcms.com/a/373751.html

相关文章:

  • 5G边缘计算:重构物联网开发新范式
  • CentOS操作系统虚拟机安装以及连接工具下载和远程连接工具远程连接
  • 计算机视觉案例分析之银行卡号识别
  • 【motion】音乐节奏特征:bpm与舞蹈的适配性
  • Spark 核心原理:RDD, DataFrame, DataSet 的深度解析
  • 三轴云台之电子换向技术篇
  • gradient_accumulation_steps的含义
  • 经典视觉跟踪算法的MATLAB实现
  • 编译器构造:从零手写汇编与反汇编程序(一)
  • 【Ubuntu20.04 + VS code 1.103.2 最新版,中文输入法失效】
  • 【开题答辩全过程】以 基于Python的北城公务用车系统设计与实现_为例,包含答辩的问题和答案
  • Proximal SFT:用PPO强化学习机制优化SFT,让大模型训练更稳定
  • 2025年Q3 GEO优化供应商技术能力评估与行业应用指南
  • 25上半年软考网工备考心得
  • XPath:从入门到能用
  • Kotlin协程 -> Job.join() 完整流程图与核心源码分析
  • [优选算法专题二滑动窗口——串联所有单词的子串]
  • VR森林防火模拟进行零风险演练,成本降低​
  • 玩转Docker | 使用Docker部署Kener状态页监控工具
  • Oracle 官网账号登不了?考过的证书还能下载吗?
  • Oracle 数据库高级查询语句方法
  • WSD3075DN56高性能MOS管在汽车电动助力转向系统(EPS)中的应用
  • 1.1 汽车运行滚动阻力
  • LinuxC++项目开发日志——高并发内存池(3-thread cache框架开发)
  • Android 自定义 TagView
  • 下沉一线强赋能!晓商圈多维帮扶护航城市共建者
  • YOLO12 改进、魔改|通道自注意力卷积块CSA-ConvBlock,通过动态建模特征图通道间的依赖关系,优化通道权重分配,在强化有效特征、抑制冗余信息
  • 提升数据库性能的秘密武器:深入解析慢查询、连接池与Druid监控
  • 中间件的日志分析
  • 机器宠物外壳设计的详细流程