Los Voltage Controlled Oscillators (VCOs) o Osciladores Controlados por Tensión consisten en configuraciones de gran utilidad en una infinidad de aplicaciones que van desde simples instrumentos musicales hasta la conversión de señales de sensores para transmisión sin pérdidas. En este artículo seleccionamos 10 circuitos prácticos de VCO que pueden ser de gran utilidad para los lectores que desarrollan nuevos proyectos.

Los VCO o Osciladores Controlados por Tensión son circuitos que generan una señal cuya frecuencia de la tensión que se aplica a su entrada.

Podemos también llamarlos convertidores Tensión-Frecuencia pudiendo ser esas configuraciones encuadradas en la categoría de los convertidores analógicos a digital.

De hecho, las tensiones de entrada que los controlan son magnitudes analógicas y las frecuencias obtenidas en la salida son magnitudes digitales.

En instrumentación, estos convertidores encuentran una gama de aplicaciones muy amplia pues permiten la transmisión de informaciones de sensores sin pérdidas.

De hecho, un sensor resistivo u otro que proporciona una tensión en su salida, tiene esta tensión alterada o atenuada por un cable si tiene que ser transmitida a una distancia muy grande.

Una frecuencia, por otro lado, no se altera. Una señal que tenga una frecuencia determinada al principio del cable tendrá la misma al final, independientemente de su longitud.

El máximo que puede ocurrir es un cambio de la amplitud de la señal, fácilmente compensado con el uso de amplificadores.

Los VCO seleccionados utilizan las más diversas tecnologías que van desde los circuitos lógicos CMOS y TTL, pasando por transistores y llegando a los amplificadores operacionales. Se pueden usar como shields para microcontroladores en muchos casos.

El lector ciertamente encontrará entre las configuraciones sugeridas auela ue sirve para la aplicación que tiene en mente.

 

1. VCO CMOS - I

Los circuitos integrados CMOS son bastante sensibles a las tensiones de alimentación en cuanto al tiempo de propagación de las señales.

Así, podemos aprovechar la variación del tiempo de propagación de la señal en una puerta, para incluirlo en el circuito de realimentación y así controlar su frecuencia.

Esto se realiza en el circuito que se muestra en la figura 1 en la que podemos tener una amplia gama de valores cuando variamos la tensión de alimentación entre 3 y 15 V.

 


| Haga click en la imagen para ampliar |

 

En este rango de valores la frecuencia variará típicamente entre 450 Hz y 5 kHz cuando la tensión de control (Vc) recorre el rango de 3 a 9 V. Con 15 V esta frecuencia llegará cerca de los 50 kHz.

El valor central de la frecuencia generada depende del capacitor y su valor mínimo está en torno a 50 pF. El resistor también puede reducirse para que se alcancen frecuencias aún más altas.

Es importante observar que la señal de salida es rectangular, pero como el circuito es alimentado por la tensión de control, su amplitud varía con la frecuencia. Las señales de frecuencia más bajas son menos intensas.

Este problema puede resolverse con el uso de un búfer externo alimentado por una tensión fija.

 

2. VCO CMOS - II

El principio de funcionamiento del VCO mostrado en la figura 2 es exactamente el mismo del circuito anterior. La diferencia está en el hecho de que se utilizan inversores disparadores de un circuito integrado 4584.

 

 


| Haga click en la imagen para ampliar |

 

 

De la misma forma, tanto el resistor y el capacitor pueden ser alterados en función del rango de frecuencias deseadas y la tensión de control debe quedar entre 3 y 15 V.

 

3. VCO CMOS 4049

Una versión igualmente simple de VCO CMOS usando los convertidores del 4049 se muestra en la figura 3.

 


| Haga click en la imagen para ampliar |

 

 

Este circuito puede ser alimentado con tensiones entre 3 y 15 V siendo la frecuencia generada dependiente del capacitor y del resistor.

La tensión de control debe estar entre 0 y la tensión de alimentación.

La señal producida es rectangular y en este caso la amplitud de la señal es constante, igual a la tensión de alimentación. Recordamos que este circuito no funciona más allá de algunos megahertz.

 

4. Usando el 4046

El circuito integrado CMOS 4046 es poco usado, tanto por la dificultad de encontrarlo como por el hecho de que el conocido 567 es preferido en muchas aplicaciones en las que sirve.

Sin embargo, este PLL CMOS se caracteriza por su bajo consumo y por el hecho de poder ser configurado de modo a utilizar solamente su VCO interno.

Como hacer esto se muestra en la figura 4.

 


 

 

En el circuito mostrado, la banda de frecuencias generada, en función de la tensión de control es dada por el gráfico en la figura 5.

 


| Haga click en la imagen para ampliar |

 

Ver que es el capacitor C y R1 que determinan la frecuencia básica del circuito. La banda de frecuencias de la señal generada puede ser modificada por la resistencia R2.

Esta resistencia puede asumir valores entre 0 y 47 k para modificar la banda barrida.

También observamos que la tensión de control no debe superar la tensión de alimentación del circuito.

Observamos también que la frecuencia máxima generada por este circuito no va más allá de unos pocos megahertz.

 

