A I0.0 # Charger un bit en entréeO I0.1 # OU logique= Q0.0 # Affecter la sortieL MW10 # Charger un motL 5 # Charger une constante+I # Addition entièreT MW20 # Transférer le résultatBool # BitsByte / Word / DWord # Entiers non signésInt / DInt # Entiers signésReal # FlottantsTimer / Counter # Types spéciaux S7A I0.0 # ANDO I0.1 # ORX I0.2 # XORAN I0.3 # AND NOTON I0.4 # OR NOTXN I0.5 # XOR NOT= Q0.0 # Affectation sortieS Q0.0 # SetR Q0.0 # ResetL MW10 # Charger MW10L 5 # Charger constante+I # Addition-I # Soustraction*I # Multiplication/I # DivisionT MW20 # Transférer résultatL MD100 # Charger réelL 3.14 # Charger constante+R # Addition réelle*R # Multiplication réelleT MD200 # Transférer résultatL MW10 # Charger MW10L MW20 # Charger MW20==I # Égal<I # Inférieur>I # Supérieur<=I # Inférieur ou égal>=I # Supérieur ou égal= Q0.0 # Affecter résultatJU label1 # Saut inconditionnelJC label2 # Saut si condition vraieJCN label3 # Saut si condition fausselabel1: # Étiquette L 0 T MW10CALL FC10 # Appel FC10 IN1 := MW10, # Paramètre d’entrée IN2 := MW20, # Paramètre d’entrée OUT := MW30 # Paramètre de sortieCALL FB20, DB20 # Appel FB20 avec DB20 vitesse := MW10, commande := M0.0// S7-300/400 : STL très utilisé, accès direct mémoire// S7-1200/1500 : STL limité, accès optimisé obligatoire// S7-1500 : SCL recommandé, STL pour compatibilité// Optimized block access = pas d’adresses absolues// Toujours commenter les sections STL// Éviter les sauts multiples (JMP) → difficile à maintenir// Préférer SCL pour les nouveaux projets// Utiliser STL uniquement pour :// - compatibilité S7-300/400// - optimisation bas niveau// - manipulation directe de bits