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