陜西西門(mén)子S7-200SMART系列PLC代理商
西門(mén)子S7-300 PLC算術(shù)運(yùn)算指令
在STEP7中可以對(duì)整數(shù)、長(zhǎng)整數(shù)和實(shí)數(shù)進(jìn)行加、減、乘、除算術(shù)運(yùn)算。算術(shù)運(yùn)算指令在累加器1和2中進(jìn)行,在累加器2中的值作為被減數(shù)或被除數(shù)。算術(shù)運(yùn)算的結(jié)果保存在累加器1中,累加器1原有的值被運(yùn)算結(jié)果覆蓋,累加器2中的值保持不變。CPU在進(jìn)行算術(shù)運(yùn)算時(shí),對(duì)RLO不產(chǎn)生影響。然而算術(shù)運(yùn)算指令對(duì)狀態(tài)字的CC1和CC0、OV、OS位產(chǎn)生影響??梢杂梦徊僮髦噶罨驐l件跳轉(zhuǎn)指令,對(duì)狀態(tài)字中的標(biāo)志位進(jìn)行判斷操作。

1.整數(shù)算術(shù)運(yùn)算
整數(shù)算術(shù)運(yùn)算指令包括:
指令“+I”:將累加器1、2低字中的16位整數(shù)相加,16位整數(shù)結(jié)果保存在累加器1低字中。
指令“-I”:將累加器2低字中的16位整數(shù)減去累加器1低字中的內(nèi)容.結(jié)果保存在累加器1中。
指令“*I”:將累加器1、2低字中的16位整數(shù)相乘,結(jié)果為32位整數(shù)保存在累加器1中。
指令“/I”:將累加器2低字中的16位整數(shù)除去累加器1低字中的內(nèi)容,商為16位整數(shù)并保存在累加器1低字中,余數(shù)存放在累加器1高字中。
指令“+D”:將累加器1、2中的32位整數(shù)相加,32位整數(shù)結(jié)果保存在累加器1中。
指令“-D”:將累加器2中的32位整數(shù)減去累加器1中的內(nèi)容,結(jié)果保存在累加器1中。
指令“*D”:將累加器1、2中的32位整數(shù)相乘,結(jié)果為32位整數(shù)保存在累加器1中。
指令“/D”:將累加器2中的32位整數(shù)除以累加器1中的內(nèi)容,商為32位整數(shù)并保存在累加器1中.余數(shù)被忽略。
指令“MOD”:將累加器2中的32位整數(shù)除以累加器1中的內(nèi)容,余數(shù)保存在累加器1中,商被忽略。
指令“+”:累加器1中加一個(gè)16位或2位整數(shù)常量,結(jié)果保存在累加器中。
2.實(shí)數(shù)算術(shù)運(yùn)算
實(shí)數(shù)算術(shù)運(yùn)算指令包括:
指令“+R”:將累加器1、2中的32位實(shí)數(shù)相加,32位結(jié)果保存在累加器1中。
指令“-R”:將累加器2中的32位實(shí)數(shù)減去累加器1中的內(nèi)容,結(jié)果保存在累加器1中。
指令“*R”:將累加器1、2中的32位實(shí)數(shù)相乘,32位乘積保存在累加器1中。
指令“/R”:將累加器2中的32位實(shí)數(shù)除去累加器l的內(nèi)容,32位的商并保存在累加器中。
指令“ABS”:對(duì)累加器]中的32位實(shí)數(shù)取值。
3.梯形圖算術(shù)運(yùn)算方塊指令
以上介紹的語(yǔ)句表運(yùn)算指令,都有對(duì)應(yīng)的梯形圖方塊指令。在編程器上,使用梯形圖指令瀏覽器,可以選擇需要的方塊指令。下面舉例說(shuō)明算術(shù)方塊指令的用法。
【例5-5】 編寫(xiě)實(shí)現(xiàn)MD4= (IW0+DBW3)×15/MD 0運(yùn)算的程序。
【解】 圖5-18給出了一個(gè)實(shí)現(xiàn)上述運(yùn)算的梯形圖程序。
圖5-18 算術(shù)運(yùn)算方塊指令
實(shí)現(xiàn)相同運(yùn)算的語(yǔ)句程序如下:
L IW 0 ∥將輸入字IW0的內(nèi)容裝入累加器1
L DBW 3 ∥將數(shù)據(jù)字DBW3的內(nèi)容裝入累加器1中,累加器1原內(nèi)容裝入累加器2中
+I ∥累加器2與累加器1相加,結(jié)果存入累加器1中
L +15 ∥將常數(shù)15裝入累加器1,累加器1原內(nèi)容裝入累加器2
*I ∥累加器2與累加器1相乘,結(jié)果為長(zhǎng)整數(shù)在累加器1中
L MD 0 ∥將存儲(chǔ)雙字MD 0的內(nèi)容裝入累加器1,累加器1原內(nèi)容裝入累加器2
/I ∥累加器2除累加器1,結(jié)果的整數(shù)部分在累加器1中
T MD 4 ∥將運(yùn)算結(jié)果傳送至存儲(chǔ)雙字MD4

