S7-1200 PLC数学函数指令之基本数学运算(上)
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指令没讲呢,那在下一篇文章继续介绍哦~
技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究~
点击加入工控交流圈
(此处已添加圈子卡片,请到今日头条客户端查看)PLC怎样计算幂、指数、根、多项式、对数和线型值?
怎样计算幂、指数、根、多项式、对数和线型值,怎样将三角函数转换为度计算?
说明:
下面为下列计算功能提供一些示例程序:
计算幂、指数、平方根、多项式、对数函数计算三角函数转换为度计算线性值映射不同的数学函数功能块到控制器1、幂、指数、根、多项式、对数的计算功能
在STEP7中只能使用以 e (e = 2.7182818 ...) 为底的幂(EXP指令),也可以使用自然指数结合自然对数(LN指令)求任意数的幂(例如10的X次幂或2的X次幂),唯一的限制是底数不能为0。指令LN中输入0没有定义,使用0为底数将导致不正确的运算结果。使用EXP和LN指令的数学公式定义如下:
图. 01
图. 01 为通用求幂的方程式,使用STEP 7编写的代码如下:
图. 02
注意:
幂的值和输入的值必须为32位浮点值并且符合"ANSI/IEEE Standard 754-1985, IEEE Standard for Binary Floating-Point Arithmetic"标准。
2三角函数转换到角度
在STEP7中使用三角函数sine、cosine 和 tangent 时必须以弧度(0 到 2p) 定义角度值,角度值必须为浮点值并存储于累加器1中,计算的结果再次存储于累加器1中。
角度值通常为度(0 到360 度),在STEP7中必须转换为弧度值,两者为比例关系,180度对应 p (3.141593... .)
弧度 = 角度 * p / 180角度 = 弧度 * p / 1801.FC1: 角度值从度数转换为弧度值。
输入参数:"度数" 数据类型为:REAL输出参数:"弧度值" 数据类型为:REAL2.FC2: 角度值从弧度值转换为度数。
输入参数:"弧度值" 数据类型为:REAL输出参数:"度数" 数据类型为:REAL函数FC1和FC2在OB1中调用,如果开始位I1.0出现上升沿FC1被调用,如果开始位I1.1出现上升沿FC2被调用。
3. 计算线性值
通过坐标的两个点(x0,y0) 和 (x1,y1)可以决定线性特征,在横坐标定义X参数的值,函数计算Y的坐标值。输出参数Y为整数类型,取值范围为-27648 to~+27648.
图. 03
P点坐标值通过下列公式计算:
y = ((y1-y0) / (x1-x0)) *(x-x0) +y0图. 04
相关问答
PLC如何使用随机函数?
在PLC中使用随机函数可以通过以下步骤:1.首先,找到PLC编程软件中的随机函数或随机数生成器函数。不同的PLC品牌和软件可能会有不同的函数名称和语法,因此您需...
plc例子函数与函数块有什么?
plc例子函数与函数块有一些区别。1,例子函数是一段预先定义好的代码,可以直接调用使用,能够完成特定的功能。它的主要作用是简化编程流程,提高编程效率。2,...
在PLC中使用数学问题有哪些?
在PLC(可编程逻辑控制器)中使用数学问题主要涉及以下几个方面:算术运算:PLC可用于执行基本的算术运算,如加法、减法、乘法和除法。这些运算可用于各种应用,...
西门子1200模拟量输入编程实例?
以下是使用西门子S7-1200PLC进行模拟量输入编程的示例代码:1.配置模拟量输入模块在S7-1200PLC的硬件配置中,添加模拟量输入模块,并配置其参数。例如,如...
信捷plc怎样写c语言函数?
要在信捷PLC中写C语言函数,需要按照以下步骤进行:1.安装信捷PLC的开发环境和C语言编译器。信捷PLC目前支持KeilC51和IARC编译器,可以根据需要选择相应的环...
plc函数和函数块有什么区别?
R_TRIG指令与P_TRIG指令都是用于检测流入它们的CLK端的能流的上升沿,并用Q端直接输出检测结果。其区别在于R_TRIG是函数块,用它的背景数据块DB3保存上一次扫描...
plc逻辑函数sf/是什么意思?
SystemFault西门子PLC上面的SF灯红亮时表示系统故障,是英文(SYSTEMFAULT)的缩写,内部寻址错误,超出编程地址区,模块损坏,插件松动等原因引起。SystemFau.....
信捷PLC如何调用函数功能块?
您好,调用信捷PLC的函数功能块可以通过以下步骤实现:1.在编程软件中创建一个新的程序模块,或者打开一个已有的程序模块,并在其中添加需要调用的函数功能块...
西门子plc1200怎么用数学函数做顺序启动?
首先不知道你所说的数学函数是指,怎么个方式#如果只是顺序启动的话可以用移位的方式-比如MW0有16位,启动时将第一位置位为1也就0x0001。给一个顺序启...
plc最常控制啥?
1、开关量的逻辑控制这是PLC最基本、最广泛的应用领域,它取代传统的继电器电路,实现逻辑控制、顺序控制,既可用于单台设备的控制,也可用于多机群控及自动化...