以前總結了一回工業應用的技術堆疊方向,生成了一個技術導圖已經做了羅列規劃,內容也基本上包含了普通應用所需要的大部分方面,當然可能對于個人的技術見識來說會有遺漏空缺,這個還需要到具體專案時再進行調研和補充,

1.系統結構
新的東西能帶來新的觀點,新接觸到的的產線方案,最近做了相關的技術調研,對于軟體應用的理解更深了一個層次,以前可能對工業應用的理解比較碎片化,沒有一個完整的思路,接觸過產線的完整方案以后,開始對一些專業的軟體組織方式和內容有了一個系統化的認知,對系統的應用有更清晰的層級劃分,
對于一個完整的工控系統,無論簡單復雜程度與否,我覺得都可以可以劃為三個層次,設備層、控制層和決策層,(如同網路分層,有人理解更豐富,可能會劃分五層七層等一樣)
設備層:也即硬體層,對產品進行感知和執行的單元,包括傳感器、儀器儀表、條碼、射頻識別、數控機床、機器人、HMI主機等;
控制層:對設備層資料進行采集、保存和轉發、并能夠執行一些控制邏輯的單元,包括可編程邏輯控制器(PLC)、資料采集與監視控制系統(SCADA)、分布式控制系統(DCS)等;
決策層:對整個系統的實時狀態進行展示、歷史資料查詢統計并能夠對決策進行有資料支撐的預測,主要包括蓋勒普制造執行系統(MES),及產品生命周期管理軟體(PLM) 等,

而常用的單機系統應用,它其實也擁有系統的三個層次屬性,三個層次里的內容退化成了模塊化的軟硬體設計,如果單機系統繼續往上集成則是作為大系統設備層的子單元進行組合;

2.單系統應用
單系統應用是系統應用的常態化設計,作為系統的底層架構設計,單系統應用不管在簡單和復雜系統中都要進行設計,是整個設計的基礎,
目前單系統應用從軟體劃分來看可分為arm軟體系統、x86軟體系統和RTOS系統;

每種系統下都有自己對應生態的硬體和軟體配套,當然也不乏一些跨系統的應用方案,但是畢竟占少數,所以根據不同的系統應用需求,來選擇不同的單系統方案才更正確,
2.1單機的工業控制設備
工業化控制設備從協議方式和廠家SDK這兩方面著手,通用的協議方式可以支持不同廠家的的同類設備,對于像采集板卡這種需單獨驅動控制的,各個廠家都有其sdk開發包,通常一個開發包可以完成其所有產品的控制,

很多通用庫可以支持多種協議,比如ni或者安捷倫的visa庫,比如libmodbus支持RTU、ASCII、TCP等;對于這些通用協議和通用庫需要長期進行累積、封裝和改進,以方便開發使用;
2.2 單機的軟體組態化
軟體的組態化也就是可配置化,通過現有軟體搭建組合成為一個控制系統,將功能模塊化,和搭積木是一個道理,等搭建完成后,再來配置他們之間的關系和各個積木塊的資料配置,最后生成使用軟體,
組態的最高化境界是無需編程或者少量編程,全部通過配置操作完成所有軟體模塊的設計作業,極大的提高了軟體設計的效率,最先通過硬體的組態,配置與硬體連接的協議、引數來實作硬體的控制,然后再進行資料組態,利用通用協議把采集到的資料進行決議后進行映射和保存等操作;最后是UI組態,只需簡單拖拽和設定將資料顯示模塊和資料系結進行顯示,

軟體想做到組態化應往三個方面進行設計和積累:
模塊化:工業應用開發上將開發的通訊協議、硬體控制和資料管理等軟體功能進行功能模塊化封裝,不同的設備支持不同的通用協議的話就使用不同的模塊分別進行設定控制;
可配置化:對于不同模塊可以通過配置的方式進行加載、運行和處理,
介面化:對資料的處理流做到明確的輸入輸出,做到可以鏈式連接的方式,
2.3 單機的仿真化
很多人對于單機軟體的界面的設計風格,上回也進行了討論,對于軟體的配色等也進行了總結和選擇;其實這只是軟體界面的一個方面,對于一個工控軟體來說,界面的風格可能不是需要很前衛和時尚,其功能也不會很復雜多變,但是對于用戶來說,其實最基本的需求就是簡潔、明確和高效,不需要對計算機有很深入的了解,也不需要對抽象資料進行學習,只是了解系統的運行,就可以很快的進行軟體的使用,那么對于界面的仿真化就十分必要,
如下圖的 給水控制系統,形象的系統設備展示和水流等影片,對于軟體操作人員來說,可以很快上手,擺脫單調的數值顯示重繪帶來的枯燥感,可以形象的了解系統結構,清晰的觀察數值的呈現節點,快速的定位系統問題,

