1 引言
ifix是全球最领先的hmi/scada自动化监控组态软件,已有超过300,000套以上的软件在全球运行。intellution公司的ifix作为第三方软件,具有强大的scada和hmi功能,并且提供了与多种plc进行通讯的i/o驱动程序,可与多种plc直接接口,在国内外其他工业控制领域获得了广泛的应用。本项目采用ifix作为支撑平台,充分利用ifix提供的各种服务和资源,开发了一个有色金属冶金热风炉自动控制系统。
2 系统概要
热风炉自动控制系统结构如图1所示。
图 1 热风炉系统结构图
plc完成数据的采集、处理和控制。plc所要采集的模拟量数据包括:热风炉各位置的温度、压力、冷风总支管流量、温度、压力,热风流量、发生炉煤气流量、温度、压力,助燃风机电流、频率等等,由变送器输入;开关量数据为所有热风炉
控制阀门的启/停状态,比如热风阀开、热风阀关、热风阀集中控制,由继电器接点输入。控制功能包括模拟量调节和开关量控制。其中模拟量调节包括发生炉煤气流量调节、空气流量调节以及助燃风机频率调节等,由pid运算实现,输出控制调节阀的开度;开关量控制包括控制各个阀门的自动启/停、助燃风机启/停、紧急休风的阀门闭合。数据处理包括:参数越上限或越下限报警及连锁,设备异常报警、电源故障报警等。上位机监控系统由ifix软件实现,包括scada系统和hmi图形系统。scada系统通过与plc建立通讯关系,读取实时数据并形成实时数据库;hmi图形系统显示实时数据和报警信息、记录历史数据、打印报表、修改设定参数以及实现软手动控制等。本系统选用的plc系统为abb公司的ac300集散控制系统,通讯方式为dcom通讯协议。
3 scada系统
上位机scada系统的最基本功能就是数据读取和数据管理,ifix通过软件接口i/o驱毒程序与plc直接建立通讯来读取数据,数据管理则通过数据库实现。
i/o驱动程序是连接硬件设备和scada服务器的通讯程序,它能够对通讯错误进行自动检测、报告和恢复,并且提供对通讯的冗余支持。由于控制设备多种多样,而且各自所采用的通讯协议也各不相同,因此,intellution公司提供了各种与常用控制设备进行通讯的高性能的i/o驱动程序。在设计监控系统时,为了使scada服务器能与硬件设备建立通讯,首先必须根据硬件设备选择相应的i/o驱动程序并对其进行正确配置。i/o驱动程序的配置由配置软件来实现,他设置通讯口及其参数,控制器的名称以及scada服务器所要访问的控制器中的i/o地址、数据类型等。系统运行时,自动启动i/o驱动程序,而且配置文件也将被自动载入运行。
图 2 数据传输流程图1
4 实时数据库“块”系统设计
ifix采用面向对象的数据库设计方法。数据库中的主要元素是“块”,不同的块将完成不同的功能。将多个块按顺序连接起来,就组成了“链”。在链中,数据块顺序传递,可实现特定的功能。ifix提供的“块”,安功能及其在链中的位置,可以分为“初级块”和“次级块”。“初级块”直接与i/o驱动程序交换数据,位于链的首位,可单独使用;“次级块”从“初级块”或上一级块获得数据,不能位于链的首位,也不能单独使用。“初级块”和“次级块”又分别包含了多种类型的块。
4.1 块类型的选择
在热风炉自动控制系统设计中,为了读写plc中设备的参数值,采用了“初级块”中的ai块(模拟量输入块),ar(模拟量寄存器)块,ao(模拟量输出)块,di(数字量输入)块,dr(数字量寄存器)块,do(数字量输出)块。ai块和di块在每一个扫描周期,当sac(扫描、报警、控制)程序扫描该块时,都会向i/o驱动程序发送或接收数据,其数据传输流程如图2所示。
ar块和dr块也能从i/o驱动程序读或者写数据,但它们不需要sac程序的支持,而且只是在引用该数据块的画面打开时才传输数据,因此,该块占用的内存最小且可以提高sac程序的运行性能。数据传输流程如图3所示。
图 3 数据传输流程图2
在数据库设计时,静态数据(如:pid控制的设定值、参数报警极限、连锁控制限制、计数器定值等)采用寄存器块,以提高系统的运行性能;而测量参数则采用参数输入块,以保证实时性。
4.2 块的参数配置
数据库块具有多种属性参数,有的是只读参数,有的可以读/写,对其参数的不同设置将影响到数据的准确性。
(1)i/o地址(a_ioad)的设定。块参数a_ioad(i/o地址)指定该块读取数据的地址,以ascii码表示,设置格式为:device:address,其中,device为i/o驱动程序中配置的控制器的名称;address表示i/o点的地址,与i/o驱动程序中配置的i/o点的地址具有相同的格式。
(2)标度转换(a_iosc)的设定。对于模拟量数据来说,从控制器中读取的原始数据往往是以数字形式表示的,如以无符号整数表示,但对于操作人员,需要知道的确是以工程单位表示的具有实际物理意义的数,如以mpa表示的压力值,因此,需要对原始数据进行交换。块的a_iosc参数的选择综合考虑了i/o点原始数据的类型、取值范围及是否进行范围超限监测、报警等因素。
(3)扫描时间(a_scant)的设定。定时扫描的数据块,扫描时间的设定格式为time:phase,time为sac扫描时间的间隔,phase为在该时间间隔内,扫描该块的起始时间。例如,设定block1块的扫描时间为5:1,则sac每隔5秒执行一次扫描,每个扫描周期开始后1秒扫描block1块。对于具有相同扫描时间的数据块,为其分配不同的扫描起始时间,可以避免cpu同时处理太多数据,从而提高系统的运行性能,这对大型系统尤为重要。
5 上位机hmi的实现
利用ifix提供的各种图形对象、控件和内嵌的vba,设计开发了图形化的人机交互界面。
5.1 实时数据显示
scada服务器是后台运行的,在运行模式下,其数据库参数对用户是不可见的,因此,使用大量的图形对象直观地显示实时数据,对模拟量参数,采用“数据连接(datalink)”对象,它与数据库的连接如下:
picture.datalink1.format1.source=fix32.thisnode.tag.fcv,格式中,picture为显示图形对象的画面名称,thisnode为本监控系统的名称,tag为数据库块的名称,fcv为该数据库块的当前值。对于重要的控制参数(煤气流量、冷风流量、助燃空气流量、总管压力等),分别采用实时曲线显示一个小时内参数的变化趋势,以了解控制器的条件品质,实时曲线通过调用“chart”对象实现。
对数字量参数,采用“shape”类对象前景色的变化来模拟其状态的变化,它与数据库的连接方式如下:
picture.oval1.aninatedforegroudcolor.source=fix32.thisnode.tag.fcv.
5.2 历史数据记录与报表打印
历史数据库的形成由后台运行程序“htc.exe”完成,该程序以定时存储的方式记录了最近30天内的一些重要的运行参数(煤气流量、压力、冷风流量、压力、热风流量、温度、总管压力等),以备今后查看或进行故障分析。历史数据以数据文件的形式存储,通过“chart”对象显示30天内任一天的参数变化曲线,同时,也可以用报表的形式打印出来。打印程序由vba编程实现,它通过sql语言查询数据库,并调用excel形成指定格式的报表。
5.3 故障报警
系统运行过程中出现异常情况是,通过报警提醒操作人员。报警采用三种方式:改变“数据连接”对象的颜色、弹出报警画面、声光报警。三种方式都是通过编写事件驱动的后台运行的调度程序(scheduler)来实现,数据颜色的变化通过改变图形对象的前景色属性来实现,例如,正常运行时,阀门的颜色用绿色显示,阀门关到位是用红色显示,阀门故障时用黄色闪烁显示,阀门中间状态用蓝色显示。报警画面采用“报警总汇(alarm summary)”图形对象,该对象显示报警的参数、类别、状态等。声光报警通过报警事件触发仪表柜上的声光
报警器实现。
5.4 设定参数修改
系统在运行过程中,随着运行工况的变化,可能需要对各种阀门开度的设定值、压力、温度报警上/下限、设备连锁上/下限等过程控制参数进行修改。对这些参数的修改将会影响到系统的性能和设备的安全,因此,为了保证系统的安全,设置了两个操作权限,即操作员和管理员级。当操作权限为操作员级时,只能对参数进行查看,修改部分参数,但不能退出系统;为管理员级时,能执行所有才做。系统启动时,缺省的操作权限为操作员级,若想修改程序或退出系统,则需要按照用户名和密码登陆为管理员。另外,根据操作安全的需要,对系统设置了环境保护,启动时自动全屏显示,并屏蔽了可能导致误操作的组合键,使系统运行更加安全、可靠。
6 结束语
项目已在韶关冶炼厂热风炉系统中获得应用。该系统采用abb公司的ac800m系列plc,上位机采用dell工业服务器,下位机与上位机通过abb的网卡相连,i/o驱动采用dcom通讯协议,利用ifix的opc驱动。运行结果表明,热风炉各个阀门开/关全部实现自动控制;调节参数波动小,连锁程序稳定有效。上位机系统运行稳定,使用方便,操作简单;整套系统具有较高的自动化水平,达到了设计目的。
利用ifix提供的scada组件,采用i/o驱动程序与不同厂家的plc进行接口以获取数据,用数据库来管理数据;利用hmi提供的图形对象显示和监控数据,保证的数据高度的完整性。实践表明,本系统运行稳定,自动化程度高,具有较好的应用前景。