(转)运行时组态技术探讨
--在传统人机接口实现自由编辑工艺模式的应用实例
一,问题的提出
运行时组态是组态软件技术近些年提出的新概念.运行时组态是指在运行环境下编辑工程,或对已有工程进行修改,添加新的功能.也就是说运行时组态是在组态软件运行环境中直接修改工程.运行时组态改变了已往必须进入复杂的组态及控制环境修改工程应用的历史,给组态软件带来了新的活力,并预示着组态软件新的发展方向.
先以开发成型机械手实际应用为例来说明什么是运行时组态,为甚么需要应用运行时组态的技术.
成型机械手是专应用于成型机的取放料的自动化设备,工作环境要求苛刻,需要长时间高精,高速运行.更主要的是,相对于一般自动化设备按固定工艺模式一步步运行的方式,成型机械手其生产工艺过程变化多端.如果按传统固定工艺模式编程,一旦需要修改或添加新的工艺,就必须对工程及控制系统进行修改.对于简单工艺的设备来说这也许可行,但对于像成型机械手这类工艺复杂多变的设备就很费时力,而且极易出错.
传统的组态过程是这样的,工程组态好并交付用户使用后,工程中包括的功能就固定不变了.如果要扩充,修改工程的功能,就必须请熟悉该工程的工程师进入组态获控制环境进行修改.
假如我们换一种编程方式呢?比如提供这样一个工程环境,在此环境中工程师有预见的设计好该工程所有最基本功能(基本动作),实际应用时由现场工艺人员根据实际需要来自由组合生产工艺以达到最终控制的目的.
如果真的的实现这种方式,这确实比靠工程师预先编好工艺的方式灵活,简单的多.这种由固定工艺转换到自由工艺编程的模式就是运行时组态技术所要解决的.
必须说明的是,这种运行时组态技术虽说在一些通用型人机界面上已有或多或少的应用,但这些都是基于像Microsoft windows这种高级编程环境的组态软件,如紫金桥监控组态,昆仑组态等.但一些设备常用的人机接口如got1000,preface等必竟是专用人饥操作接口,它们不像那些高级组态环境的人机接口那样有丰富的软件,链接库或数据库来支持.
因而,本文所要解决的就是应用运行时组态的思路,方法,技术来实现在传统人机接口由固定工艺到自由工艺编程模式的转变.
二,运行时组态的优点
1,减少编程工作量.对于一具体工程项目,如果能将项目中用到的功能(或动作)归纳出来做成模块,那么我们无须等到了解整个工程应用并做完才可以将其投入运行了.即只要把工程中需要的模块准备好,你就可以让最终用户(如工艺人员,设备操作员等)在运行时自己增加,编辑模块了,让用户在运行环境中修改和完善,满足实际工艺需求.该工作模式充分发挥了组态工程师和工艺人员自身的优势,快速完成工程项目.
2,解决了动作及运行参数不确定问题.有些工程本来就存在这样的不确定性,我们不可能用常规的办法将各种情况事先穷举出来,也不可能每次改变都要求现场的技术人员进入复杂的开发环境进行修改,运行时组态对此是非常适用的.
3,维护方便.传统意义的组态是在工程组态完成后,应用程序的功能已经固化好了.如果需要修改或增加新功能,还必须进入开发环境重新配置.这一般需要精通开发环境,并且熟悉该工程的工程师来完成.如果工程不是本单位元完成的,还要涉及到升级改造,甚至另立项目的费用.采用运行中组态技术后就可以由工厂的一般技术人员来完成.
4,实现软件标准化.自动化控制软件标准化是管理阶层,开发人员,维护保养甚至应用人员所不断追求的目标。组态过程中建立的各个模块就是实现软件开发标准化的基础.
三,安全性问题
其实运行中组态技术一个最需要解决的问题就是安全,在运行时可以随便增加,修改,删除工程中的模块或参数,确实是很危险的.如果没有保护措施,运行时就会带来很多的麻烦.我们可以通过以下两项安全措施来保护运行时的工程.
1,控制系统保护措施:
在控制系统层面对一些相互间会产生危险的动作作屏蔽,甚至排他性处理.做好基本安全保护,如软,硬件上的互锁.
2,工艺组态时保护
由于运行时的模块都是是由组态工程师生成的,因此运行时组态的自由度完全由组态工程师掌握.这就要求组态工程师对运行时提供的手段要加以限制,不要提供过多的,不必要的灵活性.同时对编辑过程提供必要的保护措施,如错误提示,组态后工艺无法保存等.
总之,组态人员既要给用户提供扩展功能的手段,又要对其加以足够的限制,以保证系统安全运行.
四,运行时组态的实现
应用于自动化中的人机界面是最基本,最常用的组态技术.它虽不像那些专门的组态环境软件那样功能丰富,应用范围广;但它以高稳定性,强适应性,低价格在自动化领域仍具有不可动摇的地位.好的,贵的并不一定是最有用的或最有效的.正于无论计算技术(特别是软件技术)怎么发展,PLC技术平台在自动化领域永远也不会过时一样.
虽说技术,理念在不但发展,但这并不就意味着旧的技术平台需要淘汰.其实我们要做的是用哪些新的理念,技术来改造,提升这些旧平台.因而这些工作需要自动化工程师自己去做,人机接口组态环境并没有提供现成的模版来实现运行时组态的应用,这种改造当然是很费时力的工作.
我们知道人机接口是实现现场操作人员操作,控制设备的电子接口.它主要提供虚拟的按钮控制,数据输入,状态监控等功能.虽说人机接口也提供一些数据处理功能,但它毕竟没有个人计算器那样强大的数据处理能力.因此人机接口仅能看作是一种静态处理技术,还不能完全算得上是动态处理技术.
好在一般人机接口都提供有二次系统开发接口,如脚本语言(有的称作宏指令).这些二次开发接口提供类似高级编程语言的编程环境,看到那些熟悉的”变量”,”数组”,”函数”,”语句”,甚至”指针”,我们是否看到胜利的曙光?
是的,我们有理由相信我们最起码也成功了一半.有了这些”指令”我们就可实现人机接口对象后台处理能力,实现各种接口编辑(如插入,删除)功能,逻辑判断,数据计算,状态提醒等能实现运行中组态所必有的一些基本处理能力.
更一步的,要实现友好,简洁的组态界面,我们还要充分应用人机接口组态环境本身亦提供的变址(或索引)功能,配方功能等等.
所有这些技术和功能的结合应用,加上运行中组态这类新的理念,我们有理由相信:在传统人机接口上也能(最起码也是近似)实现运行中组态的最终目的.
必须补充说明的是,运用配方功能实现数据的管理是我们常用到的技术或方法,如对保存各个工艺配方数据.但必须说明的是这些处理是静态的而不是动态的,这与运行中组态的思路还是不一样.但,事实上也正是因为这种配方处理功能让我找到一个迈向成功的窗口.
下面的成型机械手案例就基本上实现或应用了前面所阐述的一些技术,理念.
五,成型机械手上的应用
下面就是成型机械手实现自由编辑工艺模式这种运行时组态技术应用的主要画面.
组态环境不但提供各个模块的组态功能,还提供各个模块的参数配置(如果需要的话)功能.如上面组态后第5个模块”主臂升降”,在组态过程中随时可以自由修改模快的配置参数,只需要你点击此模块.
上面画面配备有灵活的编辑功能,”模块”对象,相应序号,指引光标,上下移动显示页面等等都可以根据用户实际编辑需要灵活使用,即提供所谓”所见即所得”的编辑环境.
同时组态环境还提供组态过程自动监控,错误判断功能供用户组态时参考或提供组态安全保护.
下面是一个组态模块其控制系统PLC相对应处理模块例子.
六,总结
组态软件一般称为通用组态软件.”通用”一词表示它可以适合各种应用领域.不同的应用领域虽然存在许多共性的东西,但是应用场合特别是工艺的差异是客观存在的.差异表现在画面的组织形式,组成部件,构建逻辑等等各方面.如果让组态软件能够包罗万象来适应中应用,那么呈现给用户的软件将过于复杂,最终会使得组态软件本身的友好性太差,失去其存在的意义.如前所述,运行时动态生成的元素是在组态环境下生成的,自动化工程师可以在组态环境下构建其应用领域所需模块,然后让工艺人员运用自己熟知的工艺在运行时搭建自己的应用.
脱离具体的PLC控制软件, 从宏观角度来理解自动控制系统,面向工艺来设计控制系统是自动化工程师应该追求的最高目标.我们知道PLC程序不过是你设计工程项目的工艺而已,有工艺要求才可能有程序,程序只是设备工艺的具体反应.了解了工艺要求也就等于了解了程序.编程不过是个规则,要你用这个规则把设备工艺写出来,因此你重要是了解设备的工艺和具体使用PLC品牌的功能.当你充分了解了设备工艺,设计完电气图纸,你的设计任务可以说基本完成了,剩下的就是看看PLC编程规则,根据工艺把程序写出来.
运用运行时组态理念或技术就是实现这个终极目标的具体表现形式.