使用python 进行采集 modbus协议的数据
# -*- coding: utf-8 -*-
import logging
from pymodbus.client.sync import ModbusTcpClient
import struct
from influxdb_client import InfluxDBClient, Point, WritePrecision
from datetime import datetime, timedelta
import time
import json
import paho.mqtt.client as mqtt
import base64
from Crypto.Util.Padding import pad
from Crypto.Cipher import AES
# 配置日志记录
logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler("./getData.log"),
logging.StreamHandler()
])
# 配置 Modbus 服务器的 IP 地址和端口
MODBUS_SERVER_IP = '192.168.0.1'
MODBUS_SERVER_PORT = 502
DEVICE_ID = 1 # 设备地址
# 配置 InfluxDB 连接信息
FLUXDB_URL = "http://192.168.0.1:8086"
FLUXDB_TOKEN = "abcdabcdabcdbacd=="
FLUXDB_ORG = "testOrg"
FLUXDB_BUCKET = "data_bucket"
# 创建 InfluxDB 客户端
fluxdb_client = InfluxDBClient(url=FLUXDB_URL, token=FLUXDB_TOKEN, org=FLUXDB_ORG)
write_api = fluxdb_client.write_api()
# 寄存器信息列表
registers = [
{
"instance_name": "电弧炉水冷炉壁", "name": "电弧炉水冷炉壁冷却水出水温度", "address": 24, "type": "Real",