Existen aplicaciones en las que es importante rechazar señales específicamente en la frecuencia de 60 Hz (red de energía) (*). En este artículo, basado en material de National Semiconductor, describimos dos circuitos con amplificadores operacionales para el rechazo de la frecuencia indicada.

(*) Con cambios de valores de los componentes el circuito se puede usar en la red de 50 Hz.

 

Un filtro rechazador de determinada frecuencia deja pasar señales de todas las otras frecuencias, pero presenta una baja ganancia o incluso atenuación en la frecuencia para la cual es sintonizado.

Con amplificadores operacionales la configuración preferida para obtener un filtro capaz de rechazar una frecuencia es la que hace uso del doble T, como muestra la figura 1.

 

Figura 1 - Configuración básica mediante un doble-T
Figura 1 - Configuración básica mediante un doble-T | Haga click en la imagen para ampliar |

 

Utilizando sólo resistores y capacitores, esta configuración no necesita un tipo de componente que es problemático en los proyectos de baja frecuencia, que es el inductor.

El primer circuito que presentamos combina un doble T con un amplificador operacional LM102 de National Semiconductor, y permite que se obtengan factores Q de hasta 50.

Para obtener este factor Q con el uso de capacitores pequeños y con una alta impedancia de entrada el amplificador operacional se conecta como seguidor de tensión (buffer).

En la figura 2 tenemos el circuito propuesto con las fórmulas que permiten calcular la frecuencia rechazada y también la relación entre los valores de los elementos del doble T.

 

Figura 2 - Circuito con el LM102
Figura 2 - Circuito con el LM102 | Haga click en la imagen para ampliar |

 

 

Observe que la unión de C3 y R3, que en el doble T convencional es puesta a tierra, en este circuito se conecta a la salida del operacional.

Como la impedancia de salida del operacional en esta configuración y muy baja, ni la frecuencia ni la profundidad del rechazo se alteran, pero en compensación la realimentación obtenida proporciona un considerable aumento de la selectividad.

En la figura 3 tenemos el gráfico que muestra la diferencia de comportamiento obtenida cuando utilizamos realimentación con el doble T (bootstrap) y cuando lo usamos de manera simple.

 

Figura 3 - Comportamiento de los filtros propuestos
Figura 3 - Comportamiento de los filtros propuestos | Haga click en la imagen para ampliar |

 

Dependiendo de la aplicación es interesante tener un control sobre el factor Q del circuito, pues puede ocurrir que la frecuencia de la señal que deseamos bloquear varía ligeramente, o cuando existen señales espurias de frecuencias muy próximas a la central del filtro y que deben ser rechazadas.

Para este propósito se puede utilizar el circuito de la figura 4, que hace uso de dos amplificadores operacionales y que también es sugerido por National Semiconductor.

 

Figura 4 - Filtro con dos operativos
Figura 4 - Filtro con dos operativos | Haga click en la imagen para ampliar |

 

En este circuito, un segundo seguidor de tensión proporciona la retroalimentación al doble T, pero de manera controlada por R4, de modo que la selectividad (factor Q) puede ser variada entre 0,3 y 50.

Observe que el amplificador operacional adicional, conectado como seguidor de tensión, es necesario para realimentar el circuito de modo que la presencia del potenciómetro no afecte la frecuencia, pues la realimentación debe ser mantenida a partir de una fuente de baja impedancia.

La respuesta de este filtro variará entre la de una doble T simple y la de un doble T con arranque. Es interesante observar lo que ocurre con la frecuencia y la selectividad de estos circuitos cuando los componentes del doble T no están perfectamente casados.

Si, por ejemplo, el valor de C3 es del 1% al 10% por encima de lo indicado por los cálculos, la selectividad del circuito aumenta, pero en compensación la profundidad del punto de rechazo disminuye.

Si el valor de C3 es del 10% al 20%? por encima de lo indicado, el sistema pasa a presentar una ganancia de tensión y funcionará como un amplificador sintonizado.

Las ganancias de 400 se obtuvieron en las pruebas.

Los mayores valores de C3 hacen que el circuito oscile, proporcionando en la salida una onda senoidal recortada.

Para obtener mayor precisión con un mínimo de influencia por la variación de la temperatura. se recomienda el uso de capacitores de mica plateada o policarbonato y resistores de precisión.

