第四章 力控组态新工程的步骤
在这章中,通过一个简单的例子,介绍用力控组态新工程的基本步骤。 一、 新工程的简介 1、假设的工艺过程
工艺设备包括一个油罐,一个进油控制阀门,一个出油控制阀门。用于控制两台阀门的PLC,如下图所示:
2、PLC的逻辑算法:
当进油控制阀门打开时,则开始进油。一旦存储罐即将被注满,进油控制阀门关闭,出油控制阀门打开。一旦存储罐即将被排空,进油控制阀门打开,出油控制阀门关闭。如此反复进行。 3、力控的PLC仿真驱动
SIMULATOR—力控的PLC仿真驱动
SIMULATOR是力控®的PLC仿真程序,为了适应本例子的要求,内嵌了逻辑算法,并且对数据通道作了约定:
增量寄存器1(模拟输入区)第0通道 对应油罐的液位
PLC1的DI区域(数字输入区)第0通道 控制油罐的进油控制阀门 PLC1的DI区域(数字输入区)第1通道 控制油罐的出油控制阀门 PLC1的DO区域(数字输出区)第0通道 启动/停止PLC程序的开关 4、工程要完成的目标
(1)创建一幅工艺流程图,图中包括一个油罐,一个进油控制阀门和出油控制阀门,全部使用电磁阀带动气缸阀。
(2)阀门根据开关状态而变色,开时为红色,关时为绿色。
(3)创建实时数据库,并与SIMULATOR进行数据连接,完成一幅工艺流程图的动态数据及动态棒图显示。
(4)用两个按钮实现启动和停止,启动和停止PLC程序。
二、在力控中建立新工程时,首先通过力控的“工程管理器”指定工程的名称和工作的路径,不同的工程一定要放在不同的路径下。 指定工程的名称和路径
启动力控的“工程管理器”
图1-1 按“新增应用”按钮,出现如下对话框:
图1-2 应用名:所新建的工程的名称
路径:新建工程的路径,默认路径为:c:\\Program Files\\PCAuto 说明:对新建工程的描述文字
点击“确定”按钮,此时在工程管理器中可以看到添加了一个名为test的工程,然后再点击“开发系统”按钮,进入力控的组态界面。 二、 创建组态界面
进入力控的开发系统后,可以为每个工程建立无限数目的画面,在每个画面上可以组态相互关联的静态或动态图形。这些画面是由力控开发系统提供的丰富的图形对象组成的。开发系统提供了文本、直线、矩形、圆角矩形、圆形、多边形等基本图形对象,同时还提供了增强型按钮、实时\\历史趋势曲线、实时\\历史报警、实时\\历史报表等组件。开发系统还提供了在工程窗口中复制、删除、对齐、打成组等编辑操作,提供对图形对象的颜色、线型、填充属性等操作工具。 力控开发系统提供的上述多种工具和图形,方便用户在组态工程时建立丰富的图形界面。在这个工程中,简单的图形画面建立步骤如下: 第一步:创建新画面
进入开发环境Draw后,首先需要创建一个新窗口。选择“文件[F]/新建”
命令出现“窗口属性”对话框,如下图所示,
输入流程图画面的标题名称,也命名为“储罐液位监控示例”。单击按钮“背景色”,出现调色板,选择其中的一种颜色作为窗口背景色。其它的选项可以使用缺省设置,详见《力控®用户指南》。最后单击“确认”按钮退出对话框。
第二步:创建图形对象
现在,在屏幕上有了一个窗口,还应看见Draw的工具箱。 如果想要显示网格,激活Draw菜单命令“查看/网格”。
■ 首先,我们需要在窗口上画一个储罐。从工具箱中选择“选择子图”工具。出现“子图列表”对话框,从中选择一个罐,如下图所示
工具箱
子图列表 ■ 可以修改罐的位置及大小。单击该罐,拖动其边线修改罐的大小。若要移动该罐的位置,只要把光标定位在罐上,拖动鼠标就可以了,如下图所示:
■ 接下来,我们要画出入口阀门。选择工具箱中的“选择子图”工具,在
“子图列表”对话框中选择符合要求的阀门子图,修改阀门的位置及大小。用相同的方法画出一个出口阀门。
■ 选择工具箱中的“垂直/水平线”工具, 在画面上画两条管线。
■ 修改两条管线的颜色、立体风格和宽度。先选中一条管线,单击鼠标右键, 出现右键菜单。选择“对象属性”菜单项,出现“改变属性”对话框。选择立体风格,宽度改为8,颜色选为灰色。选中另外一条管线,进行同样的修改,如图3-8所示。
■ 选择工具箱中的“文本”工具,在画面上写两个显示液位的字符串:“液位值:”、“######.####”。其中“######.####”用来显示液位值,显示4位小数。
■ 最后,我们要画两个按钮来执行启动和停止PLC程序的命令。选择工具箱中的“按钮”工具 ,画一个按钮。把按钮挪到合适的位置并调整好它的大小。按钮上有一个标志“Text”(文本)。选定这个按钮,在文本框中输入“开始”,
然后单击“确认”。用同样的方法继续画“停止”按钮,完整图如下图所示。
■ 现在,已经完成了“储罐液位监控示例系统”应用程序的图形描述部分的工作。下面还要做几件事。这就是定义I/O设备、创建数据库、制作动画连接和设置I/O驱动程序。数据库是应用程序的核心,动画连接使图形“活动”起来,I/O驱动程序完成与硬件测控设备的数据通讯。 三、定义I/O设备
在力控中,把需要与力控组态软件之间交换数据的设备或者程序都作为IO设备,IO设备包括:DDE、OPC、PLC、UPS、变频器、智能仪表、智能模块、板卡等,这些设备一般通过串口和以太网等方式与上位机交换数据;只有在定义了IO设备后,力控才能通过数据库变量和这些IO设备进行数据交换。在此工程中,IO设备使用力控仿真PLC与力控进行通讯。 定义IO设备的步骤如下:
我们后面要在数据库中定义4个点,但面对的问题是这4个点的过程值(即它们的PV参数值)从何而来?从前文所描述的力控®结构功能示意图知道,数据库是从I/O Server(即I/O驱动程序)中获取过程数据的,而数据库同时可以与多个I/O Server进行通讯,一个I/O Server也可以连接一个或多个设备。所以我们必须要明确这4个点要从哪一个设备获取过程数据时,就需要定义I/O设备。
1. 在Draw导航器中双击“I/O设备驱动”项使其展开,在展开项目中选择“PLC”项并双击使其展开,然后继续选择厂商名“PLC”并双击使其展开后,选择项目“仪表PLC(Simulator(仪表PLC))”,如下图所示:
2. 双击 “Simulator(仿真PLC)”出现如下图所示的“I/O设备定义”对话框,在“设备名称”输入框内键入一个人为定义的名称,为了便于记忆,我们输入“PLC1”(大小写都可以)。接下来要设置PLC的采集参数,即“数据更新周期”和“超时时间”。在“数据更新周期”输入框内键入1000毫秒。
提示:一个I/O驱动程序可以连接多个同类型的I/O设备。每个I/O设备中有很多数据项可以与监控系统建立连接,如果对同一个I/O设备中的数据要求不同采集周期,也可以为同一个地址的I/O设备定义多个不同的设备名称,使他们具有不同的采集周期。 例如,一个大的存储罐液位变化非常缓慢, 5到10秒钟更新一次就足够了,而管道内压力的更新周期则要求小于1秒钟。这样,可以创建两个I/O设备:
PLC1SLOW,数据更新周期为5秒,和PLC1FAST,数据更新周期为1秒。
3. 单击“完成”按钮返回,在“Simulator(仿真PLC)”项目下面增加了一项“PLC1”,如图3-13所示。
如果要对I/O设备“PLC1”的配置进行修改,双击项目“PLC1”,会再次出现PLC1的“I/O设备定义”对话框。若要删除I/O设备“PLC1”,用鼠标右键单击项目“PLC1”,在弹出的右键菜单中选择“删除”。 通常情况下,一个I/O设备需要更多的配置,如:通讯端口的配置(波特率、奇偶校验等)、超时时间、所使用的网卡的开关设置等。因为这是一个“仿真”I/O驱动程序,它仿真“梯形图逻辑”和常用I/O驱动程序任务(实际上完全由PC完成),没有实际的与硬件的物理连接,所以不需要进行更多的配置。
现在要记住,我们创建了一个名为“PLC1”的I/O设备,下面将要介绍如何使用它。
四、 创建实时数据库
数据库DB是整个应用系统的核心,构建分布式应用系统的基础。它负责整个力控®应用系统的实时数据处理、历史数据存储、统计数据处理、报警信息处理、数据服务请求处理。
在数据库中,我们操纵的对象是点(TAG),实时数据库根据点名字典决定数据库的结构,分配数据库的存储空间。
在点名字典中,每个点都包含若干参数。一个点可以包含一些系统预定义的标准点参数,还可包含若干个用户自定义参数。
我们引用点与参数的形式为“点名.参数名”。如“TAG1.DESC”表示点TAG1的点描述,“TAG1.PV”表示点TAG1的过程值。
点类型是实时数据库DB对具有相同特征的一类点的抽象。DB预定义了一些标准点类型,利用这些标准点类型创建的点能够满足各种常规的需要。对于较为
特殊的应用,可以创建用户自定义点类型。
DB提供的标准点类型有:模拟I/O点、数字I/O点、累计点、控制点、运算点等。
不同的点类型完成的功能不同。比如,模拟I/O点的输入和输出量为模拟量,可完成输入信号量程变换、小信号切除、报警检查,输出限值等功能。数字I/O点输入值为离散量,可对输入信号进行状态检查。 有些类型包含一些相同的基本参数。如模拟I/O点和数字I/O点均包含下面参数:
NAME 点名称
DESC 点说明信息
PV 以工程单位表示的现场测量值
力控®实时数据库根据工业装置的工艺特点,划分为若干区域,每个区域又划分为若干的单元,可以对应实际的生车间和工段,极大地方便了数据的管理,在总貌画面中可以按区域和单元浏览数据。在报警画面中,可以按区域显示报警。
下面就以这个工程选择一种点类型,并建立实时数据库,先分析一下本工程要做什么:
入口阀门不断地向一个空的存储罐内注入某种液体,当存储罐的液位快满时,入口阀门要自动关闭,此时出口阀门自动打开,将存储罐内的液体排放出去。当存储罐的液位快空时,出口阀门自动关闭,入口阀门打开,重新开始向罐内注入液体。过程如此反复进行。整个逻辑的控制过程都是用一台假想的 PLC(可编程控制器)来实现的,前面我们已经给这台假想的PLC设备命名为PLC1。 PLC1采集到存储罐的液位数据,并判断什么时候应该打开或关闭哪一个阀门。而我们除了在计算机屏幕上看到整个系统的运行情况(如:存储罐的液位变化和出入口阀门的开关状态变化等),我们还可以控制PLC程序的启动与停止。 通过以上分析,确定在数据库中所要建的数据库点:
需要定义一个模拟I/O点,这个点的PV参数表示存储罐的液位值,把这点的名称定为“LEVEL”。我们还需要一个数字I/O点来分别反映入口阀门的开关状态,当这个点的PV参数值为0时,表示入口阀门处于关闭状态,PV参数值为1时,表示入口阀门处于开启状态,我们将这个点的点名定为“IN_VALVE”。同样,要定义一个反映出口阀门开关状态的数字I/O点,命名为“OUT_VALVE”。另外,在假想的PLC中还有一个开关量来控制整个系统的启动与停止,这个开关量可以由我们在计算机上进行控制,所以我们需要再定义一个数字I/O点,将其命名为“RUN”。
最终的数据库点表是:
1、创建数据库点的步骤:
■ 在Draw导航器中双击“实时数据库”项使其展开,在展开项目中双击“数据库组态”启动组态程序DBMANAGER(如果没有看到导航器窗口,激活Draw
菜单命令“查看/导航器”)。
■ 启动DBMANAGER后出现如下图所示的DBMANAGER主窗口。
■ 单击菜单条的“点”选项选择新建或双击单元格,出现“请指定区域、点类型”向导对话框如下图所示,
■ 然后双击该点类型,出现如下图所示的对话框,在“点名(NAME)”输入框内键入点名“LEVEL”。
其它参数如量程、报警参数等可以采用系统提供的缺省值。单击 “确定”按钮返回,在点名单元格中增加了一个点名“LEVEL”,如下图所示:
■ 按如上所述步骤,创建数字I/O点“IN_VALVE”“OUT_VALVE ”和“RUN” ,创建后的点见下图:
2、数据连接
我们在前面创建了一个名为“PLC1”的I/O设备,而且它连接的正是我们假想的PLC1设备。现在的问题是如何将我们已经创建的4个数据库点与PLC1中的数据项联系起来,以使这4个点的PV参数值能与I/O设备PLC1进行实时数据交换。这个过程就是建立数据连接的过程。由于数据库可以与多个I/O设备进行数据交换,所以我们必须指定哪些点与哪个I/O的哪个数据项设备建立数据连接。 ■ 双击数据库中点LEVEL的单元格,选择“数据连接”选项或双击LEVEL所对的“%IOLINK[I/O连接]”单元格,都会出现如下图所示的对话框:
■ 单击增加按钮,出现SIMULATOR的数据连接对话框如下图,“内存区”选择“AI(模拟输入区)”,“通道号”指定为“0”,然后单击“确定”按钮返回,完成该点数据连接的定义,在点LEVEL的I/O连接单元格中列出了点LEVEL的数据连接项。
■ 再为三个数字I/O点建立数据连接。
下表列出了我们刚刚定义的4个数据连接:
当完成数据连接的所有组态后,单击保存按钮并退出DBMANAGER窗口。 五、 制作动画连接
在前面已经做了很多事情,包括:制作显示画面、创建数据库点,并与I/O设备“PLC1中的过程数据1连接起来。现在我们又要回到开发环境Draw中,通过制作动画连接使图形在画面上随PLC1数据的变化而活动起来。
1、首行涉及一个概念,“Draw变量”:Draw变量就是在开发环境Draw中定义和引用的变量,简称为变量。开发环境Draw、运行环境View和数据库DB都是力控®的基本组成部分。但Draw和View主要完成的是人机界面的开发、组态和运行、显示,我们称之为界面系统。实时数据库DB主要完成过程实时数
据的采集(通过I/O Server程序)、实时数据的处理(包括:报警处理、统计处理等)、历史数据处理等。界面系统与数据库系统可以配合使用,也可以单独使用。比如:界面系统完全可以不使用数据库系统的数据,而通过ActiveX或其它接口从第三方应用程序中获取数据;数据库系统也完全可以不用界面系统来显示画面,它可以通过自身提供的DBCOM控件与其它应用程序或其它厂商的界面程序通讯。力控®系统之所以设计成这种结构,主要是为了使系统具有更好的开放性和灵活性。 2、建立动画连接
动画连接是将画面中的图形对象与变量之间建立某种关系,当变量的值发生变化时,在画面上图形对象的动画效果动态变化方式体现出来。有了变量之后就可以制作动画连接了。一旦创建了一个图形对象,给它加上动画连接就相当于赋予它“生命”,使它动起来。
动画连接使对象按照变量的值改变其大小、颜色、位置等 。例如,一个泵在工作时是红色,而停止工作时变成绿色。有些动现连接还允许使用逻辑表达式,如:OUT_VALVE==1&&RUN==1表示:OUT_VALVE与RUN这两个变量的值同时为1时条件成立。又比如,如果希望一个对象在存储罐的液面高于80开始闪烁,这个对象的闪烁的表达式就为“LEVEL>80”.
定义变量和制作动画连接这两件工作可以相互独立在完成。例如,使用“特殊功能/定义变量”,可以直接进入定义变量的环境。 下面以所建的工程为例说明建立动画连接的步骤: 从最上面的入口阀门开始定义图形对象的动画连接。
■ 双击入口阀门对象,出现动画连接对话框,如下图所示:
图动画连接
■ 让入口阀门根据一个状态值的变化来改变颜色。选择图中的“颜色相关动作――颜色变化――条件”单击“条件”按钮,弹出如下对话框,如下图所示:
单击“变量选择”按钮,弹出“变量选择”对话框,在点名栏中选择“IN_VALVE”,在右边的参数列表中选择“PV”参数,如下图所示,然后单击“选择”按钮,
在“颜色变化”对话框的“条件表达式”的文本框中就可以看到变量名“IN_VALVE.PV”如下图所示:
■ 在变量“IN_VALVE.PV”后输入“==1”,使最后的表达式为:“IN_VALVE.PV==1”(力控®中的所有名称标识、表达式和脚本程序均不区分大小写)在这里使用的变量IN_VALVE.PV是个状态值,我们用它代表入口阀门的开关状态。上述表达式如果为真(值为1),则表示入口阀门为开启状态,希望
入口阀门变成白色,所以在“值为假时” 选项中将颜色通过调色板选为白色,如下图所示,单击“确认”按钮返回。用同样的方法,再定义出口阀门的颜色变化条件及相关的变量,如下图所示:
■ 处理有关液位值的显示和液位变化的显示,选中存储罐下面的#######.###符号,然后双击鼠标左键,出下出现动画连接对话框,在这里选用“数值输出――模拟”,点击“模拟”按钮,弹出“模拟值输出”对话框,在表达式项内输入“LEVEL.PV”或是点击“变量选择”按钮,出现变量选择对话框,然后选择点名“LEVEL”,在右边的参数列表中选择“PV”参数,点击“选择”按钮,“表达式”项中自动加入了变量名“LEVEL.PV”,如下图所示:
■ 现在,已经把存储罐的液位用数值显示出来了,下面将代表储罐的填充高度也随着液位的变化而变化,这样更形象地显示存储罐的液位变化了。 选中储罐后双击鼠标左键,出下如下图所示的动面连接对话框。
在“表达式”项内键入“LEVEL.PV”。填充颜色为绿色,填充背景颜色为黑色。这样力控将一直监视变量“LEVEL.PV”的值。如果值为100,存储罐将是全满的。如果值为50,将是半满的。然后点击“确认”。 六、 脚本动作
用脚本来完成两个按钮的动作来控制系统的启停。
■ 选中“开始”按钮后双击鼠标左键,出现动画连接对话框,选择“触敏动作/左键动作”按钮。单击“左键动作”按钮,弹出脚本编辑器对话框选择“按下鼠标”事件,在脚本编辑器里输入“RUN.PV=1”;如下图所示,这个设置的意思是当在运行界面按下“开始”按钮后,变量RUN.PV的值被设成1,相应地PLC1中的程序被启动运行。
■ 同样,下面定义“停止”按钮的动作。在脚本编辑器里输入“RUN.PV=0”;这个设置的意思是,当鼠标按下“停止”按钮后,变量RUN.PV的值被设成0。设备PLC1中的程序就会停止运行,如下图:
在上面整体制作动画连接的过程事,系统自动创建了所有引用到的数据库变量。如果要看这些变量,可以激活DRAW菜单中“特殊功能/定义变量”出现“变量定义”对话框,如下图所示:
点击“选择”按钮,出下如下图所示的“变量选择”对话框,在“变量类别”中指定“数据库变量”,可以看到在上面工程中所引用的所有数据库变量:LEVEL.PV、IN_VAVLE.PV、OUT_VAVLE.PV和RUN.PV,它们全部由系统自动创建。
七、 运行
力控工程初步建立完成,进入运行阶段。首先保存所有组态内容,关闭DBManager(如果没关闭)。在力控的开发系统(DRAW)中选择“文件\\进入运行”菜单命令,进入力控的运行系统。在运行系统中选择“文件\\打开”命令,从“选择窗口”选择“储罐液位监控示例”。显示出力控的运行画面,点击“开始”按钮,开始运行PLC1的程序。这时会看见阀门打开,存储罐液位开始上升,一旦存储罐即将被注满,它会自动排放,然后重复以上的过程。可以在任何时候点击“停止”按钮来中止这个过程,如下图所示:
八、 制作运行包
力控的制作运行包的功能,可以将当前工程组态的信息和力控的运行环境压缩成几个文件,形成Setup安装盘。当工程完成后,可以将这样一张安装盘交到用户的手上,当机器发生严重故障使控制应用受到破坏时,用户可以用这张Setup安装盘进行安装,一次性恢复完整的力控控制系统,确保了系统的安全,大大地减少了维护工作量。
制作运行安装包的步骤:
■ 选择开发系统的“文件\\制作运行包”菜单,弹出如下图所示的“生成运行环境及当前工程应用的安装包”对话框。
■ 选择生成的安装包存放的路径、输入安装运行时的窗口标题、安装包运行时的缺省安装路径、安装后快捷方式的名称。可以使用缺省设置,也可以根据工程的实际需要指定。点击“开始”按钮开始压缩。压缩完成时,提示结束对话框。此时,在C盘生成一个PCAuto文件夹,文件夹内是安装包文件。 九、 系统投入运行
将上述生成的安装包,在需要现场运行监测的机器上执行安装包内的Setup程序进行安装,如下图所示:
根据需要选择:桌面建立运行快捷方式、在开始菜单建立运行快捷方式、在开始菜单建立卸载快捷方式,开机自动运行,点击“开始”按钮进行解压缩并且安装,安装完成后,计算机重新启动,如果选择了“开机自动运行”选项,则计算机起来后,力控进入运行状态。
第五章 趋势、报表、报警组态画面的生成
这章主要是对趋势、报表和报警画面组态的介绍。 5.1 历史趋势
历史趋势功能是通过保存在实时数据库中的历史数据随历史时间而变化的趋势所绘出的二维曲线图。 5.1.1 创建历史趋势
首先选择菜单命令“工具[T]/历史趋势” 或选择工具箱工具,然后按下
鼠标左键并按对角拖动以形成一矩形。松开鼠标,此对象被选中,并以缺省的线
宽和颜色属性出现。如图5-1所示。
图5_1
5.1.2 设置历史趋势图属性
这时可以改变图的属性。选中图形对象,单击鼠标右键,弹出右键菜单。选择“对象属性(A)”,弹出“改变对象属性”对话框,如图5-2。通过这个对话框可以改变趋势图的填充颜色、边线颜色、边线风格等。
图5_2
5.1.3 历史趋势组态
双击历史趋势对象,弹出“历史趋势组态”对话框,如图5-3。
图5_3
说明:输入历史趋势图的标题。单击右面的颜色选择框,出现调色板窗口,可以指定一种颜色作为历史趋势图的标题的文字颜色。 数据源:选择趋势变量的数据源。
初始时间范围:这个对话框定义趋势的水平(X轴)初始显示的时间长度。 初始扫描周期:这个对话框定义趋势的水平(X轴)初始显示的增量单位。 取值(初始显示方式):此下拉框指定趋势的初始显示类型。如果选则“瞬时值”,趋势每一个像素将显示这个像素所代表的时间点的瞬时值。如果选则“最大/最小”,趋势的每一个像素将显示这个像素所代表的时间点的最小或最大值。
时间刻度/刻度数:定义时间刻度线的数量,即横向网格的数量。点击右边的按钮出现颜色选择框,在颜色选择框中选择网格的颜色。
每隔_个刻度一个标签:定义每隔几个刻度显示一个时间标记。点击右边的按钮出现颜色选择框,在颜色选择框中选择时间标记的颜色。
数值刻度/刻度数:定义数值刻度线的数量,即横向网格的数量。点击右边的按钮出现颜色选择框,在颜色选择框中选择网格的颜色。
每隔_个刻度一个标签:定义每隔几个刻度显示一个数值标记。点击右边的按钮出现颜色选择框,在颜色选择框中选择时间标记的颜色。 最大值:输入显示数值范围的高限。 最小值:输入显示数值范围的低限。
百分比/绝对值:显示数值可以是百分比或者绝对值。当选择百分比时,涉及到选择量程上下限问题。可以选择“从DB得到量程上下限”或者“自动获取”。
定义笔:趋势图中最多可以定义8支趋势笔,即8条曲线,对每支笔要指定如下几项。
位号名:输入趋势笔的变量名。 颜色:选择趋势笔的颜色。 线宽:输入趋势笔的宽度。
说明(趋势笔):指定趋势笔的描述信息。可以是:自定义、使用位号名、使用点描述、使用位号名与点描述。
双击时:可以选择:无弹出框、位号时间设置框、时间设置框。如果选中无弹出框项,则在进入运行系统后,单击趋势运行画面,不出现运行组态对话框,即没有触敏动作。如果选中位号时间设置框项,可以在运行系统中改变历史趋势的位号和时间设置。在进入运行系统后,在运行期间,双击历史趋势画面,出现“趋势设置”对话框,如图5-4。这里允许操作人员改变历史趋势的起始时间、数值范围、趋势笔分配、基本偏置等。
图5_4
如果选中时间设置框项,可以在运行系统中改变历史趋势的时间设置。在进入运行后,双击历史趋势画面,出现“趋势设置”对话框,如图5-5。
图5_5
从DB得到量程上下限:选中后,趋势按照趋势变量所对应数据库DB中点的量程上下限参数组态值作为参考值来计算趋势的垂直(Y-轴)显示的数值。若不选中,趋势按照趋势变量的最小值、最大值的变量组态值作为参考值来计算趋势的垂直(Y-轴)显示的数值。 5.1.4 查看历史趋势
在运行期间如果需要查看以前的历史趋势记录,可以分别建以下几个按钮,如图5-6所示。
图5_6
其中按钮的功能如下:取值范围:趋式曲线中数值显示的时间范;曲线缩放;曲线时间的设定等功能。创建完这些按钮后,双击按钮,选择触敏动作中的左键动作。在按下鼠标下进行编辑,如图5-7。
图5_7
这里可以选择字段里面的变量进行编辑,实现按钮的功能。编辑完成后需要和历史趋势打成单元,运行时就可以通过点击按钮来查询历史趋势。
如图5-6中还有两个选择控件,分别是选择起始时间和时间范围的按钮,它们的功能是可以让历史趋势曲线显示从起始时间开始一定的时间范围内的曲线。可以在菜单的“插入” windows控件找到这两个控件。 5.2 万能报表
万能报表提供类似EXCEL的电子表格功能,可实现形式更为复杂的报表格式 5.2.1 创建万能报表
进入DRAW菜单命令“工具/万能报表”,出现“子图列表”对话框,选择“万能报表”,然后单击“选择”按钮,万能报表自动加在窗口画面上,如图5-8。
图5_8
5.2.2 万能报表组态
双击万能报表,即可弹出万能报表属性设置框,如图5-9。
图5_9
在表格的任意单元格上单击,然后在表达工具条中输入相对应内容,如图5-10。
图5_10
自动获取历史数据:
图5_11
单击“历史数值”按钮,如图5-11,单击后出现对话框,如图5-12: 数据点变量选择按钮可以选择数据库中已经做历史保存设置的变量 时间单位表示时间间隔的单位是什么,可以是年月日时分秒。
时间间隔是一个大于0的正整数,表示相邻单元格之间记录的数据的时间差。
基准单元第一个单元格是最左(上)边的单元格,还是最右(下)边的单元格,如果
图5_12
上述例子中基准单元是左上,则A2的值是aa.pv在2003年9月20日16时58分41秒的值,而A9的值是2003年9月21日6时58分41秒的值 基准时间在该处指定要获取的历史数据的时间。指定的年月日时分秒除了是常数外,还可以是表达式。其数值范围(n > 0)
如果是单个单元格,可以取历史的统计值,在指定的时间段的最大值,最小值,平均值。如果是统计值,则时分秒参数无效。 公式生成向导
报表生成器可以方便地生成各种公式,在表达式工具条中选择函数,则会根据所选择的函数,弹出公式生成向导对话框:如图5-13。
图5_13
对于条件求和、平均值、最大值、最小值,出现的是上述对话框,条件区域和计算区域的值,可以手工输入,也可以通过鼠标在报表中直接选择,如果通过鼠标选择,条件区域选择后焦点会自动到计算区域。 5.3 报警
使用力控报警控件可以在系统运行过程中,及时将控制过程和系统的运行情况通知操作人员。
5.3.1 创建报警记录
首先单击工具箱中的“报警记录”
工具按钮,然后在窗口中单击,按住
鼠标左键进行拖动,调整报警记录大小,松开鼠标,即创建好了一个报警控件。
如图5-14。
图5_14
5.3.2 配置报警记录
双击报警记录,出现“报警组态”对话框,如图5-15,在这里可以创建报警记录的组成“报警时间+报警点位号+报警点描述+报警类型+报警值+报警级别+确认信息”和报警记录的显示字体,确认未确认的显示颜色等。在记录格式中可以选择要显示的内容,以及所占的字符数。
图5_15
5.3.3 确认报警
当需要对报警进行确认的时候,可以在画面中创建一个按钮,按钮与报警记录打成单元。在按下按钮时定义AlmAck(),这样就可以在运行中进行报警确认了。同样的道理,也可以实现对历史报表翻页查看、分时查看以及分区查看等功能,相应的变量在字段里都可以找到。 5.3.4 多功能报警
力控还提供了一个历史报警\\实时报警、查询和确认集成到一起的组件――多功能报警。在力控的“开发系统”中,选择“工具\\多功能报警”如下图所示:
图5_16
如下两图是对多功能报警的外观和记录格式的设置画面,首先选中多功能报警,然后双击出现如下图:
图5_17
图5_18
第六章 监视力控®与I/O设备的通讯状态
目前各种I/O设备提供的对外数据接口可分为以下几类:
数字通讯接口,包括串口类、以太网(TCP/IP协议)类、现场总线类、仪器总线类通讯接口(如GPIB等)。
? 模拟量通道输出,设备直接提供4-20mA、1-5V或继电器接点信号等。
?
力控®具有世界上大部分主流设备的I/O接口程序,对GPIB总线以及Honeywell、Yokogawa、Foxboro、Fisher-Rosemount等厂家的DCS也能够支持。 除通常意义上的数据采集外,力控®可以利用采集到的实时数据对装置进行实时建模,插入力控®自己的先进控制控件,实施先进控制。 6.1 对一个设备上的数据定义不同的采集周期
如果一台设备上有1000个实时数据需要采集,而在这1000个数据中只有10个是经常刷新且需要密切监视的,其余990个全部是辅助数据,但是也需要时常查看。如果把这1000个数据同等地对待,采用统一的扫描周期进行采集,就会严重影响10个重要数据的刷新速度。怎样既保证1000个数据都能够采集,又确保这10个重要数据的采 集速度呢?有两种办法:办法1:为一个设备定义两个逻辑设备,使其具有不同的采集周期,如图6-1所示。其中一个设备的扫描周期为10分钟,另一个设备的扫描周期为50ms。
图6_1
办法2:不用上面的办法,一台设备只定义一个设备名称也可以达到要求,只需在定义该设备时选择“动态优化”如图6-2。动态优化后的力控®I/O驱动对画面中不显示而且没有组态历史趋势和报警的数据是不采集的,仅当画面中显示这个数据时才进行采集。因此将不常用的数据单独组态在一个或几个画面中,使用完毕马上关闭就不会影响整个采集速度。这种方法适用于存在有大量不需要快速更新的数据的情况。
图6_2
6.2 合理设置扫描周期,避免引起设备死机 有些I/O设备内部只有一个CPU,同时负责数据通讯和计算,如果在力控®上设置的数据扫描周期太快容易使设备死机,因此在设置这一参数时应该慎重,最好通过多次试验确定一个合适的扫描周期。设备的扫描周期即为定义设备时的“更新周期”,根据不同的设备更新周期建议值如表6-1。
通信方式 通讯速率 扫描周期(仅供参考)
2400及以下 1000ms以上 4800 500-1000ms及以上
串口(RS232/RS422/RS485)
9600 200-500ms及以上 19200及以上 50-100ms及以上
同步 10ms-100ms及以上 Modem 1000ms以上 TCP/IP网络 200ms及以上 网桥(GPRS、CDMA等) 2000ms以上 6.3 通过拨号方式与I/O设备通讯
力控®的所有串口I/O驱动程序都支持通过MODEM以拨号方式与设备通讯。只要正确设置电话号码即可,如图6-3所示。
图6_3
6.4 通过以太网(TCP/IP、UDP/IP)方式与I/O设备通讯 通信方式根据设备对应选择TCP/IP或者UDP/IP的方式,设备定义时注意通讯参数“设备地址”是填写实际的IO硬件设备的地址(ID号)还是填写IO设备的硬件接口IP地址,默认均填写设备ID号(一定要参考该设备驱动帮助)。 6.5 通过网桥(GPRS、CDMA)方式与I/O设备通讯
设备定义时通信方式选择“网桥(GPRS、CDMA等)”进入“下一步”如图6-4选择厂家的GPRS模块,正确填写其他各通讯参数,具体参考GPRS通讯相关的帮助。
图6_4
6.6 通讯状态监视、设备状态数据的读取
在力控®中可以为每一个I/O设备自动定义一个变量,假如系统中有一个设备PLC1,则每当PLC1不能与力控®正常通讯时,这个变量的值就会被置为1。计算机通讯口故障、电缆、PLC端通讯口的故障、PLC通讯口与计算机通讯口的参数设置不一致都会造成通讯故障。还有一种可能,就是数据连接项错误,如果计算机的命令发给PLC的只读参数,PLC是不会予以理睬的。
如图6-5所示,当定义变量时,在“变量定义”对话框中选定“类别”为“数据库变量”,在“数据源”中指定数据源,在“参数”中选定“数据库状
态”就会弹出对话框。在下拉框“类型”中选择“I/O报警”,然后在“设备”下拉框中选择对应得设备名称。当这个设备得通讯不正常时,对应的变量值就会变成“1”,你可以在程序中判断该变量的值来发出相应的声光报警,也可以用于其他目的。
图6_5
在管理、协调和负责所有设备数据通讯的Io Server中,如何观察通讯状态并判断通讯是否正常的方法,运行后打开Io Server的界面,如图6-6。
图6_6
可以分别从四个角度观察,通讯是否正常:
?
通道(Channel)下的设备通讯信号灯闪烁情况(注意鼠标不要选中该设备),如图6-7。周期性地闪烁绿色为正常,周期性地闪烁红色为故障。
图6_7
?
选中指定的IO设备,观察右上方的窗口,如图6-8。
图6_8
与通讯有关的参数:
Request times:请求次数 Answer times:返回次数 Timeout times:超时次数
当超时次数很少或为0表明通讯的参数设置基本没问题。
?
观察最下方的信息显示窗口,如图6-9。
图6_9
?
右键Channel0,显示通讯信息,判断收发信息是否正常即可,如图6-10。
图6_10
6.7 怎样用辅助工具调试I/O设备
这里的辅助工具包括通用的串口调试工具、以太网调试工具和硬件厂家提供的测试软件等。
在力控安装盘中路径“SDK\\接口开发包\\Fiossdk3.1\\Utility”下有一个IoTest.exe或者路径“SDK\\技术资料\\工具软件\\串口调试工具”下的COM.exe。如图6-11所示。
图6_11
菜单“参数设置”用来设置I/O设备的通讯方式和通讯参数。如图6-12所示。主要是设置串口的DCB参数、IP地址、Modem参数及显示方式等。如图6-12。
图6_12
正确设置参数后,按“连接设备”按钮,如果成功的话,\连接设备\按钮的标题变成\断开连接\表示可以收发数据了。如果在\参数设置\中设置\周期性发送周期\不为0,则在\连接设备\后会出现\周期发送\按钮,否则出现\手动发送\按钮。使用\周期发送\或\手动发送\按钮,可以周期性或一次性地发送编辑框中的数据。
编辑框中数据的格式缺省是混合方式的,如果想发送编辑框中的数据,这也是唯一的数据类型,它的形成规则如下:任何ASCII码(除'[')可以直接输入,'['可以使用\来输入;\内是由' '(空格)分隔的转意字符,它们的意义为: '[': 用来输入'[';
'*': 在发送数据时表示延时1毫秒 '#': 在发送数据时表示延时10毫秒 '$': 在发送数据时表示延时100毫秒 '!': 在发送数据时表示延时1000毫秒
'\\': 表示它后面的数据是十进制的(缺省是16进制)
' '(空格): 作为分隔符,任何未定义的字符都可以作为分隔符,最好使用空格。
0~9: 可以用来输入10进制或16进制数据。
A~F/a~f: 可以用来输入16进制数据。
例子: abcv[[ 30 *#$! ]345 对应的16进制数据串为: 61H,62H,63H,76H,5BH,30H,33H,34H,35H;而且在30H之后有1111毫秒的延时。 当用在其它情况(不是用来发送数据)时,唯一的差别是没有了延时的概念。 \其它工具\校验使用混合格式的数据,计算常用的校验码,ASCII码表显示使用16进制和10进制显示的ASCII码表,各种数据转换把混合格式、16/32位整数、32位浮点数等转换为十几种常用数据格式,除混合格式外,其它数据格式为直接用空格分隔的数据串。
第七章 控制策略pStrategy的使用
目前有关基于PC-based的成熟的控制功能软件模块还很少,有的组态软件将控制功能模块称为“软PLC或Soft PLC”,也有的称“软逻辑”,但这些叫法都不能准确地反映监控组态软件基于PC-based的控制功能模块的含义。在此,我们引入“策略(Strategy)”的概念来描述组态软件的控制功能,策略相当于计算机语言中的函数,是在编译后可以解释执行的功能体。力控®的控制策略生成器StrategyBuilder是一个既可以运行在Windows 98/2000/NT环境,又可以运行于Windows CE、DOS等嵌入式环境的控制功能软件模块,它采用功能框图的方式为编程者提供编程界面,并具备与实时数据库、图形界面系统通讯的功能。
在力控的StrategyBuilder中,一个应用程序中可以有很多控制策略,但是有且只能有一个主策略,它相当于C语言中的main函数,它是系统开始执行时的被调用者,执行完一个周期后又重新开始执行。主策略被首先执行,主策略可以调用或间接调用其它策略。策略嵌套最多不应超过4级(不包括主策略),即0-3级,否则容易造成混乱。在这4级中,0级最高,3级最低,高级策略可以调用低级策略,而低级策略不可以调用高级策略,除3级最多可以有127个策略外,其它3个级别分别最多可以有255个策略。
控制策略由一些基本功能块组成,一个功能块代表一种操作、算法或变量,它是策略的基本执行元素,类似一个集成电路块,有若干输入和输出,每个输入和输出管脚都有唯一的名称,不同种类的功能块其每个管脚的意义、取值范围也不相同。 力控的控制策略是在控制策略生成器StrategyBuilder中编辑生成的,在控制策略存盘时自动对策略进行编译,同时检查语法错误,编译也可以随时手动进行, 如果策略A被策略B调用,则称A是B的子策略。零级策略是主策略的子策略,零级策略的子策略是一级策略,依此类推。
图:StrategyBuilder的工作桌面 1. 编辑控制策略时的几条基本准则
策略只能调用其子策略,不能跨级调用,如不允许主策略调用二级策略。 一个功能块的输出可以输出到多个基功能块的输入上。一个功能块的输入只能来自一个输出。一个功能块的输出不能输出到另一个块的输出 2. 使用策略编辑器生成控制策略的基本步骤 ⑴ 根据生产控制要求编写控制逻辑图。 ⑵ 根据生产过程的控制要求配置I/O设备。
⑶ 根据逻辑图创建策略及子策略,建立I/O通道与基本功能块的连接。 ⑷ 对创建的控制策略进行编译和排错。
⑸ 利用控制策略编辑器的各种调试工具对编辑的策略首先进行分段离线调试,再进行总调试,最后进行在线调试
⑹ 如果控制策略在本地运行,则将经过调试的策略投入运行;如果策略在目标设备上运行,则将策略下装到目标机中投入运行。 3. 控制功能模块的构成及相关程序
力控StrategyBuilder的系统构成如图所示(见方框内),在图中能够看出它与实时数据库及图形界面系统关系紧密。通讯接口实用程序和系统监控程序只有在嵌入式操作系统中才能用到,这时PC-Based系统在控制功能模块的支持下变成了功能强大的PC-Based PLC,这种PLC无论是控制运算能力还是开放性都优于普通PLC,在这种情况下不需要实时数据库和界面系统,因为系统中没有键盘、显示器等外设。
图:StrategyBuilder的系统构成
这里用几个简单的例子来介绍如何使用策略编辑器来实现预定的控制目标,包括组态和调试的方法。
示例一、在策略中引用db中的变量,相加后返回给db。本例中实施运算aaa2 = aaa+aaa1。
假如当前的力控应用中,在数据库中已经建立了一些数据点如aaa,aaa1,aaa2等。
1. 启动策略编辑器,此时提示图所示对话框。
图:新建策略对话框
建立主策略,输入策略名,点击确定,进入到控制策略编辑组态界面。 2. 展开左边导航器中的工具,点击变量/数据库输入变量,在右边的编辑区域中的任一位置上点击即可画出一个数据库变量输入块,见图。
图: 选择一个功能块
选中该功能块,则出现如下属性框:
图:选择变量的属性
在DB变量名和参数中选择适当的点名和参数,也可以直接输入。按照同样的方法,可以画出aaa2。 在StrategyBuilder的导航器上点击变量/数据库输出变量,按照上述方法,选择变量aaa3,再按同样方法画出一个加法功能块(它没有属性),如所示。
图: 画完所需功能块
3. 在块AAA.PV的输出脚上双击,再在加法块的第二个输入脚上双击,就使两个脚连成了一条线,它表示aaa.pv输入到加法块的第一个操作数上。按照同样的方法将AAA1.PV的输出脚和加法块的第三个输入脚连成线,再将加法块的输出脚和输出AAA2.PV的输入脚连成线。加法的执行结果输出到aaa2.pv。如图所示。
图: 完成功能块之间的逻辑连接
4. 选择菜单命令“编译[B]/全部重新编译[A]”,对策略进行编译。
5. 运行策略执行程序,在其上观察运行结果,也可以在实时数据库或图形界面上观察运行结果。