Diferencia entre revisiones de «Lenguaje ladder»
Se añade imagen. |
|||
(No se muestran 107 ediciones intermedias de 65 usuarios) | |||
Línea 1: | Línea 1: | ||
[[ |
[[Archivo:Ladder diagram.png|miniatura|250px|Detalle de diagrama ''ladder'' con distintos elementos de programación.]] |
||
El ''' |
El '''lenguaje ''ladder''''', '''diagrama ''ladder''''', '''diagrama/lógica de contactos''', o '''diagrama en escalera''', es un lenguaje de programación gráfico muy popular dentro de los [[autómata programable|autómatas programables]] debido a que está basado en los esquemas eléctricos de control clásicos. De este modo, con los conocimientos que todo técnico o [[ingeniero]] eléctrico posee, es muy fácil adaptarse a la programación en este tipo de lenguaje. |
||
Ladder es uno de los varios lenguajes de programación para los [[controlador lógico programable|controladores lógicos programables]] (PLCs) estandarizados con [[IEC 61131-3]]. |
|||
==Elementos de programación== |
|||
Para programar un autómata con '''LADDER''', además de estar familiarizado con las reglas de los [[Circuito de conmutación|circuitos de conmutación]], es necesario conocer cada uno de los elementos de que consta este lenguaje. A continuación se describen de modo general los más comunes. |
|||
== Elementos de programación == |
|||
Para programar un autómata con Ladder, además de estar familiarizado con las reglas de los [[Circuito de conmutación|circuitos de conmutación]], (también denominada Lógica de Contactos), es necesario conocer cada uno de los elementos de que consta este lenguaje. A continuación se describen de modo general los más comunes. |
|||
{| class="wikitable" |
|||
{| border=1 style="right; margin:0 0 1em 1em" |
|||
|+Elementos básicos en |
|+Elementos básicos en Ladder |
||
!Símbolo!!Nombre!!Descripción |
!Símbolo!!Nombre!!Descripción |
||
|- |
|||
|----------------- |
|||
| |
|[[Archivo:Capacitor symbol.svg|50px|center]] |
||
| align=center | Contacto NA ||Se activa cuando hay un uno lógico en el elemento que representa; esto es, una entrada (para captar información del proceso a controlar), una variable interna o un bit de sistema. |
|||
|- |
|||
|----------------- |
|||
|[[Archivo:bobinaNC.svg|100px|center]] |
|||
| |
| align=center |Bobina NC ||Se activa cuando la combinación que hay a su entrada (izquierda) da un cero lógico. Su activación equivale a decir que tiene un cero lógico. Su comportamiento es complementario al de la bobina NA. |
||
|- |
|||
|----------------- |
|||
|[[Archivo:bobinaSet.svg|100px|center]] |
|||
|<center>[[Imagen:bobinaSet.svg|100px]]</center>||<center>Bobina SET</center>||Una vez activa (puesta a 1) no se puede desactivar (puesta a 0) si no es por su correspondiente bobina en RESET. Sirve para memorizar bits y usada junto con la bobina RESET dan una enorme potencia en la programación. |
|||
| align=center | Bobina SET ||Una vez activa (puesta a 1) no se puede desactivar (puesta a 0) si no es por su correspondiente bobina en RESET. Sirve para memorizar bits y, usada junto con la bobina RESET, dan una enorme potencia en la programación. |
|||
|----------------- |
|||
|- |
|||
|----------------- |
|||
| |
|[[Archivo:bobinaJump.svg|100px|center]] |
||
| align=center | Bobina JUMP ||Permite saltarse instrucciones del programa e ir directamente a la etiqueta que se desee. Sirve para realizar subprogramas. |
|||
|} |
|} |
||
=== Bit (Memoria) === |
|||
Se suele indicar mediante los caracteres B ó M y tienen tanto bobinas como contactos asociados a las mismas de los tipos vistos en el punto anterior. Su número de identificación suele oscilar, en general, entre 0 y 255. Su utilidad fundamental es la de almacenar información intermedia para simplificar esquemas y programación. |
|||
Se suele indicar mediante los caracteres B o M y tienen tanto bobinas como contactos asociados a las mismas de los tipos vistos en el punto anterior. Su número de identificación suele oscilar, en general, entre 0 y 255. Su utilidad fundamental es la de almacenar información intermedia para simplificar esquemas y programación. |
|||
Los bits de sistema son contactos que el propio autómata activa cuando conviene o cuando se dan unas circunstancias determinadas. Existe una gran variedad, siendo los más importantes los de arranque y los de reloj, que permiten que empiece la ejecución desde un sitio en concreto y formar una base de tiempos respectivamente. Su nomenclatura es muy diversa, dependiendo siempre del tipo de autómata y fabricante. |
Los bits de sistema son contactos que el propio autómata activa cuando conviene o cuando se dan unas circunstancias determinadas. Existe una gran variedad, siendo los más importantes los de arranque y los de reloj, que permiten que empiece la ejecución desde un sitio en concreto y formar una base de tiempos respectivamente. Su nomenclatura es muy diversa, dependiendo siempre del tipo de autómata y fabricante. |
||
En forma práctica, los contactos pueden representar, de acuerdo a la programación que se realice, la entrada de información, por ejemplo el activamiento de un sensor, o el activamiento de una memoria interna, comúnmente denominada M. |
|||
===Temporizadores=== |
|||
Las Bobinas, representan a esas memorias M así como las salidas al exterior, activan o desactivan elementos como puede ser una luz, un motor eléctrico, un solenoide de una válvula neumática, etc. |
|||
El temporizador es un elemento que permite poner cuentas de tiempo con el fin de activar bobinas pasado un cierto tiempo desde la activación. El esquema básico de un temporizador varía de un autómata a otro, pero siempre podemos encontrar una serie de señales fundamentales, aunque, eso sí, con nomenclaturas totalmente distintas. |
|||
En algunas versiones de Ladder, como el relé inteligente ZELIO, las bobinas representan también funciones, como temporizadores, contadores y comparadores. |
|||
[[Imagen:Temporizador_ladder.PNG|framed|Temporizador]] |
|||
=== Temporizadores === |
|||
Podemos observar, en la figura de la derecha, el esquema de un temporizador, '''Tii''', con dos entradas (E y C a la izquierda) y dos salidas (D y R a la derecha con las siguientes características: |
|||
El temporizador es un elemento que permite hacer activaciones retardadas o con duración preestablecida, con un control preciso del tiempo de activación. El esquema básico de un temporizador varía de un autómata a otro, pero podemos encontrar una serie de señales fundamentales, aunque, eso sí, con nomenclaturas distintas. |
|||
[[Archivo:Temporizador ladder.svg|Temporizador|200px]] |
|||
*'''Entrada Enable''' (E): Tiene que estar activa (a 1 lógico) en todo momento durante el intervalo de tiempo, ya que si se desactiva (puesta a cero lógico) se interrumpiría la cuenta de tibia (puesta a cero temporal). |
|||
Podemos observar, en la figura de la derecha, el esquema de un temporizador, '''Tii''', con dos entradas (E y C a la izquierda) y dos salidas (D y R a la derecha) con las siguientes características: |
|||
===Contadores=== |
|||
* '''Entrada Enable''' (E): Es la que activa el proceso de conteo de tiempo. Responde tanto a flanco como a nivel lógico (sólo se mantiene contando mientras E es un "1" lógico, y al detectar flanco de bajada resetea el contador). |
|||
El contador es un elemento capaz de llevar el cómputo de las activaciones de sus entradas, por lo que resulta adecuado para memorizar sucesos que no tengan que ver con el tiempo pero que se necesiten realizar un determinado número de veces. |
|||
* '''Entrada Count''' (C): Indica el valor de temporización Tiene que estar activa (a 1 lógico) en todo momento durante el intervalo de tiempo, ya que si se desactiva (puesta a cero lógico) se interrumpe el conteo (puesta a cero temporal). |
|||
* '''Salida Delayed/TON''' (D): Salida a "0" por defecto. Se pone a uno cuando el contador lleva activado (enabled) un valor de tiempo equivalente al valor de temporización o retardo (C), y se mantiene encendido mientras la entrada E esté a "1". |
|||
* '''Salida TOFF''' (R): Salida a "0" por defecto. Se pone a "1" cuando se detecta un flanco de bajada en la entrada Enable, y se mantiene a "1" durante el tiempo especificado por C. |
|||
En la mayor parte de implementaciones de Lenguaje Ladder, los contadores On-delay y Off-delay son entidades independientes, por lo que se tendría sólo una salida TON o una TOF, según el caso. El valor de conteo suele especificarse por programa (valor preset) y no por entradas, por lo que el temporizador es finalmente un elemento con una única entrada (Enable) y una única salida (TON/TOF). |
|||
[[Imagen:Contador_ladder.PNG|framed|Contador]] |
|||
==== Ejemplo de un temporizador de retardo a la conexión. ==== |
|||
[[Archivo:Temporizador_Ejemplo.jpg|miniatura|Ejemplo de un temporizador de retardo a la conexión en KOP (Ladder) y AWL.|centrado]] |
|||
=== Contadores === |
|||
El contador es un elemento capaz de llevar el cómputo de las activaciones de sus entradas, por lo que resulta adecuado para memorizar sucesos que no tengan que ver con el tiempo pero que se necesiten realizar un determinado número de veces. |
|||
[[Archivo:Contador ladder.svg|Contador|200px]] |
|||
En la figura de la derecha puede verse el esquema de un contador, '''Ci''', bastante usual, donde pueden distinguirse las siguientes entradas y salidas: |
En la figura de la derecha puede verse el esquema de un contador, '''Ci''', bastante usual, donde pueden distinguirse las siguientes entradas y salidas: |
||
* '''Entrada RESET''' (R): Permite poner a cero el contador cada vez que se activa. Se suele utilizar al principio de la ejecución asignándole los bits de arranque, de modo que quede a cero cada vez que se arranca el sistema. |
|||
*'''Entrada |
* '''Entrada PRESET''' (P). Permite poner la cuenta del contador a un valor determinado distinto de cero, que previamente se ha programado en Cip. |
||
*'''Entrada |
* '''Entrada UP''' (U): Cada vez que se activa produce un incremento en una unidad de la cuenta que posea en ese momento el contador. |
||
*'''Entrada |
* '''Entrada DOWN''' (D): Cada vez que se activa produce un decremento en una unidad de la cuenta que posea en ese momento el contador. |
||
* '''Salida FULL''' (F): Se activa al producirse un desbordamiento del valor del contador contando en sentido ascendente. |
|||
*'''Entrada DOWN''' (D): Cada vez que se activa produce un decremento en una unidad de la cuenta que posea en ese momento el contador. |
|||
*'''Salida |
* '''Salida DONE''' (D): Se activa cuando el valor del contador se iguala al valor preestablecido Cip. |
||
*'''Salida |
* '''Salida EMPTY''' (E): Se activa al producirse un desbordamiento del valor del contador contando en sentido descendente. |
||
==== Ejemplo de una operación de contaje. ==== |
|||
*'''Salida EMPTY''' (E): Se activa al producirse un desbordamiento del valor del contador contando en sentido descendente. |
|||
[[Archivo:Contador_Ladder.jpg|miniatura|Ejemplo de una operación de contaje en KOP (Ladder) y AWL.|centrado]] |
|||
===Monoestables=== |
=== Monoestables === |
||
[[ |
[[Archivo:Monoestable ladder.svg|Monoestable.|200px]] |
||
El monoestable es un elemento capaz de mantener activada una salida durante el tiempo con el que se haya programado, desactivándola automáticamente una vez concluido dicho tiempo. Una de sus principales ventajas es su sencillez ya que sólo posee una entrada y una salida como podemos observar en la siguiente figura. |
|||
*'''Entrada STAR''' (S): Cuando se activa o se le proporciona un impulso comienza la cuenta que tiene programada. |
|||
El monoestable es un elemento capaz de mantener activada una salida durante el tiempo con el que se haya programado, desactivándola automáticamente una vez concluido dicho tiempo. Una de sus principales ventajas es su sencillez ya que sólo posee una entrada y una salida como podemos observar en la siguiente figura. |
|||
*'''Salida RUNNING''' (R): Se mantiene activada mientras dura la cuenta y se desactiva al finalizarla. Al igual que con el temporizador, para programar la cuenta hay que introducir los valores de Mip y Mib. |
|||
* '''Entrada START''' (S): Cuando se activa o se le proporciona un impulso comienza la cuenta que tiene programada. |
|||
==Programación== |
|||
* '''Salida RUNNING''' (R): Se mantiene activada mientras dura la cuenta y se desactiva al finalizarla. Al igual que con el temporizador, para programar la cuenta hay que introducir los valores de Mip y Mib. |
|||
En este apartado se tratarán, de modo general, los conceptos básicos de programación en LADDER. |
|||
== Programación == |
|||
En este apartado se tratarán, de modo general, los conceptos básicos de programación en Ladder. |
|||
Una vez conocidos los elementos que LADDER proporciona para su programación, resulta importante resaltar cómo se estructura un programa y cuál es el orden de ejecución. |
Una vez conocidos los elementos que LADDER proporciona para su programación, resulta importante resaltar cómo se estructura un programa y cuál es el orden de ejecución. |
||
El siguiente esquema representa la estructura general de la distribución de todo programa |
El siguiente esquema representa la estructura general de la distribución de todo programa Ladder, contactos a la izquierda y bobinas y otros elementos a la derecha. |
||
[[ |
[[Archivo:estructura ladder.PNG|centrado|Distribución de un programa.]] |
||
En cuanto a su equivalencia eléctrica, podemos imaginar que la línea vertical de la izquierda representa el terminal de alimentación, mientras que la línea vertical de la derecha representa el terminal de masa. |
En cuanto a su equivalencia eléctrica, podemos imaginar que la línea vertical de la izquierda representa el terminal de alimentación, mientras que la línea vertical de la derecha representa el terminal de masa. |
||
Línea 82: | Línea 103: | ||
El orden de ejecución es generalmente de arriba a bajo y de izquierda a derecha, primero los contactos y luego las bobinas, de manera que al llegar a éstas ya se conoce el valor de los contactos y se activan si procede. El orden de ejecución puede variar de un autómata a otro, pero siempre se respetará el orden de introducción del programa, de manera que se ejecuta lo que primero se introduce. |
El orden de ejecución es generalmente de arriba a bajo y de izquierda a derecha, primero los contactos y luego las bobinas, de manera que al llegar a éstas ya se conoce el valor de los contactos y se activan si procede. El orden de ejecución puede variar de un autómata a otro, pero siempre se respetará el orden de introducción del programa, de manera que se ejecuta lo que primero se introduce. |
||
===Sistemas combinacionales=== |
=== Sistemas combinacionales === |
||
Aunque en los sistemas industriales la programación se centra en procesos secuenciales, no teniendo demasiado interés los procesos combinacionales, es necesario conocer la lógica |
Aunque en los sistemas industriales la programación se centra en procesos secuenciales, no teniendo demasiado interés los procesos combinacionales, es necesario conocer la lógica combinacional ya que en muchas ocasiones es necesaria en la [[programación secuencial]]. |
||
Una vez obtenida la [[función lógica]] de un problema [[Sistema combinacional|combinacional]], el paso a |
Una vez obtenida la [[función lógica]] de un problema [[Sistema combinacional|combinacional]], el paso a Ladder o esquema de contactos es muy sencillo. De acuerdo con el [[álgebra de Boole]] aplicada a la [[Circuito de conmutación|conmutación]], las sumas serán contactos en paralelo, los productos contactos en serie y las negaciones contactos normalmente cerrados. En la siguiente figura se muestra un ejemplo de esquema LADDER para una determinada ecuación. |
||
[[ |
[[Archivo:funcion ladder.PNG|centrado|LADDER para la función M = A(B'+C)D']] |
||
===Elementos de memoria=== |
=== Elementos de memoria === |
||
La conexión tradicional para realizar una función de memoria en los circuitos con [[relé]]s, es el circuito con autoalimentación. Esto se consigue mediante la conexión de un contacto NA del relé (o [[contactor]]) en paralelo con el pulsador de marcha. A continuación puede observarse las dos variantes de este circuito: con prioridad a la |
La conexión tradicional para realizar una función de memoria en los circuitos con [[relé]]s, es el circuito con autoalimentación. Esto se consigue mediante la conexión de un contacto NA del relé (o [[contactor]]) en paralelo con el pulsador de marcha. A continuación puede observarse las dos variantes de este circuito: con prioridad a la DESconexión (figura a) y con prioridad a la conexión (figura b). |
||
[[ |
[[Archivo:circuito marcha.PNG|centrado|Circuitos con autoalimentación con prioridad a la desconexión a) y a la conexión b)]] |
||
En la siguiente figura se pueden observar los |
En la siguiente figura se pueden observar los esquemas equivalentes en Ladder: |
||
[[ |
[[Archivo:circuito marcha LADDER.PNG|centrado|Circuitos Ladder con autoalimentación]] |
||
Sin embargo, con LADDER el esquema puede quedar mucho más sencillo si empleamos las bobinas de SET para la marcha y RESET para paro: |
Sin embargo, con LADDER el esquema puede quedar mucho más sencillo si empleamos las bobinas de SET para la marcha y RESET para paro: |
||
[[ |
[[Archivo:circuito marcha LADDER RS.PNG|centrado|Circuito de marcha y paro con bobinas SET y RESeT]] |
||
En este caso la prioridad dependerá del PLC utilizado, aunque usualmente la función RESET tiene prioridad sobre la SET. |
En este caso la prioridad dependerá del PLC utilizado, aunque usualmente la función RESET tiene prioridad sobre la SET. |
||
===Elementos de tiempo=== |
=== Elementos de tiempo === |
||
Como ya se ha comentado, los dos elementos básicos de tiempo son el temporizador y el monoestable. A continuación veremos un ejemplo de programación de un automatismo temporizado. |
Como ya se ha comentado, los dos elementos básicos de tiempo son el temporizador y el monoestable. A continuación veremos un ejemplo de programación de un automatismo temporizado. |
||
El esquema siguiente se corresponde con el mando de un motor con marcha temporizada |
El esquema siguiente se corresponde con el mando de un motor con marcha temporizada: |
||
* [[Archivo:Automatismo temporizado.PNG |centrado|Automatismo temporizado.]] |
|||
Un posible programa equivalente en Ladder podría ser el siguiente: |
|||
[[Imagen:Automatismo_temporizado.PNG |framed|center|Automatismo temporizado.]] |
|||
[[Archivo:Ladder temporizado.svg |centrado|Aplicación de un temporizador en Ladder.]] |
|||
=== Elementos de cómputo === |
|||
Un posible programa equivalente en LADDER podría ser el siguiente: |
|||
[[Archivo:Ejemplo computo GRAFCET.PNG|derecha|Ejemplo de programa LADDER de cómputo]] |
|||
[[Imagen:Ladder_temporizado.PNG |framed|center|Aplicación de un temporizador en LADDER.]] |
|||
===Elementos de cómputo=== |
|||
[[Imagen:Ejemplo computo GRAFCET.PNG|framed|right|Ejemplo de programa LADDER de cómputo]] |
|||
Para aclarar la programación con elementos de cómputo, se explicará el funcionamiento del esquema de la derecha: |
Para aclarar la programación con elementos de cómputo, se explicará el funcionamiento del esquema de la derecha: |
||
Como se puede observar, el programa consta de un contador C11 que ha sido programado con el valor 10 (Cp=10). Con la entrada S0 ponemos a cero el contador y con la entrada S1 se preselecciona con el valor de Cp, esto es, 10. Cada impulso dado en S2 |
Como se puede observar, el programa consta de un contador C11 que ha sido programado con el valor 10 (Cp=10). Con la entrada S0 ponemos a cero el contador y con la entrada S1 se preselecciona con el valor de Cp, esto es, 10. Cada impulso dado en S2 incrementa en una unidad el contador y cada impulso en S3 lo disminuya. |
||
Las bobinas KMI y KM2 se activan cuando el contador posee el valor 10 y 6 respectivamente, en cambio, la bobina KM3 está continuamente activada excepto cuando el contador se encuentra con el valor 4. |
Las bobinas KMI y KM2 se activan cuando el contador posee el valor 10 y 6 respectivamente, en cambio, la bobina KM3 está continuamente activada excepto cuando el contador se encuentra con el valor 4. |
||
===Sistemas secuenciales=== |
=== Sistemas secuenciales === |
||
Aunque es posible programar sistemas secuenciales en |
Aunque es posible programar sistemas secuenciales en Ladder, sólo se suele utilizar para el control de sistemas sencillos. En aquellos más complejos se utiliza la programación modular o el [[Lenguaje de programación GRAFCET|GRAFCET]]. |
||
==Enlaces externos== |
|||
== Entornos de programación == |
|||
Para programar en Ladder se necesita un [[entorno de desarrollo integrado]] (IDE, por sus siglas en inglés), que consiste en un software que normalmente |
|||
corre en una computadora y permite diseñar y transferir la lógica implementada al PLC. |
|||
Un ejemplo de software de programación Ladder es el entorno [[StxLadder]], que permite implementar la lógica Ladder y luego transferirla al PLC. |
|||
[[Archivo:StxLadder-v1.4.9.png|miniatura|borde|centrado|middle|350x400px|El software [[StxLadder]] es un ejemplo de entorno de programación Ladder.]] |
|||
{{Control de autoridades}} |
|||
[[de:Kontaktplan]] |
|||
[[Categoría:Lenguajes de programación visual|Ladder]] |
|||
[[en:Ladder logic]] |
|||
[[Categoría:Automatización de diseño electrónico]] |
|||
[[fr:Langage Ladder]] |
|||
[[is:Ladder (forritunarmál)]] |
|||
[[it:Ladder diagram]] |
|||
[[ja:ラダー・ロジック]] |
|||
[[nl:Ladderdiagram]] |
|||
[[ru:Ladder Diagram]] |
|||
[[sv:Ladderdiagram]] |
Revisión actual - 15:32 15 dic 2023
El lenguaje ladder, diagrama ladder, diagrama/lógica de contactos, o diagrama en escalera, es un lenguaje de programación gráfico muy popular dentro de los autómatas programables debido a que está basado en los esquemas eléctricos de control clásicos. De este modo, con los conocimientos que todo técnico o ingeniero eléctrico posee, es muy fácil adaptarse a la programación en este tipo de lenguaje.
Ladder es uno de los varios lenguajes de programación para los controladores lógicos programables (PLCs) estandarizados con IEC 61131-3.
Elementos de programación
[editar]Para programar un autómata con Ladder, además de estar familiarizado con las reglas de los circuitos de conmutación, (también denominada Lógica de Contactos), es necesario conocer cada uno de los elementos de que consta este lenguaje. A continuación se describen de modo general los más comunes.
Símbolo | Nombre | Descripción |
---|---|---|
Contacto NA | Se activa cuando hay un uno lógico en el elemento que representa; esto es, una entrada (para captar información del proceso a controlar), una variable interna o un bit de sistema. | |
Bobina NC | Se activa cuando la combinación que hay a su entrada (izquierda) da un cero lógico. Su activación equivale a decir que tiene un cero lógico. Su comportamiento es complementario al de la bobina NA. | |
Bobina SET | Una vez activa (puesta a 1) no se puede desactivar (puesta a 0) si no es por su correspondiente bobina en RESET. Sirve para memorizar bits y, usada junto con la bobina RESET, dan una enorme potencia en la programación. | |
Bobina JUMP | Permite saltarse instrucciones del programa e ir directamente a la etiqueta que se desee. Sirve para realizar subprogramas. |
Bit (Memoria)
[editar]Se suele indicar mediante los caracteres B o M y tienen tanto bobinas como contactos asociados a las mismas de los tipos vistos en el punto anterior. Su número de identificación suele oscilar, en general, entre 0 y 255. Su utilidad fundamental es la de almacenar información intermedia para simplificar esquemas y programación.
Los bits de sistema son contactos que el propio autómata activa cuando conviene o cuando se dan unas circunstancias determinadas. Existe una gran variedad, siendo los más importantes los de arranque y los de reloj, que permiten que empiece la ejecución desde un sitio en concreto y formar una base de tiempos respectivamente. Su nomenclatura es muy diversa, dependiendo siempre del tipo de autómata y fabricante.
En forma práctica, los contactos pueden representar, de acuerdo a la programación que se realice, la entrada de información, por ejemplo el activamiento de un sensor, o el activamiento de una memoria interna, comúnmente denominada M.
Las Bobinas, representan a esas memorias M así como las salidas al exterior, activan o desactivan elementos como puede ser una luz, un motor eléctrico, un solenoide de una válvula neumática, etc.
En algunas versiones de Ladder, como el relé inteligente ZELIO, las bobinas representan también funciones, como temporizadores, contadores y comparadores.
Temporizadores
[editar]El temporizador es un elemento que permite hacer activaciones retardadas o con duración preestablecida, con un control preciso del tiempo de activación. El esquema básico de un temporizador varía de un autómata a otro, pero podemos encontrar una serie de señales fundamentales, aunque, eso sí, con nomenclaturas distintas.
Podemos observar, en la figura de la derecha, el esquema de un temporizador, Tii, con dos entradas (E y C a la izquierda) y dos salidas (D y R a la derecha) con las siguientes características:
- Entrada Enable (E): Es la que activa el proceso de conteo de tiempo. Responde tanto a flanco como a nivel lógico (sólo se mantiene contando mientras E es un "1" lógico, y al detectar flanco de bajada resetea el contador).
- Entrada Count (C): Indica el valor de temporización Tiene que estar activa (a 1 lógico) en todo momento durante el intervalo de tiempo, ya que si se desactiva (puesta a cero lógico) se interrumpe el conteo (puesta a cero temporal).
- Salida Delayed/TON (D): Salida a "0" por defecto. Se pone a uno cuando el contador lleva activado (enabled) un valor de tiempo equivalente al valor de temporización o retardo (C), y se mantiene encendido mientras la entrada E esté a "1".
- Salida TOFF (R): Salida a "0" por defecto. Se pone a "1" cuando se detecta un flanco de bajada en la entrada Enable, y se mantiene a "1" durante el tiempo especificado por C.
En la mayor parte de implementaciones de Lenguaje Ladder, los contadores On-delay y Off-delay son entidades independientes, por lo que se tendría sólo una salida TON o una TOF, según el caso. El valor de conteo suele especificarse por programa (valor preset) y no por entradas, por lo que el temporizador es finalmente un elemento con una única entrada (Enable) y una única salida (TON/TOF).
Ejemplo de un temporizador de retardo a la conexión.
[editar]Contadores
[editar]El contador es un elemento capaz de llevar el cómputo de las activaciones de sus entradas, por lo que resulta adecuado para memorizar sucesos que no tengan que ver con el tiempo pero que se necesiten realizar un determinado número de veces.
En la figura de la derecha puede verse el esquema de un contador, Ci, bastante usual, donde pueden distinguirse las siguientes entradas y salidas:
- Entrada RESET (R): Permite poner a cero el contador cada vez que se activa. Se suele utilizar al principio de la ejecución asignándole los bits de arranque, de modo que quede a cero cada vez que se arranca el sistema.
- Entrada PRESET (P). Permite poner la cuenta del contador a un valor determinado distinto de cero, que previamente se ha programado en Cip.
- Entrada UP (U): Cada vez que se activa produce un incremento en una unidad de la cuenta que posea en ese momento el contador.
- Entrada DOWN (D): Cada vez que se activa produce un decremento en una unidad de la cuenta que posea en ese momento el contador.
- Salida FULL (F): Se activa al producirse un desbordamiento del valor del contador contando en sentido ascendente.
- Salida DONE (D): Se activa cuando el valor del contador se iguala al valor preestablecido Cip.
- Salida EMPTY (E): Se activa al producirse un desbordamiento del valor del contador contando en sentido descendente.
Ejemplo de una operación de contaje.
[editar]Monoestables
[editar]
El monoestable es un elemento capaz de mantener activada una salida durante el tiempo con el que se haya programado, desactivándola automáticamente una vez concluido dicho tiempo. Una de sus principales ventajas es su sencillez ya que sólo posee una entrada y una salida como podemos observar en la siguiente figura.
- Entrada START (S): Cuando se activa o se le proporciona un impulso comienza la cuenta que tiene programada.
- Salida RUNNING (R): Se mantiene activada mientras dura la cuenta y se desactiva al finalizarla. Al igual que con el temporizador, para programar la cuenta hay que introducir los valores de Mip y Mib.
Programación
[editar]En este apartado se tratarán, de modo general, los conceptos básicos de programación en Ladder.
Una vez conocidos los elementos que LADDER proporciona para su programación, resulta importante resaltar cómo se estructura un programa y cuál es el orden de ejecución.
El siguiente esquema representa la estructura general de la distribución de todo programa Ladder, contactos a la izquierda y bobinas y otros elementos a la derecha.
En cuanto a su equivalencia eléctrica, podemos imaginar que la línea vertical de la izquierda representa el terminal de alimentación, mientras que la línea vertical de la derecha representa el terminal de masa.
El orden de ejecución es generalmente de arriba a bajo y de izquierda a derecha, primero los contactos y luego las bobinas, de manera que al llegar a éstas ya se conoce el valor de los contactos y se activan si procede. El orden de ejecución puede variar de un autómata a otro, pero siempre se respetará el orden de introducción del programa, de manera que se ejecuta lo que primero se introduce.
Sistemas combinacionales
[editar]Aunque en los sistemas industriales la programación se centra en procesos secuenciales, no teniendo demasiado interés los procesos combinacionales, es necesario conocer la lógica combinacional ya que en muchas ocasiones es necesaria en la programación secuencial.
Una vez obtenida la función lógica de un problema combinacional, el paso a Ladder o esquema de contactos es muy sencillo. De acuerdo con el álgebra de Boole aplicada a la conmutación, las sumas serán contactos en paralelo, los productos contactos en serie y las negaciones contactos normalmente cerrados. En la siguiente figura se muestra un ejemplo de esquema LADDER para una determinada ecuación.
Elementos de memoria
[editar]La conexión tradicional para realizar una función de memoria en los circuitos con relés, es el circuito con autoalimentación. Esto se consigue mediante la conexión de un contacto NA del relé (o contactor) en paralelo con el pulsador de marcha. A continuación puede observarse las dos variantes de este circuito: con prioridad a la DESconexión (figura a) y con prioridad a la conexión (figura b).
En la siguiente figura se pueden observar los esquemas equivalentes en Ladder:
Sin embargo, con LADDER el esquema puede quedar mucho más sencillo si empleamos las bobinas de SET para la marcha y RESET para paro:
En este caso la prioridad dependerá del PLC utilizado, aunque usualmente la función RESET tiene prioridad sobre la SET.
Elementos de tiempo
[editar]Como ya se ha comentado, los dos elementos básicos de tiempo son el temporizador y el monoestable. A continuación veremos un ejemplo de programación de un automatismo temporizado.
El esquema siguiente se corresponde con el mando de un motor con marcha temporizada:
Un posible programa equivalente en Ladder podría ser el siguiente:
Elementos de cómputo
[editar]Para aclarar la programación con elementos de cómputo, se explicará el funcionamiento del esquema de la derecha:
Como se puede observar, el programa consta de un contador C11 que ha sido programado con el valor 10 (Cp=10). Con la entrada S0 ponemos a cero el contador y con la entrada S1 se preselecciona con el valor de Cp, esto es, 10. Cada impulso dado en S2 incrementa en una unidad el contador y cada impulso en S3 lo disminuya.
Las bobinas KMI y KM2 se activan cuando el contador posee el valor 10 y 6 respectivamente, en cambio, la bobina KM3 está continuamente activada excepto cuando el contador se encuentra con el valor 4.
Sistemas secuenciales
[editar]Aunque es posible programar sistemas secuenciales en Ladder, sólo se suele utilizar para el control de sistemas sencillos. En aquellos más complejos se utiliza la programación modular o el GRAFCET.
Entornos de programación
[editar]Para programar en Ladder se necesita un entorno de desarrollo integrado (IDE, por sus siglas en inglés), que consiste en un software que normalmente corre en una computadora y permite diseñar y transferir la lógica implementada al PLC.
Un ejemplo de software de programación Ladder es el entorno StxLadder, que permite implementar la lógica Ladder y luego transferirla al PLC.