↖戳上方蓝字 "PLC课程” 关注我们哦!

S7-200的数学运算指令有整数、双整数、实数数学运算指令。梯形图加/减运算指令采用指令盒格式,指令盒由指令类型,使能端 EN,操作数(1N1、IN2)输入端,运算结果输出OUT,逻辑结果输出端ENO(“1”正确或 “0”错误)等组成。

Ø XXX为运算律标识:ADD、SUB、MUL、DIV

Ø X为数据类型:I、DI、R

一、加/减运算

加/减运算指令是对符号数的加/减运算操作。包括整数加/减、双整数加/减运算和实数加/减运算。加/减运算6种指令的梯形图指令格式分别为:ADD_I、ADD_DI、ADD_R和SUB_I、SUB_DI、SUB_R。

(1) 整数加/减运算ADD_I/SUB_I(ADD Integer / Subtract Integer)

Ø 在梯形图编程方式下当使能EN输入有效时,将两个单字长(16位)符号整数(IN1和IN2)相加/减,然后将运算结果送OUT指定的存储器单元输出。运算法则为:IN1±IN2=OUT。

Ø 语句表运算指令为:+I  IN1, OUT和-I  IN1, OUT。运算法则为:OUT±IN1=OUT。

(2)双整数加/减运算ADD_DI/SUB_DI(ADD Double Integer / Subtract Double Integer)

Ø 在梯形图编程方式下当使能EN输入有效时,将两个双字长(32位)符号整数(IN1和IN2)相加/减,运算结果送OUT指定的存储器单元输出。运算法则为:IN1±IN2=OUT。

Ø 语句表运算指令为:+D  IN1, OUT和-D  IN1, OUT。运算法则为:OUT±IN1=OUT。

(3) 实数加/减运算ADD_R/SUB_R(ADD Real / Subtract Real)

Ø 在梯形图编程方式下当使能EN输入有效时,将两个(32位)实数(IN1和IN2)相加/减,运算结果送OUT指定的存储器单元输出。运算法则为:IN1±IN2=OUT。

Ø 语句表运算指令为:+R  IN1, OUT和-R  IN1, OUT。运算法则为:OUT±IN1=OUT。

算术运算指令影响特殊标志的算术状态位SMl.0~SMl.3,并建立指令盒能量流输出ENO。对于加/减运算所能影响的算术状态位(特殊标志位)有:SMl.0(零),SMl.1(溢出),SMl.2(负)。SM1.1 用来指示溢出错误和非法值。如果 SMl.1 置位,SMl.0 和 SMl.2 的状态无效,原始操作数不变。如果SMl.1不置位,SMl.0和SMl.2的状态反映算术运算的结果。ENO(能量流输出位)输入使能EN有效,运箅结果无错时,ENO=1,否则 ENO=0(出错或无效)。影响允许输出ENO正常工作的出错条件有:SM1.1=1(溢出),0006(间接寻址错误),SM4.3(运行时间)。

二、乘/除运算

乘/除运算是对符号数的乘法运算和除法运算,它包括:整数乘/除运算(MUL_I/DIV_I),双整数乘/除运算(MUL_DI/DIV_DI),整数乘/除双整数输出运算(MUL/DIV),实数乘/除运算(MUL_R/DIV_R)8种类型。

(1) 整数乘/除法指令MUL_I/DIV_I(Multiple Integer / Divide Integer)

Ø 在梯形图编程方式下当使能EN输入有效时,将两个单字长(16位)符号整数IN1和IN2相乘/除,产生一个单字长(16位)整数结果,从OUT(积/商)指定的存储器单元输出,在除运算律下,输出为商,不保留余数。运算法则为:IN1*IN2=OUT和IN1/IN2=OUT。

Ø 语句表运算指令为:*I  IN1, OUT和/I  IN1, OUT。运算法则为:OUT*IN1=OUT和OUT/IN1=OUT。

(2) 双整数乘/除法指令MUL_DI/DIV_DI(Multiple Double Integer/Divide Double Integer)

