Depuración

Descripción general

Para evaluar posibles errores de programación, puede utilizar la funcionalidad de depuración.

Para realizar pruebas, una aplicación también puede ejecutarse en simulación sin necesidad de que haya ningún enlace a un dispositivo de destino real. Si bien la simulación evita la necesidad de conectarse al hardware físico, existen limitaciones por las que es posible que deba llevar a cabo la depuración en línea.

Puntos de interrupción para forzar paradas de ejecución

El punto de interrupción establecido en un programa de aplicación detiene la ejecución del programa. Los valores de las variables pueden comprobarse en el punto de ejecución actual. La posición actual puede determinarse de forma más precisa con la Pila de llamadas.

Solo se detendrá la tarea de depuración que haya alcanzado el punto de interrupción. Las otras tareas seguirán ejecutándose. Las posiciones de los posibles puntos de interrupción dependen del editor de programa en cuestión. En cada caso, hay un punto de interrupción al final de una POU.

NOTA: Las entradas o salidas gestionadas por la tarea de depuración no se actualizarán si se detienen en un punto de interrupción. Esto se aplica aunque la opción Actualizar E/S en parada esté activada en la ficha Ajustes PLC [GENERAL] del editor de dispositivos.

Consulte el capítulo Comandos relacionados con los puntos de interrupción para ver una descripción de los comandos relacionados con los puntos de interrupción. El cuadro de diálogo Puntos de interrupción (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea) proporciona una descripción general de todos los puntos de interrupción, lo que le permite añadir, quitar y modificar puntos de interrupción.

Puntos de interrupción condicionales

La detención en el punto de interrupción puede depender de las siguientes condiciones:

  • En ese momento, el valor de una expresión booleana específica es TRUE.

  • El número de ciclo que se está ejecutando.

  • La tarea que se está ejecutando.

  • Cuando se modifica el valor de una variable (punto de interrupción de datos).

La declaración de una tarea de depuración específica puede contribuir a evitar que diversas tareas queden afectadas por la comprobación de errores (consulte el apartado Puntos de interrupción y ejecución paso a paso en aplicaciones con múltiples tareas).

Puntos de ejecución

En la modalidad en línea, el cuadro de diálogo Puntos de interrupción (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea) le permite cambiar un punto de interrupción y un punto de interrupción de datos de tal forma que se conviertan en un punto de ejecución. En consecuencia, el programa no se detiene en la posición, sino que se inicia el procesamiento del código.

Símbolos

Símbolo

Descripción

Punto de interrupción activado.

Punto de interrupción desactivado.

El punto de interrupción se establece en otra instancia del bloque de funciones que se encuentre abierta en el editor.

Se detiene en el punto de interrupción.

Punto de interrupción condicional activado.

Punto de interrupción condicional desactivado.

Punto de ejecución activado.

Punto de ejecución desactivado.

Punto de ejecución condicional activado.

Punto de ejecución condicional desactivado.

Posición actual del paso.

Se indica con una flecha amarilla delante de la línea respectiva y una sombra amarilla detrás de la operación en cuestión.

Punto de interrupción de datos activado.

Punto de interrupción de datos desactivado.

Se detiene en el punto de interrupción de datos.

Punto de ejecución de datos activado.

Punto de ejecución de datos desactivado.

Se detiene en el punto de ejecución de datos.

Punto de ejecución de datos condicional activado.

Punto de interrupción de datos condicional activado.

Ejecución paso a paso del programa

La ejecución paso a paso permite la ejecución controlada de un programa de aplicación en modalidad en línea para fines de depuración. Antes de utilizar los comandos de ejecución paso a paso, el programa deberá detenerse en un paso de programa definido, por ejemplo estableciendo un punto de interrupción. Básicamente, se pasa de una instrucción a la siguiente accediendo a la instrucción (step into), pasando a la siguiente instrucción (step over) o saliendo de la instrucción (step out). Consulte el capítulo Comandos de punto de interrupción si desea una descripción de los comandos de ejecución paso a paso.

