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