理论教育 函数指令分类及用途详解

函数指令分类及用途详解

时间:2023-06-28 理论教育 版权反馈
【摘要】:表5-60 函数类功能块分类及用途1.算术算术类功能块指令主要用于实现算术函数关系,如三角函数、指数幂、对数等。表5-63 除法余数功能块参数列表实数指数幂如图5-80所示。图5-83 直接传送指令功能块直接将输入和输出相连接,当与布尔非一起使用时,将一个i1复制移动到o1中去。表5-73 逻辑与功能块参数列表3.布尔运算布尔运算功能块指令用途描述见表5-74。

函数指令分类及用途详解

函数类功能块主要是数学函数,用于快速计算变量之间的数学函数关系。该大类指令分类及用途见表5-60。

表5-60 函数类功能块分类及用途

978-7-111-45432-8-Chapter05-141.jpg

1.算术(Arithmetic)

算术类功能块指令主要用于实现算术函数关系,如三角函数、指数幂、对数等。该类指令具体描述见表5-61。

表5-61 算术类功能块指令用途

978-7-111-45432-8-Chapter05-142.jpg

下面举例介绍该类指令的具体应用:

(1)弧度反余弦值(ACOS)

如图5-78所示。

978-7-111-45432-8-Chapter05-143.jpg

图5-78 弧度反余弦值该功能块

该功能块用于产生一个实数的反余弦值。输入和输出都是弧度。其参数列表见表5-62。

表5-62 弧度反余弦值功能块参数列表

978-7-111-45432-8-Chapter05-144.jpg

(2)除法余数(模)(MOD)

如图5-79所示。

978-7-111-45432-8-Chapter05-145.jpg

图5-79 除法余数功能块

用于产生一个整数除法的余数,其参数列表见表5-63。

表5-63 除法余数功能块参数列表

978-7-111-45432-8-Chapter05-146.jpg

(3)实数指数幂(POW)

如图5-80所示。

978-7-111-45432-8-Chapter05-147.jpg

图5-80 实数指数幂功能块

产生如下形式的实数指数值:基底指数(baseexponent)。注:Exponent为实数。其参数列表见表5-64。

表5-64 实数指数幂功能块参数列表

978-7-111-45432-8-Chapter05-148.jpg

(4)随机数(RAND)

如图5-81所示。

978-7-111-45432-8-Chapter05-149.jpg

图5-81 随机数功能块

从一个定义的范围中,产生一组随机整数值。其参数列表见表5-65。

表5-65 随机数功能块参数列表

978-7-111-45432-8-Chapter05-150.jpg

(5)乘指令(Multiplication)

如图5-82所示。

978-7-111-45432-8-Chapter05-151.jpg

图5-82 乘指令功能块

两个及多个整数或实数的乘法运算。注意:可以运算额外输入变量。其参数描述见表5-66。

表5-66 乘指令功能块参数列表

978-7-111-45432-8-Chapter05-152.jpg

(6)直接传送指令(MOV)

如图5-83所示。

978-7-111-45432-8-Chapter05-153.jpg

图5-83 直接传送指令功能块

直接将输入和输出相连接,当与布尔非一起使用时,将一个i1复制移动到o1中去。其参数描述见表5-67。

表5-67 直接传送指令功能块参数列表

978-7-111-45432-8-Chapter05-154.jpg

(7)取负指令(Neg)

如图5-84所示。

978-7-111-45432-8-Chapter05-155.jpg

图5-84 取负指令功能块

将输入变量取反。其参数描述见表5-68。

表5-68 取负指令功能块参数列表

978-7-111-45432-8-Chapter05-156.jpg

下面通过几个例子讲解算术指令的一些用法。

如图5-85所示,这个程序实现对电动机连续运行时间的计时,用于电动机保养。梯级一是自复位的计时器,循环计时1h。计时器每计时1h,通过TON 1.Q位输出控制time totalize自加一,当time totalize大于5时,输出timefull位。提醒电动机已经连续运行5h,需要停机。最后一个梯级用于复位timefull和time totalize。

如图5-86所示,这个程序是定标运算的梯级逻辑。梯级一和梯级二使用MOV指令设定未标定范围和标定范围,然后用减法指令计算出未标定范围和标定范围上下限之差,并分别存放到标签a和标签b中,然后用除法指令计算b除以a,结果存放到标签k中。最后输入数据与k做乘法,得到定标后的输入值。

978-7-111-45432-8-Chapter05-157.jpg

图5-85 电动机连续运行时间计时

978-7-111-45432-8-Chapter05-158.jpg

图5-86 定标运算梯级逻辑

2.二进制操作(Binary Operations)

二进制操作类指令主要用于二进制数之间的与或非运算,以及实现屏蔽、位移等功能,该类功能块指令具体描述见表5-69。

表5-69 二进制操作功能块指令用途

978-7-111-45432-8-Chapter05-159.jpg

下面举例介绍该类指令:

(1)取反(NOT MASK)

