[三菱] 三菱FX3U控制器ST语言(八)

[复制链接]
查看85734 | 回复0 | 2024-4-28 08:43:20 | 显示全部楼层 |阅读模式
今天小编和大家分享一下计数器"COUNTER_FB_M”的使用方法

COUNTER_FB_M这个功能块的有点特殊,尤其特殊在输出端的复位上,和常规计数器CTU(E)、CTD(E)、CTUD(E)这一类的功能块不同。由于这个也属于功能块,所以在声明后可以像常规功能块一样调用。

在此,说一下此功能块的ST程序里使用方法

第一步:声明功能块。不知道如何声明功能块的朋友可以查看我往期文章,在这里不再赘述。

第二步:在程序里调用

在此,声明方式为 COUNTFBM1 : COUNT_FB_M,调用如下图:



添加调用后,就可以对计数器进行操作了。

首先说明一下各个输入端输出端的作用

Coil:脉冲信号输入端,和上升沿/下降沿计数器一样,当有信号输入时,开始累计。即从off->on时,计数+1。

Preset:当累计的数为20时,功能块输出。

ValueIn:开始累加的值。数值可以设为任意,但是为16bit singend。如当前值15所示,若Coil从off置为on,则ValueIn的数值会累加,同时,ValueOut的数值也会从ValueIn开始累计。

ValueOut:此数值跟随ValueIn累加。

Statues:当ValueOut的数值与Preset的数值相同时,此值置为1

此功能块计数到达上限值(Preset)后,即使Coil继续有脉冲信号输入,ValueIn与ValueOut也不会累加,Status持续输出为TRUE

若使用指令

IF M10 THEN

    M1 := FALSE;

END_IF;

当M10为TRUE,则可以将M1置为FALSE  当 M10由TRUE变为FALSE时,M1仍为TRUE

在此,需要通过RST指令将功能块复位,则可以将M1置为FALSE



通过执行以上图所示指令,即可实现M1置为FALSE

使用RST指令后,需要将M20由原来的TRUE置为FALSE则才能正常使用COUNTFBM1功能块。


本帖子中包含更多资源

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

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

本版积分规则