Los motores paso a paso pueden utilizarse para movimiento y posicionamiento y muchas otras funciones en las que se requiere un control preciso de la posición de una palanca de eje o de una parte móvil de un dispositivo. El propósito de este artículo es dar al lector información básica sobre el uso de motores paso a paso en mecatrónica y robótica y otros proyectos.

Nota: este artículo fue originalmente publicado en portugués y traducido al inglés por el autor para ser insertado en uno de sus libros.

   El principio de funcionamiento básico de un motor paso a paso no es muy diferente del de un motor de corriente continua o de corriente alterna: están formados por bobinas e imanes con un eje móvil que se mueve cuando se aplica potencia.

   La diferencia está en la forma en que se mueve el eje; Mueven el rotor aplicando potencia a diferentes bobinas en una secuencia predeterminada (escalonada).

  Motores de paso están diseñados para los requisitos de control fino y no sólo girar en el comando, sino también viajar cualquier número de pasos por segundo hasta la velocidad máxima.

  Otra característica escalonada que no puede ser emparejada por motores comunes es que los motores paso a paso pueden sostener su posición y resistir girar.

   La figura 1 muestra el símbolo que se ha adoptado para representar un motor paso a paso y la aparición de los tipos más comunes.

 

Figura 1 - Motores paso a paso - Símbolo y aspectos
Figura 1 - Motores paso a paso - Símbolo y aspectos

 

 

   El diseñador en muchos casos no necesita comprar motores de pasos caros para estos proyectos, ya que muchos de ellos se pueden encontrar en buenas condiciones de funcionamiento en unidades de disquetes de computadora viejas, impresoras y muchos otros dispositivos que se han retirado.

 

Como funciona

   Un motor paso a paso convierte la información digital en movimiento mecánico proporcional.

   Son diferentes de los motores de corriente continua, que se controlan cambiando la corriente que fluye a través de ellos.

   Los motores paso a paso son digitales en la operación los motores paso a paso se pueden encontrar en tres tipos básicos magnetz permanente, reluctancia variable e híbrido.

  La manera en que los devanados están organizados dentro de un motor determina cómo funciona.

   El tipo más común es el motriz escalonado de cuatro fases, pero también hay tipos de dos fases y seis fases.

   La figura 2 muestra la versión más popular: el motor paso a paso de cuatro fases.

 

Figura 2 - Un motor paso a paso de cuatro fases
Figura 2 - Un motor paso a paso de cuatro fases

 

 

  Dentro de este motor tenemos cuatro devanados. Dado que cada par de devanados tiene una conexión común, este tipo de motor puede ser identificado fácilmente por los seis cables como se muestra en la Figura 3.

 

 

Figura 3 - Conductores en un motor paso a paso de cuatro fases
Figura 3 - Conductores en un motor paso a paso de cuatro fases

 

 

   En funcionamiento normal los cables comunes están conectados al cable positivo de la fuente de alimentación y los otros cables están conectados a tierra durante un corto período de tiempo, durante el tiempo que desee energizar el devanado correspondiente.

   Cada vez que el motor está energizado, el eje del motor avanza por una fracción de revolución para que el eje gire correctamente, el devanado debe ser energizado por una secuencia de pulsos o ondas.

   Por ejemplo, si energiza los devanados A, B, C y D en esta secuencia, el eje gira en el sentido de las agujas del reloj.

   Por otro lado, si se invierte la secuencia, el motor gira en sentido contrario a las agujas del reloj.

   La Figura 4 muestra la secuencia que se utiliza habitualmente para energizar motores paso a paso de cuatro fases.

 

Figura 4 - impulsos que energizan un motor paso a paso de cuatro fases
Figura 4 - impulsos que energizan un motor paso a paso de cuatro fases

 

 

   Otra forma de energizar un motor paso a paso es aplicando una secuencia on-on / off-off.

 

Esta secuencia se muestra en la Figura 5.

 

Figura 5 - Secuencia de encendido y apagado que energiza un motor paso a paso
Figura 5 - Secuencia de encendido y apagado que energiza un motor paso a paso

 

 

   Tiene la ventaja de aumentar la potencia de accionamiento del motor y proporcionar una rotación de eje más precisa.

   Otro tipo común de motor paso a paso es la unidad de dos fases mostrada en la Figura 6.

 

