图一 典型IF语句
看,这个程序,有问题吗?你会说,没问题,它也确实没问题,但它真的有问题。这不是绕口令!虽然它从数学的角度看没问题,但是它从ST的语法角度看,它是有问题的,编译一下
图二 编译错误
如图二,看黄色荧光笔的部分,错误类型,不能比较BOOL和 类型SINT ,这个报警莫名其妙,因为我们根本就没有定义BOOL型变量。其实,这是ST语言语法导致的,那就是不能做连续的比较,也就是同一个变量连续用两个逻辑判断,这是不允许的。我们必须把它分开,看下图
图三 连续逻辑判断的正确写法
这才是连续逻辑判断语句的正确写法,就是把逻辑拆分开。 0<A<5,表示 变量A 在0和5 之间,也就是它既要大于0又要小于5,所以用一个AND 把两个条件联系起来。如图三所示,这才是连续逻辑判断语句的正确写法。
大家在使用ST语言的时候务必要注意这一点,同样,在西门子博途中也是不能使用连续逻辑条件的。