请教STEP7长整数加法ADD
7.3.1 加减乘除运算指令_零起步轻松学西门子S7-200 PLC技术_[共6页]
![7.3.1 加减乘除运算指令_零起步轻松学西门子S7-200 PLC技术_[共6页]](https://img.taocdn.com/s3/m/d03184de581b6bd97e19eab6.png)
7.3.1 加减乘除运算指令
加减乘除运算指令包括加法、减法、乘法、除法、加 1 和减 1 指令。
1.加法指令
加法指令的功能是将两个有符号的数相加后输出,它可分为整数加法指令、双整数加 法指令和实数加法指令。
(1)指令说明 加法指令说明如下:
加法指令
梯形图
整数加法 指令
148
电工技术系列
功能说明
操作数
IN1+IN2 = OUT
第 7 章 功能指令及应用
加法指令
双整数加法 指令
实数加法 指令
梯形图
续表
功能说明
操作数
IN1、IN2
OUT
将 IN1 端指定单元
的双整数与 IN2 端指 ID、QD、LD、AC、
结果存入 OUT 端指定 HC、*VD、*LD、*AC、
的单元中,即 IN1+IN2 = OUT
常数
ID、QD、VD、 MD、SMD、SD、
将 IN1 端指定单元
LD、AC、*VD、
的实数与 IN2 端指定 ID、QD、VD、MD、 *LD、*AC
单元的实数相加,结果 SMD、SD、LD、AC、
存入 OUT 端指定的单 *VD、*LD、*AC、
元中,即
常数
IN1+IN2 = OUT
(2)指令使用举例 加法指令使用如图 7-2 所示。当 I0.0 触点闭合时,P 触点接通一个扫描周期,ADD_I 和 ADD_DI 指令同时执行。ADD_I 指令将 VW10 单元中的整数(16 位)与+200 相加,结 果送入 VW30 单元中;ADD_DI 指令将 MD0、MD10 单元中的双整数(32 位)相加,结果 送入 MD20 单元中。当 I0.1 触点闭合时,ADD_R 指令执行,将 AC0、AC1 单元中的实数 (32 位)相加,结果保存在 AC1 单元中。
STEP7-功能块全中文说明资料

18
35. S_ODT接通延时 S5定时器 36. S_ODTS保持接通延时 S5定时器 37. S_OFFDT断开延时 S5定时器
19
38. ---( SP ) 脉冲定时器线圈
---( SP )
39. ---( SE ) 扩展脉冲定时器线圈
---( SE ) 20
12
? 调用多重背景 ? 调用来自库的块 ? 使用 MCR 功能的重要注意事项 ? ---(MCR<) 主控制继电器打开 ? ---(MCR>) 主控制继电器关闭 ? ---(MCRA) 主控制继电器激活 ? ---(MCRD) 主控制继电器取消激活 ? RET 返回
移位和循环移位指令
? SHR_I 整数右移 ? SHR_DI 长整数右移 ? SHL_W 左移字 ? SHR_W 右移字 ? SHL_DW 双字左移 ? SHR_DW 右移双字 35. SHR_I 整数右移
两个 32 位 IEEE 浮点数
使用浮点运算指令,可对 一个 32 位 IEEE 浮点数 执行下列操作: ? 求绝对值 (ABS) ? 求平方 (SQR) 和平方根 (SQRT) ? 求自然对数 (LN) ? 求指数值 (EXP) 以 e (= 2,71828) 为底
8
? 求下列 32 位 IEEE 浮点数表示的角度的三角函数 - 正弦 (SIN) 和反正弦 (ASIN) - 余弦 (COS) 和反余弦 (ACOS) - 正切 (TAN) 和反正切 (ATAN)
11
32. ATAN 得到反正切值
33. MOVE分配值
34. 程序控制指令概述 说明 可使用下列程序控制指令: ? ---(CALL) 调用来自线圈的 FC SFC( 不带参数 ) ? CALL_FB 调用来自框的 FB ? CALL_FC 调用来自框的 FC ? CALL_SFB 调用来自框的系统 FB ? CALL_SFC 调用来自框的系统 FC
西门子S7-200-运算指令

(2)功能
梯形图:使能输入EN=1时,被减数 IN1减去减数IN2,其结果传送到OUT中, 即: IN1−IN2=OUT
指令表:要先将一个减数送到OUT中, 然后用OUT中的数据减去IN2中的数据, 并将其结果传送到OUT中,即:
MOVW IN1,OUT
−I IN2,OUT
实现OUT−IN2=OUT
MUL_I MUL_DI MUL_R
整数乘法 双整数乘法 实数乘法
(4)除法:DIV
DIV_I DIV_DI DIV_R
整数减法 双整数减法 实数减法
另外: +I 16位整数相加指令 −I 16位整数相减指令 *I 16位整数相乘指令 / I 16位整数除法指令
+D 32位整数相加指令
−D 32位整数相减指令
续表
4.2.2 扩展的浮点数算术运 算指令
扩展的浮点数算术运算指令如表4-21 所示。
表4-21 扩展的浮点数算术运算指令
续表
续表
4.2.3 加、减、乘、除运算
1.加法运算
(1)梯形图符号及语句表格式
其中:ADD—加法运算符; I(INT)/DI(DINT)/R(REAL)——数据 类型符(整/双整/实数); EN(Enable In)——运算允许信号(使 能输入)。
MOVW IN1,OUT
/I IN2,OUT
实现OUT/ IN2 =OUT
(3)说明
① 应用除法指令应该注意的数据类型。 DIV_I(整数除法):将两个单字长 (16位)符号整数(IN1和IN2)相除,结 果为16位整数。
DIV_DI(双整数除法):将两个双字 长(32位)符号整数(IN1和IN2)相除, 结果为32位整数。
STEP7使用方法

一、双击桌面STEP7图标打开软件管理器打开后从资源管理器文件下拉菜单中选择新建弹出新建项目菜单,在新建项目菜单中给新建项目命名,并选择存储路径1、新项目命名点击浏览选择新项目的存储路径后进入项目菜单右键单击项目名称(现文件名为11)添加SIMATIC 300站点,点击站点名称,从右侧工具栏中双击硬件,从弹出的菜单中进行硬件配置设置。
打开如图所示二、项目硬件配置首先从打开的硬件配置菜单中,在右侧工具栏中的SIMATIC300中添加硬件支持的底座(RACK-300)路径:SIMATIC300//RACK-300//RACK添加底座后,如图根据PLC实际硬件配置,添加电源模块(PS307 5A)路径:SIMATIC300//PS-300//PS307 5A 添加到底座第一栏中根据CPU型号添加CPU模块到底座中路径:SIMATIC 300//CPU-300//CPU 315-2DP//6ES7 315-2AG10-0AB0//V2.6弹出的属性菜单中选择未联网然后添加高速计数模块路径:SIMATIC 300//FM-300//COUNTER MODULES//FM350-1(型号:6ES7 350-1AH03-0AE0)添加完成后,根据现场PLC DI/DO数量添加相应的模块DI模块添加路径SIMATIC 300//SM-300//DI-300根据实际DI模块信息及数量,添加相应的模块到底座中,实际模块信息(SM321 DI32*DC24:6ES7 321-1BL00-0AA0)DO添加时路径:SIMATIC 300//SM-300//DO-300根据实际DO模块信息及数量,添加相应的DO模块到底座中,实际模块信息为(SM322 DO32*DC24V/0.5A:6ES7 322-1BL00-0AA0)AI添加路径:SIMATIC 300//AI-300//SM331 AI8*12bit:6ES7 331-7KF02-0AB0AO添加路径:SIMATIC 300//SM-300//SM332 AO4*12bit:6ES7 332-5HD01-0AB0所有模块添加完成后,点击软件中编译及保存按钮,软件将对所编译的硬件配置自动编译并保存设置,弹出的对话框直接点击确定即可三、利用程序进行软件监视,并进行故障判断点击项目菜单中11//SIMATIC 300//CPU315-2DP//S7 程序//块,右侧工具栏中将出现程序块列表点击工具栏中详细列表即可显示所有程序块的详细信息点击后如图绞车运行过程中出现故障时(没有软件安全回路,有故障报警等情况),可以从安全回路程序块中监视,并判断故障原因,双击打开FC213 (安全回路轻故障)点击工具栏中监视按钮(眼镜图标)进行程序监视,监视状态时绿色的点表示正常状态,灰色断开的点表示系统中有故障或条件不满足的点比如现在出现的是高压合闸故障记忆时,点掉眼镜监视按钮,在程序中右键点击高压合闸故障记忆节点,从右侧弹出菜单中选择跳转到应用位置从弹出的跳转到位置菜单中选择//= 的那一行,表示中间继电器输出的点,//A //AN等点表示在其他不同的地方调用的点跳转到需要的块后,重新点监视按钮进行监视,判断故障当触发此故障的条件比较多时,可以一个一个条件判断,比如上图中1#合闸检测、2#合闸检测等,可进一步进行跳转查询故障的最终触发点。
S7-200系列PLC的运算和数学指令

这样可节省内存。
执行结果对特殊标志位的影响:
1.2 数学函数指令
(1)求平方根指令
指令
说明
SQRT
求平方根指令把32bit的实数取平方根后,将结果送到
EN
32bit的目标(OUT)中去,即 IN OUT
IN OUT
IN1-IN2=OUT 在语句表中,IN2的操作数与OUT同,且
IN1+IN2=IN2 IN2-IN1=IN2 在梯形图中,可以设定OUT和IN2指向同一内存单元,这 样可 节省内存。 执行结果对特殊标志位的影响: SM1.0(0),SM1.1(溢出),SM1.2(负)
(4)整数乘/除运算指令
指令
说明
MUL
整数乘法指令把两个16bit整数相乘后,将结果送到32bit
EN
的目标(OUT)中去。整数除法指令把两个16bit整数相
IN1
除后,将结果送到32bit的目标(OUT)中去。计算结果
IN2 OUT 的低16位为商,高16位为余数。
……
操作数:
MUL IN1, IN2
DIV EN IN1 IN2 OUT …… DIV IN1,IN2
双字的加1/减1指令把32bit源双字(IN)加1/减1后,将 结果送到32bit的目标(OUT)中去。
操作数:
IN:VD,ID,QD,MD,SMD,AC,HC,*VD ,
*AC,SC,常数。 OUT:VD,ID,QD,MD,SMD,AC,*VD,
*AC,SD。 在梯形图中, IN+1=OUT
IN-1=OUT 在语句表中,IN的操作数与OUT同,且
可编程控制器
STEP7-功能块全中文说明全解

parator== IN1等于IN2<> IN1不等于IN2> IN1大于IN2< IN1小于IN2>= IN1大于或等于IN2<= IN1小于或等于IN22.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP ?I(INT)整数比较CMP ?D (DINT)比较双精度整数CMP ?R (REAL)比较实数3.转换指令概述BCD_I BCD码转换为整数I_BCD 整型转换为BCD码BCD_DI BCD码转换为双精度整数I_DINT 整型转换为长整型DI_BCD 长整型转换为BCD码DI_REAL 长整型转换为浮点型4 计数器指令S_CUD 双向计数器S_CD 降值计数器S_CU 升值计数器---( SC ) 设置计数器线圈•---( CU ) 升值计数器线圈•---( CD ) 降值计数器线圈5.S_CUD 双向计数器`6. S_CU 升值计数器7. S_CD 降值计数器8. ---( SC ) 设置计数器值9. ---( CU ) 升值计数器线圈10. ---( CD ) 降值计数器线圈11. ---(OPN)打开数据块:DB或DI如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。
12. ---(JMP)--- 无条件跳转13. ---(JMPN) 若“否”则跳转14. LABEL标号【整型数学运算指令】整型数学运算指令概述说明使用整数运算,您可以对两个整数(16和32位)执行以下运算:•ADD_I 加整数•SUB_I 减整型•MUL_I 乘整型•DIV_I 除整型•ADD_DI 加双精度整数•SUB_DI 减长整型•MUL_DI 乘长整型•DIV_DI 除长整型•MOD_DI 返回分数长整型15. ADD_I 整数加16. SUB_I 整数减17. MUL_I 整数乘18. DIV_I 整数除19. MOD_DI 返回长整数余数20. 浮点运算指令概述IEEE32位浮点数属于REAL数据类型。
step7基本讲解要点
)语言如下:)语言如下:的乘积。
当定时器运行时,定时值不断减1,直至减到0,减到0时间到。
定时时间到后会引起定时器触点的动作。
定时器的第0到第11位存放BCD码格式的定时值,三位BCD ~999。
第12,13位存放二进制格式的时基。
从下表中可以看出:时基小定时分辨率高,但定时时间范围窄;时基大分辨率低,但定时范围宽。
时基二进制时基分辨率定时范围10 s 00 0.01 s 10ms至9s_990ms100ms 0l 0.1 s 100ms至1m_39s_900ms教案数值存储在字存储器中。
在CPU的存储器中留出了计数器区域,该区域用于存储计数器的计数值。
每个计数器为2个字节(Byte),称为计数字。
在中,计数器区为512个字节(Byte),因此最多允许使用256计数器的第0到第11位存放BCD码格式的计数值,三位BCD ~999。
第12~15位没有用途。
中的计数器用于对RLO正跳沿计数。
S7中有三种计数器,是:加计数器、减计数器和可逆计数器。
只要计数器的计数值不是“数器的输出就为“1”。
当计数器启动时,累加器1低字的内容被当作计数初值装入计数字中。
这一过程是由操作系统控制自动完成的,用户只需给累加器l装入不同的数状态字状态字用于表示CPU执行指令时所具有的状态。
一些指令是否执行或以何方式执行可能取决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字逻辑指令中访问并检测他们。
状态字的结构如下:……………9 8 7 6 5 4 3 2 1 0BR CC1 CC0 OS OV OR STA RLO FC。
STEP7的基本数据类型及其用法汇总
STEP7的基本数据类型及其用法汇总STEP7有3种数据类型:1. 基本数据类型2. 由基本数据类型组合而成的复合数据类型;3. 用来传送FB块和FC块参数的参数数据类型本文首先介绍一下基本数据类型。
STEP7的基本数据类型总共有7种,分别为:位(bit)、字节(Byte)、字(Word)、双字(Double Word)、整型数(INT)、双整型数(DINT)以及实数(REAL)。
1. 位(bit)取值:1、0寻址方式:地址标识符+字节地址+位地址。
图1 基本数据类型:位(bit)2. 字节(Byte)8位二进制数组成一个字节。
其中,第0位为最低位(LSB),第7位为最高位(MSB)。
寻址方式:地址标识符+B+字节地址,其中,'B'即代表字节。
图2 基本数据类型:字节(Byte)3. 字(Word)相邻的两个字节组成一个字,16位。
字用来表示无符号数,范围:[0000,FFFF]16进制,或[0,65535]10进制寻址方式:地址标识符+W+首字节地址,其中,'W'代表字。
图3 基本数据类型:字(Word)4. 双字(Double Word)相邻的两个字组成一个双字,32位。
双字也用来表示无符号,范围:[00000000,FFFFFFFF]16进制寻址方式:地址标识符+D+首字节地址,其中,'D'代表双字。
图4 基本数据类型:双字(Double Word)5. 整型数(INT)整数是有符号数,占16位。
最高位为符号位,0:正数;1:负数。
取值范围为:[-32768,32767]。
6. 双整型数(DINT)双整数也是有符号数,占32位。
最高位为符号位,0:正数;1:负数。
取值范围为:[-2147483648,2147483647]。
7. 浮点数(REAL)标准的浮点数格式如图5所示,占32位。
最高位为符号位,0:正数;1:负数。
图5 基本数据类型:浮点数(REAL)浮点数的优点是用32位的空间可以表示非常大和非常小的数。
西门子S7-200-运算指令
算术运算指令主要包括加法、减法、 乘法和除法四类。
(1)加法: ADD
ADD_I ADD_DI ADD_R
整数加法 双整数加法 实数加法
(2)减法: SUB
SUB_I SUB_DI SUB_R
整数减法 双整数减法 实数减法
(3)乘法:MUL
MUL_I MUL_DI MUL_R
整数乘法 双整数乘法 实数乘法
(2)功能
梯形图:使能输入EN=1时,被乘数 IN1与乘数IN2相乘,其结果传送到OUT中。 即:
IN1×IN2=OUT
语句表:要先将被乘数送到OUT中, 然后把OUT中的数据和IN2中的数据相乘, 并将其结果传送到OUT中,即:
MOVW IN1,OUT
*I IN2,OUT
实现IN2×OUT =OUT
(3)说明
① 应用减法指令应该注意的数据类型。 ② 操作数范围
表4-23 减法指令操作数范围
(4)例题
3.乘法运算
(1)梯形图符号及语句表格式
MUL——乘法运算符 I/DI/R——数据类型符(整数/双整数/ 实数)
EN——使能输入 IN1——被乘数 IN2——乘数 OUT——积 ENO——使能输出
其中:ADD—加法运算符; I(INT)/DI(DINT)/R(REAL)——数据 类型符(整/双整/实数); EN(Enable In)——运算允许信号(使 能输入)。
IN1——被加数; IN2——加数; OUT——和; ENO——运算状态位(使能输出)。
(2)功能
梯形图:使能输入EN=1时,被加数 IN1与加数IN2相加,其结果传送到OUT中, 即:IN1+IN2=OUT。
(3)说明
① 应用乘法指令应该注意的数据类型。 MUL_I(整数乘法):将两个单字长 (16位)符号整数(IN1和IN2)相乘,结 果为16位整数。
PLC的加、减、乘、除指令有什么用?其实功能十分强大!
PLC的加、减、乘、除指令有什么用?其实功能十分强大!今天我们要谈一谈西门子S7-1200PLC中常用的四则运算指令!什么是四则运算指令呢?四则运算指令包括加法指令ADD、减法指令SUB、乘法指令MUL、除法指令DIV四种。
一、加法指令ADD执行加法指令ADD将输入IN1的值与输入IN2的值相加,并将加得结果存储在OUT设定的寄存器中。
EN:使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO:使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1/IN2:要相加的数值,可以是寄存器的地址或常数,单击ADD指令下的星标可以扩展输入的数目。
OUT:加法计算结果输出,IN1+IN2=OUT,OUT端一般填写寄存器地址。
加法指令小提示:可以从指令框的“>”下拉列表中选择该指令的数据类型,当地址长度与数据类型不匹配时,会将输入数值隐式转换为指定的数据类型,编译不会报错,但运行过程中可能会出错。
二、减法指令SUB执行减法指令SUB,将由被减数IN1的值减去减数IN2的值,并将结果存入OUT设定的寄存器地址中。
EN:使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO:使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT 指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1:被减数,可以是寄存器地址或常数。
IN2:减数,可以是寄存器地址或常数。
OUT:减法计算结果输出,IN1-IN2=OUT,OUT端一般填写寄存器地址。
三、乘法指令MUL乘法指令MUL将输入 IN1 的值与输入 IN2 的值相乘,并将乘积保存在输出 OUT指定的寄存器中。
乘法指令功能框各端口的定义如下EN:使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO:使能输出端,指令正确执行期间ENO输出为1,IN1:乘数,可以是寄存器地址或常数。