Los resistores con 0,1% de precisión y capacitores del 1% son importantes para obtener mayor profundidad en el rechazo, llegando a 60 dB con estas tolerancias.

Los capacitores de disco de cerámica deben usarse para desacoplar la alimentación de los integrados, con el montaje lo más cerca posible de sus puntos de alimentación.

 

18.924MBMemory Usage38.97msRequest Duration
Joomla! Version5.2.3
PHP Version8.3.20
Identityguest
Response200
Templatecassiopeia
Database
Server
mysql
Version
10.5.22-MariaDB
Collation
latin1_swedish_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:51 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "SCRIPT_NAME" => "/index.php" "RE...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1751851619 "last" => 1751851619...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.42KB) (217μs)
  • afterInitialise (1.14MB) (3.29ms)
  • afterRoute (179.16KB) (843μs)
  • beforeRenderComponent com_content (100.7KB) (424μs)
  • Before Access::preloadComponents (all components) (33.45KB) (185μs)
  • After Access::preloadComponents (all components) (107.06KB) (359μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (7μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (19.6ms)
  • Before Access::getAssetRules (id:143 name:com_content.article.9841) (514.65KB) (625μs)
  • After Access::getAssetRules (id:143 name:com_content.article.9841) (7.38KB) (41μs)
  • afterRenderComponent com_content (382.15KB) (6.57ms)
  • afterDispatch (2.25KB) (44μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (1.52ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (297μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (90μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (1.06ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (533μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (66μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (183μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (46μs)
  • afterRender (257.75KB) (2.87ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (50.3%)
    19.60ms
    1 x afterRenderComponent com_content (382.15KB) (16.85%)
    6.57ms
    1 x afterInitialise (1.14MB) (8.43%)
    3.29ms
    1 x afterRender (257.75KB) (7.38%)
    2.87ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (3.9%)
    1.52ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (2.72%)
    1.06ms
    1 x afterRoute (179.16KB) (2.16%)
    843μs
    1 x Before Access::getAssetRules (id:143 name:com_content.article.9841) (514.65KB) (1.6%)
    625μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.37%)
    533μs
    1 x beforeRenderComponent com_content (100.7KB) (1.09%)
    424μs
    1 x After Access::preloadComponents (all components) (107.06KB) (0.92%)
    359μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.76%)
    297μs
    1 x afterLoad (85.42KB) (0.56%)
    217μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.47%)
    185μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.47%)
    183μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.23%)
    90μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.17%)
    66μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.12%)
    46μs
    1 x afterDispatch (2.25KB) (0.11%)
    44μs
    1 x After Access::getAssetRules (id:143 name:com_content.article.9841) (7.38KB) (0.11%)
    41μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    7μs
21 statements were executed, 5 of which were duplicates, 16 unique11.18ms1.58MB
  • SELECT @@SESSION.sql_mode;28μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 163μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `incbmx_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)141μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`50μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `incbmx_usergroups` AS `a` LEFT JOIN `incbmx_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest64μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`231μs20.2KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39)210μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `incbmx_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 07.87ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`426μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '9841'152μs48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)143μs22.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`175μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `incbmx_contentitem_tag_map` AS `m` INNER JOIN `incbmx_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)228μs3.98KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`235μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM incbmx_fields AS a LEFT JOIN `incbmx_languages` AS l ON l.lang_code = a.language LEFT JOIN incbmx_users AS uc ON uc.id=a.checked_out LEFT JOIN incbmx_viewlevels AS ag ON ag.id = a.access LEFT JOIN incbmx_users AS ua ON ua.id = a.created_user_id LEFT JOIN incbmx_fields_groups AS g ON g.id = a.group_id LEFT JOIN `incbmx_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray6,:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC485μs4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `incbmx_categories` AS `s` INNER JOIN `incbmx_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`183μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1144μs1.89KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `incbmx_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1,5)75μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context61μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `incbmx_content` AS `a` INNER JOIN `incbmx_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `incbmx_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `incbmx_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `incbmx_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `incbmx_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)156μs22.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `incbmx_scheduler_tasks` AS `a` WHERE `a`.`state` = 161μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy