百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

S7-1200 PLC数学函数指令之基本数学运算(上)

xsobi 2024-11-23 10:49 1 浏览

S7-1200 PLC常用的基本指令,包括比较指令、数学函数指令、移动操作指令、转换操作指令、逻辑运算指令和移位与循环指令等。

之前的文章介绍了比较指令,今天就介绍一下数学函数指令吧,数学函数指令又包括基本的数学运算指令、三角函数运算和指数运算指令等,所以我们在学习数学函数指令时,要重点掌握基本数学运算指令哦。

S7-1200 PLC基本数学运算指令包括加ADD、减SUB、乘MUL、除DIV、取余数MOD、计算指令CALCULATE、取补码NEG、递增INC、递减DEC、取最大最小值和绝对值ABS指令。

与S7-200 SMART PLC对比的话,S7-1200 PLC是新增了取余数MOD、取补码NEG、取最大最小值和绝对值ABS指令的,我们可以对比学习这几个新增的指令。


1、加法指令ADD和减法指令SUB

加法指令是对整数和实数类型的数据进行加法运算,在使用指令的时候,可以在指令上选择操作数的数据类型,此外,还可以点击指令上的图标添加多个数的输入管脚,可以实现多个数据的相加(IN1+IN2+IN3+……+INn=OUT)。

这也是S7-1200 PLC与S7-200 SMART PLC的区别,S7-200 SMART PLC的输入操作数是只有2个的,不能进行添加管脚。

减法指令SUB是对整数或实数类型的数据进行减法运算IN1-IN2=OUT,减法指令不能添加输入管脚。


2、乘法指令MUL和除法指令DIV

乘法指令MUL和加法指令是一样的,可以增加输入IN的管脚,实现多个数据相乘的运算(IN1×IN2×IN3×……×INn=OUT)。除法指令DIV使用整数的数据类型进行除法运算IN1÷IN2=OUT,注意OUT存储的是商的结果,余数是不存储的。


3、取余数指令MOD

用DIV指令将两个整数相除输出的结果是只有商,若需要取余数,那么我们就需要用到取余数指令MOD,MOD指令所支持的数据类型也是整数的,运算是IN1÷IN2=OUT,OUT存储的是运算后的余数。

我们需要注意的是,当数据运算结果产生溢出或者运算不符合规则,比如说除数为0时,如果希望指令的ENO后面的指令不执行,我们可以生成ENO功能,选中指令,点击鼠标右键,选择“生成ENO”即可,当我们执行生成有ENO的指令时,如果运算出错,指令会以蓝色虚线框显示。

4、计算指令CALCULATE

计算指令是用户可以按照计算公式自行编写算法的指令,使用这个指令的好处是可以省去多个运算指令进行运算的步骤,不过我们需要注意的是参与运算的数据必须要是同一种数据类型的。

使用的时候点击指令右上角的计算器图标就可以弹出编辑公式的对话框,我们在里面编写好运算公式就可以了,非常方便。

下图程序的计算公式是y=(a+b)/(a-b)+c,都是INT类型的数据参与运算。






从上图我们可以看到,我们只要给输入管脚赋值,指令会自动根据用户编好的公式进行运算,是不是非常简单呢,这么方便好用的指令,你确定不要掌握一下吗?

篇幅也有限,基本数学运算指令还有取补码NEG、递增INC、递减DEC、取最大最小值和绝对值ABS指令没讲呢,那在下一篇文章继续介绍哦~

技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究~


点击加入工控交流圈

(此处已添加圈子卡片,请到今日头条客户端查看)

相关推荐

js向对象中添加元素(对象,数组) js对象里面添加元素

一、添加一个元素对象名["属性名"]=值(值:可以是一个值,可以是一个对象,也可以是一个数组)这样添加进去的元素,就是一个值或对象或数组...

JS小技巧,如何去重对象数组?(一)

大家好,关于数组对象去重的业务场景,想必大家都遇到过类似的需求吧,这对这样的需求你是怎么做的呢。下面我就先和大家分享下如果是基于对象的1个属性是怎么去重实现的。方法一:使用.filter()和....

「C/C++」之数组、vector对象和array对象的比较

数组学习过C语言的,对数组应该都不会陌生,于是这里就不再对数组进行展开介绍。模板类vector模板类vector类似于string,也是一种动态数组。能够在运行阶段设置vector对象的长度,可以在末...

如何用sessionStorage保存对象和数组

背景:在工作中,我将[{},{}]对象数组形式,存储到sessionStorage,然后ta变成了我看不懂的形式,然后我想取之用之,发现不可能了~记录这次深刻的教训。$clickCouponIndex...

JavaScript Array 对象 javascript的array对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

JavaScript中的数组Array(对象) js array数组

1:数组Array:-数组也是一个对象-数组也是用来存储数据的-和object不同,数组中可以存储一组有序的数据,-数组中存储的数据我们称其为元素(element)-数组中的每一个元素都有一...

数组和对象方法&数组去重 数组去重的5种方法前端

列举一下JavaScript数组和对象有哪些原生方法?数组:arr.concat(arr1,arr2,arrn);--合并两个或多个数组。此方法不会修改原有数组,而是返回一个新数组...

C++ 类如何定义对象数组?初始化数组?linux C++第43讲

对象数组学过C语言的读者对数组的概念应该很熟悉了。数组的元素可以是int类型的变量,例如int...

ElasticSearch第六篇:复合数据类型-数组,对象

在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON...

第58条:区分数组对象和类数组对象

示例设想有两个不同类的API。第一个是位向量:有序的位集合varbits=newBitVector;bits.enable(4);bits.enable([1,3,8,17]);b...

八皇后问题解法(Common Lisp实现)

如何才能在一张国际象棋的棋盘上摆上八个皇后而不致使她们互相威胁呢?这个著名的问题可以方便地通过一种树搜索方法来解决。首先,我们需要写一个函数来判断棋盘上的两个皇后是否互相威协。在国际象棋中,皇后可以沿...

visual lisp修改颜色的模板函数 怎么更改visual studio的配色

(defunBF-yansemokuai(tuyuanyanse/ss)...

用中望CAD加载LISP程序技巧 中望cad2015怎么加载燕秀

1、首先请加载lisp程序,加载方法如下:在菜单栏选择工具——加载应用程序——添加,选择lisp程序然后加载,然后选择添加到启动组。2、然后是添加自定义栏以及图标,方法如下(以...

图的深度优先搜索和广度优先搜索(Common Lisp实现)

为了便于描述,本文中的图指的是下图所示的无向图。搜索指:搜索从S到F的一条路径。若存在,则以表的形式返回路径;若不存在,则返回nil。...

两个有助于理解Common Lisp宏的例子

在Lisp中,函数和数据具有相同的形式。这是Lisp语言的一个重大特色。一个Lisp函数可以分析另一个Lisp函数;甚至可以和另一个Lisp函数组成一个整体,并加以利用。Lisp的宏,是实现上述特色的...