Uso de puntos de interrupción
Los puntos de interrupción se usan comúnmente para depurar programas. CODESYS admite puntos de interrupción en todos los editores IEC.
Puede establecer puntos de interrupción en posiciones específicas del programa para forzar una detención de la ejecución y monitorear los valores de las variables. Puede establecer "puntos de interrupción de datos" especiales para detener la ejecución del programa cuando cambia el valor de una variable específica.
La detención en un punto de interrupción o punto de interrupción de datos se puede vincular a condiciones adicionales. También puede redefinir puntos de interrupción y puntos de interrupción de datos como "puntos de ejecución" donde se ejecuta un código específico en lugar de detener el programa.
Sugerencia
El puntos de ruptura view proporciona una descripción general de todos los puntos de interrupción definidos. También incluye comandos adicionales para procesar cambios por lotes en múltiples puntos de interrupción.
En el editor, los siguientes símbolos identifican el estado de un punto de interrupción o punto de ejecución:
: El punto de interrupción está habilitado.
: El punto de interrupción está deshabilitado.
: El punto de interrupción se establece en otra instancia de la POU abierta en el editor.
: El programa se detiene en el punto de interrupción.
: El punto de interrupción con condición está habilitado.
: El punto de interrupción con condición está deshabilitado.
: El punto de ejecución está habilitado.
: El punto de ejecución está deshabilitado.
: El punto de ejecución con condición está habilitado.
: El punto de ejecución con condición está deshabilitado.
: El punto de interrupción de datos está habilitado.
: El punto de interrupción de datos está deshabilitado.
: El programa se detiene en el punto de interrupción de datos.
: El punto de ejecución de datos está habilitado.
: El punto de ejecución de datos está deshabilitado.
: El programa se detiene en el punto de ejecución de datos.
: El punto de ejecución de datos con condición está habilitado.
: El punto de interrupción de datos con condición está habilitado.
Para más información, ver: Puntos de interrupción
Puntos de interrupción de datos
Sugerencia
La función de los puntos de interrupción de datos depende del sistema de destino. Actualmente, los puntos de corte de datos solo son posibles con el CODESYS Control Win.
La ejecución del programa se detiene en un punto de interrupción de datos cuando cambia el valor de una variable particular o dirección de memoria. Al igual que con los puntos de interrupción "normales", la detención se puede vincular a una condición adicional o se puede procesar un código específico en lugar de la detención (convertido en un punto de ejecución de datos).
Puede establecer un punto de interrupción de datos mediante el Nuevo punto de interrupción de datos comando en el Depurar menú o mediante el Nuevo botón en el puntos de ruptura vista. Especifique un nombre de variable calificado o una dirección de memoria directamente que se monitoreará para detectar cambios en su valor.
En el siguiente código de ejemplo, la memoria de la variable iNumber
se sobrescribe sin querer. Sin embargo, un punto de corte de datos en la variable iNumber
detectará cuando cambie su valor. Luego, el procesamiento se detiene con un mensaje correspondiente en el acceso a la matriz, que sobrescribe el valor de la variable: Idx
= 7
.
Consulte también a continuación: "Establecer un punto de interrupción de datos"
PROGRAM PLC_PRG VAR Idx : INT; Ary : ARRAY[0..3] OF BYTE; iNumber : INT := 55; END_VAR FOR idx := 0 TO 6 DO Ary[idx] := 0; END_FOR
Puntos de interrupción en aplicaciones con múltiples tareas
Básicamente, la depuración no es posible para varias tareas al mismo tiempo. Mientras trabaja en una tarea con puntos de interrupción o paso a paso, los puntos de interrupción se ignoran en otras tareas.
Si varias tareas utilizan una POU que contiene un punto de interrupción, solo se detiene la tarea ("tarea de depuración") porque llega primero al punto de interrupción. Todas las demás tareas continúan. El Pila de llamadas El cuadro de diálogo muestra qué tarea está actualmente detenida.
Si necesita un punto de interrupción para afectar solo una tarea específica, puede definirlo en las propiedades del punto de interrupción.
Los puntos de interrupción funcionan por separado para cada aplicación, por lo que "HALT ON BP" no afecta a ninguna otra aplicación. Esto también se aplica a las aplicaciones principal/secundaria, incluso si el punto de interrupción se establece en un bloque que utilizan varias aplicaciones y cuyo código se encuentra solo una vez en el PLC.
Importante
Las E/S a las que llama la "tarea de depuración" no se actualizan al detenerse en el punto de interrupción, incluso si selecciona la opción Actualizar E/S en parada casilla de verificación en la configuración del PLC.
Sugerencia
Si la aplicación se detiene en un punto de interrupción en el PLC, un cambio o descarga en línea hace que todas las tareas se detengan, lo que significa que el PLC se detendrá. En este caso, CODESYS le pregunta si desea o no continuar con el inicio de sesión.
Establecer un único punto de interrupción (ejemplo en el editor ST)
Requisito: La aplicación está en modo en línea y ejecutándose. El modo de funcionamiento es Depurar.
En el editor, abra una POU programada en texto estructurado (ST).
Coloque el cursor en la línea donde se establecerá un punto de interrupción.
Hacer clic F9 llave.
o presione elLa línea está marcada en rojo e identificada por el
símbolo (punto de interrupción habilitado). Si el programa se detiene en el punto de interrupción, la línea se marca con el
símbolo (detener en el punto de interrupción). El procesamiento del programa se detiene. Esto se identifica en la línea de estado por el
HALT ON BP
estado resaltado en rojo.Hacer clic F5 llave.
o presione elEl programa continúa.
Establezca más puntos de interrupción y verifique los valores de las variables en la posición de interrupción.
Coloque el cursor en la línea donde se debe eliminar un punto de interrupción.
Hacer clic F9 llave.
o presione elLa marca desaparece. El punto de interrupción se elimina.
Definición de una condición de punto de interrupción (ejemplo en el editor ST)
En el editor, abra una POU programada en texto estructurado (ST).
Coloque el cursor en la línea donde se establecerá un punto de interrupción.
Hacer clic
.El Nuevo punto de interrupción se abre el cuadro de diálogo.
Haga clic en el Condición pestaña.
Hacer clic Interrupción cuando el recuento de visitas es un múltiplo de en el Número de visitas cuadro de lista.
Especifique el valor "5" en el campo de la derecha.
Además, puede definir una condición booleana para cuándo debe estar activo el punto de interrupción. Selecciona el Romper, cuando es cierto casilla de verificación Especifique una variable booleana en el campo de texto de la derecha.
Selecciona el Habilitar punto de interrupción inmediatamente casilla de verificación
Cierra el cuadro de diálogo.
La línea está marcada en rojo e identificada por el
símbolo.
Supervisar el programa en ejecución. Siempre que la variable booleana para la condición sea FALSE
, la condición del punto de interrupción no se cumple y el programa continúa ejecutándose. Si establece la variable en TRUE
, luego se cumple la condición y el programa se detiene en el punto de interrupción cada 5 pasos.
Definición de un punto de ejecución (ejemplo en el editor ST)
En el editor, abra una POU programada en texto estructurado (ST).
Coloque el cursor en la posición de un punto de ejecución.
Hacer clic
.El Nuevo punto de interrupción se abre el cuadro de diálogo.
Haga clic en el Configuración del punto de ejecución pestaña.
Selecciona el punto de ejecución opción.
En el Ejecuta el siguiente código campo, especifique la siguiente declaración:
iCounter := iCounter + 1;
En el Imprimir un mensaje en el registro del dispositivo campo, especifique el siguiente texto:
Execution point reached {iCounter}
Cierra el cuadro de diálogo.
Cuando el programa llega al punto de ejecución, no se detiene, sino que ejecuta el código definido anteriormente. Además. se emite un mensaje en el registro del dispositivo.
Establecer un punto de interrupción de datos
Requisito: La aplicación está en modo en línea y ejecutándose.
Hacer clic
.Hacer clic
.En el Nuevo punto de interrupción diálogo, en el Datos pestaña, haga clic en el
botón.
En el asistente de entrada diálogo (Ver variables pestaña), seleccione las variables para las cuales el programa debe detenerse cuando se cambia.
Como alternativa, especifique el nombre calificado de la variable en el Datos pestaña directamente en la línea de entrada. Ejemplo:
PLC_PRG.iNumber
. El número exacto de bytes a monitorear se especifica como el Tamaño. Aquí se establece automáticamente un valor que corresponde al tipo de datos de forma predeterminada. También puede especificar menos bytes para ser monitoreados.En el puntos de ruptura vista, seleccione la línea con el punto de interrupción de datos y haga clic en el
botón.
La línea está marcada e identificada por el
símbolo (punto de interrupción de datos habilitado). Cuando el programa alcanza el punto de interrupción de datos (es decir, cuando cambia el valor de las variables seleccionadas), el procesamiento del programa se detiene. En la parte de implementación de la POU, la siguiente línea se identifica con una flecha
. Esto se identifica en la línea de estado por el
HALT ON BP
estado resaltado en rojo.Hacer clic F5 llave.
o presione elEl programa continúa ejecutándose y se detiene nuevamente cuando el valor de las variables cambia nuevamente.