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