Skip to main content

Diagnóstico cuando falla la visualización

Un bloqueo de la visualización puede tener varias causas. A continuación, puede ver cómo puede determinar la causa si una visualización falla y qué medidas son útiles para evitar fallas.

El Detener la ejecución en excepciones manejadas comando le ayuda a comprobar errores. Ejecute el comando antes de iniciar la aplicación.

Sugerencia

Por defecto, el Detener la ejecución en excepciones manejadas El comando no está disponible en ningún menú, pero se puede configurar en Herramientas → Personalizar como sigue.

  1. Haga clic en Herramientas → Personalizar.

    El Menú Se abre la pestaña. Primero necesita definir una posición en el menú para el comando. En este caso, tiene sentido seleccionar un elemento bajo el En línea menú.

  2. Seleccione la posición deseada y haga clic en el Agregar comando botón.

    Todos los comandos están listados en el Agregar comando diálogo.

  3. Selecciona el En línea categoría a la izquierda y luego el comando deseado a la derecha. Hacer clic DE ACUERDO para cerrar el diálogo. Luego haga clic DE ACUERDO nuevamente para cerrar el Personalizar diálogo.

    El Detener la ejecución en excepciones manejadas El comando ahora está disponible en el En línea menú.

Para obtener una descripción detallada del procedimiento para agregar el comando, consulte el capítulo "???".

Alternativa al comando Detener la ejecución en las excepciones manejadas puedes usar la definición del compilador VISU_NO_EXCEPTION_HANDLING establecido para la aplicación. Entonces, la excepción no es capturada por la visualización y el sistema de programación muestra el punto donde el sistema colapsó.

Posibles causas de que una visualización en ejecución se bloquee

. Posibles causas de que una visualización en ejecución se bloquee
  • En la visualización, un elemento de marco con una variable de interfaz con alcance VAR_INPUT used y esta variable de interfaz (en el ejemplo: PLC_PRG._itfTest1, _itfTest1 : ITF_TEST;) aún no ha sido asignado en la aplicación

_visu_img_crash_var_input.png
_visu_img_crash_frame_itf.png
  • En la visualización, un elemento de marco con una variable de interfaz (en el ejemplo fbTest) con alcance VAR_IN_OUT utilizado, que tiene un módulo de función como tipo de datos. Sin embargo, la variable transferida no apunta a este bloque de funciones.

_visu_img_crash_var_inout.png
_visu_img_crash_frame_fb.png
  • división por 0: En una expresión con división, el divisor (en el ejemplo PLC_PRG.rVal2) no 0 ser

_visu_img_crash_div_zero.png
  • uso de VAR_IN_OUT-Variables de un bloque de función en la visualización:

    Si en un bloque de funciones variables con alcance VAR_IN_OUT se declaran, una visualización solo puede acceder a estas variables después de que el programa haya llamado al bloque de función y el VAR_IN_OUT-Se han asignado variables en un bloque de función

  • Uso de puntero nulo y referencias nulas: una variable de puntero no debe ser nula (ejemplo: PLC_PRG.pValue^)

  • error en código interno; esto solo es visible en la pila de llamadas

Medidas para evitar estos errores

. Medidas para evitar estos errores
  • Use interfaces que inicialmente apunten a objetos ficticios

  • Llamada Visu_Prg en el proyecto sólo cuando se han realizado todas las inicializaciones

  • Usa el operador SEL como en el siguiente ejemplo: SEL(ptr<>0,0,ptr^.<>value)