Saltar al contenido principal

Lenguaje de Diagrama Ladder

El Diagrama Ladder es un lenguaje de programación gráfico para representar ecuaciones booleanas. Combina contactos, utilizados como condiciones de entrada, con bobinas, utilizadas como resultados de salida.

En la lógica de Ladder, los datos se evalúan y modifican mediante símbolos gráficos estándar dispuestos en peldaños. Esta disposición sigue la estructura de los diagramas de lógica de relés, donde cada peldaño está delimitado por las barras colectoras izquierda y derecha.


En esta página


Componentes gráficos

A continuación se muestran los componentes gráficos básicos de un Diagrama Ladder.

Basic graphical components of a Ladder Diagram
No.Componente
1Barra colectora izquierda
2Barra colectora derecha
3Conexión horizontal
4Conexión vertical
5Contact
6Coil
7Dirección del flujo de potencia

Barras colectoras y estados de conexión

El editor está delimitado a la izquierda por una línea vertical llamada barra colectora izquierda, y a la derecha por una línea vertical llamada la barra colectora derecha.

Los elementos de conexión pueden ser horizontales o verticales. Sus estados pueden denotarse mediante 1 o 0, correspondientes a los valores literales Boolean TRUE y FALSE. En este contexto, el término estado de la conexión es sinónimo de flujo de potencia.

El estado de la barra colectora izquierda se considera siempre 1, actuando como fuente de energía. La barra colectora derecha se define con el estado 0, actuando como barra de tierra.

Un elemento de conexión horizontal se representa mediante una línea horizontal. Transmite el estado del elemento situado inmediatamente a su izquierda al elemento situado inmediatamente a su derecha.

Un elemento de conexión vertical consta de líneas verticales intersectadas por una o más conexiones horizontales a cada lado.

El estado de una conexión vertical representa la operación OR lógica de los estados de las conexiones horizontales situadas a su izquierda:

  • El estado de la conexión vertical es 0 cuando todas las conexiones horizontales de su lado izquierdo son 0.
  • El estado de la conexión vertical es 1 cuando una o más conexiones horizontales en su lado izquierdo son 1.

El estado de las conexiones verticales se copia a todas las conexiones horizontales asociadas a su lado derecho. No se copia a las conexiones horizontales asociadas a su lado izquierdo.

Control de ejecución

El procesador ejecuta continuamente un ciclo de escaneo. El ciclo comienza cuando el sistema de entrada y salida de hardware lee los valores más recientes de todas las señales de entrada y escribe dichos valores en regiones de memoria fijas.

Ladder execution control and scan cycle
EtiquetaSignificado
AEntradas leídas en la memoria.
BMemoria escrita en las salidas.
CBarrido de línea en Ladder.

A continuación, las líneas del programa Ladder se ejecutan en un orden fijo, comenzando por la primera línea. Durante el ciclo de ejecución del programa, los nuevos valores de salida física determinados por la lógica de las líneas Ladder se escriben primero en una zona de memoria de salida. Una vez finalizada la ejecución del programa Ladder, el hardware escribe todos los valores de salida almacenados en memoria en las salidas físicas mediante una única operación.


Terminología

