news 2026/4/23 16:14:37

基于网络的Modbus TCP通讯控制实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于网络的Modbus TCP通讯控制实践

基于网络的Modbus TCP通讯控制,通过网线连接以太网,本电路板可以控制四路继电器,一路温度,一路湿度,一路烟雾浓度,温湿度测量基于sht30。 通过Modbus TCP上传的上位机或手机app。

最近折腾了一个基于网络的Modbus TCP通讯控制项目,感觉还挺有意思,和大家分享分享。

咱们的电路板主要厉害在啥地方呢?它通过网线连接以太网,就能实现各种控制和数据采集。具体来说,可以控制四路继电器,还能测量一路温度、一路湿度以及一路烟雾浓度,其中温湿度测量是基于sht30传感器。最后这些数据还能通过Modbus TCP上传到上位机或者手机app,方便远程监控和操作。

Modbus TCP通讯基础

Modbus TCP是啥呢?简单讲,它是一种应用层协议,跑在TCP/IP之上,专门用来在不同设备间传递信息。就好比不同设备之间的“语言”,大家都按这个规则说话,就能互相听懂。

在代码实现上,咱们以Python为例,要用到pymodbus库。安装很简单,在命令行里敲pip install pymodbus就行。

硬件连接与初始化

先说说硬件部分,sht30传感器得和咱们的主控板连接好,引脚对应接对。比如数据引脚接到主控板的某个GPIO口,时钟引脚也对应接好。

基于网络的Modbus TCP通讯控制,通过网线连接以太网,本电路板可以控制四路继电器,一路温度,一路湿度,一路烟雾浓度,温湿度测量基于sht30。 通过Modbus TCP上传的上位机或手机app。

在代码里初始化sht30传感器,假设用的是树莓派,代码大概这样:

import smbus # I2C address of the SHT30 SHT30_ADDR = 0x44 # Register addresses CMD_MEASURE_HIGHREP = 0x2C06 bus = smbus.SMBus(1) # 使用I2C总线1 def sht30_init(): bus.write_i2c_block_data(SHT30_ADDR, CMD_MEASURE_HIGHREP[0], [CMD_MEASURE_HIGHREP[1]])

这里初始化了I2C总线,设置了SHT30的地址和测量命令。sht30_init函数就是往传感器写测量命令,准备获取数据。

数据采集与继电器控制

采集温湿度数据的代码接着上面来:

def read_sht30(): data = bus.read_i2c_block_data(SHT30_ADDR, 0, 6) temperature = ((((data[0] * 256.0) + data[1]) * 175) / 65535.0) - 45 humidity = ((((data[3] * 256.0) + data[4]) * 100) / 65535.0) return temperature, humidity

这段代码从传感器读回6个字节的数据,然后根据SHT30的数据手册,把原始数据换算成实际的温度和湿度值。

继电器控制就更简单啦,假设继电器连接到树莓派的GPIO17口,控制代码如下:

import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) def control_relay(state): if state: GPIO.output(17, GPIO.HIGH) else: GPIO.output(17, GPIO.LOW)

这里设置GPIO17为输出模式,control_relay函数根据传入的状态来控制继电器的开和关。

Modbus TCP上传数据

接下来就是重头戏,把采集到的数据通过Modbus TCP上传。

from pymodbus.client.sync import ModbusTcpClient client = ModbusTcpClient('192.168.1.100') # 上位机IP def upload_data(temperature, humidity): if client.connect(): client.write_register(1, int(temperature * 100)) # 把温度数据放大100倍存到寄存器1 client.write_register(2, int(humidity * 100)) # 把湿度数据放大100倍存到寄存器2 client.close()

这里先创建了一个Modbus TCP客户端,连接到指定IP的上位机。upload_data函数把采集到的温湿度数据放大100倍后,写入到Modbus寄存器里,方便上位机读取和处理。

这样一套流程下来,就能实现基于网络的Modbus TCP通讯控制,从硬件的数据采集、设备控制,到数据通过网络上传,整个链路就通啦。无论是通过上位机软件还是手机app,都能方便地监控和控制咱们的设备。希望这篇分享对大家在类似项目上能有点帮助!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 16:44:11

HBuilder X 运行小程序时微信开发者工具没有自动打开mp-weixin文件夹[ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json

HBuilderX 运行小程序时,微信开发者工具提示 app.json 文件内容错误且在项目根目录未找到 app.json。 问题定位 这个报错的本质是:微信开发者工具尝试加载的目录里,没有找到小程序必需的 app.json 文件。可能的原因包括: HBuilder…

作者头像 李华
网站建设 2026/4/23 16:17:30

MedPlan:基于两阶段RAG的个性化医疗AI系统实战案例

MedPlan是基于两阶段RAG的个性化医疗方案生成系统,采用SOAP临床推理流程:第一阶段基于患者主观(S)和客观(O)信息生成评估(A),第二阶段基于评估和原始信息生成方案。系统整合患者历史记录和相似病例参考,通过两步检索机制提升准确性…

作者头像 李华
网站建设 2026/4/22 19:31:29

“超级工作站”的搭建,cpolar可成功内网穿透软件540!

GodoOS 是一款主打集成化的办公平台,它把日常办公所需的核心功能都整合在了一起:不仅能完成 Word 文档编辑、Excel 表格制作、PPT 排版、PDF 阅读等基础操作,还内置了内网聊天、在线白板、思维导图等协作工具,甚至配备了简易浏览器…

作者头像 李华
网站建设 2026/4/20 13:26:13

大数据领域 GDPR 合规性评估方法

大数据领域GDPR合规性评估方法:从"踩雷"到"避雷"的系统指南 一、引入:当大数据撞上"史上最严"数据法 2022年,Meta因"剑桥分析门"后续的GDPR违规被欧盟罚款12亿欧元——这不是个例。同年,…

作者头像 李华