西門子200PLC四則運(yùn)算指令程序
發(fā)布于2023-02-06 11:31
50
2
標(biāo)簽:運(yùn)算指令
S7-200/300/400 PLC的四則運(yùn)算指令基本相同,主要是對(duì)兩個(gè)操作數(shù)的加、減、乘、除運(yùn)算、操作數(shù)可以是整數(shù)、雙整數(shù)、浮點(diǎn)數(shù)等。S7-200與S7-300/400PLC的指令格式相似,梯形圖程序格式如圖3-84所示。
圖3-84 四則運(yùn)算指令程序格式
(a)S7-200 PLC四則運(yùn)算程序格式(b)S7-300/400 PLC四則運(yùn)算程序格式
圖中的IN1為四則運(yùn)算中的被加數(shù)、被減數(shù)、被乘數(shù)、被除數(shù);IN2為加數(shù)、減數(shù)、乘數(shù)、除數(shù);OUT 為運(yùn)算結(jié)果存儲(chǔ)器地址。
從圖3-84中可見,盡管S7-200與S7-300/400PLC的梯形圖指令相同,但從轉(zhuǎn)換后的指令表可以看出兩者在執(zhí)行過程中存在有差異。
(1) S7-200 PLC的執(zhí)行過程如下:
1) 將操作數(shù)1(被加數(shù)、被減數(shù)、被乘數(shù)、被除數(shù))移動(dòng)到結(jié)果存儲(chǔ)器。
2) 將結(jié)果存儲(chǔ)器(操作數(shù)1)與操作數(shù)2(加數(shù)、減數(shù)、乘數(shù)、除數(shù))進(jìn)行運(yùn)算,并將運(yùn)算結(jié)果存儲(chǔ)到結(jié)果存儲(chǔ)器中。
(2) S7-300/400 PLC的執(zhí)行過程如下:
1) 將操作數(shù)1(被加數(shù)、被減數(shù)、被乘數(shù)、被除數(shù))讀入到累加器1中。
2) 將操作數(shù)2(加數(shù)、減數(shù)、乘數(shù)、除數(shù))讀人到累加器1中,原累加器1中的操作數(shù)1移動(dòng)到累加器2中。
3) 累加器2中的內(nèi)容與累加器1運(yùn)算,運(yùn)算結(jié)果存儲(chǔ)在累加器1中。
4) 累加器1的運(yùn)算結(jié)果傳送到結(jié)果存儲(chǔ)器中。
(3) 四則運(yùn)算編程時(shí)應(yīng)注意以下幾點(diǎn):
1) 在S7-200 PLC中,整數(shù)、雙整數(shù)的運(yùn)算結(jié)果仍然為整數(shù)與雙整數(shù),因此,在程序中應(yīng)注意防止因運(yùn)算結(jié)果溢出而導(dǎo)致的執(zhí)行錯(cuò)誤。
2) 在S7-200PLC中整數(shù)、雙整數(shù)的除法運(yùn)算DIV_I、DIV_DI指令,以及S7-300/400PLC的DIV_DI 指令,其除法運(yùn)算的結(jié)果不保留余數(shù)。
3) 對(duì)于S7-200PLC的整數(shù)除法,如果需要余數(shù),可以使用DIV指令。DIV指令要求的輸出存儲(chǔ)器OUT 為32位,執(zhí)行DIV指令后,兩個(gè)整數(shù)的除法運(yùn)算可以得到32位運(yùn)算結(jié)果,輸出存儲(chǔ)器OUT的高16位用于存儲(chǔ)余數(shù),低16位用于存儲(chǔ)商。
4) S7-200PLC的雙整數(shù)除法無法保留余數(shù)。
5) 對(duì)于S7-300/400PLC的整數(shù)除法,可以自動(dòng)生成余數(shù),執(zhí)行DIV_I指令后,累加器1的高16位存儲(chǔ)余數(shù),低16位存儲(chǔ)商。
6) 對(duì)于S7-300/400 PLC的雙整數(shù)除法,如果需要余數(shù),可以在利用DIV_DI指令求出商后,再使用MOD指令求余數(shù)。執(zhí)行MOD指令后,商被舍去,累加器1存儲(chǔ)余數(shù)。
7) 除法運(yùn)算的除數(shù)不能為“0”。
(4) 浮點(diǎn)數(shù)的函數(shù)運(yùn)算。在S7-200/300/400 PLC中,浮點(diǎn)數(shù)可以進(jìn)行函數(shù)運(yùn)算。函數(shù)運(yùn)算包括正弦余弦、正切、平方根、自然對(duì)數(shù)、指數(shù)等運(yùn)算,任S7-300/400PLC中還可以進(jìn)行平方、反正弦、反余弦、反正切、求絕對(duì)值等運(yùn)算。
對(duì)于浮點(diǎn)數(shù)的函數(shù)運(yùn)算,為了得到正確的運(yùn)算結(jié)果,同樣應(yīng)遵守函數(shù)運(yùn)算的基本規(guī)定與要求,保證程序中操作數(shù)取值范圍的正確性。
(5) 增量指令。在S7-200 PLC中,除可以使用以上數(shù)據(jù)運(yùn)算指令外,還可以通過專門的指令對(duì)字節(jié)字、雙字進(jìn)行增“1”(Increment)與減“1”(Decrement)運(yùn)算。這些指令的使用十分簡(jiǎn)單,可以按照表3-22的格式直接編程。
除以上常用的功能指令外,S7還有其他部分功能指令,如程序控制指令,S7-200PLC中的表指令、字符串指令、特殊計(jì)數(shù)指令等。這些指令有的使用較少,有的將在S7PLC的特殊功能指令中給予說明,因此,這里不再進(jìn)行介紹,需要時(shí)可以參見Siemens手冊(cè)相關(guān)的內(nèi)容。