TérminoDefinición
ATRepresentación directa de una variable.
FUNCTION BLOCKFunción que requiere una instancia.
CONFIGURATIONOrganización de software de nivel superior. Puede contener varios recursos.
FUNCTIONBloque responsable de ejecutar un comportamiento o acción en función de parámetros, como VAR_IN, VAR_IN_OUT y VAR_OUT.
INSTANCEÁrea de memoria ocupada para su uso por un bloque de función.
LD (Diagrama Ladder)Lenguaje gráfico basado en esquemas eléctricos, contactos y bobinas, que sigue el flujo de potencia entre los elementos.
OVERFLOWOcurre cuando el resultado de un cálculo supera los límites del tipo de datos del resultado.
POUUnidad de organización de programas. Puede ser un programa, un bloque de funciones (FB) o una función.
PROGRAMAgrupación lógica de elementos y estructuras necesarios para procesar señales destinadas al control de máquinas o procesos.
RESOURCEElemento con capacidad de procesamiento responsable de ejecutar programas.
SCANCiclo de escaneo del programa.
STACKPila del programa de Ladder. Área de memoria utilizada para ejecutar la lógica del programa.
TAGNombre de la variable.
TASKControla la ejecución del programa de forma periódica o mediante eventos.
DATATYPEInforma al compilador sobre el espacio que ocupa una variable y su formato.
VARIABLEPosición de memoria capaz de retener y representar un valor o una expresión.
VARVariables internas de un bloque de usuario (USERFB), equivalentes a un ámbito local.
VAR_INArgumento de entrada de un USERFB. Las variables de esta categoría solo se leen dentro del USERFB.
VAR_IN_OUTArgumento de entrada y salida de un USERFB. No admite constantes, entradas físicas (%I_), variables de red de entrada (%I_) ni marcadores de sistema de solo lectura (%S_).
VAR_OUTArgumento de salida de un USERFB. No admite constantes, entradas físicas (%I_), variables de red de entrada (%I_) ni marcadores de sistema de solo lectura (%S_).
WATCHDOGMecanismo del fabricante utilizado para ejecutar acciones específicas si se vulnera la integridad del sistema.

Ámbito y comportamiento de las variables

Una variable puede tener uno de los siguientes ámbitos:

AlcanceDefinición
LocalPosición automática calculada por el compilador.
GlobalUbicado en un área de memoria definida, como entradas o salidas, y accesible en toda la configuración.

Una variable también puede tener uno de los siguientes comportamientos:

ComportamientoDefinición
RetentivoAlmacena el valor tras apagar la alimentación.
VolátilSe inicializa con el valor del campo de valor inicial al encender el dispositivo.
ConstanteValor fijo que no puede cambiarse.

Lógica de Contact

Lógica AND – contactos en serie

Contacts in series representing AND logic

El diagrama ejecuta una operación AND entre los dos últimos elementos cargados en la STACK, reduce la STACK en un nivel y coloca el resultado en la parte superior de la STACK.

Esto significa que se ejecuta la siguiente operación Boolean:

Boolean operation
STACK = BIT1.BIT2

Equivalente en lista de instrucciones:

Instruction List equivalent
LD BIT1 (* loads the BIT1 value to the STACK = | BIT1 | *)
LD BIT2 (* loads the BIT2 value to the STACK = | BIT2 | BIT1 | *)
AND (* executes AND between BIT1 and BIT2 -> STACK = | BIT1.BIT2 | *)
BIT1BIT2STACK
000
010
100
111

Lógica OR – contactos en paralelo

Contacts in parallel representing OR logic

El diagrama ejecuta una operación OR entre los dos últimos elementos cargados en la STACK, reduce la STACK en un nivel y coloca el resultado en la parte superior de la STACK.

Esto significa que se ejecuta la siguiente operación Boolean:

Boolean operation
STACK top = BIT1 OR BIT2

Equivalente en lista de instrucciones:

Instruction List equivalent
LD BIT1 (* loads the BIT1 value to the STACK = | BIT1 | *)
LD BIT2 (* loads the BIT2 value to the STACK = | BIT2 | BIT1 | *)
OR (* executes OR between BIT1 and BIT2 -> STACK = | BIT1+BIT2 | *)
BIT1BIT2STACK
000
011
101
111

Área de trabajo del editor de Ladder

Siempre que se abre un archivo Ladder desde el acceso directo del árbol del proyecto, se muestra el editor Ladder.

Área de trabajo del editor de Ladder con sus componentes principales

El editor Ladder tiene los siguientes componentes:

No.Componente
1Barra de herramientas de edición de variables.
2Ámbito de la variable.
3Grupo de variables.
4Editor de variables o lista de variables.
5Barra de herramientas de edición de programas.
6Editor de Ladder.
7Paleta de componentes de Ladder.
Elementos ocultos del espacio de trabajo

Si un elemento no está visible, actívelo desde el Ventana menú.


Peldaños

El programa Ladder se edita en un editor gráfico que organiza el programa en peldaños. Cada peldaño corresponde a una sección interconectada que relaciona los elementos de entrada con los elementos de salida.

