國內智能制造發展如火如荼,智能制造過程、系統必然離不開生產現場、生產過程的實時數據。
德明福自動化為國內高端SUV廠家定制了一款制造數據獲取工具模塊,模塊是使用python開發的一款采集PLC內數據的程序,擁有高性能、海量數據量和高實時的數據獲取能力。
數據采集模塊整體架構如下:
數據采集程序使用python編寫,可以獲得比較高的開發效率, 節省開發和調試的時間。
數據采集程序使用封裝后的OPCUA協議與OPC Server進行通信,屏蔽了底層S7協議的一些細節處理,不需要直接和PLC進行交互,從而省略了建立連接和斷開連接的時間,不需要處理復雜的連接問題,大大節省了調試和開發時間。
數據采集程序通過訂閱機制來實時獲取數據點的值,提高了數據點的響應速度,基本上可以做到實時更新,拋棄傳統的輪詢機制,降低了無用的網絡通訊量,提高了網絡通訊的質量。
借助于OPC Server的自動降級機制可以實現對離線PLC的自動降級,定時重試,避免出現屢次重新連接PLC導致的數據點更新延遲問題,解決PLC離線時影響其他設備數據采集的問題。
通過多線程編程的方式來采集不同類型設備的數據,并發度高,每個設備之間互不影響,防止程序出錯導致整個數據采集流程終止,容錯率高。
數據采集程序通過OPCUA協議與OPC Server進行通訊,OPCUA的底層是TCP協議,故可以通過遠程連接的方式連接OPC Server。
相比于DA協議只能通過dll通信的優點在于:
? 可以遠程連接、采集和調試,數據采集程序和OPCUA服務器可以放置在兩臺不同的服務器上。
? 可移植性好,可以跨平臺使用,數據采集程序可以部署在任意的平臺上, 只需要支持TCP協議即可使用。
? 可以使用多機熱備份策略,單個或多個數據采集程序可以對應單個或多個OPCUA服務器,不存在單點故障。
? 多編程語言支持,可以很方便的在各個編程語言之間進行切換。
由于OPCUA協議是通用協議,可以支持多種設備的數據采集,不局限于PLC,只需要設備擁有OPCUA服務器即可,基本不需要修改即可支持不同設備的數據采集。
通過使用消息隊列的方式來存儲OPCUA消息,依次排隊進行處理,在高數據量的場景下擁有不錯的性能,不會丟失數據。
數據獲取模塊的應用,可以在大數據量和多設備的情況下高效的完成數據采集的任務,目前已經實現50+ 臺設備,3W IO點 并發數據采集,10W + 數據的正確獲取,為制造企業數字化轉型提供有力的數據支撐。