小弟最近做個項目是有關步進電機的,電機運行的有效行程內有一個光電傳感器,我以之為零點,找零的過程是電機快速運行到零點后,由于慣性,電機已經超出了零點的位置,這時候我讓電機切換到慢速,以小行程來逼近零點,如一次運行20脈沖,判斷是否到零點,如果沒到就再運行20脈沖,我將這個功能做成一個子程序 Fzero
Fzero 我做的太大,里面有循環判斷指令,再循環體中我還有每個循環延時一秒來進行判斷的指令;
Fzero 我做的太大,里面有循環判斷指令,再循環體中我還有每個循環延時一秒來進行判斷的指令;
|----|M0.1|--------|Fzero|
程序下載執行,PLC報警:【程序掃描看門狗超時錯誤】
請問是什么問題,如何解決?
答:首先你應該了解PLC的周期掃描的原理:自左向右,自上往下
簡單的說,在掃描開始,讀取輸入輸出數字量點狀態,以之為基礎,按照自左向右,自上往下的掃描順序來執行指令的,在同一個掃描周期,一種邏輯位如V100.0,只保存在本次掃描周期結束前的最后一種狀態,V100.0在一次掃描周期中改變不管改變多少次,只有最后一次會保持,直至下一個掃描周期開始;
所以你使用一些改變程序的指令,如JMP FOR NEXT,尤其是JMP指令,如果是逆向JMP,很容易出現看門狗錯誤;
這里給你幾個建議:
1.將循環指令分解開,做成順序執行,(需要增加邏輯判斷語句)
2.如果有FOR ----NEXT指令,在循環體中不要用延時指令,而且數據量不要過多;
3.盡量不要修改背景時間,在要求響應速度的系統,這很不明智;
4.對你的尋零方案進行改進;
























粵公網安備 44030402000745號