西门子S7-200 SMART整数运算指令概述及应用举例

简介: 本篇文章我们来学习西门子S7-200 SMART整数运算指令。S7-200 SMART的整数运算指令主要包括加、减、乘、除运算指令和递增、递减运算指令。

本篇文章我们来学习西门子S7-200 SMART整数运算指令。S7-200 SMART的整数运算指令主要包括加、减、乘、除运算指令和递增、递减运算指令。


640.jpg

加减乘除运算指令


640.jpg

递增、递减运算指令

 

整数的加、减、乘、除运算指令分别实现了将两个十六位整数相加、相减、相乘和相除,从而产生一个十六位的整数运算结果,其中除法指令只得到商,不保留余数。


640.jpg


整数的加减乘除指令

 

双整数的加、减、乘、除指令分别实现了将两个三十二位的双整数相加、相减、相乘和相除,从而产生一个三十二位的双整数结果,其中除法指令只得到商,不保留余数。


640.jpg

双整数的加减乘除指令

 

当两个十六位整数相乘,所得的结果可能溢出十六位整数范围时,可以使用整数相乘得双整数指令,它将两个十六位整数IN1和IN2相乘,从而产生一个三十二位的双整数结果。


640.jpg


整数相乘得双整数指令

 

带余数的整数除法指令,将两个十六位的整数IN1和IN2相除从而产生一个三十二位的结果,其中操作数IN1和IN2是十六位有符号整数,三十二位的结果OUT中,高十六位为余数,低十六位为商。


640.jpg

带余数的整数除法指令

 

字节递增、递减指令将输入字节IN加一或者减一,并将运算结果送到OUT中,其操作数为八位无符号数,需要注意字节递增、递减运算不带符号。


640.jpg

字节递增递减指令

 

字递增、递减指令将输入字IN加一或者减一,并将运算结果送到OUT中,其操作数为十六位有符号整数,需要注意字递增、递减运算带符号。


640.jpg

字递增递减指令

 

双字递增、递减指令将输入双字IN加一或者减一,并将运算结果送到OUT中,其操作数为三十二位有符号双整数,需要注意双字递增、递减运算带符号。



双字递增递减指令

 

下面我们举例来说明整数运算指令在程序中的应用。在实际应用中,经常需要将现场采集的模拟量信号数据值进行转换,得到对应的工程量数值,假设得到的转换公式如下图所示,为了便于演示,将AIW0的地址更改为VW0,需要注意,为了保证精度,运算时应该先进行乘法运算再进行除法运算。


640.jpg


整数运算指令应用举例

 

我们来编写程序。双击电脑桌面上的STEP7-Micro/WIN SMART图标,打开编程软件,首先从指令树的位逻辑中选择一个常开触点,拖放到程序编辑器的程序段1中,输入地址SM0.0,在指令树整数计算选项中拖动整数相减指令到刚刚添加的常开触点后面,在IN1处输入地址VW0,在IN2处输入数值6400,在OUT处输入地址VW2。


640.jpg

添加整数相减指令

 

单击工具栏插入向下垂直线按钮,产生一个程序分支。因为乘法运算的结果可能超出十六位整数的范围,所以需要使用整数相乘得到双整数指令,插入该指令,在IN1处输入地址VW2,在IN2处输入数值100,在OUT处输入地址VD4。


640.jpg

添加整数相乘得到双整数指令

 

再次单击工具栏插入向下垂直线按钮,继续产生程序分支。因为VD4是双整数,所以需要双整数相除指令,插入该指令,在IN1处输入地址VD4,在IN2处输入数值25600,在OUT处输入地址VD8。这样,一个用整数运算指令编写的模拟量运算程序就编写完成了。


640.jpg

添加整数相除指令

 

编译并下载程序到S7-200 SMART PLC。单击菜单中的下载按钮,在打开的通信对话框中选择要访问的CPU并点击确定进行下载,下载完成后关闭对话框。在线查看程序运行情况。单击PLC菜单下的RUN按钮运行项目,单击调试菜单下的程序状态按钮在线观察程序的运行情况,在状态图表中输入地址VW0,格式为有符号整数,再输入VD8。单击状态图表的工具栏图表状态按钮,可以看到VW0和VD8的当前值。


640.jpg


在线查看程序运行情况

 

在VW0的新值列中输入20000,单击状态图表的工具栏写入按钮,则VW2变为相应的值,此时VD8自动计算为相应的数值。


640.jpg


自动计算相应的数值

 

本篇关于西门子S7-200 SMART整数运算指令的应用实例就讲解完了,下篇我会继续讲解S7-200 SMART的有关内容,欢迎关注!

相关文章
|
8月前
|
算法 Python
堆栈应用于通用进制转换和表达式转换
【7月更文挑战第5天】该文主要介绍两种转换方法:还提供了完整的Python代码实现,包括进制转换函数`transfAny`和中缀到后缀表达式转换的`infixToPostfix`函数。
53 2
|
9月前
|
C语言
20.(C语言)联合和枚举全
20.(C语言)联合和枚举全
20.(C语言)联合和枚举全
|
10月前
火山中文编程(PC) -- 变量与常量
火山中文编程(PC) -- 变量与常量
91 1
运算符(较为基础,基础篇)(一)
运算符(较为基础,基础篇)(一)
78 0
运算符(较为基础,基础篇)(二)
运算符(较为基础,基础篇)(二)
72 0
|
存储 C语言
内存系列函数+字符分类函数+字符转换函数(保姆级教程)
C语言学习第二十一弹——教你学会内存系列函数和字符分类转换函数简化部分例题
03ZSTI4-01-501 具有通用指令的累加器版本
03ZSTI4-01-501 具有通用指令的累加器版本
100 0
03ZSTI4-01-501 具有通用指令的累加器版本
|
C语言
C语言进阶之路:输出任意两个数的和
C语言进阶之路:输出任意两个数的和
338 0
C语言进阶之路:输出任意两个数的和
|
C语言 Perl
西门子S7-200 SMART编程实例,整数运算指令如何使用?
本节我们来学习西门子S7-200 SMART整数运算指令,并通过一个实例还讲解整数运算指令如何使用。S7-200 SMART的整数运算指令主要包括加、减、乘、除运算指令和递增、递减运算指令。
西门子S7-200 SMART编程实例,整数运算指令如何使用?