VAR # Déclaration des variables locales compteur : INT; # Exemple de variableEND_VARcompteur := compteur + 1; # AffectationIF compteur > 10 THEN # Condition compteur := 0; # InstructionEND_IF;Bool # Vrai / FauxInt, DInt # Entiers 16 / 32 bitsReal # Nombre flottantString[20] # Chaîne de caractèresArray[0..9] of Int # TableauStruct # Structure de donnéesIF vitesse > 100 THEN # Condition simple alarme := TRUE;ELSE alarme := FALSE;END_IF;CASE mode OF # Sélection par valeur 0: moteur := FALSE; 1: moteur := TRUE; 2: moteur := NOT moteur;END_CASE;FOR i := 0 TO 10 DO # Boucle FOR tableau[i] := i * 2;END_FOR;WHILE pression < 5.0 DO # Boucle WHILE pression := pression + 0.1;END_WHILE;REPEAT # Boucle REPEAT compteur := compteur + 1;UNTIL compteur >= 10;FUNCTION FC_Add : INT # DéclarationVAR_INPUT a : INT; b : INT;END_VARFC_Add := a + b; # Retour de fonctionEND_FUNCTIONFB compteurFB # Déclaration FBVAR_INPUT reset : Bool;END_VARVAR valeur : Int := 0; # Mémoire interneEND_VARIF reset THEN valeur := 0;ELSE valeur := valeur + 1;END_IF;resultat := FC_Add(5, 10); # Appel FCcompteurFB(reset := FALSE); # Appel FBvaleurActuelle := compteurFB.valeur; # Lecture mémoire FBTRY resultat := 100 / valeur; # Risque division par zéroCATCH Division_by_zero resultat := 0; # Valeur par défautEND_TRY;// Toujours typer explicitement les variables// Utiliser des noms clairs : vitesseActuelle, pressionMax// Préférer les FB pour les fonctions avec mémoire// Utiliser CASE plutôt que IF imbriqués// Documenter les blocs via les commentaires SCL// Éviter les conversions implicites de type