El editor Ladder de WPS se diseñó para que los peldaños puedan editarse con el ratón o, de manera más eficiente, utilizando únicamente el teclado.

Elementos principales de un peldaño de Ladder

Elementos principales de los peldaños

No.Elemento
1Barra colectora izquierda.
2Barra colectora derecha.
3Barra colectora de salida.
4Conexiones entre elementos.
5Título y comentario del peldaño.
Posición de la conexión de salida

Las salidas se conectan siempre a la derecha de la barra colectora de salida.

Áreas lógicas de entrada y salida

Dentro de un peldaño, el editor utiliza un separador vertical negro para dividir visualmente el peldaño en dos áreas lógicas:

  • Lógica de entrada: el área a la izquierda del separador negro.
  • Lógica de salida: el área a la derecha del separador negro.

Áreas lógicas de entrada y salida separadas por el separador vertical negro.

Separador visual

El separador negro es solo una referencia visual. Indica que el editor cambia su comportamiento de inserción según si la posición seleccionada se encuentra en el área de lógica de entrada o en el área de lógica de salida.

Usa el área de lógica de entrada para lógica Ladder más compleja. El área de lógica de salida está destinada a estructuras de salida más simples.

Comandos de la barra de herramientas del editor de diagramas de Ladder

IconoComando
Add new rung at end buttonAñadir un nuevo peldaño al final
Add new rung above buttonAñadir nuevo peldaño arriba
Add new rung below buttonAñadir nuevo peldaño debajo
Move rung up buttonSubir un peldaño
Move rung down buttonBajar un peldaño
Remove selected rung buttonEliminar el peldaño seleccionado
Insert contact buttonInserte un contacto en el peldaño.
Insert functional block buttonInserte un bloque funcional en el peldaño.
Insert output coil buttonInserte una bobina de salida en el peldaño.
Change Ladder element buttonCambiar elemento de Ladder
Delete rung element buttonEliminar un elemento del peldaño
Edit rung title buttonEditar título del peldaño
Edit rung arguments buttonEditar argumentos
Select group of elements buttonSeleccionar grupo de elementos
Select all elements buttonSeleccionar todos los elementos
Select rung for editing buttonSelecciona el peldaño para editarlo.

Edición de peldaños

Para editar un peldaño, selecciónalo haciendo clic en él con el ratón o usando el control de selección de peldaños en la barra de herramientas del Editor de Ladder. Cuando se selecciona el peldaño, se muestra una barra gris en su lado izquierdo.

Selected rung with gray bar on the left side

Título y comentario del peldaño

Para editar el título y el comentario de un peldaño, haz doble clic en el área del título y el comentario o pulsa Shift + F2. Se muestra el siguiente cuadro de diálogo.

Cuadro de diálogo para editar el título y el comentario del peldaño

Tras editar el título y el comentario, el editor muestra la información actualizada.

Rung after editing title and comment

Inserción de elementos de Ladder

Para insertar un elemento de Ladder en el peldaño, se debe seleccionar un elemento de Ladder existente.

Selected Ladder element with insertion point

El elemento seleccionado está rodeado por un rectángulo verde discontinuo. Un punto rojo indica dónde se insertará el nuevo elemento. Este punto rojo es el punto de inserción.

Las estructuras en serie y en paralelo se generan durante la inserción de elementos. El editor utiliza el punto de inserción para determinar la posición del siguiente contacto, bobina, función, bloque de función o bloque funcional.

El comportamiento de inserción es diferente en el área de lógica de entrada y en el área de lógica de salida.

Hay tres formas de insertar elementos de Ladder.

  1. Insertar con el teclado

    Usa los siguientes atajos:

    ClaveAcción
    CInsertar contacto.
    FInsertar bloque funcional.
    OInserte la bobina de salida.
    XCambiar elemento de Ladder.
  2. Insertar desde la barra de herramientas del editor de Ladder

    IconoAcción
    Insert contact toolbar buttonInserte un contacto en el peldaño.
    Insert functional block toolbar buttonInserte un bloque funcional en el peldaño.
    Insert output coil toolbar buttonInserte una bobina de salida en el peldaño.
    Change Ladder element toolbar buttonCambiar elemento de Ladder.
  3. Insertar desde la paleta de elementos de Ladder

    Paleta de elementos de Ladder

    Para insertar elementos desde la paleta:

    1. Haz clic en el elemento de la paleta.
    2. Mantén presionado el botón del ratón.
    3. Mueva el ratón hasta el punto de inserción en el Diagrama Ladder.
    4. Suelta el botón del ratón.

    Tras insertar un elemento, en este caso un contacto, el peldaño se muestra como se indica a continuación.

    Peldaño tras insertar un contacto