Figura 6 - Motor paso a paso de dos fases
Figura 6 - Motor paso a paso de dos fases

 

 

   Este motor paso a paso está formado por dos bobinas, como se muestra en la figura, y se puede identificar fácilmente por sus cuatro hilos.

   Este tipo de motor es energizado utilizando una secuencia diferente en la que se considera la dirección de la corriente a través de cada ensanchamiento, como se muestra en la Figura 7.

 

Figura 7 - Secuencia de control del motor paso a paso bifásico
Figura 7 - Secuencia de control del motor paso a paso bifásico

 

 

    En algunos tipos, la conexión -V se puede reemplazar por tierra.

   También hay motores paso a paso con más fases, p. El motor paso a paso de seis fases, pero no son muy comunes. Los motores con más fases son más precisos pero también más caros.

   Para un propósito sencillo, que abarca muchas aplicaciones en proyectos de robótica y mecatrónica, se recomienda el motor paso a paso de cuatro fases y la mayoría de los proyectos de esta sección están diseñados para este tipo de motor.

 

Cómo utilizar motores paso a paso

Como hemos visto, los devanados de un motor paso a paso deben estar energizados correctamente para lograr un funcionamiento correcto.

   Esto significa que cuando utilice un motor paso a paso, necesitará conocer no sólo las especificaciones eléctricas del dispositivo, sino también las especificaciones mecánicas.

   Las especificaciones más importantes se describen a continuación.

 

Tensión y corriente

   Los motores paso a paso se clasifican generalmente para 5, 6 o 12 V.

   A diferencia de los motores de corriente continua, no se recomienda aplicar sobretensiones a los devanados de un motor paso a paso.

   Las sobretensiones de más del 30% de la tensión nominal pueden quemar los devanados.

   Las clasificaciones de corriente dependen de la aplicación (tamaño y par). Los tipos comunes pueden dibujar corrientes en el rango de 50 mA a más de 1 A.

  Cuanto mayor sea la corriente y la tensión, mayor será el torque.

 

   Cuando se diseña una fuente de alimentación para una aplicación que utiliza un motor paso a paso, es importante considerar que las clasificaciones de corriente se dan por devanado.

   Por lo tanto, la fuente de alimentación debe ser capaz de suministrar al menos el doble de corriente por devanado u ocho veces la corriente por devanado en un tipo de cuatro fases.

 

 Secuencia

   Aunque la mayoría de los motores paso a paso usan una de las dos secuencias mostradas anteriormente en la teoría de pasos, es posible ñnd unidades que funcionan de manera diferente.

   Cuando se utilizan tales unidades, es importante determinar la secuencia de pulso operacional correcta.

 

Ángulo de paso

   Cuando un pulso de la secuencia se aplica al motor avanza un paso.

   Esto significa que el eje mueve un número especificado de grados, denominado ángulo de escalón.

    El ángulo puede variar entre los tipos de motor en el rango entre 0,8 y 90 °.

   En un motor paso a paso de 90 °, cuatro impulsos mueven el eje uno completo como se muestra en la Figura 8.

 

Figura 8 - Ángulo de inclinación para un motor de 90 grados
Figura 8 - Ángulo de inclinación para un motor de 90 grados

 

 

   Sin embargo, es más frecuente que los motores paso a paso con ángulos de paso de 1,8 °.

   Esto significa que usted tiene que aplicar 200 impulsos al circuito de control para hacer que el motor complete una revolución.

 

La frecuencia del pulso

   La frecuencia del pulso determina la velocidad del motor.

 Si está utilizando un motor de ángulo de paso de 1,8 ° y aplica 200 impulsos por segundo, este motor funcionará con una rotación por segundo o 60 rotaciones por minuto (60 rpm).

  Dado el ángulo de paso, es fácil calcular las rpm.

   Los motores paso a paso no están destinados a aplicaciones de alta velocidad.

   La velocidad máxima recomendada está en el rango de 2 o 3 vueltas por segundo, o en el rango de 120 a 180 rpm.

   Es importante recordar que en este tipo de motor el par disminuye a medida que aumenta la velocidad.

 

