|
西門子PLC程序的中斷功能西門子PLC程序的中斷功能 西門子PLC程序中經(jīng)常用到中斷功能,中斷相當(dāng)于子程序,子程序相當(dāng)于主程序,說(shuō)起來(lái)西門子 PLC里的中斷平時(shí)根本沒(méi)什么用。這么說(shuō),像告訴脈沖處理,不用中斷,只用1MS的計(jì)時(shí)能實(shí)現(xiàn)其功能,但是卻沒(méi)有中斷計(jì)時(shí)來(lái)的精確,畢竟不用中斷,程序掃瞄受掃描周期束縛。 但有些程序,必須要用到中斷,典型的就是PID,檢測(cè)讀取周期必須精確。不管是以前自己編PID中斷程序,還是現(xiàn)在集成的PID中斷程序塊,都使用到了精確的時(shí)間控制,立即處理信息的中斷。 西門子PLC中斷功能怎么用? 博格機(jī)電廠家這樣介紹中斷功能,在理解中斷時(shí),首先要清楚西門子plc的運(yùn)算周期或者說(shuō)是掃描周期,有必要說(shuō)下西門子plc順控循環(huán)執(zhí)行的流程,這是理解中斷的前提,必須要掌握,分為三部分,輸入處理、程序處理、輸出處理。 1、輸入處理 可編程控制器在執(zhí)行程序前,將可編程控制器的所有輸入端子的ON/OFF狀態(tài)讀入輸入映像區(qū),程序執(zhí)行過(guò)程中即使輸入發(fā)生變化,輸入映像區(qū)的內(nèi)容也不會(huì)變化,在執(zhí)行下一個(gè)循環(huán)的輸入處理時(shí)讀取該變化。 2、程序處理 西門子plc根據(jù)程序內(nèi)存中的指令內(nèi)容,從輸入映像區(qū)和其他軟元件的映像區(qū)中讀出各軟元件的ON/OFF狀態(tài),然后從0步依次開始運(yùn)算,并將每次得出的結(jié)果寫入到映像區(qū)中。因此,各軟元件的映像區(qū)隨著程序的執(zhí)行逐步改變其內(nèi)容,此外,輸出繼電器的內(nèi)部觸點(diǎn)根據(jù)輸出映像區(qū)的內(nèi)容而執(zhí)行動(dòng)作。 3、輸出處理 所有指令執(zhí)行結(jié)束后,輸出Y映像區(qū)中的,ON/OFF狀態(tài)會(huì)傳送至輸出鎖存內(nèi)存,這個(gè)就作為可編程控制器的實(shí)際輸出。 執(zhí)行以一次動(dòng)作所需要的時(shí)間就是運(yùn)算周期也叫掃描時(shí)間,那么中斷與掃描周期有什么聯(lián)系呢,中斷就是不按照從上到下順序的完整執(zhí)行,而是中斷程序優(yōu)先單獨(dú)運(yùn)行程序處理而且是立即輸出不參與整個(gè)周期運(yùn)算。 中斷的作用是什么呢,我們知道西門子plc掃描周期是很短的,因此我們很難看出西門子plc順控執(zhí)行過(guò)程,這里我們不妨假設(shè)掃描周期為10s的時(shí)間,就是執(zhí)行全部的程序需要10s的時(shí)間,有一個(gè)很簡(jiǎn)單的程序LD X0,OUT Y0,根據(jù)上圖當(dāng)X0為ON時(shí),Y0不是馬上就有輸出的,而是等到10s后才輸出,斷開X0后,同樣Y0也不是馬上就關(guān)閉的,都需要得到掃描完后才有結(jié)果。那么這樣在我們實(shí)際應(yīng)用中西門子plc就沒(méi)什么使用了設(shè)備就無(wú)法進(jìn)行工作了,這時(shí)候就需要中斷處理了,采用輸入中斷功能,立即執(zhí)行輸入。實(shí)際上西門子plc的運(yùn)算時(shí)間是很短只有幾毫秒,完全能夠滿足需要,但一些如高頻脈沖輸入、脈沖捕捉等時(shí)間在微秒級(jí)的肯定要受到周期運(yùn)算的影響了。 因此如果在一個(gè)周期內(nèi)要完成很多次ON/OFF狀態(tài)處理時(shí),必須使用中斷功能了。在我們一般情況下很少用到中斷,即使需要西門子plc的高速指令都帶有中斷功能無(wú)需自己專門編寫中斷子程序了,例如高速計(jì)數(shù)器采用中斷的方式對(duì)從特定的輸入繼電器出來(lái)的高速脈沖進(jìn)行處理,所以無(wú)論運(yùn)算時(shí)間多少都可進(jìn)行計(jì)數(shù),計(jì)數(shù)的結(jié)果或是使用高速計(jì)數(shù)器專用的比較指令立即輸出,或是對(duì)高速計(jì)數(shù)器的計(jì)數(shù)值用高速計(jì)數(shù)器中斷方式執(zhí)行特定的程序處理。 對(duì)高頻脈沖進(jìn)行計(jì)數(shù)不采用高速計(jì)數(shù)器進(jìn)行計(jì)數(shù),我們舉例使用中斷功能對(duì)高速輸入進(jìn)行計(jì)數(shù),示例如下,從EI到FEND是主程序,從指針I101(輸入X0的中斷指針)開始到IRET是中斷子程序,每當(dāng)感應(yīng)到X1的上升沿就執(zhí)行子程序?qū)?shù)值立即傳送到D10中,這樣就避免了西門子plc運(yùn)算周期的影響。 |