本節我們(men) 來學習(xi) 西門子S7-200 SMART整數運算指令,並通過一個(ge) 實例來講解整數運算指令如何使用。S7-200 SMART的整數運算指令主要包括加、減、乘、除運算指令和遞增、遞減運算指令。
加減乘除運算指令
遞增、遞減運算指令
整數的加、減、乘、除運算指令分別實現了將兩(liang) 個(ge) 十六位整數相加、相減、相乘和相除,從(cong) 而產(chan) 生一個(ge) 十六位的整數運算結果,其中除法指令隻得到商,不保留餘(yu) 數。
整數的加減乘除指令
雙整數的加、減、乘、除指令分別實現了將兩(liang) 個(ge) 三十二位的雙整數相加、相減、相乘和相除,從(cong) 而產(chan) 生一個(ge) 三十二位的雙整數結果,其中除法指令隻得到商,不保留餘(yu) 數。
雙整數的加減乘除指令
當兩(liang) 個(ge) 十六位整數相乘,所得的結果可能溢出十六位整數範圍時,可以使用整數相乘得雙整數指令,它將兩(liang) 個(ge) 十六位整數IN1和IN2相乘,從(cong) 而產(chan) 生一個(ge) 三十二位的雙整數結果。
整數相乘得雙整數指令
帶餘(yu) 數的整數除法指令,將兩(liang) 個(ge) 十六位的整數IN1和IN2相除從(cong) 而產(chan) 生一個(ge) 三十二位的結果,其中操作數IN1和IN2是十六位有符號整數,三十二位的結果OUT中,高十六位為(wei) 餘(yu) 數,低十六位為(wei) 商。
帶餘(yu) 數的整數除法指令
字節遞增、遞減指令將輸入字節IN加一或者減一,並將運算結果送到OUT中,其操作數為(wei) 八位無符號數,需要注意字節遞增、遞減運算不帶符號。
字節遞增遞減指令
字遞增、遞減指令將輸入字IN加一或者減一,並將運算結果送到OUT中,其操作數為(wei) 十六位有符號整數,需要注意字遞增、遞減運算帶符號。
字遞增遞減指令
雙字遞增、遞減指令將輸入雙字IN加一或者減一,並將運算結果送到OUT中,其操作數為(wei) 三十二位有符號雙整數,需要注意雙字遞增、遞減運算帶符號。
雙字遞增遞減指令
下麵我們(men) 舉(ju) 例來說明整數運算指令在程序中的應用。在實際應用中,經常需要將現場采集的模擬量信號數據值進行轉換,得到對應的工程量數值,假設得到的轉換公式如下圖所示,為(wei) 了便於(yu) 演示,將AIW0的地址更改為(wei) VW0,需要注意,為(wei) 了保證精度,運算時應該先進行乘法運算再進行除法運算。
整數運算指令應用舉(ju) 例
我們(men) 來編寫(xie) 程序。雙擊電腦桌麵上的STEP7-Micro/WIN SMART圖標,打開編程軟件,首先從(cong) 指令樹的位邏輯中選擇一個(ge) 常開觸點,拖放到程序編輯器的程序段1中,輸入地址SM0.0,在指令樹整數計算選項中拖動整數相減指令到剛剛添加的常開觸點後麵,在IN1處輸入地址VW0,在IN2處輸入數值6400,在OUT處輸入地址VW2。
添加整數相減指令
單擊工具欄插入向下垂直線按鈕,產(chan) 生一個(ge) 程序分支。因為(wei) 乘法運算的結果可能超出十六位整數的範圍,所以需要使用整數相乘得到雙整數指令,插入該指令,在IN1處輸入地址VW2,在IN2處輸入數值100,在OUT處輸入地址VD4。
添加整數相乘得到雙整數指令
再次單擊工具欄插入向下垂直線按鈕,繼續產(chan) 生程序分支。因為(wei) VD4是雙整數,所以需要雙整數相除指令,插入該指令,在IN1處輸入地址VD4,在IN2處輸入數值25600,在OUT處輸入地址VD8。這樣,一個(ge) 用整數運算指令編寫(xie) 的模擬量運算程序就編寫(xie) 完成了。
添加整數相除指令
編譯並下載程序到S7-200 SMART PLC。單擊菜單中的下載按鈕,在打開的通信對話框中選擇要訪問的CPU並點擊確定進行下載,下載完成後關(guan) 閉對話框。在線查看程序運行情況。單擊PLC菜單下的RUN按鈕運行項目,單擊調試菜單下的程序狀態按鈕在線觀察程序的運行情況,在狀態圖表中輸入地址VW0,格式為(wei) 有符號整數,再輸入VD8。單擊狀態圖表的工具欄圖表狀態按鈕,可以看到VW0和VD8的當前值。
在線查看程序運行情況
在VW0的新值列中輸入20000,單擊狀態圖表的工具欄寫(xie) 入按鈕,則VW2變為(wei) 相應的值,此時VD8自動計算為(wei) 相應的數值。
自動計算相應的數值