1 引言
国内外有多种基于PC机WINDOWS操作系统的监控组态软件,美国Wonderware公司的FactorySuite软件是其中之一,它由InTouch,InControl,I/O Server,IndustrialSQL Server,InTrack,InBatch,SuiteVoyager等组件构成。本文仅介绍了其中的InTouch、InControl和I/O Server三种组件及其应用开发方法,并列举了实现连续控制、逻辑控制和顺序控制的应用实例。 InTouch是过程监视组件,采用面向对象的图形开发环境,便于高效、快捷地组态人机界面(MMI)。用于开发形象直观、图文并茂的操作监控画面、实时和历史数据曲线。 InControl是实时控制组件,支持逻辑梯形图(LD)、顺序功能图(SFC)和结构文本(ST)等组态方式,也提供了PID控制及运算模块的组态功能。用于开发连续控制、逻辑控制和顺序控制策略。 I/O Server是过程输入输出接口驱动程序,负责对物理接口的直接访问,实现该监控组态软件与硬件设备的数据交换。根据不同的硬件设备,选用相应的I/O驱动程序,用于实时数据的通信。 另外还提供了SuiteLink通信协议和OPC(OLE for Process Control)功能,具有灵活性与扩展性。
2 监控系统的设计
监控系统的设计包括人机界面设计、控制策略设计、人机界面与控制策略的通信。
2.1 人机界面设计 人机界面的组态和运行分别由InTouch中的WindowMaker和WindowViewer完成。WindowMaker是一个应用开发环境,用来建立窗口图形界面,定义I/O的连接。主要功能有操作监控画面的组态和数据点的组态,定义数据的类型和范围、报警和事件等。 WindowViewer是一个实时运行环境,运行操作监控画面。各种实时和历史数据、动态链接和动画显示,都只有在WindowViewer运行时才能生效[3]。
2.2 控制策略设计 控制策略的组态和运行由InControl实现,提供与IEC61131-3兼容的三种组态编程方式。 (1) 逻辑梯形图。通过对开关、触点、线圈和算法功能块的编辑,描述并实现逻辑控制功能。 (2) 顺序功能图。通过对有方向的流程框图和算法功能块的编辑,描述并实现顺序控制功能。 (3) 结构化文本。用脚本(script)语言编程,可以实现复杂控制算法。 以上三种基本的组态编程方式可以综合使用,例如用脚本语言实现逻辑梯形图中的功能块或顺序功能图中的一些步骤等。 除了以上几种组态编程方式,InControl还提供了符合ActiveX Server 规范的工厂对象编辑器FOE (Factory Object Editor),提供了几种常用的FOE模块,包括PID模块、模拟报警模块等,另外用户还可以向工程中添加ActiveX控件。 组态完成的算法程序以工程的方式存储,并在Runtime Engine上周期性地运行。Runtime Engine是InControl工程的运行平台,其他应用程序与InControl通信时,也是直接从Runtime Engine中获取数据。
2.3 人机界面与控制策略的通信 InTouch与InControl之间的通信方式主要有DDE方式和SuiteLink协议两种。 本应用系统采用SuiteLink协议。数据通信配置的方法是,在InTouch的数据点组态过程中,将需要与InControl通信的变量定义为I/O类型,然后在访问名中设置应用名为RTEngine,主题名为TagName,项目名为所要监视的变量名称。项目名称的选取遵循以下原则,对于InControl中的全局变量,直接使用InControl中的变量名;对于InControl中的局部变量,使用模块名.变量名的方式,如模块名为PID,变量名为PV,则项目名称为PID.PV;如果是用户自定义数据类型,则项目名称为用户自定义类型.变量名,例如用户自定义类型名称为Device,需要监视的变量为Level,那么项目名为Device.Level。
3 应用实例
本文用InTouch、InControl和I/O Server三种组件,实现了连续控制、逻辑控制和顺序控制。
3.1 连续控制实例

图1 贮罐液位的操作监控画面
贮罐液位的连续控制如图1所示,上有进口阀门,下有出口阀门,采用单回路PID控制。其应用开发的方法与步骤如下: (1) 定义I/O点。根据应用要求确定所需参数和I/O点,并在InTouch标记名字典中为每个变量定义标记名和类型,如表1所示。其中所有I/O类型的标记名,将要与InControl变量进行数据交换。 表1 贮罐液位单回路PID控制的I/O标记名

