之前的文章中我们介绍过FB块的新建和使用,还介绍了FB块指令像双稳态功能块、定时器功能块和计数器功能块等,除此之外,还有FUN函数块,那么这一篇文章就给大家介绍一下我们三菱FX5U PLC都有哪些FUN函数吧。
其实主要分为几个类,包括位布尔功能、类型转化、算术运算、比较、时间数据类型、位移位等,还有其他通用函数也可以看下手册说明哦,这些FUN函数其实大部分都有对应的一些梯形图指令,大家可以对比着来学习哦。下面我们就按各个分类来介绍一下吧。
一、位布尔功能函数
位类型布尔类的函数包括:逻辑与、逻辑或、逻辑异或和逻辑非。
逻辑与函数块是对两个输入数值的对应位执行“与”运算操作。运算方法:两个位同为1是结果为1,其余为0。逻辑或函数块是对两个输入数值的对应位执行“或”运算操作。
运算方法:两个位中只要有一个位为1,其结果就为1。
逻辑异或:指令对两个输入数值的对应位执行“异或”运算操作。
运算方法:同为0,异为1。逻辑非:对输入的操作数的位进行取反操作。
运算方法:0变为1,1变为0。下图以逻辑与函数块为例,看一下程序和其数据的位处理情况。
对于逻辑与,利用其有0出0的功能可以进行复位操作;对于逻辑或,利用其有1出1的功能可以进行置位操作。我们以一个简单的例子来看一下位类型布尔功能函数的功能。
【案例】求任意两数相减所得的绝对值。
二、类型转换功能函数
类型转换功能是对数据类型进行转换,我们常见的数据类型包括BOOL型、WORD型、DWORD型、INT型、DINT型、TIME型、STRING型、BCD型、REAL型等。所以说类型转换功能是指这些数据类型之间的转换的FUN函数。跟西门子中的转换指令是类似的。
比如说我们要进行浮点数运算,而输入进来的数据D0是整数类型的,那么我们就要把整数转换成双整数,然后再转换成浮点数,这时我们就可以用上INT_TO_DINT和DINT_TO_REAL的FUN函数进行转换,转换之后存储到D4中,那么D4就可以进行浮点数运算。
此外,在类型转换功能中还有几个FUN函数,叫做字标签的指定位读取/写入/复制,我们以下图的程序直接讲解,GET_BIT_OF_INT用于读取字标签的指定位,输出(s)的第(n)位,也就是X0接通时,将1写到D0的bit5位。
SET_BIT_OF_INT用于对字标签的指定位进行写入,将(s)中指定的BOOL值写入到(d)的第(n)位中,也就是将D0中的bit5位的值1写入到输出M0中,所以M0输出为ON。CPY_BIT_OF_INT用于将字标签的指定位复制到其它字标签的指定位,将(s)中指定的字第(n1)位的值复制到(d)的第(n2)位中,也就是将D2中指定的bit5位的值复制到D4的bit10位中。
三、算术运算函数
算术运算功能函数包括加ADD、减SUB、乘MUL、除DIV运算,还有求余数MOD、求幂EXPT、代入MOVE等功能。
加法运算ADD:输出(s1)+(s2)+…+(s28)值之和。
乘法运算MUL:输出(s1)×(s2)×…×(s28)值之乘积。
减法运算SUB:输出(s1)-(s2)值之差。
除法运算DIV:输出(s1)÷(s2)值之商,余数不输出。
求余数MOD:输出(s1)÷(s2)值之余数,商不输出。
求幂EXPT:将(s1)中输入的REAL型数据以(s2)中指定的INT型/DINT型/REAL型进行幂运算,从(d)输出运算结果。比如说把IN1输入定义一个基数的标签名,IN2输入定义一个指数的标签名,基数是单精度实数类型的,指数设置成字类型的,输出的就是进行幂运算的结果,也是单精度实数的。
代入MOVE:相当于梯形图指令中的MOV指令,区别在于它是通过指令MOV/DMOV/DEMOV决定数据类型的,而MOVE可以指定BOOL/INT/DINT/WORD/DWORD/REAL/STRING/TIME/结构体等类型,注意MOVE只可以指定相同的数据类型哦。
下面我们就以一个运算的案例讲解下算术运算函数的使用。
【案例】根据如下算法:y=[(a+b)×(a+b)]÷(a×b),编写其运算程序。
这篇文章就先介绍位布尔功能、类型转换、算术运算函数,还有比较、时间数据类型、位移位等其他通用函数就在下一篇文章继续介绍吧,大家继续关注我们哦~