2017-06-12 5 views
0
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が表示される理由がわかりません。誰か助けてくれますか?エラー4024構造化テキストプログラミング

答えて

1

使用しているPLCやツール、エラー4024が意味するもの、そしてどのラインから来るのかは言及していません。それはあなたの質問に答えるのが少し難しいです。おそらくその質問は、そのアカウントのダウンウェットの資格があると言う人もいます。

私はあなたの例の書式設定によって少し混乱しています。コードとしてフォーマットしてください(4スペースのインデントを使用する場合、自動的に行われます)、読みやすく、解答しやすくなります。

私は以下の書式設定を試みましたが、いくつかのコメントがあります。

  • 1行目:通常は使用しません:=だけ=前THEN( コンパイラに依存するが、私はそれを疑うかもしれない)
  • 4行目:あまりにも多くあります:=さん。この行と次の行は、ELSIFまたは別のネストされたIFに分割されているのでしょうか?

私は役立つことを願っています。 :-)

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 
2

免責事項:あなたが使用したり、どのようなエラー4024個の手段がありますが(ほとんどのPLCである)typcicaly IEC 61131 PLC言語を使用している場合、私はあなたのコードの形式にコメントすることができているか、PLCわかりません。

まず、:=は代入演算子です。 =は比較演算子です。だからあなたのifなステートメントでは、あなたは(通常、すべてのIEC 61131個の言語はしかし同じです。あなたが使用しているPLCによって異なります)

IF IP_emo = FALSE THEN 

または代わりを使用することになり

IF NOT IP_emo THEN 

第二に、ANDORは、比較のためにありますあなたは譲歩のオペレーターでそれらを持つことはできません。あなたがやろうとしているかを正確にわからない何か

または多分

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 

を行うことができます。