函数类功能块主要是数学函数,用于快速计算变量之间的数学函数关系。该大类指令分类及用途见表5-60。
表5-60 函数类功能块分类及用途
1.算术(Arithmetic)
算术类功能块指令主要用于实现算术函数关系,如三角函数、指数幂、对数等。该类指令具体描述见表5-61。
表5-61 算术类功能块指令用途
下面举例介绍该类指令的具体应用:
(1)弧度反余弦值(ACOS)
如图5-78所示。
图5-78 弧度反余弦值该功能块
该功能块用于产生一个实数的反余弦值。输入和输出都是弧度。其参数列表见表5-62。
表5-62 弧度反余弦值功能块参数列表
(2)除法余数(模)(MOD)
如图5-79所示。
图5-79 除法余数功能块
用于产生一个整数除法的余数,其参数列表见表5-63。
表5-63 除法余数功能块参数列表
(3)实数指数幂(POW)
如图5-80所示。
图5-80 实数指数幂功能块
产生如下形式的实数指数值:基底指数(baseexponent)。注:Exponent为实数。其参数列表见表5-64。
表5-64 实数指数幂功能块参数列表
(4)随机数(RAND)
如图5-81所示。
图5-81 随机数功能块
从一个定义的范围中,产生一组随机整数值。其参数列表见表5-65。
表5-65 随机数功能块参数列表
(5)乘指令(Multiplication)
如图5-82所示。
图5-82 乘指令功能块
两个及多个整数或实数的乘法运算。注意:可以运算额外输入变量。其参数描述见表5-66。
表5-66 乘指令功能块参数列表
(6)直接传送指令(MOV)
如图5-83所示。
图5-83 直接传送指令功能块
直接将输入和输出相连接,当与布尔非一起使用时,将一个i1复制移动到o1中去。其参数描述见表5-67。
表5-67 直接传送指令功能块参数列表
(7)取负指令(Neg)
如图5-84所示。
图5-84 取负指令功能块
将输入变量取反。其参数描述见表5-68。
表5-68 取负指令功能块参数列表
下面通过几个例子讲解算术指令的一些用法。
如图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做乘法,得到定标后的输入值。
图5-85 电动机连续运行时间计时
图5-86 定标运算梯级逻辑
2.二进制操作(Binary Operations)
二进制操作类指令主要用于二进制数之间的与或非运算,以及实现屏蔽、位移等功能,该类功能块指令具体描述见表5-69。
表5-69 二进制操作功能块指令用途
下面举例介绍该类指令:
(1)取反(NOT MASK)
如图5-87所示。
图5-87 取反功能块
整数值位与位的取反,其参数列表见表5-70。
表5-70 取反功能块参数列表
例如:16#1234取NOT MASK结果为16#FFFF EDCB。
(2)左循环(ROL)
如图5-88所示。
对于32位整数值,把其位向左循环。其参数列表见表5-71。
图5-88 左循环功能块
表5-71 左循环功能块参数列表
(www.daowen.com)
(3)左移(SHL)
如图5-89所示。
图5-89 左移功能块
对于32位整数值,把其位向左移。最低有效位用0替代。其参数列表见表5-72。
表5-72 左移功能块参数列表
(4)逻辑与(AND)
如图5-90所示。
图5-90 逻辑与功能块
用在两个或更多表达式之间的布尔“与”运算。注意:可以运算额外输入变量。其参数描述见表5-73。
表5-73 逻辑与功能块参数列表
3.布尔运算(Boolean)
布尔运算功能块指令用途描述见表5-74。
表5-74 布尔运算功能块指令用途
(1)4选1(MUX4B)
如图5-91所示。
图5-91 4选1功能块
在4个布尔类型的数中选择一个并输出。其参数列表见表5-75。
表5-75 4选1功能块参数列表
(2)组合数(TTABLE)
如图5-92所示。
图5-92 组合数功能块
通过输入的组合,给出输出值。该功能块有4个输入,16种组合。可以在真值表中找到这些组合,对于每一种组合,都有相应的输出值匹配。输出数的组合形式取决于输入和该功能块函数的联系。其参数列表见表5-76。
表5-76 组合数功能块参数列表
4.字符串操作(String Manipulation)
字符串操作类功能块指令主要用于字符串的转换和编辑,其具体描述见表5-77。
表5-77 字符串操作功能块指令用途
下面将举例介绍该类功能块指令:
(1)ASCII码转换(ASCII)
如图5-93所示。
图5-93 生成ASCII功能块
将字符串里的字符变成ASCII码。其参数列表见表5-78。
表5-78 生成ASCII功能块参数列表
(2)删除(DELETE)
如图5-94所示。
图5-94 删除功能块
删除字符串中的一部分。其参数列表见表5-79。
表5-79 删除功能块参数列表
(3)搜索(FIND)
如图5-95所示。
图5-95 搜索功能块
定位和提供子字符串在字符串中的位置。该功能块的参数列表见表5-80。
表5-80 搜索功能块参数列表
(4)左提取(LEFT)
如图5-96所示。
图5-96 左提取功能块
该功能块用于提取字符串中用户定义的左边的字符个数。其参数列表见表5-81。
表5-81 左提取功能块参数列表
5.时间(Time)
时间类功能块指令主要用于确定实时时钟的年限和星期范围,以及计算时间差。具体用途见表5-82。
表5-82 时间类功能块指令用途
下面将举例介绍该类功能块指令的用途:
年份匹配(DOY)
如图5-97所示。
图5-97 年份匹配功能块
该功能块有4个输入通道,当实时时钟(Real-Time Clock(RTC))的值在4个通道中任意一个时钟的年份范围内时,功能块输出为真。如果没有RTC,则输出总为假。其参数列表见表5-83。
表5-83 年份匹配功能块参数列表
DOYDATA数据类型,见表5-84。
表5-84 DOYDATA数据类型
(续)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。