西門子S7-200/300/400plc的四則運算指令基本相同,主要是對兩個操作數的加、減、乘、除運算,操作數可以是整數、雙整數、浮點數等。S7-200與S7-300/400的指令格式相似,梯形圖程序格式如圖10-7.1所示。

圖中的IN1為四則運算中的被加數、被減數、被乘數、被除數;IN2為加數、減數、乘數、除數:OUT為運算結果存儲器地址。
從圖10-7.1可見,盡管S7-200與S7-300/400的梯形圖指令相同,但從轉換後的指令表可以看出兩者在執行過程中存在差異。
S7-200的執行過程如下:
①將操作數l(被加數、被減數、被乘數、被除數)移動到結果存儲器;
②將結果存儲器(操作數1)與操作數2(加數、減數、乘數、除數)進行運算,並將運算結果存儲到結果存儲器中。
S7-300/400的執行過程如下:
①將操作數l(被加數、被減數、被乘數、被除數)讀入到累加器l中:
②將操作數2(加數、減數、乘數、除數)讀入到累加器1中,原累加器1中的操作數l移動到累加器2中:
③累加器2中的內容與累加器l運算,運算結果存儲在累加器l中;
④累加器1的運算結果傳送到結果存儲器中。
四則運算編程時應注意以下幾點:
①在S7-200中,整數、雙整數的運算結果仍然為整數與雙整數,因此,在程序中應注意防止因運算結果溢出而導致的執行錯誤。
②在S7-200中整數、雙整數的除法運算DIV—I、DIV- DI指令,以及S7-300/400的DIV_ DI指令,除法運算的結果不保留餘數。
③對於S7-200的整數除法,如果需要餘數,可以使用DIV指令。DIV指令要求的輸出存儲器OUT為32位,執行DIV指令後,兩個整數的除法運算可以得到32位運算結果,輸出存儲器OUT的高16位用於存儲餘數,低16位用於存儲商。
④S7-200的雙整數除法無法保留餘數。
⑤對於S7-300/400的整數除法,可以自動生成餘數,執行DIV I指令後,累加器l的高16位存儲餘數,低16位存儲商。
⑥對於S7-300/400的雙整數除法,如果需要餘數,可以在利用DIV DI指令求出商後,再使用MOD指令求餘數。執行MOD指令後,商被舍去,累加器l存儲餘數。
⑦除法運算的除數不能為“O”。
2.浮點數的函數運算
在S7-200/300/400中,浮點數可以進行函數運算。函數運算包括正弦、餘弦、正切、平方根、自然對數、指數等運算,在S7-300/400中還可以進行平方、反正弦、反餘弦、反正切、求絕對值等運算。
對於浮點數的函數運算,為了得到正確的運算結果,同樣應遵守函數運算的基本規定與要求,保證程序中操作數取值範圍的正確性。
3.增量指令
在S7-200中,除可以使用以上數據運算指令外,還可以通過專門的指令對字節、字、雙字進行增“1”( Increment)與減“1”(Decrement)運算。這些指令的使用十分簡單,可以按照表10-7.1的格式直接編程。
除以上常用的功能指令外,S7還有其他部分功能指令,如程序控製指令,S7-200中的表指令、字符串指令、特殊計數指令等。這些指令有的使用較少。