| 注冊(cè)| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當(dāng)前位置:
上海邑斯自動(dòng)化科技有限公司>>技術(shù)文章>>什么是中斷?西門子S7-200 SMART如何編寫中斷程序

什么是中斷?西門子S7-200 SMART如何編寫中斷程序

閱讀:451        發(fā)布時(shí)間:2023-5-30

中斷就是中止當(dāng)前正在運(yùn)行的程序,去執(zhí)行為立刻響應(yīng)的信號(hào)而編寫的中斷服務(wù)程序,執(zhí)行完畢后再返回原來(lái)中止的程序并繼續(xù)執(zhí)行。西門子S7-200 SMART CPU最多支持38個(gè)中斷事件,其中8個(gè)為預(yù)留。為了便于識(shí)別,系統(tǒng)給每一個(gè)中斷事件都分配了一個(gè)編號(hào),又稱中斷事件號(hào)。

圖片

S7-200 SMART的中斷

    所有中斷事件可以分為三大類:通信中斷、I/O中斷、定時(shí)中斷。通信中斷為CPU的串行通信端口可以由用戶進(jìn)行控制,稱為自由端口模式,在該模式下接收信息完成、發(fā)送信息完成、接收一個(gè)字符均可以產(chǎn)生中斷事件,利用接收和發(fā)送中斷可以簡(jiǎn)化程序?qū)νㄐ诺目刂?。I/O中斷包括:上升沿中斷、下降沿中斷、高速計(jì)時(shí)器中斷。CPU可以為輸入點(diǎn)I0.0至I0.3以及可選信號(hào)板的I7.0和I7.1的上升沿或下降沿產(chǎn)生中斷。高速計(jì)數(shù)器中斷允許響應(yīng)HSC的計(jì)數(shù)器當(dāng)前值等于設(shè)定值、計(jì)數(shù)方向改變、計(jì)數(shù)器外部復(fù)位等中斷事件。

圖片

中斷事件


    定時(shí)中斷可以用來(lái)進(jìn)行一個(gè)周期性的操作,以1毫秒為增量,周期時(shí)間可以取1毫秒至255毫秒。定時(shí)中斷0和定時(shí)中斷1的時(shí)間間隔分別寫入特殊寄存器字節(jié)SMB34和SMB35。通常可以使用定時(shí)中斷來(lái)采集模擬量或定時(shí)執(zhí)行PID控制程序。定時(shí)器中斷T32和T96允許及時(shí)響應(yīng)一個(gè)給定時(shí)間間隔的結(jié)束,只有1毫秒分辨率的接通延時(shí)TON和斷開延時(shí)TOF定時(shí)器,T32和T96支持此類中斷,啟用中斷后當(dāng)定時(shí)器的當(dāng)前值等于預(yù)設(shè)值時(shí),在CPU的1毫秒定時(shí)刷新中執(zhí)行被連接的中斷程序。

圖片

定時(shí)中斷

    每類中斷中不同的中斷事件又有不同的優(yōu)先權(quán),多個(gè)中斷事件同時(shí)發(fā)生時(shí),根據(jù)優(yōu)先級(jí)組以及組內(nèi)優(yōu)先權(quán)來(lái)確定首先處理哪一個(gè)中斷事件。優(yōu)先級(jí)相同時(shí),CPU按照先來(lái)先服務(wù)的原則處理中斷。任何時(shí)刻CPU只能執(zhí)行一個(gè)用戶中斷程序。一旦一個(gè)中斷程序開始執(zhí)行,它要一直執(zhí)行到完成,即使更高優(yōu)先級(jí)的中斷事件發(fā)生,也不能中斷正在執(zhí)行的中斷程序。正在處理另一個(gè)中斷時(shí)發(fā)生的中斷會(huì)進(jìn)行排隊(duì)等待處理。每一個(gè)優(yōu)先級(jí)組分別設(shè)立相應(yīng)的隊(duì)列,產(chǎn)生的中斷事件分別在各自的隊(duì)列排隊(duì),先到先處理,各隊(duì)列能保存的最大中斷數(shù)以及隊(duì)列溢出特殊寄存器位如下圖表中所示。

圖片

