基于软件组件技术的智能仪表软件系统

来源:网络  作者:网络转载   2019-09-22 阅读:686
摘 要:现场智能仪器仪表的软件系统由于开发者是在裸机上直接开发,没有任何支撑软件支持,因而增加了软件的开发难度,同时也极难保证软件的继承性和易维护性。文中基于软件构件技术提出了软件功能构件在CAN总线在现场智能仪表中的应用,并详细介绍了软件系统功能模块的开发基础、模块组态技术以及与现场智能仪表中实时数据库之间如何进行数据交换.很好地解决了上面提到的问题。关键词:软件组件模块;现场智能仪表;软件系统Software System Used in Intelligent Instrument based on Software ComponentLU Tan,QIAO Yi,YUAN Yun—fei(Dalian Jiaotong University,Dalian 116028,China)Abstract:Scene inteUigenee instrument measuring appliance software system.because the exploiter is develops directly on the bare mobile phone,does net have any support software support,thus increased the software development dificulty,simultaneously extremely is also dificult to guarantee the software continuing.Received the nature and easy to maintain.Proposed the software function component based on the software componenttechnology in the CAN main line in scene inteligence measuring applianee application.And introduced in detail this software system funefon module development foundation,module configuration technology as well as with scene intefigenee measuring appliance betwen the solid database carries on the data exchange,the very good solution above mentioned question.Keywords:software module;field intellgentinstnunent;software system0 引言  现场智能仪器仪表的软件系统的继承性和易维护性与其他大型复杂软件一样,是客观存在和迫切需要的。一是因为随着用户需求的不断提高和技术的不断进步,软件需要逐步完善和更新换代,使之保持强劲的市场竞争力;二是在系列产品中,软件系统都存在许多相似性和共同点。软件系统良好的继承性和易维护性能够很好地适应系列产品的开发。该软件的模块是一种具有对象的概念和封装形式以及信息隐屏功能的软件部件,它具有极好的可维护性和一定的继承性。组态序列反映了模块之间的相互作用,具有消息序列的本质特征。这种“组件模块加组态序列形成软件解空问”的方法,在很大程度上类似于面向对象、组件的程序设计方法,因而具有良好的继承性和易维护性。1 实时多任务操作系统  实时多任务操作系统由系统执行、就绪、睡眠等状态组成,具有剥夺式优先级任务调度、单片机片内资源管理、中断管理、时钟管理等功能,包含建立时问片、信号量P操作、信号量v操作等原语,数据传送借助实时数据库的数据共享功能来实现。实时多任务操作系统实现了对硬件资源管理、硬件细节的信息隐蔽和在任务级上对应用软件系统的支撑,并保证了该软件系统的并行设计、并行调试和并行运行,使每个任务在设计、调试和运行中,完整使用全部单片机资源而自动完成相互之问的协调管理功能。2 任务分配与管理  软件系统有4个任务级子系统,总体结构如图1所示。 3 组态原理和组态序列以及组态序列解译程序  组态软件是基于功能模块库加组态序列来实现的,可满足种类繁多的自动化行业和各种各样的应用需求。组态序列是每个特定的处理周期中应用软件所需完成的功能集合和模块之间的消息传递序列,也是功能的选择和按前后顺序方式运行的组织形式。组态软件原理结构如组态软件的中心是组态序列和实时数据库。当某一功能模块响应组态序列呼叫为应用任务服务时,首先从功能模块库中调用该模块,然后按该模块定义的数据接口从实时数据库中获取数据,在模块内部完成相应的操作、运算等处理后,再将其结果按定义的数据接口送回到实时数据库中去。如图2所示。  功能模块的解译程序被分散到实时多任务操作系统管理下的两个任务中运行,两个任务结构完全相同。功能模块的解译程序被分散到实时多任务操作系统管理下的两个任务中运行。这两个任务结构完全相同,每一个功能模块的组态数据由l6个单字节参数组成,第一个参数为模块功能号,是调用相应功能模块操作处理过程的状态字;第二至第十六个参数是输入数据(来自实时数据库)地址指针(占用两个参数,是该数据在数据库中的组号和组内序号)、单字节无符号常数、输出数据(送往实时数据库)地址指针、服务于该模块的私有数据(或数据表)地址指针等。这15个单字节参数的含义没有统一规定,由相应的功能模块来定义。组态序列解译程序框图见图3。4 组件模块及封装  组件模块由服务功能号、输人数据地址指针、输入常数(常数表)、输出数据地址指针等组成。每一组件模块有l6个单字节参数,第一参数为服务功能号(0#标志着组态序列的结束),第二至第十六参数是输入数据地址指针、输入常数、输出数据地址指针等。一个地址(位开关量地址除外)指针由2个参数组成,第一参数表示数据在数据库排列中的行号(组号),第二参数表示列号(组内序号)。一个输入常数、位开关量地址只用一个参数表示,输入常数只能是单字节无符号整数。某一组件模块除服务功能号外,其他参数可以没有定义。这种组件模块常常是和系统联系比较密切,或者是一些专用系统的特殊组件模块。在组态软件中,每一模块有3个接口:接口l用于设置模块缺省参数值;接口2用于设置启动时的工作参数初值;只有接口3才是完成功能模块的实现入口。在每一处理周期中,接口3必须实现所定义的全部功能。5 实时数据库  数据库是由每行l6个数据的数据组组成,数据库中的某一数据,可由指向该数据的排列行号和列号唯一指定。行号和列号形成的数据对是数据在数据库中的地址指针。数据库中的数据元素可以是浮点数、双字节整形数、字节开关量和位开关量。一旦组态序列形成以后,数据库中数据元素的性质随之确定。但数据内容却可以随时变化。系统数据、组件模块专用数据、数据寄存单元的组合形成了数据库丰富的内容。系统数据是支撑软件所使用的数据单元,包括A/D、D/A、数字量I/O、数码显示指针等。组件模块专用数据是组件模块对象的私有数据成员,当该组件模块出现在组态序列中时,其私有数据随之一起工作,为完成相应功能服务;当该组件模块未出现在组态序列中时,这些私有数据成员便失去定义,并可作为一般数据寄存单元使用。数据寄存单元是专为组件模块组态服务的,没有使用的数据寄存单元是没有定义的。在使用数据寄存单元时,应注意模块使用的数据的性质要与数据寄存单元的性质相符(如浮点数不能放在整形数和字节开关量寄存单元中)。另外,还要注意数据寄存单元的字节长度,以免超长数据与其他数据相冲突。[b]6 组态软件工程实现6.1 实时性能[/b]  软件的组态功能,还可归结为对开关量和模拟量的操作运算两大部分,即包含有常规PLC和回路调节器两大部分内容。然而在实际应用中,这两部分内容对实时性能的要求是不完全相同的。如果将它们放在同一个周期中处理,速度太快会限制所完成的工作量,而速度太慢将有损开关量处理的性能。因此,组态软件将这两大部份分开放在不同的任务中完成来解决这一矛盾。但如果将组态序列也分开,将会给组态过程和组态序列的编辑、下载等带来不便。为此,组态软件专门设计了功能模块Fun2,用于设定任务l和任务2的分界点。Fun2之前的模块队列在任务l中运行,处理周期为20 ms,优先级最高;Fun2之后的模块队列在任务2中运行,处理周期为100ms,优先级第一。6.2 组态序列编辑  组态序列由组态数据库管理。组态数据库共有1600点单字节参数,设计为100行×16列,每行为一个模块的组态,组态数据库最大能容纳100个模块。就地实现组态过程是直接在现场仪表的操作键盘上完成。该组态软件为组态数据库的进入设有专门的保护口令。当输入组态口令进入编辑组态数据库状态时,操作键盘将重新定义为组态数据库编辑键,实现其编辑功能。对组态数据库的编辑,是实现现场仪表控制运算功能的重构和寄存单元的重新分配。为保证在线组态时不出现危险,维护系统安全运行,组态软件在组态数据库的数据发生变化时,采用了以下保护措施:冻结模拟量输出值的大小和开关量的输出状态;在退出组态数据库编辑状态时自动复位,使软件系统重新启动,并重新设置组态队列中所用模块的缺省值。6.3 组态的工作参数  一些复杂的功能模块(如PID控制、自动整定等)有许多类似于“对象”概念中的属性、方法和事件,并可表达成参数的数值和开关量的状态。由于功能模块的组态数据中仅有16个单字节参数,根本无法满足对功能模块全部参数地址指针的设置,为此,在该组态软件的实时数据库中,有许多单元是特定为某些功能模块服务的。当这些功能模块出现在组态队列中时,这些特定数据项便有了定义,反映出该模块的属性、方法和事件。当这些功能模块没有出现在组态队列中时,这些特定数据项便失去了定义(但可作为通用寄存单元供其他模块使用,并随使用模块的重新定义而更改数据项的含义)。6.4 下载到智能仪表中的方法  软件系统采用自行开发的组态模块下载调试软件MDCSCFG进行组态模块的下载与在线调试它通过CAN总线,能对现场总线控制系统上的每一个MDCS组件进行组态、参数编辑、下载、上传、管理和实时监测、调试。MDCS-CFG的主要功能包括:  (1)对组件模块库14大类82种组件模块进行组态,组态序列的最大长度可达250行;  (2)对实时数据库100组共1 600点控制运行参数进行设置、修改、管理和实时监视;  (3)可一次下载/上传全部或部分组态数据;  (4)可一次下载/上传全部或部分实时数据库参数;  (5)可实时监视多达16点控制运行参数的变化;  (6)可管理8个串行口,14种MDCS类别,256个MDCS构成的多个项目或子系统;  (7)可构造自动测试系统、自动标定系统、调试支撑系统;  (8)对传输中的故障状态可自动检测,并可按设定的重发次数尝试多次传输。7 结束语  应用软件组件技术很好的解决了针对现场智能仪表软件开发中存在的开发难度太大,软件的继承性差和不易维护性等困难。给从事现场智能仪表软件开发的人员提供了方便有效的方法,减少了软件开发人员的工作量。参考文献:[1] 阳宪惠.现场总线技术及其应用.北京:清华大学出版社,1999.[2] 刘双剐.间歇生产过程的自动控制.机电工程.2000,17(3):94—96.[3] 袁爱进.现场智能测控仪表软件集成技术的研究.仪器仪表学报,2001(3):269~276.[4] 袁爱进.MDC~2001微型集散控制系统手册.大连交通大学三合仪表公司,2001.[5] 李正.OPC技术及组态软件在远程监控和维护中的应用.仪表技术与传感器.2OO6(5):24—26.[6] SHCAN2000分布控制系统智能测控组件系统组态使用手册.大连三合仪表开发公司,2OOO.[7] SHCAN2000分布控制系统系统设置及下载调试程序使用手册.大连三合仪表开发公司,2OOO.
标签: 组件
打赏

免责声明:
本站部份内容系网友自发上传与转载,不代表本网赞同其观点;
如涉及内容、版权等问题,请在30日内联系,我们将在第一时间删除内容!

购物指南

支付方式

商家合作

关于我们

微信扫一扫

(c)2008-2018 DESTOON B2B SYSTEM All Rights Reserved
免责声明:以上信息由相关企业或个人自行免费发布,其真实性、准确性及合法性未证实。请谨慎采用,风险自负。本网对此不承担任何法律责任。

在线咨询

在线咨询:

QQ交流群

微信公众号