PLC的加、减、乘、除指令有什么用?其实功能十分强大!
大家好,欢迎关注电气技术微课堂!这里会每天更新关于电气自动化、PLC、工业机器人、电子技术的原创文章和微课,如果你感兴趣请关注我
今天我们要谈一谈西门子S7-1200PLC中常用的
什么是四则运算指令呢?
四则运算指令包括加法指令ADD、减法指令SUB、乘法指令MUL、除法指令DIV四种。
一、加法指令ADD
执行加法指令ADD将输入IN1的值与输入IN2的值相加,并将加得结果存储在OUT设定的寄存器中。
加法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1/IN2: 要相加的数值,可以是寄存器的地址或常数,单击ADD指令下的星标可以扩展输入的数目。
OUT: 加法计算结果输出,IN1+IN2=OUT,OUT端一般填写寄存器地址。
加法指令小提示: 可以从指令框的“<???>”下拉列表中选择该指令的数据类型,当地址长度与数据类型不匹配时,会将输入数值隐式转换为指定的数据类型,编译不会报错,但运行过程中可能会出错。
二、减法指令SUB
执行减法指令SUB,将由被减数IN1的值减去减数IN2的值,并将结果存入OUT设定的寄存器地址中。
减法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,当指令正确执行期间使能输出端ENO为1,指令结果超出输出 OUT 指定数据类型的允许范围或浮点数为无效值时ENO为0。
IN1: 被减数,可以是寄存器地址或常数。
IN2: 减数,可以是寄存器地址或常数。
OUT: 减法计算结果输出,IN1-IN2=OUT,OUT端一般填写寄存器地址。
三、乘法指令MUL
乘法指令MUL将输入 IN1 的值与输入 IN2 的值相乘,并将乘积保存在输出 OUT指定的寄存器中。
乘法指令功能框各端口的定义如下
EN: 使能输入端,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出端,指令正确执行期间ENO输出为1,
IN1: 乘数,可以是寄存器地址或常数。
IN2: 乘数,可以是寄存器地址或常数。
Inn: 可以添加多个相乘的数。
OUT: 输出乘积存入指定的寄存器中。
四、除法指令DIV
除法指令DIV将输入 IN1 的值除以输入 IN2 的值,并将除得的商保存在输出 OUT指定的寄存器中。DIV指令支持各种整型和实数型数据。
除法指令功能框各端口的定义如下
EN: 使能输入,EN为1时执行加法指令,EN为0时不执行。
ENO: 使能输出 ,指令正确执行期间ENO状态为1。
IN1: 被除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。
IN2: 除数,可以是寄存器地址、整数或浮点数,需要与所选数据类型匹配。
OUT: 商值,输出OUT为执行除法指令得到的商,数据类型为无符号整数,余数被省略不计。
除法指令小提示
在使用除法指令DIV时,OUT输出端为除得的商值,数据类型为无符号整型,余数被省略不显示,如果需要求余数需使用MOD指令。
四则运算指令的实际应用举例
例题:温度传感器将采集到的温度值转换为电压信号输入给PLC,测量范围是0~100Co,数值经过被CPU集成的模拟量通道0(地址为IW64)转换为0~27648的数字,假设转换后的数字为T,试求以为Co单位的温度值。
解:0~100Co的温度值经A/D转换后的数字为0~27648,设转换后得到的数字为T,转换公式为
在编辑指令时,为了保证运算精度,应先乘后除。
因为公式中IW64乘以100的运算结果可能会大于16位整数的最大值32767(IW64为16位存储器,模拟值为二进制的补码,最高位为符号位,0为负,1为正),因此应将IW64中的数值数据类型转换为实数再进行乘除运算。
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中divd300k40d500代表什么意思?
三菱plc中divd300k40d500是除法指令,D300是被除数,除数是40,商存入D500.三菱plc中divd300k40d500是除法指令,D300是被除数,除数是40,商存入...
西门子plc的常用指令?
关于这个问题,西门子PLC(可编程逻辑控制器)指令是一种可编程的电子设备,用于控制机器和工业过程。以下是一些常用的西门子PLC指令:1.LD指令:用于将数据装...
三菱PLCDIVD300D200D400当D300=100D200=500的时候如何让D400显示小数值,为什么除完之后结果总是0?
要用浮点计算,然后取整,DIV这条指令不能计算小数,如果还不明白可以再来问我,我跟你详细的讲。要用浮点计算,然后取整,DIV这条指令不能计算小数,如果还不明白...
三菱PLC指令DIVPD200K-1D200是?没分了?
DIV:除法指令DIVP:取脉冲信号除法指令(当前面信号闭合一次,他做一次除法)也就是说用寄存器D200内的数据除以K1,然后将结果存在D200中!DIV:除法指令DIVP:取脉...
三菱plc加减乘除指令?
addsubmuldiv
plc里ADD是什么?
plcadd指令用法这个指令就是2个值进行加法运算(A+B=C)后得出结果,很简单属于四则逻辑运算的一个,除了它还有减法运算SUB,乘法运算MUL和除法DIV。ADD指令有16...
fx5u加法指令?
1.FX5UPLC具备加法指令。2.加法指令在FX5UPLC中可以通过使用指令代码ADD进行实现。该指令可以将两个操作数相加,并将结果存储在指定的目标寄存器中。通过...
西门子200PLC运算结果1200用什么指令显示1.200000e+003这样的形式,就是科学计数法怎么用?
1.200000e+003,就是科学计数法。在S7-200PLC中,它是以浮点数形式存储的,占用4个字节(2个字),正常使用VDx存储数。计算时采用浮点数计算指令,ADD_R/SUB_R/MUL...
部分程序如下BTIVB113VW206AENOBCDIVW206_作业帮
[回答]BTI是一个字节数据转成一个整数数据,而BCDI是一个字的以BCD编码数据转成一个字的以BIN编码的数据.当然有差别,因为数值对应的编码不同.第1条BTI指令...
三菱PLCMULd2k200d20这条指令,我在触摸屏里面输入D2的...
我输入D2的值是2,然而显示的是20d20的值为4000,然后在用DDIVD20K100D40,D40显示...如果是用了小数点,PLC是不识别小数点的,会将小数点的数认为是整数。如你在触...