购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 变量定义

数据库是组态王最核心的部分。在组态王运行时,工业现场的生产状况要以动画的形式反映在屏幕上,同时工程人员在计算机前发布的指令也要迅速送达生产现场,所有这一切都以实时数据库为中间环节,所以说数据库是联系上位机和下位机的桥梁。

定义变量在工程浏览器“数据词典”中进行,如图2-14所示。在数据库中存放的是变量的当前值,变量包括系统变量和用户定义的变量。变量的集合形象地称为“数据词典”,数据词典记录了所有用户可使用数据变量的详细信息。

图2-14 数据词典

“组态王”系统中定义的变量与一般程序设计语言(如BASIC、PASCAL、C语言)定义的变量有很大不同,此外的变量既能满足程序设计的一般需要,又考虑到工控软件的特殊需要。

2.3.1 变量的基本属性配置

在工程浏览器的左侧树形菜单中选择“数据库→数据词典”,在右侧双击“新建”,弹出“定义变量”对话框,如图2-15所示。

图2-15 定义变量的基本属性对话框

“定义变量”对话框基本属性卡片中的各项用来定义变量的基本特征,各项意义解释如下。

(1)变量名。变量名用来唯一标识一个应用程序中数据变量的名字,同一应用程序中的数据变量不能重名,不能与组态王中现有的变量名、函数名、关键字、构件名称等相重复;数据变量名区分大小写,第一个字符不能是数字,只能为字符,名称中间不允许有空格、算术符号等非法字符存在,最长不能超过31个字符。

(2)变量类型。在对话框中只能定义8种基本类型中的一种,用鼠标单击变量类型下拉列表框列出可供选择的数据类型,当定义有结构模板时,一个结构就是一种变量类型。

(3)描述。该项用于编辑和显示数据变量的注释信息。

(4)结构成员、成员类型和成员描述。这3项在变量类型为结构变量时有效。

(5)变化灵敏度。数据类型为模拟量或长整型时此项有效。只有当该数据变量值的变化幅度超过“变化灵敏度”时,“组态王”才更新与之相连接的图素(默认为0)。

(6)初始值。这项内容与所定义的变量类型有关,定义模拟量时出现编辑框可输入一个数值,定义离散量时出现开或关两种选择,定义字符串变量时出现编辑框可输入字符串,它们规定软件开始运行时变量的初始值。

(7)最小值。最小值指该变量值在数据库中的下限。

(8)最大值。最大值指该变量值在数据库中的上限。

(9)最小原始值。该项表示变量为I/O模拟型时,与最小值所对应的输入寄存器的值的下限。

(10)最大原始值。该项表示变量为I/O模拟型时,与最大值所对应的输入寄存器的值的上限。

以上4项是对I/O模拟量进行工程值自动转换所需要的。组态王将所采集到的数据按照这4项的对应关系自动转为工程值。

(11)保存参数。系统运行时修改变量的域的值(可读可写型),系统则自动保存这些参数值,系统退出后,其参数值不会发生变化。当系统再启动时,变量的域的参数值为上次系统运行时最后一次的设置值,无须用户再去重新定义。

(12)保存数值。系统运行时,当变量的值发生变化后,系统自动保存该值。当系统退出后再次运行时,变量的初始值为上次系统运行过程中变量值最后一次变化的值。

(13)连接设备。只对I/O类型的变量起作用,工程人员只需从下拉式“连接设备”列表框中选择相应的设备即可。所列的连接设备名是已安装的逻辑设备名。

注意:如果连接设备选为Windows的DDE服务程序,则“连接设备”选项下的选项名为“项目名”;如果连接设备选为PLC等,则“连接设备”选项下的选项名为“寄存器”;如果连接设备选为板卡等,则“连接设备”选项下的选项名为“通道”。

项目名:连接设备为DDE设备时,DDE会话中的项目名可参考Windows的DDE交换协议资料。

(14)寄存器。指定要与组态王定义的变量进行连接通信的寄存器变量名,该寄存器与工程人员指定的连接设备有关。

(15)数据类型。只对I/O类型的变量起作用,定义变量对应的寄存器的数据类型,共有9种数据类型供用户使用。

(16)读写属性。定义数据变量的读写属性,工程人员可根据需要定义变量为“只读”属性、“只写”属性、“读写”属性。

①只读。对于进行采集的变量一般定义属性为只读,其采集频率不能为0。

②只写。对于只需要进行输出而不需要读回的变量一般定义属性为只写。

③读写。对于既需要进行输出控制又需要读回的变量一般定义属性为读写。

(17)允许DDE访问。组态王用COM组件编写的驱动程序与外围设备进行数据交换,为了使工程人员用其他程序对该变量进行访问,则选中“允许DDE访问”,即可与DDE服务程序进行数据交换。

(18)采集频率。用于定义数据变量的采样频率。

(19)转换方式。规定I/O模拟量输入原始值到数据库使用值的转换方式。

