你把要激活的程序做成子程序,再設(shè)定時(shí)間調(diào)用,還有就是用中斷,系統(tǒng)有定時(shí)中斷時(shí)基
子程序可以把整個(gè)用戶程序按照功能進(jìn)行結(jié)構(gòu)化的組織。一個(gè)“好”的程序總是把全部的控制功能分為幾個(gè)符合工藝控制規(guī)律的子功能塊,每個(gè)子功能塊可以由一個(gè)或多個(gè)子程序組成。這樣的結(jié)構(gòu)也非常有利于分步調(diào)試,以免許多功能綜合在一起無法判斷問題的所在;而且,幾個(gè)類似的項(xiàng)目也只需要對(duì)同一個(gè)程序作不多的修改就能適用。
子程序在調(diào)用時(shí)會(huì)保持當(dāng)前的邏輯運(yùn)算結(jié)果,但是不保存累加器(ACx)的內(nèi)容
子程序在執(zhí)行到末尾時(shí)自動(dòng)返回,不必加返回指令;在子程序中間也可以使用條件返回指令
子程序不能使用跳轉(zhuǎn)語句跳入、跳出
子程序返回時(shí),回到調(diào)用子程序的指令后面,繼續(xù)執(zhí)行上一級(jí)程序
S7-200 CPU最多可以調(diào)用64個(gè)子程序(CPU226為128個(gè))
子程序可以嵌套調(diào)用,即子程序中再調(diào)用子程序,一共可以嵌套8層
在中斷服務(wù)程序中不能欠套調(diào)用子程序,被中斷服務(wù)程序調(diào)用的子程序中不能再出現(xiàn)子程序調(diào)用
子程序可以帶參數(shù)調(diào)用,在子程序的局部變量表中設(shè)置參數(shù)的類型;一共可以帶16個(gè)參數(shù)(形式參數(shù))
S7-200中使用中斷服務(wù)程序來響應(yīng)這些內(nèi)部、外部的中斷事件。中斷服務(wù)程序需要通過用戶編程與特定的中斷事件聯(lián)系起來,才能工作。中斷程序與子程序最大的不同是,中斷服務(wù)程序不能由用戶程序調(diào)用,而只能由特定的事件觸發(fā)執(zhí)行。
無法準(zhǔn)確預(yù)測(cè)何時(shí)執(zhí)行中斷服務(wù)程序。
中斷服務(wù)程序只有由用戶程序把中斷服務(wù)程序標(biāo)號(hào)(名稱)與中斷事件聯(lián)系起來,并且開放系統(tǒng)中斷后才能進(jìn)入等待中斷并隨時(shí)執(zhí)行的狀態(tài)
多個(gè)中斷事件可以連接同一個(gè)中斷服務(wù)程序;一個(gè)中斷服務(wù)程序只能連接一個(gè)中斷事件
中斷服務(wù)程序也可由用戶程序取消與中斷事件的連接;隊(duì)列中的特定中斷事件可以被指令取消;也可用指令禁止全部中斷
中斷程序只需與中斷事件連接一次,除非需要重新連接
進(jìn)入中斷服務(wù)程序時(shí),S7-200的操作系統(tǒng)會(huì)“保護(hù)現(xiàn)場(chǎng)”,從中斷程序返回時(shí),仍然恢復(fù)當(dāng)時(shí)的程序執(zhí)行狀態(tài)
中斷事件各有不同的優(yōu)先級(jí)別
中斷服務(wù)程序不能再被中斷。中斷程序執(zhí)行時(shí),如果再有中斷事件發(fā)生,會(huì)按照發(fā)生的時(shí)間順序和優(yōu)先級(jí)排隊(duì)
中斷服務(wù)程序執(zhí)行到末尾會(huì)自動(dòng)返回,也可以由邏輯控制中途返回
S7-200 CPU最多可以使用128個(gè)中斷程序,中斷程序不能嵌套
在中斷程序中只能調(diào)用一層子程序,中斷程序中的子程序不能嵌套,否則會(huì)出錯(cuò)
中斷程序應(yīng)短小而簡單,執(zhí)行時(shí)對(duì)其他處理不要延時(shí)過長,即越短越好