西門子S7-1200PLC模塊湖北代理價(jià)格

西門子S7-300/400 PLC的整數(shù)運(yùn)算指令
整數(shù)運(yùn)算指令包括整數(shù)和雙整數(shù)運(yùn)算指令,其基本結(jié)構(gòu)如圖4-7所示(在此為整數(shù)加法運(yùn)算指令)其中,標(biāo)題ADD_I用于指明運(yùn)算類型及參加運(yùn)算的數(shù)據(jù)類型;使能輸入端EN用于控制指令的執(zhí)行,使能輸出端ENO的狀態(tài)始終與EN的狀態(tài)保持*;數(shù)據(jù)輸入端IN1和IN2用于輸入?yún)⒓舆\(yùn)算的數(shù)據(jù);數(shù)據(jù)輸出端OUT用于輸出運(yùn)算結(jié)果,并運(yùn)算結(jié)果存儲的位置。
S7-300/400可以使用的整數(shù)運(yùn)算指令如表4-6所示。
【例4-11】如圖4-7所示的梯形圖,寫出其對應(yīng)的指令并敘述其執(zhí)行過程。

圖4-7 整數(shù)加法指令編程
上述梯形圖程序?qū)?yīng)的語句表程序如下:
A I 0.0
JNB _001
L MW 12
L MW 10
+I
T MW 22
_001:NOP 0
執(zhí)行過程如下:
(1)將操作數(shù)1-MW12中的數(shù)據(jù)讀入到累加器1中。
(2)將操作數(shù)2-MW10中的數(shù)據(jù)讀入到累加器1中,原累加器1中的操作數(shù)1移動(dòng)到累加器2中。
(3)累加器2中的內(nèi)容與累加器1中的數(shù)據(jù)進(jìn)行運(yùn)算,結(jié)果存儲在累加器1中。
(4)將存儲在累加器1中的運(yùn)算結(jié)果傳送到結(jié)果存儲器中,即存儲在MW22的存儲單元中。
算術(shù)運(yùn)算指令主要用于對存儲器數(shù)據(jù)進(jìn)行四則運(yùn)算、函數(shù)運(yùn)算處理等,數(shù)據(jù)可以是整數(shù)、浮點(diǎn)數(shù)。
算術(shù)運(yùn)算指令是在累加器中執(zhí)行的。S7系統(tǒng)提供了兩個(gè)累加器,在算術(shù)運(yùn)算中將累加器1作為主累加器,累加器2作為輔助累加器,與主累加器進(jìn)行運(yùn)算的數(shù)據(jù)存儲在累加器2中。在執(zhí)行算術(shù)運(yùn)算指令時(shí),累加器2中的值作為被減數(shù)和被除數(shù),而算術(shù)運(yùn)算的結(jié)果則保存在累加器1中,等待將結(jié)果傳輸?shù)降拇鎯卧羞M(jìn)行保存,而累加器1中原有的數(shù)據(jù)將被運(yùn)算結(jié)果所覆蓋,累加器2中的值保持不變。
在進(jìn)行運(yùn)算之前,需要將涉及的數(shù)據(jù)讀入到累加器中。S7系統(tǒng)讀入數(shù)據(jù)都是通過累加器1進(jìn)行的。算術(shù)運(yùn)算的兩個(gè)數(shù)據(jù)是按如下方式讀入的:

◇ 先讀入一個(gè)數(shù)據(jù)A存儲在累加器1中。
◇ 再讀入另一個(gè)數(shù)據(jù)B到累加器1中。在讀入數(shù)據(jù)B之前,系統(tǒng)自動(dòng)將數(shù)據(jù)A傳送到累加器2中。字邏輯運(yùn)算指令主要用于將兩個(gè)字或雙字逐位進(jìn)行邏輯“與”運(yùn)算、邏輯“或”和邏輯“異或”運(yùn)算。
如圖4-6中的“字或”指令(對兩個(gè)字類型數(shù)據(jù)進(jìn)行邏輯“或”運(yùn)算),其中的WOR_W為指令的標(biāo)題,WOR表示進(jìn)行字邏輯“或”運(yùn)算,后面的W表示對字類型數(shù)據(jù)進(jìn)行操作;IN1和IN2為兩個(gè)數(shù)據(jù)輸入端,用于輸入要進(jìn)行邏輯運(yùn)算的兩個(gè)數(shù)據(jù),OUT端用于輸出邏輯運(yùn)算結(jié)果,存儲在OUT端的存儲單元中;此外該指令還有兩個(gè)使能端,使能輸入端EN用于控制邏輯指令的執(zhí)行,只有EN端為高電位“1”時(shí),指令才執(zhí)行,使能使出端ENO與EN端的狀態(tài)始終保持*。
【例4-10】字、雙字邏輯運(yùn)算指令在S7300/400中的處理過程如下(以“字或”為例):
(1)將操作數(shù)1(IN1) -IW10中的數(shù)據(jù)移動(dòng)到累加器1中。
(2)將操作數(shù)2(IN2) -MW10中的數(shù)據(jù)移動(dòng)到累加器1中,操作數(shù)1移動(dòng)到累加器2中。
(3)將累加器1與累加器2的內(nèi)容進(jìn)行的邏輯運(yùn)算,邏輯運(yùn)算的結(jié)果保存在累加器1中。
(4)將邏輯運(yùn)算的結(jié)果(累加器1的內(nèi)容)傳送到結(jié)果存儲器中,即保存在MW20中。在進(jìn)行字邏輯操作的同時(shí),ENO輸出高電位,可用于控制輸出線圈等的狀態(tài)。
以上處理過程所對應(yīng)的梯形圖程序與指令表程序如圖4-6所示。

圖4-6 字邏輯“或”運(yùn)算編程
所對應(yīng)的指令:
A I 0.0
JNB _00 4
L IW 10
L MW 10
OW
T MW 20
_004: NOP 0
信號發(fā)生變化就會產(chǎn)生跳變沿。當(dāng)信號由0變化到1,就會產(chǎn)生正跳沿;如果信號由1變化到0,則產(chǎn)生負(fù)跳沿。在S7中有兩種跳變沿指令:一種是對觸點(diǎn)的跳變沿直接進(jìn)行檢測,另一種是對RLO的跳變沿進(jìn)行檢測。

(1)觸點(diǎn)跳變沿檢測指令
觸點(diǎn)跳變沿檢測可分為檢測正跳沿和檢測負(fù)跳沿。
◇ 觸點(diǎn)正跳沿檢測指令FP:在LAD中以功能框表示,它有兩個(gè)輸入端和一個(gè)輸出端,當(dāng)輸入端所接的觸點(diǎn)狀態(tài)從0到1時(shí),輸出端接通一個(gè)掃描周期。
◇ 觸點(diǎn)負(fù)跳沿檢測指令FN:在LAD中以功能框表示,它有兩個(gè)輸入端和一個(gè)輸出端,當(dāng)輸入端所接的觸點(diǎn)狀態(tài)從1到0時(shí),輸出端接通一個(gè)掃描周期。
注意:FP和FN指令檢測到的是RLO的狀態(tài)變化,而非觸點(diǎn)的狀態(tài)變化,盡管有時(shí)RLO與觸點(diǎn)的變化狀態(tài)相同。
(2) RLO跳變沿檢測指令
RLO跳變沿檢測指令可分為檢測正跳沿和負(fù)跳沿。
◇ 當(dāng)RLO從0到1時(shí),正跳沿檢測指令在當(dāng)前掃描周期以RLO=1表示其變化,而在其他掃描周期均為0。在執(zhí)行RLO正跳沿檢測指令前,RLO的狀態(tài)存儲在位地址中。
◇ 當(dāng)RLO從1到0時(shí),負(fù)跳沿檢測指令在當(dāng)前掃描周期以RLO=1表示其變化,而在其他掃描周期均為0。在執(zhí)行RLO負(fù)跳沿檢測指令前,RLO的狀態(tài)存儲在位地址中。

西門子S7-1200PLC模塊湖北代理價(jià)格