什么公式要先乘后除,再做加减?

圈圈笔记 63

大家好,欢迎关注电气技术微课堂!这里会每天更新关于电气自动化、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中的数值数据类型转换为实数再进行乘除运算。

上一篇:

下一篇:

  推荐阅读

分享