中斷隊(duì)列

    西門子S7-200 SMART規(guī)定的中斷優(yōu)先級(jí)由高到低依次是通信中斷、I/O中斷、定時(shí)中斷。S7-200 SMART的中斷管理是通過(guò)指令完成的,中斷指令包括中斷允許與中斷禁止指令、中斷連接與中斷分離指令。CPU進(jìn)入RUN模式時(shí),自動(dòng)禁止所有中斷。

圖片

中斷指令

    中斷允許指令,全局性地啟用對(duì)所有連接的中斷事件的處理。中斷禁止指令,全局性地禁止對(duì)所有中斷事件的處理,但是已建立了關(guān)聯(lián)的中斷事件仍將繼續(xù)排隊(duì)。從中斷程序有條件返回指令,在控制它的邏輯條件滿足時(shí),從中斷程序返回。編譯程序自動(dòng)為各中斷程序添加無(wú)條件返回指令。


圖片

中斷允許與中斷禁止

    中斷連接指令,用來(lái)建立中斷事件號(hào)EVNT與中斷程序編號(hào)之間的聯(lián)系,并自動(dòng)允許該中斷事件進(jìn)入相應(yīng)的隊(duì)列排隊(duì),能否執(zhí)行處理還要看禁止的情況。多個(gè)中斷事件允許與同一個(gè)中斷程序相關(guān)聯(lián),但同一個(gè)中斷事件不允許與多個(gè)中斷程序相連。

圖片

中斷連接

    中斷分離指令,解除中斷事件EVNT與所有中斷程序的關(guān)聯(lián),所**定的中斷事件不再進(jìn)入中斷隊(duì)列,從而禁止單個(gè)中斷事件。清除中斷指令,從中斷隊(duì)列中清除所有編號(hào)為EVNT的中斷事件。該指令可以用來(lái)清除不需要的中斷事件。

圖片

中斷分離


    接下來(lái)我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)學(xué)習(xí)中斷指令的使用,并練習(xí)編寫中斷程序。在I0.0的上升沿通過(guò)中斷使Q0.0立即置位,在I0.1的下降沿通過(guò)中斷使Q0.0立即復(fù)位。我們來(lái)編寫程序,啟動(dòng)STEP7-Micro/WIN SMART創(chuàng)建一個(gè)新項(xiàng)目,創(chuàng)建新項(xiàng)目后首先編寫處理I0.0上升沿事件的中斷程序,在指令樹的位邏輯中拖放一個(gè)常開觸點(diǎn)到中斷程序INT_0,輸入地址SM0.0,再拖放一個(gè)立即置位指令,輸入地址Q0.0,置位個(gè)數(shù)為1。

圖片

編寫中斷程序INT_0

    我們?cè)賮?lái)編寫一個(gè)處理I0.1下降沿事件的中斷程序,插入一個(gè)新的中斷程序INT_1,拖放一個(gè)常開觸點(diǎn)SM0.0,再拖放一個(gè)立即復(fù)位指令,輸入地址Q0.0,復(fù)位個(gè)數(shù)為1。

圖片

編寫中斷程序INT_1

    回到主程序,拖放一個(gè)常開觸點(diǎn)輸入地址SM0.1,在指令樹的中斷文件夾中拖放中斷連接指令到編程區(qū)域,INT處輸入0號(hào)中斷程序名,EVNT處輸入I0.0上升沿事件號(hào)0,向下分支,再拖放一個(gè)中斷連接指令,INT處輸入1號(hào)中斷程序名,EVNT處輸入I0.1下降沿事件3,繼續(xù)向下分支,拖放一個(gè)中斷允許指令,這樣在程序第一次掃描時(shí)就關(guān)聯(lián)了中斷事件以及相應(yīng)的中斷服務(wù)程序并允許全局中斷,程序編寫完成后保存項(xiàng)目。

圖片

編寫主程序調(diào)用中斷程序

    下載并測(cè)試。將項(xiàng)目編譯并下載到PLC,在狀態(tài)圖表中輸入地址Q0.0,啟動(dòng)對(duì)狀態(tài)圖表變量的持續(xù)監(jiān)視,撥動(dòng)外接開關(guān)使I0.0產(chǎn)生上升沿,Q0.0立即變?yōu)?,撥動(dòng)外接開關(guān)使I0.1產(chǎn)生下降沿,Q0.0立即變?yōu)?。

圖片


收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
二維碼 意見反饋
在線留言