移位和循環指令
STEP7-Micro/WIN提供的移位指令能將存儲器的內容逐位向左或者向右移動。移動的位數由N決定。
向左移N位相當於累加器的內容乘2ⁿ,向右移相當於累加器的內容除以2ⁿ。
1、字左移
當字左移指令的EN位為高電平“1”時,執行移位指令,將IN端指定的內容左移N端指定的位數,然後寫入OUT端指定的目的地址中。如果移位數目(N)大於或等於16,則數值最多被移位16次。最後一次移出的位保存在SM1.1中。
2、字右移
當字右移指令的EN位為高電平“1”時,執行移位指令,將IN端指定的內容右移N端指定的位數,然後寫入OUT端指定的目的地址中。如果移位數目(N)大於或等於16,則數值最多被移位16次。最後一次移出的位保存在SM1.1中。
3、雙字循環左移
當雙字循環左移的EN位為高電平“1”時,將執行雙字循環左移指令,將IN端指令的內容循環左移N端指定的位數,然後寫入OUT端指令的目的地址中。如果移位數目( N)大於或等於32,執行旋轉之前在移動位數(N)上執行模數32操作。從而使位數在0~31之間,例如當N=34時,通過模運算,實際移位為2。
4、雙字循環右移
當雙字循環右移的EN位為高電平“1”時,將執行雙字循環右移指令,將IN端指令的內容向右循環移動N端指定的位數,然後寫入OUT端指令的目的地址中。如果移位數目( N)大於或等於32,執行旋轉之前在移動位數(N)上執行模數32操作。從而使位數在0~31之間,例如當N=34時,通過模運算,實際移位為2。
算術運算指令
1、整數算術運算指令
S7-200的整數算術運算分為加法運算、減法運算、乘法運算和除法運算,其中每種運算方式又有整數型和雙整數型兩種。
整數加 當允許輸入端EN為高電平時,輸入端IN1和IN2中的整數相加,結果送入OUT中。IN1和IN2中的數可以是常數。整數加的表達式是:IN1+IN2=OUT。
雙整數減 當允許輸入端EN為高電平時,輸入端IN1和IN2中的雙整數相減,結果送入OUT中。IN1和IN2中的數可以是常數。雙整數減的表達式是:IN1-IN2=OUT。
整數乘 當允許輸入端EN為高電平時,輸入端IN1和IN2中的整數相乘,結果送入OUT中。IN1和IN2中的數可以是常數。整數乘的表達式是:IN1×IN2=OUT。
雙整數除 當允許輸入端EN為高電平時,輸入端IN1中的雙整數除以IN2中的雙整數,結果為雙整數,送入OUT中,不保留餘數。IN1和IN2中的數可以是常數。
遞增/遞減運算指令 遞增/遞減運算指令,在輸入端(IN)上加1或減1,並將結果置入OUT。遞增/遞減指令的操作數類型為字節、字和雙字。
浮點數運算指令
浮點數函數有浮點算術運算函數、三角函數、對角函數、冪運函數和PID等。
浮點算術函數又分為加法運算、減法運算、乘法運算和除法運算。
當允許輸入端EN為高電平時,輸入端IN1和IN2中的實數相加,結果送入OUT中。IN1和IN2中的數可以是常數。實數加的表達式是:IN1+IN2=OUT。
轉換指令
轉換指令是將一種數據格式轉換成另外一種格式進行存儲。
1、整數轉換成雙整數
整數轉換成雙整數指令是將IN端指定的內容以整數的格式讀入,然後將其轉換為雙整數碼格式輸出到OUT端。
2、雙整數轉換成實數
雙整數轉換成實數指令是將IN端指定的內容以雙整數的格式讀入,然後將其轉換為實數碼格式輸出到OUT端。
3、實數四捨五入為雙整數
ROUND指令是將實數進行四捨五入取整後轉換成雙整數的格式。
今天的分享就到這裡,歡迎大家在下方留言,交流!