Insertar elementos en serie

Usa los puntos de inserción que aparecen a continuación para insertar un elemento en serie.

Insertion point before the selected element Insertion point after the selected element

Insertar elementos en serie corresponde a la lógica Boolean AND.

Insertar elementos en paralelo

Usa los puntos de inserción que aparecen a continuación para insertar un elemento en paralelo.

Insertion point above the selected element Insertion point below the selected element

La inserción de elementos en paralelo corresponde a la lógica Boolean OR.

Comportamiento de inserción de lógica de entrada

En el área de lógica de entrada, el editor crea elementos en serie o en paralelo según el punto de inserción seleccionado.

Este comportamiento permite construir lógica Ladder más compleja en el lado izquierdo del separador negro.

Punto de inserción de la lógica de entrada para el comportamiento en serie

Resultado de la lógica de entrada tras insertar un elemento en serie

Punto de inserción de lógica de entrada para comportamiento en paralelo

Resultado de la lógica de entrada tras insertar un elemento en paralelo

Comportamiento de inserción de lógica de salida

En el área de lógica de salida, el editor limita el número de elementos insertados en serie y crea estructuras de salida duplicadas cuando es necesario.

Este comportamiento mantiene más simple la parte de salida y separa las condiciones de entrada complejas de las acciones de salida.

Punto de inserción de lógica de salida con comportamiento de serie limitada

Resultado de la lógica de salida con elemento de salida duplicado

Punto de inserción de lógica de salida para la rama de salida duplicada

Resultado de lógica de salida con rama de salida duplicada

Ubicación de lógica compleja

Cree lógica Ladder más compleja en el área de lógica de entrada, a la izquierda del separador negro.


Usa las teclas de flecha para desplazarte dentro de un peldaño. Estas teclas permiten seleccionar elementos existentes y definir dónde se insertará el siguiente elemento.

Icono de llaveComportamiento de inserción
Left arrow keyInserta el nuevo elemento antes del elemento seleccionado.
Up arrow keyInserta el nuevo elemento en paralelo por encima del elemento seleccionado.
Down arrow keyInserta el nuevo elemento en paralelo debajo del elemento seleccionado.
Right arrow keyInserta el nuevo elemento después del elemento seleccionado.

Tras insertar un contacto, el peldaño se muestra como se indica a continuación.

Rung after inserting a contact before keyboard navigation

Selección del punto de inserción

Pulsa una tecla de flecha para cambiar el punto de inserción en relación con el elemento seleccionado.

Pulsa Left arrow key para insertar el siguiente elemento antes del elemento seleccionado.

Insertion point before the selected element

Pulsa Up arrow key para insertar el siguiente elemento en paralelo encima del elemento seleccionado.

Insertion point above the selected element

Pulsa Down arrow key para insertar el siguiente elemento en paralelo debajo del elemento seleccionado.

Insertion point below the selected element

Pulsa Right arrow key para insertar el siguiente elemento después del elemento seleccionado.

Insertion point after the selected element

Pasando al siguiente elemento

Cuando el punto de inserción ya está seleccionado, volver a pulsar la misma tecla de flecha desplaza la selección al siguiente elemento en esa dirección.

Keyboard navigation moving to the next element

Cuando el peldaño contiene ramas en paralelo, la navegación por teclado selecciona cada elemento individualmente.

Keyboard navigation selecting an element inside a parallel branch

Cuando se selecciona un elemento de rama individual, la siguiente inserción se realiza en relación con dicho elemento seleccionado.

Para insertar un elemento en relación con todo el grupo paralelo, pulsa G para seleccionar primero el grupo. Luego, define el punto de inserción e inserta el nuevo elemento.

