首页 理论教育 数学函数指令详解

数学函数指令详解

时间:2023-06-28 理论教育 版权反馈
【摘要】:图6-66应用加法指令实现加计数器功能程序中,应用整数加法指令可以将计数范围扩展至32767;应用双整数加法指令可以将计数范围扩展至214783647。②16位整数的上限值为+32767,则10000*N的范围超过了16位整数的上限值,会发生溢出,所以应选择双整数的乘除运算指令。③上述程序中MD20存储的实际就是以KPa为单位的压力值,我们经过估算,其压力值在16位整数的表示范围内,所以可以直接取MD20的低字MW22中的数值作为KPa为单位的压力值送给存储器MW10。

数学函数指令详解

数学函数指令包括整数、双整数的加、减、乘、除四则运算和双整数除法求余数实数浮点数)的加、减、乘、除四则运算,浮点数的平方、平方根自然对数指数函数三角函数等常用函数运算,以及获取整数、双整数及实数的最大值、最小值等。

1.整数、双整数算术运算指令

整数、双整数算术运算指令对累加器1和累加器2中的整数进行算术运算,运算结果保存在累加器1中。指令如表6-37所示。

表6-37 整数算术运算指令

续表

【例6-17】 应用整数加减法指令实现计数器功能。

前面我们已经讨论过,当单个计数器的计数范围不能满足要求时,可以通过计数器的级联实现计数范围的任意扩展。本例应用整数的加、减法来实现计数器功能。实现方法是,控制加减运算的使能输入EN端,使其只有计数脉冲来的时候进行加减运算。加计数器实现程序如图6-66所示。

图6-66 应用加法指令实现加计数器功能

程序中,应用整数加法指令可以将计数范围扩展至32767;应用双整数加法指令可以将计数范围扩展至214783647。

需要注意的是:

①加法指令的EN端必须使用跳变沿检测指令,否则每个扫描周期都会使加计数生效,存储器MW10和MD20很快会达到上限而溢出,而且根本达不到计数目的。

②类似地,应用减法运算可以实现减计数器的功能。

2.浮点数运算指令

浮点数运算指令用于完成32位浮点数的加、减、乘、除算术四则运算及常用的函数运算。指令如表6-38所示。

表6-38 浮点数运算指令

(www.xing528.com)

续表

需要注意的是:

①整数、双整数、实数运算结果正常或溢出均会影响状态字的CC1、CC0、OV、OS位。

②在进行运算时要确保参与运算的两个数据具有相同的数据类型。

【例6-18】 模拟量的数值变换。

压力变送器的量程为0~10 MPa,输出信号为4~20 mA,S7-300的模拟量输入模块量程为4~20 mA,对应A/D转换后的数字量为0~27648,设压力测量值经A/D转换后的数字量为N,N存储于MD6中,求以KPa位单位的压力值。

【分析】 首先压力变送器输出信号和模拟量输入模块的量程均为4~20 mA,所以可以直接根据0 MPa对应数字量0,10 MPa对应数字量27648,求出压力MPa值和数字量值之间的对应关系为:

题目要求的是以KPa为单位的压力值,再乘以1000即可。

将以上算式用运算指令实现即可,程序如图6-67所示。

图6-67 压力测量的变换单位

需要注意的是:

①在求解式(6-2)的压力值时,要先算乘法再算除法,否则会损失原始数据的精度。

②16位整数的上限值为+32767,则10000*N的范围超过了16位整数的上限值,会发生溢出,所以应选择双整数的乘除运算指令。

③上述程序中MD20存储的实际就是以KPa为单位的压力值,我们经过估算,其压力值在16位整数的表示范围内,所以可以直接取MD20的低字MW22中的数值作为KPa为单位的压力值送给存储器MW10。

④尽管常数10000、27648都在16位整数的范围之内,但运用双整数运算指令时要求其输入IN、输出OUT端数据类型均为双整型数据,所以输入时需写作双整型常数格式L#10000、L#27648。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