APP下载

利用VB语言实现组态软件组件的开发*

2017-03-28徐庆增杨硕珩

山西电子技术 2017年1期
关键词:控件开发者组态

徐庆增,杨硕珩

(天津科技大学,天津 300222)

利用VB语言实现组态软件组件的开发*

徐庆增,杨硕珩

(天津科技大学,天津 300222)

组态软件是用于流程控制的上位机软件,在工业控制领域有着广泛应用。但是在实际开发过程中,软件开发者与实际工业控制人员在软件需求方面的沟通常常存在误解,本文说明了一种组态软件中组件开发的关键原理与应用方向,创新的使用了敏捷开发思想解决开发问题,以一套组态软件中的某一组件开发实例说明了开发流程,一定程度上解决了软件开发者与工业控制人员在需求对接方面的困难,为相关工作者提供了借鉴。

组态软件;ActiveX控件;VB语言软件开发

组态软件广泛应用于工业控制领域,它们是处在自动控制系统监控层一级的软件平台和开发环境,是实现工业自动化过程中不可缺少的一部分[1]。组态软件的特点是使用者可以将组态软件的基本组件搭建成不同形式的软件,从而快速搭建出符合用户需求的软件。不同的计算机语言几乎都为我们提供了一些基本组件,例如:按钮、文本框等。基本组件帮助我们避免了重复图形用户界面开发时的底层工作。组件亦可以根据开发需要自行定义,组态软件实际上就是由不同的自定义组件“搭建”而成的,该技术可以提高代码的重用性[2]。本文利用VB语言编写的ActiveX控件实现组态软件组件的开发。

1 ActiveX控件与VB语言概述

ActiveX是Microsoft公司对于一系列策略性面向对象程序技术和工具的称呼,其主要的技术是基于组件对象模型(Component Object Model)。ActiveX在Windows操作系统中以OCX结尾的文件,OCX也称为OLE,即对象链接与嵌入控件[3]。这项技术由Microsoft提出,其中一项重要应用就是用于开发组件(注一)。ActiveX具有平台无关性,该技术可以使不同语言开发的小型程序组合使用,包括C++和Visual Basic或PowerBuilder,甚至一些技术性语言如VBScript。Visual Basic语言是由Microsoft公司开发的一款适合非计算机专业人员使用的计算机语言,具有使用简单且使用易上手的特点,Microsoft公司为之提供了方便的图形界面开发工具。本文选择使用VB语言开发ActiveX控件并将之应用于组态软件开发,不仅体现了软件开发中面向对象设计原理的封装性,使开发者可以直接使用现有图形界面开发工具,避免重复基础工作,还兼具了VB语言的使用特点,方便工业控制相关从业人员理解组态软件原理,根据不同工业体系的需要自行组装修改,极大地减少了软件二次开发的复杂程度,为组态软件开发的底层框架提供了新的高度。

2 使用ActiveX控件的组态软件组件开发过程

组态软件组件可以被视为一种小型程序,因此其开发流程需要遵照软件工程标准进行,本文利用敏捷开发思想,优化了组态软件开发步骤并根据实际组件的大小调整开发步骤[4]。

2.1 需求分析

自定义ActiveX控件是面向特殊用户设计的组件,因此在开发之前需要详细调查这类用户的软件使用需要,确定开发不同类别的控件。根据敏捷开发中“主张简单”的思想,本文未进行过度构建软件模型的活动,因此控件的核心功能需要确定,另一些则可以根据用户需要在之后扩充,以下是这类需求分析中的一些启发式规则:

1) 确定所模拟的实体是不可再分割的整体而不是可拆分多个控件的聚合(例如控件应该是一台发动机而不是发动机组)。

2) 确定所模拟的实体具有哪些可调节的功能,如:某台机器不同的功能、同一功能的不同状态。

3) 确定可与所模拟实体组合为更大系统的其他实体以及它们的上下游关系。

下面是本文所设计的发动机控件的需求分析:

> 电动机能够扇叶转动,转动的速度与设置的电机转速相关。

> 电动机有按钮启动停止,红色停,绿色转。

> 电动机有状态标志可以设置读取,显示当前状态为停止还是运行。

> 电动机有转速属性可以设置读取。

> 电动机有功率属性可以设置读取。

> 电动机有电流属性可以设置读取。

> 电动机有电压属性可以设置读取。

> 电动机转速在控件中有一个仪器显示,显示实时的电机转速值。

> 电机转速显示的字体font可调。

> 电机转速显示的显示框top可调。

> 电机转速显示的显示框left可调。

> 电机转速显示的显示框height可调。

> 电机转速显示的显示框width可调。

> 电机背景颜色可以选择。

2.2 详细设计(注二)

在需求分析基础上本环节需要确定ActiveX控件的所有属性成员与方法成员,属性成员即所模拟实体所具有的状态,方法成员不仅包括了该实体变更不同状态的方法,还包括与调用其他控件(实体)的方法[5]。需要注意的是方法成员的调用实际是根据监听不同事件实现的,因此需要额外设计自定义的事件。以下列出上文中发动机控件的部分属性:

1) BackColor发动机背景

2) BackStyle背景类型

3) MSpeed发动机转速

4) MState电机状态

5) MSpeedFont电机转速显示框内字体