对于I/O变量中的模拟变量,在现场实际中,可能要根据输入要求的不同而将其按照不同的方式进行转换。比如,一般的信号与工程值都是线性对应的,可以选择线性转换;有些需要进行累计计算,则选择累计转换。组态王为用户提供了线性、开方、非线性表、直接累计、差值累计等多种转换方式。

①线性转换方式。这种方式用原始值和数据库使用值的线性插值进行转换。线性转换是将设备中的值与工程值按照固定的比例系数进行转换。在变量基本属性定义对话框的“最大值”、“最小值”编辑框中输入变量工程值的范围,在“最大原始值”、“最小原始值”编辑框中输入设备中转换后的数字量值的范围(可以参考组态王驱动帮助中的介绍),则系统运行时,按照指定的量程范围进行转换,得到当前实际的工程值。线性转换方式是最直接也是最简单的一种转换方式。

②开方转换方式。该方式用原始值的平方根进行转换,即转换时将所采集到的原始值进行开方运算,得到的值为实际工程值,该值在变量基本属性定义的“最大值”、“最小值”范围内。

③非线性表转换与累计转换。单击转换方式的“高级”按钮,出现“数据转换”对话框,此时可进行非线性表转换和累计转换。非线性表转换:采用非线性表的方式实现非线性物理量的转换;累计转换:累计是在工程中经常用到的一种工作方式,常用于流量、电量等计算方面,组态王的变量可以定义为自动进行数据的累计。

2.3.2 变量的类型

变量可以分为基本类型和特殊类型两大类。

1.基本变量类型

基本类型的变量又分为“内存变量”和“I/O”变量两类,如图2-16所示。

图2-16 基本变量类型

“内存变量”是指那些不需要和其他应用程序交换数据,也不需要从下位机得到数据,只在组态王内需要使用的变量,比如,计算过程的中间变量就可以设置成内存变量。

“I/O变量”是指组态王与外部数据采集程序直接进行数据交换的变量,如下位机数据采集设备(如PLC、仪表等)或其他应用程序(如DDE、OPC服务器等)。这种数据交换是双向的、动态的。也就是说,在组态王系统运行过程中,每当I/O变量的值改变时,该值就会自动写入下位机或其他应用程序;每当下位机或应用程序中的值改变时,组态王系统中的变量值也会自动更新,所以那些从下位机采集来的数据、发送给下位机的指令,如“反应罐液位”、“电源开关”等变量,都需要设置成“I/O变量”。

2.变量的数据类型

基本类型的变量也可以按照数据类型分为离散型、整数型、实数型、字符串型。

内存实型变量、I/O实型变量:类似一般程序设计语言中的浮点型变量,用于表示浮点数据,取值范围为10E-38~10E+38,有效值为7位。

内存离散变量、I/O离散变量:类似一般程序设计语言中的布尔(BOOL)变量,只有0,1两种取值,用于表示一些开关量。

内存整数变量、I/O整数变量:类似一般程序设计语言中的有符号长整数型变量,用于表示带符号的整型数据,取值范围为-2 147 483 648~2 147 483 647。

内存字符串型变量、I/O字符串型变量:类似一般程序设计语言中的字符串变量,可用于记录一些有特定含义的字符串,如名称、密码等,该类型变量可以进行比较运算和赋值运算。字符串长度最大值为128个字符。

3.特殊变量类型

特殊变量类型有报警窗口变量、历史趋势曲线变量及系统预设变量3种。这几种特殊类型的变量体现了组态王系统面向工控软件、自动生成人机接口的特色。

报警窗口变量是工程人员在制作画面时通过定义报警窗口生成的,在报警窗口定义对话框中有一选项为:“报警窗口名”,工程人员在此处输入的内容即为报警窗口变量。此变量在数据词典中是找不到的,是组态王内部定义的特殊变量,可用命令语言编制程序来设置或改变报警窗口的一些特性,如改变报警组名或优先级,在窗口内上下翻页等。

历史趋势曲线变量是工程人员在制作画面时通过定义历史趋势曲线时生成的,在历史趋势曲线定义对话框中有一选项为“历史趋势曲线名”,工程人员在此处输入的内容即为历史趋势曲线变量(区分大小写)。此变量在数据词典中是找不到的,是组态王内部定义的特殊变量。工程人员可用命令语言编制程序来设置或改变历史趋势曲线的一些特性,如改变历史趋势曲线的起始时间或显示的时间长度等。

系统预设变量有8个时间变量是系统已经在数据库中定义的,用户可以直接使用,即$年、$月、$日、$时、$分、$秒、$日期、$时间,表示系统当前的时间和日期,由系统自动更新,设计者只能读取时间变量,而不能改变它们的值。预设变量还有$用户名、$访问权限、$启动历史记录、$启动报警记录、$新报警、$启动后台命令、$双机热备状态、$毫秒、$网络状态。 OA6WUpO9K8bgqnThqhlkIB4n49aYJVRLtPevntViSxSMDEhRfxhsNYYATwLa1uMA

点击中间区域
呼出菜单
上一章
目录
下一章
×