Torque

   El torque producido por un motor paso a paso no es alto. Un motor paso a paso típico puede proporcionar sólo unos pocos gramos por centímetro de torque en funcionamiento.

   Esto significa que, en aplicaciones donde se necesita un par de torsión alto, se deben añadir cajas de cambio.

   Dado que el par cae a velocidades más altas, este tipo de motor se utiliza mejor en los modos de baja velocidad.

 

Efecto de frenado

   Si la corriente en un devanado se mantiene después de que se aplica un pulso, el motor paso a paso no puede continuar girando.

   El eje se bloqueará como si hubiera aplicado un freno.

   Un circuito que mantiene la corriente en un devanado para establecer una posición fijada actúa efectivamente como freno electrónico en un motor paso a paso.

 

 

18.917MBMemory Usage38.83msRequest 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
array:1 [ "id" => "2228:como-funcionan-motores-paso-a-paso-mec029s" ]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:49 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "PATH_TRANSLATED" => "redirect:/ind...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1746362374 "last" => 1746362374...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.23KB) (319μs)
  • afterInitialise (1.14MB) (3.67ms)
  • afterRoute (65.49KB) (353μs)
  • beforeRenderComponent com_content (30.98KB) (423μs)
  • Before Access::preloadComponents (all components) (97.45KB) (203μs)
  • After Access::preloadComponents (all components) (112.46KB) (407μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (7μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (18.61ms)
  • Before Access::getAssetRules (id:8 name:com_content) (480.08KB) (1.82ms)
  • After Access::getAssetRules (id:8 name:com_content) (7.36KB) (29μs)
  • afterRenderComponent com_content (445.6KB) (5.61ms)
  • afterDispatch (2.25KB) (45μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (1.57ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (319μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (91μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (63.02KB) (1.13ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (556μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (67μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (184μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (47μs)
  • afterRender (300KB) (3.24ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (47.92%)
    18.61ms
    1 x afterRenderComponent com_content (445.6KB) (14.44%)
    5.61ms
    1 x afterInitialise (1.14MB) (9.45%)
    3.67ms
    1 x afterRender (300KB) (8.35%)
    3.24ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (480.08KB) (4.69%)
    1.82ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (359.33KB) (4.05%)
    1.57ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (63.02KB) (2.92%)
    1.13ms
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (10.1KB) (1.43%)
    556μs
    1 x beforeRenderComponent com_content (30.98KB) (1.09%)
    423μs
    1 x After Access::preloadComponents (all components) (112.46KB) (1.05%)
    407μs
    1 x afterRoute (65.49KB) (0.91%)
    353μs
    1 x afterLoad (85.23KB) (0.82%)
    319μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.82%)
    319μs
    1 x Before Access::preloadComponents (all components) (97.45KB) (0.52%)
    203μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.39KB) (0.47%)
    184μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.23%)
    91μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.17%)
    67μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.44KB) (0.12%)
    47μs
    1 x afterDispatch (2.25KB) (0.12%)
    45μs
    1 x After Access::getAssetRules (id:8 name:com_content) (7.36KB) (0.07%)
    29μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    7μs
22 statements were executed, 5 of which were duplicates, 17 unique10.9ms1.56MB
  • SELECT @@SESSION.sql_mode;31μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 178μ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)155μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`46μ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` = :guest67μs1.64KBParams/libraries/src/Access/Access.php:868Copy
  • 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)248μ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.54ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_assets`308μs1.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • SELECT * FROM `incbmx_assets` WHERE `name` = 'com_content.article.2228'72μs1.52KB/libraries/src/Table/Table.php:780Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`255μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '2228'126μ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)159μ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`183μ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)290μs3.97KBParams/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`175μ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 ASC378μ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`232μs5.17KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1163μs656B/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)93μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context64μ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)158μ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` = 174μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content
  • warningassets - No asset found for com_content.article.2228, falling back to com_content