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也保持不变。
相关推荐
LT10157974447 小时前
2026年国产兼容RPA选型指南:国产系统与软件全适配
自动化·rpa
吃好睡好便好7 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
abigriver8 小时前
打造 Linux 离线大模型级语音输入法:Whisper.cpp + 3090 显卡加速与 Rime 中英混输终极调优指南
linux·运维·whisper
nashane8 小时前
HarmonyOS 6学习:CapsLock键失效诊断与长截图完整实现指南
学习·华为·harmonyos
qingfeng154158 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信
pengyi8710158 小时前
独享IP池自动化维护方案,智能检测自动延长使用寿命
网络协议·tcp/ip·自动化
charlie1145141919 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
Agent手记9 小时前
异常考勤智能预警与处理与流程优化方案 | 基于企业级Agent的超自动化实战教程
运维·人工智能·ai·自动化
cen__y9 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
xian_wwq10 小时前
【学习笔记】AGC协调控制系统概述
笔记·学习