一個工廠有一個MES(制造執行系統),我有一臺機器。工廠希望使用他們的 MES 來控制我的機器(開始/停止生產等)并監控實時制造資料(例如生產了多少產品)。
簡而言之,目標是:
MES ---controls--> machine
MES <--reports data--- machine
需要注意的是,我的機器已經有一個 .NET WinForm 應用程式(部署 MVP 模式),它包含了所有的業務邏輯,并且可以很容易地被離線作業人員使用。為了滿足工廠的需要,我必須對我的 .NET 代碼進行一些升級/轉換。
經過一番調查,我發現了實作目標的兩種可能方法:
- 讓我的機器充當 OPC UA 服務器,讓 MES 適應我的機器
- MES與機器之間使用socket編程進行通信
我對以上兩種方法都沒有任何經驗,所以你能說說每種方法的優缺點嗎?還是有第三種更好的方法?
uj5u.com熱心網友回復:
如果您的機器具有內置的 OPC UA 服務器,并且您的 MES 可以充當 OPC UA 客戶端,那么第 1 點是一個很好的解決方案。
另一方面,如果您必須在您的機器上撰寫一個 OPC UA 服務器,那就別管它了,這是一項非常困難的作業,因為 OPC UA 無疑是所有最常見的工業協議中最復雜的。
如果使用原始套接字編程,那么您必須定義自己的協議,這就像重新發明輪子一樣。
也許您可以選擇使用更簡單的工業協議,例如 Modbus TCP。
uj5u.com熱心網友回復:
從長遠來看,OPC UA 是首選。它可能看起來相當廣泛,并且有一點學習曲線,但那是因為它內置了許多功能(安全性、地址空間、讀取、寫入、方法呼叫、資料更改、事件、警報、歷史閱讀等)。您將不需要所有這些權利,但您也不需要使用超出您需要的內容。
對于 .NET,您可以使用 OPC Foundation Standard Stack,它為您提供了大部分內容的實作。它是免費的(非會員使用 GPL),但缺少檔案,因此您可能想考慮商業選項。
尤其是,如果您希望從 MES 進行簡單可靠的連接,那么定義您自己的套接字協議實際上沒有任何意義。這將花費您大量的時間,并且容易出錯,并且最終,您將是唯一可以使用它除錯問題的人。最后,您可能需要弄清楚您的 MES 如何在實踐中使用您的協議。
堅持標準解決方案有明顯的好處。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/462584.html
上一篇:發生本地通知但未出現在螢屏上