2.3 编码与测试

编码过程与小型VB程序开发过程有着很大的相似之处,具体步骤如下:

1) 在VB6.0环境下创建一个[标准EXE]工程,随后在该工程下添加一个[ActiveX控件]工程,这是因为控件工程不能够自行启动,需要借助一个容器进行启动[6]。

2) 在用户控件设计器窗口下设计控件界面,将需要的图片资源添加到工程中,在UserControl对象上进行设计。

3) 为控件添加属性、事件和方法

a) 为想添加的属性创建属性过程,在代码页面选择“工具→添加过程”会跳出一个对话框,然后在单选按纽中选择“属性”(创建事件则需要选择“事件”)注意如果不是只读或只写属性,应当将属性及其事件和方法设定为公有类型,使开发者可以自由访问。

b) 如果属性在设置之后未及时保存,那么开发者输入的组件属性会在运行之初的初始化被全部重置为默认值,所以需要利用WriteProperties和ReadProperties实现属性的读写,在WriteProperties和ReadProperties事件中都有PropBag对象,WriteProperty方法可以用作保存属性值,应用于WriteProperties事件中。而ReadProperty方法用作读取属性值,应用于ReadProperties事件中。他们的语法是:

PropBag.ReadProperty(DataName[,DefaultValue])

PropBag.WriteProperty(DataName,Value[,DefaultValue])

c) 注意利用PropertyChanged方法在获取属性值之后通知WriteProperty事件保存属性,PropertyChanged方法是用户控件特有的方法,其作用是,通知系统某个属性发生了改变。

d) 方法的添加与属性的添加类似,设计人员可以通过创建一个Public类型的Sub过程即可实现。

下面是发动机控件中某属性过程的一个具体实例:

2.4 ActiveX控件的测试及使用

1) 首先应再次核对需求文档,确保开发需求已全部实现,随后需要对源码进行路径覆盖,确保不同路径下控件具有较强的鲁棒性,随后可以发布。

2) 选择编译源代码,生成.ocx文件,同时VB6.0环境会自动注册该控件,在下次使用时需要使用“工程—部件”命令打开“部件”对话框,将控件加载到工具箱中[7]。

图1 电机组件截图

3 结束语

ActiveX控件实现的组态软件组件的开发流程较为简单,开发者只需掌握VB语言即可完成,同时,ActiveX控件极大的增强了代码的复用性,并具有较高的仿真能力,从自动化软件的开发与使用角度来说具有重要的意义,ActiveX控件开发的难点在于开发者对于实际工业生产流程和工业设备的了解,传统开发者需要和客户广泛沟通后做出详实的需求分析,本文采用敏捷开发思想进行的软件开发可以在软件开发的风险控制与开发进度上取得平衡,确保开发成果可以如期被客户接受使用。

注一:广义的组件是指一个不透明的功能实体,能够被第三方组装,且符合一个构件模型。本文的ActiveX控件即是一种Microsoft公司支持的语言所设计的组件。

注二:实例中的ActiveX控件并非大型软件,故在开发流程中省去概要设计阶段。

[1] 马国华.监控组态软件及其应用[M].哈尔滨:哈尔滨工业大学出版社,2005.

[2] 欧金成,欧世乐,林德杰,等.组态软件的现状与发展[J].工业控制计算机,2002,15(4):1-5.

[3] 郭永瑞,孙朋德.ActiveX控件的编写和使用[J].科技信息,2007(22):48-49.

[4] 邓靖颖,黄穗.敏捷开发:极限编程在管理信息系统开发中的实践探讨[J].计算机工程,2004,30(24):189-191.

[5] 张帆.基于VB编写的ActiveX控件在组态软件中的应用技术研究[J].甘肃科技纵横,2009,38(2):28-28.

[6] 崔艳芳.ActiveX控件在组态软件中的应用[J].工业控制计算机,2005(5):61-62.

[7] 马军.21天学通VISUAL BASIC(21天学编程系列)(附光盘)[M].第3版.北京:电子工业出版社,2014.

ActiveX Control Development with VB Language

Xu Qingzeng, Yang Shuoheng

(TianjinUniversityofScience&Technology,Tianjin300222,China)

The configuration software is a kind of software which is used for process control. This paper introduces the key principle and application of the configuration software, solves the development problem with agile development idea. It also uses an instance of configuration software development to introduce the process that can reduce the difficulty for developer and industrial control workers in the communication of software requirement and provide a reference for other researchers.

configuration software; ActiveX control; VB software development

2016-11-09

天津科技大学,学生实验室创新基金项目(1510A205)

徐庆增(1981- ),男,内蒙呼伦贝尔人,实验师,硕士研究生,研究方向:智能控制和仿真应用。

1674- 4578(2017)01- 0065- 03

TP311

A

猜你喜欢

控件开发者组态
基于PLC及组态技术的恒温控制系统开发探讨
关于.net控件数组的探讨
基于PLC和组态的智能电动拧紧系统
“85后”高学历男性成为APP开发新生主力军
PLC组态控制在水箱控制系统的应用
16%游戏开发者看好VR
铸造行业三维组态软件的应用
栝楼产业开发者谢献忠
ASP.NET服务器端验证控件的使用
基于嵌入式MINIGUI控件子类化技术的深入研究与应用