IEC-104 的通訊方式研究得差不多了,接著是第一次把它接上網頁GUI顯示。
在Python端只要接上c104的Libraryr就可以簡單使用。
(詳細使用等我寫得更熟,我們下次再寫一篇。)
再用執行續讓它資訊有更新的時候傳輸回來。
比起以前主動式的詢問,被動式的接收看來更有效率。
而且系統上人家很穩定,沒有出什麼大亂子。
行為上都有安全且固定的模式。
是那種DQA喜歡TUNE和調教,軟體工程師可以輕鬆布局通訊的那種。
線材只要使用TCPIP,現有的CAT6的線就可以使用布局。
雖然分成四個模式
- 遙信 (Tele-signaling, DI - Digital Input)
- 遙測 (Telemetry, AI - Analog Input)
- 遙控 (Tele-control, DO - Digital Output)
- 遙調 (Tele-regulation, AO - Analog Output)
但就如字面意思,前兩個是監視,很簡單理解成收資料即可。後兩個是控制,也就是打開開關或關閉,以及寫入系統參數設定值等。
所以我們可以理解成以下
- 遙信 (DI)
- 警報的IO乾接點觀察
- 是否觸發什麼警報
- 只有TRUE/FALSE顯示目前開還是關
- 遙測 (AI)
- 類比數值觀察,像是電壓、電流等即時監視
- 數值可以是浮點位
- 遙控 (DO)
- 對設備進行操作開關
- TRUE打開 / FALSE關閉
- 遙調 (AO)
- 對設備或系統參數進行數值調整
- 數值可以是浮點位
理解到這邊是架構,接著是應用的範疇。
通常在你對接好線以後,我們第一次測試可以在網路上抓一個QTester104(IEC 60870-5-104 協定測試軟體)來對接。
在INI檔設定好IP與PORT以後,打開就可以收到第一次的總召General Interrogation(GI)。
此時會把所有監控數據預計全部傳回一遍。
這是第一次當你連接上以後的行為。
所以可以在這邊收到全部的訊息,你可以先把對應的點位寫好存到記憶體結構內或你喜歡的存取方式。這樣設備所有初始值你就抓到了。
如果寫好了on_recevie,就能針對收到點位是什麼來對應變數放入即時更新。
如果只要監視的話這樣就可以了。
然後是控制的範疇,這邊跟其他的通訊方式有點不同。
它有兩種方式
- 先選擇點位,設備回給你確認可以執行,接著你才能下命令執行
- 對點位直接下達執行(DO)/(AO)
由於我們使用的是電力網路相關的系統,有時馬上執行某件事情,對電力網路會造成傷害。
這個先去問可步行執行關閉或開啟某個開關就是一個系統保護自己的好機制。
不會讓不懂系統的軟體工程師亂試,或是被人家亂改造成系統異常。
(實際應用,也等到下篇寫得更完整以後再來教學文。)
以上是簡單的架構和使用心得,下次再來講在python上怎麼應用。



















