Instructions TIA Portal

Contrôle du Programme
Flux & Exécution

Maîtrisez le déroulement logique de votre programme. Des sauts conditionnels aux outils de diagnostic en temps réel, optimisez la structure d'exécution de votre automate.

Que sont les opérations de contrôle dans TIA Portal ?

Les opérations de contrôle du programme permettent de modifier l'ordre séquentiel d'exécution des réseaux. Elles sont utilisées pour ignorer des parties du code (Sauts), créer des embranchements complexes (Aiguillages) ou gérer le comportement interne du CPU (Arrêt, Watchdog, Mesure de temps).

Ces instructions sont puissantes mais doivent être utilisées avec précaution, notamment l'instruction WAIT qui bloque le cycle, ou les sauts qui peuvent rendre le programme difficile à débugger s'ils sont trop nombreux. TIA Portal offre également des outils modernes pour intercepter les erreurs localement dans chaque bloc.

Sauts et Flux

Instructions de déroutement du programme

JMP / JMPN — Sauts conditionnels

JMP

Ce qu'il fait

JMP interrompt l'exécution séquentielle et saute vers une étiquette (LABEL) si le RLO est à 1. JMPN fait de même si le RLO est à 0.

Quand l'utiliser

Ignorer une section de code qui ne doit pas s'exécuter dans un mode spécifique, ou créer des boucles simples en LAD/FBD.

Conseils Pro

La destination du saut (LABEL) doit se trouver dans le même bloc (FC ou FB).

N'utilisez pas de sauts vers l'arrière pour créer des boucles sans condition de sortie, car vous risquez un dépassement du temps de cycle.

En SCL, utilisez plutôt les structures IF...THEN ou CASE...OF.

SWITCH — Aiguillage multi-cas

SWITCH

Ce qu'il fait

Compare une valeur d'entrée à plusieurs valeurs cibles et saute vers le réseau correspondant au premier cas vérifié. Équivalent graphique du Switch/Case.

Quand l'utiliser

Gestion d'états machine (Grafcet simple), sélection de modes de marche ou aiguillage de pièces selon un code type.

Conseils Pro

Plus propre et lisible qu'une suite de comparateurs == mis en série.

Utilisez l'entrée 'ELSE' pour gérer le cas où aucune valeur ne correspond.

Idéal pour les structures de menus sur IHM.

RET — Retour

RET

Ce qu'il fait

Force la fin de l'exécution du bloc actuel (FC/FB) et retourne au bloc appelant.

Quand l'utiliser

Arrêt anticipé d'une fonction si une erreur est détectée en début de bloc, ou si une condition de sécurité n'est pas remplie.

Conseils Pro

Utile pour optimiser le temps de cycle en ne traitant pas le reste du code inutilement.

Soyez vigilant : les sorties du bloc non encore traitées garderont leur dernier état.

En SCL, utilisez l'instruction RETURN;

Contrôle du Runtime

Gestion du cycle CPU et mesures de performance

RUNTIME — Mesurer le temps

RUNTIME

Ce qu'il fait

Mesure le temps d'exécution d'une portion de programme ou du bloc entier en microsecondes (µs).

Quand l'utiliser

Optimisation du code, diagnostic de réseaux trop gourmands, ou calculs de performance machine.

Conseils Pro

Appelez une première fois RUNTIME pour initialiser la mesure, puis une seconde fois pour obtenir le résultat.

Utilisez le type de données LReal pour stocker le résultat de la mesure.

Pratique pour vérifier si une boucle FOR complexe n'approche pas les limites du watchdog.

WAIT — Temporisation fixe

WAIT

Ce qu'il fait

Suspend l'exécution du programme pendant une durée spécifiée en microsecondes. ATTENTION : contrairement à un Timer, WAIT bloque totalement le cycle du CPU.

Quand l'utiliser

Attendre quelques microsecondes pour stabiliser un signal électronique sur une carte d'E/S ultra-rapide.

Conseils Pro

À utiliser avec une extrême modération. Un WAIT trop long déclenchera une erreur Watchdog et arrêtera le PLC.

Ne jamais utiliser pour des temporisations de processus (secondes/minutes) ; utilisez les Timers TON pour cela.

Seulement disponible sur S7-1500.

STP — Arrêt du CPU

STP

Ce qu'il fait

Force le passage du CPU en mode STOP.

Quand l'utiliser

Condition d'erreur fatale où la machine ne doit plus être pilotée, ou test de diagnostic.

Conseils Pro

L'arrêt est immédiat. Une intervention manuelle (IHM ou commutateur) sera nécessaire pour redémarrer.

Préférez la gestion d'alarmes avec repli sécurisé plutôt que l'arrêt brutal du CPU dans la mesure du possible.

Utile dans les projets de mise en service pour 'breaker' à un endroit précis.

Gestion des Erreurs

Interception locale des défauts d'exécution

GET_ERROR / GET_ERR_ID

Ce qu'ils font

Récupèrent les informations sur la première erreur survenue à l'intérieur d'un bloc (ex: accès à un index de tableau inexistant).

Quand l'utiliser

Rendre vos blocs robustes en interceptant les erreurs de programmation sans arrêter le PLC.

Conseils Pro

GET_ERROR fournit une structure détaillée (ErrorStruct), GET_ERR_ID ne retourne que le numéro de l'erreur.

Placez ces instructions à la fin de vos blocs critiques.

Permet de créer un journal d'erreurs personnalisé.

Sauts vs Structures de contrôle

Quelle méthode utiliser pour dérouter le programme ?

Vous avez besoin de...Instruction recommandéePourquoi ?
Saut simple en LadderJMPIgnorer un réseau
Choix multiple complexeSWITCH / CASEPlus lisible que 10 JMP
Mesurer une durée interneRUNTIMEOptimisation de performance
Arrêt immédiatSTPErreur critique matérielle
Attente très courteWAITStabilisation électronique
Diagnostic localGET_ERRORÉviter le STOP du CPU

Foire Aux Questions

Quelle est la différence entre JMP et JMP_LIST ?

JMP est un saut unique vers une cible. JMP_LIST permet de définir une liste de destinations. En fonction d'un index numérique, le programme saute vers la 1ère, 2ème ou Nième étiquette de la liste.

L'instruction WAIT est-elle dangereuse ?

Oui, si elle est mal utilisée. Elle suspend l'exécution de TOUT le programme utilisateur. Si la somme de vos WAIT et de votre code dépasse le temps de watchdog (souvent 150ms), le CPU passera en STOP.

Comment mesurer le temps de cycle total du PLC ?

Vous n'avez pas besoin de l'instruction RUNTIME pour cela. Vous pouvez lire l'information directement dans les propriétés du CPU en ligne, ou utiliser les variables système de l'OB1.

Où placer les étiquettes LABEL ?

Les LABEL peuvent être placés au début de n'importe quel réseau. En LAD, ils apparaissent au-dessus du rail gauche. Un nom de label doit être unique au sein du bloc.

Automatisez vos structures de contrôle

Décrivez votre logique de saut ou vos besoins de diagnostic, T-IA Connect générera les réseaux JMP et SWITCH optimisés pour votre application.