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