[應用] 生產線設備的數據分析 (以 C# 程式開發)

系統架構

        與金屬中心合作的智慧機上盒 (SMB: Smart Machine Box) 補助計畫案,開發系統並應用在工廠實作上。以下內容是實際運用在工廠的案例。在提升工廠的設備產能效率上,需要將產線上的設備進行 e 化,並且收集各個設備的數據,在後端進行數據分析。首要,設備要具備連網的功能,如果無法連網,也要開發一個類似 gateway 的轉換器與設備相連,將該設備網路化。工廠網路化之後,工業連線有一套資料傳輸標準,稱為 MODBUS [1],每台設備皆可透過這套通訊協定傳送資料,如下圖所示。最後,收集來的資料必須找個地方存放以便分析,安裝一套資料庫或使用既有的資料庫是不錯的選擇,而後端的資料庫可以依照使用者的熟悉度安裝與配置,目前這工具分別與 Oracle、SQLite、MS SQL測試過連線和讀寫。
        實際開發的過程中,遇到最大的挑戰是產線設備的聯網,有些產線的環境比我們想像的還惡劣 [2]。並非所有生產設備都具有網路接口,有的設備只有 RS-232/RS-485 接口,有的設備只有 USB 輸出,在不更換產線設備的前提下,我們需要在設備外面再連一個轉換器,將接口轉換成網路讓生產線具有聯網的功能,參考 [3][4] 文章的說明。
系統架構圖
圖一:系統架構圖

        接著,我們以 C# 語言開發一套資料擷取的工具,如下圖二所示,利用 MODBUS-TCP 連線與設備相連接,採用每秒輪詢的方式讀取單一設備的所有資料,再將這些資料寫入後端的資料庫系統內。在多個設備的環境下,程式對每個設備的連線會創建一條 thread,專門處理該設備的資料擷取,讀取後的資料再傳到資料庫並寫入表格裡。
圖二:資料擷取工具的畫面
 
      擷取工具中,每個設備的參數以 XML 格式存放,如下圖三所示,配置非常方便閱讀。紀錄設備的 IP 位址,設備型態名稱,MODBUS 的設備 ID...等。每個設備裡,紀錄著欲讀取資料的型態與位址。
圖三:XML儲存每個設備的參數

調用資料庫

      C# 程式開發各種資料庫的函數庫,要先從 NuGet 套件庫中下載函數庫,如下圖四所示,有調用 Oracle 和 SQLite 的 DLL。接著,依照各個資料庫的指令製作 CreateTable、Reader、Insert...等呼叫的接口。我們將程式連接資料庫的參數配置存放在 C# Properties settings 裡面,如下所示,欲修改 Database 連線參數時,可以直接以文件方式開啟 .exe.config 檔案,再修改。
圖四:資料庫的函數庫

      最後,當產線運作時,擷取工具將所有設備的資料擷取後,寫入資料庫裡。在運作時或生產後,都可以從資料庫進行數據分析,製作視覺化的曲線區,並預先判斷設備是否有異常狀況,提前調整設備參數以提升良率。

參考資料

[3] 設備聯網解決方案 - USB host 的轉換

留言

此網誌的熱門文章

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[筆記] Android APP 藍芽範例說明 -- BluetoothChat

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Visual Studio 遠端偵錯的設定步驟

[筆記] Android APP BLE範例程式 -- BluetoothLeGatt

[模組] LD3320 離線語音辨識晶片與 ESP32 無線傳輸