opc采集到mysql_OPC实时数据发布到MQTT及存储MySQL数据库

工厂的生产过程中,经常会出现传感器断线、控制器掉电或故障等意外情况,有些关键的部件在发生此类情况时,厂区调度员及管理者应该第一时间明确它的故障信息,从而采取对应的处理措施,以减少工厂生产线的停工时间,减少企业损失。So....... 很多做智能工厂OT or IT系统集成的人士提出一些需求和构想,那就是:

(1) 我想知道我的MES获取数据源的各个OPC服务器(包括OPC DA 和 OPC UA)的运行状态;

(2) 我想知道每个OPC服务器中点位的状态,以及坏点的比例;

(3) 我想知道哪些传感器数据在变化,哪些数据一直不变,以及各占多少比例;

(4)我想知道每个点位的实时值,并且能够通过多种方式获取到。

因此,针对OPC数据采集和分析的软件对这些需求进行了开发,并提供多种方式的输出,如MQTT/SQL等,方便用户及时了解现场设备和节点的状态。

OPC-MQTT-MySQL软件功能特性:

(1)OPC服务器的连接及状态监测:检测并记录用户自定义配置的OPC服务器(DA&UA)的连接状态,记录实时连接状态到MySQL数据库并动态更新。

(2)参数设置:用户通过软件配置OPC服务器的名称、节点(item)、节点值扫描周期等,OPC服务器节点支持分组,能够配置多个OPC服务器监测组,通过软件配置MySQL数据库连接参数、MQTT服务器的连接参数及加密条件。

(3)OPC服务器的数据采集:软件按照设定的分组获取节点的值、状态、时间,并存储到MySQL数据库并按照设定周期更新,同时通过MQTT方式发布到代理服务器(RabbitMQ、EMQX等),用户能够订阅到需要的节点名、值、刷新状态、时间等实时信息。

(4)数据分析:软件界面提供节点报警参数设置(变化阈值、上限、下限、持续时间等条件),动态采集数据的过程中分析报警数据、并统计实时更新比例和坏点比例,方便用户及时发现故障并维护设备或控制系统,减少损失。

(5)数据交换及发布:软件采集到的节点实时数据及报警数据均能够通过MQTT方式发布到代理服务器(RabbitMQ、EMQX等),同时将报警数据存储到MySQL数据库中,方便用户自主开发的Web App对实时报警信息的订阅及查询。

(6)运行模式及可靠性:软件支持一键启动,手动/自动运行模式切换,用户配置完成后可选择自动运行模式,支持OPC、MySQL、MQTT的断线自动重连,7*24*365无人值守运行模式,退出需输入密码认证,防止人为关闭进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 MQTT 数据发送到 MySQL 数据库,你可以使用以下步骤: 1. 首先,你需要在 MQTT 服务器和 MySQL 数据库之间建立连接。你可以使用 Python 中的 paho-mqtt 库来连接 MQTT 服务器,并使用 Python 的 MySQL Connector 库连接 MySQL 数据库。 2. 接下来,你需要订阅 MQTT 主题以接收数据。你可以使用 paho-mqtt 库来订阅主题。 3. 一旦你接收到 MQTT 数据,你可以使用 Python 的 MySQL Connector 库将数据插入到 MySQL 数据库中。 下面是一个示例代码,可以将 MQTT 数据发送到 MySQL 数据库: ```python import paho.mqtt.client as mqtt import mysql.connector # MQTT 服务器地址和端口 MQTT_BROKER = "mqtt.example.com" MQTT_PORT = 1883 # MySQL 数据库配置 MYSQL_HOST = "localhost" MYSQL_USER = "root" MYSQL_PASSWORD = "password" MYSQL_DATABASE = "test" # MQTT 主题 MQTT_TOPIC = "/data" # 连接 MQTT 服务器 def on_connect(client, userdata, flags, rc): print("Connected with result code " + str(rc)) client.subscribe(MQTT_TOPIC) # 接收 MQTT 消息并将其插入到 MySQL 数据库中 def on_message(client, userdata, msg): message = str(msg.payload.decode("utf-8")) print("Received message: " + message) # 连接 MySQL 数据库 cnx = mysql.connector.connect( host=MYSQL_HOST, user=MYSQL_USER, password=MYSQL_PASSWORD, database=MYSQL_DATABASE ) # 插入数据MySQL 数据库 cursor = cnx.cursor() add_data = ("INSERT INTO data " "(value) " "VALUES (%s)") data = (message,) cursor.execute(add_data, data) cnx.commit() cursor.close() cnx.close() # 创建 MQTT 客户端 client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message # 连接 MQTT 服务器 client.connect(MQTT_BROKER, MQTT_PORT, 60) # 开始循环接收 MQTT 消息 client.loop_forever() ``` 在这个示例中,我们订阅了 `/data` 主题,当接收到消息时,将其插入到名为 `data` 的 MySQL 数据库中。你需要根据自己的实际情况修改代码中的 MQTT 服务器地址、MySQL 数据库配置和主题名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值