700萬實戰設備準備待續,你是否心動,工業幫歡迎大家來參觀考察。
一直以來對PLC掃描過程中I與Q的表現有這樣的錯誤理解:輸入I輸出Q狀态(觸點)在掃描周期過程中不會随時改變(這是為了PLC系統有穩定效果,當然對于立即刷新指令另當别論)。
按鈕(I0.0)按下或者解除時,Q0.0輸出翻轉,多年前寫過下圖程序。
編寫以上邏輯,基于以下思考:
不論那個掃描周期檢測到輸入信号I0.0有變化(沿信号),如果Q0.0為0,那麼就會執行SET指令,Q0.0變為1。由于輸出刷新要到掃描結束時才執行,此時Q0.0的常開、常閉點不會有變化,所以RST指令不會被執行。
接下來的掃描周期,由于已經刷新了Q0.0的狀态,Q0.0的常開、常閉點翻轉,就為下次檢測到輸入信号I0.0變化時Q0.0繼續翻轉做好準備。所以以上邏輯應該能完成随着輸入變化輸出随動翻轉變化。
但是上圖程序實際測試,Q0.0壓根不動作。當年開始學習時沒有深究,想當然認為這樣寫類似于OUT輸出指令的雙線圈,執行了最後那個RST指令。多年來遇到此類問題一直采用中間變量M過度解決,還想當然認為這是PLC的一個特殊點。
這幾天與同事說到Q刷新問題,為自己的錯誤理解大吃一驚,如此低級錯誤竟然伴随自己這麼多年!汗顔……
馬上使用如下圖示程序驗證:
有沿信号輸入,Q0.0隻從0變為1執行一次,Q0.1壓根不動作。這就充分說明由于先執行了SET Q0.0,導緻Q0.0的常閉點立即斷開,緊接着的SET Q0.1也就不會被執行了。
趕緊翻看PLC理論方面的書籍,原來白字黑字寫得清清楚楚,有圖為證:
哎!看來學習還需要有刨根問底的精神,不敢想當然了事。
有話要說...