軟體的仿真化其實是比較困難的技術,其作業量也會大幅提升,如果想做到完美實作,最快是通過使用成熟的SCADA系統軟體開發包進行開發,這個在當前市場上比較成熟了,可以持續了解和發現是否有免費好用的;
另外一個是先從開發自己的組建仿真控制元件庫開始,逐步完善整個仿真界面系統,這方面現有選擇其實并不多,需要支持透明、陰影、3D、控制元件縮放、抗鋸齒、克服不同解析度和DPI下的實作效果一致等,目前備選的方案有qt的qml技術 和 microsoft的wpf技術,

qt界面圖

wpf界面圖
對于界面開發的技術路線選擇根據實際情況而異,各有各的優勢和限制,需根據實際情況進行選擇;
qt優點:
- 跨平臺開發,在linux和windows下都有較好的支持;
- 使用c++語言有較好的通用性;
qt缺點:
- 開發效果可能不如c#;
- 庫較少,需要自己進行開發;
c#優點:
- windows平臺下有優秀的顯示效果;
- 有較為豐富的界面和樣式庫進行選擇
c#缺點:
- c#在一些較為冷僻的工控上可能支持不太好,需要結合c++進行聯合開發;
- linux下不支持;
- 還有就是c#不開源,所以對于國產化上可能會有一些限制,
2.4 其他系統開發
嵌入式系統開發已經越來越成為一種趨勢,具有系統專業化、低成本化、低功耗和方便攜帶的優點,當然開發的難度和門檻也比較高,需要對硬體知識和linux系統有較為深入的理解,目前主流的作業系統包括linux arm系統、andriod系統和實時系統(FreeRtos、Vxworks和ReWorks等);

對于工業控制,實時作業系統是繞不開的一個系統應用方向,在實時系統中來說可能分量最重的就是Vxworks了,這個也將作為下一步的學習目標,至少了解系統的基本組件和行程的調度方式,能夠熟悉VxWorks的基本界面實作等,如果遇到有Vxworks或者相關的實時系統下的設計要求能夠快速的進行系統方案的確定,

3.SCADA系統
SCADA,全稱為「supervisory control and data acquisition」它的意思是「資料采集與監控系統」,多用于可實作資料實時采集、設備程序監控、設備例外報警等,它的的底層資料支撐來源于分布式的傳感器、儀表、設備和單機系統等節點,支持多種通訊協議,實作硬體系統與軟體系統資訊的交換,向上傳遞狀態資訊,向下執行控制命令,起到一個中心控制和資料管理的核心控制功能,
SCADA中間控制層其實在設計時是一個分層模塊概念,它真正的物體存在于設備層(單機系統軟體)的傳輸模塊和決策層(資料服務器)的資料邏輯處理、資料存盤和資料訪問等功能中,它通常以模塊的方式集成于系統之中,當系統發展到中大型的規模,才會出現scada服務器的設備,

SCADA對于的分布式的多點采集的需求是較為經典的管理方式,天然適合與產線系統、樓宇、自動化的管理,這方面的控制系統搭建還有很有必要學習和掌握的,目前市面上scada的多從組態的設計出發,加入上層管理系統的概念,組成MES的大的系統結構,scada真正的精髓是工控網關,既要支持設備層的多種設備協議,又要打通傳輸通道,將資料進行系結、匯總和分發,所以其中的協議支持轉換才是關鍵,

4.軟體技術的方向
1.持續的完善工業協議和板卡的通用庫封裝,設計中進行軟體的模塊化,提高軟體的可重用性,加速單機開發的時間,
2.界面UI的qml和wpf技術嘗試,實作通用UI控制元件的組態化;
3.調研Scada系統的軟體庫,找到適合使用的完整方案;
3.linux arm系統配置和軟體設計的初步實作;
4.VxWorks系統的學習和使用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/413106.html
標籤:其他