5. VCO con control por potenciómetro

En la figura 6 mostramos cómo agregar un potenciómetro de 100 k ohms para implementar un oscilador controlado por ese componente.

 


 

 

El rango de frecuencias generadas puede ser obtenido por el gráfico de la figura 5.

La señal generada por este circuito es rectangular con amplitud igual a la tensión usada en su alimentación.

 

6. VCO con Operacionales

El circuito mostrado en la figura 7 utiliza dos de los cuatro amplificadores operacionales encontrados en el circuito integrado LM324.

 


 

 

La mayoría de los amplificadores operativos comunes se pueden utilizar en la misma configuración, dependiendo de sus características sólo el límite del rango de frecuencias generadas.

La frecuencia central del circuito es dada por el capacitor y el transistor usado puede ser cualquiera de uso general como el BC548.

La tensión de control puede variar entre 0 y 50 V típicamente, ya que tenemos valores elevados de resistores en la entrada y un circuito limitador.

El circuito tiene dos salidas en las que se obtienen señales triangulares y rectangulares.

La fuente de alimentación no necesita ser simétrica, pero se debe observar la necesidad de una tensión de polarización V / 2 (mitad de la tensión de alimentación) en la entrada positiva del segundo operativo.

Esta tensión se puede obtener con un divisor formado por dos resistencias de 10 k ohms conectados en serie.

 

7. VCO con comparador de tensión

Una configuración bastante similar a la anterior, pero utilizando tres de los cuatro comparadores de tensión existentes en el LM339 se muestra en la figura 8 y es sugerida por National Semiconductor.

 

 


| Haga click en la imagen para ampliar |

 

 

Este circuito genera señales de 700 Hz a 100 kHz, cuando la tensión de control (Vc) varía entre 250 mV y 50 V.

El circuito también tiene dos salidas en las que se obtienen señales rectangulares y triangulares.

Observe la necesidad de una polarización de V / 2 en dos puntos del circuito. Esta polarización se puede obtener con un divisor resistivo formado por dos resistores de 10 k ohms conectados en serie.

 

8. VCO de alta frecuencia con transistores

En la figura 9 mostramos un VCO controlado por Varicap capaz de generar señales en la banda de algunos megahetz hasta más de 200 MHz.

 


| Haga click en la imagen para ampliar |

 

 

Si bien el control de la frecuencia se logra cuando se utiliza un varicap como el BNB809, incluso un diodo común como el 1N4002 funciona como tal, pero con una banda menor de actuación.

La bobina, C2 y C3 dependen de la frecuencia central generada conforme a la siguiente tabla:

Rango de frecuencia

L1

C2

C3

1 a 4 MHz

40 espiras

100 pF

220 pF

4 a 10 MHz

12 espiras

47 pF

100 pF

10 a 50 MHz

8 espiras

22 pF

27 pF

50 a 100 MHz

6 espiras

10 pF

10 pF

100 a 150 MHz

3 espiras

4,7 pF

4,7 pF

La bobina se enrolla con un cable 28 AWG en forma de 1 cm sin núcleo.

Observamos que los valores de la tabla son aproximados, pudiendo ser necesarios cambios en función de las tolerancias.

El transistor también admite equivalentes como el 2N2218 y 2N2222 para obtener una potencia un poco mayor para la señal.

Esta señal se puede extraer tanto del colector del transistor como de una segunda bobina enrollada sobre L1. El número de espiras de esa bobina depende de la impedancia deseada pero en general quedará entre la mitad y una cuarta de las espiras de L1.

Los capacitores deben ser todos cerámicos.

 

9. VCO con el 4024

En la figura 10 mostramos más un circuito de oscilador controlado por tensión basado en componente CMOS.

 


 

 

La frecuencia básica de este circuito depende del capacitor y la tensión de alimentación puede ser típicamente entre 6 y 15 V.

Se observa que los valores menores de tensión de alimentación implican un rango menor de frecuencias, ya que la tensión de control no debe superar la tensión de alimentación.

La señal producida es rectangular con amplitud igual a la tensión de alimentación y la frecuencia máxima generada no pasará de algunos megahertz.

Para los valores de componentes indicados con un capacitor de 1 nF el rango de frecuencias con alimentación de 9 V y tensión de control de 0 a 9 V va de 1 a 3 Mhz.

 

10. VCO TTL con el 74123

El circuito integrado TTL 74123 consiste en un monoestable que puede configurarse para generar señales controladas por tensión, como muestra la figura 11.

 


| Haga click en la imagen para ampliar |

 

 

La frecuencia máxima de este circuito puede llegar a algunas decenas de megahertz y hasta si las subfamilias más rápidas del 74123 se utilizan.

En este circuito la tensión de control varía entre 0 y 6 V (puede ser realmente un poco más que los 5 V de la alimentación) cuando se obtienen frecuencias conforme el gráfico de la figura 12.

En el caso, la frecuencia variará entre 10 y 60 kHz típicamente, con señales rectangulares en la salida. La amplitud de las señales es igual a la tensión utilizada en la alimentación, en el caso 5 V.

Los diodos usados en este circuito son de uso general como los 1N4148 o equivalentes.

 

