ARIES PLC110[M02]-MS4、HMI、OPC 和 SCADA,或一個人需要多少洋甘菊茶。 第1部分

親愛的本文讀者,大家午安。 我正在以評論的形式寫這篇文章。

一點警告我想警告您,如果您從標題中立即明白我們在說什麼,我建議您將第一點(實際上是 PLC 核心)更改為價格類別更高的任何內容。
從主觀上來說,省多少錢都不值得這麼緊張。

對於那些不怕一點白髮和神經抽搐幅度的人來說,稍後我將詳細描述這個技術奇蹟是如何創造的。 本文對該項目進行了簡要分析,並帶有一定的批評。

起源。 問題的表述

實際上,我在一家設計局工作,我們測試自動化設備以整合到我們的交鑰匙工廠。 近日,OWEN設備抵達倉庫,決定用它來組裝一個測試台:

  • PLC110[M02]-MS4(執行環境MasterSCADA 4D)
  • 操作面板 SP307
  • 通用類比訊號輸入模組МВ110-224.2А
  • MV110-4TD應變片訊號輸入模組
  • 電氣測量模組MV110-220.3M

系統結構 根據目的選擇不同的網路:

  1. 基於RS-485的Modbus RTU - PLC和從站設備(模組、變頻器、智慧型感測器、HMI面板SP307)、PLC網路主站之間的通訊。
  2. 基於乙太網路的 Modbus TCP - 不同 PLC 之間以及與 OPC 伺服器的通信
  3. OPC和SCADA系統PC伺服器同時是兩個不同網路(企業的公司LAN和控制器的Modbus TCP網路(兩個網路介面卡,使用標準Windows工具進行資料路由)之間的網關
  4. 公司區域網路透過代理伺服器存取網際網路

系統總體結構如下圖所示:

ARIES PLC110[M02]-MS4、HMI、OPC 和 SCADA,或一個人需要多少洋甘菊茶。 第1部分

內建功能

  • 將資料從 PLC 收集並重定向到 OPC 伺服器
  • 透過 HMI 面板進行本地控制和監控
  • 透過 OPC 伺服器從 SCADA 進行控制和監控
  • 使用 SCADA 用戶端從企業 LAN 和互聯網的任何 PC 進行控制
  • 透過 LAN 和 Internet 連接移動 OPC 監視器
  • 當然,歸檔和報告生成

似乎什麼都沒有錯過。 有一個系統的一般描述,現在,實際上,關於這個主題(我將在文章中描述消除方法以及每個節點的實現):

遇到的困難

1.PLC文檔

製造商於 4 年表示,已在 MasterSCADA 2012D 核心上對所聲明的 PLC 進行了 Beta 測試。 儘管這個概念的生命週期如此令人印象深刻,但開發人員在2019 年所擁有的只是一本28(!?)頁的編程手冊,其中幾乎沒有有用的信息,並且手冊中的屏幕截圖來自MasterSCADA 3D ,考慮到介面已經改變,這很有趣。

包含 20 個主題的論壇主題也得到了三名追隨者和一名銷售經理的積極支持。

2. PLC模組的架構

這是一個單獨的主題來討論。 簡而言之:PLC 作為 Modbus RTU 從站設備與模組進行通信,這些模組必須首先由實用程式透過 RS-485 轉換器將每個模組連接到 PC 來單獨配置。

當然,聰明的人可能知道如何在沒有轉換器的情況下透過 PLC 來做到這一點,依次將模組連接到網路並寫入必要的暫存器,但這需要經驗和巨大的痛苦。

對於第一次看到這樣的架構的開發人員來說,它一點也不人性化。
此外,所有模擬模組都喜歡因未知原因而失敗,並帶走 Terra Incognita 中的整個 RS-485 網絡,但我也想單獨談論這個,當然,這是一個完整的史詩。 順便說一句,這個問題已經有 10 年歷史了,製造商對此一笑置之 “我們必須承認這些模板不適合我們”然而,這是與模組通訊的唯一接口,人們很認真地編寫他們的 Modbus RTU 實現很長時間了。

同時,甘菊茶已經用完了... 太陽正在下山

3.IDE MasterSCADA

我們不會談論圖形工具;我還沒有對它們進行廣泛的測試,但我會立即說我不喜歡它。

我們正在談論資料交換和IEC標準語言的實作:

控制器的實體輸入和輸出不是全域變量,無法透過編寫別名(例如“DI1”)從程式的任何部分進行存取。 您應該使用句柄將其拖曳到每個程式中,在那裡形成一個局部變量,它繼承或傳輸該值。 那些。 在我看來,PLC 的本質有點迷失了:設備應該將物理通道操作的邏輯程式簡化到級別 “如果輸入 DI1 被觸發,則開啟輸出 DO1”看起來像這樣 “輸入 DI1 - 變數 LI1 - 變數 LO1 - 輸出 DO1”另外,由於對這個IDE原理的無知,你可能會收到一個令人愉快的警告“布爾-布爾轉換是不可能的”(最有可能的是,其中一個是指針,但我想在創建者的編輯器中,它更和諧) 。

ST、FBD、SFC語言的函式庫相當龐大,並且有一個易於編程的選擇,但是,這些元件不是函數,而是嵌入方法的類,其次,大多數沒有幫助描述功能和資料類型。 堅持不懈讓我找到了 CodeSys 內核庫,所有這些函數都取自其中,它們的幫助很有幫助。

4.與SP307面板互換

對於那些無處可去的人來說,這是一個非常有趣的活動。

對我來說,標準 GUI 測試(HMI 或 SCADA)需要 6 項測試:

  1. 讀取離散訊號
  2. 記錄離散訊號
  3. 讀取整數值
  4. 寫入整數值
  5. 讀取真實值
  6. 寫出真實的值

因此,我在螢幕上繪製了 6 個原始組件,並按順序檢查每個組件
交換與模組完全相同,但來自單獨的 RS-232/485 PLC 端口,而且看起來更穩定。 由於它是一個HMI從站,所以我透過更改寫入它,並以500ms輪詢的方式讀取它,以免錯過操作員的操作。

前4點完成得很完美,但第5點和第6點卻出現了問題。

我們發送 Single Float 類型的數據,將其顯示在螢幕上,看到數據不一樣,儘管所有輸出設定(Float、維度 1 寄存器等)都是正確的。 如果說文檔中沒有描述先例,那是騙人的,但是,嘗試找到哪個先例以及在哪裡,從外面看很有趣。

在歇斯底里地搜尋了有關數據本身及其發送的所有設定後, 我們寫信給技術支持,平均5-6個日曆日得到答复,我們按照標準技術支持腳本“檢查電源是否打開 - 檢查軟體版本 - 請再等一周 - 讓我們自己解決” ”.

順便說一句,這是透過在一個絕對不合適的地方安裝一個蜱蟲和一個絕對不合適的簽名來決定的。

螢幕內功能 不包括“Slider”格式的類比訊號輸入,只能使用數字在文字欄位中輸入。 這簡直太神奇了,要么我們自己編寫“±”按鈕和腳本,要么我們從鍵盤輸入一個數字,而忘記某些驅動器的軟控制。

我不會寫太多文章,因此我將在第 2 部分中描述頂層的問題。

總而言之, 我想指出的是,我有足夠的自由和大量的時間來解決這些問題,乍一看似乎很有趣,但給受害者帶來了很多痛苦。 在時間有限的情況下,面對這樣的問題至關重要。

PS:這裡提出的所有這些都是主觀的,只是試圖警告那些沒有準備的人,而不是歧視廠家,我請你從這個角度來看待這篇文章。

第二部分已經在這裡: 點選

來源: www.habr.com

添加評論