西門子S7-1200PLC模塊河北代理商

除了在硬件組態(tài)工具中設(shè)置和激活時間中斷之外,也可以在用戶程序中調(diào)用SFC來設(shè)置和激活時間中斷。用新建項目向?qū)梢粋€名為“OB10_2”的項目(見隨書光盤中的同名例程)。在OB1中調(diào)用SFC 31“QRY_TINT”來查詢時間中斷的狀態(tài)(見圖4-44),讀取的狀態(tài)字用MW8保存。
IEC功能FC 3“D_TOD_TD”用于合并日期和時間值,它在程序編輯器左邊窗口的文件夾“\庫\Standard Library\IEC Function Blocks”中。首先生成OB1的臨時局部變量( TEMP)“DT1”,其數(shù)據(jù)類型為Date_And_Time,“D_TOD_TD”的執(zhí)行結(jié)果用DT1保存。
在I0.0的上升沿,調(diào)用SFC 28“SET_TINT”和SFC 30“ACT_TINT”分別來設(shè)置和激活時間中斷OB10。在I0.1的上升沿,調(diào)用SFC 29“CAN_TINT”來禁止時間中斷。
各SFC的參數(shù)中的RET_VAL是執(zhí)行時可能出現(xiàn)的錯誤代碼,為0時無錯誤。OB_NR是組織塊編號,SFC 28“SET_TINT”用來設(shè)置時間中斷,它的參數(shù)SDT是開始產(chǎn)生中斷的日期和時間。PERIOD用來設(shè)置執(zhí)行的方式,W#16#0201表示每分鐘產(chǎn)生一次時間中斷。
下面是OB10中將MW2加1的STL程序:
L MW 2
+ 1
T MW 2
要求在到達(dá)設(shè)置的日期和時間時,用Q4.0自動起動某臺設(shè)備。用新建項目向?qū)梢粋€名為“OB10_1”的項目,CPU模塊的型號為CPU 315 -2DP。
打開硬件組態(tài)工具HW Config(見圖4-43),雙擊機(jī)架中的CPU,打開CPU的屬性對話框。在“時刻中斷”選項卡中,設(shè)置執(zhí)行起動設(shè)備的日期和時間,執(zhí)行的方式為“一次”。用復(fù)選框激活中斷,按“確定”按鈕結(jié)束設(shè)置。單擊工具欄上的
按鈕,保存和編譯組態(tài)信息。
在SIMATIC管理器中生成OB10,下面是用語句表編寫的OB10的程序,設(shè)置的時間到時,將需要起動的設(shè)備對應(yīng)的輸出點置位:
SET //將RLO置為1
= Q 4.0 //將RLO寫入Q4.0
下面是OB1中的程序,用I0.0將Q4.0復(fù)位:
A I0.0
R Q4.0
打開PLCSIM,生成QB4的視圖對象。下載所有的塊和系統(tǒng)數(shù)據(jù)后,將仿真PLC切換到RUN -P模式。時間中斷在PLC暖啟動或熱啟動時被激活,在PLC啟動過程結(jié)束之后才能執(zhí)行。達(dá)到設(shè)置的日期和時間時,可以看到Q4.0變?yōu)?/span>1狀態(tài)。
圖4-43 組態(tài)時間中斷
做實驗時應(yīng)設(shè)置比當(dāng)前的日期時間稍晚一點的日期和時間,以免等待的時間太長。
S7-400 CPU可以使用的時間中斷OB(OB10~OB17)的個數(shù)與CPU的型號有關(guān)。絕大多數(shù)S7-300 CPL只能使用OB10。
可以設(shè)置在菜一特定的日期時間產(chǎn)生一次時間中斷,也可以設(shè)置從設(shè)定的日期時間開始,周期性地重復(fù)產(chǎn)生中斷,例如每分鐘、每小時、每天、每周、每月、每年產(chǎn)生一次時間中斷??梢杂玫?/span>SFC 28~SFC 30設(shè)置、取消和激活時間中斷。
為了啟動時間中斷,用戶首先必須設(shè)置時間中斷的參數(shù),然后再激活它??梢杂媒M態(tài)或編程的方法來啟動時間中斷。SFC 40“EN_IRT”和SFC 39“DIS_IRT”分別是激活和禁止中斷和異步錯誤的系統(tǒng)功能。它們的參數(shù)MODE的數(shù)據(jù)類型為BYTE,MODE為2時激活OB_NR的OB編號對應(yīng)的中斷,必須用十六進(jìn)制數(shù)來設(shè)置。
在OB1中編寫圖4-42的程序,在I0.2的上升沿調(diào)用SFC“EN_IRT”來激活OB35對應(yīng)的循環(huán)中斷,在I0.3的上升沿調(diào)用SFC“DIS_IRT”來禁止OB35對應(yīng)的循環(huán)中斷。
圖4-42 OB1激活和禁止硬件中斷的程序
用新建項目向?qū)擅麨?ldquo;OB35例程”的項目(見隨書光盤中的同名例程),CPU為CPU 315 -2DP。雙擊硬件組態(tài)工具HW Config中的CPU,打開CPU屬性對話框,由“周期性中斷”選項卡可知只能使用OB35,其循環(huán)周期的默認(rèn)值為100ms,將它修改為1000ms,將組態(tài)數(shù)據(jù)下載到CPU后生效。如果沒有下載,循環(huán)周期為默認(rèn)值100ms。
如果兩個OB的時間間隔成整倍數(shù),不同的循環(huán)中斷OB可能同時請求中斷。相位偏移量(默認(rèn)值為0)用于錯開S7 - 400不同時間間隔的幾個循環(huán)中斷OB,使它們不會被同時執(zhí)行,以減少連續(xù)執(zhí)行多個循環(huán)中斷OB的時間。相位偏移應(yīng)小于循環(huán)的時間間隔。
組態(tài)結(jié)束后,單擊工具欄上的
按鈕,編譯并保存組態(tài)信息。
S7-400 CPU有3種啟動方式:暖啟動、熱啟動和冷啟動。打開S7 -400 CPU模塊的屬性對話框的“啟動”選項卡,可以選擇這3種啟動方式中的一種,絕大多數(shù)S7 -300 CPU只能暖啟動。
OB100~OB102是啟動組織塊,用于系統(tǒng)初始化。CPU上電或運行模式由STOP切換到RUN時,CPU只執(zhí)行一次啟動組織塊。
用戶可以通過在啟動組織塊中編寫程序,來設(shè)置CPU的初始化操作,例如設(shè)置開始運行時某些變量的初始值和輸出模塊的初始值等。
1)暖啟動:過程映像數(shù)據(jù)以及非保持的存儲器位、定時器和計數(shù)器被復(fù)位。具有保持功能的存儲器位、定時器、計數(shù)器和所有的數(shù)據(jù)塊將保留原數(shù)值。執(zhí)行一次OB100后,循環(huán)執(zhí)行OB1。將模式選擇開關(guān)從STOP位置扳到RUN位置,執(zhí)行一次手動暖啟動。
2)熱啟動:如果S7 - 400 CPU在RUN模式時電源突然丟失,然后又很快重新上電,將執(zhí)行OB101,自動地完成熱啟動,從上次RUN模式結(jié)束時程序被中斷之處繼續(xù)執(zhí)行,不對計數(shù)器等復(fù)位。
3)冷啟動:所有系統(tǒng)存儲區(qū)均被清除,即被復(fù)位為零,包括有保持功能的存儲區(qū)。用戶程序從裝載存儲器載人工作存儲器,調(diào)用OB102后,循環(huán)執(zhí)行OB1。
將模式選擇開關(guān)扳到MRES位置,可以實現(xiàn)手動冷啟動。
組織塊(OB)是操作系統(tǒng)調(diào)用的,OB沒有背景數(shù)據(jù)塊,也不能為OB聲明輸入、輸出參數(shù)和靜態(tài)變量,因此OB的變量聲明表中只有臨時變量。OB的臨時變量可以是基本數(shù)據(jù)類型、復(fù)雜數(shù)據(jù)類型或數(shù)據(jù)類型ANY。
所有的OB塊都有包含OB的啟動信息的20B臨時局部變量(TEMP,見表4-8),這些信息在OB啟動時由操作系統(tǒng)提供,包括啟動事件、啟動日期與時間、錯誤及診斷事件。聲明表中變量的具體內(nèi)容與組織塊的類型有關(guān)。
表4-8 OB的變量聲明表
地址(字節(jié)) | 內(nèi) 容 |
0 | 事件級別與標(biāo)識符,例如OB40為B#16#11,表示硬件中斷被激活 |
1 | 用代碼表示與啟動OB的事件有關(guān)的信息 |
2 | 優(yōu)先級,例如OB40的優(yōu)先級為16 |
3 | OB塊號,例如OB40的塊號為40 |
4~11 | 附加信息,例如OB40的第5號字節(jié)為產(chǎn)生中斷的模塊的類型,16#54 為輸入模塊,16#55為輸出模塊;第6、7號字節(jié)組成的字為產(chǎn)生中斷的 模塊的起始地址;第8~11號字節(jié)組成的雙字為產(chǎn)生中斷的通道號 |
12~19 | OB被啟動的日期和時間(年、月、日、時、分、秒、毫秒與星期) |
OB1的局部變量OB1_PREV_CYCLE、OB1_MIN_CYCLE和OB1_MAX_CYCLE分別是上一次、短和長的掃描循環(huán)時間。
時間中斷和延時中斷有的允許處理中斷(或稱激活、使能中斷)和禁止中斷的系統(tǒng)功能(SFC)。
SFC 39“DIS_INT”用來禁止中斷和異步錯誤處理,可以禁止所有的中斷,有選擇地禁止某些優(yōu)先級范圍的中斷,或者只禁止的某個中斷。
SFC 40“EN_INT”用來激活(使能)新的中斷和異步錯誤處理,激活中斷是指允許處理中斷,做好了在中斷事件出現(xiàn)時執(zhí)行對應(yīng)的組織塊的準(zhǔn)備??梢匀吭试S或有選擇地允許。
SFC 41“DIS_AIRT”延遲處理比當(dāng)前優(yōu)先級更高的中斷和異步錯誤,直到用SFC 42允許處理中斷或當(dāng)前的OB執(zhí)行完畢。SFC 42“EN_ AIRT”用來允許立即處理被SFC 41暫時禁止的中斷和異步錯誤,SFC 42和SFC 41配對使用。
西門子S7-1200PLC模塊河北代理商