Group selected with the G key Contact inserted before a parallel group

Cada vez G al pulsarlo, el editor selecciona el grupo situado inmediatamente encima del elemento o grupo seleccionado anteriormente. Al finalizar el ciclo de selección, el editor vuelve al elemento original. En algunas situaciones, debe pulsar G más de una vez para seleccionar el grupo requerido.

Insertar elementos en relación con un grupo

Tras seleccionar un grupo con G, puedes insertar nuevos elementos en relación con el grupo seleccionado en lugar de con un único elemento.

El siguiente ejemplo inserta un elemento en paralelo con un grupo de elementos en el peldaño.

Insertion operation before adding an element in parallel to a rung group Result of inserting an element in parallel to a rung group

El siguiente ejemplo inserta un elemento en serie con un grupo formado por elementos dentro de una rama en paralelo.

Insertion operation before adding an element in series to an inner parallel group Result of inserting an element in series to an inner parallel group

Todas las funciones de navegación por teclado también están disponibles con el ratón. Al hacer clic directamente dentro del peldaño, puedes seleccionar un elemento y definir el punto de inserción para el siguiente elemento.

CursorAcciónRepresentación
Mouse cursor for selecting the upper insertion pointSelecciona el elemento y coloca el punto de inserción en paralelo sobre él.Upper insertion point indicator
Mouse cursor for selecting the lower insertion pointSelecciona el elemento y coloca el punto de inserción en paralelo debajo de él.Lower insertion point indicator
Mouse cursor for selecting the previous insertion pointSelecciona el elemento y coloca el punto de inserción antes de él.Previous insertion point indicator
Mouse cursor for selecting the next insertion pointSelecciona el elemento y coloca el punto de inserción después de él.Next insertion point indicator

Insertar un elemento con el ratón

Puedes definir el punto de inserción mientras arrastras un nuevo elemento desde la paleta. A medida que se arrastra el elemento sobre el peldaño, el editor actualiza la selección y el punto de inserción según la posición del cursor.

Dragging a component from the palette over a rung

Para insertar un elemento con el ratón:

  1. Haz clic en el elemento de la paleta y mantén presionado el botón del ratón.
  2. Arrastra el elemento sobre el peldaño.
  3. Mueva el cursor para seleccionar el punto de inserción.
  4. Suelte el botón del ratón sobre el punto de inserción seleccionado.

El resultado de la inserción se muestra a continuación.

Result after dragging and inserting a component with the mouse
Selección de puntos de inserción de grupo

Mientras arrastras un elemento, mantén presionado. Ctrl para seleccionar puntos de inserción relacionados con grupos de elementos en lugar de elementos individuales.


Copiar, cortar y pegar

Las operaciones de copiar, cortar y pegar están disponibles en el editor Ladder a través del Editar menú y los atajos de teclado correspondientes. Para utilizar estas operaciones, primero seleccione un elemento, un grupo de elementos o uno o varios peldaños.

Atajos de teclado

Uso Ctrl+C copiar, Ctrl+X cortar, y Ctrl+V pegar.

Copiar y pegar un elemento

El siguiente ejemplo muestra cómo copiar y pegar un único elemento Ladder.

  1. Selecciona el elemento de origen

    Selecciona el elemento que se va a copiar y pulsa Ctrl+C.

    Single selected element before pressing Ctrl+C
  2. Selecciona el punto de inserción de destino

    Selecciona el elemento de destino y define el punto de inserción donde se pegará el elemento copiado.

    Destination insertion point selected before paste
  3. Pegar el elemento

    Pulsa Ctrl+V. El elemento copiado se inserta en el punto de inserción seleccionado.

    Rung after pressing Ctrl+V for a copied element

Copiar y pegar varios elementos

También puede copiar, cortar y pegar varios elementos seleccionados. Se pueden seleccionar varios elementos con el ratón o con el G clave.

  1. Selecciona el grupo de origen

    Selecciona el grupo de elementos que se copiarán y pulsa Ctrl+C.

    Selected group of elements before pressing Ctrl+C
  2. Selecciona el destino y pega

    Selecciona el elemento de destino y el punto de inserción; luego pulsa Ctrl+V.

    Result after pasting multiple elements before a selected timer
    Es posible que la función de pegar no esté disponible en algunos contextos.

    Puede haber situaciones en las que el contenido seleccionado no se pueda pegar en el punto de inserción actual. En estos casos, el peldaño no se modifica tras el comando de pegar.

