企业: | 北京亚控科技发展有限公司 | 日期: | 2004-06-04 |
---|---|---|---|
领域: | 仪器仪表 | 点击数: | 2670 |
唐 锐 胥布工 陈志忠 1 引言 组态软件是近年来在工业自动化领域兴起的新型软件开发技术,随着智能楼宇行业的迅速发展,组态软件在这个新的领域也得到了广泛的应用。 在市场上诸多品牌软件的激烈竞争中,组态王以其纯中文界面、编程风格简单、实时性能好, 且与其他应用程序交换方便、 易调试, 支持数百种国内外流行的外部设备的特点,兼具极富竞争力的价格优势, 在诸多竞争对手中脱颖而出。 笔者一直采用组态王软件开发楼宇自动化管理软件。在实际的工程应用中,笔者发现智能楼宇控制工程中存在大量相同的监控对象,例如整栋大厦的房间照明系统、新风机及空调机等。由于在组态王软件中暂不支持指针变量,因此通常的做法是针对每个监控对象开发一幅画面。当监控对象的数目达到一定程度时,这种方法带来的不便就非常明显:用户需要建立许多幅完全相同的画面,在每幅画面中又要建立完全相同的动画链接,而当需要对这些画面或画面中的动画链接进行极细微的改动时,则需要将所有画面都改动一遍,其工作量可想而知非常巨大,也使楼宇自动化管理软件开发周期大大延长。 通过对组态王软件的深入学习和研究,笔者发现可以在组态王中以某些命令语言函数读写的方式来模拟指针变量的功能,实现监控多个相同对象共用一个画面,下面以一个实际的楼宇控制工程为例说明此方法。 2 组态王命令语言函数 组态王的命令语言是一段类似C语言的程序,工程人员可以利用这段程序来增强应用程序的灵活性。命令语言的句法和C语言非常类似,是C的一个子集,具有完备的词法语法查错功能。 组态王支持使用内建的复杂命令语言函数,主要有:字符串函数、数学函数、系统函数、控件函数、配方函数、报表函数、历史趋势曲线函数、画面管理函数、登录管理函数等。通过各种函数的巧妙调用,组态王可以实现许多复杂、强大的功能。 下面简要介绍在本解决方案中将要使用的2种函数: (1) FileWriteFields函数 此函数往指定文件中写入CSV(逗号分隔变量)记录,其调用格式为: FileWriteFields(Filename, FileOffset, StartTag, NumberOfFields) 其中:Filename为指定要写的文件;FileOffset为指定写此文件的起始位置,若 FileOffset 为 0,此函数将写到文件末尾。若为1,则写到开头;StartTag为指定第一个数据项的变量名称,此变量名必须以一个数字结尾(如MyTag1);NumberOfFields为指定要写的字段数目(此文件的每条记录中以逗号隔开的字段的字段数目)。
(2) FileReadFields函数 此函数与(1)对应,表示从指定文件中读入CSV(逗号分隔变量)记录,其调用格式为: FileReadFields(Filename, FileOffset, StartTag, NumberOfFields) 其中:Filename为指定要读的文件;FileOffset为指定读此文件的起始位置,若 FileOffset 为 0,此函数将读此文件末尾。若为1,则表明从头开始; StartTag 为指定第一个数据项的变量名称,此变量名必须以一个数字结尾(如MyTag1);NumberOfFields为指定要写的字段数目(此文件的每条记录中以逗号隔开的字段的字段数目)。 3 BA工程实例介绍 某学院学生宿舍BA系统分为8栋宿舍楼,共有872间宿舍,36间活动室,宿舍控制分为照明回路和插座回路,每间宿舍有1个照明回路和1个插座回路;每间活动室有1个照明回路和1个插座回路,此外学生宿舍区还有室内公共照明回路74路,室外公共照明4路。BAS系统控制每个回路并检测其相应的运行状态。 本BA系统的最大特点是所有宿舍、活动室及公共回路照明的控制规律相同,可以抽象成完全相同的控制对象,只是在具体控制参数上有所变化,因此所有控制对象在组态王数据词典里建立变量的类型、数目完全相同,其各个房间的控制画面,除房间号码不同,其余也完全相同。 按照通常的开发方式,为了实现进入房间内部对于单个房间的监视和控制,除建立八栋宿舍楼的房间分布画面外,还必须对于每个房间建立一个房间内部画面,即必须建立986幅相同的画面,然后将每个房间的变量分别链接到这些画面上。 4 调用读写函数实现多个相同监控对象共用一个画面的解决方案 首先,为了优化工程的数据词典,按照单个房间需要建立的变量构建一个结构变量,并命名为“房间”,结构变量内容为: 房间- -照明状态1 离散型 - - 照明控制指令1 离散型 - -照明定时选择1 离散型 - -照明时间表1 整数型 - -照明报警1 整数型 …… 在数据词典里对于每个房间建立一个变量类型为“房间”的变量,所有房间的变量均以房间号命名,如:房间1101、房间1102、房间1103……,同时建立一个命名为“房间内部”的中间变量。 4.1 方案流程图(如图1所示)
图1 方案流程图 4.2 画面与程序实现 在工程中按照宿舍的布局分别建立8栋宿舍的画面,同时建立所有房间共用的内部公共画面 |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
1.我有以下需求: | |
|
|
2.详细的需求: | |
* | |
姓名: | * |
单位: | |
电话: | * |
邮件: | * |