本节我们来学习西门子S7-200 SMART整数运算指令,并通过一个实例来讲解整数运算指令如何使用。S7-200 SMART的整数运算指令主要包括加、减、乘、除运算指令和递增、递减运算指令。
加减乘除运算指令
递增、递减运算指令
整数的加、减、乘、除运算指令分别实现了将两个十六位整数相加、相减、相乘和相除,从而产生一个十六位的整数运算结果,其中除法指令只得到商,不保留余数。
整数的加减乘除指令
双整数的加、减、乘、除指令分别实现了将两个三十二位的双整数相加、相减、相乘和相除,从而产生一个三十二位的双整数结果,其中除法指令只得到商,不保留余数。
双整数的加减乘除指令
当两个十六位整数相乘,所得的结果可能溢出十六位整数范围时,可以使用整数相乘得双整数指令,它将两个十六位整数IN1和IN2相乘,从而产生一个三十二位的双整数结果。
整数相乘得双整数指令
带余数的整数除法指令,将两个十六位的整数IN1和IN2相除从而产生一个三十二位的结果,其中操作数IN1和IN2是十六位有符号整数,三十二位的结果OUT中,高十六位为余数,低十六位为商。
带余数的整数除法指令
字节递增、递减指令将输入字节IN加一或者减一,并将运算结果送到OUT中,其操作数为八位无符号数,需要注意字节递增、递减运算不带符号。
字节递增递减指令
字递增、递减指令将输入字IN加一或者减一,并将运算结果送到OUT中,其操作数为十六位有符号整数,需要注意字递增、递减运算带符号。
字递增递减指令
双字递增、递减指令将输入双字IN加一或者减一,并将运算结果送到OUT中,其操作数为三十二位有符号双整数,需要注意双字递增、递减运算带符号。
双字递增递减指令
下面我们举例来说明整数运算指令在程序中的应用。在实际应用中,经常需要将现场采集的模拟量信号数据值进行转换,得到对应的工程量数值,假设得到的转换公式如下图所示,为了便于演示,将AIW0的地址更改为VW0,需要注意,为了保证精度,运算时应该先进行乘法运算再进行除法运算。
整数运算指令应用举例
我们来编写程序。双击电脑桌面上的STEP7-Micro/WIN SMART图标,打开编程软件,首先从指令树的位逻辑中选择一个常开触点,拖放到程序编辑器的程序段1中,输入地址SM0.0,在指令树整数计算选项中拖动整数相减指令到刚刚添加的常开触点后面,在IN1处输入地址VW0,在IN2处输入数值6400,在OUT处输入地址VW2。
添加整数相减指令
单击工具栏插入向下垂直线按钮,产生一个程序分支。因为乘法运算的结果可能超出十六位整数的范围,所以需要使用整数相乘得到双整数指令,插入该指令,在IN1处输入地址VW2,在IN2处输入数值100,在OUT处输入地址VD4。
添加整数相乘得到双整数指令
再次单击工具栏插入向下垂直线按钮,继续产生程序分支。因为VD4是双整数,所以需要双整数相除指令,插入该指令,在IN1处输入地址VD4,在IN2处输入数值25600,在OUT处输入地址VD8。这样,一个用整数运算指令编写的模拟量运算程序就编写完成了。
添加整数相除指令
编译并下载程序到S7-200 SMART PLC。单击菜单中的下载按钮,在打开的通信对话框中选择要访问的CPU并点击确定进行下载,下载完成后关闭对话框。在线查看程序运行情况。单击PLC菜单下的RUN按钮运行项目,单击调试菜单下的程序状态按钮在线观察程序的运行情况,在状态图表中输入地址VW0,格式为有符号整数,再输入VD8。单击状态图表的工具栏图表状态按钮,可以看到VW0和VD8的当前值。
在线查看程序运行情况
在VW0的新值列中输入20000,单击状态图表的工具栏写入按钮,则VW2变为相应的值,此时VD8自动计算为相应的数值。
自动计算相应的数值