当前课程知识点:电气控制技术与PLC >  第6章 功能指令的应用 >  6.5 算术运算指令及其应用 >  算术运算指令及其应用

返回《电气控制技术与PLC》慕课在线视频课程列表

算术运算指令及其应用在线视频

下一节:逻辑运算指令及其应用

返回《电气控制技术与PLC》慕课在线视频列表

算术运算指令及其应用课程教案、知识点、字幕

大家好

之前课程我们学习了什么是功能指令

今天我们来学习

功能指令中的算术运算指令

算术运算指令

在实际应用比较广泛

如模拟量转换计算

脉冲长度计算等

算术运算指令

主要包括四则运算指令

和递增递减指令

根据不同数据类型

每个指令又分为

对整数

双整数

实数的运算

首先我们来了解一下

四则运算指令

四则运算指令

主要包括加法指令

减法指令

乘法指令

除法指令

其功能

分别为

将IN1和IN2的数据相加

分别为将IN1和IN2 的数据相加

将IN1和IN2的数据相加

相减 相乘 相除后

送到OUT所指定的地址单元

我们以加法指令ADD为例进行介绍

加法指令包括整数加法指令

双整数加法指令

实数加法指令

其指令格式如右图所示

LAD表示指令的梯形图格式

我们可以看到

指令输入端有EN IN1和IN2

输出端有ENO和OUT

STL表示指令的语句表形式

表示为数据类型

空格 IN1 逗号 OUT

其功能为

当EN=1时

将两个输入端

IN1和 IN2指定的数据相加

结果送到输出端

OUT所指定的地址单元

(OUT)所指定的地址单元

ADD I表示将两个16位整数相加

产生一个16位的和

ADD D表示将两个32位整数相加

产生一个32位的和

ADD R表示将两个32位实数相加

产生一个32位实数的和

其中IN1 IN2和 OUT的操作数

可以采用表格中最后一列的数据

加法指令在使用时要注意

1 加法运算指令将

将影响特殊存储器的零标志位

SM1.0

溢出标志位

SM1.1和负数标志位SM1.2

2 执行加法运算时

源操作数和目标操作数的数值

都不能超过其运算范围

整数加法的运算范围为

-32 768~32 767

双整数的运算范围为

-2 147 483 648~2 147 483 647

若运算结果超出允许的范围

则溢出标志位SM1.1置1

下面我们来看右图所示程序

第1段程序

I0.0接加法指令的EN端

输出ENO端接Q0.0

当I0.0为1时

ADD I开始执行

将IN1和IN2的数据

VW0和VW2相加后

送到OUT所指定的地址单元VW6中

并且Q0.0为1

第2段程序

若运算结果为0时

SM1.0为1则后面Q0.1为1

第3段程序

若运算结果溢出时

SM1.1为1则后面Q0.2为1

如图所示

如果VW0数据为-2

VW2数据为+20

则加法指令执行完之后

VW6的数据为+18

且Q0.0为1

执行结果不为0

所以Q0.1为0

由于整数加法的范围为

-32 768~32 767

所以没有溢出

Q0.2为0

我们可以通过

状态图表监测到各变量的值

如图所示

如果令VW0=32 000

VW2=1 000

则VW0+VW2=33 000

但是由于整数加法的范围为

-32 768~32 767

运算结果值超过数值范围

则加法指令执行完之后

VW6的数据为-32536

且Q0.0为0

代表未能正常输出

运算过程存在溢出

溢出标志位SM1.1为1

所以Q0.2为1

我们可以通过状态图表监测到各变量的值

减法指令SUB

包括整数减法指令

双整数减法指令

实数减法指令

其指令格式如右图所示

其LAD形式

STL形式

操作数和加法指令类似

功能为

当EN=1时

将两个输入端IN1和IN2

指定的数据相减

结果送到输出端OUT所指定的地址单元

减法指令使用时的注意事项和加法指令相似

大家使用时留意即可

右图所示梯形图

当I0.0为1时

执行SUB指令

将IN1的数据8和IN2的数据17相减

并将结果送到VD10

执行完之后结果为-9

所以负数标志位SM1.2为1

则Q0.1为1

乘法指令MUL

包括整数乘法指令

双整数乘法指令

实数乘法指令

产生双整数的整数乘法指令

其指令格式如右图所示

其LAD形式STL形式

操作数和加法指令类似

功能为

当EN=1时

将两个输入端IN1和IN2

指定的数据相乘

结果送到输出端

OUT所指定的地址单元

乘法指令使用时要注意

1产生双整数的整数乘法指令

MUL的源操作数

和目标操作数的数据类型不同

它是两个16位整数相乘

产生一个32位的结果

2乘法指令将影响特殊存储器

SM1.0

SM1.1

