兵工自动化 软件技术 O. I. Automation 2005年第24卷第3期 Software Technique 2005, Vol. 24, No. 3
·105·文章编号:1006-1576(2005)03-0105-02 ActiveX控件的开发及其工控界面设计
范艳军,孙力 (华南理工大学 自动化科学与工程学院,广东 广州 510640)
摘要:ActiveX控件的开发及其工控界面设计,采用VC框架和类向导开发,以MFC ActiveX ControlWizardk自动生成空OCX文件,并将设备作成OCX文件。设备控件外观可通过PHOTOSHOP画出或将设备照片作为资源文件载入控件得到。通过控件的事件,方法和属性以实现控件与工控软件内核的沟通。 关键词:ActiveX控件;工控界面;VC;OCX文件 中图分类号:TP391.9 文献标识码:A
Development of ActiveX Control and Design of Industrial Control Interface
FAN Yan-jun, SUN Li (College of Automation Science & Engineering, South China University of Technology, Guangzhou 510640, china)
Abstract: The ActiveX control is developed and interface of industrial control is designed with the VC frame and guide of class. An empty OCX file was created automatically with MFC ActiveX Controlwizard, and the control of equipment was made into the field OCX. The facade of equipment control was drawn with PHOTOSHOP or the photo of equipment used as VC resource file was loaded control. The communication between control and the kernel of industrial control software is realized through control event, method and attribute. Keywords: ActiveX; Industrial control interface; VC; OCX file
1 引言 为形象的表现控制现场,最好的办法就是让用户界面上的设备具有和真实仪器相似的外观。VC以其强大、灵活的特点成为主流开发平台。利用其图形图像处理功能可方便开发出与真实设备外观相似的控件,添加必要的事件、方法和属性之后即可通过该控件与控制现场进行交流,以表现控制现场和进行有效控制。作好与现场设备有相似外观的单个控件后,通过基于对象的编程开发工具调用控件,将所作单个设备控件连接,调整各自工作状态,就能反映整个控制现场。
2 ActiveX控件的开发 ActiveX技术是基于COM(组件对象模型)建立起来的编码和API协议,是与平台无关的技术。即在一种编程语言下开发的控件无需修改,就可在另一种编程语言中使用。这与使用Windows通用控件类似。利用VISUAL C++提供的框架向导和类向导可开发OCX文件。使用MFC ActiveX ControlWizardk可自动生成空的OCX文件,每个OCX文件可以含有多个控件。但OCX文件过大不利于容器程序的调用,所以将一类设备制作成一个OCX文件。利用PHOTOSHOP画出工控设备外观,或将实际的工控设备拍照作为资源文件载入控件,作为设备控件外观。然后在OCX文件的ONDRAW函数里填写代码,其编程方法如下:
int w_CBitmap,h_Cbitmap; //定义两个整型变量存储位图的宽和高 Cbitmap Bitmap; //定义位图类 BITMAP BM; //定义BITMAP结构,以获取位图的参数 CDC Pdcl; // 定义一个CDC类 Bitmap.Loadmap(IDC_BITMAP); //将位图装载,该位图即是设备外观 Bitmap.GetObject(sizeof(BM)); //得到位图结构 w_CBitmap=BM.bmWidth; w_Cbitmap=BM.bmHeight; Pdcl.CreateCompatibleDC(Pdc); //创建于显示设备场景兼容的CDC对象 Pdcl.SelectObject(&Bitmap); //将位图送入场景 PdcÆStretchBlt (rcBounds.left,rcBounds.top,rcBounds.Width(), rcBounds.Height(), &Pdcl , 0 , 0 ,w_Cbitmap, h_Cbitmap, SRCCOPY); //将位图显示在(0,0)为上端点,宽为rcBounds.Width() //高为rcBounds.Height()的区域内, //其中Pdc,rcBounds为ONDRAW函数的参数 Bitmap.DelectObject( );
其中rcBounds.left为控件左顶点的横坐标,rcBounds.top为控件左顶点的纵坐标,rcBounds.Width(),rcBounds.Height() 为控件的宽与高。通过这段代码将资源号为IDB_BITMAP1位图作为设备外观来显示,工控界面上的设备与现场设备就具有近似的外观,可模拟工作现场。 制作了具有设备外观的静态控件后,还须在工控软件中表现设备的动态工作状态。为此通过MFC ClassWizard添加一个WM_TIMER消息的处理函数
收稿日期:2004-11-08;修回日期:2005-02-24 作者简介:范艳军(1978-),男,山西人,2001年毕业于中北大学,现华南理工大学在读硕士,从事智能控制理论与应用研究。兵工自动化 软件技术 O. I. Automation 2005年第24卷第3期 Software Technique 2005, Vol. 24, No. 3
·106· OnTimer(),使控件经过预定时间之后切换代表不同工作时段的位图资源,以表现动态效果,在OnTimer() 函数中编写如下代码: switch(n) {case 1: Bitmap.LoadBitmap(IDB_BITMAP1); //装入位图IDB_BITMAP1,工作状态1 break; //跳出switch语句 case 2: Bitmap.LoadBitmap(IDB_BITMAP2); // 装入位图IDB_BITMAP2,工作状态2 break; //跳出switch语句 case 3: Bitmap.LoadBitmap(IDB_BITMAP3); //装入位图IDB_BITMAP3,工作状态3 break; //跳出switch语句 } n%=3; //每调一次函数,换一个工作状态,循环3种状态 n++; //计数增加 通过程序使控件调用一次函数替换一张位图,产生动态效果,以表现不同工作状态。控件除了必要的外观,还需要通过控件的事件、方法与工控软件内核沟通。事件是指当应用者对控件施加操作,控件获知该操作后通知容器程序,容器程序作出处理;方法是指当容器调用该方法时,控件内部完成操作。而完成该操作的函数实体在控件内部。事件和方法都有固有的和自定义两种类型。固有的是windows系统默认的,通过MFC ClassWizard可添加事件和方法。 3 工控界面的设计 开发工控界面之前,应将所开发的控件进行注 册后方可像其他标准控件一样使用。注册方式为:打开开始菜单,执行“regsvr32”+控件的路径。注册成功后将需要用到的控件载入VB开发环境中使用。将其应用于化工厂转窑工控软件界面制作,效果如图1。该界面效果直观,形象。反映了工作现场状态,满足工控软件的应用需求。
图1 工控界面效果图 4 结语 用控件开发方式可在较短的时间内开发出画面形象,美观的工控界面。将复杂的工控软件的界面和控制内核分离,有利于编程人员分工合作和处理内核问题。同时使程序模块化,便于程序的调试。是一种有效的开发模式。
参考文献: [1] 陈建春. Visual C++高级编程技术—开发实例剖析[M]. 北京: 电子工业出版社, 1999. [2] (美)Namir Clement Shammas. 王国印, 张赤红 译. Visual C++使用指南[M]. 北京: 清华大学出版社, 1995. [3] 马安鹏. Visual C++6 程序设计导学[M]. 北京: 清华大
学出版社, 2002.
摘登编号:1006-1576(2005)03-13;收稿日期:2004-10-17
来稿摘登
安全网管异构体系的实现 钟其兵,陈波 (西南科技大学 计算机学院,四川 绵阳 621002)
摘要:安全网管异构体系将各厂家的IDS和防火墙加以整合,统一管理,构建网络安全防御系统。系统通过局域网工
作站和GUI客户端进行配置,以管理远程模块。IDS和防火墙,在第一层C/S结构中为用户表示层,第二层C/S结构中为
中间层。系统交互通过IDS代理,并产生新的入侵检测和防火墙规则,实现有效的网络安全管理。
Implementation of Different System for Secure Network Management
ZHONG Qi-bing, CHEN Bo (College of Computer, Southwest University of Science & Technology, Mianyang 621002, China)
Abstract: Different system for network security management is that different IDS and firewall products of different companies were integrated to manage them unitedly and to construct defense system of network security. The system was configured through LAN workstation and GUI client side to manage remote model. IDS and firewall is used as denotation layer of user in first layer C/S structure, and as middle layer in second layer C/S structure. The communication between the system and denotation and middle layers was implemented with IDS agent to generate new rules of inbreak detection and firewall, and network security management was realized.