在當前的工業自動化領域,集成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-12-02
- 群友圖片分享:Eplan控制柜的三維設計和非常“獨特”的S7-1200PLC控制柜設計 2024-12-02
- 工業心電圖:西門子S7-1500T控制器的圓弧插補的應用心得 2024-12-02
- 協議解析是關鍵:S7-1200通過串口自由口協議與電力儀表專有協議的通信方法 2024-12-02
- 分享三個西門子博途PLC的youxiu程序模板 2024-12-02
- 博途PLC自定義配方的使用方法 2024-12-02
- 西門子博途PLC的間接尋址的兩個核心應用 2024-12-02
- 博途群討論:S7-1200 PLC也可以組態MRP環網 2024-12-02
- 西門子安全PLC設計與編程方法的分享 2024-12-02
- 西門子HMI變量的批量替換方法 2024-12-02
- S88、OMAC和SICAR標準:這些自動化標準是什么關系和如何應用 2024-12-02
- 博途軟件的基本操作與技巧 2024-12-02
- 90%的工程師都不知道PLC循環掃描工作過程 2024-12-02
- 【暢學技術】完全基于 Web 的控制系統 2024-12-02
- SINAMICS G 系列柜機調試你需要知道的幾件事 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684