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品牌和软件可能会有不同的函数名称和语法,因此您需...
急求三菱fx3g的plc没有计算三角函数的指令,如何解决?
急求三菱fx3g的plc没有计算三角函数的指令,如何解决三菱fx3g系列的plc是不支持三角函数指令的如正弦(SIN)、余弦(COS)、正切(TAN)以及反三角函数指令,这需要3U...
信捷plc怎样写c语言函数?
要在信捷PLC中写C语言函数,需要按照以下步骤进行:1.安装信捷PLC的开发环境和C语言编译器。信捷PLC目前支持KeilC51和IARC编译器,可以根据需要选择相应的环...
西门子plc模拟量编程实例?
以下是一个使用西门子PLC的模拟量编程示例:假设有一个温度传感器,将温度值转换为4-20mA模拟量信号,然后将信号输入到PLC的模拟量输入模块中。我们需要将输入的...
plc中什么情况下使用函数块?
1.在PLC中,函数块通常在以下情况下使用。2.函数块主要用于将一组相关的功能代码封装成一个可重复使用的模块,以便在程序中多次调用。当需要在程序中多次执行...
1200plc的编程方法有哪几个?
这个问题,不好回答。我只能说一下思路。控制都容易,温度传感器变送出4---20mA信号,给PLC模拟量模块,然后模拟量输出模块输出4---20mA信号给你要控制的设备...
plc逻辑函数sf/是什么意思?
SystemFault西门子PLC上面的SF灯红亮时表示系统故障,是英文(SYSTEMFAULT)的缩写,内部寻址错误,超出编程地址区,模块损坏,插件松动等原因引起。SystemFau.....
plc编程中的lad函数类型什么意思?
在PLC编程中,LAD函数类型指的是LadderDiagram(梯形图)函数类型。LAD函数是一种基于梯形图的编程语言,用于描述和控制PLC的逻辑功能。梯形图是一种图形化的编...
1200plc控制变频器频率怎么写程序?
编写PLC控制变频器频率的程序需要以下步骤:首先,配置PLC与变频器之间的通信参数,确保能够实现数据传输。然后,使用PLC编程软件创建一个变频器控制的函数块...
西门子plc能实现三角函数,平方的运算吗?
当然可以的,平方还不需要相关指令就能实现,比如将数据A乘以数据A存到B里面就可以了。当然可以的,平方还不需要相关指令就能实现,比如将数据A乘以数据A存...