移位操作返回奇怪的错误

Shift operation returning weird error

我在 codesys 环境下用 ABB 编程 plc,我不明白为什么会出现这个错误:

Error 4024: ... Expecting ELSIF,  ELSE or END_IF before 'SHL' 

返回此错误的代码类似于:

IF flag THEN
    iState := 0;
    Step := false;
    SHL(1,iReg);
END_IF 

基本上是两个赋值和一个无符号整数的左移操作。移位是导致错误的原因,注释该行可以消除错误。

我已经检查了很多次语法,还根据自相矛盾的文档颠倒了几次参数。

谁能告诉我我错过了什么?

您的 SHL 需要有一个结果

IF flag THEN
    iState := 0;
    Step := false;
    result := SHL(1,iReg);
END_IF