請大家?guī)兔?nbsp;DSG(2009/9/23 23:11:05) 點擊:
25308 回復(fù):
10 IP:
112.93.112.* 此貼在2009/9/23 23:14:37被*DSG*編輯過
PLC是FBS-24MCT,我自己編的一段程序,是利用X4上下沿中段來復(fù)位高速計數(shù)器HSC1的現(xiàn)在值CV,在X4-I中斷程序里編輯了復(fù)位高速計數(shù)器HSC1現(xiàn)在值CV的程序,當(dāng)計數(shù)器還沒到計到PV時,X4發(fā)生中斷了,為什么有時會沒復(fù)位到HSC1的現(xiàn)在值CV呢,我用示波器看了HSC1的計數(shù)端信號與X4作了對比,發(fā)現(xiàn)計數(shù)端的信號停止后,X4的信號才出現(xiàn),這樣就排除復(fù)位后再計數(shù)的可能性了,怎么可能復(fù)不到位呢,是哪出了問題啊? 我有程序,但沒上傳權(quán)限.
請教各位了!.1. 回復(fù):請大家?guī)兔?nbsp;劉建陽(2009/9/24 8:44:35) IP:
59.61.48.* 用什么指令復(fù)位CV?
HSC1是硬體計數(shù)器,要用HSCTW復(fù)位,或者接通內(nèi)部復(fù)位點M1947。
.2. 回復(fù):請大家?guī)兔?nbsp;DSG(2009/9/25 0:01:56) IP:
112.93.112.* 我是用HSTCW指令把CV清零的,不是每次都復(fù)不到位,十次里有三四次不行,我的電路設(shè)計大體是這樣的:通過HSC1對一路信號進行計數(shù),當(dāng)信號是一串連續(xù)的脈沖時,就能使HSC1的CV=PV而發(fā)生計數(shù)器中斷去執(zhí)行相關(guān)的中斷程序.如果信號是幾個斷斷續(xù)續(xù)的干擾脈沖,其它硬件電路就會在斷點處產(chǎn)生一個高電位到低電位的下降沿,我就是用這個下降沿來做為X4的輸入,并把X4組態(tài)為正負緣中斷,在X4的中斷程序里使用HSCTW來復(fù)位尚未計到PV的HSC1,然后又重新計數(shù),總體說這就像個濾波電路,我現(xiàn)不知哪個環(huán)節(jié)出了問題,在這里我先感謝你的回答,
.3. 回復(fù)1樓:請大家?guī)兔?nbsp;DSG(2009/9/25 0:42:48) IP:
112.93.112.* 補充一下,計數(shù)脈沖最小寬為1MS,最小周期為2MS,另外在6MS的時間里沒計數(shù)脈沖到來,硬件電路就會產(chǎn)生下降沿
.4. 回復(fù):請大家?guī)兔?nbsp;劉建陽(2009/9/25 9:28:36) IP:
59.61.48.* 把程序發(fā)過來看下吧
danny604@163.com
.5. 回復(fù)4樓:請大家?guī)兔?nbsp;DSG(2009/9/25 19:58:16) IP:
112.93.112.* 我今天找到了問題原因了,是把X4的中斷標記名寫成了X4+I 應(yīng)該是X4-I才對,但我還有個問題,為什么有時候在HSC0發(fā)生中斷后,Y4得電,常閉點斷開,HSC2應(yīng)該可以計數(shù)了,但就是計不了,要嗎停止程序后再運行,要嗎把電源切斷再上電,才能解除這種現(xiàn)像.程序已發(fā)給你了,拜托
.6. 回復(fù)4樓:請大家?guī)兔?nbsp;DSG(2009/9/25 20:34:32) IP:
112.93.112.* 補充:X0與X5是同一信號,因PLC不能共享,所以只好外部相連
.7. 回復(fù):請大家?guī)兔?nbsp;劉建陽(2009/9/26 8:53:00) IP:
59.61.48.* “補充:X0與X5是同一信號,因PLC不能共享,所以只好外部相連”
----------------------------------------------------
這個的意思應(yīng)該是說HSC0同HSC2計數(shù)的信號來源都是同一個
但程序里面的X0\X1的順序怎么樣呢?因為你程序里面的 HSC0'PV=900,HSC1'PV=15,HSC2'PV=1444
HSC0I發(fā)生后,放開了HSC2的清零點,但如果此時X1也能跟著工作的話,HSC2是得不到值的
因為HSC1'PV=15就發(fā)生中斷,把HSC0\HSC1清零操作。
如果X1信號是在保證HSC0\HSC2計數(shù)都得到保證的情況下,才開始工作,是不應(yīng)該有你所說的現(xiàn)象的。
.8. 回復(fù)7樓:請大家?guī)兔?nbsp;DSG(2009/9/26 20:37:00) IP:
112.93.112.* 首先感謝你指出這段程序的缺陷,在HSC0中斷后必須是讓HSC2計數(shù)中斷,這是總體電路所要求的,我忽略了X1,我想應(yīng)該在HSC0中斷里把M1940,M1946置1,然后HSC2中斷里再把它們置零,不知能否滿足高速要求,明天試試,我還有一點不明,X1信號肯是會間斷性的出現(xiàn)的,因此HSC1會先HSC2出現(xiàn)中斷,可能是好幾次,但它清的是HSC0\HSC1的CV值,Y4的輸出是不受影響,只有HSC2中斷是Y4唯一的復(fù)位機會,那就是說HSC2在HSC0中斷后是一直打開的,是可以計數(shù)的,它應(yīng)不受HSC0\HSC1復(fù)位的影響,最多是被HSC1不停的中斷占據(jù)一些時間,但它最終是會計到PV而中斷啊,
.9. 回復(fù):請大家?guī)兔?nbsp;劉建陽(2009/9/27 11:38:32) IP:
222.76.196.* 昨天仔細看了下程序,發(fā)現(xiàn)有以下幾點錯誤:
1)網(wǎng)絡(luò) N010處 最后1條:HSCTW 1444 HSC2 CV-----------這里應(yīng)該是把 1444寫入PV,可這里卻寫成了CV。
2)網(wǎng)絡(luò) N011處,用 NOT Y4對HSC2'CV一直寫0----------------可用的卻是脈沖信號,達不到設(shè)想的結(jié)果。
具體分析請下載附件查看。