(2) 设计操作监控画面。在InTouch中组态画面,如图1所示,其中有设备图、PID控制器面板、PID参数设置按钮、趋势曲线按钮、报警按钮等[1],并对图形对象和已定义的标记名建立动画链接关系,规定动画属性。定义各个按钮的动作属性,单击PID参数设置按钮后弹出软键盘,进行PID参数设置。实时和历史趋势曲线以及报警均采用InTouch提供的模板。 (3) 组态控制策略。在InControl中组态单回路控制,其中PID控制算法由工厂对象(Factory Object)中的PID模块实现。通过填写对话框,可以对PID控制器的被控量PV、设定值SP、输出值、控制参数等进行组态。另外可以用脚本语言直接对参数进行赋值,例如,用PID.SP=80给SP赋值。 (4) 建立InTouch和InControl之间的数据交换链接。在InTouch的标记名字典中,通过设置访问名和项目名,利用SuiteLink通信协议,可以将InTouch中的标记名与InControl中的变量链接起来,如表1所示。建立链接后,在InTouch中调整相应的数据,InControl中对应的数据会发生同步的变化,反之亦然。 上述四步完成应用开发,再运行InTouch中的WindowViewer和InControl,操作员通过画面(如图1所示)进行操作监控。调整P,I,D参数,直至满足控制要求[2]。
3.2 逻辑控制实例

图2 燃油锅炉的操作监控画面
表2 燃油锅炉逻辑控制的I/O标记名

燃油锅炉的逻辑控制如图2所示,燃油经预热器预热,由喷油泵经喷油嘴喷射到炉膛内燃烧。首先用点火器点燃煤气,再点燃油,并用火焰检测器监视燃油火焰。为了保证燃油锅炉的安全稳定地运行,其点火、燃烧、停火清炉都必须严格地按要求进行。具体的工艺流程如下: 点火过程:首先燃油预热90秒,鼓风机送风,点火器接通点火,煤气阀打开点燃煤气(子火),子火燃烧60秒;然后打开喷油泵,点燃燃油(母火),母火燃烧40秒;最后关闭点火和子火,母火继续,进入持续燃油阶段。 持续燃油:此阶段用火焰检测器监视母火,一旦灭火立即进入停火清炉阶段。 停火清炉:首先关闭燃油预热器和喷油泵,并继续送风80秒,将锅膛内废气和杂质吹扫干净;然后关闭鼓风机,停止清炉。 异常处理:异常事件有母火灭火、蒸汽压力过高、水位高于上限或低于下限。一旦出现异常事件,立即进入停火清炉阶段。异常事件消失后,按启动按钮又自动点火,重新进入正常燃烧阶段。 根据应用要求确定所需参数和I/O点,并在InTouch标记名字典中为每个变量定义标记名和类型,如表2所示。另外定义定时器T1(燃油预热90秒)、T2(子火燃烧60秒)、T3(母火燃烧40秒)和T4(吹扫80秒),均为内存整型变量类型。 根据燃油锅炉的工艺流程,在InTouch中设计图2所示的操作监控画面。操作员可以操作ON/OFF开关、进水和出水阀,画面上有参数显示和状态显示。 根据燃油锅炉逻辑控制要求,在InControl中用逻辑梯形图(LD)组态工具,进行逻辑控制组态,如图3所示。这些符号可以从逻辑梯形图(LD)工具条中拖至开发界面,构成逻辑控制。

图3 燃油锅炉的逻辑控制梯形图
3.3 顺序控制实例 燃油锅炉配套的油料罐如图4所示,上、下分别安装了液位测量开关LH和LL,用两台进料泵P1和P2进油。当液位低于低限LL(LL=1,LH=1)时,两台进料泵P1和P2同时运行,以便尽快使液位上升到正常液位;当液位在高低限值范围内(LL=0,LH=1),即液位L处于LH和LL之间(LL<L<LH),液位为正常,只有一台泵运行,而且采用交替运行的方式,即上次是泵P1运行,下次在一台泵运行时应是泵P2运行,反之交替,依次循环;当液位高于高限LH(LL=0,LH=0)时,两台进料泵都停止。 类似于前面的例子,根据应用要求确定所需参数和I/O点,在标记名字典中为每个变量定义标记名和类型。根据油料罐的工艺流程,在InTouch中设计人机界面;在InControl中用顺序功能图(SFC)组态工具,进行油料罐的顺序控制功能组态,如图4(b)所示。图中用方框表示步(Step)和命令(Command),框内写步号和命令,步框和命令框之间用短水平线连接。步框之间用垂直线连接,再在垂直线上用短水平线表示转换,其旁写转换条件,用逻辑式表示。这些符号可以从顺序功能图(SFC)工具条中拖至开发界面,构成顺序控制。 顺序功能图4(b)由上、下两部分组成。上选择序列由步1,6,2组成,下选择序列由步4,3,5组成。每个步对应一个命令,运行或停止进料泵。为了满足两台进料泵交替运行,设置了步2和步5的交替功能命令。步3和步6使另一台进料泵运行,即两台进料泵同时运行。步1和步4使其中一台进料泵停止。

图4 油料罐的顺序控制功能图
4 总结
本应用系统利用了FactorySuite软件中的InTouch,InControl和I/O Server,实现了贮罐液位连续控制、燃油锅炉的逻辑控制和油料罐的顺序控制,控制效果良好,受到用户好评。
|