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