这个问题的答案真的取决于IDE。尽管 ST 有一个标准,但每个供应商的实施方式都略有不同。
一般来说,这是有效的陈述。
VAR
a, b: BOOL;
END_VAR
IF a = b THEN
// Do something
END_IF
这是 IEC 61131-3 草案中的内容。不幸的是,它不是开放文档并且要花钱,这就是为什么我不能在此处发布或提供链接的原因。
https://webstore.iec.ch/publication/4552
GT >递减顺序:OUT := (IN1>IN2) & (IN2>IN3) & ... & (INn-1 > INn)
GE >=单调序列:OUT := (IN1>=IN2)&(IN2>=IN3)& ... & (INn-1 >= INn)
EQ =平等:OUT := (IN1=IN2) & (IN2=IN3) & ... & (INn-1 = INn)
LE <= 单调序列:OUT := (IN1<=IN2)&(IN2<=IN3)& ... & (INn-1 <= INn)
LT <递增顺序:OUT := (IN1<IN2) & (IN2<IN3) & ... & (INn-1 < INn)
NE <>不等式(不可扩展)OUT := (IN1 <> IN2)
这也意味着在某些 IDE 中您可以使用
IF EQ(a, b) THEN
// Do something
END_IF
这也应该是有效的。
我可以写:A > B 是什么意思?
如果A大B于此表达式将返回TRUE否则FALSE。