在当前的工业自动化领域,集成gaoji监控系统已成为提高生产效率和监控设备状态的重要手段。本文将详细介绍一个综合使用FactoryIO、西门子PLC、ESP32和ESP8266处理器、C#应用程序和MQTT服务器的监控系统的架构和功能。该系统利用西门子PLC与各种智能设备和软件相结合,实现对工厂生产线的高效管理和实时数据监控。
直观的界面,易于搭建虚拟工厂环境:
FactoryIO是一款专为工业自动化设计的三维仿真软件,提供丰富的工业设备模型和直观的界面,易于搭建虚拟工厂。它兼容多种PLC和OPC服务器,支持S7协议,实现PLC与虚拟工厂的实时通信和控制,提升工业系统的可视化和调试效率。
系统架构
该系统由多个部分组成,包括ESP32用于远程显示生产数据,ESP8266作为数据中转站,C#应用程序用于监控PC状态和FactoryIO的运行,MQTT服务器用于数据传输和通信,西门子PLC负责工业控制,所有这些部分共同构成一个完整的监控系统。
一、C#应用程序:监控PC的系统状态和FactoryIO的运行状态,并通过MQTT发送数据。
C#应用程序运行在PC上,负责监控PC的系统状态和FactoryIO的运行状态,并通过MQTT发送数据给ESP32。系统状态监控:C#应用程序使用PerformanceCounter类和ManagementObjectSearcher类获取PC的CPU、GPU、内存、网络等状态。这些状态数据包括CPU使用率、GPU使用率、内存使用情况、网络上传和下载速度等。FactoryIO运行状态检测:C#应用程序通过监控进程来检测FactoryIO的运行状态。如果FactoryIO正在运行,C#应用程序会将其状态发送给ESP32。MQTT通信:C#应用程序使用MQTTnet库连接MQTT服务器,发送系统状态和FactoryIO的运行状态数据。
部分程序解析:
定义一个名为NetworkTrafficMonitor的类,用于监控网络流量。类的构造函数初始化了PerformanceCounter实例,用于监控每个网络接口的发送和接收字节数。GetNetworkTraffic方法返回当前的网络上传和下载速度,以KB/s为单位。
定义了Program类,并导入了kernel32.dll和user32.dll中的两个函数,用于获取和显示/隐藏控制台窗口的句柄。常量SW_HIDE和SW_SHOW用于控制窗口的显示和隐藏。定义了一个静态变量messagePart,用于跟踪发送的消息部分。
Main方法是程序的入口点。首先获取控制台窗口句柄并隐藏控制台窗口。然后创建并配置MQTT客户端,连接到MQTT服务器。在成功连接和断开连接时,输出相应的信息。创建一个NetworkTrafficMonitor实例来监控网络流量。设置一个定时器,每隔500毫秒发布系统状态。Zui后,通过Task.Delay保持程序运行。
PublishSystemStatus方法分三部分构建系统状态的JSON消息,每次发送其中一部分。根据messagePart变量,轮流发送每部分消息。使用MQTTnet库的MqttApplicationMessageBuilder创建MQTT消息,并在MQTT客户端连接时发布这些消息。发布成功后输出日志并更新messagePart。
IsFactoryIORunning方法检查名为"FactoryIO"的进程是否在运行,以确定FactoryIO的运行状态。
GetGPUInfo方法通过调用nvidia-smi命令行工具获取GPU信息,包括风扇速度、温度、功率消耗、功率限制、已使用内存、总内存和GPU利用率。
GetDynamicCPUFrequency方法通过WMI查询获取当前CPU频率。
GetCPUUsage方法使用PerformanceCounter获取CPU使用率。
GetUsedMemory方法通过WMI查询获取当前使用的内存大小。
GetDiskRead方法使用PerformanceCounter获取硬盘读取速率。
GetProcessCount和GetThreadCount方法分别获取当前系统中的进程数量和线程数量。
GetUptime方法通过PerformanceCounter获取系统的正常运行时间。
二、MQTT服务器:位于云端,负责传输和中继各部分之间的数据。
MQTT服务器负责中继各部分之间的数据。在本系统中,MQTT服务器位于云端,具有固定IP地址,所有设备通过MQTT协议连接到该服务器进行数据传输。
数据传输和中继:MQTT服务器接收来自ESP8266、ESP32和C#应用程序的数据,并将其分发给订阅相应主题的设备。例如,ESP8266从PLC读取的数据通过MQTT服务器发送给ESP32和C#应用程序,C#应用程序发送的系统状态数据通过MQTT服务器发送给ESP32。
在云服务器上部署MQTT服务器的程序及方法:
工业数据从PLC经过MQTT协议到云端+AI的历程之一
三、西门子PLC:负责控制生产线设备,提供生产数据。
1. MHJ-PLC-Lab-Function-S71200(FC): 这段代码展示了如何在西门子PLC1200上与FactoryIO进行通讯。
读取当前值并递增:
PEEK函数用于读取特定存储区的值。area := 16#82表示读取的是输入(I区)数据。dbNumber := 0表示数据块编号。byteOffset := 511表示读取的字节偏移量。将读取的值存储在变量#Value中并递增1。
写入递增后的值:
POKE函数用于向特定存储区写入值。向与上一步读取相同的存储区写入递增后的#Value。
向输出区写入新值:
area := 16#81表示输出(Q区)数据。向指定的偏移量(1016和1020)写入值#Value_01_DW和#Value_02_DW。
重置特定位置的值:
将偏移量为511的值重置为0。目的是为了进行状态复位或同步操作。
同步操作和循环:
外层循环运行121次,内层循环运行11次,每次循环读写系统时间。RD_SYS_T和WR_SYS_T分别读取和写入系统时间,模拟同步操作。读取偏移量为511的值并存储在#SyncVal中。如果#SyncVal等于#CompVal,跳转到标签M_1。
标签M_1的操作:
将偏移量为511的值重置为0。
这段PLC程序的功能是实现I区和Q区的读写操作以及控制逻辑。在I区(输入区),程序读取偏移量为511的当前值,将其递增后写回。随后在Q区(输出区),程序将特定值写入偏移量1016和1020处,同时将偏移量511处的值重置为0。接着程序进入一个嵌套循环,反复读写系统时间,并在每次外层循环结束时读取Q区偏移量511处的值。如果该值等于预设比较值,则跳转到标签M_1,重新将Q区偏移量511处的值重置为0。通过这种方式,程序实现了I区和Q区的数据读写及同步控制。
接着就只需要在PLC上实现功能即可:
四、FactoryIO:一个3D工厂仿真软件,用于模拟工业自动化系统和分拣流水线。
设置西门子PLC的连接参数(使用仿真PLC的要选择PLCSIM):
设置完后会自动连接:
设备组件:
以下是针对PLC程序组建的:
五、ESP32模块:用于显示来自PLC和PC的数据,使用LVGL库创建图形界面。
系统启动(2.0寸显示屏):
系统暂停(2.0寸显示屏):
ESP32是一个强大的微控制器,内置Wi-Fi和蓝牙功能,非常适合物联网应用。在本系统中,ESP32使用LVGL库创建图形界面,显示生产数据和PC系统状态。
LVGL图形界面:LVGL(LightandVersatileGraphicsLibrary)是一个开源的图形库,支持各种显示屏和输入设备。它具有高效、灵活、易于使用等特点,非常适合嵌入式系统。在本系统中,LVGL用于显示来自PLC和PC的数据,包括生产线设备状态、生产数据、CPU使用率、GPU使用率、内存使用情况、网络流量等。
Wi-Fi连接和MQTT通信:ESP32通过Wi-Fi连接到MQTT服务器,从MQTT服务器接收来自ESP8266和C#应用程序的数据,并将其显示在图形界面上。
六、ESP8266模块:连接PLC,读取和写入数据,通过MQTT与ESP32和C#应用程序通信。
ESP8266是一个低成本的Wi-Fi微控制器,适合用作物联网设备。在本系统中,ESP8266连接到西门子PLC,读取和写入生产数据,通过MQTT与ESP32和C#应用程序通信。
- 西门子博途PLC的三个应用阶段,你处在哪一个阶段? 2024-11-06
- 群友图片分享:Eplan控制柜的三维设计和非常“独特”的S7-1200PLC控制柜设计 2024-11-06
- 工业心电图:西门子S7-1500T控制器的圆弧插补的应用心得 2024-11-06
- 协议解析是关键:S7-1200通过串口自由口协议与电力仪表专有协议的通信方法 2024-11-06
- 分享三个西门子博途PLC的youxiu程序模板 2024-11-06
- 博途PLC自定义配方的使用方法 2024-11-06
- 西门子博途PLC的间接寻址的两个核心应用 2024-11-06
- 博途群讨论:S7-1200 PLC也可以组态MRP环网 2024-11-06
- 西门子安全PLC设计与编程方法的分享 2024-11-06
- 西门子HMI变量的批量替换方法 2024-11-06
- S88、OMAC和SICAR标准:这些自动化标准是什么关系和如何应用 2024-11-06
- 博途软件的基本操作与技巧 2024-11-06
- 90%的工程师都不知道PLC循环扫描工作过程 2024-11-06
- 【畅学技术】完全基于 Web 的控制系统 2024-11-06
- SINAMICS G 系列柜机调试你需要知道的几件事 2024-11-06
联系方式
- 电 话:13922889745
- 经理:向小姐
- 手 机:18475208684
- 微 信:18475208684