Conclusión

Como pudimos ver por los ejemplos dados en este artículo existen muchas formas de implementar un VCO usando componentes comunes.

La configuración utilizada y el tipo de tecnología para el componente activo principal depende básicamente de la aplicación y del rango de frecuencias deseado.

Evidentemente, en todos los proyectos existen cambios que pueden ser hechos para atender a características específicas e incluso compensar las tolerancias de los componentes.

Los lectores experimentados sabrán cómo trabajar estas configuraciones básicas para obtener el rendimiento que esperan en sus aplicaciones.

 

 

 

18.98MBMemory Usage50.58msRequest 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:49 [ "USER" => "apache" "HOME" => "/usr/share/httpd" "PATH_TRANSLATED" => "redirect:/ind...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1749198781 "last" => 1749198781...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (85.44KB) (788μs)
  • afterInitialise (1.14MB) (5.14ms)
  • afterRoute (179.21KB) (1.27ms)
  • beforeRenderComponent com_content (100.98KB) (430μs)
  • Before Access::preloadComponents (all components) (33.45KB) (300μs)
  • After Access::preloadComponents (all components) (107.06KB) (535μs)
  • Before Access::preloadPermissions (com_content) (1.57KB) (8μs)
  • After Access::preloadPermissions (com_content) (16.22MB) (26.4ms)
  • Before Access::getAssetRules (id:18727 name:com_content.article.22590) (514.65KB) (788μs)
  • After Access::getAssetRules (id:18727 name:com_content.article.22590) (7.38KB) (44μs)
  • afterRenderComponent com_content (430.48KB) (6.96ms)
  • afterDispatch (2.25KB) (56μs)
  • beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (1.61ms)
  • afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (333μs)
  • beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (104μs)
  • afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (1.19ms)
  • beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (600μs)
  • afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (64μs)
  • beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (207μs)
  • afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (50μs)
  • afterRender (281.75KB) (3.59ms)
  • 1 x After Access::preloadPermissions (com_content) (16.22MB) (52.2%)
    26.40ms
    1 x afterRenderComponent com_content (430.48KB) (13.75%)
    6.96ms
    1 x afterInitialise (1.14MB) (10.17%)
    5.14ms
    1 x afterRender (281.75KB) (7.1%)
    3.59ms
    1 x beforeRenderRawModule mod_articles_category (Banco de Circuitos) (358.53KB) (3.18%)
    1.61ms
    1 x afterRoute (179.21KB) (2.51%)
    1.27ms
    1 x afterRenderRawModule mod_finder (Busca_inteligente) (64.9KB) (2.36%)
    1.19ms
    1 x afterLoad (85.44KB) (1.56%)
    788μs
    1 x Before Access::getAssetRules (id:18727 name:com_content.article.22590) (514.65KB) (1.56%)
    788μs
    1 x beforeRenderModule mod_articles_category (Banco de Circuitos) (9.27KB) (1.19%)
    600μs
    1 x After Access::preloadComponents (all components) (107.06KB) (1.06%)
    535μs
    1 x beforeRenderComponent com_content (100.98KB) (0.85%)
    430μs
    1 x afterRenderRawModule mod_articles_category (Banco de Circuitos) (79.43KB) (0.66%)
    333μs
    1 x Before Access::preloadComponents (all components) (33.45KB) (0.59%)
    300μs
    1 x beforeRenderModule mod_finder (Busca_inteligente) (6.64KB) (0.41%)
    207μs
    1 x beforeRenderRawModule mod_finder (Busca_inteligente) (5.9KB) (0.21%)
    104μs
    1 x afterRenderModule mod_articles_category (Banco de Circuitos) (5.47KB) (0.13%)
    64μs
    1 x afterDispatch (2.25KB) (0.11%)
    56μs
    1 x afterRenderModule mod_finder (Busca_inteligente) (4.75KB) (0.1%)
    50μs
    1 x After Access::getAssetRules (id:18727 name:com_content.article.22590) (7.38KB) (0.09%)
    44μs
    1 x Before Access::preloadPermissions (com_content) (1.57KB) (0.02%)
    8μs
21 statements were executed, 5 of which were duplicates, 16 unique18.55ms1.63MB
  • SELECT @@SESSION.sql_mode;41μs968B/libraries/src/Session/MetadataManager.php:184Copy
  • SELECT `session_id` FROM `incbmx_session` WHERE `session_id` = :session_id LIMIT 1107μ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)214μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `incbmx_viewlevels`57μ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` = :guest92μ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`307μ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)377μ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` = 014.35ms1.48MBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `incbmx_content`411μs2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `incbmx_content` SET `hits` = (`hits` + 1) WHERE `id` = '22590'209μ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)177μs46.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`210μ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)387μ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`213μ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 ASC460μ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`245μs3.92KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `name`,`element` FROM `incbmx_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1208μ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)107μs648B/administrator/components/com_finder/src/Indexer/Taxonomy.php:325Copy
  • SELECT * FROM `incbmx_schemaorg` WHERE `itemId` = :itemId AND `context` = :context73μ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)214μs46.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` = 184μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:465Copy