SM1.2

若在乘法运算中溢出标志位SM1.1为1

则运算结果不写到输出

且其他状态位均清零

3 整数数据作乘2运算

其二进制数据左移1位

作乘4运算

左移2位

作乘8运算

左移3位

右图所示梯形图

当I0.0为1时

先执行ADD指令

将IN1的数据+40

和IN2的数据+50相加

并将结果送到VW10

则VW10为+90

之后执行MUL指令

将VW10的数据+90

和IN2的数据5相乘

并将结果送到VD20

所以VD20数据为450

当执行第2段程序中的比较指令时

VD20等于450

所以Q0.1输出为1

除法指令DIV

包括整数除法指令

双整数除法指令

实数除法指令

带余数的整数除法指令

其指令格式如右图所示

其LAD形式

STL形式

操作数和乘法指令类似

功能为当EN=1时

将两个输入端IN1和IN2指定的数据相除

结果送到输出端OUT所指定的地址单元

除法指令使用时的注意事项

和乘法指令相似

只需要将乘法换成除法即可

右图所示梯形图

当I0.0为1时

执行DIV指令

将IN1的数据25

和IN2的数据3相除

并将结果送到VW10

同时将高位的余数传送到AC0

将低位的商传送到AC1

下面

我们来看一下递增递减指令

递增递减指令

和四则运算指令类似

包括字节递增指令

字递增指令

双字递增指令

字节递减指令

字递减指令

双字递减指令

助记符分别为INC和DEC

功能为EN=1时

将输入端IN的数据加1或者减1后

结果送到输出端OUT所指定的地址单元

递增 递减指令使用时要注意以下事项

1 字节递增

递减指令是无符号循环数

最大值255加1结果为0

即执行加1指令后

数据分别为0→1→2…→254→255→0

最小值0减1结果为255

即执行减1指令后

数据分别为0→255→254…→1→0

2 字递增

递减指令是有符号循环数

+32767加1结果为-32768

-32768减1结果为+32767

3 双字递增

递减指令是有符号循环数

2147483647加1结果为-2147483648

-2147483648减1结果为2147483647

4 递增递减指令的运算结果

影响特殊存储器零标志位SM1.0

溢出标志位SM1.1

负数标志位SM1.2

右图所示梯形图

其中包含递增指令INC

递减指令DEC和传送指令MOV

VW10中写入32767

此时按下I0.2

就执行递增指令

即32 767加1

VW10中的数值就会变为-32 768

VW10中写入-32 768

此时按下I0.3

执行递减指令

即-32 768减1

则VW10中的数值就会变为32 767

最后我们来看一个实例分析

控制要求为

用乘除法指令实现8盏流水灯的移位点亮循环

有一组灯共 8 盏

接于 Q1.0~Q1.7

要求

当I0.2=1时

灯每隔1s正序单个移位点亮

接着

灯每隔1s反序单个移位点亮

并不断循环

我们可以用乘法指令实现正序状态的切换

灯依次向左亮

输出QB0每次向左移动一位

用除法指令实现反序状态的切换

灯依次向右亮

输出QB0每次向右移动一位

程序设计如图所示

共有4段程序

程序段1中

当I0.2=1时

将启动标志M0.0置为1

同时将1送入QW0中

将Q1.0点亮

程序段2中

当I0.3=1时

将启动标志M0.0复位

同时对Q1.0~Q1.7点亮

程序段3

则是用定时器T37和T38

构成正序8s和反序8s的震荡电路

程序段4

用乘法指令MUL-I实现1*2=2

2*2=4

4*2=8

形成正序移位

用除法指令DIV-I实现1*2=2

2*2=4

4*2=8

形成反序移位

这样就可以乘除法指令

实现8盏流水灯的移位点亮循环

今天我们主要学习了四则运算指令

和递增递减指令

大家在后续使用中

要特别注意每种指令的数据类型

数据长度

以及执行结果

对特殊标志位寄存器的影响

本讲到此结束

谢谢大家

期待下次课程再见

电气控制技术与PLC课程列表:

第1章 常用低压电器

-1.1 低压电器简介

--低压电器简介

-1.2 低压开关电器

--低压开关电器

-1.3 主令电器

--主令电器

-1.4 接触器

--接触器

-1.5 熔断器

--熔断器

-1.6 继电器(一)热继电器和速度继电器

--继电器(一)热继电器和速度继电器

-1.7 继电器(二)时间继电器

--继电器(二)时间继电器

-小测验

第2章 继电器-接触器控制的基本控制线路

-2.1 三相异步电动机的直接起动控制

--三相异步电动机的直接起动控制

-2.2 三相异步电动机点动控制和长动控制

--三相异步电动机点动控制和长动控制

-2.3 三相异步电动机降压起动控制(一)

