北京三微软件开发公司联合工业控制,实时监控,数据采集,监控与组态解决方案。工业控制软件对图形处理要求很高,需要很强的实时响应能力,往往开发类似的界面需要花费很长的开发时间,E-Form++可视化图形组件库是开发类似应用的最佳选择之一,组件库本身全部采用VE-C++开发而成,并采用最先进的MVE-Form++设计模式,将显示层和数据层分开处理,具有极强的扩展性。能为您开发任何类似应用节省大量的开发时间!
北京三微软件开发公司提供的这些解决方案并不意味着E-Form++可视化图形组件库只能开发这些方面的应用,事实上E-Form++同任何其他第三方C++组件库一样,包含数百项可以分开独立使用的功能。同QT, MFC等一样,您可以独立决定是否需要E-Form++中的某项功能,一般来讲,只要您需要图形显示、需要流程图、控制图、打印功能、排版功能、仿真、电子地图、电力接线图、表单等等功能,您就可以使用E-Form++组件库,当然有的时候也许您只希望使用E-Form++提供的下拉颜色等控件而不需要绘图功能,那也没可以。这个示例展示了如何使用E-Form++可视化图形组件库开发工控方面的应用,这个示例包含了三个能够独立运转的控件,包括:泵机,测量表和活塞,E-Form++可视化图形组件库支持简单而精确的定时器控制功能,可以根据需要创建其他工控组件.如下图:
1. E-Form++从设计之初就为画布上的任何图形单独设定能独立启动的定时器功能,这意味着只要你希望让画布中的某个图形动起来就可以让其动起来。
2. E-Form++库本身采用100% VC++开发而成,所有代码经过严格测试,让您的应用达到最佳性能。
3. 该解决方案已经为全球众多航天,军工,科研单位成功在仿真,工业控制等方面使用,具有最佳的稳定性。
系统提供了如下现成的矢量图形,更过的复杂图形可以通过正式版本提供的专业复合图形设计程序ShapeDesigner来设计。
1). Industrial Equipment Components.
2). Heating Equipment Components
3). Pumps Components.
4. 此外还有:
100% MFC设计。
超过30万行有效代码,以及超过300个C++扩展类。
自动代码产生程序以及完整的开发文档,帮助您快速构建各种基于Form++的应用。
提供开发高级应用系统的完善的可扩展的界面控制功能。
提供一行代码修改属性并支持Undo/Redo功能。
用户可根据自己的需要对画布、组件、操作等各种操作进行自定义。
同时支持单页面或者多页面应用程序。
对组件进行布局、间隔、顺序编排。
打印、打印预览以及输出到图象。
绘制直线、标注线、曲线、矩形、椭圆、添加文本、以及图片等。
提供超过40个各种开发示例程序。
下面是使用E-Form++可视化源码组件库企业版本进行监控系统应用开发的基本步骤:
1. 设计需要的监控系统元件:
此步骤可以通过E-Form++提供的ShapeDesigner应用程序来进行设计,此工具可以直接将Microsoft Visio或者ConceptDraw等专业图形工具设计的元件导入(SVG文件)进来使用,当然您也可以通过ShapeDesigner本身提供的丰富的基本 图形来设计需要的监控系统元件。在设计时,可以很方便的直接将画布上设计的元件通过Copy, Paste的方式放到左边的工具盒中,如下图:
我们在设计元件的时候也可以对复合元件中的单个子元件定义一些便于以后识别和操作的Key ID值,这些值可以在以后通过调用GetKeyID来直接获取。
2. 设计监控系统需要的图形界面:
E-Form++提供了专门的界面设计工具DiagramEditor,在此工具中,我们可以轻松的应用通过上面的ShapeDesigner设计的各种监控系统元件来搭建图形界面。在搭建界面时,根据需要我们可以为特定的元件指定相应的Key ID值,这些Key ID值便于我们在具体的程序中进行控制,例如我们可以控制开关的关与开,灯的闪烁等等。设计好的图形界面我们可以保存为单一的xdg文件,如下图所示:
3. 监控程序框架的构建:
通过E-Form++可视化图形组件库提供的集成在Visual Studio的AppWizard(应用程序创建向导)来自动产生监控系统的框架代码,可将上面我们通过DiagramEditor设计的xdg文件导入到此程序中作为资源文件,当我们需要装载一个设计界面的时候就调用如下函数:
LoadXdgFromResource(...); 如果我们需要切换到新的界面,也可以同样调用该函数来装载新的界面。参考示例NetworkDemo.
4. 实时数据的采集与处理:
外部数据的采集我们可以通过View类或则Window类的定时器来进行采集,当需要更新界面上的元件的状态的时候,可以直接通过我们上面设计的Key值来获取图形元件或者元件中的子图形。
5. 事务的处理:
通过覆盖相应的虚函数来时间各种事务的处理,例如我们只需要覆盖CFOPcanvascore类的如下虚函数即可响应按钮的事件:
virtual void DoButtonclickEvent(CODrawShape *pShape, Const int &nSel);
HMI Demo示例简单的展示了如何定义多页面工控界面,如下所示:
下面这个示例展示了E-Form++开发工控和仿真程序的极其方便性和快捷性,如此复杂的示例程序,开发全部过程只需要半天时间,如下图:
状态一,移动油桶:
状态二,注油,油表同时显示注油的数量:
状态三,注油完毕,仪表归零,油枪关闭,使用拖车运走:
下面是开发该示例程序的基本步骤:
一、设计该工控和仿真画面需要的基本元件:
E-Form++组件库本身提供了大量的工控元件,同时提供了专业元件设计工具ShapeDesigner,通过该工具可以轻松的设计需要的元件,我们将所有设计好的元件放入左边工具盒中的一个固定的页面中保存起来,方便使用:
以后再使用的时候直接拖拉出来即可。
二、设计工业控制与仿真画面:
通过附随E-Form++产品提供的DiagramEditor,可以为指定的工业控制 与仿真设计相应的画面,DiagramEditor提供了非常完善而强大的功能,保证能够正确高效的完成各种高品质的工控画面的设计,在设计画面的时候,我们只需要通过鼠标拖拉的方式将步骤一中设计好的现成元件拖入画布中搭建即可,如下图:
当我们在采集数据的时候,我们往往需要刷新画布上的各种图元的状态,在DiagramEditor特别为每个元件提供了5个关键字,通过任何一个关键字即可查询到指定元件。如下图的设定:
该设定中我们将最上面的元件的Key Value 1设定为K2。
三、搭建需要的工控与仿真程序:
通过E-Form++提供的AppWizard (应用程序创建向导),可以自动产生基于VE-Form++++的工控应用程序框架,要装载任何工控画面,只需要先将上面设计好的XDG工控界面文件导入到应用程序中形成XDGRES资源文件,然后调用如下函数即可:
LoadXdgFromResource(IDR_MAIN, _T("XdgRes"), FALSE);
当然,如果是需要装载新的工控界面,也同样可以调用这个函数。
四、实时数据的采集:
可以通过View类的定时器功能,定时采集数据,如果需要更新画面的元件,调用控件本身的Updatecontrol即可,当需要同时更新一系列元件的时候,可直接加入到CFODrawShapeList列表中,然后调用UpdateShapes即可。