如图5-87所示。

978-7-111-45432-8-Chapter05-160.jpg

图5-87 取反功能块

整数值位与位的取反,其参数列表见表5-70。

表5-70 取反功能块参数列表

978-7-111-45432-8-Chapter05-161.jpg

例如:16#1234取NOT MASK结果为16#FFFF EDCB。

(2)左循环(ROL)

如图5-88所示。

对于32位整数值,把其位向左循环。其参数列表见表5-71。

978-7-111-45432-8-Chapter05-162.jpg

图5-88 左循环功能块

表5-71 左循环功能块参数列表

978-7-111-45432-8-Chapter05-163.jpg(www.daowen.com)

(3)左移(SHL)

如图5-89所示。

978-7-111-45432-8-Chapter05-164.jpg

图5-89 左移功能块

对于32位整数值,把其位向左移。最低有效位用0替代。其参数列表见表5-72。

表5-72 左移功能块参数列表

978-7-111-45432-8-Chapter05-165.jpg

(4)逻辑与(AND)

如图5-90所示。

978-7-111-45432-8-Chapter05-166.jpg

图5-90 逻辑与功能块

用在两个或更多表达式之间的布尔“与”运算。注意:可以运算额外输入变量。其参数描述见表5-73。

表5-73 逻辑与功能块参数列表

978-7-111-45432-8-Chapter05-167.jpg

3.布尔运算(Boolean)

布尔运算功能块指令用途描述见表5-74。

表5-74 布尔运算功能块指令用途

978-7-111-45432-8-Chapter05-168.jpg

(1)4选1(MUX4B)

如图5-91所示。

978-7-111-45432-8-Chapter05-169.jpg

图5-91 4选1功能块

在4个布尔类型的数中选择一个并输出。其参数列表见表5-75。

表5-75 4选1功能块参数列表

978-7-111-45432-8-Chapter05-170.jpg

(2)组合数(TTABLE)

如图5-92所示。

978-7-111-45432-8-Chapter05-171.jpg

图5-92 组合数功能块

通过输入的组合,给出输出值。该功能块有4个输入,16种组合。可以在真值表中找到这些组合,对于每一种组合,都有相应的输出值匹配。输出数的组合形式取决于输入和该功能块函数的联系。其参数列表见表5-76。

表5-76 组合数功能块参数列表

978-7-111-45432-8-Chapter05-172.jpg

4.字符串操作(String Manipulation)

字符串操作类功能块指令主要用于字符串的转换和编辑,其具体描述见表5-77。

表5-77 字符串操作功能块指令用途

978-7-111-45432-8-Chapter05-173.jpg

下面将举例介绍该类功能块指令:

(1)ASCII码转换(ASCII)

如图5-93所示。

978-7-111-45432-8-Chapter05-174.jpg

图5-93 生成ASCII功能块

将字符串里的字符变成ASCII码。其参数列表见表5-78。

表5-78 生成ASCII功能块参数列表

978-7-111-45432-8-Chapter05-175.jpg

(2)删除(DELETE)

如图5-94所示。

978-7-111-45432-8-Chapter05-176.jpg

图5-94 删除功能块

删除字符串中的一部分。其参数列表见表5-79。

表5-79 删除功能块参数列表

978-7-111-45432-8-Chapter05-177.jpg

(3)搜索(FIND)

如图5-95所示。

978-7-111-45432-8-Chapter05-178.jpg

图5-95 搜索功能块

定位和提供子字符串在字符串中的位置。该功能块的参数列表见表5-80。

表5-80 搜索功能块参数列表

978-7-111-45432-8-Chapter05-179.jpg

(4)左提取(LEFT)

如图5-96所示。

978-7-111-45432-8-Chapter05-180.jpg

图5-96 左提取功能块

该功能块用于提取字符串中用户定义的左边的字符个数。其参数列表见表5-81。

表5-81 左提取功能块参数列表

978-7-111-45432-8-Chapter05-181.jpg

5.时间(Time)

时间类功能块指令主要用于确定实时时钟的年限和星期范围,以及计算时间差。具体用途见表5-82。

表5-82 时间类功能块指令用途

978-7-111-45432-8-Chapter05-182.jpg

下面将举例介绍该类功能块指令的用途:

年份匹配(DOY)

如图5-97所示。

978-7-111-45432-8-Chapter05-183.jpg

图5-97 年份匹配功能块

该功能块有4个输入通道,当实时时钟(Real-Time Clock(RTC))的值在4个通道中任意一个时钟的年份范围内时,功能块输出为真。如果没有RTC,则输出总为假。其参数列表见表5-83。

表5-83 年份匹配功能块参数列表

978-7-111-45432-8-Chapter05-184.jpg

DOYDATA数据类型,见表5-84。

表5-84 DOYDATA数据类型

978-7-111-45432-8-Chapter05-185.jpg

(续)

978-7-111-45432-8-Chapter05-186.jpg

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

我要反馈