Ø 在梯形图编程方式下当使能EN输入有效时,将两个双字长(32位)符号整数IN1和IN2相乘/除,产生一个双字长(32位)整数结果,从OUT(积/商)指定的存储器单元输出,在除运算律下,输出为商,不保留余数。运算法则为:IN1*IN2=OUT和IN1/IN2=OUT。

Ø 语句表运算指令为:*D  IN1, OUT和/D  IN1, OUT。运算法则为:OUT*IN1=OUT和OUT/IN1=OUT。

(3) 整数乘/除双整数输出指令MUL/DIV

Ø 在梯形图编程方式下,当使能EN输入有效时,将两个单字长(16位)符号整数IN1和IN2相乘/除,产生一个双字长(32位)整数结果,从OUT(积/商)指定的存储器单元输出,整数除法产生的32位结果中低16位是商,高16位是余数。运算法则为:IN1*IN2=OUT和IN1/IN2=OUT。

Ø 语句表运算指令为:MUL  IN1, OUT和DIV  IN1, OUT。运算法则为:OUT*IN1=OUT和OUT/IN1=OUT。

(4) 实数乘/除法指令(MUL_R/DIV_R)。

Ø 在梯形图编程方式下,当使能输入EN有效时,将两个(32位)符号实数IN1和IN2相乘/除,产生一个(32位)实数结果,从OUT(积/商)指定的存储器单元输出。

Ø 语句表运算指令为:*R  IN1, OUT和/R  IN1, OUT。运算法则为:OUT*IN1=OUT和OUT/IN1=OUT。

乘/除运算指令执行的结果影响算术状态位(特殊标志位):SMl.0(零),SMl.1(溢出),SMl.2(负),SMl.3(被0除)。乘法运算过程中 SMl.1(溢出)被置位,就不写输出,并且所有其他的算术状态位置为0。(整数乘法产生双整数指令输出不会产生溢出)。如果除法运算过程中 SMl.3 置位(被0除),其他的算术状态位保留不变,原始输入操作数不变。SMl.3不被置位,所有有关的算术状态位都是算术操作的有效状态。乘/除运算指令执行的结果影响允许输出ENO正常工作的出错条件是:SMl.1(溢出),SM4.3(运行时间),0006(间接寻址错误)。

控制要求

本任务是要求使用PLC的算术运算和逻辑运算指令,设计一个数值运算PLC控制系统。

要求:启动时数码管显示0,LED条向上流转以前先设定流转圈数:每按一次S3,流转圈数加5,每按一次S4,流转圈数减3。数码管DS1、DS2应能显示设定的圈数,设定好流转圈数后。按下按钮S1,LED条开始向上流转,每流转一周,数码管读数自动减1,待数码管显示0时,LED条停止向上流转,按下按钮S2,则不管LED条向上流转了几周,立即停止,数码管显示0。

IO分配

接线图

实物图

源程序

拓展训练

通电后数码管显示0。按下学习板上按钮去的S1按钮,数码管显示从95开始进行倒计时,每过1秒显示的值自动减5,待显示的值减到0,则下一秒又从95开始倒计时,循环不断,直到按下S2按钮停止,数码管显示0。

如果觉得本文有用,欢迎推荐更多朋友关注我们

学习板基本操作

  • USB转串口线驱动的安装
  • 学习板与三菱编程软件通信设置
  • 学习板与西门子编程软件通信设置

你的每个分享点赞在看我都喜欢!

