IF IP_emo:=FALSE THEN
State:= OFF_Mode;
ELSE
State :=OFF AND IP_emo:=TRUE AND start_Btn:=TRUE OR start_Btn:=False;
State:= Monitor_Mode;
END_IF
我不知道为什么我在这个需要a := before "THEN"
的代码上收到错误4024。有人能帮助我吗?
答案 0 :(得分:2)
免责声明:不确定您使用的是什么plc或错误4024的含义,但如果您使用典型的IEC 61131 plc语言(大多数plc都是),我可以评论您的代码格式。
首先,:=
是一个赋值运算符。 =
是比较运算符。因此,在您的if
声明中,您将使用
IF IP_emo = FALSE THEN
或者(取决于您使用的是哪个plc。通常所有IEC 61131语言都是相同的)
IF NOT IP_emo THEN
其次,AND
和OR
用于比较,因此您无法使用assingment运算符。你可以做点什么
ELSE
State :=OFF;
IP_emo:=TRUE;
start_Btn:=TRUE;
start_Btn:=FALSE;
State:= Monitor_Mode;
END_IF
或者
ELSE
State :=OFF;
IF IP_emo=TRUE AND start_Btn=TRUE AND (start_Btn=TRUE OR start_Btn=FALSE) THEN
State:= Monitor_Mode;
END_IF
END_IF
不完全确定你要做什么。
答案 1 :(得分:1)
您没有提及您正在使用的PLC或工具,错误4024的含义以及它来自哪条线。这使得回答你的问题变得有点困难。有些人可能会说这个问题有资格在该帐户上进行下降。
我对你的例子的格式有点困惑。请格式化为代码(如果你使用4个空格缩进,则自动完成),它将更容易阅读和回答。
我尝试了下面的格式化,并对此有一些评论。
我希望有所帮助。 : - )
IF IP_emo:=FALSE THEN
State:= OFF_Mode;
ELSE
State :=OFF AND IP_emo:=TRUE AND start_Btn:=TRUE OR start_Btn:=FALSE;
State:= Monitor_Mode;
END_IF