對於我的一個程序,我需要一個梯形圖中的常閉,定時關閉(NCTC)繼電器。在Codesys中定義一個下降沿檢測
我不知道實現這樣的標準方法,所以我試圖自己構建一個。我目前的方法需要一個下降沿檢測。我在一本書的後面找到了這樣一個檢測器的代碼:「IEC 61131-3: 編程工業 系統」(第2版,第327頁)。看起來是這樣的:
FUNCTION_BLOCK F_TRIG (* falling edge *)
VAR_INPUT
CLK : BOOL;
END_VAR
VAR_OUTPUT
Q : BOOL;
END_VAR
VAR RETAIN
MEM : BOOL := 1; (* initialise edge flag *)
END_VAR
Q := NOT CLK AND NOT MEM; (* recognise falling edge *)
MEM := NOT CLK; (* reset edge flag *)
END_FUNCTION_BLOCK
這給了我整整5錯誤(忽略構建因爲那些失敗的):POU的另一個 'ST' 的語句或結束:
錯誤4250:F_TRIG(1)預期
ERROR 4250:F_TRIG(4):POU的另一個 'ST' 的語句或結束預計
ERROR 4250:F_TRIG(7):POU的另一個 'ST' 的語句或結束預計
ERROR 4250:F_TRIG(10) :另一個'ST'聲明或POU結束預計
ERROR 4250:F_TRIG(13):POU的另一個「ST」的語句或結束預計
我正確配置POU的類型是一個功能塊和POU的是ST的語言。我懷疑我的語法是生鏽的,但我願意提供建議。特別是如果我以一種錯誤的方式解決這個問題。
它看起來對我來說沒問題。出了什麼問題?
運行Codesys 2.3。
點3,'Q'和'MEM'被聲明爲'BOOL'。看起來他們最後會有一個定義的值。 – Mast
我會回來詳細說明我在做什麼以及您的建議是否有效。 – Mast
我想要做的是建立一個常閉閉合定時閉合(NCTC)繼電器。 – Mast