为什么包含比较类型为 WORD / DWORD 的变量的 IF 语句不能被编译通过?

操作规程:
当在 IF 指令内比较操作数时,如果变量声明为 WORD 和 DWORD 类型,S7-SCL 仅允许比较操作“=”和“<>”,而不允许比较操作“>”和“<”。作为一种补救措施,建议将变量类型声明为 DINT。

IF 语句的操作数比较
变量类型:WORD 变量类型:DINT
只能使用“=”和“<> 所有:“=”,“<>”,“>”和“<

表 1

当操作数类型为“DWORD”时,在 IF 语句内进行操作数的“=”比较。

为什么包含比较类型为 WORD / DWORD 的变量的 IF 语句不能被编译通过?
图 01

在 IF 语句内对操作数进行“<”比较,这里必须声明操作数类型为“DINT”。

为什么包含比较类型为 WORD / DWORD 的变量的 IF 语句不能被编译通过?
图 02

如果变量“Var_max”和“Var_min”的类型不能声明为 DINT,则必须首先进行类型转换。与此相关的信息可以在下面的 FAQ 中找到:

  • “如何比较 WORD 类型变量和 DWORD 类型变量?”条目号:!21214698!

关键词:
大于或等于,小于或等于,不等于,消息:”Invalid operand types”

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc336503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论