1、 前言git
在園子潛水也七八年了。說來慚愧,這麼多年雖然一直自稱.NET鐵桿粉絲,然僅限於回幾個不痛不癢的貼,既沒有發佈過代碼,也沒有寫過文章。github
看着.NET和C#在國外風生水起,國內卻日趨沒落,我也早以爲有寫一點東西的必要了。數據庫
2、 爲何要開源,它能作什麼編程
如今已經不是兜售軟件光盤賣受權的時代了。我本身開發這套系統也得益於開源。安全
原由是由於看到單位用的組態軟件被版權問題困擾,同時系統十分龐大,動輒幾個G,安裝部署調試都不方便,同時腳本功能和擴展能力也有限。服務器
開始就是本身研發,同事廣泛反對,都認爲組態軟件是大公司玩的東西,我靠一人一槍,圖樣圖森破。架構
然而我是個狂熱分子,參考了幾百篇國內論文,下載過幾十上百個開源類庫,反覆研究,常常熬夜。工具
一段時間以後,拿出來一套半成品,也逐漸爲你們所接受,並一發不可收,陸續作了很多工程,逐步取代了原有的組態軟件,系統也不斷成熟、壯大。動畫
但限於精力和水平,系統完善的空間還很大,能夠改進的功能還不少,與其敝帚自珍,不如交給社區,共同完善。spa
這套系統只是提供了一套組件和工具,並無給出具體的行業解決方案和控制邏輯(這屬於不能開源的部分)。
從一開始設計目標就很明確,取代單位現有組態軟件。實現「多快好省」。
系統架構圖以下:
分爲網關驅動層、平臺服務層、應用層。
網關負責轉換各類工業以太網協議,統一接口。
平臺服務層負責輪詢、儲存、推送數據。提供各類查詢、讀寫接口。
應用層主要是人機界面(HMI)和各類可視化功能組件,如報警界面、趨勢圖、報表、圖表、下訂單、改參數、查日誌等。
多:就是適應面廣,好比工控網關能支持多種工業以太網、PLC,普適性強,可應用於多個行業。
目前已經支持:
快:這裏包含三個意思,設計效率高、安裝部署快、運行速度快。
有方便的設計工具。驅動、變量、報警、歸檔管理器,對,就這樣一個簡單的配置器,支持各類格式導入導出。
接下來是宇宙第一IDE,Visual Studio,做爲組態設計器。組態設計器原本是最難實現的部分,如今VS一出,秒殺一片。
速度按我本身,作一套多工段上位機的畫面,快則一天內,慢也就兩三天。
運行速度:按批量讀寫方式+訂閱-推送模式,幾千個變量,幾百個顯示單元,含動畫,通信週期500毫秒,很流暢。
好:就是界面美觀、功能齊全、易用性好,擴展性好。
目前已完成的功能包括:
工業網關:支持多種協議。若有新驅動加入,接口實現很是簡便。
實時數據引擎:實時推送變化的數據,支持遠程服務器+N個客戶端。
歷史數據歸檔引擎:支持N變量快速歸檔,可爲數據分析和數據挖掘提供支持。歸檔文件很小,自帶索引,查詢快速。
人機界面:能夠充分利用VS設計器的強大功能,輔之以強大的插件(自吹一下),徹底能夠把VS設計器當作組態設計器來用。
擴展性:加入新功能很快,由於接口很簡單。可是功能卻不簡單。
省:顧名思義,就是省錢省時間啦。
首先系統環境簡單,就是裝個.NET(由於只要求4.0,WIN7自帶),數據庫可用SQL EXPRESS,沒有采用任何第三方收費組件(開源組件在github列了清單,感謝做者)。
VS做爲設計器,強大又好用,可用社區免費版(我的用用不要緊,企業的話最好聯繫微軟買正版受權)。
支持各類PLC,單位老組態軟件不少PLC不支持,在這裏加入一個新的設備驅動很方便。
3、 三個爲何
考慮到吹了半天牛B,你們也許會問如下三個問題:
爲何要用.NET 平臺?
第一,本人是微軟粉絲,.NET忠實碼農,用了十多年了,無往不利。不管是一心爲公,仍是私活利器。首先.NET自己就是一個多快好省的平臺,配合宇宙第一IDE,開發效率極高。
其二微軟也愈來愈開放,.NET跨平臺能力也愈來愈強。至於被不少噴子狂噴的所謂.NET工資低,那是由於國內特殊緣由形成JAVA碼農已先入爲主。
本人這行業目前沒有公司政治的問題,所以也歷來沒考慮轉型(曾經爲安卓APP寫過JAVA,也很簡單,可是我要吐槽一下,一樣功能,JAVA實現起來太囉嗦)。
爲何要用WPF?
WPF是一種聲明式編程方式(XAML語言),很是適合工控界面設計。同時微軟提供了Blend設計器,實際上畫這些控件的都是不會寫代碼的機械工程師。
實現了先後臺分離的協做方式。加上有宇宙第一IDE的配合,能夠作的很是炫。
爲何要用Visual Studio?
很簡單,宇宙第一IDE不是蓋的。我見過不少家的組態畫面設計器。不管效果仍是易用性仍是擴展性,和VS無法比。VS同時還集成了項目管理和編譯器。
關於VS擴展性你們不多用到,本人也填過不少坑,找了不少資料,實現以後你才知道它的強大。
4、 下面的計劃
在社區的協助下,修補Bug,加強安全性穩定性。能用起來就是勝利。而後追求更加「多快好省」。
提綱和目錄也擬好了。大體以下:
github地址:https://github.com/GavinYellow/SharpSCADA。
github上面有說明書。下載包裏還包括如何安裝部署、如何用來設計的Word文檔。比較粗略,歡迎提問。