Diagnostic sur crash de visualisation
Un crash de visualisation peut avoir différentes causes. Dans la section suivante, vous apprendrez comment vous pouvez détecter les causes d'un plantage de visualisation et quelles actions sont judicieuses pour éviter un plantage.
Le Arrêter l'exécution des exceptions gérées commande vous aide lors de la vérification des erreurs. Exécutez la commande avant le démarrage de l'application.
Astuce
Par défaut, le Arrêter l'exécution des exceptions gérées La commande n'est disponible dans aucun menu, mais elle peut être configurée dans comme suit.
Cliquez sur Outils → Personnaliser.
Le Menu l'onglet s'ouvre. Vous devez d’abord définir une position dans le menu pour la commande. Dans ce cas, il est judicieux de sélectionner un élément sous le En ligne menu.
Sélectionnez la position souhaitée et cliquez sur le Ajouter une commande bouton.
Toutes les commandes sont répertoriées dans le Ajouter une commande dialogue.
Sélectionnez le En ligne catégorie à gauche puis la commande souhaitée à droite. Cliquez sur D'ACCORD pour fermer la boîte de dialogue. Puis clique D'ACCORD encore une fois pour fermer le Personnaliser dialogue.
Le Arrêter l'exécution des exceptions gérées la commande est désormais disponible dans le En ligne menu.
Pour une description détaillée de la procédure pour ajouter la commande, voir le chapitre "???".
Comme alternative à la Arrêter l'exécution sur les exceptions gérées commande, vous pouvez définir la définition du compilateur VISU_NO_EXCEPTION_HANDLING
pour la candidature. Par conséquent, l'exception n'est pas détectée par la visualisation et le système de programmation indique l'emplacement où le système s'est écrasé.
Causes possibles du blocage d'une visualisation en cours d'exécution
Dans la visualisation, un élément de cadre avec une variable d'interface avec une portée
VAR_INPUT
est utilisée, et cette variable d'interface (dans l'exemple :PLC_PRG._itfTest1
,_itfTest1 : ITF_TEST;
) n'a pas encore été attribué dans l'application.


Dans la visualisation, un élément frame avec une variable d'interface (dans l'exemple :
fbTest
) avec portéeVAR_IN_OUT
est utilisé et cette variable d'interface a un bloc fonctionnel comme type de données. Cependant, la variable transférée ne pointe pas vers ce bloc fonction.


Division par
0
: Dans une expression avec division, le diviseur (dans l'exemple :PLC_PRG.rVal2)
ne doit pas être0
.

Utilisation de
VAR_IN_OUT
variables d'un bloc fonction dans la visualisation :Si variables avec portée
VAR_IN_OUT
sont déclarées dans un bloc fonction, une visualisation ne peut accéder à ces variables qu'après que le programme a appelé le bloc fonction et queVAR_IN_OUT
variables ont été affectées dans un bloc fonction.Utilisation de pointeurs zéro et de références zéro : Une variable pointeur ne doit pas être nulle (exemple :
PLC_PRG.pValue^
).Erreur dans le code interne ; ceci n'est visible que dans la pile des appels.
Marche à suivre pour éviter ces erreurs
Utilisez des interfaces qui pointent initialement vers des objets factices.
Appel
Visu_Prg
dans le projet uniquement lorsque toutes les initialisations ont été effectuées.Utiliser l'opérateur
SEL
comme dans l'exemple suivant :SEL(ptr<>0,0,ptr^.<>value)