【问题标题】:Shift operation returning weird error移位操作返回奇怪的错误
【发布时间】:2016-03-14 12:21:11
【问题描述】:

我在 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 

基本上是两个赋值和一个无符号整数的左移操作。转变是产生错误的原因,而注释该行会消除它。

我已经检查了很多次语法,在相互矛盾的文档之后也多次反转了参数。

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

【问题讨论】:

    标签: automation plc codesys structured-text


    【解决方案1】:

    您的 SHL 需要有结果

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

    【讨论】:

    • 哦,谢谢,现在可以正常使用了。只是一个观察......我把输入混合在一起:首先是要移动的变量,然后是位置数
    • 是的,SHL 函数返回一个值。你需要告诉编译器它的去向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 2018-04-17
    • 2023-03-02
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多