職業特工0
級別: 探索解密
|
圖片:
如題,那位大神知道問題出在哪里嗎? [ 此帖被職業特工0在2022-03-30 17:19重新編輯 ] |
---|---|
|
zhangqi_1234
級別: 略有小成
|
嚴格地說,不能這樣使用C251,C251是外部高速計數器,采用中斷方式工作。普通的內部計數器可以這樣使用 |
---|---|
|
職業特工0
級別: 探索解密
|
一直這樣使用的,好幾年了,最近才出現這樣問題,我覺得程序沒問題,不知哪里出問題了? |
---|---|
|
zhangqi_1234
級別: 略有小成
|
既然你認為C251這么用沒問題,那么你只把這段程序拿出來是幾個意思? |
---|---|
|
職業特工0
級別: 探索解密
|
我懷疑是PLC有問題,但用比較指令就可以復位C251,不知為什么 |
---|---|
|
職業特工0
級別: 探索解密
|
接的編碼器 |
---|---|
|
職業特工0
級別: 探索解密
|
整個程序 [ 此帖被職業特工0在2022-03-30 17:22重新編輯 ] |
---|---|
|
zhangqi_1234
級別: 略有小成
|
我看你發的程序,我個人認為,程序設計者使用C251意思是:用它來接收X0和X1端的脈沖。當X0的脈沖超前X1脈沖90度時,進行加計數,當X0脈沖滯后X1脈沖90度時,進行減計數。當計數值等于1時,表明X0端和X1端各自輸入了一個脈沖,兩個脈沖相差90度,X0端超前X1端90度。然后C251常開觸頭閉合,C251閉合的第一個掃描周期使D31自加1,然后C251復位,C251常開觸頭斷開。C251重新從零開始計數,計數值等于1又開始上述動作,如此周而復始。然后把D31轉存D33,D33轉換成實數存D55,D55又經過一系列實數運算,得出的結果可能是某零件的長度。那么你說的C251不斷累加計數,而沒有復位的這種故障,很有可能是X0端輸入的脈沖不是超前X1端脈沖90度,而是滯后X1端90度,結果導致C251減計數,計數結果為負數,始終不等于1,無法實現復位。這個屬于PLC的X0端和X1端接編碼器的故障 ,不是PLC的故障。還有一種可能,就是這樣編程使用C251有個前提條件:X0和X1端輸入的脈沖周期不能小于PLC的掃描周期,否則會導致C251不斷累加計數而不會復位。另外,需要指出的是,你開始只拿部分程序出來,而不說明PLC的X0和X1端接的什么,別人也很難作出判斷。 [ 此帖被zhangqi_1234在2022-03-30 20:02重新編輯 ] |
---|---|
本帖最近評分記錄: |