约束条件编辑器

约束条件表达式的语法

约束条件表达式语法是 LN 工具语法的子集。可以使用下面的基本说明来写约束条件表达式。

算术运算符:

  • *(乘)
  • /(除)
  • +(加)
  • -(减)
  • \(相除后的余数)
  • &(链接字母数字数组)

逻辑运算符:

  • OR

关系运算符:

  • =(等于)
  • >(大于)
  • >=(大于或等于)
  • <>(不等于)
  • <(小于)
  • <=(小于或等于)

域表达式

A 是 {a1,a2,a3-a4,..} 表示:(A=a1 或 A=a2 或 A >= a3 和 A <= a4 等等)。

域表达式语法是一定范围内变量的逻辑表达式的简单符号表示。

表达式的优先级

算术运算符比关系运算符具有更高的优先级。

关系运算符比逻辑运算符具有更高的优先级。

算术运算符的优先级顺序: * / \ + -

逻辑运算符的优先级顺序:NOT、AND、OR

可以使用圆括号(“()”)来更改字母数字和逻辑运算符的优先级顺序。

示例

3 + 4 * 5 = 23

(3 + 4) * 5 = 35

布尔表达式

布尔表达式具有值真或假 (1 或 0)。这种表达式可以用于约束条件,尤其是条件表达式。

示例

If not e then ' 表示:

If e = false then'

或 If e = 0 then'

If-then-else 结构

可以在约束条件中使用扩展的 if-then-else 结构。允许嵌套声明。

If-then-else 结构通常以 endif 语句结束。使用 else 语句不是必备的。If、else 和 endif 语句通常用于开始一个新行。(条件)表达式可以分成几行。验证约束条件可以不使用 if-then-else 语句定义;但这个约束条件必须用 c: 开始。

可以使用 | 符号为约束条件提供注释。配置过程中,可以使用变量消息(最多 80x25 行文本)生成消息。

示例

If expression1

then expression2

else expression3

endif

约束条件变量

全局变量和局部变量都可以在约束条件表达式中使用。全局变量是声明为全局的产品特性和自定义的约束条件变量。由产品配置器预定义的变量,如输入、显示、长度、宽度等都是局部变量。全局变量在整个配置过程中保留自己的值,除非它们的值被更改。

约束条件变量可以具有下列类型的声明:

  • 字符串型(字母数字)(例如:string machine global)
  • 长整型(整数)(例如:long i)
  • 双精度型(小数)(例如:double j)

自定义的约束条件变量必须在约束条件的开始声明。在执行约束条件前将初始化所有局部变量:清除字母数字变量,数字变量值归零。用值真来初始化全局变量输入和验证。

约束条件变量用法

产品特性在约束条件表达式中必须有开始和结束方括号 ([......])。其它变量可以在表达式中直接使用。字母数字变量(字符串数组)可以根据下列符号进行索引:(startposition[;length])。

示例

[颜色] = "red"

验证 = 真

变量的值可以是字母数字或数字。字母数字值必须写在引号中 ("....")。数字值可以直接输入。小数符号是一个点(“.”)。

示例

machine(1;2) = "A5"

volume = 28.673

常量真/假可用于布尔表达式。

算术函数

  • round(X,Y,Z):得出 X 的舍入值;Y 表示小数位数,Z 是舍入方法(0 = 下舍入,1 = 四舍五入,2 = 上舍入)
  • val(A):得出字符串 A 的数字值 (val("8.7") = 8.7)
  • abs(X):计算 X 的绝对值 (abs(-10.3) = 10.3)
  • int(X):得出 X 的整数值 (int(11.6) = 11)
  • pow(X,Y):X 的 Y 次幂 (pow(10,2) = 100)
  • sqrt(X):得出 X 的平方根 (sqrt(16) = 4)
  • min(X,Y):得出 X 和 Y 的最小值 (min(6,10) = 6)
  • max(X,Y):得出 X 和 Y 的最大值 (max(6,10) = 10)
  • pi:常数值 PI (3.1415926...)

测角函数

  • sin(X)、cos(X)、tan(X):得出 X (射线)的正弦、余弦或正切
  • asin(X)、acos(X)、atan(X):得出 X 的反正弦、反余弦或反正切
  • hsin(X)、hcos(X)、htan(X):得出 X 的双曲正弦、双曲余弦或双曲正切

对数函数

  • exp(X):X 的 e 次幂
  • log(X):得出 e 为底的 X 的自然对数
  • log10(X):得出以 10 为底的 X 的对数值

字符串函数

  • edit(X,Y):以格式 Y 格式化数字值 X (edit(10.3,"ZZZ9V.99") = " 10.30")
  • str(X):将数字值转为字符串 (str(10.3) = "10.3")
  • len(X):得出字符串 X 的长度 (len("abc") = 3)
  • strip(X):删除最后字符后的空格 (strip("A ") "A")
  • pos(X,Y):在字符串 X 中从左边得出字符串 Y 的位置
  • rpos(X,Y):在字符串 X 中从右边得出字符串 Y 的位置

日期函数

  • date():得出从第 0 天到当前日期的天数
  • date(y,m,d):得出从第 0 天到输入日期的天数

示例

date(1995,06,01) = 728445