本節(jié)我們來學(xué)習(xí)西門子S7-200 SMART整數(shù)運(yùn)算指令,并通過一個(gè)實(shí)例來講解整數(shù)運(yùn)算指令如何使用。S7-200 SMART的整數(shù)運(yùn)算指令主要包括加、減、乘、除運(yùn)算指令和遞增、遞減運(yùn)算指令。
加減乘除運(yùn)算指令
遞增、遞減運(yùn)算指令
整數(shù)的加、減、乘、除運(yùn)算指令分別實(shí)現(xiàn)了將兩個(gè)十六位整數(shù)相加、相減、相乘和相除,從而產(chǎn)生一個(gè)十六位的整數(shù)運(yùn)算結(jié)果,其中除法指令只得到商,不保留余數(shù)。
整數(shù)的加減乘除指令
雙整數(shù)的加、減、乘、除指令分別實(shí)現(xiàn)了將兩個(gè)三十二位的雙整數(shù)相加、相減、相乘和相除,從而產(chǎn)生一個(gè)三十二位的雙整數(shù)結(jié)果,其中除法指令只得到商,不保留余數(shù)。
雙整數(shù)的加減乘除指令
當(dāng)兩個(gè)十六位整數(shù)相乘,所得的結(jié)果可能溢出十六位整數(shù)范圍時(shí),可以使用整數(shù)相乘得雙整數(shù)指令,它將兩個(gè)十六位整數(shù)IN1和IN2相乘,從而產(chǎn)生一個(gè)三十二位的雙整數(shù)結(jié)果。
整數(shù)相乘得雙整數(shù)指令
帶余數(shù)的整數(shù)除法指令,將兩個(gè)十六位的整數(shù)IN1和IN2相除從而產(chǎn)生一個(gè)三十二位的結(jié)果,其中操作數(shù)IN1和IN2是十六位有符號(hào)整數(shù),三十二位的結(jié)果OUT中,高十六位為余數(shù),低十六位為商。
帶余數(shù)的整數(shù)除法指令
字節(jié)遞增、遞減指令將輸入字節(jié)IN加一或者減一,并將運(yùn)算結(jié)果送到OUT中,其操作數(shù)為八位無符號(hào)數(shù),需要注意字節(jié)遞增、遞減運(yùn)算不帶符號(hào)。
字節(jié)遞增遞減指令
字遞增、遞減指令將輸入字IN加一或者減一,并將運(yùn)算結(jié)果送到OUT中,其操作數(shù)為十六位有符號(hào)整數(shù),需要注意字遞增、遞減運(yùn)算帶符號(hào)。
字遞增遞減指令
雙字遞增、遞減指令將輸入雙字IN加一或者減一,并將運(yùn)算結(jié)果送到OUT中,其操作數(shù)為三十二位有符號(hào)雙整數(shù),需要注意雙字遞增、遞減運(yùn)算帶符號(hào)。
雙字遞增遞減指令
下面我們舉例來說明整數(shù)運(yùn)算指令在程序中的應(yīng)用。在實(shí)際應(yīng)用中,經(jīng)常需要將現(xiàn)場采集的模擬量信號(hào)數(shù)據(jù)值進(jìn)行轉(zhuǎn)換,得到對(duì)應(yīng)的工程量數(shù)值,假設(shè)得到的轉(zhuǎn)換公式如下圖所示,為了便于演示,將AIW0的地址更改為VW0,需要注意,為了保證精度,運(yùn)算時(shí)應(yīng)該先進(jìn)行乘法運(yùn)算再進(jìn)行除法運(yùn)算。
整數(shù)運(yùn)算指令應(yīng)用舉例
我們來編寫程序。雙擊電腦桌面上的STEP7-Micro/WIN SMART圖標(biāo),打開編程軟件,首先從指令樹的位邏輯中選擇一個(gè)常開觸點(diǎn),拖放到程序編輯器的程序段1中,輸入地址SM0.0,在指令樹整數(shù)計(jì)算選項(xiàng)中拖動(dòng)整數(shù)相減指令到剛剛添加的常開觸點(diǎn)后面,在IN1處輸入地址VW0,在IN2處輸入數(shù)值6400,在OUT處輸入地址VW2。
添加整數(shù)相減指令
單擊工具欄插入向下垂直線按鈕,產(chǎn)生一個(gè)程序分支。因?yàn)槌朔ㄟ\(yùn)算的結(jié)果可能超出十六位整數(shù)的范圍,所以需要使用整數(shù)相乘得到雙整數(shù)指令,插入該指令,在IN1處輸入地址VW2,在IN2處輸入數(shù)值100,在OUT處輸入地址VD4。
添加整數(shù)相乘得到雙整數(shù)指令
再次單擊工具欄插入向下垂直線按鈕,繼續(xù)產(chǎn)生程序分支。因?yàn)閂D4是雙整數(shù),所以需要雙整數(shù)相除指令,插入該指令,在IN1處輸入地址VD4,在IN2處輸入數(shù)值25600,在OUT處輸入地址VD8。這樣,一個(gè)用整數(shù)運(yùn)算指令編寫的模擬量運(yùn)算程序就編寫完成了。
添加整數(shù)相除指令
編譯并下載程序到S7-200 SMART PLC。單擊菜單中的下載按鈕,在打開的通信對(duì)話框中選擇要訪問的CPU并點(diǎn)擊確定進(jìn)行下載,下載完成后關(guān)閉對(duì)話框。在線查看程序運(yùn)行情況。單擊PLC菜單下的RUN按鈕運(yùn)行項(xiàng)目,單擊調(diào)試菜單下的程序狀態(tài)按鈕在線觀察程序的運(yùn)行情況,在狀態(tài)圖表中輸入地址VW0,格式為有符號(hào)整數(shù),再輸入VD8。單擊狀態(tài)圖表的工具欄圖表狀態(tài)按鈕,可以看到VW0和VD8的當(dāng)前值。
在線查看程序運(yùn)行情況
在VW0的新值列中輸入20000,單擊狀態(tài)圖表的工具欄寫入按鈕,則VW2變?yōu)橄鄳?yīng)的值,此時(shí)VD8自動(dòng)計(jì)算為相應(yīng)的數(shù)值。
自動(dòng)計(jì)算相應(yīng)的數(shù)值