7
厦门西门子授权一级代理商交换机供应商
1 引言
智能建筑集成管理系统(以下简称为IBMS)作为一个典型的分布式系统,系统环境复杂,缺乏统一的规范和标准,它涉及到多种平台和多种协议间的通信与联接,需要与三方应用软件接口。Java 语言是基于网络开发、面向对象的新一代计算机编程语言。它具有对象封装、多态性和继承性等面向对象语言的基本特征,具有跨平台、可移植的特性,支持 Internet/Intranet网络模式下的数据分布与计算分布。由于 Java 所具有的这些功能特点,使其成为实现智能建筑集成管理系统的理想开发语言。
实时数据库RTDB(Real-Time Database)是实时软件的。实时数据库常常在动态环境下使用,用来监控现实世界对象的状态和发现所关注事件的发生[1]。实时数据库及时准确地现场数据是整个控制系统正常工作的基本前提。同时实时数据库子系统是联系图形子系统、历史数据库子系统、报表子系统、报警系统的桥梁和纽带。实时数据库系统结构的规划和管理系统具体的实现方法
是设计组态软件的和难点。实时数据库构建的合理性直接影响到整个系统的性能。目前,市场行的实时数据库产品主要有PI系统(适用于流程工业:国外),Info-Plus.21(主要在石油化工方面:国外),力控系统(主要用于控制领域:国内),SuPerlnfo(主要用于电力调度、石油、化工等领域:国内)等等。这些产品都是面向工业控制应用的,而且其产品的价格都比较昂贵,一般中小型系统不可能用此方式进行集成。
本文详细介绍如何利用Java的集合框架及其本身的语言特点开发面向智能集成系统的轻量级实时数据库。与其他的实时数据库相比,该实时数据库具有跨平台,简单易用及的特点,并且能够满足智能建筑集成管理系统的实时性的要求。非常适用于一般中小型系统,具有很好的实用及经济效益。
2实时数据库的特点
内存系统与磁盘系统具有不同的特性,主要表现在以下几个方面[2]:内存和磁盘在存取时间上有若干数量级的差别,内存的存取时间在10-8s的数量级而磁盘在5x10-3s数量级;内存是易失性的,而磁盘是性的存储器;当系统断电时,前者所存的信息立即消失,通电后也不会恢复;后者则反之,断电时保持信息不会消失,通电后即原样可使用存储格式不同。内存是字节或字编址的,而磁盘是块存储设备;数据的存储组织方法对性能影响不同。不同的组织方式对磁盘的性能影响远比对内存影响大,如顺序存取与随机存取的时间对内存没有什么变化,而对磁盘则有数量级的差别;存取方式不同。内存可由处理机直接存取磁盘则不能,内存比磁盘易于受到来自程序错误的直接数据破坏;
监控组态软件的实时数据库属于实时数据库中的一种,它具备实时数据库 的基本特征和属性,但和的实时数据库相比,它并不严格要求具备实时数 据库在理论上所要求的所有模型特征。近年来计算机技术的发展使存储器单位容量的价格不断下降,在现有条件下,单机上的工作内存已经很容易达到GB数量级。在这种条件下,利用实时数据库开发IBMS系统的实时数据管理模块是一个非常好的解决方案。
3 IBMS系统实时数据操作过程分析
一般来说BMS系统对实时数据的操作包括并发的多用户查询操作和实时数据的新操作。一般来说一万个监控点的值的刷新在0.5秒内完成才能满足工程上的需要,而实时数据到达客户端的时延一般也不能过一秒。所以内存数据库的提供紧凑的数据结构和的空间利用率以及各种对各种实时数据操作的高速执行。
对于IBMS系统的监控量,可以分为模拟量和监控量两种,而且监控点的信息也有静态信息和动态信息之分。由于数据点的类型不同,数据处理的方式也不同。我们分别定义它们的数据结构,分别进行存取。同时把数据点的静态信息和动态的变化值分别采用不同的储存和管理方式,以达到理想的性能并且实时数据库的设计也比较紧凑。
因为实时数据的组态信息在系统运行之前已经配置好了,对实时数据的插入及删除操作频率不是很高,相反对实时数据的写操作和读操作则非常频繁,数据库初始化时把相应的子系统的信息和监控点的名称,编号,计量单位,扫描周期等不会随时间变化的静态信息和随时间变化的实时监控数据分别用不同的变量中储存。因为所有的模拟量是按照固定设置的扫描周期刷新监控值的,所以模拟量的测量值采用的ArrayList数据结构进行储存,以实现较的刷新操作。在智能建筑的数字量型监控点一般来说是一些开关量,变化频率一般不会很高,有的监控点状态甚至是一个月之内都不会变化,所以数字量型监控点的监控值采用bbbb表储存以实现率的随机刷新的性能。
4实时数据库的设计
实时数据库与外部系统的典型互交如图1所示:监控客户端通过数据输出接口实时数据,不同的外部数据源通过数据输入接口输入实时数据。实时数据库则负责管理实时数据,为监控客户端提供统一的数据源视图,实现实时数据的高速访问及数据储存策略。
图1 实时数据库与外部系统的典型互交
4.1 实时数据库结构的分析
一个监控系统的实时数据根据智能建筑的要求设计实时数据在内存中的存放格式及存取方法。在本文的设计方案中实时数据库的定义主要分为两级,站的定义和点的定义。站是指使用同一个通讯端口的所有设备,其中每个站可以包含多个单元,单元是指对应的RTU(Remote Terminal Unit,远程终端单元)或者类似设备。点是系统基本的描述单位,它分属于两种类型,即数字量、模拟量。点属性 描述是系统数据库描述的主要内容,各点的属性依照类型的不同而不同。有些用于定义常量数据,例如站名、点名、类型、单位等;有些用于定义实时处理 参数,例如遥测报警的限值、脉冲电度的峰谷时段划分等;有些用于设置处理 方式,例如各种处理的允许标志、存储标志。另外,点还有一些属性是用于统 计计算的,例如电压合格率、大值、小值、电度峰谷平段的统计等[3]。为实现系统中各个设备运行状态和数据的实时监视,分别建立系统中各类 量的一个实时映射。这种映射用一种数据结构实现,通过面向对象的方法将这 些数据结构有效地封装起来而构成一个类,使它除了能实现系统运行状态的实时映射外,还能够进行一些相关操作,这些类就构成了实时数据库。
4.2 实时数据库静态类结构
实时数据库有两个的对象,用于有效地管理实时过程数据。一个是DataSource,另一个是DataManager。DataSource为各子系统在集成平台的镜像,负责保存子系统相关的信息,如有哪些监控点,每个监控点有哪些属性以及子系统的相关信息。DataSource类有三个重要的成员变量,分别是pointList,analogyPointCache 和digitalPointCache。其结构如图2所示。
图2 DataSource类的静态结构
其中pointList保存了监控点的静态信息,analogyPointCache 则为模拟量的高速缓存,类似地digitalPointCache则为数字量的高速缓存。
DataManager负责维持全局实时数据的镜像,并且管理客户端的高速缓存,分配每个客户端的服务号等。具体设计如图3所示。
图3 DataManager类的静态结构
4.3 实时数据的存储方式
DataSource对象中的pointList属性保存点相关的静态信息,其键值映射中的键为点名称,值也为一个bbbbMap,保存点属性名称及属性值的集合。analogyPointCache和digitalPointCache内部维持着一个按一定顺序的保存监控点实时值的ArrayList,其容纳的对象分别为analogyPointValue类和digitalPointValue类实例。这样就可以实现很的顺序批量新。同时analogyPointCache和digitalPointCache内部也都维持着一个名值对应的bbbbMap,其键值映射中的键为点名称,其值为analogyPointValue类和digitalPointValue类实例的引用,因为实时数据是采用bbbbMap的数据结构保存,所以AnalogyPointValue非常简单,只有一个类型为float的value属性,而digitalPointValue也是只有一个类型为float的value属性和一个类型为long的timestemp属性。这样程序在计算bbbbCode时速度比较快,可以实现较高速度的随机刷新。
图4实时数据的存储方式
在DataManager的全局实时数据缓存中analogyPointCache和digitalPointValue也保存着和子系统缓存一样的信息,以便实现较好速度的全局查找。
由以上的说明可知在实时数据的存储方式中充分利用了Java语言的对象引用机制的特点来设计实时数据的储存。在因为DataSource对象和DataManager对象的缓存都只是保存了监控点实时值的引用,实际保存监控点实时值的是ArrayList类。但ArrayList容器里的监控点实时值被新后,通过DataSource对象和DataManager对象缓存中的bbbbMap的实时值便自动为新的了。
4.4 实时数据处理过程
外部系统通过DataSource对象的updateAache ()方法新实时数据库内模拟量的高速缓存,如果方法传入的参数为bbbbMap,则不要求按照缓存储存顺序传入数据,如果方法传入的参数为List,则按照缓存储存顺序传入数据,后者新数据的速度大约是前者的2~3倍。数字量的新方法和模拟量相识,每个数字量的新记录都被保存到digStabbbogger,以方便查询其状态的变化情况。这功能对于监控系统是很有必要的。应用系统通过每隔一定时间间隔把digStabbbogger的内容储存到外存并清空digStabbbogger。同时利用Observer 的设计模式把DataManager对象注册为DataSource的观察者,如果数字量的实时数据有变化,DataManager就马上自动新相应的clientCache。
通过调用DataManager的getPoints()函数可以获得相应监控页面的实时数据。具体的流程为:根据pageID通过analogyPointCache模拟量数据,再根据pageID通过clientCache数字量数据,然后把所有数据组装为一个bbbbMap返回给调用者,后清空clientCache中相应的缓存。这里之所以没有简单的把所有的数字量数据返回是考虑到数字量相对来说变化速度不是很高,如一般的报警或设备开关状态的数字量在甚至一个月之内都不会改变,通过以上的处理方法可以实现只有但状态改变才把新信息传到客户端,优化了数据的传输过程,并有效地减低了服务器端的负载。
5 结束语
本文在分析智能建筑集成系统的实时数据存储过程的基础上,详细介绍了如何设计基于Java语言的面向智能建筑集成系统的轻量级实时数据库设计。对如何对智能建筑集成系统实时数据的管理进行了有益的探讨。本文所讨论的实时数据库技术已经应用到了大型的级智能化商城-广州轻纺城IBMS集成系统,该系统满足了现代智能建筑管控一体化的需求, 实现“信息孤岛”及统一调度,优化物业投运成本的目的。为智能建筑的优化管理和合理利用提供了切实可行的方案。
1、一个系统中使用的成熟技术至少应占到75%以上
“成熟技术”一是经过一定的生产实践考验的可编程控制器产品或类似设计,或者确定能在未来的生产实践中,经得起考验;二是设计工作人员对于需要使用的技术要有经验或有掌握它的能力。设计与配置一个可编程序控制系统选用的技术与设计方案切实可行。因为一个生产过程控制系统,一旦做出来,要长久使用下去,难以找到机会反复修改。设计的硬件系统和编程软件,其中某些缺欠,可能一直隐藏在已完成的系统中。若遇到发生破坏作用的条件,后果难以预料。
2、系统的硬件结构和网络要简明而清晰
硬件结构不要追求繁琐,网络组态不要追求交叉因素太多,要力求使用可编程序控制器自身配置的组网能力。在组成I/O机箱配套的模板时,建议型号简单,力求一致,模板密度不宜过大。使用的结线点不宜过多,从目前机箱的制造和配线工艺来看,输入与输出配线密度不能太高。
3、控制系统的功能和管理系统的功能应严格划分界限
由于可编程序控制器组成的过程控制系统中的实时性要求很高,而网络通信是允许暂时失去通信联系,过后自己能重新恢复,但是在重新恢复之前这一间隔时间可编程序控制器会处于失控。另外,在用多个可编程序控制器系统组成一个大系统时,对于主控制的关键命令,除了使用可编程序控制器自身的网络通信传送它的信息外,有使用它的I/O点做成的硬件联锁,特别是两者之间“急停”的处理;虽然两个系统都在自身的通信扫描中互相变换着“停止”或“急停”命令,但因一方在急停故障时已经停止运行,另一方并未收到已停止的信息而照常运行,其后果难测。可编程序控制器控制系统关键的“急停”应先切除执行机构的电源,然后将其信号送入可编程序控制器,这样可设备保护的时间。
4、可编程序控制器的程序要简明且可读
用户软件的编写是“平铺直叙”,用户软件可看成是一个有序的“黑盒子”系列,每个“黑盒子”按照结构化语言划分,可分为几种典型的语句。每个语句方式、手法可能十分单调,但一定要明确。在设计与编写这些语句时,若使用不易推理的逻辑关系太多,或者语句因素太多,特殊条件太多,就会使人阅读这些语句时十分难懂。因此,一个可编程控制器的用户软件的可读性,即编写的软件能为大多数人读懂,能理解可编程控制器在执行这个语句时,“发生了什么”是十分重要的。每一段程序力求功能单一而流畅,这是软件在使用和维护时的重要条件。
5、可编程序控制系统在硬件和软件上的预置,有运行检测的关键监视条件
可编程序控制系统配置了彩色图形工作站/屏幕监视,但从价格及反映现场状态的时间来看,屏幕监视尚不方便。关键的故障,或者在关键的机械设备附近,可配置一些指示灯,它们可以用数字量输出做成,用来监视程序的正常运行,或用来调试程序,在指示灯旁配以功能标牌,可帮助操作人员确认可编程序控制系统的正常运行和及时反映故障。
6、设计大中型可编程序控制系统时不要耗尽它的硬件和软件资源
对于设计的新系统,硬件上至少要保留15%左右的冗余,在软件编制时,同样要估计用户软件对计算机资源的需要与用量。尤其对中间继电器,计数器/定时器的使用,要留有余地。因为在调试和运行后,软件总会被、,甚至重新编制。已编制的软件让人无法和完善,在工程上是不实际的。
7、合理地配置可编程序控制器系统的冗余
可编程序控制系统可能做出多种方式的冗余,处理器的双机热备、冷备冗余是常见的方式。另外,双系统冗余,即处理器和全部的输入、输出、组网通信冗余,其价格和实用性虽然在许多工程项目中难以被人接受,但在有毒、有害的化工生产环境这种冗余很有必要。在设计系统中,要使配置冗余方式较为经济而又实用,力求使故障缩小在本设备身上。不要因某一设备发生故障,引起工艺流程中相关设备运行或状态受到冲击。
以上阐述的几个方面,是在可编程序控制系统总体方案设计时,要格外重视的问题,只有在设计系统时,考虑周到,系统投入运行之后,设计人员才能少些遗憾。
1 引言
随着棒材轧制线自动控制的不断提高,轧制速度越来越快,工艺要求也越来越高,实现轧制工艺的双线切分轧制后,成品包装成为棒材生产线的一个瓶颈问题。传统的包装台架,效率低下,自动控制程度低,几乎全是人工操作,已经不能适应快节奏的生产需要,因此提高成品包装的速度和改善成品包装的质量,成为整个轧制生产线亟待解决的问题。在实际的生产过程中,常常出现的轧线一切正常,却由于包装台架包装节奏慢,造成堆钢和堵钢,终制约所有的工序。
项目依据工艺的需要,结合生产的实际,采用成熟的自动控制技术,实现全自动控制。新的包装系统采用液压传动和机械传动相结合,辊道、链子等控制采用无触点开关柜和变频控制,现场采用接近开关和对射光电等检测元件,实现PLC逻辑控制,在操作台上实现画面监控、交接班记录、历史曲线、包装支数和适时报警等控制功能,同时实现自动称重功能。通过实践应用,采用自动控制技术的新包装台架,实现了自动计数,自动移钢,短尺剔除,钢捆称重,自动夹紧等控制工艺,从而结束了人力包装的时代,适应了快节奏的轧线生产要求。实践应用以来了明显的经济效益。
2 工艺流程
在棒材生产线,成品棒材经过冷床区域冷却,再经过冷剪定尺剪切,进入包装台架输入辊道控制区,从而进入包装台架区域。整个包装台架依据工艺划分为三个部分:入口区、区和出口区。下面对三个区域的工艺流程加以说明:
2.1入口区域
主要工艺说明:当钢进入包装台架,从辊道上由“移钢台架”移到一级和二级移钢链上,如果有短尺钢,当钢移到“短尺剔除辊道”上时,“剔除电磁铁”得电吸起标尺钢材,“剔除辊道”开动将短尺钢移到短尺辊道区域,再经“剔除翻钢”将其移走。入口区域结束。其中“移钢台架”的动作原理(如图1:移钢台架动作周期),从原位上升,前进,到前位,再下降到低位,后退到原位;“一级链”上可以设定把数(一般设计1-4把);在“二级链”的链轮上设定计数拨轮,用于准确计数,并且“二级链”具有高位和低位限位。
注释:在工艺控制部分,涉及到控制元件的术语加双引号,以利于理解和叙述。下同。
2.2区域
主要工艺说明:钢从入口区的“二级链”移到“三级链”,其中“三级链”由“液压马达”实现加速控制,使叠加的钢材在“三级链”上散开,确认钢材是否有短尺,同时确认钢材的支数;“三级链”把钢材移到“分
离臂”处,“分离臂”接近开关感应使“分离臂”上升,同时“分离轮”转动,把钢材移到“上收集臂”上,由对射光电判断“上收集臂”有钢;到一把的钢支数后,“下收集臂”上升,“上收集臂”下降,把钢移到“下收集臂”上,由对射光电判断“下收集臂”有钢,“下收集臂”下降,把钢放到“收集辊道”上,区结束。
2.3出口区域
主要工艺说明:钢从区移到在“收集辊道”上,“收集辊道”开动,由“撞齐档板”把钢撞齐,此时有对射光电判断钢在“收集辊道”上,依据工艺要求,“收集辊道”设计有9米和12米档板和立式夹送辊;钢在“收集辊道”上经过撞齐,移送到“打捆辊道”,此时有四个“液压成型器”,夹紧将钢打捆;由对射光电判断打捆结束,“打捆档板”下降,把钢移送到“称重辊道”上,延时称重;由对射光电判断称重结束,降下“称重档板”,把钢移到卸“载辊道一段”和“卸载辊道二段”,有“撞齐档板”撞齐,同时对射光电判断“卸载辊道”有钢;“卸载链”上升,上升到高位,向前移动钢捆,移动到“存储链”,“存储链”可以存储3-4捆钢,出口区结束,参见图2:工艺流程图。
3 控制系统设计
为实现包装台架的自动控制,新的包装工艺控制使用了一台西门子S7-300作为逻辑控制,使用Intouch软件通过工业以太网通讯实现报警、监控和控制,其中还应用了液压传动和变频技术控制辊道鼠笼电机,无触点开关柜控制链条和部分辊道。(附图3:控制框图)
3.1逻辑控制部分
在逻辑控制部分,入口区、去、和出口区,分别实现手动和自动转换,可以任意选择三个区域的手动和自动切换。现场使用的检测元件选用了接近开关和对射光电两种器件,来判断自动步骤的连续性,使自动状态的包装工艺流畅。在关键的钢材计数器设计上,由PLC中实现计数支数的逻辑控制时,在操作台画面上设计有“计数到”,来实现模拟自动状态和对故障状态时的手动干预;在短尺剔除工艺部分,剔除电磁铁可以在横梁上前后移动,依据钢材不同长度设定对应的定尺,同时设定限位开关,实现自动短尺剔除功能。
3.2画面控制部分
画面实现了包装工艺的全流程自动/手动设备的运行状态监控显示,可以在不工作空车状态下模拟整个工艺流程,以便于操作人员熟悉工艺流程和交接班时间检测设备运行状态;同时实现画面操作和操作台操作两地控制现场设备,并编制有设备故障维护说明,以利于设备维护排除故障的快速和准确;其中液压控制部分,实现设备监控和液压设备温度、压力、液压塞堵塞、电机投入连锁等显示和报警提示功能。并在画面实现:历史曲线,交接班记录,规格记录,包装支数记录,程序设定,屏幕显示,打印记录,故障检测,故障报警及自动处理等功能。