定义外部设备及数据连接项介绍
在项目应用中,常常需要将硬件设备上的数据采集到上位机,在上位机对数据进行处理,如绘制曲线,形成报表等,通常我们把这些硬件设备叫做数据提供者,数据提供者主要包括:PLC、UPS、变频器、智能仪表、智能模块、板卡、DDEServer、OPCServer等,这些设备一般通过串口和以太网等方式与上位机交换数据。
在力控中,把需要与力控组态软件交换数据的设备或者程序都叫做物理I/O设备,每个物理I/O设备都有其遵循的通讯协议,力控根据这些设备的通讯协议定制出相应的I/O驱动程序,要采集数据须根据设备型号选择正确的I/O驱动程序在力控中定义一个逻辑I/O设备与物理I/O设备对应,力控才能通过数据库变量和这些物理IO设备进行数据交换。
下面以力控的仿真设备和西门子S7-200为例介绍如何定义I/O设备。
l 如果没有硬件设备,那么可参照仿真设备来学习力控的使用;
l 在真实工程中的实现过程,与西门子s7-200的例子类似。
力控仿真设备
1)打开开发环境的工程项目导航栏如图
双击“I/O设备组态”项出现如下对话框,在展开项目中选择“力控”项并双击使其展开,然后继续选择“仿真驱动”并双击使其展开后,选择项目“Simulator(仿真)”,如图
双击“Simulator(仿真)”出现如下图所示的“设备配置-第一步”对话框,在“设备名称”输入框内键入一个自定义的名称,这里输入“dev”(大小写都可以)。接下来要设置dev的采集参数,即“数据更新周期”和“超时时间”。在“数据更新周期”输入框内键入1000毫秒。
注意事项:
一个I/O驱动程序可以连接多个同类型的I/O设备。每个I/O设备中很多数据项可以与监控系统建立连接,如果对同一个I/O设备中的数据要求不同采集周期,也可以为同一个地址的I/O设备定义多个不同的设备名称,使他们具不同的采集周期。
单击“完成”按钮返回,在设备组态画面的右侧增加了一项“dev”,如果要对I/O设备“dev”的配置进行修改,双击项目“dev”,会再次出现dev设备的“设备配置”对话框。若要删除I/O设备“dev”,用鼠标右键单击项目“dev”,在弹出的右键菜单中选择“删除”。
通常情况下,一个I/O设备需要更多的配置,如:通讯端口的配置(波特率、奇偶校验等)、超时时间、所使用的网卡的开关设置等。因为这是一个“仿真”I/O驱动程序,它仿真“梯形图逻辑”和常用I/O驱动程序任务(实际上完全由PC完成),没有与实际的硬件连接,所以不需要进行更多的配置。
现在要记住,我们创建了一个名为“dev”的I/O设备,下面将要介绍如何使用它建立数据库点并设置IO数据连接项IOLink。
建立数据库点并设置IOLink
在建立数据之前,先介绍一下工程的情况,本工程是一个锅炉水位的监控,要实现的功能是:
在力控的组态界面,通过逻辑设备dev仿真硬件设备,仿真出一个锅炉供水系统,系统的水泵分为自动档和手动档控制。
在自动档时,水泵是由锅炉中的水位进行控制,当水位低于锅炉总水位的10%时将自动启动水泵,当水位高于锅炉总水位的90%时将自动停止水泵;在手动档时,水泵由手动开关控制。
锅炉的水位与水泵的开/关和锅炉的出水阀的开/关有关:当水泵开时,水位将上升;当水泵关时,水位将保持。当出水阀门开时水位将下降;当出水阀门关时,水位将保持。
根据这样的项目情况,可以确定该项目数据点有:
创建数据库点的步骤:
在工程项目导航栏中,双击“数据库组态”启动组态程序DBManager(如果没有看到导航栏窗口,可通过菜单命令“查看—>工程项目导航栏激活”)。
启动DBManager后出现如下图所示的DBManager主窗口。
单击菜单条的“点”选项选择新建或双击单元格,出现“请指定区域、点类型”向导对话框如图所示。
选择“模拟I/O点”,然后双击该点类型,出现如下图所示的对话框,在“点名(NAME)”输入框内键入点名“AI1”。
其它参数如量程、报警参数等可以采用系统提供的缺省值。单击“确定”按钮返回,在点名单元格中增加了一个点名“AI1”,如下图所示:
按如上所述步骤,创建数字I/O点“DO1 ”、“DO2”、“DO3”、“DO4”,创建后的点见图
创建数据连接项
在前面创建了一个名为“dev”的I/O设备,现在的问题是如何将已经创建的5个数据库点与dev设备中的数据项联系起来,以使这5个点的PV参数值能显示当前的数据值,这个过程就是建立数据连接项的过程。由于数据库可以与多个I/O设备进行数据交换,所以必须指定哪些点与哪个I/O的哪个数据项设备建立数据连接。
双击数据库中点AI1的单元格,选择“数据连接”选项或双击AI1所对的“数据连接”选项,然后在“设备”里选择dev,单击“增加”按钮,详见下图:
寄存器地址:例中设成0,寄存器地址有唯一性,不能与其他同类型寄存器数据的地址重复。
最大值和最小值的设置根据水位信号的量程来设置,例子里水位的量程是0-100。
配置完以上数据就可以点击“确定”按钮完成设置了,如下图所示:
接下来按照以上步骤配置其它4个参数,其它配置都基本相同。配置完后见图:
外部设备编程
在本例中,使用的是力控的仿真驱动程序(Simulator),并不是真实的硬件,因此,为了实现锅炉的控制逻辑,在“应用程序动作”中实现,以达到逻辑控制仿真的效果。
具体步骤如下:
1) 双击“工程项目导航栏”中“动作”下的“应用程序动作”,弹出脚本编辑器对话,在进入程序中,输入下列程序语句:
//状态清零
AI1.PV=0;
DO1.PV=0;
DO3.PV=0;
DO4.PV=0;
2)程序运行周期执行
在程序运行周期执行中,输入下列编程语句:
//手动档
//进水
IF DO3.PV==0 && DO4.PV==1 && AI1.PV<100 THEN
AI1.PV=AI1.PV+10;
ELSE
ENDIF
//放水
IF DO3.PV==0 && DO1.PV==1 && AI1.PV>0 THEN
AI1.PV=AI1.PV-10;
ELSE
ENDIF
IF DO3.PV==0 && DO4.PV==DO1.PV THEN
AI1.PV=AI1.PV;
ELSE
ENDIF
//自动档
IF DO3.PV==1 && AI1.PV<10 THEN
DO2.PV=1;
DO1.PV=0;
ELSE
ENDIF
IF DO3.PV==1 && AI1.PV>90 THEN
DO2.PV=0;
DO1.PV=1;
ELSE
ENDIF
IF DO3.PV==1 && DO2.PV==1 && DO1.PV==0 THEN
AI1.PV=AI1.PV+10;
ELSE
ENDIF
IF DO3.PV==1 && DO2.PV==0 && DO1.PV==1 THEN
AI1.PV=AI1.PV-10;
ELSE
ENDIF
楼主最近还看过