现在,已经完成了“储罐液位监控示例系统“应用程序的图形描述部分的工作。下面还要做几件事。这就是定义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设备驱动”项出现如下对话框,在展开项目中选择“力控”项并
?
双击使其展开,然后继续选择“仪表仿真驱动”并双击使其展开后,选择项目“Simulator(仿真仪表)”,如下图所示:
2. 双击 “Simulator(仿真仪表)”出现如下图所示的“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. 单击“完成”按钮返回,在设备组态画面的右侧增加了一项“PLC1”,如果要对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
?
以工程单位表示的现场测量值
力控实时数据库根据工业装置的工艺特点,划分为若干区域,每个区域又划分为若干的单元,可以对应实际的生车间和工段,极大地方便了数据的管理,在总貌画面中可以按区域和单元浏览数据。在报警画面中,可以按区域显示报警。
下面就以这个工程选择一种点类型,并建立实时数据库,先分析一下本工程要做什么: 入口阀门不断地向一个空的存储罐内注入某种液体,当存储罐的液位快满时,入口阀门要自动关闭,此时出口阀门自动打开,将存储罐内的液体排放出去。当存储罐的液位快空时,出口阀门自动关闭,入口阀门打开,重新开始向罐内注入液体。过程如此反复进行。整个逻辑的控制过程都是用一台假想的设备来实现的,前面我们已经给这台假想的设备命名为PLC1。
PLC1采集到存储罐的液位数据,并打开或关闭哪一个阀门。而我们除了在计算机屏幕上看到整个系统的运行情况(如:存储罐的液位变化和出入口阀门的开关状态变化等),我们还可以控制设备逻辑程序的启动与停止。
通过以上分析,确定在数据库中所要建的数据库点:
需要定义一个模拟I/O点,这个点的PV参数表示存储罐的液位值,把这点的名称定为“LEVEL”。我们还需要一个数字I/O点来分别反映入口阀门的开关状态,当这个点的PV参数值为0时,表示入口阀门处于关闭状态,PV参数值为1时,表示入口阀门处于开启状态,我们将这个点的点名定为“IN_VALVE”。同样,要定义一个反映出口阀门开关状态的数字I/O点,命名为“OUT_VALVE”。另外,在假想的PLC中还有一个开关量来控制整个系统的启动与停止,这个开关量可以由我们在计算机上进行控制,所以我们需要再定义一个数字I/O点,将其命名为“RUN”。
最终的数据库点表是:
点名 LEVEL
点类型
说明
模拟I/O点 存储罐液位
IN_VALVE 数字I/O点 入口阀门状态 OUT_VALVE 数字I/O点 出口阀门状态 RUN
1、创建数据库点的步骤:
■ 在Draw导航器中双击“实时数据库”项使其展开,在展开项目中双击“数据库组态”启动组态程序DBMANAGER(如果没有看到导航器窗口,激活Draw菜单命令“查看/导航器”)。
■ 启动DBMANAGER后出现如下图所示的DBMANAGER主窗口。
■ 单击菜单条的“点”选项选择新建或双击单元格,出现“请指定区域、点类型”向导对话框
如下图所示。
数字I/O点 系统启停状态
■ 然后双击该点类型,出现如下图所示的对话框,在“点名(NAME)”输入框内键入点名
“LEVEL”。