[三菱] 三菱FX5U PLC的FUN通用函数介绍(上)

[复制链接]
查看419 | 回复0 | 2024-4-27 14:34:32 | 显示全部楼层 |阅读模式

前言
之前的文章中我们介绍过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),编写其运算程序。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则