算术运算导致溢出。_【S7200指令教程】数据运算指令ADD SUB MUL DIV相关推荐

  1. c#oracle数组超出,c# – ODP.net填充数据集时的Oracle Decimal Number精度问题.异常:算术运算导致溢出...

    我在c#.net 2(Visual Studio 2005 SP1)中工作,尝试使用来自Oracle10g数据库的select * from table的结果填充数据集. .net框架,IDE和数据库 ...

  2. C#执行Sql 时,出现“算术运算导致溢出”问题,如何解决?

    C#执行Sql 时,出现"算术运算导致溢出"问题,如何解决? 参考文章: (1)C#执行Sql 时,出现"算术运算导致溢出"问题,如何解决? (2)https: ...

  3. 【BUG】System.OverflowException:“算术运算导致溢出。“

    文章目录 System.OverflowException:"算术运算导致溢出." 一 问题描述 二 原因及解决办法 System.OverflowException:" ...

  4. rose顺序图转换为协作图_【S7200指令教程】顺序控制指令SCR SCRT SCRE

    戳上方蓝字 "PLC课程" 关注我们哦! 一指令解析  1.顺序控制继电器S: 顺序控制继电器(S)是西门子S7-200系列PLC内部软继电器的一种,它和输入继电器(I)和输出继电 ...

  5. 算术运算导致溢出_CPU的控制器与运算器

    计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...

  6. 导致溢出_由整数类型溢出导致的英雄联盟峡谷惨案

    最近,英雄联盟迎来了 S11 赛季的版本大更新.作为一名从 S2 一路走过来的老玩家,我自然也是非常的关注.除了发生了巨变的装备系统之外,各种各样的 bug,也是在玩家之间炽手可热的话题.这其中,较为 ...

  7. 导致溢出_邯郸一司机,溢出的“5毫克”导致A2被降级,老司机自吞“苦酒”

    酒后驾车宛如 "定时炸弹" 但就是有人偏要以身试法 下面这位司机 就为自己的行为付出了代价 案情回顾 1月6日晚上8时许,当民警巡查至大名府路与贵乡街路段处时,发现自东向西驶来的一 ...

  8. 运行窗体跳转时提示未处理System.OverflowException HResult=-2146233066 Message=算术运算导致溢出。 Source=DevExpress.U

    未处理System.OverflowException   HResult=-2146233066   Message=未处理System.OverflowException.   Source=De ...

  9. 【Android 逆向】x86 汇编 ( call 子函数调用指令 | jmp 跳转指令 | lea 加载指令 | mov 数据传送指令 )

    文章目录 一.call 子函数调用指令 二.jmp 跳转指令 三.lea 加载指令 四.mov 数据传送指令 总结 一.call 子函数调用指令 call 指令是 子函数调用指令 , 调用的指令的下一 ...

最新文章

  1. 计算机相关的考试题目,计算机考试相关题目汇总.doc
  2. 介绍一个团队协同管理工具:Leangoo
  3. 互联网汽车迎新成员 Alibaba YunOS Auto冠名2016世俱杯
  4. [Ajax]ajax学习与理解
  5. python提取html正文为txt,python 提取html文本的方法
  6. 程序的内存分配模式(堆栈以及静态存储区,文字常量区,代码区)
  7. 数字签名,数字证书,证书链原理
  8. 2017年最新的全国省市sql数据
  9. 史上最全ClassLoader总结
  10. [概念学习] Virtualization的几个概念
  11. 炸了!!又一 VSCode 神器面世!
  12. run rhadoop
  13. 弱电系统集成服务器,智能化弱电系统集成(BMS系统集成工程)设计方案
  14. 威联通服务器操作系统,QNAP 威联通 453BT3 网络存储服务器 使用手记,Nas中的小钢炮...
  15. “0元送设计”如何换来70亿营收?尚品宅配的新零售数字化增长研究
  16. 使用matlab建立个人简历,图像制作个人简历范文
  17. Ubuntu下载速度慢的解决方法
  18. U盘文件如何恢复?u盘还原,必学的4招(2023已更新)
  19. Linux多定时器实现之二
  20. Android计时常用的7种方式

热门文章

  1. 使用python读取word文件里的表格信息
  2. 一统江湖的大前端(4)shell.js——穿上马甲我照样认识你
  3. 网络计算机的分类包括哪些,计算机的分类有哪些
  4. java中 与%_java中“/”与“%”的区别
  5. 扫描仪 pfu_行业案例:扫描仪高效加持下的艺术工作室
  6. html怎么帮图片占位,css+html实现Skeleton Screen 加载占位图动画效果(带动画)
  7. TikZ绘图示例——尺规作图: 鸭蛋圆形的近似画法
  8. Ubuntu18.04上手配置入门指南
  9. 使用scrapy报错:attrs() got an unexpected keyword argument 'eq'解决办法
  10. linux部署3proxy源码,在CentOS 7系统中从源码安装RTPProxy的方法