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