跨平臺SCADA系統(組態軟件)開發1

一、系統概述

我在上年做了一些工控軟件開發的介紹(可參考我之前發過的博文),解決了兩個主要問題:

1、無需修改代碼,簡單配置,即可支持幾十上百種不同通訊協議的儀器。

2、開發了類似組態軟件的功能,像畫圖軟件一樣編輯一個流程圖,圖像元素能夠根據儀器數據和狀態進行實時變化。

當然還有其他解決的問題,但比較突出的是上面兩點。

(組態)

(設備配置)

(設備面板)

(數據圖表)

 

今年接觸到幾位同行的朋友,他們提出了能不能提供在Web上運行的組態圖的想法。確實,Web早已大行其道,之前只是因爲覺得Web實時性不夠而沒有往這方面考慮。要真論起桌面軟件和Web的實時性哪個好,結論當然是桌面軟件要好一些,畢竟Web還有一個跟服務器交互的過程,這是毋庸置疑的。但這個延時真的不能接受嗎?如果桌面軟件是1秒,Web是1.01秒,那又有什麼關係呢?

本人之前所開發的工控軟件,使用的技術是C#/WPF,只能運行在Windows系統下。一不做二不休,本次所開發的SCADA系統,能夠運行在Windows和Linux系統下,能夠以桌面軟件的形式展現,也能以網頁的形式展現。

 

SCADA系統的功能可以分爲幾大塊:數據採集、數據展現、報表、數據存儲、反控、組態和上傳數據。其中,報表和組態其實都是數據展現的一種形式,因爲它們比較重要,所以單列出來。在儀器多種多樣的場合下,設備配置也是系統中很重要的一個模塊。

根據應用場景,SCADA系統的部署架構可能是以下幾種情況:

 

儀器-工控機

 

儀器-工控機-服務器-客戶端

這是最常見的一種模式。功能模塊在各端中的分佈可能會有些差異,例如,工控機端一般也會保存一份數據。

 

儀器-服務器-客戶端

 

考慮到開發成本和維護成本,我們肯定希望系統只有一套代碼。藉助.NET技術,我所開發的SCADA系統做到了這一點。在不同的系統、不同的平臺下,只有一套代碼。大致的實現方法是:

1、類庫的目標框架同時包含.NET Framework和.NET Core。

2、服務端使用.NET Core開發。

3、界面主要使用Web去做,在桌面版中使用容器。

 

具體的開發細節在後續的文章中講述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章