[西门子] 三菱FX5U PLC的FUN通用函数介绍(下)

[复制链接]
查看44497 | 回复0 | 2024-1-4 08:46:33 | 显示全部楼层 |阅读模式


在上一篇文章中给大家介绍了一下我们三菱FX5U PLC的一些FUN通用函数,包括位布尔功能、类型转化、算术运算,还有比较、时间数据类型、位移位等功能函数没有介绍完,那么这篇就接着继续介绍吧。
比较功能函数

比较功能函数包括GT、GE、EQ、LE、LT、NE,它们都有两个输入IN,这些函数是进行输入值的比较运算后,将运算结果以BOOL型进行输出。

我们以GT函数为例讲一下吧,GT函数就是进行多个输入的逐一比较。当全部s(n-1)>s(n)时,输出TRUE。

只要有某个为s(n-1)≤s(n)时,输出FALSE。像下图的第一段程序D0>D2>D4>D6满足逐次比较关系,所以可以使M0输出为ON,而下一段D0>D2>D4<D6,其中D4不满足大于的比较关系,所以M0输出为OFF。



比较NE函数是进行s1是否不等于s2的比较。下图程序的第一段D10≠D12,使M10输出为ON,第二段程序的D10=D12,使M10输出为OFF。




我们下面以一个简单的例子来学习下比较函数的使用~01

【案例】仓库货物计数
案例源程序下载,请看文末

仓库有进货和出货两个感应开关,当进货感应开关感应后,仓库中的货物件数加1,当出货感应开关感应后,仓库中的货物件数减1,如果货物件数达到100件时触发满仓报警信号,当货物件数小于5件时,触发缺货报警信号。





时间数据类型功能

时间数据类型功能包括加法运算ADD_TIME、减法运算SUB_TIME、乘法运算MUL_TIME、除法运算DIV_TIME,与普通的算术运算功能差不多,区别在于这几个是对时间数据的运算。

ADD_TIME是对输入的TIME型数据进行加法运算(s1)+(s2)后,将运算结果从(d)以TIME型进行输出。



MUL_TIME和DIV_TIME:对输入的数据进行乘/除法运算(s1)×(s2)/(s1)÷(s2),将运算结果从(d)以TIME型进行输出。其中(s1)的输入值为TIME型,(s2)的输入值为INT型/DINT型/REAL型。





我们在使用的使用要注意一下时间的输入方式哦,是以T#后面带时间的方式,其中d代表天、h代表小时、m代表分钟、s代表秒、ms代表毫秒,我们可以以下图这样的程序去监控执行一下就清楚啦。



位移位功能

位移位指令包括n位左移SHL、n位右移SHR、n位循环左移ROL、n位循环右移ROR。我们就以n位左移SHL和n位循环左移ROL为例讲解一下。



n位左移SHL:将s中输入的16位数据/32位数据左移n位后,从d以与s相同的数据类型进行输出。下图是n的输入值为8的情况。



n位循环左移ROL:将s中输入的16位数据/32位数据向左n位旋转后,从d以与s相同的数据类型进行输出。下图是n的输入值为3的情况,向左旋转3位。



我们下面以一个简单的例子来学习下位移位函数的使用。02

【案例】编写流水灯控制程序
案例源程序下载,请看文末

有8盏灯,分别接Y0~Y7,要求按下启动按钮,从Y0开始每隔1s点亮下一盏熄灭上一盏,当最后一盏灯点亮后延时2s,然后以反方向以同样的方式进行点亮,当回到第一盏时,延时2后重新开始新的一个轮回,按下停止按钮指示灯熄灭。







以上就是比较、时间数据类型、位移位等功能函数的介绍,你学会了吗?

本帖子中包含更多资源

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

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

本版积分规则