数据类型:只对I/O类型的变量起作用,定义变量对应的寄存器的数据类型,共有9
种数据类型供用户使用,这9种数据类型分别是:
BIT:1位;范围是:0或1
BYTE:8位,1个字节;范围是:0---255
SHORT,2个字节;范围是:-32768---32767
USHORT:16位,2个字节;范围是:0---65535
BCD:16位,2个字节;范围是:0---9999
LONG:32位,4个字节;范围是:-2147483648——2147483647
LONGBCD:32位,4个字节;范围是:0---4294967295
FLOAT:32位,4个字节;范围是:-3.40E+38~+3.40E+38,有效位7位
STRING:128个字符长度
2,
变量有哪些域
变量的域越多,表明属性越丰富。
不同类型的变量具有不同的域,详解如下:
1.变量的基本属性域
变量的基本属性域包括Name,Comment,质量戳相关域,时间戳相关域。
Name:表示变量的名称,字符型,只读。
Comment:表示变量的描述内容,字符型,可读可写。
质量戳相关域:变量的质量戳表示变量的数据质量好坏。
质量戳相关域包括:
Quality:表示变量质量戳的值,整型,只读。
QualityString:表示变量质量戳字符串,字符串型,只读
时间戳相关域:变量的时间戳表示变量数据的采集时间。
时间戳相关域包括:
TimeYear:表示变量时间戳年的值,整型,只读
TimeMonth:表示变量时间戳月的值,整型,只读
TimeDate:表示变量时间戳日的值,整型,只读
TimeHour:表示变量时间戳小时的值,整型,只读
TimeMinture:表示变量时间戳分的值,整型,只读
TimeSecond:表示变量时间戳秒的值,整型,只读
TimeMsec:表示变量时间戳毫秒的值,整型,只读
TimeZone:表示变量时间戳时区的值,整型,只读
TimeDateString:表示变量时间戳日期的字符串,字符串型,只读
TimeTimeString:表示变量时间戳时间的字符串,字符串型,只读
组态王的变量(除报警窗和历史曲线变量外)均具有以上14种域。
另外,IO整型变量和IO实型变量还有下面四个域:
MaxEU:最大值,模拟型,可读可写。
MinEU:最小值,模拟型,可读可写。
MaxRAW:表示变量的最大原始值,模拟型,可读可写。
MinRAW:表示变量的最小原始值,模拟型,可读可写。
内存整型,内存实型变量也有MaxEU和MinEU域。
例如:
图5.17 变量域值的定义
如上图5.17所示。
的值是“test”, ment的值是“This is a test”,test.MaxRaw的值是100, test.MinRaw的值是0。
2.变量的报警域
离散变量的报警域包括
Ack 表示变量报警是否被应答,离散型,只读。
Alarm 表示变量是否有报警,离散型,只读。
AlarmEnable表示变量的报警使能状态,离散型,可读可写
DataChanged表示变量的变化状态,当变量值变化时,该域置1,
用户可以手动赋值为0,离散型,可读可写。
DataUpDate表示变量的状态变化,离散型,只读。
默认状态为
false。
当从设备上采集上数据,填充实时库时(不
管数据是否变化),该值置为true,需要手动复位。
Group 表示变量所属的报警组ID,模拟型,可读可写。
Priority表示变量的报警优先级,模拟型,可读可写。
ExtendFieldString1表示报警变量的扩展域1,字符串型,可读可写
ExtendFieldString2表示报警变量的扩展域2,字符串型,可读可写
注意:
变量的Group域(报警组ID)的值只能通过命令语言来修改。
整型、实型变量除包括上面与离散变量相同的报警域外,还包括以下几种域:
HiHiLimit高高报警限,模拟型,可读可写。
HiHiStatus高高报警状态,离散型,只读。
HiLimit高报警限,模拟型,可读可写。
Histatus高报警状态,离散型,只读。
LoLimit低报警限,模拟型,可读可写。
LoStatus低报警状态,离散型,只读。
LoLoLimit低低报警限,模拟型,可读可写。
LoLoStatus低低报警状态,离散型,只读。
F_ALARMDELAYTIME越限或偏差报警延时,模拟值,可读可写。
MajorDevPct大偏差报警限,模拟型,可读可写。
MajorDevStatus大偏差报警状态,离散型,只读。
MinorDevPct小偏差报警限,模拟型,可读可写。
MinorDevStatus小偏差报警状态,离散型,只读。
DevTarget偏差报警限的目标值, 模拟型,可读可写。
RocPct变化率报警限,模拟型,可读可写。
RocStatus变化率报警状态,离散型,只读。
例如:
在数据库中有一个I/O离散变量“断电保护”,如果要把它的报警优先级增加一级,则可用命令语句:
断电保护.Priority=断电保护.Priority-1 (数字越小,优先级越高)
例如:
在数据库中定义一个I/O实型变量“反应罐温度”,如果要显示“反应罐温度”的小偏差报警状态,则可用下述表达式:
反应罐温度. MinorDevStatus
3.变量的历史记录起停控制域:
变量的历史记录起停控制域RecLogEnable表示变量的历史记录状态,可读写:0表示该变量停止记录历史数据,1表示该变量记录历史数据,默认为记录历史数据。
字符串变量没有RecLogEnable域。
例如:
在数据库中定义一个I/O实型变量“反应罐温度”,如果要停止该变量的历史数据记录,可用命令语言设置:
反应罐温度. RecLogEnable=0
4.报警窗口的域:
和报警窗相关的域有:
Group:表示报警窗口显示的变量的报警组名,组变量,只写。
Priority:表示报警窗口显示的变量的报警优先级,模拟型,可读可写。
例如:
定义一个报警组名“第一车间”,为了让报警窗口变量“化工厂报警窗口”显示第一车间的报警,可用命令语言设置:
化工厂报警窗口.Group=第一车间
例如:
为了让报警窗口变量“化工厂报警窗口”显示报警优先级大于等于10的报警,可用命令语言设置:
化工厂报警窗口.Priority=10
5.历史趋势曲线的域:
历史趋势曲线的域包括:
ChartLength历史趋势曲线的时间长度,长整型,可读可写,
单位为秒。
ChartStart历史趋势曲线的起始时间,长整型,可读可写,
单位为秒。
ValueStart历史趋势曲线的纵轴起始值,模拟型,可读可写。
ValueSIze历史趋势曲线的纵轴量程,模拟型,可读可写。
ValueEnd历史趋势曲线的纵轴结束值,模拟型,可读可写。
ScooterPosLeft左指示器的位置,模拟型,可读可写。
ScooterPosRight右指示器的位置,模拟型,可读可写。
Pen1到Pen8历史趋势曲线显示的变量,变量ID号,可读可写,
用于改变绘出曲线所用的变量。
历史趋势曲线的域的使用详见“第八章趋势曲线和其它曲线”。
3,
线性转换方式
用原始值和数据库使用值的线性插值进行转换。
如下图所示,线性转换是将设备中的值与工程值按照固定的比例系数进行转换。
如图5.20所示,在变量基本属性定义对话框的“最大值”、“最小值”编辑框中输入变量工程值的范围,在“最大原始值”、“最小原始值”编辑框中输入设备中转换后的数字量值的范围(可以参考组态王驱动帮助中的介绍),则系统运行时,按照指定的量程范围进行转换,得到当前实际的工程值。
线性转换方式是最直接也是最简单的一种IO转换方式。
图5.20 定义线性转换
例1:
与PLC电阻器连接的流量传感器在空流时产生0值,在满流时产生9999值。
如果输入如下的数值:
最小原始值=0 最小值=0
最大原始值=9999 最大值=100
其转换比例=(100-0)/(9999-0)=0.01
则:如果原始值为5000时,内部使用的值为5000*0.01=50。
例2:
与PLC电阻器连接的流量传感器在空流时产生6400值,在300GPM时产生32000值。
应当输入下列数值:
最小原始值=6400 最小值=0
最大原始值=32000 最大值=300
其转换比例=(300-0)/(32000-6400)=3/256,
则:如果原始值为19200时,内部使用的值为(19200-6400)*3/256=150;原始值为6400时,内部使用的值为0;原始值小于6400时,内部使用的值为0。