--三相异步电动机降压起动控制(一)

-2.4 三相异步电动机降压起动控制(二 )

--三相异步电动机降压起动控制(二 )

-2.5 三相异步电动机的多点控制和顺序控制

--三相异步电动机的多点控制和顺序控制

-2.6 三相异步电动机的调速控制

--三相异步电动机的调速控制

-2.7 三相异步电动机的制动控制(一)

--三相异步电动机的制动控制(一)

-2.8 三相异步电动机的制动控制(二)

--三相异步电动机的制动控制(二)

-2.9 三相异步电动机正反转控制(一)

--三相异步电动机正反转控制(一)

--三相异步电动机正反转控制(一)

-2.10 三相异步电动机正反转控制(二)

--三相异步电动机正反转控制(二)

-2.11 电气控制线路的设计方法

--电气控制线路的设计方法

-小测验

第3章 电气控制线路的绘制与设计

-3.1 电气控制电路图的绘制(一)

--电气控制电路图的绘制 (一)

-3.2 电气控制电路图的绘制(二)

--电气控制电路图的绘制(二)

-3.3 电气控制电路图的绘制(三)

--电气控制电路图的绘制(三)

-3.4 电气控制电路的设计方法 (一)

--电气控制电路的设计方法 (一)

-3.5 电气控制电路的设计方法 (二)

--电气控制电路的设计方法(二)

-小测验

第4章 可编程控制器基础

-4.1 认识PLC

--认识PLC

-4.2 PLC组成及工作原理

--PLC组成及工作原理

-4.3 S7-200 SMART PLC硬件介绍(上)

--S7-200 SMART PLC硬件介绍(上)

-4.4 S7-200 SMART PLC硬件介绍(下)

--S7-200 SMART PLC硬件介绍(下)

-4.5 STEP 7-Micro/WIN SMART编程软件(上)

--STEP 7-MicroWIN SMART编程软件(上)

-4.6 STEP 7-Micro/WIN SMART编程软件(下)

--STEP 7-MicroWIN SMART编程软件(下)

-小测验

第5章 S7-200 SMART PLC编程基础

-5.1 PLC编程语言与程序结构

--PLC编程语言与程序结构

-5.2 指令基础

--指令基础

-5.3 位逻辑指令

--位逻辑指令

-5.4 PLC编程规则与技巧

--PLC编程规则与技巧

-5.5 定时器指令的工作原理

--定时器指令的工作原理

-5.6 定时器指令应用举例

--定时器指令应用举例

-5.7 计数器指令的工作原理

--计数器指令的工作原理

-5.8 计数器指令的应用

--计数器指令应用

-小测验

第6章 功能指令的应用

-6.1 功能指令概述

--功能指令概述

-6.2 数据处理指令(一):比较指令与数据传送指令

--比较指令与数据传送指令

-6.3 数据处理指令(二):数据转换指令

--数据转换指令

-6.4 数据处理指令(三):表格指令和时钟指令

--表格指令和时钟指令

-6.5 算术运算指令及其应用

--算术运算指令及其应用

-6.6 逻辑运算指令及其应用

--逻辑运算指令及其应用

-6.7 程序控制指令:跳转指令、循环指令

--程序控制指令:跳转指令、循环指令

-6.8 子程序的编写与调用

--子程序的编写与调用

-6.9 中断程序与中断指令

--中断程序与中断指令

-6.10 高速计数器指令与高速脉冲输出指令(一)

--高速计数器指令 (一)

-6.11 高速计数器指令与高速脉冲输出指令(二)

--高速计数器指令 (二)

-小测验(一)

-小测验(二)

-小测验(三)

第7章 开关量控制系统梯形图程序设计方法

-7.1 梯形图的经验设计法

--梯形图的经验设计法

-7.2 顺序控制设计法与顺序功能图概述

--顺序控制设计法与顺序功能图概述

-7.3 顺序功能图的基本结构和绘制方法

--顺序功能图的基本结构和绘制方法

-7.4 使用SCR指令的顺序控制梯形图设计方法

--使用SCR指令的顺序控制梯形图设计方法

-7.5 使用起保停电路的顺序控制梯形图设计方法

--使用起保停电路的顺序控制梯形图设计方法

-7.6 使用置位复位指令的顺序控制梯形图设计法

--使用置位复位指令的顺序控制梯形图设计法

-小测验

第8章 模拟量控制程序设计

-8.1模拟量控制概述

--模拟量控制概述

-8.2模拟量输入输出配置及数值的规范化

--模拟量输入输出配置及数值的规范化

-8.3PID控制指令

--PID控制指令

-8.4水箱水位PID控制程序举例

--水箱水位PID控制程序举例

-小测验

算术运算指令及其应用笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。