咨詢中斷的問題 hnwhlk(2010/9/6 16:09:23) 點(diǎn)擊:
21905 回復(fù):
17 IP:
117.69.50.* 何老師及各位老師:我最近的項(xiàng)目要用到外部中斷??墒怯龅降膯栴}如下:
我用的PLC是10MC機(jī)型。 我的工況是:機(jī)器大約2秒轉(zhuǎn)動(dòng)一周,產(chǎn)生一個(gè)位置到達(dá)信號(hào),接入PLC的X1點(diǎn)。
因?yàn)樵谖业闹鞒绦蛑?,用作其它功能例如幾只機(jī)器手的動(dòng)作等,其程序所占用的時(shí)間比較長,為了確保機(jī)器位置到達(dá)信號(hào)能及時(shí)準(zhǔn)確,我用到了外部中斷X1↑。
我在I/O組態(tài)里,將該點(diǎn)設(shè)定上升沿中斷。因?yàn)槊恳粋€(gè)中斷間隔時(shí)間很長(遠(yuǎn)遠(yuǎn)大于中斷服務(wù)程序所占用的時(shí)間)按理,這個(gè)中斷服務(wù)程序應(yīng)該在每一個(gè)X1↑到來的時(shí)候,都進(jìn)入中斷程序。可是,我編的這個(gè)中斷程序只在系統(tǒng)啟動(dòng)后,第一個(gè)X1↑時(shí)執(zhí)行一次,以后無論多少個(gè)X1↑時(shí),中斷都不響應(yīng)。不知是什么原因,難道是我的MC的PLC有問題。如果您能將我在附件中的模擬程序在機(jī)器上運(yùn)行一下,就很清楚了。它的接線非常簡單,接上電源、并將24V一端按入S/S,另一端作為信號(hào)間斷地碰一下X1.請您告訴我應(yīng)該如何解決。謝謝您的幫助!祝好人永遠(yuǎn)快樂!
因?yàn)槲覜]有權(quán)上傳文件。哪位老師肯給個(gè)郵箱,我把我編的中斷練習(xí)程序發(fā)過去。再次表示由衷的感謝!
.1. 回復(fù):咨詢中斷的問題 劉建陽(2010/9/6 19:51:40) IP:
125.124.5.* 是不是中斷發(fā)生之后,X1的狀態(tài)一直O(jiān)N呢?
可以在 LBL X1+I 里面對(duì)中斷次數(shù)進(jìn)行跟蹤累計(jì)
如
|----------------------------------------INC R0
就可知曉中斷是否只發(fā)生過一次。
.2. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/6 22:47:38) IP:
58.253.219.* 何老師:您好!
我編的中斷模擬學(xué)習(xí)程序已經(jīng)發(fā)到您的郵箱。這個(gè)模擬我是在辦公室用一個(gè)開關(guān),通過手動(dòng)開、閉來模擬現(xiàn)場情況,因此不存在X1一直O(jiān)N的可能,可實(shí)際感覺就像是X1一直O(jiān)N。程序大致如下:
在主單元一:
M1
│───││──────T0
X1
│───│/│──────DIS X1+i
│─────────EN X1+I
│─────────END
在副單元一:
│─────────LIB X1+I
│─────────MOV T1 R3000
│─────────RST T1
│─────────RTI
當(dāng)程序運(yùn)行后,激活ON M1, T0開始計(jì)時(shí)。第一次將X1 ON后,中斷程序動(dòng)作將當(dāng)時(shí)的時(shí)間差送到R3000.可此后無論如何通斷X1,R3000中的值始終不變。不知是什么原因。請老師指點(diǎn)!再次對(duì)您的幫助表示由衷的感謝!
.3. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/6 23:04:19) IP:
58.253.219.* 補(bǔ)充:程序中MOV用的P指令。如果MOV不用P指令,則中斷程序可以執(zhí)行??晌以趺茨苤肋@個(gè)值就是在X1↑時(shí)的值呢?難道中斷服務(wù)程序中不能用P指令。謝謝!還想請教 MA的機(jī)器如何才能啟用中斷。謝謝!
.4. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/6 23:53:22) IP:
58.253.219.* 再次補(bǔ)充:
當(dāng)我把MOV不用P指令時(shí),下面一句用RST*P T1 時(shí),R3000會(huì)隨著X1的動(dòng)作而刷新,但T0則也只能重置一次,X1第二次ON時(shí),因?yàn)镽ST*P 不動(dòng)作,T1里的值一直都在增加,因此R3000里的值是在不斷的增大。
如果我把RST指令也不用P指令,其結(jié)果是T1每次都能重置,但R3000里的值一直都是“0”,就仿佛是先RST T1,后MOV T1 R3000 一樣。究竟是什么原因,我百思不解。盼望早點(diǎn)弄清原委。謝謝!
.5. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/7 18:44:19) IP:
58.253.219.* 我心急如火,可樓上的朋友為什么要這樣呢。我盼望能有熱心的老師給我指點(diǎn)迷津,當(dāng)看到有回復(fù)時(shí)心情非常高興,可看到的是些無關(guān)我的問題的帖子,讓我心情就像是吃了個(gè)蒼蠅。
.6. 回復(fù):咨詢中斷的問題 劉建陽(2010/9/7 21:16:17) IP:
122.231.194.* 中斷子程序使用了脈沖執(zhí)行型指令
當(dāng)?shù)谝淮沃袛喟l(fā)生時(shí),子程序電路有上跳沿變化,執(zhí)行 MOV \ RST 指令1次,此時(shí)電路狀態(tài)1(得電);
當(dāng)?shù)诙沃袛嘤职l(fā)生時(shí),由于第一次中斷執(zhí)行后的結(jié)果,子程序電路狀態(tài)為1,第二次中斷發(fā)生,電路狀態(tài)沒有發(fā)生變化
這時(shí)候 MOV \ RST 不執(zhí)行。
第3次~第N次,均不執(zhí)行,因?yàn)殡娐窢顟B(tài)沒有0→1跳變。
若需要每次中斷都執(zhí)行,不要用P指令即可。
.8. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/8 7:25:05) IP:
58.253.219.* 何老師:您好!
您說的辦法,我也試過了,我做的調(diào)試裝置中X1的連接是用一個(gè)行程開關(guān)。正如前面我提到的那樣,子程序中的結(jié)果完全不是中斷上升沿的結(jié)果,
按照您說的:“當(dāng)?shù)谝淮沃袛喟l(fā)生時(shí),子程序電路有上跳沿變化,執(zhí)行 MOV \ RST 指令1次,此時(shí)電路狀態(tài)1(得電);
當(dāng)?shù)诙沃袛嘤职l(fā)生時(shí),由于第一次中斷執(zhí)行后的結(jié)果,子程序電路狀態(tài)為1,第二次中斷發(fā)生,電路狀態(tài)沒有發(fā)生變化”也就可以理解成子程序電路在第一次得電后就永遠(yuǎn)處于得電狀態(tài),能有辦法改變子程序電路狀態(tài)為1嗎?當(dāng)然是在程序運(yùn)行的狀態(tài)下改變。我在主程序中有146指令及145指令也不行。
還想請教。中斷程序一定要寫在子程序里嗎?
說心里話,我早晨打開電腦看到何老師的回復(fù)心里第一想法就是盡快打開對(duì)應(yīng)的網(wǎng)頁,我是帶著欣喜的期待去等著網(wǎng)頁打開,可見我們這些PLC的中間用戶是多么可憐!
.9. 回復(fù):咨詢中斷的問題 劉建陽(2010/9/8 19:20:33) IP:
125.124.103.* 中斷程序只有中斷事件發(fā)生了,PLC才會(huì)去執(zhí)行中相應(yīng)的中斷子程序。
中斷沒有發(fā)生,PLC不會(huì)去執(zhí)行。
永宏的中斷子程序是必須寫在副單元的。
.10. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/9 7:37:09) IP:
58.253.219.* 何老師:你好!
當(dāng)我把上面的程序注入機(jī)器并運(yùn)行后,我按動(dòng)行程開關(guān),X1的指示燈會(huì)隨著我按下與松開而閃亮與息滅,這應(yīng)該算是中斷發(fā)生了吧。我一年要用幾十個(gè)永宏的PLC。這點(diǎn)最起碼的常識(shí)我是知道的。上學(xué)的時(shí)候就學(xué)過什么叫中斷,什么是中斷服務(wù)程序,什么是中斷的優(yōu)先級(jí)。因此,請何老師如有可能上機(jī)做一下測試。我真的搞不懂,永宏的中斷為什么這么不好用。
.11. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/11 21:42:00) IP:
58.253.219.* 再次請求永宏的高手老師幫助我解決中斷的問題.并祝您們在幫助別人后能享受到助人為樂的幸福!
.12. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/26 17:29:34) IP:
58.253.219.* 堅(jiān)持以人為本,奉行“客戶第一”的服務(wù)宗旨,“與客戶共同發(fā)展”的經(jīng)營理念說的是真的嗎.可為什么我的關(guān)于"咨詢中斷問題"在網(wǎng)上,用QQ,打電話,到目前為止沒有解決!打電話問時(shí)說可以,可到目前沒有回復(fù)讓你無法接受,你如果給個(gè)回話,指出我的錯(cuò)或者說永宏不支持我所選的中斷模式好讓我有個(gè)底,我目前就像是飄浮在空中真著急!還請永宏能像所說的那樣幫我們中間用戶解決實(shí)際問題.要知道我們這些中間用戶是永宏公司免費(fèi)的推銷員.
.13. 回復(fù):咨詢中斷的問題 劉建陽(2010/9/26 19:03:03) IP:
60.163.148.* 建議你去理解PLC的基本工作原理和中斷執(zhí)行方式,你說這些已經(jīng)都明白,那還需要?jiǎng)e人給你解釋什么?
多看手冊比在這里發(fā)牢騷有效的多。
.14. 回復(fù):咨詢中斷的問題 hnwhlk(2010/9/26 21:36:09) IP:
58.253.219.* 何老師:你好!
我還是把我的任務(wù)簡單的說一下,麻煩你仔細(xì)看看,指出我錯(cuò)在哪里,謝謝!
機(jī)器現(xiàn)狀:當(dāng)機(jī)器每轉(zhuǎn)動(dòng)一周產(chǎn)生一個(gè)高電位信號(hào)送到X1,在WPROLAD環(huán)境里->專案->I/O組態(tài)里,將的X1設(shè)為正緣中斷.(為了簡單我在下面的陳敘里用了與上面不同的計(jì)時(shí)器的存儲(chǔ)器的地址由此引起不便還請包涵)
主程序如下:
T1 32000
副程序如下:
LBL X1+I
MOV T1 R3000
RST?。?
(+1) R3002(這一句是我后來為檢查為什么R3000里的值是"0"而增加的)
RTI
原意是:當(dāng)X1高電位到來時(shí),中斷服務(wù)程序能將T1里的值存在R3000,后再將T1重置(為下周計(jì)時(shí)作準(zhǔn)備).因?yàn)槌绦蜻\(yùn)行后發(fā)現(xiàn):R3000里的值是"0",在何老師的提示下,我在中斷服務(wù)程序里加了個(gè)第15號(hào)指令(+1),結(jié)果發(fā)現(xiàn)中斷條件具備時(shí),中斷程序是執(zhí)行了,可是不是執(zhí)行一次而是執(zhí)行了二次或二次以上,因?yàn)椋?002中的值在中斷產(chǎn)生時(shí)都增加了2或3.這樣就不難理解為什么當(dāng)中斷發(fā)生時(shí)R3000里是"0"的原因了.這說明中斷服務(wù)程序并不是按照從LBL..至RTI后就返回主程序,而是在副程序段掃描了一次后又掃描了一次,請問何老師,是這樣嗎,如果是這樣的話我怎么辦呢?如果不是這樣的話,我的這個(gè)小程序在我的供應(yīng)商哪里也這樣的結(jié)果.為此,我與永宏的Q友用遠(yuǎn)程控制來演示也是這個(gè)結(jié)果.因?yàn)槲也荒苌蟼魑募詿o法將這個(gè)小程序發(fā)上來.如果您能給我個(gè)郵箱我發(fā)過去您給診斷一下.其他好心的老師也如果愿意幫助我,給我個(gè)郵箱我也把這個(gè)小程序發(fā)過去讓您診斷.就當(dāng)作時(shí)做了個(gè)助人為樂的游戲.
我為了這個(gè)中斷程序已經(jīng)頭痛了近二個(gè)月了,說實(shí)在話我不想發(fā)牢騷,只想解決問題.我打了很多電話,(為了不影響他們,我也提給哪些地方打電話),我只想得到:我應(yīng)該如何做,才能將這個(gè)簡單的問題搞定.真的!我不是最終用戶,我是把我的控制理念通過PLC及機(jī)器手與機(jī)器有機(jī)地組合在一起,提供一個(gè)節(jié)能產(chǎn)品給最終用戶.因此從某種層面上看,我真的是免費(fèi)給永宏推銷PLC.我認(rèn)為永宏的編譯環(huán)境比較好用,與歐母龍的近似.價(jià)格也低的多,所以選了永宏.
在這個(gè)問題上我錯(cuò)在哪里也請熱心的老師指點(diǎn)迷津.能給我一個(gè)方法.提示,我將表示由衷的感謝!
[本主題共14回復(fù) | 每頁顯示20回復(fù)]