語(yǔ)句表轉(zhuǎn)換指令將累加器1中的數(shù)據(jù)進(jìn)行類(lèi)型轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果仍在累加器中。能夠?qū)崿F(xiàn)的轉(zhuǎn)換操作有:BCD碼和整數(shù)及長(zhǎng)整數(shù)間的轉(zhuǎn)換,實(shí)數(shù)和長(zhǎng)整數(shù)間的轉(zhuǎn)換,數(shù)的取反、取負(fù)等(在STEP7中,整數(shù)和長(zhǎng)整數(shù)是以補(bǔ)碼形式表示的)。
1.BCD和整數(shù)問(wèn)的轉(zhuǎn)換指令(見(jiàn)表5-22)
表5-22 BCD和整數(shù)間的轉(zhuǎn)換指令
指令 | 說(shuō) 明 |
BTI | 將累加器1低字中的3位BCD碼數(shù)轉(zhuǎn)換為16位整數(shù) |
BTD | 將累加器1中的7位BCD碼數(shù)轉(zhuǎn)換為32位整數(shù) |
ITB | 將累加器1低字中16位整數(shù)轉(zhuǎn)換為3位BCD碼數(shù) |
ITD | 將累加器1低孛中16位整數(shù)轉(zhuǎn)換為32位整數(shù) |
DTB | 將累加器1中32位整數(shù)轉(zhuǎn)換為7位BCD碼數(shù) |
DTR | 將累加器1中的32位整數(shù)轉(zhuǎn)換為32位實(shí)數(shù) |
2.實(shí)數(shù)和長(zhǎng)整數(shù)間的轉(zhuǎn)換指令(見(jiàn)表5-23)
表5-23 實(shí)數(shù)和長(zhǎng)整數(shù)間的轉(zhuǎn)換指令
指令 | 說(shuō) 明 |
RND | 將實(shí)數(shù)化整為接近的整數(shù) |
RND+ | 將實(shí)數(shù)化整為大于或等于該實(shí)數(shù)的小整數(shù) |
RND- | 將實(shí)數(shù)化整為小于或等于該實(shí)數(shù)的大整數(shù) |
TRUNC | 取實(shí)數(shù)的整數(shù)部分(截尾取整) |
3.?dāng)?shù)的取反取負(fù)指令(見(jiàn)表5-24)
表5-24 數(shù)的取反取負(fù)指令

指令 | 說(shuō) 明 |
INVI | 將累加器1低字中的16位整數(shù)求反碼 |
INVD | 將累加器1中的32位整數(shù)求反碼 |
NEGI | 將累加器1低字中16位整數(shù)求補(bǔ)碼,相當(dāng)于乘-1 |
NEGD | 將累加器1中32位整數(shù)求補(bǔ)碼 |
NEGR | 將累加器1中32位實(shí)數(shù)符號(hào)位取反 |
4.梯形圖轉(zhuǎn)換方塊指令
以上介紹的語(yǔ)句表轉(zhuǎn)換指令,都有對(duì)應(yīng)的梯形圖方塊指令。在編程器上,使用梯形圖指令瀏覽器,可以選擇需要的方塊指令。
裝入和傳送操作有3種尋址方式:立即尋址、直接尋址和間接尋址。
(1)立即尋址
L指令可以直接對(duì)8位、16位、32位常數(shù)以及ASCII字符進(jìn)行尋址操作方式。如下列典型指令:
L +5 ∥累加器1中裝入一個(gè)16位整數(shù)常數(shù)
L B#(1,-10) ∥累加器1中裝入兩個(gè)獨(dú)立的字節(jié),將-10裝入累加器1低字的低字節(jié)中;將1裝入低字的高字節(jié)中
L P# I 1.0 ∥累加器1中裝入32位指向I 1.0的指針
L TOD#1:10:33 ∥累加器1中裝入16位數(shù)值
(2)直接和間接尋址
L和T指令可以對(duì)下列存儲(chǔ)區(qū)的字節(jié)(B)、字(W)和雙字(D)數(shù)據(jù)進(jìn)行直接或間接尋址。
①過(guò)程暫存輸入、輸出區(qū)(地址標(biāo)識(shí)符IB、IW、I、QB、QW、QD)。
②外部輸入、輸出區(qū)(地址標(biāo)識(shí)符PIB、PIW、PQB、PQW、PQD)。
外部輸入?yún)^(qū)只能通過(guò)L指令進(jìn)行尋址,外部輸出區(qū)只能通過(guò)T指令進(jìn)行尋址。
⑧位存儲(chǔ)區(qū)(地址標(biāo)識(shí)符MB、MW、MD)。
④數(shù)據(jù)塊(地址標(biāo)識(shí)符DBB、DBW、DBD、DIB、DIW、DID)。
⑤局部數(shù)據(jù)(臨時(shí)局部數(shù)據(jù),地址標(biāo)識(shí)符LB、LW、LD)。

有關(guān)L和T指令的間接尋址方式及尋址范圍請(qǐng)參考相關(guān)技術(shù)手冊(cè)。
(3)存儲(chǔ)器區(qū)間間接尋址
使用地址寄存器可以在執(zhí)行L和T指令時(shí),實(shí)現(xiàn)存儲(chǔ)區(qū)間的間接尋址。此時(shí),地址寄存器的位31為1,位24、25和26指出尋址的存儲(chǔ)區(qū),位3至位18指出尋址的具體單元號(hào)。
陜西西門(mén)子S7-200SMART系列PLC代理商