purshro
級別: 略有小成
|
高速中斷的問題請教各位。信捷XC3高速定長切斷。最高速120米每分鐘。用的400線的編碼器計數,1倍頻。高速計數中斷方式切斷。當到達設定長度脈沖后,立刻進入中斷,復位高速數器C630。現在的問題是發現復位C630時,丟脈沖導致計數不準。感覺復位時間太長導致編碼器在走了不少距離才又歸的零。幾試過1024線的也差不多。低速誤差還好,高速相差較大。編碼器沒問題,只要復位就有誤差。 |
---|---|
|
purshro
級別: 略有小成
|
再說一下檢測思路。編碼器400線,1倍頻。在編碼器上設置一標志位,那么轉一周剛好轉回標志位對齊。比如80000個脈沖,那么剛好20轉對齊標志位。但當設置比如40000個脈沖進入中斷時,應該就是轉10圈進入中斷。立即對C630復位。第二個也40000個脈沖進入第二次中斷,當第二,第三個……中斷來的時候,就越來越偏離標志位了。按理說應該每轉一圈400個脈沖都應該對得上標志位置,實際上復位就不行。不復位怎么都行,標志位上監控的數也都是400的整倍數。 |
---|---|
|
purshro
級別: 略有小成
|
機械沒有問題的,PLC速度應該也不是問題。中斷不就是立即處理不受掃描周期影響的么?就算是最高速度1ms也才是運行2mm而已。我現在關心的是C630進入中斷后立刻復位C630,那么它是不是馬上復位。復位后又是否馬上計數。因為程序的思路就是C630到達設定的脈沖數(長度)后進入中斷,復位C630。那么C630應該立即從0開始計數。到達設定脈沖數后進入中斷,復位C630……如此循環。 |
---|---|
|
niningtt
級別: 工控俠客
|
首先你要知道PLC的掃描周期。你使用的高速計數器計數不會丟(相信一般的PLC都可以做得到),那么就是你的程序的問題了,在告訴處理的程序,應該避免因為掃描周期造成的誤差。比如本次掃描,讀取告訴計數器值,小于目標值哪怕是1,也不會輸出。但是當下一個掃描周期,這一個周期有可能過了數個,數十個,脈沖。原因大多是你這個指令用的不對。信捷的沒用過,但是應該有個高速比較指令。這個就是高速計數器達到指定值就直接進入中斷,就像高速計數后臺處理,這樣就可以避免一個掃描周期內的不確定性 |
---|---|
|
purshro
級別: 略有小成
|
r 謝謝指導。信捷好象沒有類似HSCS,HSCR 這類指令。它的HSCR只是讀取高速計數的值。所以才用的中斷處理,所以第一根總是準的。當C630到達指定長度后進入中斷。RST -C630,問題是只要一復位C630計數器,就不準了。RST是非高速指令,不知道會不會是這個問題。信捷好象也沒有高速計數器比較復位HSCR這樣的指令。 |
---|---|
|