文章

顯示從 10月, 2020 起發佈的文章

[應用] 生產線設備的數據分析 (以 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...等呼叫的接口。我們將程式連接