熟悉三菱GX软件的朋友,应该知道在GX软件中有个部件选择窗口,在这个窗口中我们可以看到通用函数/FB,其中就包括了双稳态功能块、边缘检测功能块、定时器功能块和计数器功能块,那么今天就给大家介绍一下通用FB功能块指令的内容。
双稳态功能块:
双稳态功能块分为两个,置位优先SR和复位优先RS。置位优先功能块是当S1和R都为1时,优先执行置位的操作。复位优先功能块是当S和R1都为1时,优先执行复位的操作。
举个最简单的程序例子,我们可以用置位优先和复位指令实现单按钮控制启停功能。
边缘检测功能块:
边缘检测功能块分为两个,上升沿边缘检测R_TRIG和下降沿边缘检测F_TRIG。上升沿边缘检测是检测信号的上升沿后输出一个扫描周期的脉冲信号。
下降沿边缘检测是检测信号的下降沿后输出一个扫描周期的脉冲信号。
其实这两个指令也很简单,上升沿边缘检测功能块R_TRIG与PLS、LDP指令功能是一样的,下降沿边缘检测功能块F_TRIG与PLF、LDF指令功能是一样的,我们看下图的程序,接通X0和接通X1,接通X2实现的效果是一样的。
还是前面的例子单按钮控制启停功能,我们用边缘检测功能块指令也可以实现。
计数器功能块:
计数器功能块包括有加计数器CTU、减计数器CTD、加减计数器CTUD和计数器功能块COUNTER_FB_M。如果有用过西门子PLC的朋友,会发现跟西门子PLC的计数器指令类似。
CTU/CTD/CTUD功能块管脚定义:CU是加计数脉冲输入,CD是减计数脉冲输入;
R是计数值复位,LD是装载计数值;
PV是计数的设定值,CV是计数的当前值;
Q是计数完成标志;
QU是加计数完成,QD是减计数完成;
只有PV和CV是INT的数据类型,其余都是BOOL类型。
加计数器CTU:
如果CU变为OFF→ON,对CV进行加计数(+1)。当CV=PV时,则Q变为ON,加计数停止。
如果将R置为ON,则Q变为OFF,CV被设置为0。
减计数器CTD:
如果CD变为OFF→ON,对CV进行减计数(-1)。当减到CV=0时,则Q变为ON,减计数停止。如果将LD置为ON,则Q变为OFF,CV被设置为PV。
加减计数器CTUD:
如果CU、CD同时变为OFF→ON,优先进行加计数(+1)。如果将R、LD同时置为ON,优先将当前值复位为0。
COUNTER_FB_M功能块管脚定义:
Coil是指令执行的驱动条件;
Preset是计数器的设定值;
ValueIN是计数器初始值,ValueOut是计数器当前值;
Status是输出;
其中Coil和Status是BOOL类型,Preset和ValueIN是INT类型,ValueOut是ANY16类型。
COUNTER_FB_M功能块:
检测Coil的上升沿进行计数,计数从ValueIN的值开始,如果变为Preset的值,则Status变为ON。当前的计数值被存储到ValueOut中。
我们再比较一下CTU和COUNTER_FB_M功能块之间有什么区别,我们看下面的程序,CTU指令用R管脚进行复位,而COUNTER_FB_M是没有复位的管脚的,我们需要另外的编写复位的程序。
以上先介绍了双稳态功能块、边缘检测功能块、计数器功能块的内容,因为篇幅有限,我们在下一篇文章继续介绍定时器功能块指令的使用!
此外,还会讲几个定时器和计数器功能块的编程案例哦,欢迎大家继续关注更新~
(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)