Copiar y pegar peldaños

Los peldaños para las operaciones de copiar, cortar y pegar se seleccionan únicamente con el ratón. Puede seleccionar un peldaño desde cualquiera de los lados del área de peldaños.

Selecting a rung with the mouse from outside the right side Selecting a rung with the mouse from the left side

También se pueden seleccionar varios peldaños para operaciones de copiar, cortar y pegar.

  1. Selecciona el peldaño de origen

    Selecciona el peldaño que se va a copiar y pulsa Ctrl+C.

    Selected rung to be copied before pressing Ctrl+C
  2. Selecciona la posición de pegado

    Selecciona el peldaño inmediatamente superior a la ubicación donde se pegará el peldaño copiado.

    Rung immediately above the paste destination selected
  3. Pega el peldaño

    Pulsa Ctrl+V. El peldaño copiado se inserta en el destino seleccionado.

    Result after pasting a rung with Ctrl+V

Monitoreo en línea

Una vez compilado y transferido el programa Ladder al dispositivo, haz clic en Conectar dispositivo Connect Device monitoring button en el menú principal para iniciar la supervisión en línea y permitir que WPS establezca comunicación con el dispositivo de destino.

La supervisión en línea representa gráficamente el estado lógico del programa Ladder.

Example of online monitoring in a Ladder program

Para los bloques de función, WPS muestra los valores supervisados directamente en el editor Ladder.

Monitoring values displayed for functional blocks

Los valores de las variables se muestran junto a sus variables correspondientes. Los valores internos de una instancia de bloque de función se muestran junto a los nombres de los argumentos correspondientes.

Escritura de variables durante la monitorización

Durante la supervisión en línea, puede escribir valores directamente en las variables supervisadas.

Writing a variable value during online monitoring
  1. Abrir el cuadro de escritura de valores

    Haz doble clic en la variable que quieras escribir.

  2. Introduce el valor

    En el campo de escritura de valor, introduzca el valor que debe escribirse en la variable.

  3. Escribir o alternar el valor

    Haz clic Escribe para enviar el valor introducido a la variable.

    Uso Alternar para alternar el valor escrito entre 0 y el valor actual.

Monitoreo de instancias

Para supervisar las variables internas de una instancia de bloque de función, haga doble clic en la variable de instancia.

Monitorización de una instancia de un bloque funcional

El cuadro de supervisión de la instancia muestra las variables internas relacionadas con la instancia seleccionada.

Para escribir en una variable de instancia interna:

  1. Haz clic en la fila correspondiente.
  2. Introduce el valor requerido en el cuadro de edición de valores.
  3. Haz clic Escribe para enviar el valor, o Alternar para alternar el valor entre 0 y el valor actual.

Estructuras de monitoreo

Las variables creadas a partir de estructuras definidas en el recurso también pueden monitorizarse en el editor Ladder.

El siguiente ejemplo muestra una estructura definida en el recurso.

Estructura definida en el recurso

La siguiente figura muestra una variable creada con el tipo de datos de esa estructura.

Variable creada con el tipo de datos de estructura

Para supervisar la variable de estructura, haga clic en la variable correspondiente en el editor Ladder. WPS abre un cuadro de supervisión similar al cuadro de supervisión de instancias.

Monitoring the variable used in the WriteRecipe block

Matrices de monitoreo

Las variables creadas con un tamaño mayor que cero pueden monitorizarse como matrices. Esto le permite visualizar todos los datos contenidos en la variable.

El siguiente ejemplo muestra una variable de tipo matriz creada con un tamaño mayor que cero.

Variable de matriz creada con un tamaño mayor que cero

Para supervisar los datos de la matriz, haga clic en la variable correspondiente en el editor Ladder. WPS abre un cuadro de supervisión con los valores de la matriz.

Monitoring the variable used in the MB_ReadRegister block