En EcoStruxure Machine Expert se proporcionan las siguientes funciones de ejecución paso a paso:

  • Comando Step into (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea): ejecución de un solo paso; esto también se aplica a las POU llamadas en un paso.

  • Comando Step over (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea): ejecución de un solo paso; las POU se ejecutan completamente en un paso.

  • Comando Step out (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea): si el programa de aplicación no contiene ninguna llamada, se ejecuta un salto de vuelta al inicio de la aplicación.

  • Comando Ir a cursor (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea): ejecución del programa hasta una posición definible temporal.

  • Comando Definir la siguiente instrucción (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea): definición de la siguiente instrucción que se ejecutará.

  • Comando Mostrar la siguiente instrucción (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea): saltar a la instrucción que se ejecutará en el siguiente paso.

  • Vista Pila de llamadas (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea): esta vista indica la posición del paso alcanzada con la ruta de llamada completa.

Las posibles posiciones de detención al ejecutar paso por paso un programa de aplicación dependerán del tipo de editor. La posición actual se indica mediante una flecha amarilla.

La vista Árbol de llamadas (consulte EcoStruxure Machine Expert, Comandos de menú, Ayuda en línea) muestra la ubicación del bloque de funciones en la estructura de llamada de un programa de aplicación incluso antes de compilar la aplicación.

Ejemplo de operación paso a paso (step Into)

A partir del punto de interrupción, puede ejecutar cada línea de comandos con el comando de ejecución paso a paso.

Paso a paso, ejemplo

Puntos de interrupción de datos

Los puntos de interrupción de datos permiten detener la ejecución del programa cuando cambia el valor de una variable.

Esta función no está disponible para todos los controladores admitidos. Consulte la guía de programación específica de su controlador.

El número de puntos de interrupción de datos que puede definir depende del controlador que use. Se muestra un mensaje cuando intenta establecer un punto de interrupción de datos y ya se ha alcanzado el número máximo.

Las opciones siguientes están disponibles tanto para puntos de interrupción de datos como puntos de interrupción normales:

  • Vincular la detención en el punto de interrupción de datos con otra condición (consulte Puntos de interrupción condicionales).

  • Redefinir un punto de interrupción de datos en un punto de ejecución de datos en el que el programa no se detiene, sino que procesa un código específico (consulte Puntos de ejecución).

Puntos de interrupción y ejecución paso a paso en aplicaciones con múltiples tareas

La depuración no puede ejecutarse en diversas tareas al mismo tiempo. Mientras trabaja con una tarea con puntos de interrupción o ejecución paso a paso, se ignoran los puntos de interrupción de otras tareas.

Si múltiples tareas pueden acceder a un punto de interrupción porque varias tareas utilizan la POU, solo se detendrá la tarea que se ejecute en primer lugar. Tenga esto en cuenta en el caso de una única ejecución paso a paso o si prosigue la depuración después de una parada. Si solo debe haber una determinada tarea implicada (tarea de depuración), puede especificarlo en las propiedades de las condiciones del punto de interrupción (cuadro de diálogo Puntos de interrupción > Nuevo punto de interrupción, ficha Condición).

Control de proceso para la visualización de valores exactos durante el procesamiento

Es posible activar el control de proceso para realizar un seguimiento de partes de la aplicación que ya se hayan ejecutado. A diferencia de la supervisión estándar, que muestra únicamente el valor de la variable entre dos ciclos, el control de proceso devuelve el valor de cada paso de procesamiento en el momento de su ejecución. Consulte también la descripción de Control de proceso en la Ayuda en línea de los comandos de menú.

Valores de variables durante la detención de la ejecución

En cada detención de la ejecución, EcoStruxure Machine Expert muestra los valores de las variables del ciclo actual (supervisión). Para determinar la posición actual, es posible mostrar la pila de llamadas de una variable. Consulte también la descripción de Pila de llamadas en la Ayuda en línea de los comandos de menú.