前置准备
软硬件参数准备
提前确认以下资源齐备,避免落地卡壳:
- 硬件:1台支持Modbus RTU转TCP的工业串口网关(1路RS485+1网口即可)、RS485通讯线2根、网线1根
- 软件:Python 3.10安装包,直接下载:
https://www.python.org/ftp/python/3.10.12/python-3.10.12-amd64.exe
- 提前向空气净化系统厂家索要:Modbus寄存器地址、数据换算规则
- 提前向文书档案系统服务商申请开通:环境数据录入API接口,拿到API地址、授权Token
第一步:硬件接线与网络配置
按以下步骤操作,不要跳过任何细节:
- 接线:空气净化系统的RS485 A端子接网关A口,B端子接网关B口,绝对不能接反,接好后给网关和净化系统通电
- 修改电脑IP:打开控制面板→网络和Internet→网络和共享中心→更改适配器设置→右键以太网→属性→双击「Internet协议版本4」→手动设置IP为
192.168.1.2,子网掩码255.255.255.0,点击保存
- 网关配置:打开浏览器输入网关默认IP
192.168.1.1(不同品牌网关IP看说明书,默认大多是这个),进入配置页面:
- 将网关IP修改为和文书档案系统同一局域网段的可用IP
- 开启Modbus RTU转TCP功能,端口设置为默认502
- 保存配置,等待网关重启
- 验证网络:将电脑IP改回自动获取,用网线把网关接入局域网,打开CMD执行命令
ping 你的网关IP,显示丢包率0%即为配置成功
第二步:编写对接程序,可直接复制修改
安装依赖
安装Python时必须勾选「Add Python to PATH」选项,安装完成后打开CMD,执行以下命令:
```
pip install pymodbus==2.5.3 flask==2.3.3 requests==2.31.0
```
编写主程序

新建文本文档,复制以下完整代码,按注释替换成你自己的参数后,保存为purify_doc_connect.py:
```
from pymodbus.client import ModbusTcpClient
import requests
import time
替换成你的实际配置,直接修改-
GATEWAY_IP = "192.168.0.100" 改你配置好的网关IP
GATEWAY_PORT = 502 Modbus TCP端口,默认502不用改
PM25_REG_ADDR = 100 改厂家给的PM2.5寄存器地址
TEMP_REG_ADDR = 101 改厂家给的温度寄存器地址
DOC_SYSTEM_API = "http://你的文书档案系统地址/api/addEnvData" 改你拿到的API地址
DOC_SYSTEM_TOKEN = "你的接口授权token" 改你拿到的授权token
REPORT_INTERVAL = 60 上报间隔,单位秒,默认1分钟不用改
--
读取空气净化系统数据
def read_purify_data():
client = ModbusTcpClient(GATEWAY_IP, port=GATEWAY_PORT)
conn = client.connect()
if not conn:
return None
pm25_raw = client.read_holding_registers(PM25_REG_ADDR, 1).registers[0]
temp_raw = client.read_holding_registers(TEMP_REG_ADDR, 1).registers[0]
client.close()
默认换算规则,和厂家给的规则不一样就修改这里
pm25 = round(pm25_raw / 10, 1)
temperature = round(temp_raw / 10, 1)
return {"pm25": pm25, "temperature": temperature, "device": "档案库房净化系统"}
上报数据到文书档案系统
def report_to_doc(data):
headers = {
"Authorization": f"Bearer {DOC_SYSTEM_TOKEN}",
"Content-Type": "application/json"
}
try:
res = requests.post(DOC_SYSTEM_API, json=data, headers=headers, timeout=10)
return res.status_code == 200
except:
return False
if __name__ == "__main__":
while True:
env_data = read_purify_data()
if env_data:
report_to_doc(env_data)
time.sleep(REPORT_INTERVAL)
```
第三步:配置开机自启动,保证持续运行
Windows服务器部署
- 新建文本文档,输入内容
python C:\你的代码存放路径\purify_doc_connect.py,保存后将后缀名改为start.bat
- 按Win+R弹出运行框,输入
shell:startup回车,打开开机启动文件夹,将start.bat的快捷方式复制进去
- 双击运行start.bat,没有报错即为配置成功
Linux服务器部署
新建文件purify-connect.service,复制以下内容:
```
[Unit]
Description=档案净化数据对接服务
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/python3 /root/purify_doc_connect.py
Restart=always
[Install]
WantedBy=multi-user.target
```
将文件放到/etc/systemd/system/目录,执行以下命令:
```
systemctl daemon-reload
systemctl enable purify-connect.service
systemctl start purify-connect.service
```
执行systemctl status purify-connect.service,显示active (running)即为成功。
第四步:验证对接结果
- 打开文书档案系统的环境监测查询页面,查看是否显示最新的PM2.5、温度数据
- 如果没有数据,按顺序排查:①网关IP是否能ping通 ②防火墙是否开放502端口 ③寄存器地址、API地址、Token是否填写正确
- 连续观测24小时,数据稳定上报即为对接完成,整个项目落地结束。