CoDeSys入门实战一起学习(二十六):功能块(FBD)运算块与EN/ENO指令精讲及计数控制案例

函数及功能块调用

如要实现函数或功能块的调用就要用到运算块,运算块可以代表所有的 POU ,包括功能块、函数甚至包括程序。功能块如计时器,计数器等。可以在FBD,LD的节中插入。运算块可以有任意的输入,任意输出。函数及功能块的图形符号。

与接点和线圈一起,用户也可以插入功能块和程序。在网络中,它们必须有带布尔值的一个输入和一个输出,并可在相同位置上像接点那样使用,也就是说在 LD 网络的左侧。

一、运算块与EN/ENO指令核心原理

功能块图(FBD)以运算块为核心,运算块可代表函数、功能块、程序等所有POU,EN/ENO为运算块的条件执行接口,用于实现功能块的启动控制和状态反馈,是FBD复杂逻辑控制的核心指令。

1. 运算块分类及基础规则

  • 标准运算块:无EN/ENO接口,前端能流满足条件时自动执行,执行结果直接传递至下游,适用于无需条件控制的基础运算(如普通定时器、计数器)。
  • 带EN/ENO的运算块 :含EN(执行使能)和ENO(执行反馈)两个接口,仅当EN为TRUE时,运算块执行运算;执行完成后ENO同步为TRUE,反馈执行状态;EN为FALSE时,运算块不执行,ENO同步为FALSE。
  • 空运算块:需手动输入功能块/函数名,适用于熟悉指令的用户,可快速调用自定义功能块,支持带EN/ENO和标准两种模式。

2. EN/ENO指令关键特性

EN与ENO为布尔型接口,遵循"执行-反馈"闭环逻辑:

  1. EN为执行前提,优先级高于运算块内部逻辑,即使内部参数满足,EN为FALSE时仍不执行。
  2. ENO为执行结果反馈,仅当运算块正常执行(无故障)时为TRUE,可用于触发下游逻辑(如联动其他功能块)。
  3. 若将EN接口接常数TRUE,带EN/ENO的运算块与标准运算块功能一致,可灵活切换控制模式。

二、实操案例:带使能的工件计数控制(包装生产线)

1. 控制需求

包装生产线中,需对 passing 工件计数:① 计数使能信号(bCountEnable)有效时,工件检测传感器(bPartDetect)每触发一次(上升沿),计数器加1;② 计数达到设定值(PV=100)时,触发报警信号(bCountAlarm);③ 通过ENO接口反馈计数器执行状态(bCountRunning)。

2. 变量声明

|----------------------------------------------------------------------------|
| |

3. FBD程序及指令应用解析

  1. 运算块选择:选用带EN/ENO的CTU加计数器功能块(fb_CTU),实例名fb_CTU作为唯一标识,块内标注功能块类型CTU,输入接口CU接bPartDetect,PV设为100。
  2. EN/ENO指令应用:EN接口接bCountEnable,当bCountEnable为TRUE时,计数器启动,检测bPartDetect的上升沿并计数;ENO接口接bCountRunning,计数器正常执行时bCountRunning为TRUE,反馈计数状态。
  3. 计数逻辑:每检测到一次bPartDetect上升沿,fb_CTU.CV(当前计数值)加1;当CV≥PV时,fb_CTU.Q变为TRUE,触发bCountAlarm线圈通电,发出报警信号。
  4. 停止逻辑:当bCountEnable为FALSE时,EN为FALSE,计数器停止计数,ENO变为FALSE,bCountRunning同步置FALSE,即使bPartDetect触发,CV也保持不变。
相关推荐
苏州邦恩精密几秒前
江苏三维扫描仪定制:制造企业如何提升检测效率?
人工智能·科技·机器学习·自动化·制造
施努卡机器视觉3 分钟前
SNK施努卡 | 电子油泵自动化生产线:精密制造的技术跃迁与产业价值
运维·自动化·制造
ShyanZh6 分钟前
【skill】Agent-Browser:AI代理的浏览器自动化实战指南
运维·人工智能·自动化·skill·agent-browser
-To be number.wan8 分钟前
计算机组成原理 | 虚拟存储器
学习·计算机组成原理
KKKlucifer10 分钟前
智能研判、本地运算、一键运维:新一代安全管控产品的三大核心能力
运维·安全
MXsoft61810 分钟前
##务健康度评分:将运维指标转化为业务价值的实践指南
运维
LT101579744415 分钟前
2026年RPA物流机器人,助力供应链单据自动化全场景落地选型指南
机器人·自动化·rpa
暖馒16 分钟前
WPF-Prism学习入门步骤记录
学习·wpf
難釋懷18 分钟前
Nginx使用sticky模块完成对Nginx的负载均衡
运维·nginx·负载均衡
MartinYeung520 分钟前
[论文学习]透过增强式 Few-Shot Learning 实现高效 PII 从大型语言模型中提取
人工智能·学习·语言模型