1. 程式人生 > 其它 >3分鐘構建虛擬PLC,實現同上位機聯調,真香!!!

3分鐘構建虛擬PLC,實現同上位機聯調,真香!!!

本篇文章針對:剛接觸上位機開發和除錯的小夥伴們。

長期從事裝置採集、裝置控制相關的工作,在實際工作中會經常會遇到一些問題,會嚴重的影響上位機軟體開發進度和效率,導致調試周期過長、成本過高。

遇到的問題主要包括:
1、同PLC互動部分的邏輯無法快速的落實;
2、互動邏輯在沒有進場、無除錯PLC或PLC不具備的情況下,無法開展工作,無法驗證邏輯;
3、通知進場後,由於各種條件(裝置安裝緩慢、裝置問題、PLC程式不完善、PLC互動功能未編寫完整、PLC互動功能有缺陷等),導致除錯一直處於等待狀態;
4、現場除錯開始後,管理混亂(短路、斷電、斷氣、無除錯件)無法集中除錯,除錯斷斷續續;一個短路問題,停電查半天。
5、只要裝置動起來、條件具備後,恨不得半天時間要求軟體所有功能具備SOP上線正常生產的狀態。我心裡那個苦啊

不知道各位小夥伴有沒有遇到過呢?歡迎交流,吐槽。

 

針對上述問題,建議如下:

第一項:可提前同電氣工程師溝通,確定好工作流程、互動流程,把互動地址表定下來。
如果電氣遲遲定不下來,我們可基於經驗梳理一下我們的需求,暫定一個互動地址表和互動流程,發給電氣做確認,從而提高效率。

後面的四項:通過各PLC廠家的軟體進行模擬,模擬PLC地址和訊號傳送、接收。這裡就不重點介紹了,網上有大把的教程。
這種方式對電氣人員比較簡單,但是對純搞上位機的有一定難度,需要學習每種品牌PLC模擬器的配置和使用。

但,這種方式也有缺點,比如:麻煩、安裝軟體體積過大、有門檻、難度比較大。

如果,你是大牛,上述問題就不存在,勿噴。

 

那麼,有沒有比較好的方式,能夠解決後面四項問題呢?
經過摸索,答案肯定是有的,針對西門子PLC,有較好的解決方案。
其他的PLC還在摸索過程中,如果大家有好方法歡迎推薦。

 

說重點:針對西門子PLC,可以通過程式碼構建一個PLC模擬器。
本質上是啟動了一個HttpServer,通過程式建立多個DB塊,DB塊的長度可以自定義,對外提供讀寫服務。

經測試,啟動HttpServer後,可通過OPC Server、HSL等第三方工具進行連線和讀寫。

這樣,我們就可以在自己的電腦上虛擬一個PLC或多個PLC(需要不同IP地址),在互動地址確認的情況下,我們可以不受任何限制、愉快的編寫和除錯上位機程式,驗證邏輯了。

另外、我針對常用的使用場景做了一定的抽象和封裝,做成了一個小工具。

 


工具的主要功能:
1、載入地址表,支援多種資料型別;
2、分析地址表中的DB塊,程式自動構建DB塊;
3、啟動HttpServer,對外提供服務;
4、實時在介面上監控配置地址表中的值;
5、在除錯期間,可在介面上手動模擬(寫入)各種訊號、數值,滿足PLC發訊號的需求;
6、除了可以虛擬PLC用於除錯,在現場除錯(真實PLC)時,可以通過更改IP地址的模式,對真實PLC進行讀寫。

在現場除錯上位機還沒有健全的情況下,有時候需要臨時給個訊號,這樣在介面上點一下就OK了。

針對上位機PLC互動邏輯達到的效果,點一個寫入,就能進入到data_change事件中,那叫一個絲滑。

爆個照:

 

有時間了放個視訊出來,這樣大家看的更加清楚。

目前自己使用還行,如果大家用,還需要進一步完善。

如果對上位機開發、裝置聯網、資料採集感興趣的小夥伴,可加qq:285861181,共同交流學習。