加入QQ群
售前咨询
18604058908
售后热线
13166668196
微信扫一扫
关注沈阳菲尔德
获取更多免费产品
 
Language

HART设备描述语言中的条件(Conditionals)和表达式(Expressions)

 来源: |  阅读:1828次 |  2022/5/10 11:06:51

条件用于指定依赖于设备变量值的属性。设备描述语言中有两种条件判断:if条件和select条件。

if条件

IF ( expression ) {
then-clause
}
ELSEopt {
else-clause
}

if条件可用于指定具有两个可选定义的属性。这个表达式被计算。如果结果非零,则该属性由then子句指定;否则它由else条款规定。

每个子句的结构取决于所定义的属性。然而,不管属性,每个子句也可以采用另一个条件的形式。

select条件

选择条件表示为:

SELECT ( expression ) {
CASEopt constant-expression :
clause
CASEopt constant-expression :
clause
DEFAULT :
clause
}

选择条件可用于指定具有多个可选定义的属性。这个对括号中的表达式求值。然后,对案例前面的每个表达式求值,以顺序,直到其计算结果与控制表达式的值相同。如果找到匹配项,则属性由匹配表达式后面的子句指定;否则,它由违约后的条款。默认值必须出现在所有select条件中。

每个子句的结构取决于所定义的属性。然而,不管属性,每个子句也可以采用另一个条件的形式。

表达式指定数值的计算。有三种表达方式:

主表达式、一元表达式和二元表达式。

primary-expression:

integer

floating-constant

reference

reference . DEFAULT_VALUE

reference . VIEW_MIN

reference . VIEW_MAX

reference . MIN_VALUE

reference . MAX_VALUE

reference . MIN_VALUEn

reference . MAX_VALUEn

reference . COUNT

reference . CAPACITY

reference . FIRST

reference . LAST

reference . HELP

reference . LABEL

reference . DEFAULT_VALUE

( expression )

NOTE: n is a decimal-integer

常数是一个表达式,其值与常数的值相同。

带括号的表达式是一个表达式,其值与封闭表达式的值相同

表示

变量引用是一个表达式,其值是被引用变量的值。

设备变量的最小值和最大值也是主要表达式。他们拿走了

表格:

variable-name . MIN_VALUE

variable-name . MAX_VALUE

例如

upper_range_value.MAX_VALUE

指定变量上限值的最大值。

一元表达式

一元表达式由一个操作数、一个表达式和一元运算符组成。运算符指定其操作数的算术求反。

~运算符指定其操作数的位求反,即结果的每一位都是逆运算操作数对应位的。~运算符的操作数必须具有整数值。

这个运算符指定其操作数的逻辑求反。

二进制表达式

二进制表达式由两个操作数组成,即表达式,由一个二进制运算符分隔。如果有的话其中一个操作数具有浮点值,另一个操作数转换为浮点值。

乘法操作符

*运算符指定其操作数的乘法。和%运算符指定第一个操作数除以第二个操作数。/运算符的结果是除法,而%运算符的结果是余数。

加法操作符

+运算符指定其操作数的加法。运算符指定第一个操作数的第二个操作数。

位移操作符

运算符指定第一个操作数按第二个操作数。<<运算符指定将第一个操作数向左移位。比特移位了被丢弃,空出的位被零填充。>>运算符指定将第一个右边的操作数。移位的位被丢弃。如果第一个操作数小于0,则空出的部分是填满的部分;否则它们是零填充的。<<和>>运算符的操作数必须有整数值。

关系运算符

<,<=,>,>=运算符指定其操作数的比较。操作员测试关系“小于”<=运算符测试关系“小于或等于”>运算符测试关系“大于”,以及>=运算符测试关系“大于”如果测试的关系为真,则此类表达式的结果为1,否则结果是0。

相等运算符

和!=运算符指定其操作数的比较。==运算符测试关系“平等”和操作员测试关系“不相等”。结果如果测试的关系为真,则此类型的表达式为1,否则结果为0。

位与运算符

&运算符指定其操作数的按位AND,即,如果设置操作数的相应位。&运算符的操作数必须是整数值。

按位异或运算符

^运算符指定其操作数的位异或,即,如果只设置操作数的一个对应位。^运算符的操作数必须具有整数值。

按位或运算符

|运算符指定其操作数的按位包含或,即,如果设置操作数的相应位。|运算符的操作数必须具有整数值。

逻辑与运算符

&&运算符指定其操作数的延迟计算。这类表达式的结果如果两个操作数都不等于0,则为1,否则结果为0。如果第一个操作数相等如果设置为0,则不计算第二个操作数。

逻辑或运算符

||运算符指定其操作数的延迟计算。这类表达式的结果如果任一操作数不等于0,则为1,否则结果为0。如果第一个操作数不是等于0时,不计算第二个操作数。