nilgns
級別: 探索解密
|
大家好:幫我看下程序那里出錯! 我要實現的功能是:用三菱PLC的FX1s-30MR,當D0 == 0的時候,X0出現上升沿則將Y0置1,當D0==1的時候,X0出現上升沿則將Y0清0。(程序的case有很多狀態,這里只是簡化出現的故障) 現在的故障現象:初始上電后,X0的第一次上升沿出現時,Y0不動作,然后再出現則Y0正常動作。 IF Y0 THEN D0 := 1; ELSE D0:=0; END_IF; CASE D0 OF 0: SET((LDP(TRUE,X0)),Y0); 1: RST((LDP(TRUE,X0)),Y0); END_CASE; 從PLC內讀出的梯形圖見附件。 在此先謝謝大俠們~~~~~~~ |
---|---|
|
abcde12345
級別: 論壇先鋒
|
你牛叉,那么多的跳轉被你搞暈了 你直接搞 LD= D0 K0 ANDP X0 SET Y0 LD= D0 K1 ANDP X0 RST Y0 其實你的那個跳轉和沒跳一樣,他和子程序不同,跳轉其實M8000還是有電的,但是子程序的M8000沒有電(沒有調用之前) |
---|---|
|
nilgns
級別: 探索解密
|
謝謝兩位的回答! 其實我是要用ST語言寫的,case的情況還有很多,不止0、1兩種,還有2、3、4、……,而且D0也不是簡單的由Y0控制,我的意思是D0受到多個輸出點Yn的影響。我現在想問的是上面的程序為什么在X0的第一次上升沿(其實就是一個按鍵,我通過上升沿來判斷它為一次合法按鍵過程)Y0不動作。(本來程序的功能就是按下X0,Y0轉換下狀態0<->1) 附件里面的梯形圖是我將上面的ST程序燒錄進去后讀出來的。(我不管開發軟件是如何轉換編譯的,我只想知道ST程序為什么會出錯) |
---|---|
|
nilgns
級別: 探索解密
|
而且每個case里面也不止簡單的一句話,里面還有一小段程序。感覺用梯形圖要畫出好幾層了,看起來更暈! |
---|---|
|