引用
引用第10樓zhangqi_1234于2022-03-30 19:45發(fā)表的 :
我看你發(fā)的程序,我個人認(rèn)為,程序設(shè)計者使用C251意思是:用它來接收X0和X1端的脈沖。當(dāng)X0的脈沖超前X1脈沖90度時,進行加計數(shù),當(dāng)X0脈沖滯后X1脈沖90度時,進行減計數(shù)。當(dāng)計數(shù)值等于1時,表明X0端和X1端各自輸入了一個脈沖,兩個脈沖相差90度,X0端超前X1端90度。然后C251常開觸頭閉合,C251閉合的第一個掃描周期使D31自加1,然后C251復(fù)位,C251常開觸頭斷開。C251重新從零開始計數(shù),計數(shù)值等于1又開始上述動作,如此周而復(fù)始。然后把D31轉(zhuǎn)存D33,D33轉(zhuǎn)換成實數(shù)存D55,D55又經(jīng)過一系列實數(shù)運算,得出的結(jié)果可能是某零件的長度。那么你說的C251不斷累加計數(shù),而沒有復(fù)位的這種故障,很有可能是X0端輸入的脈沖不是超前X1端脈沖90度,而是滯后X1端90度,結(jié)果導(dǎo)致C251減計數(shù),計數(shù)結(jié)果為負(fù)數(shù),始終不等于1,無法實現(xiàn)復(fù)位。這個屬于PLC的X0端和X1端接編碼器的故障 ,不是PLC的故障。還有一種可能,就是這樣編程使用C251有個前提條件:X0和X1端輸入的脈沖周期不能小于PLC的掃描周期,否則會導(dǎo)致C251不斷累加計數(shù)而不會復(fù)位。另外,需要指出的是,你開始只拿部分程序出來,而不說明PLC的X0和X1端接的什么,別人也很難作出判斷。
出問題時候,一直正計數(shù),您說的沒錯,可能是編碼器故障,另外一種情況不會出現(xiàn),因為出問題前一直這樣使用沒問,現(xiàn)在用比較指令復(fù)位C251,使用沒問題,謝謝解答。