北京三微軟件開發(fā)公司聯(lián)合工業(yè)控制,實時監(jiān)控,數(shù)據(jù)采集,監(jiān)控與組態(tài)解決方案。工業(yè)控制軟件對圖形處理要求很高,需要很強的實時響應能力,往往開發(fā)類似的界面需要花費很長的開發(fā)時間,E-Form++可視化圖形組件庫是開發(fā)類似應用的最佳選擇之一,組件庫本身全部采用VE-C++開發(fā)而成,并采用最先進的MVE-Form++設計模式,將顯示層和數(shù)據(jù)層分開處理,具有極強的擴展性。能為您開發(fā)任何類似應用節(jié)省大量的開發(fā)時間!
北京三微軟件開發(fā)公司提供的這些解決方案并不意味著E-Form++可視化圖形組件庫只能開發(fā)這些方面的應用,事實上E-Form++同任何其他第三方C++組件庫一樣,包含數(shù)百項可以分開獨立使用的功能。同QT, MFC等一樣,您可以獨立決定是否需要E-Form++中的某項功能,一般來講,只要您需要圖形顯示、需要流程圖、控制圖、打印功能、排版功能、仿真、電子地圖、電力接線圖、表單等等功能,您就可以使用E-Form++組件庫,當然有的時候也許您只希望使用E-Form++提供的下拉顏色等控件而不需要繪圖功能,那也沒可以。這個示例展示了如何使用E-Form++可視化圖形組件庫開發(fā)工控方面的應用,這個示例包含了三個能夠獨立運轉的控件,包括:泵機,測量表和活塞,E-Form++可視化圖形組件庫支持簡單而精確的定時器控制功能,可以根據(jù)需要創(chuàng)建其他工控組件.如下圖:
1. E-Form++從設計之初就為畫布上的任何圖形單獨設定能獨立啟動的定時器功能,這意味著只要你希望讓畫布中的某個圖形動起來就可以讓其動起來。
2. E-Form++庫本身采用100% VC++開發(fā)而成,所有代碼經(jīng)過嚴格測試,讓您的應用達到最佳性能。
3. 該解決方案已經(jīng)為全球眾多航天,軍工,科研單位成功在仿真,工業(yè)控制等方面使用,具有最佳的穩(wěn)定性。
系統(tǒng)提供了如下現(xiàn)成的矢量圖形,更過的復雜圖形可以通過正式版本提供的專業(yè)復合圖形設計程序ShapeDesigner來設計。
1). Industrial Equipment Components.
2). Heating Equipment Components
3). Pumps Components.
4. 此外還有:
100% MFC設計。
超過30萬行有效代碼,以及超過300個C++擴展類。
自動代碼產生程序以及完整的開發(fā)文檔,幫助您快速構建各種基于Form++的應用。
提供開發(fā)高級應用系統(tǒng)的完善的可擴展的界面控制功能。
提供一行代碼修改屬性并支持Undo/Redo功能。
用戶可根據(jù)自己的需要對畫布、組件、操作等各種操作進行自定義。
同時支持單頁面或者多頁面應用程序。
對組件進行布局、間隔、順序編排。
打印、打印預覽以及輸出到圖象。
繪制直線、標注線、曲線、矩形、橢圓、添加文本、以及圖片等。
提供超過40個各種開發(fā)示例程序。
下面是使用E-Form++可視化源碼組件庫企業(yè)版本進行監(jiān)控系統(tǒng)應用開發(fā)的基本步驟:
1. 設計需要的監(jiān)控系統(tǒng)元件:
此步驟可以通過E-Form++提供的ShapeDesigner應用程序來進行設計,此工具可以直接將Microsoft Visio或者ConceptDraw等專業(yè)圖形工具設計的元件導入(SVG文件)進來使用,當然您也可以通過ShapeDesigner本身提供的豐富的基本 圖形來設計需要的監(jiān)控系統(tǒng)元件。在設計時,可以很方便的直接將畫布上設計的元件通過Copy, Paste的方式放到左邊的工具盒中,如下圖:
我們在設計元件的時候也可以對復合元件中的單個子元件定義一些便于以后識別和操作的Key ID值,這些值可以在以后通過調用GetKeyID來直接獲取。
2. 設計監(jiān)控系統(tǒng)需要的圖形界面:
E-Form++提供了專門的界面設計工具DiagramEditor,在此工具中,我們可以輕松的應用通過上面的ShapeDesigner設計的各種監(jiān)控系統(tǒng)元件來搭建圖形界面。在搭建界面時,根據(jù)需要我們可以為特定的元件指定相應的Key ID值,這些Key ID值便于我們在具體的程序中進行控制,例如我們可以控制開關的關與開,燈的閃爍等等。設計好的圖形界面我們可以保存為單一的xdg文件,如下圖所示:
3. 監(jiān)控程序框架的構建:
通過E-Form++可視化圖形組件庫提供的集成在Visual Studio的AppWizard(應用程序創(chuàng)建向導)來自動產生監(jiān)控系統(tǒng)的框架代碼,可將上面我們通過DiagramEditor設計的xdg文件導入到此程序中作為資源文件,當我們需要裝載一個設計界面的時候就調用如下函數(shù):
LoadXdgFromResource(...); 如果我們需要切換到新的界面,也可以同樣調用該函數(shù)來裝載新的界面。參考示例NetworkDemo.
4. 實時數(shù)據(jù)的采集與處理:
外部數(shù)據(jù)的采集我們可以通過View類或則Window類的定時器來進行采集,當需要更新界面上的元件的狀態(tài)的時候,可以直接通過我們上面設計的Key值來獲取圖形元件或者元件中的子圖形。
5. 事務的處理:
通過覆蓋相應的虛函數(shù)來時間各種事務的處理,例如我們只需要覆蓋CFOPcanvascore類的如下虛函數(shù)即可響應按鈕的事件:
virtual void DoButtbEvent(CODrawShape *pShape, Const int &nSel);
HMI Demo示例簡單的展示了如何定義多頁面工控界面,如下所示:
下面這個示例展示了E-Form++開發(fā)工控和仿真程序的極其方便性和快捷性,如此復雜的示例程序,開發(fā)全部過程只需要半天時間,如下圖:
狀態(tài)一,移動油桶:
狀態(tài)二,注油,油表同時顯示注油的數(shù)量:
狀態(tài)三,注油完畢,儀表歸零,油槍關閉,使用拖車運走:
下面是開發(fā)該示例程序的基本步驟:
一、設計該工控和仿真畫面需要的基本元件:
E-Form++組件庫本身提供了大量的工控元件,同時提供了專業(yè)元件設計工具ShapeDesigner,通過該工具可以輕松的設計需要的元件,我們將所有設計好的元件放入左邊工具盒中的一個固定的頁面中保存起來,方便使用:
以后再使用的時候直接拖拉出來即可。
二、設計工業(yè)控制與仿真畫面:
通過附隨E-Form++產品提供的DiagramEditor,可以為指定的工業(yè)控制 與仿真設計相應的畫面,DiagramEditor提供了非常完善而強大的功能,保證能夠正確高效的完成各種高品質的工控畫面的設計,在設計畫面的時候,我們只需要通過鼠標拖拉的方式將步驟一中設計好的現(xiàn)成元件拖入畫布中搭建即可,如下圖:
當我們在采集數(shù)據(jù)的時候,我們往往需要刷新畫布上的各種圖元的狀態(tài),在DiagramEditor特別為每個元件提供了5個關鍵字,通過任何一個關鍵字即可查詢到指定元件。如下圖的設定:
該設定中我們將最上面的元件的Key Value 1設定為K2。
三、搭建需要的工控與仿真程序:
通過E-Form++提供的AppWizard (應用程序創(chuàng)建向導),可以自動產生基于VE-Form++++的工控應用程序框架,要裝載任何工控畫面,只需要先將上面設計好的XDG工控界面文件導入到應用程序中形成XDGRES資源文件,然后調用如下函數(shù)即可:
LoadXdgFromResource(IDR_MAIN, _T("XdgRes"), FALSE);
當然,如果是需要裝載新的工控界面,也同樣可以調用這個函數(shù)。
四、實時數(shù)據(jù)的采集:
可以通過View類的定時器功能,定時采集數(shù)據(jù),如果需要更新畫面的元件,調用控件本身的Updatecontrol即可,當需要同時更新一系列元件的時候,可直接加入到CFODrawShapeList列表中,然后調用UpdateShapes即可。