Este es uno de los muchos artículos que escribimos enseñando a usar las matrices de contactos. Tenemos artículos en el sitio, como parte de nuestros cursos y libros. Este, específicamente es de un libro algo antiguo, pero es actual e ideal para los que se están iniciando en la construcción de circuitos electrónicos, profesores, estudiantes y aficionados. En él enseñamos cómo hacer montajes en la matriz de contactos, desde circuitos simples y didácticos, hasta los más elaborados.

(*) Este artículo forma parte del libro "Cómo hacer montajes electrónicos" que se puede descargar gratuitamente en nuestro sitio.

 

 

 La Matriz de Contactos

Las matrices de contactos que en otros países e incluso aquí también se pueden llamar Protoboards o Veroboards consisten en piezas plásticas dotadas de muchos agujeros para la introducción de los terminales de los componentes, conforme muestra la figura 1.

 

 

Figura 1 - Una matriz de contactos
Figura 1 - Una matriz de contactos

 

 

Estos agujeros dan acceso a contactos que se interconectan según un patrón bien definido. El patrón de estas conexiones se muestra en la figura 2.

 

Figura 2 - Patrón de la matriz de contactos
Figura 2 - Patrón de la matriz de contactos | Clique na imagem para ampliar |

 

 

De esta forma, las colas de contactos de los bordes (horizontales) se interconectan proporcionando lo que podemos denominar líneas de alimentación. En la parte central tenemos entonces hijas de agujeros con interconexión vertical.

 

Las dimensiones y las separaciones de los agujeros son tales que posibilitan el encaje directo de circuitos integrados con envoltorios DIL e incluso SIL, conforme muestra la figura 3.

 

 

Figura 3 - Enchufe de circuitos integrados y otros componentes en la matriz
Figura 3 - Enchufe de circuitos integrados y otros componentes en la matriz | Clique na imagem para ampliar |

 

 

Con esta disposición es posible constatar que dos terminales de componentes encajados en la misma fila se interconectan eléctricamente.

Para interconectar puntos diferentes de la misma placa como, por ejemplo, un perno a otro de dos circuitos integrados, como se muestra en la figura 4, usamos pedazos de hilos.

 

Figura 4 - Interconexión de componentes con cable
Figura 4 - Interconexión de componentes con cable | Clique na imagem para ampliar |

 

 

Ver que podemos realizar, con esa técnica, prácticamente cualquier montaje (que no sea crítico) sin la necesidad de usar soldadura, simplemente encajando los componentes en las posiciones convenientes.

 

La principal ventaja en el uso de la matriz de contactos está en los montajes experimentales, en los que necesitamos cambiar de componentes en todo momento hasta encontrar los valores o tipos que lleven al rendimiento deseado.

 

No se utiliza esta técnica para un montaje definitivo por motivos obvios: los componentes sólo están encajados y la probabilidad de escaparse en el transporte o en el uso común del aparato existe, además de tener aún la posibilidad de que ocurran movimientos que hagan que terminales se toquen unos en los otros.

 

En la figura 5 tenemos un circuito simple que tomamos como ejemplo para montaje en una matriz de contactos, para que el lector perciba cómo es sencillo su utilización.

 

Figura 5 - Circuito simple de una micro-alarma
Figura 5 - Circuito simple de una micro-alarma | Clique na imagem para ampliar |

 

 

La disposición de los componentes en la matriz de contacto para ese montaje se muestra en la figura 6.

 

Figura 6 - Circuito montado en una matriz de contactos
Figura 6 - Circuito montado en una matriz de contactos | Clique na imagem para ampliar |

 

 

Observe la coincidencia punto a punto de las conexiones. Observe también que las líneas, paralela superior e inferior, se dejan para la alimentación.

 

Las salidas de los elementos externos se pueden hacer con hilos comunes rígidos que se colocan en agujeros dejados para este propósito.

 

Evidentemente, como tenemos una disposición estandarizada, es necesario tener cierto cuidado en la planificación de las interconexiones y de las disposiciones de los componentes para que no necesitamos conexiones largas, lo que puede perjudicar el funcionamiento de circuitos más sensibles.

 

Si, por ejemplo, invertir la posición de un circuito integrado en relación a la alimentación, necesitaremos hilos más largos para la tensión positiva y la tierra.

 

En los circuitos lógicos digitales, que operan a alta velocidad, este tipo de conexión no es conveniente. Ya tratamos de este problema al analizar el proyecto de placas.

 

Por eso es siempre bueno estudiar antes el circuito para luego sólo intentar la disposición de componentes más favorable.

 

 

18.924MBMemory Usage52.13msRequest 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" => 1750515217 "last" => 1750515217...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.42KB) (221μs)
  • afterInitialise (1.14MB) (3.78ms)
  • afterRoute (179.16KB) (1.01ms)
  • beforeRenderComponent com_content (100.7KB) (552μs)
  • Before Access::preloadComponents (all components) (33.45KB) (262μs)
  • After Access::preloadComponents (all components) (107.06KB) (564μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (9μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (28.22ms)
  • Before Access::getAssetRules (id:27409 name:com_content.article.31042) (514.65KB) (743μs)
  • After Access::getAssetRules (id:27409 name:com_content.article.31042) (7.38KB) (61μs)
  • afterRenderComponent com_content (392KB) (8.05ms)
  • afterDispatch (2.25KB) (64μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (2.37ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (434μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (118μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (1.47ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (563μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (73μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (188μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (49μs)
  • afterRender (257.75KB) (3.22ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (54.12%)
    28.22ms
    1 x afterRenderComponent com_content (392KB) (15.44%)
    8.05ms
    1 x afterInitialise (1.14MB) (7.25%)
    3.78ms
    1 x afterRender (257.75KB) (6.18%)
    3.22ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (4.55%)
    2.37ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (2.81%)
    1.47ms
    1 x afterRoute (179.16KB) (1.94%)
    1.01ms
    1 x Before Access::getAssetRules (id:27409 name:com_content.article.31042) (514.65KB) (1.43%)
    743μs
    1 x After Access::preloadComponents (all components) (107.06KB) (1.08%)
    564μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.08%)
    563μs
    1 x beforeRenderComponent com_content (100.7KB) (1.06%)
    552μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.83%)
    434μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.5%)
    262μs
    1 x afterLoad (85.42KB) (0.42%)
    221μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.36%)
    188μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.23%)
    118μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.14%)
    73μs
    1 x afterDispatch (2.25KB) (0.12%)
    64μs
    1 x After Access::getAssetRules (id:27409 name:com_content.article.31042) (7.38KB) (0.12%)
    61μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.09%)
    49μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    9μs
21 statements were executed, 5 of which were duplicates, 16 unique11.34ms1.58MB
  • SELECT @@SESSION.sql_mode;33μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 174μ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)134μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`69μ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` = :guest80μ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`248μ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)361μ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.77ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`361μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '31042'207μ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)207μ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`199μ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)247μ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`183μ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 ASC414μ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`222μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1164μ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)99μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context59μ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)141μ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` = 164μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy