LMC058嵌入式IO高速计数器有什么功能?详细实例讲解

描述

本文内容基于SoMachine v4.3版本编写,所用控制器型号:LMC058LF42,外接编码器型号:XCC-1406PR01K

LMC058控制器本体提供:

2 个嵌入式专用 I/O 模块(DM72F0 和 DM72F1),该模块具有:

5 路快速输入

2 路常规输入

2 路快速输出 

如下图所示,在SoMachine中DM72F0&DM72F1可配置的高速计数和编码器类型如下:

计数器

专用功能分配标准及最大数量如下:

计数器

从配置类型来说,LMC058高速计数可以配置为:

Event_Latch

该功能可以配置为两种情况:

锁存(缺省):

锁存是一种可以分配给快速输入的功能,该功能用于记忆(或锁存)持续时间短于扫描周期的所有脉冲,如果某个脉冲短于一次扫描,控制器将锁存该脉冲,而该脉冲将在下一次扫描时更新,且该锁存机制只能识别上升沿,下降沿不能锁存,锁存效果如下图:  

计数器

下面的时序图显示了锁存的效果:

计数器

简单的来说就是:锁存允许捕捉和记录持续时间短于控制器扫描时间的传入脉冲。当输入到达状态 1 时,此状态保持不变,直到 MAST  任务读取输入。

需要特别注意的是:锁存仅在MAST任务中可以被使用。

每个专用模块(DM72F0 或DM72F1)最多可以配置4路Event_latch(如下图所示)

计数器

事件:

事件检测可在跳变沿上启动事件任务。 事件任务”可由上升沿、下降沿或这两种输入(I0 到 I3)触发。

具体操作步骤如下:

配置DI点,如下图所示,配置I0为Event_Latch0,模式为事件,上升沿触发。

计数器

在应用程序树中新建一个TASK任务,类型选择“外部”,触发使用BLOCK0_I0。

计数器

配置完成后,将需要被事件触发的POU添加到Task任务下,当PLC检测到I0上升沿时,该POU被触发运行。

HSCSimple

HSCSimple就是单个输入计数器,配置成Simple类型可以支持两种类型的输入模式:

一次性(One-shot):在此模式下,A输入上每应用一次脉冲,计数器当前值寄存器就会(从用户定义的值)递减一次,直到计数器达到 0。(硬件配置如下图所示)

计数器

在配置好输入后,我们可以使用“HSCSimple_LMC058”功能块对其进行操作。

功能块引脚定义如下:

计数器

触发功能块后,可以看到输出管脚CurrentValue管脚的值会从配置中的预设值开始不断减小,直到0为止。

需要注意的是ACK_Modulo管脚可以复位计数值为初始值,但需要重新触发Enable和Sync。

2、模数回路(Modulo-loop):在此模式下,计数器从 0 计数到用户定义的模数值,然后返回到 0 并重新启动计数,周而复始,反复执行。(硬件配置如下图所示)

程序当中用到的功能块与上面相同。

另外假如需要在程序当中修改计数器的预设值的话可以使用“EXPERTSetParam”功能块。

功能块引脚定义如下:

计数器

其中Param参数管脚可以修改的参数具体如下:

计数器

计数器

这里我以修改HSCSimple0的模数值为例,将模数值改为1000。将“要写入的参数”改为“EXPERT_MODULO”,“参数值”改为1000。然后出发功能块即可。

写入完成后,Done管脚会置TRUE。

写入完成。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分