406
s Avant-propos, Sommaire Présentation du produit 1 Installation 2 Développement d'un programme S7-SCL 3 Utilisation de S7-SCL 4 Notions fondamentales dans S7-SCL 5 Structure de programme S7-SCL 6 Types de données 7 Déclaration de variables locales et de paramètres 8 Déclaration de constantes et repères de saut 9 Données globales 10 Expressions, opérations et opérandes 11 Instructions 12 Compteurs et temporisation 13 Fonctions standard de S7-SCL 14 Description du langage 15 Conseils et astuces 16 Glossaire, Index SIMATIC S7-SCL V5.3 pour S7-300/400 Manuel Edition 01/2005 A5E00324651-01

S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Embed Size (px)

Citation preview

Page 1: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

s Avant-propos, Sommaire

Présentation du produit 1 Installation 2 Développement d'un programme S7-SCL 3 Utilisation de S7-SCL 4 Notions fondamentales dans S7-SCL 5 Structure de programme S7-SCL 6 Types de données 7 Déclaration de variables locales et de paramètres 8 Déclaration de constantes et repères de saut 9 Données globales 10 Expressions, opérations et opérandes 11 Instructions 12 Compteurs et temporisation 13 Fonctions standard de S7-SCL 14 Description du langage 15 Conseils et astuces 16 Glossaire, Index

SIMATIC

S7-SCL V5.3 pour S7-300/400 Manuel

Edition 01/2005 A5E00324651-01

Page 2: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Copyright Siemens AG 2005 Tous droits réservés Exclusion de responsabilité

Toute communication et reproduction de ce document, toute exploitation ou communication de son contenu sont interdites, sauf autorisation expresse. Tout manquement à cette règle est illicite et expose son auteur au versement de dommages et intérêts. Tous nos droits sont réservés, notamment pour le cas de la délivrance d'un brevet ou de l'enregistrement d'un modèle d'utilité Siemens AG Automation and Drives Postfach 4848, 90327 Nürnberg, Allemagne

Nous avons vérifié la conformité du contenu du présent document avec le matériel et le logiciel qui y sont décrits. Ne pouvant toutefois exclure toute divergence, nous ne pouvons pas nous porter garants de la conformité intégrale. Si l'usage de ce manuel devait révéler des erreurs, nous en tiendrons compte et apporterons les corrections nécessaires dès la prochaine édition. Siemens AG 2005 Sous réserve de modifications techniques

Siemens Aktiengesellschaft A5E00324651-01

Consignes de sécurité Ce manuel donne des consignes que vous devez respecter pour votre propre sécurité et pour éviter des

dommages matériels. Les avertissements servant à votre sécurité personnelle sont accompagnés d'un

triangle de danger, les avertissements concernant uniquement des dommages matériels sont

dépourvus de ce triangle. Les avertissements sont représentés ci-après par ordre décroissant de niveau

de risque.

! Danger signifie que la non-application des mesures de sécurité appropriées entraîne la mort ou des blessures graves.

! Attention signifie que la non-application des mesures de sécurité appropriées peut entraîner la mort ou des blessures graves.

! Prudence signifie que la non-application des mesures de sécurité appropriées peut entraîner des blessures légères.

Prudence

signifie que la non-application des mesures de sécurité appropriées peut entraîner un dommage matériel.

Important signifie que le non-respect de l'avertissement correspondant peut entraîner l'apparition d'un

événement ou d'un état indésirable.

En présence de plusieurs niveaux de risque, c'est toujours l'avertissement correspondant au niveau le

plus élevé qui est reproduit. Si un avertissement avec triangle de danger prévient des risques de

dommages corporels, le même avertissement peut aussi contenir un avis de mise en garde contre des

dommages matériels.

Personnel qualifié L'installation et l'exploitation de l'appareil/du système concerné ne sont autorisées qu'en liaison avec la

présente documentation. La mise en service et l'exploitation d'un appareil/système ne doivent être

effectuées que par des personnes qualifiées. Au sens des consignes de sécurité figurant dans cette

documentation, les personnes qualifiées sont des personnes qui sont habilitées à mettre en service, à

mettre à la terre et à identifier des appareils, systèmes et circuits en conformité avec les normes de

sécurité. Utilisation conforme à la destination

Tenez compte des points suivants :

! Attention L'appareil/le système ne doit être utilisé que pour les applications spécifiées dans le catalogue ou

dans la description technique, et uniquement en liaison avec des appareils et composants

recommandés ou agréés par Siemens s'ils ne sont pas de Siemens.

Le transport, le stockage, le montage, la mise en service ainsi que l'utilisation et la maintenance Le fonctionnement correct et sûr du produit implique son transport, stockage, montage et mise en service selon les règles de l'art ainsi qu'une utilisation et maintenance soigneuses.

Marque de fabrique

Toutes les désignations repérées par ® sont des marques déposées de Siemens AG. Les autres

désignations dans ce document peuvent être des marques dont l'utilisation par des tiers à leurs propres

fins peut enfreindre les droits de leurs propriétaires respectifs.

Page 3: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 iii

Avant-propos

But du manuel Ce manuel donne une description exhaustive de la programmation avec S7-SCL. Il vous guidera pour installer le logiciel et le mettre en service. Il explique comment écrire des programmes utilisateur et présente les différents éléments de langage.

Il s'adresse aux programmeurs en langage S7-SCL et à tous ceux qui travaillent à la configuration, la mise en service et la maintenance des systèmes d'automatisation.

Nous recommandons de se familiariser avec l'exemple du chapitre 2 "Conception d'un programme S7-SCL". Il facilite l'apprentissage de la programmation avec S7-SCL.

Connaissances de base requises

Ce manuel demande à l'utilisateur des connaissances générales dans le domaine des techniques d'automatisation. .

Nous supposerons en outre que l'emploi d'ordinateurs ou de machines analogues (telles que les consoles de programmation) ainsi que l'environnement Microsoft Windows 2000/XP lui sont familiers et qu'il connaît le logiciel de base STEP 7 ainsi que le manuel "Programmer avec STEP 7 V5.3".

Validité du manuel

Ce manuel s'applique au logiciel S7-SCL V5.3.

Page 4: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Avant-propos

S7-SCL V5.3 pour S7-300/400 iv A5E00324651-01

Documentation de S7-SCL et du logiciel de base STEP 7

Le tableau ci-dessous indique la documentation existante sur STEP 7 et sur S7-SCL :

Manuels Contenu Numéro de référence

S7-SCL Connaissances fondamentales et références

• S7-SCL pour SIMATIC S7-300/400 : Programmation de blocs

Notions de base et références à consulter, expliquant l'élaboration d'un programme, la structure des programmes utilisateur et les différents éléments de langage.

Le manuel ne peut pas être commandé séparément. Il se trouve sur le CD livré avec le logiciel, sur le CD "Manual Collection" et est disponible sur Internet.

STEP 7 Connaissances fondamentales

• STEP 7 V5.3 - Getting Started

• Programmer avec STEP 7 V5.3

• Configuration matérielle et communication avec STEP 7 V5.3

• Pour une transition facile de STEP 5 à STEP 7

Notions de base à l'adresse du personnel technique, marche à suivre pour réaliser des tâches d'automatisation avec STEP 7 et SIMATIC S7-300/400.

6ES7810-4CA07-8CW0

STEP 7 Manuels de référence

• Langages CONT/LOG/LIST pour SIMATIC S7-300/400

• Fonctions standard et fonctions système pour SIMATIC S7-300/400

Références à consulter, complétant les bases de STEP 7 par une description des langages de programmation CONT, LOG et LIST ainsi que des fonctions standard et des fonctions système.

6ES7810-4CA07-8CW1

Aides en ligne Contenu Numéro de référence

Aide de S7-SCL Notions de base et références de SCL sous forme d'aide en ligne

Fait partie du logiciel SCL

Aide de STEP 7 Notions de base permettant de programmer et de configurer le matériel avec STEP 7, sous forme d'aide en ligne.

Fait partie du logiciel STEP 7

Aides de référence de CONT/LOG/LIST Aide de référence des SFB/SFC Aide de référence des blocs d'organisation Aide de référence des fonctions CEI Aide de référence des attributs système

Références contextuelles Font partie du logiciel STEP 7

Page 5: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Avant-propos

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 v

Aide en ligne

L'aide en ligne vous donne les informations qui vous manquent à l'endroit où vous en avez besoin. De cette manière, vous obtenez très vite les renseignements pertinents, sans avoir à chercher dans des manuels. Vous disposez des commandes suivantes :

• Rubriques d'aide propose la liste des sujets traités dans l'aide ;

• Aide contextuelle (touche F1) affiche des informations sur l'objet sélectionné ou sur la boîte de dialogue ou la fenêtre active ;

• Introduction donne un aperçu de l'application, de ses caractéristiques et de sa fonctionnalité ;

• Mise en route résume les opérations à effectuer pour obtenir un premier résultat ;

• Utiliser l'aide décrit les moyens dont vous disposez pour trouver certaines informations dans l'aide ;

• A propos de renseigne sur la version actuelle de l'application.

Page 6: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Avant-propos

S7-SCL V5.3 pour S7-300/400 vi A5E00324651-01

Assistance supplémentaire

Si des questions sont restées sans réponse dans ce manuel, veuillez vous adresser à votre interlocuteur Siemens dans la filiale ou l'agence de votre région.

Vous trouvez votre interloculeur sous :

http://www.siemens.com/automation/partner

Vous trouvez un fil rouge pour la recherche de documentations techniques sur les produits et systèmes SIMATIC à l’adresse suivante sur Internet :

http://www.siemens.com/simatic-tech-doku-portal

Le catalogue en ligne et le système de commande en ligne se trouvent à l'adresse :

http://mall.automation.siemens.com/

Centre de formation SIMATIC Nous proposons des cours de formation pour vous faciliter l'apprentissage des automates programmables SIMATIC S7. Veuillez vous adresser à votre centre de formation régional ou au centre principal à D 90327 Nuremberg.

Téléphone : +49 (911) 895-3200.

Internet: http://www.sitrain.com

Page 7: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Avant-propos

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 vii

Technical Support

Vous pouvez joindre le support technique pour tous les produits A&D

• Via le formulaire Web de demande d’assistance (Support Request) http://www.siemens.com/automation/support-request

• Téléphone : + 49 180 5050 222

• Télécopie : + 49 180 5050 223

Vous trouvez plus d’informations concernant notre Technical Support sur Internet à l’adresse suivante :

http://www.siemens.com/automation/service

Service & Support sur Internet

En plus de la documentation offerte, vous trouvez la totalité de notre savoir-faire en ligne sur Internet à l'adresse suivante :

http://www.siemens.com/automation/service&support

Vous y trouvez :

• le bulletin d'informations qui vous fournit constamment les dernières informations sur le produit,

• les documents dont vous avez besoin à l'aide de la fonction de recherche du Service & Support,

• le forum où utilisateurs et spécialistes peuvent échanger informations,

• votre interlocuteur Automation & Drives sur place,

• des informations sur le service après-vente, les réparations, les pièces de rechange à la rubrique "Service".

Page 8: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Avant-propos

S7-SCL V5.3 pour S7-300/400 viii A5E00324651-01

Page 9: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 ix

Sommaire

1 Présentation du produit ...........................................................................................................1-1

1.1 Domaine d'application de S7-SCL ..............................................................................1-1 1.2 Fonctionnement de S7-SCL........................................................................................1-2 1.3 Fonctions offertes par S7-SCL....................................................................................1-4 1.4 Nouveautés dans la version V5.3 SP1........................................................................1-6

2 Installation .................................................................................................................................2-1

2.1 Automation License Manager .....................................................................................2-1 2.1.1 Licence d'utilisation avec Automation License Manager ............................................2-1 2.1.2 Installation de Automation License Manager ..............................................................2-4 2.1.3 Règles d'utilisation des License Keys .........................................................................2-5 2.2 Installation ...................................................................................................................2-6 2.2.1 Environnement requis .................................................................................................2-6 2.2.2 Installation de S7-SCL.................................................................................................2-6

3 Développement d'un programme S7-SCL..............................................................................3-1

3.1 Bienvenue dans l'exemple pour débutants "Saisie de valeurs de mesure" ................3-1 3.2 Enoncé du problème ...................................................................................................3-2 3.3 Composition d'un programme structuré avec S7-SCL................................................3-4 3.4 Définition des tâches partielles ...................................................................................3-6 3.5 Définition des interfaces entre blocs ...........................................................................3-8 3.6 Définition de l'interface d'entrée/sortie ......................................................................3-10 3.7 Définition de l'ordre des blocs dans la source...........................................................3-11 3.8 Définition des mnémoniques.....................................................................................3-11 3.9 Création de la fontion CARRE ..................................................................................3-12 3.9.1 Section des instructions de la fonction CARRE ........................................................3-12 3.10 Création du FB CALCUL...........................................................................................3-13 3.10.1 Organigramme de EXPLOITER ................................................................................3-13 3.10.2 Section de déclaration du FB CALCUL.....................................................................3-14 3.10.3 Section des instructions du FB CALCUL ..................................................................3-15 3.11 Création du FB SAISIE..............................................................................................3-17 3.11.1 Organigramme de SAISIR.........................................................................................3-17 3.11.2 Section de déclaration du FB SAISIE .......................................................................3-18 3.11.3 Section des instructions du FB SAISIE .....................................................................3-20 3.12 Création du bloc d'organisation CYCLE....................................................................3-23 3.13 Données de test ........................................................................................................3-25

4 Utilisation de S7-SCL ...............................................................................................................4-1

4.1 Démarrer le logiciel S7-SCL........................................................................................4-1 4.2 Interface utilisateur ......................................................................................................4-2 4.3 Personnalisation de l'interface utilisateur ....................................................................4-3 4.4 Création et manipulation d'une source S7-SCL ..........................................................4-4 4.4.1 Créer une nouvelle source S7-SCL ............................................................................4-4 4.4.2 Ouvrir une source S7-SCL ..........................................................................................4-5 4.4.3 Fermer une source S7-SCL ........................................................................................4-5 4.4.4 Ouvrir des blocs ..........................................................................................................4-6 4.4.5 Définir les propriétés de l'objet ....................................................................................4-6 4.4.6 Générer des sources S7-SCL avec un éditeur standard ............................................4-6 4.4.7 Protection de bloc........................................................................................................4-7

Page 10: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Sommaire

S7-SCL V5.3 pour S7-300/400 x A5E00324651-01

4.5 Règles pour les sources S7-SCL ................................................................................4-8 4.5.1 Règles générales pour les sources S7-SCL ...............................................................4-8 4.5.2 Ordre des blocs ...........................................................................................................4-8 4.5.3 Utilisation de mnémoniques ........................................................................................4-9 4.6 Editer dans des sources S7-SCL ..............................................................................4-10 4.6.1 Annuler la dernière action d'édition ...........................................................................4-10 4.6.2 Rétablir une action d'édition ......................................................................................4-10 4.6.3 Rechercher et remplacer des parties de texte ..........................................................4-10 4.6.4 Sélectionner des parties de texte..............................................................................4-11 4.6.5 Copier des parties de texte .......................................................................................4-11 4.6.6 Couper des parties de texte ......................................................................................4-12 4.6.7 Effacer des parties de texte ......................................................................................4-12 4.6.8 Positionner le curseur dans une ligne donnée..........................................................4-13 4.6.9 Indentation des lignes selon la syntaxe ....................................................................4-14 4.6.10 Choisir le style et la couleur des caractères..............................................................4-15 4.6.11 Positionnement de signets dans le textes source.....................................................4-16 4.6.12 Insérer des modèles..................................................................................................4-17 4.6.12.1 Insérer des modèles de bloc .....................................................................................4-17 4.6.12.2 Insérer des appels de bloc ........................................................................................4-17 4.6.12.3 Insérer des modèles de commentaire.......................................................................4-17 4.6.12.4 Insérer des modèles de paramètre ...........................................................................4-18 4.6.12.5 Insérer des structures de contrôle.............................................................................4-18 4.7 Compiler und programme S7-SCL............................................................................4-19 4.7.1 Informations sur la compilation .................................................................................4-19 4.7.2 Choisir les options de compilation.............................................................................4-20 4.7.3 Compiler le programme.............................................................................................4-22 4.7.4 Créer un fichier d'informations compilation ...............................................................4-22 4.7.5 Eliminer les erreurs après la compilation ..................................................................4-23 4.8 Enregistrer et imprimer une source S7-SCL .............................................................4-24 4.8.1 Enregistrer une source S7-SCL ................................................................................4-24 4.8.2 Choisir la taille de papier ...........................................................................................4-24 4.8.3 Imprimer une source S7-SCL....................................................................................4-25 4.8.4 Choisir les options d'impression................................................................................4-25 4.9 Chargement de programmes ....................................................................................4-27 4.9.1 Effacement général de la mémoire de la CPU..........................................................4-27 4.9.2 Charger des programmes utilisateur dans la CPU ...................................................4-27 4.10 Test des programmes ...............................................................................................4-29 4.10.1 Fonctions de test de S7-SCL ....................................................................................4-29 4.10.2 Informations sur la fonction de test "Visualiser" ........................................................4-30 4.10.3 Informations sur le test avec points d'arrêt / en pas à pas........................................4-31 4.10.4 Marche à suivre pour la visualisation ........................................................................4-32 4.10.4.1 Marche à suivre pour la visualisation ........................................................................4-32 4.10.4.2 Définition d'un environnement d'appel des blocs......................................................4-33 4.10.5 Marche à suivre pour le test avec points d'arrêt .......................................................4-34 4.10.5.1 Définir des points d'arrêt ...........................................................................................4-34 4.10.5.2 Mettre fin au test avec points d'arrêt .........................................................................4-34 4.10.5.3 Activer, désactiver et effacer des points d'arrêt ........................................................4-34 4.10.5.4 Définition d'un environnement d'appel des points d'arrêt .........................................4-35 4.10.5.5 Test en pas à pas......................................................................................................4-36 4.10.6 Utilisation des fonctions de test de STEP 7 ..............................................................4-36 4.10.6.1 Générer et afficher les données de référence ..........................................................4-36 4.10.6.2 Vérification de la cohérence des blocs......................................................................4-37

Page 11: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Sommaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 xi

4.11 Afficher et modifier les propriétés de la CPU ............................................................4-38 4.11.1 Afficher et modifier l'état de fonctionnement de la CPU............................................4-38 4.11.2 Afficher et régler la date et l'heure de la CPU...........................................................4-38 4.11.3 Afficher les données de la CPU ................................................................................4-39 4.11.4 Lire la mémoire de diagnostic de la CPU..................................................................4-39 4.11.5 Afficher/comprimer la mémoire utilisateur de la CPU ...............................................4-39 4.11.6 Afficher le temps de cycle de la CPU........................................................................4-40 4.11.7 Afficher l'horodatage de la CPU................................................................................4-40 4.11.8 Afficher les blocs dans la CPU..................................................................................4-40 4.11.9 Affichage des informations sur la communication de la CPU ...................................4-41 4.11.10 Affichage des piles de la CPU...................................................................................4-41

5 Notions fondamentales dans S7-SCL.....................................................................................5-1

5.1 Interprétation des diagrammes syntaxiques ...............................................................5-1 5.2 Jeu de caractères........................................................................................................5-4 5.3 Mots réservés..............................................................................................................5-5 5.4 Identificateur ................................................................................................................5-6 5.5 Identificateur standard.................................................................................................5-7 5.6 Désignation de bloc.....................................................................................................5-7 5.7 Identificateur d'opérande.............................................................................................5-9 5.8 Désignation de temporisation....................................................................................5-10 5.9 Désignation de compteur ..........................................................................................5-10 5.10 Nombres....................................................................................................................5-11 5.11 Chaîne de caractères ................................................................................................5-13 5.12 Mnémonique..............................................................................................................5-14 5.13 Bloc de commentaire.................................................................................................5-15 5.14 Ligne de commentaire...............................................................................................5-16 5.15 Variables....................................................................................................................5-17

6 Structure de programme S7-SCL............................................................................................6-1

6.1 Blocs dans les sources S7-SCL..................................................................................6-1 6.2 Ordre des blocs ...........................................................................................................6-2 6.3 Composition générale d'un bloc ..................................................................................6-3 6.4 Début et fin de bloc .....................................................................................................6-3 6.5 Attributs de bloc...........................................................................................................6-5 6.6 Commentaire de bloc ..................................................................................................6-7 6.7 Attributs système pour bloc .........................................................................................6-8 6.8 Section de déclaration.................................................................................................6-9 6.9 Attributs système pour paramètre .............................................................................6-10 6.10 Section des instructions ............................................................................................6-11 6.11 Instructions ................................................................................................................6-12 6.12 Composition d'un bloc fonctionnel (FB) ....................................................................6-13 6.13 Composition d'une fonction (FC)...............................................................................6-15 6.14 Composition d'un bloc d'organisation (OB) ...............................................................6-17 6.15 Composition d'un bloc de données (DB)...................................................................6-18 6.16 Composition d'un type de données utilisateur ..........................................................6-21 6.17 Options du compilateur dans les sources S7-SCL ...................................................6-23

Page 12: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Sommaire

S7-SCL V5.3 pour S7-300/400 xii A5E00324651-01

7 Types de données ....................................................................................................................7-1

7.1 Présentation des types de données dans S7-SCL .....................................................7-1 7.2 Types de données simples..........................................................................................7-3 7.2.1 Types de données binaires .........................................................................................7-3 7.2.2 Types de données sur caractère.................................................................................7-3 7.2.3 Types de données numériques...................................................................................7-3 7.2.4 Types de données temporels......................................................................................7-4 7.3 Types de données complexes ....................................................................................7-5 7.3.1 Type de données DATE_AND_TIME..........................................................................7-5 7.3.2 Type de données STRING..........................................................................................7-7 7.3.3 Type de données ARRAY .........................................................................................7-10 7.3.4 Type de données STRUCT.......................................................................................7-12 7.4 Type de données utilisateur ......................................................................................7-14 7.4.1 Types de données utilisateur (UDT) .........................................................................7-14 7.5 Types de données pour paramètre ...........................................................................7-16 7.5.1 Types de données TIMER et COUNTER..................................................................7-16 7.5.2 Types de données BLOCK........................................................................................7-17 7.5.3 Type de données POINTER......................................................................................7-17 7.6 Type de données ANY ..............................................................................................7-19 7.6.1 Exemple de type de données ANY ...........................................................................7-20

8 Déclaration de variables locales et de paramètres ...............................................................8-1

8.1 Variables locales et paramètres de bloc .....................................................................8-1 8.2 Syntaxe générale d'une déclaration de variable ou de paramètre..............................8-2 8.3 Initialisation..................................................................................................................8-3 8.4 Déclaration d'accès à des zones de variable..............................................................8-5 8.5 Utilisation de multi-instances.......................................................................................8-7 8.6 Déclaration d'une instance ..........................................................................................8-7 8.7 Drapeau OK ................................................................................................................8-8 8.8 Sections de déclaration ...............................................................................................8-9 8.8.1 Présentation des sections de déclaration ...................................................................8-9 8.8.2 Variables statiques ....................................................................................................8-10 8.8.3 Variables temporaires ...............................................................................................8-11 8.8.4 Paramètres de bloc ...................................................................................................8-12

9 Déclaration de constantes et repères de saut .......................................................................9-1

9.1 Constantes ..................................................................................................................9-1 9.1.1 Déclaration de mnémoniques pour les constantes .....................................................9-2 9.1.2 Types de données des constantes .............................................................................9-3 9.1.3 Notation des constantes..............................................................................................9-4 9.1.3.1 Constante binaire........................................................................................................9-6 9.1.3.2 Constante entière........................................................................................................9-7 9.1.3.3 Constante réelle..........................................................................................................9-8 9.1.3.4 Constante sur caractère (caractère unique) ...............................................................9-9 9.1.3.5 Constante sur chaîne................................................................................................9-11 9.1.3.6 Constante de date.....................................................................................................9-13 9.1.3.7 Constante de durée ..................................................................................................9-13 9.1.3.8 Constante d'heure du jour.........................................................................................9-16 9.1.3.9 Constante de date et d'heure....................................................................................9-17 9.2 Déclaration de repères de saut .................................................................................9-18

Page 13: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Sommaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 xiii

10 Données globales ...................................................................................................................10-1

10.1 Présentation des données globales ..........................................................................10-1 10.2 Zones de mémoire de la CPU...................................................................................10-2 10.2.1 Présentation des zones de mémoire de la CPU .......................................................10-2 10.2.2 Adressage absolu des zones de mémoire de la CPU ..............................................10-3 10.2.3 Adressage symbolique des zones de mémoire de la CPU.......................................10-5 10.2.4 Adressage indexé des zones de mémoire de la CPU ..............................................10-6 10.3 Blocs de données......................................................................................................10-7 10.3.1 Présentation des blocs de données ..........................................................................10-7 10.3.2 Adressage absolu des blocs de données .................................................................10-8 10.3.3 Adressage indexé des blocs de données ...............................................................10-10 10.3.4 Adressage structuré des blocs de données ............................................................10-11

11 Expressions, opérations et opérandes ................................................................................11-1

11.1 Opérations.................................................................................................................11-1 11.2 Opérandes.................................................................................................................11-2 11.3 Syntaxe d'une expression .........................................................................................11-4 11.4 Expression simple .....................................................................................................11-6 11.5 Expressions arithmétiques ........................................................................................11-7 11.6 Expressions logiques ................................................................................................11-9 11.7 Expressions de comparaison ..................................................................................11-11

12 Instructions .............................................................................................................................12-1

12.1 Affectations de valeur................................................................................................12-1 12.1.1 Affecter une valeur à une variable de type de données simple ...............................12-2 12.1.2 Affecter une valeur à des variables de type STRUCT et UDT..................................12-3 12.1.3 Affecter une valeur à une variable de type ARRAY ..................................................12-5 12.1.4 Affecter une valeur à une variable de type STRING.................................................12-7 12.1.5 Affecter une valeur à une variable de type DATE_AND_TIME.................................12-8 12.1.6 Affecter une valeur à une variable absolue pour zones de mémoire........................12-9 12.1.7 Affecter une valeur à une variable globale..............................................................12-10 12.2 Instructions de contrôle ...........................................................................................12-12 12.2.1 Présentation des instructions de contrôle ...............................................................12-12 12.2.2 Conditions ...............................................................................................................12-13 12.2.3 Instruction IF............................................................................................................12-14 12.2.4 Instruction CASE .....................................................................................................12-16 12.2.5 Instruction FOR .......................................................................................................12-18 12.2.6 Instruction WHILE ...................................................................................................12-21 12.2.7 Instruction REPEAT ................................................................................................12-22 12.2.8 Instruction CONTINUE............................................................................................12-23 12.2.9 Instruction EXIT.......................................................................................................12-24 12.2.10 Instruction GOTO ....................................................................................................12-25 12.2.11 Instruction RETURN................................................................................................12-26 12.3 Appel de fonctions et de blocs fonctionnels ............................................................12-27 12.3.1 Appel et transmission de paramètres......................................................................12-27 12.3.2 Appel de blocs fonctionnels ....................................................................................12-29 12.3.2.1 Appel d'un bloc fonctionnel (FB ou SFB) ................................................................12-29 12.3.2.2 Définition des paramètres du FB.............................................................................12-31 12.3.2.3 Définition des entrées (FB)......................................................................................12-33 12.3.2.4 Définition des entrées/sorties (FB)..........................................................................12-34 12.3.2.5 Lecture des valeurs de sortie (appel de FB) ...........................................................12-35 12.3.2.6 Exemple d'appel d'une instance globale .................................................................12-35 12.3.2.7 Exemple d'appel d'une instance locale ...................................................................12-37

Page 14: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Sommaire

S7-SCL V5.3 pour S7-300/400 xiv A5E00324651-01

12.3.3 Appel de fonctions...................................................................................................12-38 12.3.3.1 Appel d'une fonction (FC)........................................................................................12-38 12.3.3.2 Valeur de retour (FC) ..............................................................................................12-39 12.3.3.3 Paramètres de FC ...................................................................................................12-40 12.3.3.4 Définition des entrées (FC) .....................................................................................12-41 12.3.3.5 Définition des sorties et des entrées/sorties (FC) ...................................................12-42 12.3.3.6 Exemple d'appel de fonction ...................................................................................12-44 12.3.4 Paramètres définis automatiquement .....................................................................12-45 12.3.4.1 Paramètre d'entrée EN............................................................................................12-45 12.3.4.2 Paramètre de sortie ENO........................................................................................12-46

13 Compteurs et temporisation..................................................................................................13-1

13.1 Compteurs.................................................................................................................13-1 13.1.1 Fonctions de comptage .............................................................................................13-1 13.1.2 Appel d'une fonction de comptage............................................................................13-1 13.1.3 Définition des paramètres d'une fonction de comptage............................................13-3 13.1.4 Saisie et exploitation de la valeur de comptage........................................................13-5 13.1.5 Compteur incrémental (S_CU)..................................................................................13-6 13.1.6 Compteur décrémental (S_CD).................................................................................13-6 13.1.7 Compteur incrémental/décrémental (S_CUD) ..........................................................13-7 13.1.8 Exemple de fonction de comptage............................................................................13-7 13.2 Temporisations..........................................................................................................13-9 13.2.1 Fonctions de temporisation .......................................................................................13-9 13.2.2 Appel d'une fonction de temporisation ......................................................................13-9 13.2.3 Définition des paramètres d'une fonction de temporisation ....................................13-11 13.2.4 Saisie et exploitation de la valeur de temps............................................................13-13 13.2.5 Démarrer une temporisation sous forme d'impulsion (S_PULSE)..........................13-15 13.2.6 Démarrer une temporisation sous forme d'impulsion prolongée (S_PEXT) ...........13-16 13.2.7 Démarrer une temporisation sous forme de retard à la montée (S_ODT)..............13-17 13.2.8 Démarrer une temporisation sous forme de retard

à la montée mémorisé (S_ODTS)...........................................................................13-18 13.2.9 Démarrer une temporisation sous forme de retard

à la retombée (S_OFFDT).......................................................................................13-19 13.2.10 Exemple de fonction de temporisation ....................................................................13-20 13.2.11 Choix de la temporisation appropriée .....................................................................13-21

14 Fonctions standard de S7-SCL .............................................................................................14-1

14.1 Conversion de types de données..............................................................................14-1 14.1.1 Conversion de types de données..............................................................................14-1 14.1.2 Conversion automatique du type de données...........................................................14-2 14.1.2.1 Fonctions de conversion de classe A........................................................................14-2 14.1.3 Fonctions standard pour la conversion explicite du type de données ......................14-3 14.1.3.1 Fonctions de conversion de classe B........................................................................14-3 14.1.3.2 Fonctions d'arrondi et de troncature..........................................................................14-6 14.1.3.3 Exemples de conversion avec des fonctions standard .............................................14-7 14.2 Fonctions standard numériques................................................................................14-9 14.2.1 Fonctions standard arithmétiques générales ............................................................14-9 14.2.2 Fonctions logarithmiques ..........................................................................................14-9 14.2.3 Fonctions trigonométriques.....................................................................................14-10 14.2.4 Exemples de fonctions standard numériques .........................................................14-10 14.3 Fonctions standard sur chaîne binaire ....................................................................14-11 14.3.1 Exemple de fonctions standard sur chaîne binaire .................................................14-12 14.4 Fonctions de traitement de chaîne de caractères...................................................14-13 14.4.1 Fonctions de manipulation de chaîne de caractères ..............................................14-13 14.4.2 Fonctions de comparaison de chaînes de caractères ............................................14-17 14.4.3 Fonctions de conversion du type de données.........................................................14-19 14.4.4 Exemple de traitement de chaînes de caractères...................................................14-21

Page 15: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Sommaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 xv

14.5 Fonctions de sélection de valeurs...........................................................................14-26 14.5.1 Fonctions de sélection de valeurs...........................................................................14-26 14.6 Fonctions système, blocs fonctionnels système et bibliothèque standard .............14-31 14.6.1 Fonctions système, blocs fonctionnels système et bibliothèque standard .............14-31 14.6.2 Interface d'échange avec les OB ............................................................................14-33

15 Description du langage ..........................................................................................................15-1

15.1 Description formelle du langage................................................................................15-1 15.1.1 Présentation des diagrammes syntaxiques ..............................................................15-1 15.1.2 Règles .......................................................................................................................15-2 15.1.3 Blocs terminaux des règles lexicales ........................................................................15-5 15.1.4 Caractères de mise en forme, séparateurs et opérations.........................................15-7 15.1.5 Mots-clés et identificateurs prédéfinis .....................................................................15-10 15.1.6 Identificateurs d'opérande et mots-clés de bloc......................................................15-14 15.1.7 Présentation des blocs non terminaux ....................................................................15-16 15.1.8 Présentation des symboles .....................................................................................15-16 15.1.9 Identificateurs ..........................................................................................................15-17 15.1.10 Attribution de noms dans S7-SCL...........................................................................15-18 15.1.11 Constantes et drapeaux prédéfinis .........................................................................15-20 15.2 Règles lexicales ......................................................................................................15-21 15.2.1 Présentation des règles lexicales............................................................................15-21 15.2.2 Désignations............................................................................................................15-21 15.2.3 Constantes ..............................................................................................................15-23 15.2.4 Adressage absolu....................................................................................................15-29 15.2.5 Commentaires .........................................................................................................15-31 15.2.6 Attributs de bloc.......................................................................................................15-32 15.2.7 Options du compilateur ...........................................................................................15-33 15.3 Règles syntaxiques .................................................................................................15-34 15.3.1 Présentation des règles syntaxiques ......................................................................15-34 15.3.2 Organisation des sources S7-SCL..........................................................................15-35 15.3.3 Composition des sections de déclaration................................................................15-37 15.3.4 Types de données dans S7-SCL ............................................................................15-42 15.3.5 Section des instructions ..........................................................................................15-45 15.3.6 Affectations de valeur..............................................................................................15-47 15.3.7 Appel de fonctions et de blocs fonctionnels ............................................................15-50 15.3.8 Instructions de contrôle ...........................................................................................15-52

16 Conseils et astuces ................................................................................................................16-1

Glossaire

Index

Page 16: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Sommaire

S7-SCL V5.3 pour S7-300/400 xvi A5E00324651-01

Page 17: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 1-1

1 Présentation du produit

1.1 Domaine d'application de S7-SCL

S7-SCL (Structured Control Language) est un langage de programmation évolué proche du PASCAL, utilisé pour programmer des automates programmables avec SIMATIC S7.

Certificat PLCopen

S7-SCL correspond au langage évolué textuel ST (Structured Text) défini dans la norme CEI 61131-3 et a été conçu en vue de la certification pour Reusability Level.

Domaine d'application

S7-SCL est optimisé pour la programmation d'automates programmables et contient, outre des éléments du langage de programmation PASCAL, également des éléments d'automatisation typiques, tels que p. ex. des entrées/sorties, temporisations et compteurs.

S7-SCL convient tout particulièrement aux tâches suivantes :

• programmation d'algorithmes complexes,

• programmation de fonctions mathématiques,

• gestion de données ou de recettes,

• optimisation de processus.

Page 18: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Présentation du produit

S7-SCL V5.3 pour S7-300/400 1-2 A5E00324651-01

1.2 Fonctionnement de S7-SCL

Intégration à STEP 7

S7-SCL prend en charge le concept de blocs STEP 7.

Blocs STEP 7

OB FC FB DB SFC SFBUDT

Avec S7-SCL, vous pouvez créer les blocs STEP 7 suivants :

• OB

• FC

• FB

• DB

• UDT

Dans un programme S7, vous pouvez également combiner des blocs S7-SCL avec des blocs issus d'autres langages de programmation STEP 7. Ces blocs sont en mesure de s'appeler mutuellement. Les blocs S7-SCL peuvent également être enregistrés dans des bibliothèques pour être insérés dans d'autres langues.

Puisque les programmes S7-SCL sont programmés sous forme de sources ASCII, ils peuvent aisément être importés et exportés.

Il est possible de décompiler les blocs S7-SCL dans le langage de programmation LIST de STEP 7 (liste d'instructions). Notez cependant qu'après un enregistrement dans LIST, il n'est plus possible de les éditer dans S7-SCL.

Environnement de développement

Pour une utilisation facile, S7-SCL met à votre disposition un environnement de développement efficace convenant aussi bien aux propriétés spécifiques de S7-SCL qu'à STEP 7. Cet environnement de développement comprend :

• un éditeur pour écrire des programmes composés de fonctions (FC), blocs fonctionnels (FB), blocs d'organisation (OB), blocs de données (DB) et types de données utilisateur (UDT) ; des fonctions puissantes assistent le programmeur dans sa tâche ;

• un compilateur séquentiel pour traduire en code machine MC7 le programme préalablement édité ; le code MC7 généré est exécutable sur toutes les CPU des systèmes d'automatisation SIMATIC S7-300/400 à partir de la CPU 314 ;

• un débogueur pour rechercher les erreurs de programmation logiques dans le résultat d'une compilation exempte d'erreurs ; la recherche d'erreurs est effectuée dans le langage source.

Page 19: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Présentation du produit

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 1-3

La figure suivante fournit un aperçu des composants de l'environnement de développement :

EditeurCompilateurséquentiel Débogueur

SCL pour S7-300/400

Page 20: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Présentation du produit

S7-SCL V5.3 pour S7-300/400 1-4 A5E00324651-01

1.3 Fonctions offertes par S7-SCL

S7-SCL offre non seulement tous les avantages d'un langage de programmation évolué, mais également des caractéristiques conçues spécialement pour permettre une programmation structurée.

Bibliothèques de blocs

Des blocs prédéfinis sont fournis dans des bibliothèques, p. ex. :

• fonctions système

• fonctions CEI

• fonctions de conversion

La navigation dans la bibliothèque s'effectue dans une boîte de dialogue. Lorsque vous sélectionnez un bloc, le modèle des paramètres de la fonction est automatiquement copié dans le fichier édité. Vous n'avez alors plus qu'à entrer les paramètres souhaités.

Modèles de programmes

L'éditeur S7-SCL met à votre disposition ces modèles qu'il vous suffit de compléter :

• modèles de blocs (p. ex. blocs fonctionnels, blocs de données) et leurs appels

• modèles pour commentaires de blocs, paramètres de blocs et constantes

• modèles pour structures de contrôle (IF, CASE, FOR, WHILE, REPEAT)

Eléments de langage issus de la programmation de langages évolués

Création de programmes simple, rapide et pratiquement sans erreurs grâce à l'utilisation d'éléments de langage performants, comme p. ex. :

• boucles d'exécution

• branchements alternatifs (IF ... THEN ... ELSE)

• sauts

Grande lisibilité du programme

Les caractéristiques suivantes augmentent la lisibilité du programme :

• programmation entièrement symbolique

• commentaires

• types de données élémentaires et types de données définis par l'utilisateur

• affichage de références croisées

• formatage automatique de l'entrée par indentation

• mise en couleur des éléments de langage en fonction de la syntaxe

Page 21: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Présentation du produit

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 1-5

Débogueur du niveau de langage évolué

Le débogueur permet de tester le niveau de langage évolué du programme. Il offre les fonctionnalités suivantes :

• visualisation continue de l'exécution du programme

• visualisation pas à pas grâce à des points d'arrêt qu'il est possible de définir individuellement

• fonctionnalité Step-in (possibilité de sauter dans des blocs appelés durant le test)

Page 22: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Présentation du produit

S7-SCL V5.3 pour S7-300/400 1-6 A5E00324651-01

1.4 Nouveautés dans la version V5.3 SP1

Extension des langages

Une extension de S7-SCL V5.3 SP1 a été réalisée avec de nouveaux utilitaires de langage définis par CEI 61131-3 :

• fonctions de traitement de valeurs en tant que fonctions S7-SCL internes (SEL, MAX, MIN, LIMIT, MUX)

• prise en charge de la représentation BCD de nombres entiers par des fonctions de conversion (BCD_TO_INT, INT_TO_BCD, etc.)

• opérateur d'affectation => pour paramètres de sortie de fonctions

• initialisation de champs avec des parenthèses

• nouvelles fonctions de conversion (BYTE_TO_INT, INT_TO_BYTE, etc.)

Paramètres du compilateur dans la source

Les paramètres du compilateur peuvent être enregistrés dans des sources S7-SCL ou dans des fichiers d'information de compilation. Vous avez ainsi la possibilité de sauvegarder les propriétés d'une compilation spécifique à une source.

Fonctions de test étendues

• Les incohérences de blocs et les conflits d'horodatage dans les blocs S7-SCL peuvent être déterminés et corrigés avec la fonction de test "Vérifier la cohérence des blocs" de STEP 7. Cette fonction de test est disponible à partir de STEP 7 Version 5.3 SP2.

• La fonction de test "Visualiser" peut être mise en œuvre de manière plus précise par la définition d'environnements d'appel.

• La zone de visualisation de la fonction de test "Visualiser" peut être restreinte de manière précise par sélection d'une partie dans la source.

Impression en couleurs

Il est possible d'imprimer les sources S7-SCL en couleurs.

Fonction de recherche étendue

S7-SCL permet à présent également la recherche à partir de la position du curseur vers le haut ainsi que la recherche dans une sélection.

Positionnement de signets dans le texte source

L'utilisation de signets vous permet de naviguer rapidement dans une source.

Page 23: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Présentation du produit

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 1-7

Création de blocs S7-SCL en utilisant des jeux de caractères de langues étrangères

Les sources S7-SCL peuvent contenir des textes dans des jeux de caractères de langues étrangères. Vous pouvez ainsi créer des blocs destinés au marché mondial, dans lesquels les principales parties visibles pour l'utilisateur apparaissent dans des jeux de caractères de langues étrangères (p. ex. les mnémoniques de blocs, les attributs et les commentaires).

Vous trouverez de plus amples informations sur les jeux de caractères de langues étrangères dans le fichier Lisezmoi.

Page 24: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Présentation du produit

S7-SCL V5.3 pour S7-300/400 1-8 A5E00324651-01

Page 25: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 2-1

2 Installation

2.1 Automation License Manager

2.1.1 Licence d'utilisation avec Automation License Manager

Automation License Manager

Pour pouvoir utiliser le logiciel de programmation, une "License Key" spécifique au produit (licence d'utilisation) est nécessaire. A partir de la version V5.3 de S7-SCL, celle-ci est installée par Automation License Manager.

Automation License Manager est un produit logiciel de Siemens AG. Il permet de gérer des "License Keys" (représentants techniques de licences) dans l'ensemble du système.

Automation License Manager est disponible :

• sur le support d'installation de STEP 7

• sur les pages Internet de A&D Customer Support de Siemens AG, sous forme de produit à télécharger.

Automation License Manager dispose d'une aide en ligne contextuelle intégrée, que vous pouvez appeler après l'installation en appuyant sur la touche F1 ou en choisissant la commande de menu ? > Aide de License Manager. Vous y trouverez des informations détaillées sur la fonctionnalité et l'utilisation de Automation License Manager.

Licences

Des licences sont nécessaires pour l'utilisation des progiciels de STEP 7 protégés par des droits de licence. Une licence est accordée comme droit d'utilisation de produits. Les représentants de ce droit sont :

• CoL (Certificate of License) et

• License Key

Certificate of License (CoL)

Le "Certificate of License" contenu dans la livraison des produits respectifs constitue la preuve juridique du droit d'utilisation. Seul le propriétaire du CoL ou les personnes mandatées sont autorisées à utiliser le produit respectif.

Page 26: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Installation

S7-SCL V5.3 pour S7-300/400 2-2 A5E00324651-01

License Keys

La "License Key" est le représentant technique d'une licence (marque de licence électronique).

SIEMENS AG attribue une "License Key" pour tout logiciel protégé par des droits de licence. Le logiciel correspondant peut exclusivement être utilisé conformément aux conditions de licence et d'utilisation liées à la "Licence Key" correspondante si la présence de la "License Key" valide est constatée sur un ordinateur, après démarrage du logiciel.

Nota

• Vous avez également la possibilité d'utiliser le logiciel de base de S7-SCL sans "License Key" pour en découvrir l'interface utilisateur et les fonctionnalités.

• L'utilisation sans restrictions, conforme aux déclarations de droits de licence, n'est cependant autorisée et possible que lorsque la "License Key" est installée.

• Si vous n'avez pas installé de "License Key", vous êtes sollicité à intervalles réguliers de réaliser l'installation.

Les "License Keys" sont disponibles sur les supports de données suivants et peuvent être transférées d'un support à l'autre :

• disquettes "License Key",

• disques durs locaux et

• disques durs d'ordinateurs dans le réseau.

Des informations supplémentaires sur l'utilisation des "License Keys" sont fournies dans l'aide en ligne de Automation License Manager.

Page 27: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Installation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 2-3

Types de licences

Pour les produits logiciels de Siemens AG, il existe les types suivants de licences orientées application. Le comportement du logiciel est déterminé par les diverses "License Keys" correspondant à ces types de licences. Le type d'utilisation est défini par le "Certificate of License" respectif.

Type de licence Description

Single License L'utilisation du logiciel est autorisée pour une durée illimitée sur un ordinateur quelconque.

Floating License L'utilisation du logiciel est autorisée pour une durée illimitée sur un réseau (utilisation "à distance").

Trial License L'utilisation du logiciel est restreinte :

• à une validité de 14 jours au maximum,

• à un nombre de jours défini à partir de la première utilisation,

• à l'utilisation pour test et validation (à l'exclusion de toute responsabilité).

Rental License L'utilisation du logiciel est restreinte :

• à une validité de 50 jours au maximum

• à un nombre donné d'heures d'utilisation

Upgrade License Une mise à niveau peut être nécessaire en raison d'exigences spécifiques de l'état du système :

• Une licence de mise à niveau permet de transformer une licence d'une "ancienne" version x en une licence de version >x+....

• Une mise à niveau peut p. ex. être requise en raison d'extension des capacités.

Page 28: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Installation

S7-SCL V5.3 pour S7-300/400 2-4 A5E00324651-01

2.1.2 Installation de Automation License Manager

L'installation de Automation License Manager est réalisée par un Setup. Le logiciel d'installation de Automation License Manager se trouve sur le CD du produit STEP 7.

Vous pouvez installer Automation License Manager avec S7-SCL ou ultérieurement.

Nota

Des informations détaillées sur la procédure d'installation de Automation License Manager sont données dans son fichier Lisezmoi.wri actuel.

Tous les informations relatives à la fonctionnalité et à l'utilisation des "License Keys" de Automation License Manager sont données dans l'aide en ligne.

Installation ultérieure de "License Keys" (clés de licence)

Si vous démarrez le logiciel et qu'aucune "License Key" (clé de licence) n'est présente, vous obtenez un message correspondant.

Nota

• Vous avez également la possibilité d'utiliser le logiciel de base sans "License Key" pour en découvrir l'interface utilisateur et les fonctionnalités.

• L'utilisation sans restrictions, conforme aux déclarations de droits de licence, n'est cependant autorisée et possible que lorsque la "License Key" est installée.

• Si vous n'avez pas installé de "License Key", vous êtes sollicité à intervalles réguliers de réaliser l'installation.

Pour installer les "License Keys" ultérieurement, vous avez les possibilités suivantes :

• installez les "License Keys" depuis les disquettes,

• installez les "License Keys" en les téléchargeant depuis Internet (une commande préalable est requise),

• utilisez des "Floating License Keys" disponibles sur Internet.

Vous trouverez des informations détaillées sur la procédure dans l'aide en ligne contextuelle de Automation License Manager, que vous pouvez appeler après l'installation en appuyant sur la touche F1 ou en choisissant la commande de menu ? > Aide de License Manager.

Nota

• Les "License Keys" sont uniquement fonctionnelles sous Windows 2000/XP si elles se trouvent sur un disque dur possédant des droits d'accès en écriture.

• Les "Floating Licenses" peuvent également être utilisées via un réseau, c'est-à-dire "à distance".

Page 29: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Installation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 2-5

2.1.3 Règles d'utilisation des License Keys

! Avertissement

Tenez compte des indications d'utilisation des "License Keys" décrites dans l'aide en ligne et dans le fichier Lisezmoi.wri de Automation License Manager. Le non-respect de ces règles risque d'entraîner la perte irrémédiable des "License Keys".

Vous pouvez appeler l'aide en ligne contextuelle de Automation License Manager en appuyant sur la touche F1 ou en choisissant la commande de menu ? > Aide de License Manager.

Cette aide en ligne contient toutes les informations relatives à la fonctionnalité et à l'utilisation des "License Keys".

Page 30: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Installation

S7-SCL V5.3 pour S7-300/400 2-6 A5E00324651-01

2.2 Installation

2.2.1 Environnement requis

Environnement logiciel requis

Le logiciel S7-SCL V5.3 SP1 est exécutable sur une PG ou un PC sur lesquels le logiciel de base STEP 7 V5.3 ou supérieur est installé.

Vous trouverez les conditions relatives au système d'exploitation dans le fichier Lisezmoi.wri.

Environnement matériel requis

S7-SCL demande le même environnement que le logiciel de base STEP 7. La place mémoire nécessaire à S7-SCL V5.3 SP1 est indiquée dans le fichier Lisezmoi.wri.

2.2.2 Installation de S7-SCL

Démarrage du programme d'installation

S7-SCL contient un programme "Setup" qui effectue automatiquement l'installation. Il vous donne toutes les indications nécessaires au cours de son exécution.

Procédez de la manière suivante :

1. Dans le Panneau de configuration de Windows, cliquez deux fois sur l'icône "Ajout/Suppression de programmes" pour ouvrir la boîte de dialogue permettant d'installer un logiciel.

2. Cliquez sur "Installer".

3. Insérez le support de données dans le lecteur et cliquez sur "Suite". Windows cherche alors le programme d'installation "Setup.exe".

4. Suivez pas à pas les instructions affichées par ce programme.

Installation de "License Keys"

Lors de l'installation, le programme vérifie si une "License Key" correspondante existe sur le disque dur. Si aucune "License Key" valide n'est reconnue, un message vous avertit que vous ne pouvez utiliser le logiciel qu'en présence d'une "License Key". Vous pouvez, si vous le désirez, installer immédiatement les "License Keys" ou bien poursuivre l'installation de STEP 7 et installer les "License Keys" ultérieurement. Dans le premier cas, insérez la disquette "License Key" fournie lorsque le message correspondant vous y invite.

Page 31: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-1

3 Développement d'un programme S7-SCL

3.1 Bienvenue dans l'exemple pour débutants "Saisie de valeurs de mesure"

Objectifs

L'exemple proposé veut vous apprendre à utiliser au mieux les possibilités offertes par S7-SCL. Les questions les plus fréquentes au début sont par exemple :

• Comment faire pour concevoir mon programme avec S7-SCL ?

• Quels sont les éléments de langage de S7-SCL adéquats pour résoudre ce problème ?

• Quelles sont les fonctions de test mises à ma disposition ?

Ce chapitre entend répondre à ces questions et à quelques autres.

Eléments de langage S7-SCL employés

Notre exemple présente entre autres les éléments de langage suivants :

• Composition et utilisation des différents types de bloc de S7-SCL,

• Appel des blocs avec transmission et exploitation des paramètres,

• Divers formats d'entrée et de sortie,

• Programmation à l'aide de types de données simples et de tableaux,

• Initialisation de variables,

• Structures de programme avec utilisation d'aiguillages et de boucles.

Matériel requis

Vous pouvez exécuter le programme-exemple dans un automate SIMATIC S7-300 ou SIMATIC S7-400 doté de la périphérie suivante :

• Un module d'entrée à 16 voies,

• Un module de sortie à 16 voies.

Fonctions de test disponibles

Le programme est conçu pour être testé rapidement à l'aide des commutateurs de l'entrée et des indicateurs de la sortie. Pour un test plus détaillé, utilisez les fonctions de test de S7-SCL.

De plus, toutes les possibilités offertes par le logiciel de base STEP 7 sont à votre disposition, indépendamment du langage utilisé.

Page 32: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-2 A5E00324651-01

3.2 Enoncé du problème

Présentation

Il s'agit de saisir des valeurs de mesure au moyen d'un module d'entrée, pour les trier et traiter ensuite à l'aide d'un programme S7-SCL. Les résultats seront indiqués par un module de sortie.

Saisie des valeurs de mesure

Vous indiquez une valeur de mesure au moyen des 8 commutateurs d'entrée. Il s'agit de l'enregistrer en mémoire dans le tableau des valeurs de mesure à l'instant exact d'un front au commutateur de saisie (voir la figure ci-dessous).

La plage exigée pour les valeurs de mesure étant de 0 à 255, 1 octet est nécessaire à l'entrée.

Traitement des valeurs de mesure

Le tableau de valeurs de mesure sera organisé sous forme de mémoire circulante contenant 8 enregistrements au plus.

Lorsqu'un front est détecté à un commutateur de tri, il faut trier par ordre croissant les valeurs enregistrées dans le tableau des valeurs de mesure. Ensuite, il faut calculer la racine carrée et le carré de chaque valeur. Les fonctions de traitement nécessitent 1 mot.

Commutateur de triValeur de mesure

Tri des valeurs de mesure

Calcul des résultatsSaisie des valeurs de mesure

Calculs

x=Evaluation du front

Commutateur de saisie

1

3

7

15

31

63

127

255

255

127

63

31

15

7

3

1

1

2

3

4

6

8

11

16

1

9

49

225

961

3969

16129

Débordement

Racine carrée

1 1 1 1 1 1 1 1

255

Saisie des données :

X X

haut

Carré

Page 33: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-3

Sélection pour les sorties

Le module de sortie ne pouvant indiquer qu'une seule valeur à la fois, il faudra disposer des possibilités suivantes :

• Sélection d'un élément dans une liste,

• Choix entre valeur de mesure, racine carrée et carré.

La valeur à indiquer est sélectionnée de la manière suivante :

• Trois commutateurs forment un codage qui est validé en cas de front à un quatrième commutateur, le commutateur de codage. Ceci permet de calculer l'adresse de la sortie.

• Trois valeurs sont mises à disposition pour la sortie à la même adresse, la valeur de mesure, la racine carrée et le carré. Deux inverseurs sont à prévoir pour choisir une valeur parmi les trois.

Saisie des données :

Deux inverseurs Codage

Valeurs triées Résultats

Sortie des données :

Sortie

Commutateur de codage

x=Evaluation du front

X

4

Racine carrée ou carré

Valeur de mesureourésultat

10

1

3

7

15

31

63

127

255

1

2

3

4

6

8

11

16

1

9

49

225

961

3969

16129

Débordement

Racine carrée

3

1

1

0

Valeur de mesure

Commutateur sur module d'entrée

Affichage sur le module de sortie

Sélection de la sortie

Adressage de la sortie

Inverseur

haut

Carré

Page 34: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-4 A5E00324651-01

3.3 Composition d'un programme structuré avec S7-SCL

Types de bloc

Un programme S7-SCL structuré permet de résoudre au mieux le problème posé. Un tel programme est de construction modulaire, c'est-à-dire divisé en blocs chargés chacun d'une tâche partielle bien déterminée. Comme dans les langages de programmation de STEP 7, vous disposez dans S7-SCL des types de bloc suivants.

BlocsSTEP 7

OB

FB

FC

DB

UDT

Les blocs d'organisation constituent l'interface entre le système d'exploitation de la CPU S7 et le programme utilisateur. C'est ici qu'est défini l'ordre d'exécution des blocs du programme utilisateur.

Les blocs fonctionnels sont des blocs de code à données statiques. Le FB disposant d'une mémoire, il est possible d'accéder à ses paramètres (par ex.des sorties) depuis n'importe quelle position du programme utilisateur.

Les fonctions sont des blocs de code sans mémoire. De ce fait, il faut que les valeurs calculées soient traitées aussitôt après l'appel de la fonction.

Les blocs de données sont des zones servant à mémoriser les données utilisateur. On distingue les DB globaux auxquels tous les blocs de code ont accès et les DB d'instance qui sont associés à un appel de FB déterminé.

Les types de donné es utilisateur sont des types complexes que vous définissez vous-même au besoin et qui sont réutilisables. Ainsi, un typede données utilisateur peut servir à générer plusieurs blocs de données de même structure. Les UDT s'emploient comme des blocs.

Page 35: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-5

Rangement des blocs dans des sources S7-SCL

Un programme S7-SCL se compose d'une ou de plusieurs sources S7-SCL. Une source peut contenir un seul bloc ou un programme complet constitué de différents blocs.

Une source pour un programme

Plusieurs sources pour un programme

.FB22

.

.

.FC2

.

.

.OB1

.

Source SCL

OB1FC2

DBD'instance

Dossier Blocs Hors ligne

SourceSCLpourOB1

Source

FC2 FB22

FB22

SCLSCLpourpour

Source

Page 36: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-6 A5E00324651-01

3.4 Définition des tâches partielles

Tâches partielles

Dans la figure ci-après, les tâches partielles sont représentées par des blocs. Les zones rectangulaires grises représentent les blocs. La disposition des blocs de code de la gauche vers la droite correspond à leur ordre d'appel.

CYCLEBloc d'organisation (OB)

SAISIEBloc fonctionnel (FB)

CALCULBloc fonctionnel (FB)

Tri des valeurs de

mesure

Saisie des valeurs de

mesure

Adressage et sélection de

la sortieCalcul des

résultats

AppelCycli-que

SAISIE_DONNEES Bloc de données (DB)

Entrée des données

Sortie des données

Racine carrée, carré

Enregistre-ment des données

SQRT (racine carrée)

et CARRE Fonctions (FC)

Sens de dé-placement du

programme

Sens de dé-Placement

des données

Page 37: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-7

Choix et affectation des types de bloc possibles

Les différents blocs ont été choisis d'après les critères suivants :

Fonction Nom de bloc

Un programme utilisateur ne peut être déclenché que dans un OB. Les valeurs de mesure devant être saisies cycliquement, il nous faut un OB d'appel cyclique (OB1). Une partie du traitement - Entrée des données et Sortie des données - sera programmée dans l'OB.

⇒ OB "CYCLE"

Pour la tâche partielle Saisie des valeurs de mesure, il nous faut un bloc à mémoire, donc un FB, puisque certaines données locales (la mémoire circulante, par exemple) doivent être conservées d'un cycle de programme au suivant. Le lieu propre à l'Enregistrement des données (mémoire) est le bloc de données d'instance SAISIE_DONNEES. Le même FB peut encore se charger de la tâche partielle Adressage et sélection de la sortie, puisqu'il dispose des données requises.

⇒ FB "SAISIE"

Dans le choix du type de bloc qui assumera les tâches partielles Tri des valeurs de mesure et Calcul des résultats, il faut tenir compte du fait qu'une mémoire tampon de sortie doit être créée qui contiendra, pour chaque valeur de mesure, la racine carrée et le carré résultant des calculs. Seul un FB entre en ligne de compte. Comme il est appelé par un FB de rang supérieur, il n'a pas besoin de DB en propre. Ses données d'instance peuvent être stockées dans le bloc de données d'instance du bloc appelant.

⇒ FB "CALCUL"

Pour assumer la tâche partielle Calcul de la racine carrée ou du carré, c'est une FC qui convient le mieux, parce que le résultat peut être retourné en tant que valeur de la fonction. En outre, le calcul ne nécessite pas de données devant être conservées au-delà d'un cycle d'exécution du programme. La fonction standard de S7-SCL SQRT peut servir à calculer la racine carrée. Pour calculer le carré, il faut créer une fonction CARRE qui vérifie aussi les limites de la plage de valeurs.

⇒ ⇒

FC "SQRT" (racine carrée) et FC "CARRE"

Page 38: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-8 A5E00324651-01

3.5 Définition des interfaces entre blocs

Présentation

L'interface d'un bloc est formée de paramètres auxquels il est possible d'accéder depuis d'autres blocs.

Les paramètres déclarés dans le bloc sont des marques de réservation dont les valeurs ne sont fixées qu'au moment de l'utilisation concrète (appel). On les nomme paramètres formels, tandis que les valeurs qui leur sont affectées à l'appel du bloc sont désignées par paramètres effectifs. Lorsqu'un bloc est appelé, des données d'entrée lui sont transmises en tant que paramètres effectifs. Après le retour au bloc appelant, les données de sortie sont mises à disposition pour être prises en charge. Une fonction (FC) peut transmettre son résultat sous forme de valeur de la fonction.

On peut classer les paramètres de bloc dans les catégories suivantes :

Paramètres de bloc Signification Déclaration avec

Paramètres d'entrée A l'appel du bloc, les paramètres d'entrée prennent les valeurs d'entrée actuelles. Vous pouvez y accéder uniquement en lecture.

VAR_INPUT

Paramètres de sortie Les paramètres de sortie transmettent les valeurs de sortie actuelles au bloc appelant. Vous pouvez y accéder en écriture comme en lecture.

VAR_OUTPUT

Paramètres d'entrée/sortie

Les paramètres d'entrée/sortie prennent en charge la valeur actuelle d'une variable lors de l'appel, la traitent et rangent ensuite les résultats dans la même variable.

VAR_IN_OUT

OB CYCLE

L'OB CYCLE n'a pas de paramètres formels. Il appelle le FB SAISIE et lui transmet pour ses paramètres formels la valeur de mesure et les données de commande.

FB SAISIE

Nom de paramètre Type de données

Type de déclaration

Description

Entree_val_mesure INT VAR_INPUT Valeur de mesure nouv_val BOOL VAR_INPUT Commutateur pour prendre en charge la valeur

de mesure dans la mémoire circulante nouv_tri BOOL VAR_INPUT Commutateur pour trier et exploiter les valeurs

de mesure choix_fonction BOOL VAR_INPUT Inverseur pour choisir la racine carrée ou le

carré Selection WORD VAR_INPUT Codage pour sélectionner la valeur de sortie nouv_selection BOOL VAR_INPUT Commutateur pour valider le codage Sortie_resultat DWORD VAR_OUTPUT Sortie du résultat calculé Sortie_val_mesure DWORD VAR_OUTPUT Sortie de la valeur de mesure correspondante

Page 39: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-9

FB CALCUL

Le FB SAISIE appelle le FB CALCUL. Les deux FB ont comme données communes le tableau de valeurs de mesure à trier. Il faut donc déclarer ce tableau comme paramètre d'entrée/sortie. Un tableau de structures est créé en tant que paramètre d'entrée pour les résultats du calcul que sont la racine carrée et le carré. Voici les paramètres formels :

Nom Type de données

Type de déclaration

Description

Memoire_tri ARRAY[..] OF REAL

VAR_IN_OUT Tableau des valeurs de mesure, correspond à la mémoire circulante

Memoire_calcul ARRAY[..] OF STRUCT

VAR_OUTPUT Tableau pour les résultats : stucture avec les composants "racine_carree" et "carre" de type INT

SQRT et CARRE

Ces fonctions sont appelées par CALCUL. Elles nécessitent une valeur d'entrée et fournissent le résultat en tant que valeur de la fonction.

Nom Type de données

Type de déclaration

Description

Valeur REAL VAR_INPUT Entrée pour SQRT

SQRT REAL valeur de la fonction

Racine carrée de la valeur d'entrée

Valeur INT VAR_INPUT Entrée pour CARRE

CARRE INT Valeur de la fonction

Carré de la valeur d'entrée

Page 40: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-10 A5E00324651-01

3.6 Définition de l'interface d'entrée/sortie

La figure ci-après montre l'interface d'entrée/sortie. Notez que pour l'entrée/sortie sous forme d'octet, l'octet de poids faible se trouve en haut et l'octet de poids fort en bas. C'est l'inverse pour l'entrée/sortie sous forme de mot.

Module d'entrée

0 Validation de la valeur de mesure 1 Déclenchement du tri et du calcul 2 Choix du résultat : racine carrée ou carré 3 Sélection sortie : valeur de mesure ou résultat 4 Codage, bit 0 5 Codage, bit 1 6 Codage, bit 2 7 Validation du codage

0 à 7 Octet d'entrée : valeur de mesure

Module de sortie

0 à 7 Octet de poids fort du mot de sortie (bits 8 à 15), requis seulement pour l'élévation au carré, sinon 0.

0 à 7 Octet de poids faible du mot de sortie (bits 0 à 7), valeur de mesure ou résultat :racine carrée ou carré.

Système d'automatisation

Module TORd'entrée

Module TORde sortie

Octet 1

Octet 5

Octet 4

Octet 0

E 0.3

E 0.4

0

0

1

1

2

2

3

3

4

4

5

5

6

6

7

7

Octet 0

Octet 1 Octet 5

Octet 4

Page 41: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-11

3.7 Définition de l'ordre des blocs dans la source

En ce qui concerne l'ordre des blocs dans la source S7-SCL, tenez compte du fait qu'un bloc doit s'y trouver avant que vous l'utilisiez, c'est-à-dire l'appeliez depuis un autre bloc. La source doit donc contenir les blocs dans l'ordre suivant :

FC CARRE

FB CALCUL

FB SAISIE

OB CYCLE

appelle

appelle

appelle

3.8 Définition des mnémoniques

Le programme sera plus facile à lire si vous attribuez des noms symboliques aux adresses des module et aux blocs. Pour cela, il faut définir des mnémoniques dans une table de mnémoniques.

La figure ci-après montre la table des mnémoniques de notre exemple. Elle présente les noms symboliques que vous devez y déclarer pour pouvoir compiler la source sans erreurs.

Page 42: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-12 A5E00324651-01

3.9 Création de la fontion CARRE

3.9.1 Section des instructions de la fonction CARRE

Section des instructions

Il faut d'abord vérifier si la valeur d'entrée ne dépasse pas la limite pour laquelle le résultat ne serait plus dans la plage de valeurs des entiers. Si c'est le cas, c'est la valeur maximale pour entier qui est inscrite. Sinon, l'élévation au carré est effectuée. Le résultat est transmis comme valeur de la fonction.

FUNCTION CARRE : INT (******************************************************************* Cette fonction fournit comme valeur le carré de la valeur d'entrée ou en cas de débordement, la valeur maximale pouvant être représentée par un entier. *******************************************************************) VAR_INPUT valeur : INT; END_VAR BEGIN IF valeur <= 181 THEN CARRE := valeur * valeur; //Calcul de la valeur de la fonction ELSE CARRE := 32_767; // Fournir la valeur maximale en cas de débordement END_IF; END_FUNCTION

Page 43: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-13

3.10 Création du FB CALCUL

3.10.1 Organigramme de EXPLOITER

Cette figure représente l'algorithme sous forme d'organigramme.

Début

I >= 1 ?

mémoire_tri [I-1] >mémoire_tri [I] ? Echanger les valeurs

de la mémoire de tri [I-1]et de la mémoire de tri [I]

ECHANGER = TRUE

I := I-1

Fin

échanger := FALSE

I := LIMITE

I := 0

I := I+1

CALCULBloc fonctionnel

Début de l’instructionREPEAT

Début de l’instructionFOR

I signifie index

non

oui

oui

non

TRUEFALSE

non

oui

Fin de l’instructionFOR

Fin de l’instructionREPEAT échanger ?

I <= LIMITE ?

Début de l’instructionFOR

SQRT

CARRE

Entrer les résultats dans le ta-bleau structuré des résultats.

Entrer les résultats dans letableau structuré des résultats.

Fin de l’instructionFOR

Page 44: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-14 A5E00324651-01

3.10.2 Section de déclaration du FB CALCUL

Composition de la section de déclaration

La section de déclaration de ce bloc se compose des blocs de déclaration suivants :

• Déclaration des constantes entre CONST et END_CONST,

• Paramètres d'entrée/sortie entre VAR_IN_OUT et END_VAR,

• Paramètres de sortie entre VAR_OUTPUT et END_VAR,

• Déclaration des variables temporaires entre VAR_TEMP et END_VAR.

CONST LIMITE := 7; END_CONST VAR_IN_OUT memoire_tri : ARRAY[0..LIMITE] OF INT; END_VAR VAR_OUTPUT memoire_calcul : ARRAY[0..LIMITE] OF STRUCT racine_carree : INT; carre : INT; END_STRUCT; END_VAR VAR_TEMP echanger : BOOL; indice, aux : INT; valeur_r, resultat_r: REAL; END_VAR

Page 45: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-15

3.10.3 Section des instructions du FB CALCUL

Déroulement du programme

Le paramètre d'entrée/sortie "memoire_tri" est combiné avec la mémoire circulante "valeurs_mesure", c'est-à-dire que le contenu original de la mémoire est écrasé par les valeurs de mesure triées.

Le nouveau tableau "memoire_calcul" est créé comme paramètre de sortie pour les résultats du calcul. Ses éléments sont structurés de telle façon qu'ils contiennent la racine carrée et le carré de chaque valeur de mesure.

La figure ci-après montre le lien entre les tableaux décrits.

valeurs_mesure

mémoire_tri

mémoire_calcul

CALCUL

Cette interface représente le noyau de l'échange de données servant au traitement des valeurs de mesure. Les valeurs sont enregistrées dans le bloc de données d'instance SAISIE_DONNEES, puisqu'une instance locale a été créée pour le FB CALCUL dans le FB SAISIE appelant.

Section des instructions

Les valeurs de mesure sont d'abord triées dans la mémoire circulante, puis les calculs sont effectués.

• Méthode de l'algorithme de tri C'est la méthode de permutation permanente des valeurs qui est utilisée pour trier la mémoire circulante ; en d'autres termes, deux valeurs consécutives sont comparées l'une à l'autre et permutées jusqu'à obtention de l'ordre de tri souhaité. La mémoire utilisée est le paramètre d'entrée/sortie "memoire_tri".

• Déclenchement du calcul Une fois le tri terminé, une boucle de calcul est parcourue qui contient l'appel des fonctions CARRE pour l'élévation au carré et SQRT pour l'extraction de la racine carrée. Les résultats sont enregistrés dans le tableau de structures "memoire_calcul".

Page 46: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-16 A5E00324651-01

Section des instructions du FB CALCUL

La section des instructions du bloc de code se présente comme suit :

BEGIN (****************************************************************** 1ère partie : tri par échange de paires. Les valeurs sont échangées par paires jusqu'à ce que la mémoire des valeurs de mesure soit triée. *******************************************************************) REPEAT echanger := FALSE; FOR indice := LIMITE TO 1 BY -1 DO IF memoire_tri[indice-1] > memoire_tri[indice] THEN aux := memoire_tri[indice]; memoire_tri[indice] := memoire_tri[indice-1]; memoire_tri[indice-1] := aux; echanger := TRUE; END_IF; END_FOR; UNTIL NOT echanger END_REPEAT; (****************************************************************** 2ème partie : calcul de la racine carrée avec la fonction standard SQRT et élévation au carré avec la fonction CARRE. *******************************************************************) FOR indice := 0 TO LIMITE BY 1 DO valeur_r := INT_TO_REAL(memoire_tri[indice]); resultat_r := SQRT(valeur_r); memoire_calcul[indice].racine_carree := REAL_TO_INT(resultat_r); memoire_calcul[indice].carre := CARRE(memoire_tri[indice]); END_FOR; END_FUNCTION_BLOCK

Page 47: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-17

3.11 Création du FB SAISIE

3.11.1 Organigramme de SAISIR

Cette figure représente l'algorithme sous forme d'organigramme.

Début

Fin

Modifiernouvellevaleur ?

oui

oui

oui

non

non

non

TRUE

FALSE

Modifiernouveau code ?

Modifiernouveau tri ?

Choixfonction ?

SAISIEBloc fonctionnel

La mémoire circulante est réaliséeavec l’opération MOD : lorsque la limiteest atteinte, elle recommence audébut.

Inscrire valeur de mesuredans mémoire circulante,recalculer l’index

Trier la mémoire circulante et effectuerles calculs (créer à ceteffet le tableau des résultats).

D’abord décaler les bits nonsignificatifs vers le bord droit,puis masquer les places inutilesà l’aide de AND

charger depuis le blocde données d’instance

Charger :inscrire les éléments de la listeavec les adresses de sortie dansles paramètres de sortie pour ensuiteafficher leurs valeurs.

Evaluation du codage etdétermination de l’adresse de sortie

Reprise des résultats des calculs dans le tableau des résultats

Charger résultat du calculde la racine carrée

Charger résultat du calcul du cadre

Charger valeur de mesure

CALCUL

Page 48: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-18 A5E00324651-01

3.11.2 Section de déclaration du FB SAISIE

Composition de la section de déclaration

La section de déclaration de ce bloc se compose des blocs de déclaration suivants :

• Déclaration des constantes entre CONST et END_CONST,

• Paramètres d'entrée entre VAR_INPUT et END_VAR,

• Paramètres de sortie entre VAR_OUTPUT et END_VAR,

• Variables statiques entre VAR et END_VAR ; c'est ici aussi qu'est effectuée la déclaration de l'instance locale du bloc CALCUL.

CONST LIMITE := 7; NOMBRE := LIMITE + 1; END_CONST VAR_INPUT entree_val_mesure : INT ; // Nouvelle valeur de mesure nouv_val : BOOL; // Prendre en charge la valeur // de mesure dans la mémoire // circulante "valeurs_mesure" nouv_tri : BOOL; // Trier les valeurs de mesure choix_fonction : BOOL; // Choix de la fonction de calcul Racine carrée ou Carré nouv_selection : BOOL; // Valider l'adresse de sortie selection : WORD; // Adresse de sortie END_VAR VAR_OUTPUT sortie_resultat : INT; // Valeur calculée sortie_val_mesure : INT; // Valeur de mesure correspondante END_VAR VAR valeurs_mesure : ARRAY[0..LIMITE] OF INT := 8(0); memoire_resultats : ARRAY[0..LIMITE] OF STRUCT racine_carree : INT; carre : INT; END_STRUCT; pointeur : INT := 0; anc_val : BOOL := TRUE; anc_tri : BOOL := TRUE; anc_selection : BOOL := TRUE; adresse : INT := 0; //Adresse de sortie convertie instance_calcul : CALCUL, //Définition de l'instance //locale END_VAR

Page 49: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-19

Variables statiques

Nous avons choisi le type de bloc FB parce qu'il y a des données à enregistrer d'un cycle de programme au suivant. Il s'agit des variables statiques qui sont déclarées dans la section de déclaration "VAR, END_VAR".

On appelle variables statiques les variables locales dont les valeurs sont conservées durant toutes les exécutions du bloc concerné. Elles servent à stocker les valeurs d'un bloc fonctionnel et sont conservées dans le bloc de données d'instance.

Initialisation de variables

Notez les valeurs initiales qui sont écrites dans les variables lors de l'initialisation du bloc (après son chargement dans la CPU). L'instance locale du FB CALCUL est également déclarée dans la section de déclaration "VAR, END_VAR". Ce nom sera utilisé plus tard pour l'appel et l'accès aux paramètres de sortie. L'instance globale SAISIE_DONNEES sert de mémoire de données.

Nom Type de données Valeur initiale Description

Valeurs_mesure ARRAY [..] OF INT

8(0) Mémoire circulante pour les valeurs de mesure

Memoire_resultats ARRAY [..] OF STRUCT

- Tableau de structures avec les composants "racine_carree" et "carre" de type INT

Pointeur INT 0 Pointeur de la mémoire circulante désignant l'endroit où la valeur de mesure suivante est écrite

anc_val BOOL FALSE Valeur précédente pour la prise en charge de valeur de mesure avec "nouv_val"

anc_tri BOOL FALSE Valeur précédente pour le tri avec "nouv_tri"

anc_selection BOOL FALSE Valeur précédente pour la validation du codage avec "nouv_selection"

Adresse INT 0 Adresse pour la sortie de valeur de mesure ou de résultat

Instance_calcul Instance locale - Instance locale du FB CALCUL

Page 50: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-20 A5E00324651-01

3.11.3 Section des instructions du FB SAISIE

Composition de la section des instructions

La section des instructions de SAISIE comporte 3 parties.

• Saisie des valeurs de mesure Lorsque le paramètre d'entrée "nouv_val" a changé par rapport à "anc_val", une nouvelle valeur de mesure est lue dans la mémoire circulante.

• Déclenchement du tri et du calcul Tri et calcul sont déclenchés par l'appel du bloc fonctionnel CALCUL lorsque le paramètre d'entrée "nouv_tri" a changé par rapport à "anc_tri".

• Evaluation du codage et préparation de la sortie Le codage est lu sous forme de mot. Conformément à la convention SIMATIC, cela signifie que le groupe de commutateurs du haut (octet 0) contient les 8 bits de poids fort du mot d'entrée et que le groupe de commutateurs du bas (octet 1) contient ceux de poids faible. La figure ci-après montre l'emplacement des commutateurs permettant d'effectuer le codage.

Page 51: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-21

Calcul de l'adresse

La figure ci-après montre le calcul de l'adresse. Le mot d'entrée EW0 contient dans ses bits 12 à 14 le codage qui est validé lorsqu'un front est détecté au commutateur de codage (bit 15). La valeur "adresse" est déterminée par décalage vers la droite au moyen de la fonction standard SHR et masquage des bits significatifs avec un masque AND.

C'est avec cette adresse que les éléments du tableau (résultat du calcul et valeur de mesure correspondante) sont écrits dans les paramètres de sortie. Le paramètre "choix_fonction" détermine si le résultat est la racine carrée ou le carré.

Un front du commutateur de codage est signalé par le changement de "nouv_selection" par rapport à "anc_selection".

012

34567

012

3456

Commutateur pour valeur de codage

Commutateur de codage

012

34567

8910

11

15

121314

Commutateur sur module

Mot dans mémoire

Vers SHRde 12 places

Vers AND,Masque 0007

012

34567

8910

11

15

121314

012

34567

8910

11

15

121314

« adresse »

7

Octet 0

Octet 1 EW0

Page 52: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-22 A5E00324651-01

Section des instructions

La section des instructions du bloc de code se présente comme suit.

BEGIN (***************************************************************** 1ère partie : saisie des valeurs de mesure. La modification de "nouv_val" provoque la saisie de la valeur de mesure. L'opération MOD permet de réaliser une mémoire circulante pour valeurs de mesure. ******************************************************************) IF nouv_val <> anc_val THEN pointeur := pointeur MOD NOMBRE; valeurs_mesure[pointeur] := entree_val_mesure; pointeur := pointeur + 1; END_IF; anc_val := nouv_val; (****************************************************************** 2ème partie : déclenchement du tri et du calcul La modification de "nouv_tri" déclenche le tri de la mémoire circulante et l'exécution de calculs avec les valeurs de mesure. Les résultats sont enregistrés dans un nouveau tableau "memoire_calcul". ******************************************************************) IF nouv_tri <> anc_tri THEN pointeur := 0; //Remise à 0 du pointeur de la mémoire circulante instance_calcul(memoire_tri := valeurs_mesure);//Appel du FB CALCUL END_IF; anc_tri := nouv_tri; memoire_resultats := instance_calcul.memoire_calcul; //Carré et racine carrée (****************************************************************** 3ème partie : évaluation du codage et préparation de la sortie Si modification de "nouv_selection", le codage pour adressage de l'élément de tableau pour la sortie est déterminé de nouveau : les bits significatifs de "selection" sont masqués et convertis en entiers. Selon la position de l'inverseur de "choix_fonction", c'est "racine_carree" ou "carre" qui est mis à disposition pour la sortie. *******************************************************************) IF nouv_selection <> anc_selection THEN adresse := WORD_TO_INT(SHR(IN := selection, N := 12) AND 16#0007); END_IF; anc_selection := nouv_selection; IF choix_fonction THEN sortie_resultat:= memoire_resultats[adresse].carre; ELSE sortie_resultat:= memoire_resultats[adresse].racine_carree; END_IF; sortie_val_mesure := valeurs_mesure[adresse]; //Indication de la valeur de mesure END_FUNCTION_BLOCK

Page 53: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-23

3.12 Création du bloc d'organisation CYCLE

Tâches de l'OB CYCLE

Nous avons choisi un OB1, car il est appelé de manière cyclique. Il sert à réaliser les tâches suivantes pour le programme :

• Appel et définition des paramètres du bloc fonctionnel SAISIE avec données d'entrée et données de commande,

• Prise en charge des données de résultat du bloc fonctionnel SAISIE,

• Sortie des valeurs à indiquer.

La section de déclaration commence par la zone de données temporaire "donnees_systeme" de 20 octets.

Code du programme de l'OB CYCLE

ORGANIZATION_BLOCK CYCLE (******************************************************************* CYCLE est identique à un OB1, à savoir qu'il est appelé cycliquement par le système S7. 1ère partie : appel du bloc fonctionnel et transmission des valeurs d'entrée 2ème partie : prise en charge des valeurs de sortie et sortie avec sélection *******************************************************************) VAR_TEMP donnees_systeme : ARRAY[0..20] OF BYTE; //Zone pour l'OB1 END_VAR BEGIN (* 1ère partie : ***************************************************) SAISIE.SAISIE_DONNEES( entree_val_mesure := WORD_TO_INT(entree), nouv_val := "entree 0.0", //Commutateur de saisie //sous forme de mnémonique nouv_tri := commutateur_de_tri, choix_fonction := commutateur_de_fonction, nouv_selection := commutateur_de_codage, selection := codage); (* 2ème partie : **************************************************) IF commutateur_de_sortie THEN //Commutation de la sortie sortie := SAISIE_DONNEES.sortie_resultat; //Racine carrée //ou carré ELSE sortie := SAISIE_DONNEES.sortie_val_mesure; //Valeur de mesure END_IF; END_ORGANIZATION_BLOCK

Page 54: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-24 A5E00324651-01

Conversion du type de données

La valeur de mesure fournie au module d'entrée est du type de données BYTE. Elle doit être convertie en INT : vous devez donc la convertir de WORD en INT, la conversion précédente de BYTE en WORD étant automatiquement effectuée par le compilateur. Par contre, il n'est pas nécessaire de convertir la sortie, puisqu'elle est déclarée comme INT dans la table des mnémoniques.

Page 55: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 3-25

3.13 Données de test

Conditions requises

Vous avez besoin pour le test d'un module d'entrée avec l'adresse 0 et d'un module de sortie avec l'adresse 4.

Avant le test, poussez vers la gauche ("0") les 8 commutateurs supérieurs du module d'entrée et vers la droite ("1") les 8 commutateurs inférieurs.

Chargez à nouveau les blocs dans la CPU, puisque les valeurs initiales des variables sont également testées.

Etapes du test

Effectuez maintenant le test en vous conformant aux étapes décrites dans le tableau ci-après.

Test Action Conséquence

1 Réglez le codage sur "111" (E0.4, E0.5 et E0.6) et validez-le à l'aide du commutateur de codage (E0.7).

Toutes les sorties du module de sortie (octet de poids faible) sont activées et les diodes s'allument.

2 Faites indiquer la racine carrée correspondante en positionnant le commutateur de sortie (E0.3) sur "1".

Les indications à la sortie équivalent à la valeur binaire "10000" (=16).

3 Faites indiquer le carré correspondant en positionnant le commutateur de fonction (E0.2) sur "1".

15 indicateurs s'allument à la sortie. Ceci signale un débordement, car 255 x 255 est une valeur trop élevée pour la plage des entiers.

4a Remettez le commutateur de sortie (E0.3) à "0". La valeur de mesure est à nouveau indiquée : tous les indicateurs des sorties de l'octet de poids faible du module de sortie sont à "1".

4b Donnez comme nouvelle valeur de mesure au module d'entrée la valeur 3, c'est-à-dire la valeur binaire "11".

Rien ne change encore sur le module de sortie.

5a Observez la lecture de la valeur de mesure : réglez le codage sur "000" et validez-le à l'aide du commutateur de codage (E0.7) afin de pouvoir observer plus tard la saisie de la valeur.

La sortie indique 0, c'est-à-dire qu'aucun des indicateurs ne s'allume.

5b Inversez le commutateur de saisie "entree 0.0" (E0.0). Ceci provoque la lecture de la valeur donnée à la 4e étape du test.

La sortie indique la valeur de mesure 3 , valeur binaire "11".

6 Déclenchez le tri et le calcul en inversant le commutateur de tri (E0.1).

La sortie indique à nouveau 0, puisque le tri a décalé la valeur de mesure vers le haut du tableau.

7 Indication de la valeur de mesure après le tri : réglez le codage sur "110" (E0.6 = 1, E0.5 = 1, E0.4 = 0 pour EB0, ce qui correspond aux bits 14, 13 et 12 de EW0) et validez-le en inversant le commutateur de codage.

La sortie indique à nouveau la valeur de mesure "11", puisque c'est la seconde valeur la plus élevée dans le tableau.

8a Indication des résultats correspondants : une inversion du commutateur de sortie (E0.3) provoque l'indication du carré de la valeur de mesure de l'étape 7 du test.

La valeur de sortie 9, c'est-à-dire la valeur binaire "1001" est indiquée.

8b Inversez le commutateur de fonction (E0.2) pour obtenir aussi la racine carrée.

La valeur de sortie 2, c'est-à-dire la valeur binaire "10" est indiquée.

Page 56: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Développement d'un programme S7-SCL

S7-SCL V5.3 pour S7-300/400 3-26 A5E00324651-01

Test complémentaire

Les tableaux ci-après expliquent les commutateurs du module d'entrée et proposent des modèles de test pour la racine carrée et le carré qui vous aideront à définir vos propres étapes de test.

• L'entrée est effectuée au moyen des commutateurs : les 8 du haut permettent de commander le programme, les 8 du bas de fournir une valeur de mesure.

• La sortie est effectuée au moyen d'indicateurs : le groupe du haut indique l'octet de sortie de poids fort, celui du bas l'octet de poids faible.

Commutateurs de commande

Nom Explication

Voie 0 Commutateur de saisie Inversion pour prise en charge de la valeur de mesure

Voie 1 Commutateur de tri Inversion pour tri/exploitation

Voie 2 Commutateur de fonction A gauche ("0") : racine carrée, A droite ("1") : carré

Voie 3 Commutateur de sortie A gauche ("0") : valeur de mesure, A droite ("1") : résultat

Voie 4 Codage Adresse de sortie, bit 0

Voie 5 Codage Adresse de sortie, bit 1

Voie 6 Codage Adresse de sortie, bit 2

Voie 7 Commutateur de codage Inversion pour validation du codage

Le tableau suivant contient 8 valeurs de mesure déjà triées à titre d'exemple.

Entrez les valeurs dans n'importe quel ordre. Pour cela, réglez la combinaison binaire respective et prenez la valeur en charge en inversant le commutateur de saisie. Une fois toutes les valeurs saisies, déclenchez le tri et l'exploitation en inversant le commutateur de tri. Après cela, vous pouvez prendre connaissance des valeurs de mesure triées ou des résultats, racine carrée ou carré.

Valeur de mesure Racine carrée Carré

0000 0001 = 1 0, 0000 0001 = 1 0000 0000, 0000 0001 = 1

0000 0011 = 3 0, 0000 0010 = 2 0000 0000, 0000 1001 = 9

0000 0111 = 7 0, 0000 0011 = 3 0000 0000, 0011 0001 = 49

0000 1111 = 15 0, 0000 0100 = 4 0000 0000, 1110 0001 = 225

0001 1111 = 31 0, 0000 0110 = 6 0000 0011, 1100 0001 = 961

0011 1111 = 63 0, 0000 1000 = 8 0000 1111, 1000 0001 = 3969

0111 1111 = 127 0, 0000 1011 = 11 0011 1111, 0000 0001 = 16129

1111 1111 = 255 0, 0001 0000 = 16 0111 111, 1111 1111 = indication de débordement !

Page 57: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-1

4 Utilisation de S7-SCL

4.1 Démarrer le logiciel S7-SCL

Démarrage depuis l'interface de Windows

Une fois que vous avez installé le logiciel S7-SCL sur votre PG, vous pouvez le démarrer au moyen du bouton "Démarrer" de la barre des tâches de Windows (mention sous "SIMATIC/STEP 7").

Démarrage depuis SIMATIC Manager

La manière la plus rapide de démarrer S7-SCL est de positionner le pointeur sur une source S7-SCL dans SIMATIC Manager et de cliquer deux fois.

Page 58: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-2 A5E00324651-01

4.2 Interface utilisateur

Les fenêtres de S7-SCL comportent les éléments standard suivants :

1. Barre de titre : elle contient le titre de la fenêtre et les boutons permettant de la commander.

2. Barre des menus : elle contient tous les menus disponibles dans cette fenêtre.

3. Barre d'outils : elle contient des icônes permettant de déclencher rapidement les commandes les plus fréquentes.

4. Zone de travail : elle contient les différentes fenêtres dans lesquelles vous éditez le texte du programme ou consultez les informations du compilateur ou du test.

5. Barre d'état : elle affiche l'état et d'autres informations sur l'objet sélectionné.

Page 59: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-3

4.3 Personnalisation de l'interface utilisateur

Personalisation de l'éditeur

Pour adapter l'éditeur à vos besoins, choisissez la commande Outils > Paramètres et cliquez sur l'onglet "Editeur" dans la boîte de dialogue "Paramètres". Vous pouvez y faire les choix suivants :

Options de l'onglet "Editeur" Signification

Police Détermine la police pour tout le texte source.

Largeur tabulateurs Détermine la largeur de colonne des tabulations.

Numéros de ligne Affiche les numéros au début des lignes.

Enregistrer avant de compiler Propose d'enregistrer la source avant de la compiler.

Demande de confirmation Demande confirmation avant d'enregistrer.

Personnalisation de la police et de la couleur des caractères

Pour modifier la police et la couleur utilisées pour les différents éléments de langage, choisissez la commande Outils > Paramètres et cliquez sur l'onglet "Format" dans la boîte de dialogue "Paramètres". Vous pouvez y faire les choix suivants :

Options de l'onglet "Format" Signification

Mots-clés en majuscules Ecrit en majuscules à la saisie les mots-clés de S7-SCL tels que FOR, WHILE, FUNCTION_BLOCK, VAR ou END_VAR.

Indentation après mots-clés Décale à la saisie les lignes des différentes sections de déclaration et celles des instructions de contrôle IF, CASE, FOR, WHILE et REPEAT.

Indentation automatique Après un changement de ligne, décale automatiquement la nouvelle ligne de la même valeur que la ligne précédente. Cette option ne s'applique qu'aux nouvelles lignes saisies.

Style/Couleur Détermine le style et la couleur utilisés pour les différents éléments de langage.

Les choix faits dans cet onglet ne sont efficaces que si vous avez activé l'option "Utiliser les formats suivants" en tête de l'onglet.

Barre d'outils, barre de points d'arrêt, barre d'état

Vous pouvez afficher et masquer ces trois barres indépendamment l'une de l'autre. Activez ou désactivez pour cela la commande correspondante du menu Affichage. Une coche à côté du nom de la commande indique si elle est activée ou pas.

Fenêtre "Erreurs et avertissements"

La fenêtre "Erreurs et avertissements" affiche les erreurs et avertissements qui se produisent lors de la compilation d'une source. Vous pouvez l'activer et la désactiver en sélectionnant la commande de menu Affichage > Erreurs et avertissements.

Page 60: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-4 A5E00324651-01

4.4 Création et manipulation d'une source S7-SCL

4.4.1 Créer une nouvelle source S7-SCL

Avant de pouvoir écrire un nouveau programme S7-SCL, il vous faut d'abord créer une nouvelle source S7-SCL. Ce que vous allez faire dans le dossier "Sources" sous un programme S7.

Structure d'un programme S7 dans SIMATIC Manager

Les sources que vous créez avec S7-SCL peuvent être rangées comme suit dans la structure d'un programme S7 :

Blocs

Programme S7

Sources

Bloc(par exemple, FB1, OB1)

Source(par exemple, source SCL)

Mnémoniques

Procédez de la manière suivante :

1. Ouvrez la boîte de dialogue "Nouveau"

- en cliquant sur l'icône "Nouveau" dans la barre d'outils ou

- en choisissant la commande Fichier > Nouveau.

2. Dans la boîte de dialogue, choisissez

- un projet,

- le filtre "Source S7-SCL" et

- le dossier "Sources" dans le programme S7.

3. Tapez le nom de l'objet source dans la zone de texte appropriée. Il peut comporter jusqu'à 24 caractères.

4. Confirmez par "OK".

L'objet source est alors créé sous le nom que vous lui avez donné et il s'affiche dans une fenêtre de travail pour que vous puissiez l'éditer.

Nota

Vous pouvez aussi créer une source S7-SCL avec SIMATIC Manager en sélectionnant un dossier Sources, puis en choisissant la commande Insertion > Logiciel S7 > Source S7-SCL.

Page 61: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-5

4.4.2 Ouvrir une source S7-SCL

Vous pouvez ouvrir une source S7-SCL pour la compiler ou pour l'éditer.

Procédez de la manière suivante :

1. Ouvrez la boîte de dialogue "Ouvrir"

- en cliquant sur l'icône "Ouvrir" ou

- en choisissant la commande Fichier > Ouvrir.

2. Dans la boîte de dialogue, choisissez

- le projet souhaité,

- le programme S7 souhaité et

- le dossier Sources correspondant.

3. Sélectionnez la source S7-SCL.

4. Cliquez sur le bouton "OK".

Nota

Vous pouvez aussi ouvrir des sources S7-SCL dans SIMATIC Manager en cliquant deux fois sur leur icône ou en choisissant la commande Edition > Ouvrir l'objet après avoir sélectionné la source qui vous intéresse.

4.4.3 Fermer une source S7-SCL

Procédez de la manière suivante :

• Choisissez la commande Fichier > Fermer ou

• cliquez sur le bouton "Fermer" dans la barre de titre de la fenêtre.

Nota

Si vous avez modifié la source, un message vous proposera d'enregistrer ces modifications avant la fermeture. Si vous ne les enregistrez pas, elles seront perdues.

Page 62: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-6 A5E00324651-01

4.4.4 Ouvrir des blocs

Ouvrir des blocs n'est pas possible avec l'application S7-SCL. Vous pouvez uniquement ouvrir la source correspondante. Les blocs créés avec S7-SCL peuvent cependant être ouverts avec l'éditeur CONT/LOG/LIST qui les affiche en langage de programmation LIST et en permet l'édition dans ce langage. N'effectuez aucune modification en représentation LIST, car

• les instructions MC7 affichées ne représentent pas nécessairement un bloc LIST correct,

• une compilation sans erreur avec le compilateur LIST implique des modifications qui exigent des connaissances approfondies en LIST comme en S7-SCL,

• le bloc compilé avec LIST affiche le code du langage LIST et non plus celui de S7-SCL,

• la source S7-SCL et le code MC7 ne seraient plus cohérents.

Pour plus d'informations, veuillez consulter l'aide en ligne de STEP 7.

Nota

La maintenance de vos programmes de CPU sera plus facile si vous effectuez les modifications éventuelles dans les sources S7-SCL et les compilez à nouveau.

4.4.5 Définir les propriétés de l'objet

Vous définissez les propriétés de l'objet en donnant des attributs aux blocs. Quant aux propriétés de la source S7-SCL (ex. : Auteur), vous les déterminez dans la boîte de dialogue "Propriétés".

Procédez de la manière suivante :

1. Choisissez la commande Fichier > Propriétés.

2. Tapez les options dans la boîte de dialogue qui s'ouvre.

3. Confirmez par "OK".

4.4.6 Générer des sources S7-SCL avec un éditeur standard

Vous pouvez aussi utiliser un éditeur standard ASCII pour éditer votre source S7-SCL. Mais dans ce cas, vous ne disposerez pas des fonctions d'édition si pratiques ni de l'aide en ligne intégrée de S7-SCL.

Une fois la source créée et enregistrée, vous devez l'importer dans le dossier "Sources" d'un programme S7 au moyen de SIMATIC Manager (voir la documentation de STEP 7). Après quoi vous pouvez ouvrir la source dans S7-SCL pour en poursuivre l'édition ou pour la compiler.

Page 63: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-7

4.4.7 Protection de bloc

Vous pouvez instaurer pour vos blocs une protection de bloc, en indiquant dans la source l'attribut KNOW_HOW_PROTECT lors de la programmation.

Protéger un bloc a les conséquences suivantes :

• Lorsque vous ouvrirez plus tard un bloc compilé avec l'éditeur incrémental LIST, vous ne pourrez pas examiner la section des instructions du bloc.

• Dans la section de déclaration du bloc, seules les variables des types de déclaration VAR_IN, VAR_OUT et VAR_IN_OUT s'afficheront. Les variables des sections VAR et VAR_TEMP resteront cachées.

Pour saisir la protection de bloc il faut savoir que :

• Le mot-clé est KNOW_HOW_PROTECT ; il faut l'entrer avant tous les autres attributs de bloc.

• C'est ainsi que vous pouvez protéger les OB, FB, FC et DB.

Page 64: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-8 A5E00324651-01

4.5 Règles pour les sources S7-SCL

4.5.1 Règles générales pour les sources S7-SCL

Les sources S7-SCL doivent suivre les règles suivantes.

• Dans une source S7-SCL, on peut éditer autant de blocs de code (FB, FC, OB), de blocs de données (DB) et de types de données utilisateur (UDT) que l'on veut.

• Chaque sorte de bloc a une composition typique.

• Chaque instruction et chaque déclaration de variable se termine par un point-virgule (;).

• Il n'est pas fait de différence entre minuscules et majuscules.

• Les commentaires ne servent qu'à expliquer le programme. Ils n'ont pas d'influence sur son déroulement.

• Des blocs de données d'instance sont automatiquement générés à l'appel d'un bloc fonctionnel. Il n'est pas nécessaire de les éditer.

• Le DB0 est réservé au système. Vous ne pouvez donc pas générer de DB portant ce nom.

4.5.2 Ordre des blocs

En écrivant la source S7-SCL, vous devez tenir compte des principes suivants en ce qui concerne l'ordre des blocs :

• Un bloc appelé doit précéder le bloc appelant.

• Un type de données utilisateur (UDT) doit précéder les blocs dans lesquels il est utilisé.

• Un bloc de données auquel un type de données utilisateur (UDT) est associé vient après cet UDT.

• Un bloc de données est placé avant tous les blocs qui y ont accès.

Page 65: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-9

4.5.3 Utilisation de mnémoniques

Dans un programme S7-SCL, vous travaillez avec des opérandes tels que signaux d'E/S, mémentos, compteurs, temporisations et blocs. Vous pouvez les adresser de manière absolue (ex. : E1.1, M2.0, FB11), mais vos sources S7-SCL seront beaucoup plus lisibles si vous employez à cet effet des mnémoniques (ex. : Moteur_marche). C'est alors par son mnémonique que vous accéderez à un opérande dans votre programme utilisateur.

Mnémoniques locaux et globaux

• Vous utiliserez des mnémoniques globaux pour les zones de mémoire de la CPU et les désignations de bloc. Ils sont connus dans l'ensemble du programme utilisateur et leur désignation doit donc être univoque. Vous pouvez créer la table des mnémoniques à l'aide de STEP 7.

Les mnémoniques locaux sont connus seulement dans le bloc dont la section de déclaration contient leur définition. Vous pouvez donner des noms symboliques aux variables, paramètres, constantes et repères de saut, tout en employant le même nom à des fins différentes dans des blocs différents.

Nota

Veillez à ce que les mnémoniques soient univoques et qu'ils ne soient pas identiques à un mot-clé.

Page 66: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-10 A5E00324651-01

4.6 Editer dans des sources S7-SCL

4.6.1 Annuler la dernière action d'édition

La commande Edition > Annuler permet d'annuler une ou plusieurs actions.

Mais attention : toutes les opérations ne peuvent pas être annulées. La commande Fichier > Enregistrer, par exemple, ne peut être annulée.

4.6.2 Rétablir une action d'édition

Après avoir annulé une ou plusieurs actions, vous pouvez les restaurer avec la commande Edition > Rétablir.

4.6.3 Rechercher et remplacer des parties de texte

Lorsque vous souhaitez retoucher ou modifier une source S7-SCL, vous pouvez souvent gagner un temps précieux en recherchant des parties de texte et en les remplaçant par d'autres au besoin. La recherche peut porter par exemple sur des mots-clés, des identificateurs absolus, des identificateurs symboliques, etc.

Procédez de la manière suivante :

1. Choisissez la commande Edition > Rechercher/Remplacer....

2. Sélectionnez les options dans la boîte de dialogue "Rechercher/Remplacer".

3. Lancez la recherche

- en cliquant sur le bouton "Rechercher" pour rechercher une partie de texte et la sélectionner ou

- en cliquant sur le bouton "Remplacer" ou "Remplacer tout" pour rechercher le texte et le remplacer par celui qui est indiqué dans la zone de texte "Remplacer par".

Page 67: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-11

4.6.4 Sélectionner des parties de texte

Vous pouvez sélectionner des parties de texte en maintenant le bouton de la souris enfoncé et en faisant glisser le pointeur sur la partie du texte en question.

Vous pouvez en outre :

• Sélectionner tout le texte d'une source en choisissant la commande Edition > Sélectionner tout.

• Sélectionner un mot en cliquant deux fois dessus.

• Sélectionner toute une ligne en cliquant au bord à gauche de la ligne.

La commande Edition > Annuler la sélection permet de supprimer la sélection.

4.6.5 Copier des parties de texte

Cette fonction permet de copier des parties de programme ou des programmes entiers. Le texte copié est mémorisé dans le presse-papiers à partir duquel vous pouvez l'insérer à un autre endroit autant de fois que vous le voulez.

Procédez de la manière suivante :

1. Sélectionnez la partie de texte à copier.

2. Copiez-la

- en cliquant sur l'icône "Copier" dans la barre d'outils ou

- en choisissant la commande Edition > Copier.

3. Amenez le curseur à l'endroit (dans la même application ou dans une autre) où vous voulez insérer (coller) la partie de texte.

4. Collez-la

- en cliquant sur l'icône "Coller" de la barre d'outils ou

- en choisissant la commande Edition > Coller.

Page 68: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-12 A5E00324651-01

4.6.6 Couper des parties de texte

Cette fonction permet d'amener le texte sélectionné dans le presse-papiers. Habituellement, elle est utilisée avec la commande Edition > Coller qui insère le contenu du presse-papiers à la position du curseur.

Procédez de la manière suivante :

1. Sélectionnez la partie de texte à couper.

2. Coupez-la

- en cliquant sur l'icône "Couper" dans la barre d'outils ou

- en choisissant la commande Edition > Couper.

Nota

• Il n'est pas possible de couper la partie de texte sélectionnée si la commande Edition > Couper n'est pas disponible (affichée sur fond gris).

• La commande Edition > Coller permet d'insérer la partie de texte coupée à un autre endroit (du même programme ou d'un autre).

• Le contenu du presse-papiers est conservé jusqu'à ce que vous exécutiez à nouveau l'une des commandes Edition > Couper ou Edition > Copier.

4.6.7 Effacer des parties de texte

Vous pouvez supprimer du texte source une partie de texte sélectionnée.

Procédez de la manière suivante :

1. Sélectionnez le texte à effacer.

2. Choisissez la commande Edition > Effacer.

Le texte effacé n'est pas mémorisé dans le presse-papiers. Il peut être inséré de nouveau grâce à l'une des commandes Edition > Annuler ou Edition > Rétablir.

Page 69: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-13

4.6.8 Positionner le curseur dans une ligne donnée

Les fonctions suivantes vous permettent de positionner le curseur de manière précise.

Positionnement dans un numéro de ligne précis

Vous pouvez positionner le curseur au début d'une ligne précise :

1. Choisissez la commande de menu Edition > Aller à la ligne.

La boîte de dialogue "Aller à" s'ouvre.

2. Entrez le numéro de la ligne dans la boîte de dialogue "Aller à".

3. Confirmez par "OK".

Positionnement sur le signet suivant / précédent

Si vous avez défini des signets dans la source, vous pouvez naviguer de l'un à l'autre :

• Choisissez la commande de menu Edition > Aller à > Signet suivant / Signet précédent.

Positionnement sur l'erreur suivante / précédente dans le code du programme

Après la compilation, la fenêtre "Erreurs et avertissements" affiche toutes les erreurs de syntaxe en indiquant les numéros de ligne et de colonne.

S7-SCL offre la possibilité de naviguer entre les différents emplacements d'erreurs dans le programme et ainsi de corriger consécutivement toutes les erreurs détectées lors du processus de compilation précédent :

1. Positionnez le curseur à un emplacement quelconque dans le texte source.

2. Choisissez la commande de menu Edition > Aller à > Erreur précédente / Erreur suivante.

Page 70: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-14 A5E00324651-01

4.6.9 Indentation des lignes selon la syntaxe

Les fonctions suivantes vous permettent de structurer les sources S7-SCL en décalant la marge des lignes.

• Indentation automatique Décale automatiquement la nouvelle ligne de la même valeur que la ligne précédente après un changement de ligne.

• Indentation après mots-clés Décale les lignes des différentes sections de déclaration et celles des structures de contrôle IF, CASE, FOR, WHILE et REPEAT.

Procédez de la manière suivante :

1. Choisissez la commande Outils > Paramètres.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Format".

3. Assurez-vous que l'option "Utiliser les formats suivants" est bien activée.

4. Cochez l'option "Indentation automatique" ou "Indentation après mots-clés".

Page 71: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-15

4.6.10 Choisir le style et la couleur des caractères

Employez des couleurs et des styles différents pour distinguer les éléments de langage dans votre source S7-SCL. Elle en sera plus lisible et aura un aspect plus professionnel. Vous disposez des fonctions suivantes pour influencer la présentation du texte source :

• Mots-clés en majuscules Si vous activez cette fonction, les mots-clés définis tels que FOR, WHILE, FUNCTION_BLOCK, VAR ou END_VAR seront écrits en majuscules.

• Choix du style et de la couleur Il y a déjà des styles et des couleurs par défaut pour les différents éléments de langage tels qu'opérations, commentaires ou constantes. Vous pouvez les modifier à votre convenance. Voici les couleurs par défaut :

Couleur Elément de langage Exemple

Bleu Mot-clé ORGANIZATION_BLOCK

Type de données prédéfini INT

Identificateur prédéfini ENO

Fonction standard BOOL_TO_WORD

Ocre Opération NOT

Rose Constante TRUE

Bleu-vert Commentaire //... ou (*...*)

Violet Mnémonique global (table des mnémoniques) écrit entre guillemets

"Moteur"

Noir Texte normal Variable

Procédez de la manière suivante :

1. Choisissez la commande Outils > Paramètres.

2. Dans la boîte de dialogue qui s'affiche, sélectionnez l'onglet "Format".

3. Assurez-vous que l'option "Utiliser les formats suivants" est activée.

4. Cochez les valeurs de votre choix. Si vous avez besoin d'instructions détaillées sur l'emploi de la boîte de dialogue, cliquez sur le bouton "Aide" alors que la boîte est ouverte.

Page 72: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-16 A5E00324651-01

4.6.11 Positionnement de signets dans le textes source

L'utilisation de signets vous permet de naviguer rapidement dans une source. Les signets s'avèrent utiles, p. ex. pour effectuer des modifications ayant des effets en divers endroits d'une source. Vous pouvez les insérer à des endroits quelconques dans une source. S'il en existe plusieurs, vous pouvez naviguer de l'un à l'autre vers le bas ou vers le haut.

Validité

Les signets sont valides tant que la source est ouverte. Ils ne sont pas enregistrés avec cette dernière.

Insertion de signets

1. Positionnez le curseur dans la ligne que vous souhaitez sélectionner.

2. Choisissez la commande de menu Edition > Afficher/Masquer les signets.

Naviguation entre les différents signets

1. Choisissez la commande de menu Edition > Aller à > Signet précédent/suivant.

Suppression de signets

Choisissez la commande de menu Edition > Supprimer tous les signets.

Nota

Les fonctions nécessaires à l'utilisation de signets sont rapidement disponibles dans la barre des signets. Vous affichez la barre des signets en sélectionnant la commande de menu Affichage > Barre des signets.

Page 73: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-17

4.6.12 Insérer des modèles

4.6.12.1 Insérer des modèles de bloc

L'une des fonctions d'édition de S7-SCL est l'insertion de modèles de bloc pour OB, FB, FC, DB, DB d'instance, DB avec UDT et UDT. Ces modèles vous facilitent la saisie et le respect de la syntaxe.

Procédez de la manière suivante :

1. Positionnez le curseur à l'endroit après lequel vous souhaitez insérer le modèle de bloc.

2. Choisissez la commande appropriée Insertion > Modèle de bloc > OB/FB/FC/DB/DB d'instance/DB avec UDT/UDT.

4.6.12.2 Insérer des appels de bloc

S7-SCL vous aide à programmer des appels de bloc. Les blocs que vous pouvez appeler sont :

• Les blocs fonctionnels système (SFB) et les fonctions système (SFC) des bibliothèques SIMATIC.

• Les blocs fonctionnels et les fonctions créés dans S7-SCL.

• Les blocs fonctionnels et les fonctions créés dans d'autres langages de STEP 7.

Procédez de la manière suivante :

1. Choisissez la commande Insertion > Appel de bloc.

2. Dans la boîte de dialogue qui s'ouvre, choisissez le bloc SFC, SFB, FC ou FB souhaité et confirmez par "OK". S7-SCL copie automatiquement le bloc appelé dans le programme S7 et inscrit dans la source, sous une forme syntaxique correcte, l'appel du bloc ainsi que ses paramètres formels.

3. Si vous avez appelé un bloc fonctionnel, complétez le nom du bloc de données d'instance.

4. Entrez les valeurs que devra recevoir le bloc (paramètres effectifs). Pour vous faciliter le choix d'un paramètre effectif, S7-SCL indique le type de données requis sous forme de commentaire.

4.6.12.3 Insérer des modèles de commentaire

L'une des fonctions d'édition de S7-SCL est l'insertion de modèles de commentaire. Ces modèles vous facilitent la saisie et le respect de la syntaxe.

Procédez de la manière suivante :

1. Positionnez le curseur après l'en-tête du bloc qui vous intéresse.

2. Choisissez la commande appropriée Insertion > Modèle de bloc > Commentaire.

Page 74: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-18 A5E00324651-01

4.6.12.4 Insérer des modèles de paramètre

L'une des fonctions d'édition de S7-SCL est l'insertion de modèles de sections de déclaration des paramètres. Ces modèles vous facilitent la saisie et le respect de la syntaxe. Vous pouvez déclarer des paramètres dans les blocs fonctionnels et dans les fonctions.

Procédez de la manière suivante :

1. Positionnez le curseur dans la section de déclaration d'un FB ou d'une FC.

2. Choisissez la commande Insertion > Modèle de bloc > Paramètres.

4.6.12.5 Insérer des structures de contrôle

L'une des fonctions d'édition de S7-SCL est l'insertion de modèles de structure de contrôle pour blocs de code. Ces modèles vous facilitent la saisie et le respect de la syntaxe.

Procédez de la manière suivante :

1. Positionnez le curseur à l'endroit après lequel vous souhaitez insérer le modèle.

2. Choisissez la commande appropriée Insertion > Structure de contrôle > IF/CASE/FOR/WHILE/REPEAT.

Page 75: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-19

4.7 Compiler und programme S7-SCL

4.7.1 Informations sur la compilation

Avant de pouvoir exécuter votre programme ou de le tester, il faut d'abord le compiler. Vous activerez le compilateur en lançant la compilation. Il a les propriétés suivantes :

• Vous pouvez compiler une source S7-SCL dans son entier ou seulement certains blocs que vous aurez sélectionnés dans la source.

• Toutes les erreurs de syntaxe détectées au cours de la compilation s'affichent ensuite dans une fenêtre.

• Pour chaque appel de bloc fonctionnel, un bloc de données d'instance correspondant est généré s'il n'existe pas encore.

• Vous pouvez aussi compiler plusieurs sources S7-SCL en une seule opération de compilation ; créez pour cela un fichier d'informations compilation.

• La commande Outils > Paramètres permet de choisir les options de compilation.

Quand vous aurez créé et compilé un programme utilisateur sans erreur, vous pouvez supposer qu'il est correct. Des problèmes peuvent pourtant survenir lors de l'exécution du programme dans l'automate programmable. Servez-vous des fonctions de test de S7-SCL pour détecter ce type d'erreurs.

Page 76: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-20 A5E00324651-01

4.7.2 Choisir les options de compilation

Vous pouvez adapter la compilation à vos besoins personnels.

Procédez de la manière suivante :

1. Choisissez la commande Outils > Paramètres pour ouvrir la boîte de dialogue "Paramètres".

2. Sélectionnez l'onglet "Compilateur" ou l'onglet "Création du bloc".

3. Cochez les options souhaitées.

Options de l'onglet "Compilateur"

Générer code objet Cette option vous permet d'indiquer si vous voulez générer ou pas un code exécutable. Une compilation sans cette option sert simplement à vérifier la syntaxe.

Optimiser code objet Si vous cochez cette option, les blocs générés seront optimisés en ce qui concerne la place mémoire requise et le temps d'exécution dans l'automate programmable. Il est conseillé de toujours la cocher, puisqu'il n'en résulte aucun inconvénient qui limiterait les fonctionnalités du bloc.

Surveiller limites tableaux Si vous cochez cette option, les indices des tableaux seront contrôlés durant l'exécution du programme S7 afin de garantir qu'ils se trouvent bien dans la plage autorisée par la déclaration du tableau (ARRAY). Lorsqu'un indice dépasse la plage autorisée, le drapeau OK est positionné sur FALSE.

Générer infos débogage Cette option vous permet d'effectuer une mise au point avec le débogueur après que vous avez compilé le programme et l'avez chargé dans la CPU. Elle augmente toutefois la place mémoire requise par le programme et les temps d'exécution dans l'AS.

Activer drapeau OK Cette option vous permet d'interroger le drapeau OK dans vos textes sources S7-SCL.

Imbrication de commentaires possible

Cochez cette option pour pouvoir écrire des commentaires imbriqués dans votre source S7-SCL.

Long. de chaîne max. Vous pouvez réduire ici la longueur standard du type de données STRING. Par défaut, elle est de 254 caractères. La longueur choisie ici concerne tous les paramètres de sortie et d'entrée/sortie ainsi que les valeurs de retour des FC. Notez bien qu'elle ne doit pas être inférieure à celle des variables STRING employées dans le programme.

Page 77: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-21

Options de l'onglet "Création du bloc"

Ecrasement des blocs Ecrase les blocs existant déjà dans le dossier Blocs d'un programme S7 si des blocs de même nom sont générés au cours de la compilation. De même lors d'un chargement, les blocs de même nom se trouvant déjà dans le système cible seront écrasés. Si vous ne cochez pas cette option, vous devrez confirmer un message avant que le bloc soit écrasé.

Affichage des avertissements

Les avertissements seront affichés en plus des erreurs après une compilation.

Erreurs avant avertissements

Les erreurs sont affichées avant les avertissements dans la fenêtre des avertissements et erreurs

Génération des données de référence

Cochez cette option pour que des données de référence soient générées automatiquement lorsqu'un bloc est généré. La commande Outils > Données de référence vous permet toutefois de générer les données de référence ou de les mettre à jour ultérieurement.

Prise en compte de l'attribut système "S7_server"

Cochez cette option pour que l'attribut système pour paramètre "S7_server" soit pris en compte lors de la génération d'un bloc. Cet attribut est requis lorsque le paramètre pour la configuration des liaisons ou des messages est significatif. Il contient le numéro de liaison ou de message. Notez que cette option prolonge la compilation.

Page 78: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-22 A5E00324651-01

4.7.3 Compiler le programme

Avant de pouvoir exécuter un programme ou de le tester, il faut d'abord le compiler. Pour être sûr(e) que vous compilez toujours la version la plus récente de votre source S7-SCL, il est conseillé de choisir la commande Outils > Paramètres et de cocher l'option "Enregistrer avant de compiler" dans l'onglet "Editeur". La commande Fichier > Compiler enregistre alors automatiquement la source S7-SCL.

Procédez de la manière suivante :

1. Enregistrez la source S7-SCL à compiler.

2. Pour générer un programme exécutable, il est absolument nécessaire de cocher l'option "Générer code objet" dans l'onglet "Compilateur" de la boîte de dialogue "Paramètres".

3. Modifiez éventuellement d'autres options de compilation.

4. Assurez-vous que la table de mnémoniques correspondante se trouve bien dans le même répertoire de programme.

5. Il y a plusieurs façons de démarrer la compilation :

- La commande Fichier > Compiler compile la source dans sa totalité.

- La commande Fichier > Compilation partielle ouvre une boîte de dialogue permettant de sélectionner certains blocs pour les compiler.

6. La boîte de dialogue "Erreurs et avertissements" affiche toutes les erreurs et tous les avertissements concernant la syntaxe qui ont été émis lors de la compilation du programme. Corrigez les éventuelles erreurs signalées, puis répétez les étapes décrites ci-dessus.

4.7.4 Créer un fichier d'informations compilation

Un fichier d'informations compilation vous permet de compiler en une fois plusieurs sources S7-SCL d'un dossier Sources. Vous y écrivez les noms des sources S7-SCL dans l'ordre dans lequel vous voulez qu'elles soient compilées.

Procédez de la manière suivante :

1. Ouvrez la boîte de dialogue "Nouveau" en choisissant la commande Fichier > Nouveau.

2. Sélectionnez dans cette boîte de dialogue

- un dossier Sources dans un programme S7 et

- le type d'objet "Fichier d'informations compilation".

3. Tapez le nom du fichier dans la zone de texte appropriée (24 caractères au plus) et confirmez par "OK".

4. Le fichier est créé et s'affiche dans une fenêtre de travail pour que vous puissiez l'éditer. Tapez dans l'ordre souhaité les noms des sources S7-SCL à compiler et enregistrez le fichier.

5. Démarrez ensuite la compilation en choisissant la commande Fichier > Compiler.

Page 79: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-23

4.7.5 Eliminer les erreurs après la compilation

Toutes les erreurs et tous les avertissements relatifs à la syntaxe, émis lors de la compilation, s'affichent après l'opération dans la fenêtre "Erreurs et avertissements".

L'apparition d'une erreur empêche la génération du bloc concerné, tandis que celle d'un avertissement n'empêche pas la génération d'un bloc exécutable. L'exécution dans l'AS peut toutefois se révéler erronée.

Procédez de la manière suivante pour éliminer une erreur :

1. Sélectionnez l'erreur et appuyez sur la touche F1 pour appeler une description de l'erreur et une solution pour l'éliminer.

2. Si le message indique un numéro de ligne (Lxx) et de colonne (Cxx), vous pouvez localiser la position erronée du texte source

- en cliquant sur le message d'erreur dans la fenêtre "Erreurs et avertissements", puis en appelant le menu contextuel avec le bouton droit de la souris et en y choisissant la commande Afficher l'erreur ;

- en cliquant deux fois sur le message d'erreur pour faire sauter le curseur à la position signalée (ligne, colonne).

3. Renseignez-vous sur la syntaxe correcte dans la description du langage S7-SCL.

4. Rectifiez le texte source en conséquence.

5. Enregistrez la source.

6. Compilez-la de nouveau.

Page 80: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-24 A5E00324651-01

4.8 Enregistrer et imprimer une source S7-SCL

4.8.1 Enregistrer une source S7-SCL

Dans S7-SCL, le terme "Enregistrer" s'applique toujours aux fichiers sources. Les blocs sont générés lors de la compilation du fichier source et automatiquement stockés dans le répertoire de programme correspondant. Vous pouvez enregistrer une source S7-SCL à tout moment dans son état actuel. L'enregistrement n'est pas accompagné d'une compilation. Les erreurs de syntaxe sont également enregistrées.

Procédez de la manière suivante :

• Choisissez la commande Fichier > Enregistrer ou cliquez sur l'icône "Enregistrer" dans la barre d'outils. La source S7-SCL est mise à jour.

• Pour créer une copie de la source S7-SCL actuelle, choisissez la commande Fichier > Enregistrer sous. Vous voyez s'afficher la boîte de dialogue "Enregistrer sous" dans laquelle vous pouvez indiquer le nom et le chemin de la copie.

4.8.2 Choisir la taille de papier

Voici comment influencer l'aspect d'un listage.

• La commande Fichier > Mise en page sert à choisir la taille et l'orientation du papier pour l'impression.

• Vous pouvez définir les en-têtes et bas de page de vos documents à imprimer en choisissant la commande de menu Fichier > Mise en page, puis en sélectionnant l'onglet "En-têtes/bas page" dans la boîte de dialogue suivante.

• La commande de menu Fichier > Configuration de l'imprimante vous permet de définir d'autres paramètres pour l'imprimante.

Important

Les indications sur l'orientation du papier doivent être faites dans la boîte de dialogue "Mise en page". Celles effectuées dans la boîte de dialogue "Configuration de l'imprimante" ne sont pas significatives pour l'impression de sources S7-SCL.

• La commande Fichier > Aperçu avant impression permet de vérifier l'effet obtenu par les choix effectués avant d'envoyer le document à l'imprimante.

Page 81: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-25

4.8.3 Imprimer une source S7-SCL

C'est toujours la source S7-SCL figurant dans la fenêtre de travail active qui est imprimée. Pour pouvoir imprimer une source, il faut donc qu'elle soit ouverte.

Procédez de la manière suivante :

1. Activez la fenêtre de travail de la source S7-SCL dont vous souhaitez imprimer le contenu.

2. Ouvrez la boîte de dialogue "Imprimer"

- en cliquant sur l'icône "Imprimer" ou

- en choisissant la commande Fichier > Imprimer.

3. Choisissez les options d'impression dans la boîte de dialogue, comme par exemple l'étendue d'impression ou le nombre de copies.

4. Confirmez par "OK".

4.8.4 Choisir les options d'impression

Vous disposez des fonctions suivantes pour influencer la présentation du texte source à l'impression :

• Pagination à chaque début de bloc/fin de bloc Lorsque cette fonction est activée, chaque bloc commence sur une nouvelle page ou se termine par une nouvelle page à l'impression.

• Numéros de ligne Lorsque cette fonction est activée, le numéro est imprimé au début de chaque ligne.

• Impression en couleur Lorsque cette fonction est activée, les couleurs utilisées dans la source sont imprimées.

• Police d'impression La police Courier New de taille 8 est prévue par défaut pour l'ensemble du texte. Elle fournit des résultats d'impression optimums.

• Style Vous pouvez choisir des styles de caractères différents pour les divers éléments de langage. Il s'agit des éléments individuels suivants :

Elément de langage Exemple

Texte normal

Mot-clé ORGANIZATION_BLOCK

Identificateur d'un type de données prédéfini INT

Identificateur prédéfini ENO

Identificateur d'une fonction standard BOOL_TO_WORD

Opération NOT

Constante TRUE

Bloc de commentaire (* *)

Page 82: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-26 A5E00324651-01

Elément de langage Exemple

Ligne de commentaire //...

Mnémonique global (table des mnémoniques) écrit entre guillemets

"Moteur"

Procédez de la manière suivante :

1. Choisissez la commande Outils > Paramètres.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Impression".

3. Assurez-vous que l'option "Utiliser les formats suivant à l'impression" est activée.

4. Cochez les valeurs de votre choix. Si vous avez besoin d'instructions détaillées sur l'emploi de la boîte de dialogue, cliquez sur le bouton "Aide" alors que la boîte est ouverte.

Page 83: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-27

4.9 Chargement de programmes

4.9.1 Effacement général de la mémoire de la CPU

La fonction Effacement général permet d'effacer en ligne l'ensemble du programme utilisateur dans une CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat de fonctionnement et mettez la CPU à l'ARRET.

2. Choisissez la commande Système cible > Effacement général.

3. Confirmez cette action dans la boîte de dialogue qui s'affiche.

! Attention

• La CPU est remise à zéro.

• Toutes les données utilisateur sont effacées.

• La CPU suspend toutes les liaisons existantes.

• Lorsqu'une carte mémoire est enfichée, la CPU copie son contenu après l'effacement général dans la mémoire de chargement interne.

4.9.2 Charger des programmes utilisateur dans la CPU

Conditions requises

Lors de la compilation d'une source S7-SCL , les blocs sont générés à partir de la source et enregistrés dans le dossier Blocs du programme S7.

Les blocs qui sont appelés au premier niveau depuis les blocs S7-SCL sont recherchés, puis copiés automatiquement avec les autres dans le répertoire "Blocs" et adoptés dans la liste de chargement.

Vous devez charger les autres blocs du programme utilisateur de la console de programmation dans la CPU à l'aide du SIMATIC Manager.

Pour que le chargement soit effectué, il faut qu'une liaison existe entre la PG et la CPU. Il faut aussi qu'un programme utilisateur en ligne soit affecté au module de CPU dans SIMATIC Manager.

Page 84: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-28 A5E00324651-01

Marche à suivre

Une fois que vous avez compilé la source, vous avez le choix entre deux types de chargement :

• La commande Fichier > Charger charge tous les blocs contenus dans la source ainsi que tous les blocs appelés au premier niveau.

• La commande Fichier > Chargement partiel ouvre une boîte de dialogue permettant de sélectionner certains blocs pour les charger.

Les blocs sont alors transférés dans la CPU. Si l'un d'eux se trouve déjà dans la mémoire vive (RAM) de la CPU, un message vous demandera d'en confirmer l'écrasement.

Nota

Il est préférable de charger le programme utilisateur à l'état de fonctionnement ARRET, car l'écrasement d'un ancien programme à l'état MARCHE risque de provoquer des erreurs.

Page 85: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-29

4.10 Test des programmes

4.10.1 Fonctions de test de S7-SCL

Les fonctions de test de S7-SCL vous permettent de contrôler un programme en cours d'exécution dans la CPU et donc de trouver les erreurs qu'il contient éventuellement. Les erreurs de syntaxe sont signalées à la compilation. Les erreurs à l'exécution sont signalées par des alarmes système. Les erreurs de programmation logiques peuvent être détectées à l'aide des fonctions de test.

Fonctions de test de S7-SCL

Vous disposez dans S7-SCL des fonctions de test suivantes :

• Visualiser Cette fonction permet de représenter les noms et les valeurs en cours des variables de la source S7-SCL . Durant le test, les valeurs des variables et des paramètres de la zone concernée sont affichées par ordre chronologique et actualisées cycliquement.

• Test avec points d'arrêt / en pas à pas Cette fonction permet de définir des points d'arrêt, puis d'effectuer un test en pas à pas. Vous pouvez par exemple exécuter l'algorithme du programme instruction par instruction et observer le changement des valeurs des variables traitées.

! Attention

Un test effectué sur une installation en fonctionnement peut causer des lésions corporelles graves ou un dommage matériel important en cas de mauvais fonctionnement ou d'erreurs de programmation.

Avant d'utiliser les fonctions de test, assurez-vous que des états dangereux ne risquent pas de se produire !

Conditions requises pour le test

• Le programme a été compilé avec les options "Générer code objet" et "Générer infos débogage" que vous pouvez cocher dans l'onglet "Compilateur" de la boîte de dialogue "Paramètres" (commande Outils > Paramètres).

• Des données de référence actuelles sont disponibles. Les données de référence sont générées automatiquement lors de la compilation si l'option "Générer infos débogage" est activée.

• Il existe une liaison en ligne entre PG/PC et CPU.

• Le programme a été chargé dans la CPU. Ceci peut être réalisé avec la commande de menu Système cible > Charger.

Page 86: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-30 A5E00324651-01

4.10.2 Informations sur la fonction de test "Visualiser"

La visualisation continue d'un programme permet de tester un groupe d'instructions qu'on appelle zone de visualisation. Au cours du test, les valeurs des variables et des paramètres de cette zone s'affichent par ordre chronologique et sont actualisées. Si la zone de visualisation se trouve dans une partie du programme qui est parcourue à chaque cycle, il n'est généralement pas possible de saisir les valeurs des variables dans des cycles consécutifs.

Vous pouvez distinguer par la couleur les valeurs qui ont changé lors du passage actuel et celles qui n'ont pas changé.

Zone de visualisation

Le volume d'instructions à visualiser est limité par les performances de la CPU connectée. Les instructions S7-SCL du code source étant représentées par un nombre différent d'instructions en code machine, la longueur de la zone de visualisation est variable ; le débogueur S7-SCL la détermine et l'affiche lorsque vous sélectionnez la première instruction de la zone qui vous intéresse.

Vous avez en outre la possibilité de définir une zone de visualisation précise. Sélectionnez à cet effet les instructions à visualiser dans la source.

Modes de test

L'interrogation des informations de test provoque le plus souvent un allongement des temps de cycle. S7-SCL propose deux modes différents qui permettent d'influencer cet allongement.

Mode de test Explication

Test En mode test, la zone de visualisation n'est limitée que par les performances de la CPU connectée. Toutes les fonctions de test sont utilisables sans restriction. Le temps de cycle de la CPU peut s'en trouver considérablement allongé, étant donné que l'état des instructions dans les boucles programmées, par exemple, est déterminé pour chaque passage.

Processus En mode processus, le débogueur de S7-SCL limite la zone de visualisation maximale de façon que les temps de cycle réalisés au cours du test ne dépassent pas ou très peu les temps d'exécution réels du processus.

Restrictions

Avec la fonction "Visualiser", vous devez tenir compte des restrictions suivantes.

• Il n'est pas possible d'afficher dans leur entier les variables de type de données complexe. Mais il est possible de visualiser les éléments de telles variables s'ils sont d'un type de données simple.

• Les variables de type DATE_AND_TIME et STRING ainsi que les paramètres de type BLOCK_FB, BLOCK_FC, BLOCK_DB, BLOCK_SDB, TIMER et COUNTER ne s'affichent pas.

• Les accès à des blocs de données qui ont la forme < mnémonique >.< adresse absolue > ne s'affichent pas (ex. : donnees.DW4).

Page 87: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-31

4.10.3 Informations sur le test avec points d'arrêt / en pas à pas

Le test avec points d'arrêt est effectué en pas à pas. Vous pouvez exécuter l'algorithme du programme instruction par instruction et observer le changement des valeurs des variables traitées.

Après avoir défini des points d'arrêt, vous pouvez d'abord exécuter le programme jusqu'à un point d'arrêt, puis commencer à partir de là la visualisation pas à pas.

Fonctions de pas à pas

Lorsque le test "Avec points d'arrêt" est démarré, vous pouvez utiliser les fonctions suivantes :

• Instruction suivante Exécution de l'instruction sélectionnée.

• Poursuivre Poursuite jusqu'au prochain point d'arrêt activé.

• Jusqu'à la sélection Poursuite jusqu'à une marque que vous définissez dans le texte source.

• Exécuter l'appel Saut dans un bloc S7-SCL de niveau inférieur ou appel d'un bloc de niveau inférieur.

Points d'arrêt

Vous pouvez définir des points d'arrêt à n'importe quel endroit de la section des instructions du texte source.

Ils ne sont transférés dans le système d'automatisation et activés que lorsque vous choisissez la commande Test > Activer les points d'arrêt. Le programme est alors exécuté jusqu'à ce que la CPU atteigne le premier point d'arrêt.

Le nombre maximal de points d'arrêt activés dépend de la CPU.

Condition requise

La source ouverte ne doit pas avoir été modifiée dans l'éditeur.

Page 88: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-32 A5E00324651-01

4.10.4 Marche à suivre pour la visualisation

4.10.4.1 Marche à suivre pour la visualisation

Une fois que vous avez chargé le programme compilé dans le système cible, vous pouvez le tester avec la fonction "Visualiser".

Nota

La quantité d'instructions à tester (zone de visualisation la plus grande possible) dépend de la performance de la CPU connectée.

Procédez de la manière suivante :

1. Assurez-vous que les conditions requises pour le test sont bien remplies et que la CPU est à l'état de fonctionnement RUN ou RUN-P.

2. Sélectionnez la fenêtre contenant la source du programme à tester.

3. Si vous ne voulez pas rester dans le mode de test par défaut (Processus), choisissez la commande Test > Mode > Test.

4. Définissez la zone de visualisation. Pour cela, vous avez deux possibilités :

- Positionnez le curseur dans la ligne du texte source qui contient la première instruction de la zone à tester. S7-SCL sélectionne alors la zone de visualisation la plus grande possible à partir de la position du curseur.

- Dans le texte source, sélectionnez exactement les instructions que vous souhaitez visualiser.

5. Assurez-vous qu'aucun état dangereux ne risquent de se produire.

6. Choisissez la commande Test > Visualiser.

7. Désactivez la commande Test > Visualiser pour interrompre le test.

8. Choisissez la commande Test > Mettre fin au test pour mettre fin à ce dernier.

Résultat

La zone de visualisation est déterminée et indiquée par une barre grise sur le côté gauche de la fenêtre. La fenêtre se fractionne et le volet droit affiche les noms et les valeurs en cours des variables se trouvant dans la zone de visualisation.

Adaptation de la fonction de visualisation

Vous avez les possibilités suivantes pour adapter la fonction de visualisation à vos exigences :

• Définissez un environnement d’appel pour le bloc à visualiser.

• Choisissez la commande de menu Affichage > Représentation symbolique pour activer ou désactiver l'affichage des noms symboliques dans le programme.

• Choisissez la commande de menu Outils > Paramètres, puis l'onglet "Format" pour effectuer les paramétrages souhaités concernant la couleur des valeurs à afficher.

Page 89: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-33

4.10.4.2 Définition d'un environnement d'appel des blocs

Environnement d'appel

Afin de définir l'environnement d'appel de manière encore plus précise, vous avez la possibilité de définir un environnement d'appel des blocs à visualiser. Vous spécifiez ainsi qu'un bloc est uniquement visualisé dans l'une des conditions suivantes :

Condition Possibilité de sélection

Le bloc est appelé par un certain bloc de niveau supérieur. Chemin d'appel

Le bloc est appelé avec un certain bloc de données. Bloc de données global

et / ou

bloc de données d'instance

Pour définir un chemin d'appel, procédez de la manière suivante :

1. Choisissez la commande de menu Test > Environnement d'appel des blocs.

La boîte de dialogue suivante affiche une liste des blocs existants.

2. Sélectionnez un bloc dans la liste.

3. Activez l'option "Activer le chemin d'appel".

4. Les chemins d'appel possibles sont alors représentés graphiquement dans la partie inférieure de la fenêtre.

5. Sélectionnez le chemin d'appel souhaité.

Pour définir un bloc de données, procédez de la manière suivante :

1. Choisissez la commande de menu Test > Environnement d'appel des blocs.

La boîte de dialogue suivante affiche une liste des blocs existants.

2. Sélectionnez un bloc dans la liste.

3. Activez l'option "Blocs de données ouverts".

4. Entrez le numéro du DB souhaité.

Nota

Lorsque vous avez défini un environnement d’appel, procédez comme suit pour démarrer la visualisation :

1. Positionnez le curseur sur le bloc à visualiser pour lequel vous avez défini l’environnement d’appel.

2. Sélectionnez la commande de menu Test > Visualiser.

La fonction de visualisation est lancée. Le bloc est visualisé si toutes les conditions d’appel que vous avez définies sont remplies.

Page 90: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-34 A5E00324651-01

4.10.5 Marche à suivre pour le test avec points d'arrêt

4.10.5.1 Définir des points d'arrêt

Procédez de la manière suivante pour définir des points d'arrêt.

1. Ouvrez la source à tester.

2. Affichez la barre de points d'arrêt au moyen de la commande Affichage > Barre de points d'arrêt.

3. Positionnez le curseur à l'endroit qui vous convient et choisissez la commande Test > Définir un point d'arrêt ou cliquez sur l'icône correspondante de la barre de points d'arrêt. Les points d'arrêt sont représentés par un cercle rouge au bord gauche de la fenêtre.

4. La commande Test > Editer les points d'arrêt permet de définir un contexte d'appel en fonction duquel le point d'arrêt sera activé.

- si le bloc dans lequel il se trouve est appelé par un bloc de niveau supérieur donné et (ou)

- s'il est appelé avec un bloc de données/bloc de données d'instance défini.

4.10.5.2 Mettre fin au test avec points d'arrêt

Pour revenir au déroulement normal du programme, procédez de la manière suivante :

• Désactivez la commande Test > Activer les points d'arrêt pour interrompre le test ou

• Choisissez la commande Test > Mettre fin au test pour y mettre fin.

4.10.5.3 Activer, désactiver et effacer des points d'arrêt

Vous pouvez activer, désactiver et effacer un par un les points d'arrêt définis.

1. Choisissez la commande Test > Editer les points d'arrêt.

2. La boîte de dialogue qui s'ouvre vous permet

- d'activer ou de désactiver des points d'arrêt particuliers en les cochant ou en retirant la coche,

- d'effacer des points d'arrêt particuliers.

Pour effacer tous les points d'arrêt, choisissez la commande Test > Supprimer tous les points d'arrêt.

Page 91: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-35

4.10.5.4 Définition d'un environnement d'appel des points d'arrêt

Environnement d'appel

En définissant un environnement d'appel, vous spécifiez qu'un point d'arrêt est uniquement valable dans l'une des conditions suivantes :

Condition Possibilité de sélection

Le bloc dans lequel se trouve le point d'arrêt est appelé par un certain bloc de niveau supérieur.

Chemin d'appel

Le bloc dans lequel se trouve le point d'arrêt est appelé avec un certain bloc de données.

Bloc de données global

et / ou

bloc de données d'instance

Pour définir un chemin d'appel, procédez de la manière suivante :

1. Choisissez la commande de menu Test > Editer les points d'arrêt.

La boîte de dialogue suivante affiche une liste des points d'arrêt existants.

2. Sélectionnez un point d'arrêt dans la liste.

3. Activez l'option "Activer le chemin d'appel".

Les chemins d'appel possibles sont alors représentés graphiquement dans la partie inférieure de la fenêtre.

4. Sélectionnez le chemin d'appel souhaité.

Pour définir un bloc de données, procédez de la manière suivante :

1. Choisissez la commande de menu Test > Editer les points d'arrêt.

La boîte de dialogue suivante affiche une liste des points d'arrêt existants.

2. Sélectionnez un point d'arrêt dans la liste.

3. Activez l'option "Blocs de données ouverts".

4. Entrez le numéro du DB souhaité.

Page 92: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-36 A5E00324651-01

4.10.5.5 Test en pas à pas

Procédez de la manière suivante :

1. Définissez un point d'arrêt avant la ligne d'instruction à partir de laquelle vous voulez tester le programme en pas à pas.

2. Choisissez la commande Test > Activer les points d'arrêt.

3. Exécutez le programme jusqu'à ce point d'arrêt.

4. Pour exécuter l'instruction suivante, choisissez la commande Test > Instruction suivante.

- S'il s'agit d'un appel de bloc, il est alors traité et il est suivi d'un saut à la première instruction lui succédant.

- La commande Test > Exécuter l'appel permet de sauter dans le bloc. Vous pouvez alors y poursuivre le test en pas à pas ou définir des points d'arrêt. A la fin du bloc, le programme saute à l'instruction suivant l'appel de bloc.

4.10.6 Utilisation des fonctions de test de STEP 7

4.10.6.1 Générer et afficher les données de référence

Vous pouvez générer des données de référence et les évaluer pour faciliter le test et la modification de votre programme utilisateur.

Il est possible d'afficher les données de référence suivantes :

• La structure du programme utilisateur

• La liste des références croisées

• Le tableau d'affectation

• La liste des opérandes libres

• La liste des mnémoniques manquants

Génération des données de référence

Il y a plusieurs manières de générer les données.

• Avec la commande Outils > Données de référence > Afficher, vous les générez ou les actualisez et les affichez.

• L'utilisation de filtres permet de limiter la quantité de données à afficher et permet ainsi d'accélérer la génération et l'affichage de celles-ci. Choisissez pour cela la commande Outils > Données de référence > Filtrer.

• Si vous cochez l'option "Génération des données de référence" dans l'onglet "Création du bloc" (commande Outils > Paramètres) les données de référence seront générées automatiquement lors de la compilation d'une source. Sachez toutefois que la génération automatique des données de référence allonge la durée de la compilation.

Page 93: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-37

4.10.6.2 Vérification de la cohérence des blocs

Nota

Cette fonction est disponible à partir de STEP 7 V5.3 SP2.

Lorsque vous modifiez une source S7-SCL, vous devez, le cas échéant, également adapter les blocs qui y sont référencés. Sinon, des incohérences risquent de se produire dans le programme. Ces dernières risquent également de survenir lorsque les horodatages des sources et des blocs ne correspondent pas.

Grâce à la fonction "Vérifier la cohérence des blocs" de STEP 7, vous pouvez détecter de telles incohérences et corriger plus rapidement les erreurs.

Après avoir effectué des modifications dans le programme, lancez une vérification de cohérence de toutes les sources S7-SCL dans le projet. S'il existe des incohérences ne pouvant pas être corrigées automatiquement, la fonction saute aux positions à modifier dans la source. Vous y effectuez les modifications requises. Vous corrigez ainsi toutes les incohérences, les unes après les autres.

Conditions

• STEP 7 V5.3 SP2 ou une version supérieure est installé sur votre appareil.

• Une source concernée par la fonction "Vérifier la cohérence des blocs" doit avoir été compilée une fois avec S7-SCL V5.3 SP1 ou une version supérieure.

• S7-SCL doit être installé sur l'appareil sur lequel vous réalisez la vérification de cohérence.

Procédez de la manière suivante

1. Ouvrez SIMATIC Manager.

2. Sélectionnez le dossier "Blocs".

3. Choisissez la commande de menu Edition > Vérifier la cohérence des blocs.

4. Choisissez la commande de menu Affichage > Afficher les références source S7-SCL.

Résultat

STEP 7 vérifie les horodatages et interfaces de tous les blocs et de toutes les sources correspondantes dans le dossier actuel et signale les conflits suivants :

• conflits d'horodatage entre sources S7-SCL et blocs,

• références entre différents blocs et conflits d'interface qui en résultent.

Lorsqu'une incohérence est détectée, une nouvelle compilation de la source correspondante est lancée. Si la source contient plusieurs sources de blocs, tous les blocs résultant de cette source sont de nouveau générés. Lors de la compilation, les options actuelles paramétrées sont valables.

Page 94: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-38 A5E00324651-01

Nota

Vous trouverez de plus amples informations sur cette fonction dans l'aide de STEP 7.

4.11 Afficher et modifier les propriétés de la CPU

4.11.1 Afficher et modifier l'état de fonctionnement de la CPU

Vous pouvez interroger l'état de fonctionnement actuel d'une CPU et le modifier, à condition qu'une liaison existe à cette CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat de fonctionnement.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'un des états suivants :

- Démarrage à chaud

- Démarrage à froid

- Redémarrage

- Arrêt

! Attention

Modifier l'état de fonctionnement d'une installation en marche peut causer des lésions corporelles graves ou un dommage matériel important en cas de mauvais fonctionnement ou d'erreurs de programmation.

Avant d'utiliser cette fonction, assurez-vous que des situations dangereuses ne risquent pas de se produire !

4.11.2 Afficher et régler la date et l'heure de la CPU

Vous pouvez interroger l'heure momentanée d'une CPU et la modifier, à condition qu'une liaison existe à cette CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Mettre à l'heure.

2. Dans la boîte de dialogue qui s'affiche, tapez la date et l'heure pour l'horloge temps réel de la CPU.

Si la CPU n'est pas équipée d'une horloge temps réel, le dialogue indique "00:00:00" pour l'heure et "00.00.00" pour la date. Dans ce cas, vous ne pouvez rien changer.

Page 95: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-39

4.11.3 Afficher les données de la CPU

Vous pouvez obtenir les informations suivantes sur une CPU :

• Famille du système, type de CPU, numéro de référence et version de la CPU ;

• Taille de la mémoire de travail et de la mémoire de chargement et taille maximale possible de la mémoire de chargement ;

• Nombre et plage d'adresse des entrées, sorties, temporisations, compteurs et mémentos ;

• Nombre de données locales avec lesquelles la CPU peut travailler ;

• Indication si la CPU peut être employée en mode multiprocesseur.

Pour cela, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Général".

4.11.4 Lire la mémoire de diagnostic de la CPU

En lisant la mémoire tampon de diagnostic, vous pouvez déterminer la cause de l'état de fonctionnement ARRET ou remonter à l'origine de certains événements de diagnostic.

Pour cela, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Mémoire tampon de diagnostic".

4.11.5 Afficher/comprimer la mémoire utilisateur de la CPU

Cette fonction vous permet de vous renseigner sur l'utilisation de la mémoire de la CPU et de réorganiser la mémoire au besoin. Ceci devient nécessaire lorsque la taille de la plus grande zone de mémoire libre continue ne suffit plus à charger un nouvel objet de la PG dans la CPU.

Pour cela, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Mémoire".

Page 96: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-40 A5E00324651-01

4.11.6 Afficher le temps de cycle de la CPU

Les temps suivants sont représentés, dans le cadre des deux valeurs limites paramétrées :

• Durée du cycle le plus long depuis le dernier passage d'ARRET à MARCHE

• Durée du cycle le plus court depuis le dernier passage d'ARRET à MARCHE

• Durée du dernier cycle

Quand la durée du dernier cycle se rapproche du temps de surveillance, il est possible que celui-ci soit dépassé et que la CPU passe à l'état de fonctionnement ARRET. Le temps de cycle peut se prolonger lorsque vous testez des blocs dans la visualisation d'état du programme, par exemple. Pour que les temps de cycle de votre programme soient affichés, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Temps de cycle".

4.11.7 Afficher l'horodatage de la CPU

L'horodatage de l'unité centrale (CPU) comprend des informations sur l'horloge interne et sur la synchronisation entre plusieurs CPU.

Pour cela, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Horodatage".

4.11.8 Afficher les blocs dans la CPU

Vous pouvez demander l'affichage des blocs disponibles en ligne pour la CPU.

Pour cela, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Performances/Blocs".

Page 97: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 4-41

4.11.9 Affichage des informations sur la communication de la CPU

Pour chaque CPU en ligne, vous pouvez demander l'affichage des informations concernant les vitesses de transmission choisies et maximales, les liaisons et la charge de communication.

Pour cela, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Communication".

4.11.10 Affichage des piles de la CPU

Cet onglet vous permet d'afficher, pour chaque unité centrale (CPU) en ligne, les informations concernant le contenu des piles. Pour cela, la CPU doit se trouver à l'état de fonctionnement ARRET ou avoir atteint un point d'arrêt.

Afficher les piles est très utile pour trouver les erreurs, par exemple lorsque vous testez vos blocs. Si la CPU est passée à l'état d'arrêt, vous pouvez afficher, dans la pile des interruptions, le point d'interruption avec les indications et les contenus d'accumulateurs qui y sont actuels, afin d'en découvrir la cause (une erreur de programmation, par exemple).

Pour cela, il faut qu'une liaison existe à la CPU.

Procédez de la manière suivante :

1. Choisissez la commande Système cible > Etat du module.

2. Dans la boîte de dialogue qui s'ouvre, sélectionnez l'onglet "Piles".

Page 98: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Utilisation de S7-SCL

S7-SCL V5.3 pour S7-300/400 4-42 A5E00324651-01

Page 99: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-1

5 Notions fondamentales dans S7-SCL

5.1 Interprétation des diagrammes syntaxiques

La description du langage faite dans les différents chapitres se base sur des diagrammes syntaxiques. Ils vous montrent bien la structure syntaxique de S7-SCL. Ils sont regroupés au complet avec les éléments de langage correspondants dans le chapitre "Description du langage".

Qu'entend-on par diagramme syntaxique ?

Il s'agit d'une représentation graphique de la structure du langage. Cette structure est décrite par une suite de règles, pouvant elles-mêmes se fonder sur des règles déjà énoncées.

Bloc 1 Bloc 2 Bloc 4

Bloc 3

Bloc 5

Nom de la règle

ItérationAlternative

Séquence

Option

Le diagramme syntaxique se lit de gauche à droite. Il peut comporter :

• Séquence : suite de blocs

• Option : branche facultative

• Itération : répétition de branches

• Alternative : aiguillage.

Page 100: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-2 A5E00324651-01

Quelles sont les différentes sortes de blocs ?

Un bloc est un élément de base ou un élément composé lui-même de blocs. La figure suivante montre la représentation des différentes sortes de blocs :

Elément composé qui est décrit par d'autres diagrammes syntaxiques.

Elément de base qui ne nécessite pas de description supplémentaire. Il s'agit de caractères imprimables et de caractères spéciaux, de mots-clés et d'identificateurs prédéfinis.Les données relatives à ces blocs doivent être reprises telles quelles.

Qu'entend-on par liberté de format ?

Lorsque vous saisissez un texte source, vous devez tenir compte tant des règles syntaxiques que des règles lexicales.

Ces deux types de règles sont décrits dans le chapitre "Description du langage". Liberté de format signifie qu'il est permis d'insérer entre les blocs fournis par les règles des caractères de mise en forme tels qu'espaces, tabulations et changements de page ainsi que des commentaires.

Les règles lexicales ne vous laissent pas de liberté de format. Lorsque vous utilisez une règle lexicale, vous devez reprendre les données telles quelles.

Règle lexicale

Caractère de

_ _

Chiffre

Lettre

Chiffre

Lettre Lettre

Caractère desoulignement soulignement

Exemples dans lesquels la règle représentée est correctement appliquée : R_REGULATEUR3 _A_TABLEAU _100_3_3_10 Exemples incorrects pour les raisons nommées ci-dessus : 1_1AB RR__20 *#AB

Page 101: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-3

Règle syntaxique

Les règles syntaxiques vous laissent la liberté de format.

:= ;ConstanteVariable simple

Exemples dans lesquels la règle représentée est correctement appliquée : VARIABLE_1 := 100; COMMUTATEUR:=FALSE; VARIABLE_2 := 3.2;

Page 102: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-4 A5E00324651-01

5.2 Jeu de caractères

Lettres et chiffres

Dans le jeu de caractères ASCII, S7-SCL utilise :

• Les lettres (majuscules et minuscules) de A à Z

• Les chiffres arabes 0 à 9

• Le caractère d'espacement (valeur ASCII 32) et tous les caractères de commande (ASCII 0- 31), y compris le caractère de fin de ligne (ASCII 13)

Autres caractères

Les caractères suivants ont une signification bien précise dans S7-SCL :

+ - * / = < > [ ] ( )

: ; $ # " ' { } % . ,

Nota

Le chapitre "Description du langage" offre une liste détaillée de tous les caractères utilisables en précisant comment ils sont interprétés dans S7-SCL.

Page 103: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-5

5.3 Mots réservés

Il s'agit de mots-clés dont l'usage est prédéfini. La distinction entre les majuscules et les minuscules n'est pas faite.

Mots-clés dans S7-SCL

AND END_CASE ORGANIZATION_BLOCK

ANY END_CONST POINTER

ARRAY END_DATA_BLOCK PROGRAM

AT END_FOR REAL

BEGIN END_FUNCTION REPEAT

BLOCK_DB END_FUNCTION_BLOCK RETURN

BLOCK_FB END_IF S5TIME

BLOCK_FC END_LABEL STRING

BLOCK_SDB END_TYPE STRUCT

BLOCK_SFB END_ORGANIZATION_BLOCK THEN

BLOCK_SFC END_REPEAT TIME

BOOL END_STRUCT TIMER

BY END_VAR TIME_OF_DAY

BYTE END_WHILE TO

CASE ENO TOD

CHAR EXIT TRUE

CONST FALSE TYPE

CONTINUE FOR VAR

COUNTER FUNCTION VAR_TEMP

DATA_BLOCK FUNCTION_BLOCK UNTIL

DATE GOTO VAR_INPUT

DATE_AND_TIME IF VAR_IN_OUT

DINT INT VAR_OUTPUT

DIV LABEL VOID

DO MOD WHILE

DT NIL WORD

DWORD NOT XOR

ELSE OF Noms des fonctions standard

ELSIF OK

EN OR

Page 104: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-6 A5E00324651-01

5.4 Identificateur

Définition

Un identificateur est un nom que vous pouvez attribuer à un objet du langage S7-SCL, à savoir à une constante, à une variable ou à un bloc.

Règles

Il peut s'agit d'une combinaison quelconque de 24 lettres (non accentuées) et chiffres au maximum, le premier caractère devant être une lettre ou le caractère de soulignement. Vous pouvez employer aussi bien des majuscules que des minuscules, sachant qu'aucune distinction n'est faite entre elles (par exemple, AnNa et AnnA sont équivalents).

Caractère de

_ _

Chiffre

Lettre

Chiffre

Lettre Lettre

Caractère desoulignement soulignement

Exemples

Voici des exemples d'identificateurs autorisés :

X y12

Somme Température

Noms Surface

Régulateur Tableau

Voici des identificateurs interdits pour les raisons indiquées :

4ème //Le premier caractère doit être une lettre ou //le caractère de soulignement.

Array //ARRAY est un mot-clé.

S Valeur //Les espaces ne sont pas autorisés //(n'oubliez pas qu'un espace est un caractère).

Nota • Assurez-vous que le nom n'a pas encore été attribué à un mot-clé ou à un identificateur standard.

• Nous vous recommandons de choisir des noms univoques et évocateurs qui contribuent à l'intelligibilité du texte source.

Page 105: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-7

5.5 Identificateur standard

S7-SCL propose une série d'identificateurs prédéfinis. Il s'agit des identificateurs standard suivants :

• Les désignations de bloc ;

• Les identificateurs d'opérande permettant d'adresser les zones de mémoire de la CPU ;

• Les désignations de temporisation et

• Les désignations de compteur.

5.6 Désignation de bloc

Définition

Ces identificateurs standard sont utilisés pour l'adressage absolu de blocs.

Règles

Le tableau suivant donne la liste des mots-clés de bloc classés d'après les abréviations allemandes, avec les abréviations anglaises correspondantes. La lettre x correspond à un nombre compris entre 0 et 65533 (ou entre 0 et 65535 pour les compteurs et temporisations).

Abréviations allemandes

Abréviations anglaises

Pour désigner

DBx DBx Bloc de données (Data Block). La désignation de bloc DB0 est réservée à S7-SCL.

FBx FBx Bloc fonctionnel (Function Block)

FCx FCx Fonction (Function)

Obx OBx Bloc d'organisation (Organization Block)

SDBx SDBx Bloc de données système (System Data Block)

SFCx SFCx Fonction système (System Function)

SFBx SFBx Bloc fonctionnel système (System Function-Block)

Tx Tx Temporisation (Timer)

UDTx UDTx Type de données global ou utilisateur (User defined Data Type)

Zx Cx Compteur (Counter)

Page 106: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-8 A5E00324651-01

Il y a plusieurs manières de désigner un bloc dans S7-SCL. Le numéro du bloc peut être un nombre décimal entier.

DB, FB, FC, OB, UDT

IDENTIFICATEUR

Mnémonique

NuméroMot-cléde bloc

Exemple Voici des désignations autorisées : FB10 DB100 T141

Page 107: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-9

5.7 Identificateur d'opérande

Définition

Un identificateur d'opérande permet d'adresser une zone de mémoire de la CPU, à partir d'un endroit quelconque du programme.

Règles

Le tableau suivant donne la liste des identificateurs d'opérande classés d'après les abréviations allemandes, avec les abréviations anglaises correspondantes. Les identificateurs d'opérande pour blocs de données doivent être indiqués avec le bloc de données correspondant.

Abréviations allemandes

Abréviations anglaises

Pour adresser

Type de données

Ax.y Qx,y Sortie (par la mémoire image) Bit Abx QBx Sortie (par la mémoire image) Octet Adx QDx Sortie (par la mémoire image) Double mot Awx QWx Sortie (par la mémoire image) Mot AXx.y QXx.y Sortie (par la mémoire image) Bit Dx.y Dx.y Bloc de données Bit DBx DBx Bloc de données Octet DDx DDx Bloc de données Double mot DWx DWx Bloc de données Mot DXx.y DXx.y Bloc de données Bit Ex.y Ix.y Entrée (par la mémoire image) Bit Ebx IBx Entrée (par la mémoire image) Octet Edx IDx Entrée (par la mémoire image) Double mot Ewx IWx Entrée (par la mémoire image) Mot EXx.y IXx.y Entrée (par la mémoire image) Bit Mx.y Mx.y Mémento Bit MBx.y MBx.y Mémento Octet MDx MDx Mémento Double mot MWx.y MWx Mémento Mot MXx MXx Mémento Bit PABx PQBx Sortie (périphérie directe) Octet PADx PQDx Sortie (périphérie directe) Double mot PAWx PQWx Sortie (périphérie directe) Mot PEBx PIBx Entrée (périphérie directe) Octet PEDx PIDx Entrée (périphérie directe) Double mot PEWx PIWx Entrée (périphérie directe) Mot

x = nombre compris entre 0 et 65535 (adresse absolue)

Exemple

E1.0 MW10 PAW5 DB20.DW3

Page 108: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-10 A5E00324651-01

5.8 Désignation de temporisation

Règles

Il y a plusieurs manières de désigner une temporisation dans S7-SCL. Le numéro de la temporisation peut être un nombre décimal entier.

Numéro

IDENTIFICATEUR

Mnémonique

T

Abréviation allemande et anglaise

5.9 Désignation de compteur

Règles

Il y a plusieurs manières de désigner un compteur dans S7-SCL. Le numéro du compteur peut être un nombre décimal entier.

NuméroZ

IDENTIFICATEUR

Mnémonique

Abréviation allemande 'Z'Abréviation anglaise 'C'

Page 109: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-11

5.10 Nombres

Il y a plusieurs façons d'écrire un nombre dans S7-SCL. Les règles suivantes s'appliquent à tous les nombres.

• Il peut comporter un signe, une virgule décimale (représentée par un point dans S7-SCL) ou un exposant.

• Un nombre ne doit comporter ni virgule, ni caractère d'espacement.

• Le caractère de soulignement (_) peut être utilisé comme séparateur optique.

• Un nombre peut être précédé soit d'un plus (+), soit d'un moins(-). En l'absence de signe, le nombre est considéré comme étant positif.

• Un nombre doit être compris entre des valeurs minimales et maximales données.

Nombre entier

Un nombre entier ne comporte ni virgule décimale, ni exposant. Il s'agit simplement d'une simple suite de chiffres, pouvant être signée. Dans S7-SCL, il existe deux types d'entier avec des plages de valeurs différentes, INT et DINT.

Voici des nombres entiers autorisés :

0 1 +1 -1

743 -5280 600_00 -32_211

Les nombres suivants ne sont pas autorisés pour les raisons indiquées :

123,456 Les virgules sont interdites.

36. La virgule décimale (représentée par un point) est interdite dans un nombre entier.

10 20 30 Les espaces ne sont pas autorisés.

Dans S7-SCL, vous pouvez représenter un nombre entier dans différents systèmes de numération. Il faut alors le faire précéder d'un mot-clé désignant le système employé. 2# désigne le système binaire, 8# désigne le système octal et 16# désigne le système hexadécimal.

Voici le nombre décimal 15 correctement représenté dans d'autres systèmes de numération :

2#1111 8#17 16#F

Page 110: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-12 A5E00324651-01

Nombre réel

Un nombre réel doit comporter une virgule décimale ou un exposant (ou les deux). La virgule décimale doit figurer entre deux chiffres. Un nombre réel ne peut donc ni commencer, ni se terminer par une virgule décimale.

Voici des nombres réels autorisés :

0.0 1.0 -0.2 827.602

50000.0 -0.000743 12.3 -315.0066

Les nombres réels suivants ne sont pas corrects pour les raisons indiquées :

1. La virgule décimale (point) doit figurer entre deux chiffres.

1,000.0 Les virgules sont interdites.

.3333 La virgule décimale (point) doit figurer entre deux chiffres.

Un exposant sert à indiquer la position de la virgule décimale. En l'absence de cette dernière, on considère qu'elle se trouve à droite du chiffre. Quant à l'exposant, il doit s'agir d'un nombre entier positif ou négatif. La base 10 est représentée par la lettre E.

Dans S7-SCL, la grandeur 3 x 10 exposant 10 équivaut aux nombres réels suivants :

3.0E+10 3.0E10 3e+10 3E10

0.3E+11 0.3e11 30.0E+9 30e9

Les nombres réels suivants ne sont pas corrects pour les raisons indiquées :

3.E+10 La virgule décimale doit figurer entre deux chiffres.

8e2.3 L'exposant doit être un nombre entier.

.333e-3 La virgule décimale doit figurer entre deux chiffres.

30 E10 Les espaces ne sont pas autorisés.

Page 111: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-13

5.11 Chaîne de caractères

Définition

Une chaîne de caractères est une suite de caractères (lettres, chiffres et caractères spéciaux) placée entre apostrophes.

Voici des chaînes de caractères autorisées : 'ROUGE' '75 000 Paris' '270-32-3456' 'Fr19.95' 'Le résultat correct est :'

Règles Pour saisir un caractère de mise en forme spécial, une apostrophe ( ' ) ou le caractère $, faites-le précéder du caractère $.

Texte source Après compilation

'SIGNAL$'ROUGE$'' SIGNAL'ROUGE'

'50.0$$' 50.0$

'VALEUR$P' VALEUR nouvelle page

'REG-$L' REG-changement de ligne

'REGULATEUR$R REGULATEUR retour chariot

'ETAPE$T' ETAPE tabulation

Pour indiquer un caractère non imprimable, entrez sa représentation en code hexadécimal $hh, où hh correspond à la valeur hexadécimale du caractère ASCII.

Pour interrompre une chaîne de caractères (pour des commentaires qui ne doivent être ni imprimés, ni affichés), S7-SCL met à votre disposition les caractères $> et $< .

Page 112: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-14 A5E00324651-01

5.12 Mnémonique

Dans S7-SCL, vous pouvez indiquer un mnémonique selon la syntaxe suivante. Il n'est nécessaire de le placer entre guillemets que s'il n'est pas conforme à la règle IDENTIFICATEUR.

Syntaxe :

" "Caractèreimprimable

Page 113: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-15

5.13 Bloc de commentaire

Règles

• Commentaire pouvant s'étendre sur plusieurs lignes, introduit par "(*" et clos par "*)".

• L'imbrication de blocs de commentaire est autorisée par défaut. Mais vous pouvez modifier cette option et interdire l'imbrication de blocs de commentaire.

• Un commentaire ne doit interrompre ni un mnémonique, ni une constante. L'interruption de chaînes de caractère est cependant permise.

Syntaxe

Le bloc de commentaire est représenté par le diagramme syntaxique suivant :

Bloc de commentaire

(* *)Caractère

Exemple (* Ceci est un exemple de bloc de commentaire pouvant s'étendre sur plusieurs lignes.*) COMMUTATEUR := 3 ; END_FUNCTION_BLOCK

Page 114: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-16 A5E00324651-01

5.14 Ligne de commentaire

Règles

• Une ligne de commentaire est introduite par "//" et s'étend jusqu'à la fin de la ligne.

• La longueur du commentaire est limitée à 254 caractères, y compris les caractères d'introduction //.

• Un commentaire ne doit interrompre ni un mnémonique, ni une constante. L'interruption des chaînes de caractère est cependant permise.

Syntaxe

La ligne de commentaire est représentée par le diagramme syntaxique suivant :

Ligne de commentaire

// CRCaractèreimprimable

Retour chariot (carriage return)

Exemple VAR COMMUTATEUR : INT ; // Ligne de commentaire END_VAR

Nota • Les commentaires commençant par // dans la section de déclaration sont adoptés dans l'interface

du bloc et peuvent donc s'afficher également dans l'éditeur CONT/LOG/LIST.

• La liste des caractères imprimables est donnée au chapitre "Description du langage".

• Dans une ligne de commentaire, le couple de caractères "(*" et "*)" n'a pas de signification.

Page 115: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 5-17

5.15 Variables

On appelle variable un identificateur dont la valeur peut être modifiée durant l'exécution du programme. Toute variable doit être déclarée individuellement avant de pouvoir être utilisée dans un bloc de code ou de données. La déclaration de la variable permet de définir un identificateur comme variable (et non pas comme constante, etc.) et d'en spécifier le type en l'affectant au type de données.

On distingue les variables suivantes :

• Données locales ;

• Données utilisateur globales ;

• Variables prédéfinies autorisées (zones de mémoire d'une CPU).

Données locales

Il s'agit de données qui sont déclarées dans un bloc de code (FC, FB, OB) et qui ne sont valables que pour celui-ci.

Variables Signification

Variables statiques Une variable statique est une variable locale dont la valeur reste inchangée durant toutes les exécutions du bloc (mémoire du bloc). Elle sert à enregistrer les valeurs d'un bloc fonctionnel.

Variables temporaires Une variable temporaire appartient localement à un bloc de code et n'occupe aucune zone de mémoire statique. Sa valeur n'est conservée que durant une exécution du bloc. Il n'est pas possible d'accéder aux variables temporaires en dehors du bloc dans lequel elles ont été déclarées.

Paramètres de bloc Il s'agit d'un paramètre formel de bloc fonctionnel ou de fonction. C'est une variable locale qui sert à transmettre les paramètres effectifs indiqués à l'appel du bloc.

Données utilisateur globales

Les données utilisateur globales sont des données ou zones de données que vous pouvez utiliser à partir d'un endroit quelconque du programme. Vous devez pour cela créer des blocs de données (DB).

Lorsque vous créez un DB, vous définissez sa structure en la déclarant. Vous pouvez cependant également utiliser un type de données utilisateur (UDT) au lieu de déclarer la structure du DB. L'ordre dans lequel vous indiquez le composant de la structure détermine celui des données dans le DB.

Zones de mémoire d'une CPU

Vous pouvez adresser les zones de mémoire d'une CPU directement à partir d'un endroit quelconque du programme en utilisant des identificateurs d'opérandes qu'il est inutile de déclarer.

Vous avez en outre toujours la possibilité d'adresser ces zones de données de façon symbolique. Dans ce cas, vous leur affectez des mnémoniques dans STEP 7, avec une table des mnémoniques.

Page 116: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Notions fondamentales dans S7-SCL

S7-SCL V5.3 pour S7-300/400 5-18 A5E00324651-01

Page 117: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-1

6 Structure de programme S7-SCL

6.1 Blocs dans les sources S7-SCL

Dans une source S7-SCL, vous pouvez programmer de 1 à n blocs. De par leur fonction, leur structure ou leur emploi prévu, les blocs STEP 7 sont des parties limitées d'un programme utilisateur.

Types de bloc

Les blocs suivants sont disponibles :

Blocs STEP 7

OB FC FB DB UDT

Blocs préprogrammés

Vous ne devez pas programmer vous-même chaque fonction. Vous pouvez aussi avoir recours à des blocs préprogrammés. Ils se trouvent dans le système d'exploitation de l'unité centrale ou dans des bibliothèques (S7lib) du logiciel de base STEP 7. Vous pouvez les utiliser pour programmer des fonctions de communication, par exemple.

Page 118: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-2 A5E00324651-01

6.2 Ordre des blocs

La règle fondamentale est la suivante :

Un bloc appelé doit précéder le bloc appelant.

Ce qui signifie en détail :

• Un type de données utilisateur (UDT) doit précéder les blocs dans lesquels il est utilisé.

• Un bloc de données avec un type de données utilisateur associé suit cet UDT.

• Un bloc de données auquel tout bloc de code peut accéder précède les blocs dans lesquels il est appelé.

• Un bloc de données avec un bloc fonctionnel associé suit ce bloc fonctionnel.

• Le bloc d'organisation OB1 qui appelle d'autres blocs doit être placé en dernier. Les blocs appelés par ceux qui sont appelés dans l'OB1 doivent précéder ces derniers.

• Les blocs que vous appelez dans un fichier source sans pour autant les programmer dans ce même fichier source doivent se trouver déjà dans le programme utilisateur concerné au moment de la compilation du fichier.

• Outre des blocs, les sources S7-SCL peuvent également contenir des indications sur les paramètres du compilateur avec lesquels les différents blocs doivent être compilés. Les options de compilation se trouvent en dehors des limites des blocs.

DB d'instance du FB 3

UDT

DB

DB avec UDT

FB 3

FC 5

OB 1

appelle

affecté

appelle

appelle

appelle

Ord

re d

ans

le fi

chie

r so

urce

affecté

Page 119: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-3

6.3 Composition générale d'un bloc

Un bloc se compose des zones suivantes :

• L'en-tête du bloc, caractérisé par un mot-clé et un numéro de bloc ou un nom de bloc, comme par exemple "ORGANISATION_BLOCK OB1", dans le cas d'un bloc d'organisation. S'il s'agit d'une fonction, le type de fonction est également précisé ; il détermine le type de données de la valeur de retour ; si aucune valeur de retour n'est attendue, vous devez indiquer le mot-clé VOID.

• Un titre de bloc facultatif introduit par le mot-clé "TITLE =".

• Un commentaire de bloc facultatif ; il peut s'étendre sur plusieurs lignes, chacune d'elles commençant par "//".

• La mention des attributs de bloc (facultative).

• La mention des attributs système pour bloc (facultative).

• La section de déclaration (différente selon le type de bloc).

• La section des instructions dans les blocs de code ou l'affectation de valeurs effectives dans les blocs de données (facultative).

• Dans les blocs de code : des instructions.

• La fin du bloc, caractérisée par END_ORGANIZATION_BLOCK, END_FUNCTION_BLOCK ou END_FUNCTION.

6.4 Début et fin de bloc

Le texte source pour un bloc particulier est introduit, en fonction du type de bloc, par un identificateur standard de début de bloc et par la désignation de bloc. Il est clôturé par un identificateur standard de fin de bloc.

Le tableau suivant indique la syntaxe propre à chaque type de bloc :

Désignation Type de bloc Syntaxe

Bloc fonctionnel FB FUNCTION_BLOCK nom_fb . . . END_FUNCTION_BLOCK

Fonction FC FUNCTION nom_fc : type de fonction . . . END_FUNCTION

Bloc d'organisation OB ORGANIZATION_BLOCK nom_ob . . . END_ORGANIZATION_BLOCK

Bloc de données DB DATA_BLOCK nom_db . . . END_DATA_BLOCK

Type de données global (ou utilisateur)

UDT TYPE nom_udt . . . END_TYPE

Page 120: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-4 A5E00324651-01

Désignation de bloc

Dans le tableau , nom_xx représente la désignation de bloc conformément à la syntaxe suivante :

DB, FB, FC, OB, UDT

IDENTIFICATEUR

Mnémonique

NuméroMot-cléde bloc

Le numéro de bloc peut aller de 0 à 65533, mais l'identificateur de bloc DB0 est réservé.

N'oubliez pas que vous devez définir un identificateur ou un mnémonique dans la table des mnémoniques de STEP 7.

Exemples FUNCTION_BLOCK FB10 FUNCTION_BLOCK Bloc régulateur FUNCTION_BLOCK "Régulateur.B1&U2"

Page 121: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-5

6.5 Attributs de bloc

Définition

Un attribut de bloc est une propriété de bloc que vous pouvez par exemple utiliser pour indiquer le titre du bloc, la version, la protection du bloc ou encore l'auteur. Lorsque vous choisissez des blocs pour votre application, vous pouvez afficher leurs propriétés dans une fenêtre de STEP 7.

Vous pouvez donner les attributs suivants :

Mot-clé / attribut Signification Exemples

TITLE='caractère imprimable'

Titre du bloc TITLE='TRIER'

VERSION : 'suite de chiffres décimaux. suite de chiffres décimaux'

Numéro de version du bloc (0 à 15) Nota : pour les blocs de données (DB) l'attribut VERSION ne doit pas être placé entre apostrophes.

VERSION : '3.1'

//Pour les DB :

VERSION : 3.1

KNOW_HOW_PROTECT Protection du bloc ; un bloc compilé avec cette option ne peut pas être ouvert avec STEP 7.

KNOW_HOW_PROTECT

AUTHOR : Nom de l'auteur : nom de la société, du département ou autres noms (IDENTIFICATEUR et ‘caractères imprimables’)

AUTHOR : Siemens

AUTHOR : 'A&D AS'

NAME : Nom du bloc (IDENTIFICATEUR et ‘caractères imprimables’)

NAME : PID

NAME : 'A&D AS'

FAMILY : Nom de la famille du bloc : par exemple Moteurs ; enregistre le bloc dans un groupe de blocs, afin qu'il puisse être retrouvé plus facilement (IDENTIFICATEUR et ‘caractères imprimables’)).

FAMILY : Exemple

FAMILY : 'A&D AS'

Page 122: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-6 A5E00324651-01

Règles

• Vous déclarez les attributs de bloc à l'aide de mots-clés directement après l'instruction de début de bloc.

• Les identificateurs peuvent comporter au plus 8 caractères.

La saisie d'attributs de bloc doit respecter la syntaxe suivante :

Exemples FUNCTION_BLOCK FB10 TITLE = 'Moyenne' VERSION : '2.1' KNOW_HOW_PROTECT AUTHOR : AUT_1

Page 123: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-7

6.6 Commentaire de bloc

Les commentaires concernant l'ensemble du bloc sont à saisir dans l'en-tête à la suite de la ligne "TITLE:". Utilisez pour cela la notation de la ligne de commentaire. Si le commentaire s'étend sur plusieurs lignes, chacune d'elles commence par //.

Le commentaire de bloc s'affiche par exemple dans la fenêtre des propriétés du bloc dans SIMATIC Manager ou dans l'éditeur CONT/LOG/LIST.

Exemple FUNCTION_BLOCK FB15 TITLE=MON_BLOC //Ceci est un commentaire de bloc. //Il est saisi sous la forme d'une suite de lignes de commentaire //et peut être affiché dans SIMATIC Manager, par exemple. AUTHOR... FAMILY...

Page 124: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-8 A5E00324651-01

6.7 Attributs système pour bloc

Définition

Les attributs système sont en vigueur dans le système de conduite au-delà des limites d'une application particulière. Les attributs système pour bloc s'appliquent à l'ensemble d'un bloc.

Règles

• Vous déclarez les attributs système directement après l'instruction de début de bloc.

• La saisie doit respecter la syntaxe suivante :

Attributs système de blocs

{ }':=IDENTIFICATEUR

24 caractères au maximumcaractèreimprimable

'

;

Exemples

FUNCTION_BLOCK FB10 {S7_m_c := 'true' ; S7_blockview := 'big'}

Page 125: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-9

6.8 Section de déclaration

Définition

La section de déclaration sert à déclarer les variables locales, les paramètres, les constantes et les repères de saut.

• Définissez dans la section de déclaration du bloc de code les variables locales, les paramètres, les constantes et les repères de saut qui ne doivent être valables que dans un bloc.

• Définissez dans la section de déclaration de blocs de données les zones de données qui doivent être adressables par tout bloc de code.

• Dans la section de déclaration d'un UDT, vous définissez un type de données utilisateur.

Composition

Une section de déclaration se divise elle-même en plusieurs sections, respectivement caractérisées par un couple de mots-clés. Chacune d'entre elles contient une liste de déclaration pour des données de même type. L'ordre de ces sections est libre. Le tableau suivant énumère les sections de déclaration possibles :

Données Syntaxe FB FC OB DB UDT

Constantes CONST; Liste de déclaration END_CONST

X

X

X

Repères de saut LABEL; Liste de déclaration END_LABEL

X

X

X

Variable temporaire VAR_TEMP; Liste de déclaration END_VAR

X

X

X

Variable statique VAR; Liste de déclaration END_VAR

X

X *)

X **)

X **)

Paramètre d'entrée VAR_INPUT; Liste de déclaration END_VAR

X

X

Paramètre de sortie VAR_OUTPUT; Liste de déclaration END_VAR

X

X

Paramètre d'entrée/sortie

VAR_IN_OUT; Liste de déclaration END_VAR

X

X

*) La déclaration de variables entre le couple de mots-clés VAR et END_VAR est certes autorisée pour les fonctions, cependant les déclarations sont déplacées dans la zone temporaire lors de la compilation de la source.

**) Pour les DB et UDT, les mots-clés VAR et END_VAR sont remplacés par STRUCT et END_STRUCT.

Page 126: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-10 A5E00324651-01

6.9 Attributs système pour paramètre

Définition

Les attributs système sont en vigueur dans le système de conduite au-delà des limites d'une application particulière. Ils servent par exemple à la configuration de messages ou de liaisons. Les attributs système pour paramètre ne s'appliquent chaque fois qu'au seul paramètre configuré. Vous pouvez affecter des attributs système aux paramètres d'entrée, de sortie ou d'entrée/sortie.

Règles

• Vous affectez les attributs système pour paramètre dans les sections de déclaration des paramètres d'entrée, de sortie ou d'entrée/sortie.

• Un identificateur doit comporter au plus 24 caractères.

• La saisie doit respecter la syntaxe suivante :

Attributs système de paramètres

{ }':=IDENTIFICATEUR

24 caractères au maximumcaractèreimprimable

'

;

Exemple VAR_INPUT in1 {S7_server:='alarm_archiv'; S7_a_type:='ar_send'}: DWORD ; END_VAR

Vous pouvez appeler l'aide sur les attributs système depuis la documentation en ligne de S7-SCL. Choisissez pour cela la rubrique "Appel des aides de référence".

Page 127: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-11

6.10 Section des instructions

Définition

La section des instructions contient les instructions qui doivent être exécutées après l'appel d'un bloc de code. Elles servent à traiter des données ou des adresses.

La section des instructions d'un bloc de données contient des instructions pour donner une valeur par défaut à ses variables.

Règles

• La section des instructions peut être introduite facultativement par le mot-clé BEGIN. Dans les blocs de données, BEGIN est impérativement nécessaire. La section des instructions se termine par le mot-clé de fin de bloc.

• Chaque instruction se termine par un point-virgule.

• Tous les identificateurs employés dans la section des instructions doivent être au préalable déclarés.

• Chaque instruction peut être précédée facultativement de repères de saut.

La saisie doit respecter la syntaxe suivante :

Instruction

Repère de saut

:IDENTIFICATEUR ;

Section des instructions

Exemple

BEGIN VALEUR_DEBUT :=0; VALEUR_FIN :=200; . . ENREGISTRER: RESULTAT :=CONSIGNE; . . END_FUNCTION_BLOCK

Page 128: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-12 A5E00324651-01

6.11 Instructions

Définition

Une instruction est la plus petite unité autonome du programme utilisateur. Elle représente une tâche que doit exécuter le processeur.

S7-SCL connaît les types d'instruction suivants :

• Affectations de valeur permettant d'attribuer à une variable soit une valeur, soit le résultat d'une expression ou encore la valeur d'une autre variable ;

• Instructions de contrôle (de branchement) servant à répéter des instructions ou des groupes d'instructions ou à orienter la suite du déroulement d'un programme ;

• Exécutions de sous-programmes destinés à appeler des fonctions et des blocs fonctionnels.

Règles

La saisie doit respecter la syntaxe suivante :

Instruction

Affectation de valeur

Exécution desous-programme

Instruction de contrôle

Exemples

Les exemples suivants montrent les divers types d'instructions. // Exemple d'affectation de valeur VALEUR_MESURE:= 0 ; // Exemple d'exécution de sous-programme FB1.DB11 (TRANSFERT:= 10) ; // Exemple d'instruction de contrôle WHILE COMPTEUR < 10 DO.. . . END_WHILE;

Page 129: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-13

6.12 Composition d'un bloc fonctionnel (FB)

Définition

Un bloc fonctionnel (FB) est un bloc de code contenant une partie d'un programme et disposant d'une zone de mémoire qui lui est affectée. Chaque fois qu'un bloc fonctionnel est appelé, il faut lui associer un DB d'instance. Vous déterminez la composition de ce DB d'instance en définissant la section de déclaration du FB.

Syntaxe

Bloc fonctionnel

Section des instructionsBEGIN

DESIGNATIONDU FB

Section de dé- claration du FB

FUNCTION_BLOCK

PROGRAM

END_FUNCTION_BLOCK

END_PROGRAM

Désignation de FB

Indiquez comme désignation de FB à la suite du mot-clé FUNCTION_BLOCK ou PROGRAM le mot-clé FB suivi du numéro de bloc ou du nom symbolique du FB. Le numéro de bloc peut aller de 0 à 65533.

Exemples : FUNCTION_BLOCK FB10 FUNCTION_BLOCK MOTEUR1

Section de déclaration du FB

La section de déclaration du FB sert à déclarer les données spécifiques au bloc. Les sections de déclaration autorisées sont indiquées à la rubrique "Section de déclaration". N'oubliez pas que la section de déclaration détermine aussi la composition du DB d'instance associé au FB.

Page 130: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-14 A5E00324651-01

Exemple FUNCTION_BLOCK FB11 VAR_INPUT V1 : INT := 7 ; END_VAR VAR_OUTPUT V2 : REAL ; END_VAR VAR FX1, FX2, FY1, FY2 : REAL ; END_VAR BEGIN IF V1 = 7 THEN FX1 := 1.5 ; FX2 := 2.3 ; FY1 := 3.1 ; FY2 := 5.4 ; //Appel de la fonction FC11 avec affectation //de valeurs //aux paramètres par les variables statiques. V2 := FC11 (X1:= FX1, X2 := FX2, Y1 := FY1, Y2 := FY2) ; END_IF ; END_FUNCTION_BLOCK

Page 131: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-15

6.13 Composition d'une fonction (FC)

Définition

Une fonction (FC) est un bloc de code auquel aucune zone de mémoire n'est affectée en propre. Elle n'a pas besoin de DB d'instance. Contrairement à un FB, une fonction peut fournir un résultat (valeur de retour) au point d'appel. Elle peut être utilisée de ce fait comme une variable dans une expression. Les fonctions de type VOID ne fournissent pas de valeur de retour.

Syntaxe

Fonction

Section des instructionsBEGIN END_FUNCTION

Spécification dutype de données:

Section de décla-ration de la FC

FUNCTION

VOID

DESIGNATIONDE LA FC

Désignation de FC Indiquez comme désignation de FC à la suite du mot-clé "FUNCTION" le mot-clé FC suivi du numéro de bloc ou du nom symbolique de la FC. Le numéro de bloc peut aller de 0 à 65533.

Exemple : FUNCTION FC17 : REAL FUNCTION FC17 : VOID

Spécification du type de données

La spécification du type de données détermine le type de données de la valeur de retour. Tous les types de données sont autorisés, à l'exception de STRUCT et d'ARRAY. Cette indication est inutile lorsque vous renoncez à la valeur de retour en utilisant VOID.

Section de déclaration de la FC

La section de déclaration de la FC sert à déclarer les données locales (variables temporaires, paramètres d'entrée, de sortie, d'entrée/sortie, constantes, repères de saut).

Page 132: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-16 A5E00324651-01

Section des instructions de la FC

Dans la section des instructions, il faut associer le résultat de la fonction au nom de la fonction. Cette instruction est inutile pour les fonctions de type VOID. Voici un exemple d'instruction correcte pour la fonction FC31 : FC31:= VALEUR;

Exemple FUNCTION FC11: REAL VAR_INPUT x1: REAL ; x2: REAL ; x3: REAL ; x4: REAL ; END_VAR VAR_OUTPUT Q2: REAL ; END_VAR BEGIN // Retour de la valeur de la fonction FC11:= SQRT( (x2 - x1)**2 + (x4 - x3) **2 ) ; Q2:= x1 ; END_FUNCTION

Page 133: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-17

6.14 Composition d'un bloc d'organisation (OB)

Définition

Comme un FB ou une FC, un bloc d'organisation est une partie du programme utilisateur, que le système d'exploitation appelle cycliquement ou lors d'événements précis. Il constitue l'interface entre le programme utilisateur et le système d'exploitation.

Syntaxe

Bloc d'organisation

Section des instructions

DESIGNATIONDE L'OB

Section de déclaration de l'OBORGANIZATION_BLOCK

END_ORGANIZATION_BLOCKBEGIN

Désignation d'OB Indiquez comme désignation à la suite du mot-clé "ORGANIZATION_BLOCK" le mot-clé OB suivi du numéro de bloc ou du nom symbolique de l'OB. Le numéro de bloc peut aller de 1 à 65533.

Exemples : ORGANIZATION_BLOCK OB1 ORGANIZATION_BLOCK ALARM

Section de déclaration de l'OB

La section de déclaration de l'OB sert à déclarer les données locales (variables temporaires, constantes, repères de saut).

Chaque OB requiert en principe pour son exécution 20 octets de données locales pour le système d'exploitation. Pour cela, vous devez déclarer un tableau avec un identificateur quelconque. Si vous insérez le modèle de bloc pour OB, cette déclaration s'y trouve déjà.

Exemple ORGANIZATION_BLOCK OB1 VAR_TEMP EN_TETE : ARRAY [1..20] OF BYTE ; //20 octets pour le système d'exploitation END_VAR BEGIN FB17.DB10 (V1 := 7) ; END_ORGANIZATION_BLOCK

Page 134: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-18 A5E00324651-01

6.15 Composition d'un bloc de données (DB)

Définition

Les données globales spécifiques à l'utilisateur qui doivent être accessibles à tous les blocs d'un programme sont stockées dans des blocs de données. Chaque FB, FC ou OB peut lire ou écrire dans ces blocs de données.

Il y a deux types de blocs de données.

• Blocs de données Il s'agit de blocs de données auxquels tout bloc de code du programme CPU peut accéder. Tout bloc fonctionnel (FB), toute fonction (FC) ou tout bloc d'organisation (OB) a accès en lecture et en écriture aux données contenues dans ces blocs de données.

• Blocs de données d'instance Les blocs de données d'instance sont associés à un bloc fonctionnel (FB) précis. Ils contiennent les données locales pour ce bloc fonctionnel associé. Ils sont générés automatiquement par le compilateur S7-SCL dès que vous appelez le FB dans le programme utilisateur.

Syntaxe

Section d'affectation du DBBEGIN END_DATA_BLOCK

DATA_BLOCK Section de déclaration du DBDESIGNATION

DU DB

Bloc de données

Désignation de DB Indiquez comme désignation de DB à la suite du mot-clé "DATA_BLOCK" le mot-clé DB suivi du numéro de bloc ou du nom symbolique du DB. Le numéro de bloc peut aller de 1 à 65533.

Exemples : DATA_BLOCK DB20 DATA_BLOCK PLAGE_MESURE

Page 135: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-19

Section de déclaration du DB

Dans la section de déclaration du DB, vous définissez la structure des données du DB. Ceci peut être réalisé de deux manières différentes :

• En affectant un type de données utilisateur Vous pouvez indiquer ici la désignation d'un type de données utilisateur défini précédemment dans le programme. Le bloc de données prend alors la structure de cet UDT. Vous pouvez attribuer les valeurs initiales des variables dans la section d'affectation du DB.

• En définissant un type de données STRUCT Dans la spécification du type de données STRUCT, vous déterminez le type de données de chaque variable à enregistrer dans le DB et les valeurs initiales au besoin.

Section de déclaration du DB

Spécification du typede données STRUCT

DESIGNATIONDE L'UDT

Exemple : DATA_BLOCK DB20 STRUCT // Section de déclaration VALEUR:ARRAY [1..100] OF INT; END_STRUCT

BEGIN // Début de la section d'affectation : END_DATA_BLOCK // Fin du bloc de données

Page 136: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-20 A5E00324651-01

Section d'affectation du DB

La section d'affectation vous sert à affecter des valeurs spécifiques de votre application particulière aux données que vous avez déclarées dans la section de déclaration.

La section d'affectation est introduite par le mot-clé BEGIN et se compose d'une suite d'affectations de valeurs.

:= ;Constante*Variable simple

Section d'affectation du DB

* en notation LIST

Il convient de respecter la syntaxe de LIST lors de l'attribution des valeurs initiales (initialisation) et de l'indication d'attributs et de commentaires au sein du DB. La notation des constantes, des attributs et des commentaires est décrite dans l'aide en ligne de LIST et dans la documentation de STEP 7.

Exemple // Bloc de données auquel on a affecté un type de données STRUCT DATA_BLOCK DB10 STRUCT // Déclaration de données avec valeurs par défaut VALEUR : ARRAY [1..100] OF INT := 100 (1) ; COMMUT : BOOL := TRUE ; S_MOT : WORD := W#16#FFAA ; S_OCTET : BYTE := B#16#FF ; S_DUREE : S5TIME := S5T#1h30m10s ; END_STRUCT BEGIN // Section d'affectation // Affectation de valeur pour certains éléments de tableau VALEUR [1] := 5; VALEUR [5] := -1 ; END_DATA_BLOCK // Bloc de données auquel on a affecté un type de données utilisateur DATA_BLOCK DB11 UDT 51 BEGIN END_DATA_BLOCK

Page 137: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-21

6.16 Composition d'un type de données utilisateur

Un type de données utilisateur (UDT) est une structure de données spéciale que vous créez vous-même. Puisqu'il possède un nom, il peut être utilisé plusieurs fois. Une fois défini, il peut être utilisé dans l'ensemble du programme utilisateur et constitue donc un type de données global. Vous pouvez ainsi l'utiliser :

• comme un type de données simple ou complexe dans un bloc ou

• comme modèle pour créer des blocs de données de structure identique.

Lorsque vous saisissez un type de données utilisateur, veillez à ce qu'il précède dans la source S7-SCL le bloc dans lequel il est utilisé.

TYPE DESIGNATIONDE L`UDT END_TYPE

Spécificationdu type de données

Type de données utilisateur

STRUCT

Désignation d'UDT Indiquez à la suite du mot-clé TYPE le mot-clé UDT suivi d'un numéro ou simplement du nom symbolique de l'UDT. Le numéro de bloc peut aller de 0 à 65533.

Exemples :

TYPE UDT10 TYPE SECTION_AFFECTATION

Spécification du type de données

Elle est toujours réalisée à l'aide d'une spécification de type de données STRUCT. Vous pouvez utiliser le type de données UDT dans les sections de déclaration de blocs de code ou de blocs de données, ou alors l'affecter à des DB.

Page 138: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-22 A5E00324651-01

Exemple de définition d'un UDT TYPE VALEURS_MESURE STRUCT // Définition d'UDT avec désignation symbolique BIPOL_1 : INT := 5; BIPOL_2 : WORD := W#16#FFAA ; BIPOL_3 : BYTE := B#16#F1 ; BIPOL_4 : WORD := B#(25,25) ; MESURE : STRUCT BIPOLAIRE_10V : REAL ; UNIPOLAIRE_4_20MA : REAL ; END_STRUCT ; END_STRUCT ; END_TYPE //Utilisation de l'UDT dans un FB FUNCTION_BLOCK FB10 VAR PLAGE_MESURE : VALEURS_MESURE; END_VAR BEGIN // . . . PLAGE_MESURE.BIPOL_1 := -4 ; PLAGE_MESURE.MESURE.UNIPOLAIRE_4_20MA := 2.7 ; // . . . END_FUNCTION_BLOCK

Page 139: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-23

6.17 Options du compilateur dans les sources S7-SCL

Définition

Outre des blocs, les sources S7-SCL peuvent également contenir des indications sur les paramètres du compilateur avec lesquels les différents blocs doivent être compilés.

Les options du compilateur définissent le processus de compilation des blocs individuels ou de la source globale, quels que soient les paramètres figurant dans l'onglet "Compiler (paramètres)".

Vous pouvez utiliser les options du compilateur dans les sources S7-SCL ou dans les fichiers d'information de compilation.

Validité

Les options sont uniquement valables pour la compilation de la source pour laquelle elles ont été définies. L'application d'une option du compilateur commence par sa désignation et se termine à la fin de la source ou du fichier d'information de compilation. En présence d'options identiques du compilateur, c'est la dernière en date qui s'applique.

Si des options du compilateur ont été définies pour un bloc, leur priorité est plus élevée que les paramétrages de l'onglet "Compiler (paramètres)". Les paramétrages dans l'onglet restent cependant valables.

Règles

Les règles suivantes s'appliquent aux options du compilateur :

• Dans la source, les options se trouvent en dehors des limites des blocs.

• Les options figurent dans une ligne distincte.

• Aucune distinction n'est faite entre les minuscules et les majuscules.

Page 140: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 6-24 A5E00324651-01

Options disponibles

Le tableau indique les options disponibles :

Option Valeur Signification

[Scl_]ResetOptions Aucune indication de valeur possible

Réinitialiser les paramètres par défaut du compilateur (paramètres de la boîte de dialogue)

[Scl_]OverwriteBlocks 'y[es]' ou 'n[o]' Ecraser les blocs

[Scl_]GenerateReferenceData 'y[es]' ou 'n[o]' Créer des données de référence

[Scl_]S7ServerActive 'y[es]' ou 'n[o]' Prendre en compte l'attribut système "S7_server"

[Scl_]CreateObjectCode 'y[es]' ou 'n[o]' Créer le code de l'objet

[Scl_]OptimizeObjectCode 'y[es]' ou 'n[o]' Optimiser le code de l'objet

[Scl_]MonitorArrayLimits 'y[es]' ou 'n[o]' Surveiller les limites de champs

[Scl_]CreateDebugInfo 'y[es]' ou 'n[o]' Créer les informations de débogage

[Scl_]SetOKFlag 'y[es]' ou 'n[o]' Mettre le drapeau OK à 1

[Scl_]SetMaximumStringLength '1 .. 254' Longueur maximale d'une chaîne de caractères

Exemple {SCL_OverwriteBlocks := 'y' ; SCL_CreateDebugInfo := 'y'} {SetOKFlag := 'y' ; OptimizeObjectCode := 'y'}

Page 141: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Structure de programme S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 6-25

Page 142: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition
Page 143: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-1

7 Types de données

7.1 Présentation des types de données dans S7-SCL

Les types de données déterminent :

• La nature et la signification des éléments de données

• Les plages autorisées pour les éléments de données

• Le nombre d'opérations exécutables avec un opérande d'un type de données

• La notation des constantes de ce type

Types de données simples

Un type de données simple définit la structure de données qui ne peuvent pas être divisées en éléments plus petits. Il répond à la norme EN 1131-3. Un type de données simple décrit une zone de mémoire de longueur fixe et correspond à une grandeur exprimée sous forme binaire, entière, réelle, sous forme de durée, d'heure ou de caractère. Les types de données suivants sont prédéfinis dans S7-SCL.

Groupe Types de données Signification

Types de données binaires

BOOL

BYTE

WORD

DWORD

Les données de ce type occupent 1 bit , 8 bits, 16 bits ou 32 bits.

Types de données sur caractère

CHAR Les données de ce type occupent 1 caractère et un seul du jeu de caractères ASCII.

Types de données numériques

INT

DINT

REAL

Les données de ce type permettent de traiter des valeurs numériques.

Types de données temporels

TIME

DATE

TIME_OF_DAY

S5TIME

Les données de ce type représentent les diverses valeurs de durée et de date dans STEP 7.

Page 144: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-2 A5E00324651-01

Types de données complexes

S7-SCL autorise les types de données complexes suivants :

Types de données Signification

DATE_AND_TIME

DT

Définit une zone de 64 bits (8 octets). Ce type de données, prédéfini dans S7-SCL, enregistre la date et l'heure (en format décimal codé binaire).

STRING Définit une zone pour une chaîne de 254 caractères au maximum (type de données CHAR).

ARRAY Définit un tableau formé de composants d'un même type de données (simples ou complexes).

STRUCT Définit un groupe formé d'une combinaison quelconque de types de données. Vous pouvez définir un tableau composé de structures ou une structure composée d'autres structures et de tableaux.

Types de données utilisateur

Vous pouvez créer vous-même les types de données utilisateur avec la déclaration de type de données. Ils ont leur propre nom et sont donc réutilisables. Un type de données utilisateur peut, par exemple, servir à la création de plusieurs blocs de données de même composition.

Types de paramètre

Les types de paramètre sont des types de données spéciaux pour les temporisations, les compteurs et les blocs ; vous pouvez les utiliser comme paramètres formels.

Types de données Signification

TIMER Sert à déclarer des fonctions de temporisation comme paramètres.

COUNTER Sert à déclarer des fonctions de comptage comme paramètres.

BLOCK_xx Sert à déclarer des FC, FB, DB et SDB comme paramètres.

ANY Sert à autoriser un opérande d'un type de données quelconque comme paramètre.

POINTER Sert à autoriser l'utilisation d'une zone de mémoire comme paramètre.

Type de données ANY

Dans S7-SCL, vous pouvez utiliser des variables du type de données ANY comme paramètres formels d'un bloc. Vous pouvez en outre créer des variables temporaires de ce type et les employer dans des affectations de valeur.

Page 145: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-3

7.2 Types de données simples

7.2.1 Types de données binaires

Les données de ce type sont des combinaisons binaires occupant 1 bit (type de données BOOL), 8 bits, 16 bits ou 32 bits. Pour les types de données octet, mot et double mot, la plage de valeurs ne peut pas être indiquée. Il s'agit ici de combinaisons binaires permettant uniquement la formation d'expressions booléennes.

Type Mot-clé Longueur en bits Cadrage Plage de valeurs

Bit BOOL 1 bit Commence au bit de poids faible de l'octet

0, 1 ou FALSE (FAUX), TRUE (VRAI)

Octet BYTE 8 bits commence à l'octet de poids faible du mot

-

Mot WORD 16 bits commence à une limite de mot

-

Double mot DWORD 32 commence à une limite de mot

-

7.2.2 Types de données sur caractère

Les données de ce type occupent 1 caractère et un seul du jeu de caractères ASCII.

Type Mot-clé Longueur en bits Plage de valeurs

Caractère unique CHAR 8 Jeu de caractères ASCII étendu

7.2.3 Types de données numériques

Les types de données numériques servent à traiter les valeurs numériques (par exemple à calculer des expressions arithmétiques).

Type Mot-clé Longueur en bits

Cadrage Plage de valeurs

Entier (nombre entier)

INT 16 commence à une limite de mot

-32_768 à 32_767

Entier double DINT 32 commence à une limite de mot

-2_147_483_648 à 2_147_483_647

Virgule flottante (nombre à virgule flottante IEEE)

REAL 32 commence à une limite de mot

-3.402822E+38 à -1.175495E-38 +/- 0 1.175495E-38 à 3.402822E+38

Page 146: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-4 A5E00324651-01

7.2.4 Types de données temporels

Les données de ce type représentent les diverses valeurs de durée et de date dans STEP 7 (par exemple pour régler la date ou saisir la durée d'une temporisation).

Type Mot-clé Longueur en bits

Cadrage Plage de valeurs

Durée S5 S5TIME

S5T

16 commence à une limite de mot

T#0H_0M_0S_10MS à T#2H_46M_30S_0MS

Durée : durée CEI par pas de 1 ms.

TIME T

32 commence à une limite de mot

T#0D_0H_0M_0S_0MS à T#24D_20H_31M_23S_647MS

Date : date CEI par pas de 1 jour.

DATE D

16 commence à une limite de mot

D#1990-01-01 à D#2168-12-31

Heure du jour : heure par pas de 1 ms.

TIME_OF_DAY TOD

32 commence à une limite de mot

TOD#0:0:0.0 à TOD#23:59:59.999

Pour les variables du type de données S5TIME, la résolution est limitée, c'est-à-dire que seules les bases de temps 0,01 s, 0,1 s, 1s et 10 s sont disponibles. Le compilateur arrondit les valeurs en conséquence. Si la valeur choisie dépasse la limite supérieure de la plage des valeurs autorisées, c'est la valeur limite supérieure qui est utilisée.

Page 147: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-5

7.3 Types de données complexes

7.3.1 Type de données DATE_AND_TIME

Définition

Ce type de données définit une zone de 64 bits (8 octets) pour l'indication de la date et de l'heure. Cette zone de données enregistre les informations suivantes :

année, mois, jour, heures, minutes, secondes, millisecondes.

Syntaxe

DATE_AND_TIME#

DT#

Indication de l'heure du jourIndication de la date -

DATE_AND_TIME

La syntaxe exacte pour indiquer la date et l'heure du jour est donnée dans la rubrique "Déclaration de constantes".

Plage de valeurs

Type Mot-clé Longueur en bits Cadrage Plage de valeurs

Date et heure DATE_AND_TIME DT

64 commence et finit à une limite de mot

DT#1990-01-01-0:0:0.0 à DT#2089-12-31-23:59:59.999

Le type de données DATE_AND_TIME est enregistré en format DCB.

Octets Contenu Plage

0 Année 1990 ... 2089 1 Mois 01 ... 12 2 Jour 1 ... 31 3 Heures 0 ... 23 4 Minutes 0 ... 59 5 Secondes 0 ... 59 6 2 DPS (décades les plus

significatives) de ms 00 ... 99

7 (4 BPS) DMS (décade la moins significative) de ms

0 ... 9

7 (4 BMS) Jour de la semaine 1 ... 7 (1 = dimanche)

Page 148: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-6 A5E00324651-01

Exemple

Voici la définition correcte du 20.10.1995 12 heures 20 min. 30 s et 10 ms : DATE_AND_TIME#1995-10-20-12:20:30.10 DT#1995-10-20-12:20:30.10

Nota

Des fonctions standard sont à votre disposition (dans la bibliothèque de STEP 7) pour vous permettre d'accéder avec précision aux composants DATE ou TIME.

Page 149: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-7

7.3.2 Type de données STRING

Définition

Le type de données STRING définit une chaîne de 254 caractères au plus. La zone de mémoire standard réservée à une chaîne de caractères est de 256 octets. Cette zone de mémoire est requise pour enregistrer les 254 caractères ainsi qu'un en-tête de 2 octets.

Vous pouvez réduire la place mémoire requise par une chaîne de caractères en indiquant dans sa définition le nombre maximal de caractères à enregistrer dans la chaîne. Une chaîne de longueur nulle, c'est-à-dire sans contenu, représente la plus petite valeur possible.

Syntaxe

Spécification du type de données STRING

[ ]Expressionsimple

Longueur de la chaîne

STRING

L'expression simple représente le nombre maximal de caractères dans la chaîne. Tous les caractères du code ASCII sont autorisés. Une chaîne peut contenir aussi des caractères spéciaux, comme par exemple des caractères de commande, et des caractères non imprimables. Vous les entrez au moyen de la syntaxe $hh, hh représentant la valeur hexadécimale du caractère ASCII (ex. : '$0D$0AText' ).

Quand vous déclarez la place mémoire requise par une chaîne de caractères, vous pouvez fixer le nombre maximal de caractères à enregistrer dans cette chaîne. Si vous n'indiquez pas ici de longueur maximale, c'est une chaîne de longueur 254 qui sera créée.

Page 150: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-8 A5E00324651-01

Exemple :

VAR Text1 : String [123]; Text2 : String; END_VAR

Dans la déclaration de la variable "Text1", la constante "123" représente le nombre maximal de caractères dans la chaîne. Pour la variable "Text2" , c'est une longueur de 254 caractères qui sera réservée.

Nota

Pour les paramètres de sortie et d'entrée/sortie ainsi que pour les valeurs de retour de fonctions, vous pouvez réduire la zone de 254 caractères réservée de manière standard afin de mieux utiliser les ressources de votre CPU. Choisissez à cet effet la commande Outils > Paramètres, puis l'onglet "Compilateur" dans la boîte de dialogue qui s'affiche.

L'option "Long. chaîne max." vous permet d'indiquer le nombre de caractères souhaité. Notez que cette valeur s'appliquera à toutes les variables STRING de la source. Elle ne doit donc pas être inférieure à celle des variables STRING employées dans le programme.

Initialisation de chaînes de caractères

Dans la déclaration des paramètres de blocs fonctionnels (FB), il est possible d'initialiser les variables STRING, tout comme les autres variables, avec des chaînes de caractères constantes. Pour les paramètres des fonctions (FC), l'initialisation n'est pas possible.

Lorsque la chaîne de caractères initiale est plus courte que la longueur maximale déclarée, les positions restantes demeurent libres. Le traitement ultérieur de la variable ne tient compte que des positions réellement occupées.

Exemple :

x : STRING[7]:='Adresse';

Si vous avez besoin de variables temporaires de type STRING, par exemple pour la sauvegarde temporaire de résultats, il faut entrer une valeur initiale (constante STRING) soit dans la déclaration de la variable, soit dans une affectation de valeur avant de les utiliser.

Nota Quand une fonction provenant d'une bibliothèque standard fournit une valeur de retour qui est du type de données STRING et que cette valeur doit être affectée à une variable temporaire, il faut d'abord initialiser la variable.

Page 151: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-9

Exemple :

FUNCTION Test : STRING[45] VAR_TEMP x : STRING[45]; END_VAR x := 'a'; x := concat (in1 := x, in2 := x); Test := x; END_FUNCTION

Sans l'initialisation x := 'a'; la fonction fournirait un résultat faux.

Cadrage

Les variables de type STRING commencent et finissent à une limite de mot.

Page 152: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-10 A5E00324651-01

7.3.3 Type de données ARRAY

Définition

Un type de données ARRAY possède un nombre déterminé de composants d'un seul et même type de données. S7-SCL distingue :

• le type de données ARRAY unidimensionnel : c'est une liste d'éléments de données disposés selon un ordre croissant ;

• le type de données ARRAY bidimensionnel : c'est un tableau de données comportant des lignes et des colonnes ; la première dimension se rapporte au numéro de ligne, la seconde au numéro de colonne ;

• le type de données ARRAY de dimension supérieure : c'est l'extension du type ARRAY bidimensionnel à des dimensions supplémentaires ; le nombre maximal de dimensions autorisées est de 6.

Syntaxe

Spécification du type de données ARRAY

[ ]..

Spécification dutype de donnéesOF

,

ARRAY Indice Indice

Spécification des indices

1 n

6 dimensions au plus

Spécification des indices

Elle décrit les dimensions du type de données ARRAY.

• Elle indique en effet le plus petit indice et le plus grand indice possibles (plage d'indices) pour chaque dimension. L'indice peut être une valeur entière quelconque (-32768 à 32767).

• Les limites doivent être séparées par deux points. Les différentes plages d'indices sont séparées l'une de l'autre par des virgules.

• L'ensemble de la spécification des indices figure entre crochets.

Spécification du type de données

Elle consiste à déclarer le type de données des composants. Tous les types de données sont autorisés. Le type de données des composants d'un tableau peut être aussi STRUCT. Les types de paramètre ne sont pas autorisés comme type des éléments d'un tableau.

Page 153: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-11

Exemple VAR REGULATEUR1 : ARRAY[1..3,1..4] OF INT:= -54, 736, -83, 77, -1289, 10362, 385, 2, 60, -37, -7, 103 ; REGULATEUR2 : ARRAY[1..10] OF REAL ; END_VAR

Cadrage

Les variables de type ARRAY sont créées ligne par ligne. Chaque dimension d'une variable de type BOOL, BYTE ou CHAR se termine à une limite d'octet, toutes les autres à une limite de mot.

Page 154: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-12 A5E00324651-01

7.3.4 Type de données STRUCT

Définition

Un type de données STRUCT décrit une zone comportant un nombre fixe de composants dont les types de données peuvent être différents. Ces éléments de données sont indiqués dans la déclaration des composants, immédiatement après le mot-clé STRUCT.

Un élément de données de type STRUCT peut être lui-même complexe, ce qui autorise l'imbrication des types de données STRUCT.

Syntaxe

Spécification du type de données STRUCT

Déclaration descomposants

END_STRUCTSTRUCT

Déclaration des composants

La déclaration des composants est une liste des diverses composants du type de données STRUCT. Elle comporte :

• 1 à n identificateurs avec le type de données affecté et

• des valeurs initiales par défaut facultatives.

Déclaration des composants

Spécification dutype de données

Initialisation dutype de données: ;IDENTIFICATEUR

Nom du composant dans les tableaux

Nom du composant

L'identificateur est le nom d'un composant de la structure à laquelle s'applique la spécification de type de données qui suit.

Tous les types de données sont autorisés dans la spécification, sauf les types de paramètre.

A la suite de la spécification du type, vous pouvez affecter une valeur initiale à un composant de la structure ; ceci est facultatif. Pour cela, vous avez recours à une affectation de valeur.

Page 155: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-13

Exemple VAR MOTEUR : STRUCT DONNEES : STRUCT COURANT_CHARGE : REAL ; TENSION : INT := 5 ; END_STRUCT ; END_STRUCT ; END_VAR

Cadrage

Les variables de type STRUCT commencent et finissent à une limite de mot.

Important

Si vous définissez une structure qui ne se termine pas à une limite WORD, S7-SCL complète automatiquement les octets manquants et adapte ainsi la taille de la structure.

L'adaptation de la taille de la structure risque d'entraîner des conflits d'accès aux types de données possédant une longueur d'octets impaire.

Page 156: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-14 A5E00324651-01

7.4 Type de données utilisateur

7.4.1 Types de données utilisateur (UDT)

Définition

Vous définissez un type de données utilisateur (UDT) en tant que bloc. Une fois défini, il peut être utilisé dans l'ensemble du programme utilisateur. Il s'agit donc d'un type de données global. Vous pouvez l'utiliser dans la section de déclaration d'un bloc ou d'un bloc de données en indiquant sa désignation UDTx (x représente un numéro) ou le mnémonique qui lui est affecté.

Le type de données utilisateur peut servir à déclarer des variables, des paramètres, des blocs de données et d'autres types de données utilisateur. Il permet également de déclarer des composants de structures ou de tableaux.

Syntaxe

TYPE DESIGNATIONDE L`UDT END_TYPE

Spécificationdu type de données

Type de données utilisateur

STRUCT

Désignation d'UDT

La déclaration d'un type de données utilisateur est introduite par le mot-clé TYPE, suivi du nom du type de données utilisateur (identificateur de l'UDT). Ce nom peut être indiqué de manière absolue comme nom standard de forme UDTx (x représente un numéro) ou de manière symbolique avec un mnémonique.

Exemples : TYPE UDT10 TYPE VALEURS_MESURE

Page 157: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-15

Spécification du type de données

La désignation d'UDT est suivie de la spécification du type de données. Seule la spécification STRUCT est autorisée ici : STRUCT : END_STRUCT

Nota

Dans un type de données utilisateur, il faut employer la syntaxe de LIST. Ceci concerne par exemple la manière d'écrire les constantes et l'attribution de valeurs initiales (initialisation). L'aide en ligne relative à LIST fournit des informations sur l'écriture des constantes.

Exemple // Définition d'UDT avec désignation symbolique TYPE VALEURS_MESURE: STRUCT BIPOL_1 : INT := 5; BIPOL_2 : WORD := W#16#FFAA ; BIPOL_3 : BYTE := B#16#F1 ; BIPOL_4 : WORD := W#16#1919 ; MESURE : STRUCT BIPOLAIRE_10V : REAL ; UNIPOLAIRE_4_20MA : REAL ; END_STRUCT; END_STRUCT; END_TYPE //Utilisation de l'UDT dans un FB FUNCTION_BLOCK FB10 VAR PLAGE_MESURE : VALEURS_MESURE; END_VAR BEGIN // . . . PLAGE_MESURE.BIPOL_1 := -4 ; PLAGE_MESURE.MESURE.UNIPOLAIRE_4_20MA := 2.7 ; // . . . END_FUNCTION_BLOCK

Page 158: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-16 A5E00324651-01

7.5 Types de données pour paramètre

Pour déterminer les paramètres de bloc formels des FB et FC, vous pouvez utiliser non seulement les types de données déjà présentés, mais également ce qu'on appelle des types de paramètre.

Paramètre Longueur Description

TIMER 2 octets Caractérise une temporisation particulière qui doit être utilisée par le programme dans le bloc de code appelé.

Paramètre effectif : p. ex. T1

COUNTER 2 octets Caractérise un compteur particulier qui doit être utilisé par le programme dans le bloc de code appelé.

Paramètre effectif : p. ex. Z10

BLOCK_FB BLOCK_FC BLOCK_DB BLOCK_SDB

2 octets Caractérise un bloc particulier qui doit être utilisé par un bloc de code List appelé.

Paramètre effectif : p. ex. FC101, DB42 DB42

Notas :

Il est impossible d’accéder au type de données BLOCK_DB (myDB.dw10) Vous pouvez cependant continuer à l’éditer avec BLOCK_DB_TO_WORD().

Le types de données BLOCK_SDB, BLOCK_FB et BLOCK_FC ne peuvent pas être exploités par des programmes S7-SCL

Vous pouvez les utiliser pour attribuer des valeurs à des paramètres de ce type à l’appel de blocs LIST.

ANY 10 octets S'utilise pour autoriser un type de paramètre quelconque pour le paramètre effectif.

POINTER 6 octets Caractérise une zone de mémoire particulière qui doit être utilisée par le programme.

Paramètre effectif : p. ex. M50.0

7.5.1 Types de données TIMER et COUNTER

Vous déterminez une temporisation ou un compteur à utiliser lors de l'exécution d'un bloc. Les types de données TIMER et COUNTER ne sont autorisés que pour les paramètres d'entrée (VAR_INPUT).

Page 159: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-17

7.5.2 Types de données BLOCK

Vous déterminez un bloc à utiliser comme paramètre d'entrée. C'est la déclaration du paramètre d'entrée qui décide du type de bloc (FB, FC, DB). Pour définir le paramètre, vous indiquez l'identificateur du bloc, sous forme absolue ou symbolique.

L'adressage absolu du type de données BLOCK_DB est possible (myDB.dw10). Pour les autres types de données BLOCK, S7-SCL ne fournit pas d'opération. Il n'est possible de définir des paramètres de ce type que lors des appels de bloc. Pour les fonctions, la transmission d'un paramètre d'entrée n'est pas possible.

Dans S7-SCL, vous pouvez affecter comme paramètres effectifs des opérandes des types de données suivants :

• Blocs fonctionnels sans paramètres formels

• Fonctions sans paramètres formels ni valeur de retour (fonctions VOID)

• Blocs de données et blocs de données système

7.5.3 Type de données POINTER

Vous pouvez affecter au type de données POINTER des variables que vous déclarez en tant que paramètres formels d'un bloc. A l'appel d'un tel bloc, ces paramètres peuvent être définis avec des opérandes de type de données quelconque (sauf ANY).

S7-SCL n'offre toutefois qu'une seule instruction pour le traitement du type de données POINTER : la transmission à des blocs de niveau hiérarchique inférieur.

Vous pouvez affecter les types d'opérande suivants comme paramètres effectifs :

• Adresses absolues

• Mnémoniques

• Opérandes du type de données POINTER (seulement si l'opérande est un paramètre formel compatible)

• Constante NIL : vous indiquez un pointeur zéro.

Restrictions

• Le type de données POINTER est autorisé pour les paramètres formels d'entrée, d'entrée/sortie de FB et de FC de même que pour les paramètres de sortie de FC. Les constantes ne sont pas autorisées comme paramètres effectifs (à l'exception de la constante NIL).

• Lorsque vous affectez une variable temporaire à un paramètre formel de type POINTER à l'appel d'un FB ou d'une FC, vous ne pouvez pas transmettre ce paramètre à un autre bloc. Les variables temporaires perdent leur validité lors de la transmission.

Page 160: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-18 A5E00324651-01

• A l'appel d'une FC ou d'un FB, vous pouvez uniquement affecter des paramètres formels du type Pointer à des entrées du processus (%PEW), si le paramètre formel a été déclaré comme paramètre d'entrée.

• A l'appel d'un FB, vous pouvez uniquement affecter des paramètres formels du type Pointer à des sorties du processus (%PEW), si le paramètre formel a été déclaré comme paramètre de sortie.

Exemple FUNCTION FC100 : VOID VAR_IN_OUT N_out : INT; out : POINTER; END_VAR VAR_TEMP ret : INT; END_VAR BEGIN // ... ret := SFC79(N := N_out, SA := out); // ... END_FUNCTION FUNCTION_BLOCK FB100 VAR ii : INT; aa : ARRAY[1..1000] OF REAL; END_VAR BEGIN // ... FC100( N_out := ii, out := aa); // ... END_FUNCTION_BLOCK

Page 161: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 7-19

7.6 Type de données ANY

Dans S7-SCL, vous pouvez déclarer des variables du type de données ANY comme suit :

• En tant que paramètres formels d'un bloc, ces paramètres pouvant être remplacés à l'appel du bloc par des paramètres effectifs d'un type de données quelconque ;

• En tant que variables temporaires pouvant recevoir des valeurs d'un type de données quelconque.

Vous pouvez utiliser les données suivantes comme paramètres effectifs ou à droite d'une affectation de valeur :

• Variables locales et globales

• Variables dans le DB (avec adressage absolu ou symbolique)

• Variables dans l'instance locale (avec adressage absolu ou symbolique)

• Constante NIL : vous indiquez un pointeur zéro

• Type de données ANY

• Temporisations, compteurs et blocs : vous indiquez leur identificateur (par exemple T1, Z20 ou FB6).

Restrictions

• Le type de données ANY est autorisé pour les paramètres formels d'entrée, d'entrée/sortie de FB et de FC de même que pour les paramètres de sortie de FC. Les constantes ne sont pas autorisées comme paramètres effectifs ou à droite d'une affectation (à l'exception de la constante NIL).

• Lorsque vous affectez une variable temporaire à un paramètre formel de type ANY lors de l'appel d'un FB ou d'une FC, vous ne pouvez pas transmettre ce paramètre à un autre bloc. Les variables temporaires perdent leur validité lors de la transmission.

• Il n'est pas permis d'utiliser les variables de ce type comme composant d'une structure ou élément d'un tableau.

• A l'appel d'une FC ou d'un FB, vous pouvez uniquement affecter des paramètres formels du type ANY à des entrées du processus (%PEW), si le paramètre formel a été déclaré comme paramètre d'entrée.

• A l'appel d'un FB, vous pouvez uniquement affecter des paramètres formels du type ANY à des sorties du processus (%PEW), si le paramètre formel a été déclaré comme paramètre de sortie.

Page 162: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Types de données

S7-SCL V5.3 pour S7-300/400 7-20 A5E00324651-01

7.6.1 Exemple de type de données ANY

VAR_INPUT iANY : ANY; END_VAR VAR_TEMP pANY : ANY; END_VAR CASE ii OF 1: pANY := MW4; // pANY contient l'adresse de MW4 3..5: pANY:= aINT[ii]; // pANY contient l'adresse du ii-ème // élément du tableau aINT; 100: pANY := iANY; // pANY contient la valeur // de la variable d'entrée iANY ELSE pANY := NIL; // pANY contient la valeur du pointeur NIL END_CASE; SFCxxx(IN := pANY);

Page 163: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 8-1

8 Déclaration de variables locales et de paramètres

8.1 Variables locales et paramètres de bloc

Catégories de variables

Le tableau suivant décrit les catégories servant à classer les variables locales :

Variable Signification

Variables statiques Les variables statiques sont des variables locales dont la valeur reste la même durant toutes les exécutions du bloc (mémoire du bloc). Elles servent à stocker les valeurs d'un bloc fonctionnel et sont stockées dans le bloc de données d'instance.

Variables temporaires Les variables temporaires appartiennent localement à un bloc de code et n'occupent aucune zone de mémoire statique, puisqu'elles sont rangées dans la pile de la CPU. Leur valeur ne reste la même que le temps d'une exécution du bloc. Il n'est pas possible d'adresser les variables temporaires en dehors du bloc dans lequel elles ont été déclarées.

Catégories de paramètres de bloc :

Les paramètres de bloc servent à réserver de la place et sont déterminés seulement quand le bloc est utilisé concrètement (appel). Les paramètres déclarés dans le bloc sont les paramètres formels, les valeurs qui leur sont affectées à l'appel du bloc sont les paramètres effectifs. Les paramètres formels d'un bloc peuvent être considérés comme des variables locales.

On peut classer les paramètres de bloc dans les catégories suivantes :

Paramètres de bloc Signification

Paramètres d'entrée A l'appel du bloc, les paramètres d'entrée prennent les valeurs d'entrée actuelles. Vous pouvez y accéder uniquement en lecture.

Paramètres de sortie Les paramètres de sortie transmettent les valeurs de sortie actuelles au bloc appelant. Vous pouvez y accéder en écriture comme en lecture.

Paramètres d'entrée/sortie A l'appel d'un bloc, les paramètres d'entrée/sortie prennent les valeurs d'entrée actuelles. Une fois la valeur traitée, ils enregistrent le résultat et le retourne au bloc appelant.

Drapeau OK

Le compilateur de S7-SCL offre un drapeau servant à déceler les erreurs durant l'exécution de programmes dans la CPU. Il s'agit d'une variable locale de type BOOL dont le nom prédéfini est "OK".

Page 164: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 8-2 A5E00324651-01

8.2 Syntaxe générale d'une déclaration de variable ou de paramètre

Il faut déclarer un par un les variables ou les paramètres de bloc avant de pouvoir les utiliser dans un bloc de code ou dans un bloc de données. La déclaration établit qu'un identificateur est utilisé comme paramètre de bloc ou comme variable et lui associe un type de données.

Une déclaration de variable ou de paramètre se compose d'un identificateur au choix et d'une indication de type de données. Le diagramme syntaxique suivant en montre la forme générale.

Syntaxe de la déclaration de variable ou de paramètre

Déclaration de variable

,

:AT ;

Nom de variable,

IDENTIFICATEURSpécification duVariable

simple type de données

de paramètreou

de composant

1)

Initialisation dutype de données

1) Attributs système pour paramètre

2)

2) sauf pour AT

Exemples VALEUR1 : REAL; S'il y a plusieurs variables du même type : VALEUR2, VALEUR3,VALEUR4,....: INT; TABLEAU : ARRAY[1..100, 1..10] OF REAL; PHRASE : STRUCT TABLEAU_MESURE:ARRAY[1..20] OF REAL; COMMUTATEUR:BOOL; END_STRUCT

Nota

Pour utiliser des mots réservés comme identificateurs, vous devez les faire précéder du signe # (par exemple, #FOR).

Page 165: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 8-3

8.3 Initialisation

Lorsque vous déclarez des variables statiques, des paramètres d'entrée et des paramètres de sortie d'un FB, vous pouvez leur affecter une valeur par défaut. De même pour les paramètres d'entrée/sortie, mais seulement quand ils sont d'un type de données simple. Pour les variables simples, vous devez affecter (:=) une constante après avoir indiqué le type de données.

Syntaxe

INITIALISATION

CONSTANTE

LISTE D’INITIAL.

D’UN TABLEAU

Exemple VALEUR :REAL := 20.25;

Nota

Il n'est pas possible d'initialiser une liste de variables (A1, A2, A3,...: INT:=...). Dans ce cas, il faut initialiser les variables séparément.

Initialisation de tableaux

Pour initialiser un type de données ARRAY, vous pouvez soit indiquer une valeur séparée par une virgule pour chaque composant du tableau, soit affecter une même valeur à plusieurs composants en plaçant devant un facteur de répétition (nombre entier).

Les valeurs d'initialisation peuvent être mises entre parenthèses, en option. Même dans le cas de tableaux multi-dimensionnels, une seule paire de parenthèses est indiquée.

Page 166: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 8-4 A5E00324651-01

Syntaxe de l'initialisation de tableaux

LISTE DE REPETITION DE CONSTANTES

CONSTANTECHAINE DE CHIFFRES

DECIMALES

FACTEUR DE REPETITION

( )

,

LISTE DE REPET.

DE CONSTANTES

Exemples //Initialisation de variables statiques : INDICE1 : INT := 3 ; //Initialisation de tableaux : EGULATEUR1 : ARRAY [1..2, 1..2] OF INT := -54, 736, -83, 77; REGULATEUR2 : ARRAY[1..10] OF REAL := 10(2.5); REGULATEUR1 : ARRAY [1..2, 1..2] OF INT := [-54, 736, -83, 77]; REGULATEUR2 : ARRAY[1..10] OF REAL := [10(2.5)]; //Initialisation de structures : GENERATEUR: STRUCT DAT1 : REAL := 100.5; A1 : INT := 10 ; A2 : STRING[6] := 'FACTEUR'; A3 : ARRAY[1..12] OF REAL := 0.0, 10(100.0), 1.0; END_STRUCT ; END_VAR

Page 167: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 8-5

8.4 Déclaration d'accès à des zones de variable

Pour adresser avec un type de données supplémentaire une variable déclarée, vous pouvez définir un accès à la variable ou à des zones au sein de la variable. Vous employez pour cela le mot-clé "AT". Cet accès n'apparaîtra que localement dans le bloc, il ne sera pas adopté dans l'interface. Il peut être utilisé dans le bloc comme toute autre variable. Il hérite de tous les attributs de la variable qu'il désigne, seul le type de données est nouveau.

Exemple

Dans l'exemple ci-après, plusieurs accès à un paramètre d'entrée sont rendus possibles :

VAR_INPUT Tampon : ARRAY[0..255] OF BYTE; Telegramme1 AT Tampon : UDT100 ; Telegramme2 AT Tampon : UDT200 ; END_VAR

Le bloc appelant définit le paramètre Tampon, il ne voit pas les noms Telegramme1 et Telegramme2. Le bloc appelé dispose alors de 3 façons d'interpréter les données, à savoir comme tableau de nom Tampon ou organisées autrement sous Telegramme1 ou Telegramme2.

Page 168: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 8-6 A5E00324651-01

Règles

• La déclaration d'un accès supplémentaire à une variable doit être effectuée dans le même bloc de déclaration et à la suite de la déclaration de la variable sur laquelle il doit pointer.

• L'initialisation n'est pas possible.

• Le type de données de l'accès doit être compatible avec celui de la variable. C'est la variable qui impose la taille de la zone de mémoire. La place mémoire requise par l'accès peut être inférieure ou égale à cette taille. Il faut respecter en outre les règles de combinaison suivantes :

Type de données de l'accès

Type de données de la variable

simple Complexe ANY/POINTER

FB Déclaration d'un accès dans VAR, VAR_TEMP, VAR_IN ou VAR_OUT

simple

complexe

ANY/POINTER

x

x

X

X

x (1)

x (1)

Déclaration d'un accès dans VAR_IN_OUT

simple

complexe

ANY/POINTER

x

x

FC Déclaration d'un accès dans VAR ou VAR_TEMP

simple

complexe

ANY/POINTER

x

x

x

x

x

x

Déclaration d'un accès dans VAR_IN, VAR_OUT ou VAR_IN_OUT

simple

complexe

ANY/POINTER

x

x

(1) Any_Pointer n'est pas autorisé dans VAR_OUT.

simple = BOOL, BYTE, WORD, DWORD, INT, DINT, DATE, TIME, S5TIME, CHAR complexe = ARRAY, STRUCT, DATE_AND_TIME, STRING

Page 169: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 8-7

8.5 Utilisation de multi-instances

Il est possible qu'en raison des performances des CPU S7 utilisées (par exemple espace mémoire), vous ne puissiez ou ne souhaitiez associer qu'un nombre limité de blocs de données aux données d'instance. Si d'autres blocs fonctionnels déjà existants sont appelés dans un FB de votre programme utilisateur (hiérarchie d'appel de FB), vous pouvez les appeler sans DB d'instance en propre (c'est-à-dire sans DB d'instance supplémentaire).

Vous pouvez employer pour cela la solution suivante :

• Entrez les FB à appeler comme variables statiques dans la déclaration des variables du FB appelant.

• Appelez dans ce bloc fonctionnel d'autres blocs fonctionnels sans DB d'instance en propre.

• Vous pouvez ainsi regrouper les données d'instance dans un seul DB d'instance, et donc mieux utiliser le nombre de DB disponibles.

8.6 Déclaration d'une instance

Dans la section de déclaration des variables statiques d'un bloc fonctionnel (VAR ; END_VAR), vous pouvez non seulement déclarer des variables d'un type de données simple, complexe ou utilisateur, mais également des variables de type FB ou SFB. On les appelle instances locales du FB ou du SFB.

Les données d'instance locales sont enregistrées dans le bloc de données d'instance du bloc fonctionnel appelant. Une initialisation locale, spécifique à l'instance n'est pas possible.

Pour un bloc appelé comme instance locale, la longueur 0 n'est pas autorisée. Il doit contenir au moins la déclaration d'une variable statique ou d'un paramètre.

Syntaxe

Nom de l'instance locale

,

IDENTIFICATEUR : ;

DESIGNATIONDU FB

DESIGNATIONDU SFB

Déclaration d'instancesLe FB et le SFB doiventdéjà exister !

Exemple Définition1 : FB10; Définition2,Définition3,Définition4 : FB100; Moteur1 : Moteur ;

Moteur étant un mnémonique enregistré pour un FB dans la table des mnémoniques.

Page 170: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 8-8 A5E00324651-01

8.7 Drapeau OK

Le drapeau OK sert à noter l'exécution correcte ou incorrecte d'un bloc. Il s'agit d'une variable locale de type BOOL dont le nom prédéfini est "OK".

Au début de l'exécution d'un programme, le drapeau OK a la valeur TRUE. Des instructions S7-SCL permettent de l'interroger à un endroit quelconque du bloc ou de lui donner la valeur TRUE / FALSE. Si une erreur se produit durant l'exécution d'une opération (par exemple une division par zéro), le drapeau OK prend la valeur FALSE. Lorsque vous quittez le bloc, la valeur du drapeau OK est enregistrée dans le paramètre de sortie ENO où elle peut être exploitée par le bloc appelant.

Déclaration

Le drapeau OK est une variable déclarée dans le système. Il n'est donc pas nécessaire de la déclarer. Si vous souhaitez vous en servir dans votre programme utilisateur, vous devez cocher l'option de compilation "Activer drapeau OK" avant d'effectuer la compilation.

Exemple // Mettre le drapeau OK sur TRUE, // afin de pouvoir vérifier // que l'action se déroule correctement. OK:= TRUE; Division:= 1 / IN; IF OK THEN // La division a été exécutée correctement. // : // : ELSE // La division a été exécutée avec une erreur. // : END_IF;

Page 171: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 8-9

8.8 Sections de déclaration

8.8.1 Présentation des sections de déclaration

A chaque catégorie de variable locale ou de paramètre est affecté une section de déclaration propre, caractérisée par un couple de mots-clés. Chaque section contient les déclarations qui y sont autorisées. L'ordre de ces sections est quelconque.

Le tableau suivant indique les types de variables ou de paramètres que vous pouvez déclarer dans les divers blocs de code :

Données Syntaxe FB FC OB

Variable comme : variable statique

VAR . . . END_VAR

X

X *)

variable temporaire

VAR_TEMP . . . END_VAR

X

X

X

Paramètre de bloc comme : paramètre d'entrée

VAR_INPUT . . . END_VAR

X

X

paramètre de sortie

VAR_OUTPUT . . . END_VAR

X

X

paramètre d'entrée/sortie

VAR_IN_OUT . . . END_VAR

X

X

*) La déclaration de variables à l'intérieur du couple de mots-clés VAR et END_VAR est certes autorisée pour les fonctions, mais les déclarations sont créées dans la zone temporaire lors de la compilation de la source.

Page 172: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 8-10 A5E00324651-01

8.8.2 Variables statiques

Les variables statiques sont des variables locales dont la valeur reste la même durant toutes les exécutions d'un bloc (mémoire du bloc). Elles servent à stocker les valeurs d'un bloc fonctionnel et sont enregistrées dans un bloc de données d'instance associé.

Syntaxe

Les variables statiques sont déclarées dans la section de déclaration VAR / END_VAR. Cette section fait partie de la section de déclaration du FB. Après la compilation, c'est cette section qui, avec les sections pour les paramètres de bloc, déterminera la composition du bloc de données d'instance associé.

Vous pouvez :

• Y créer des variables, affecter aux variables des types de données ainsi que des valeurs initiales

• ou déclarer en tant que variable statique un FB à appeler si vous souhaitez l'appeler comme instance locale dans le FB actif.

Déclarationde la variable

Déclarationde l'instance

VAR END_VAR

Section de variables statiques

Exemple VAR PASSAGE :INT; TABLEAU_MESURE :ARRAY [1..10] OF REAL; COMMUTATEUR :BOOL; MOTEUR_1,MOTEUR_2 :FB100; //Déclaration d'instance END_VAR

Adressage

L'adressage des variables s'effectue dans la section des instructions.

• Adressage au sein du bloc : vous pouvez adresser une variable dans la section des instructions du bloc fonctionnel dont la section de déclaration contient la déclaration de cette variable. La marche à suivre est expliquée avec précision dans la rubrique "Affectation de valeur".

• Adressage depuis l'extérieur par le DB d'instance : vous pouvez adresser une variable depuis d'autres blocs au moyen d'un adressage indexé, par ex. DBx.variable.

Page 173: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 8-11

8.8.3 Variables temporaires

Les variables temporaires appartiennent localement à un bloc de code et n'occupent aucune zone de mémoire statique. Elles sont stockées dans la pile de la CPU. Leur valeur ne reste la même que durant une exécution du bloc. Il n'est pas possible d'adresser les variables temporaires en dehors du bloc dans lequel elles ont été déclarées. Au début de l'exécution d'un OB, d'un FB ou d'une FC, la valeur des données temporaires n'est pas définie. L'initialisation n'est pas possible.

Déclarez des données comme temporaires lorsque vous en avez besoin seulement pour y enregistrer des résultats intermédiaires lors du traitement de votre OB, FB ou FC.

Syntaxe

La déclaration des variables temporaires s'effectue dans la section de déclaration VAR_TEMP / END_VAR. Cette section fait partie d'un FB, d'une FC ou d'un OB. Le nom de la variable et son type de données sont indiqués dans la déclaration de la variable.

END_VAR

,

Déclarationde la variableVAR_TEMP

Section de variables temporaires

L'initialisation n'est pas possible

Exemple VAR_TEMP TAMPON 1 : ARRAY [1..10] OF INT ; AIDE1, AIDE2 : REAL; END_VAR

Adressage

L'adressage de ces variables s'effectue toujours dans la section des instructions du bloc de code dont la section de déclaration contient la déclaration de la variable (adressage interne), voir la rubrique "Affectation de valeur".

Page 174: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 8-12 A5E00324651-01

8.8.4 Paramètres de bloc

Les paramètres de bloc servent à réserver de la place et ne sont déterminés que lors de l'utilisation concrète du bloc (appel). Ceux qui sont déclarés dans le bloc sont appelés paramètres formels, les valeurs qui leur sont affectées à l'appel du bloc sont appelées paramètres effectifs. Ainsi, les paramètres constituent un mécanisme d'échange d'informations entre les blocs.

Types de paramètres de bloc

• Les paramètres d'entrée formels prennent les valeurs d'entrée en cours (flux de données de l'extérieur vers l'intérieur).

• Les paramètres de sortie formels servent à transférer des valeurs de sortie (flux de données de l'intérieur vers l'extérieur).

• Les paramètres d'entrée/sortie formels ont à la fois la fonction d'un paramètre d'entrée et celle d'un paramètre de sortie.

Syntaxe

Les paramètres formels doivent être déclarés dans la section de déclaration d'un bloc fonctionnel ou d'une fonction. Suivant le type de paramètre, ils sont déclarés dans l'une des trois sections de déclaration des paramètres. Vous déterminez leur nom et leur type de données dans la déclaration des variables. Seuls les paramètres d'entrée et les paramètres de sortie d'un FB peuvent être initialisés.

Pour la déclaration des paramètres formels, vous pouvez non seulement utiliser des types de données simples, complexes et utilisateur, mais également des types de données pour paramètre.

VAR_OUTPUT Déclarationde la variable END_VAR

VAR_INPUT

VAR_IN_OUT

Section des paramètres

L'initialisation est uniquement possible pour VAR_INPUT et VAR_OUTPUT

Page 175: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 8-13

Exemple VAR_INPUT // Paramètre d'entrée MON_DB : BLOCK_DB ; REGULATEUR : DWORD ; HEURE_DU_JOUR : TIME_OF_DAY ; END_VAR VAR_OUTPUT // Paramètre de sortie CONSIGNES: ARRAY [1..10] of INT ; END_VAR VAR_IN_OUT // Paramètre d'entrée/sortie REGLAGE : INT ; END_VAR

Adressage

L'adressage des paramètres de bloc s'effectue dans la section des instructions d'un bloc de code.

• Adressage interne : c'est-à-dire dans la section des instructions du bloc dont la section de déclaration contient la déclaration des paramètres. Ceci est expliqué à la rubrique "Affectations de valeur" et à la rubrique " "Expressions, opérations et opérandes".

• Adressage depuis l'extérieur par DB d'instance : vous pouvez adresser les paramètres d'un bloc fonctionnel par l'intermédiaire du DB d'instance associé.

Page 176: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de variables locales et de paramètres

S7-SCL V5.3 pour S7-300/400 8-14 A5E00324651-01

Page 177: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-1

9 Déclaration de constantes et repères de saut

9.1 Constantes

Les constantes sont des données possédant une valeur fixe qui ne varie pas durant l'exécution du programme.

S7-SCL connaît les catégories suivantes de constantes.

• Constantes binaires

• Constantes numériques :

- Constantes entières

- Constantes réelles

• Constantes sur caractères :

- Constantes sur caractère

- Constantes sur chaîne

• Constantes temporelles :

- Constantes de date

- Constantes de durée

- Constantes d'heure du jour

- Constantes de date et heure

Page 178: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-2 A5E00324651-01

9.1.1 Déclaration de mnémoniques pour les constantes

Il n'est pas nécessaire de déclarer les constantes. Vous pouvez toutefois leur attribuer des mnémoniques dans la section de déclaration.

La déclaration des mnémoniques de constantes s'effectue avec l'instruction CONST dans la section de déclaration de votre bloc de code. Elle est recommandée pour toutes les constantes du bloc, car elle contribue à une meilleure lisibilité et facilite le traitement du bloc lorsque vous modifiez les valeurs constantes.

Syntaxe

Section des constantes

CONST := ;Expressionsimple

Mnémonique de

IDENTIFICATEUR END_CONST

la constante

Dans les expressions simples, seules les opérations arithmétiques de base sont autorisées (*, /, +, -, DIV, MOD).

Exemple CONST Nombre := 10 ; HEURE1 := TIME#1D_1H_10M_22S_2MS ; NOM := 'SIEMENS' ; NOMBRE2 := 2 * 5 + 10 * 4 ; NOMBRE3 := 3 + ZAHL2 ; END_CONST

Page 179: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-3

9.1.2 Types de données des constantes

Les types de données ne sont pas affectés aux constantes comme dans LIST.

Une constante ne reçoit son type de données qu'avec la combinaison arithmétique ou logique dans laquelle elle est employée, par ex. :

Int1:=Int2 + 12345 //"12345" reçoit le type de données INT Real1:=Real2 + 12345 //"12345" reçoit le type de données REAL

Le type de données affecté à une constante est celui dont la plage de valeurs suffit juste encore à prendre en charge la constante sans perte de valeur. Par exemple, la constante "12345" n'est pas toujours du type INT comme dans LIST, mais elle fait partie de la classe de types de données ANY_NUM, c'est-à-dire qu'elle sera INT, DINT ou REAL suivant l'emploi.

Constantes typées

La notation typée des constantes vous permet d'indiquer aussi explicitement un type de données pour les types numériques suivants.

Exemples :

Type de données Notation typée

BOOL BOOL#1 bool#0 Bool#false BOOL#TRUE

BYTE BYTE#0 B#2#101 Byte#'ä' b#16#f

WORD WORD#32768 word#16#f W#2#1001_0100 WORD#8#177777

DWORD DWORD#16#f000_0000 dword#32768 DW#2#1111_0000_1111_0000 DWord#8#37777777777

INT INT#16#3f_ff int#-32768 Int#2#1111_0000 inT#8#77777

DINT DINT#16#3fff_ffff dint#-65000 DInt#2#1111_0000 dinT#8#17777777777

REAL REAL#1 real#1.5 real#2e4 real#3.1

CHAR CHAR#A CHAR#49

Page 180: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-4 A5E00324651-01

9.1.3 Notation des constantes

Une notation précise (format) sert à indiquer la valeur d'une constante suivant le type et le format de données choisis. Le type et la valeur de la constante résultant directement de la notation, il n'est pas nécessaire de les déclarer.

Exemples :

15 VALEUR 15 en tant que constante entière en représentation décimale 2#1111 VALEUR 15 en tant que constante entière en représentation binaire 16#F VALEUR 15 en tant que constante entière en représentation hexadécimale

Tableau des notations possibles

Type de données Description Exemples en S7-SCL Exemples en LIST, si différents

BOOL 1 bit FALSE TRUE BOOL#0 BOOL#1 BOOL#FALSE BOOL#TRUE

BYTE Nombre hexadécimal de 8 bits B#16#00 B#16#FF BYTE#0 B#2#101 Byte#'ä' b#16#f

CHAR 8 bits (1 caractère ASCII)

'A' CHAR#49

STRING 254 caractères ASCII maximum 'adresse'

WORD Nombre hexadécimal de 16 bits Nombre octal de 16 bits Nombre binaire de 16 bits

W#16#0000 W#16#FFFF word#16#f WORD#8#177777 8#177777 W#2#1001_0100 WORD#32768

DWORD Nombre hexadécimal de 32 bits Nombre octal de 32 bits Nombre binaire de 32 bits

DW#16#0000_0000 DW#16#FFFF_FFFF Dword#8#37777777777 8#37777777777 DW#2#1111_0000_1111_0000 dword#32768

Page 181: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-5

Type de données Description Exemples en S7-SCL Exemples en LIST, si différents

INT 16 bits Nombre à virgule fixe

-32768 +32767 INT#16#3f_ff int#-32768 Int#2#1111_0000 inT#8#77777

DINT 32 bits Nombre à virgule fixe

-2147483648 +2147483647 DINT#16#3fff_ffff dint#-65000 Dint#2#1111_0000 dinT#8#17777777777

L#-2147483648 L#+2147483647

REAL Nombre à virgule flottante de 32 bits

Représentation décimale 123.4567 REAL#1 real#1.5 Représentation exponentielle real#2e4 +1.234567E+02

S5TIME 16 bits Durée en format SIMATIC

T#0ms TIME#2h46m30s T#0.0s TIME#24.855134d

S5T#0ms S5TIME#2h46m30s

TIME 32 bits Durée en format CEI

-T#24d20h31m23s647ms TIME#24d20h31m23s647ms T#0.0s TIME#24.855134d

DATE 16 bits Date

D#1990-01-01 DATE#2168-12-31

TIME_OF_DAY 32 bits Heure du jour

TOD#00:00:00 TIME_OF_DAY#23:59:59.999

DATE_AND_TIME

Date et heure DT#1995-01-01-12:12:12.2

Page 182: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-6 A5E00324651-01

9.1.3.1 Constante binaire

Les constantes binaires contiennent des valeurs de 1 bit, 8 bits, 16 bits ou 32 bits de longueur. Vous pouvez les affecter dans le programme S7-SCL à des variables de types de données BOOL, BYTE, WORD ou DWORD (selon la longueur).

Syntaxe

CONSTANTE BINAIRE

(1) pour le type BYTE seulement

SUITE DE CHIFFRES DECIMAUXSUITE DE CHIFFRES OCTAUXSUITE DE CHIFFRES HEXA

SUITE DE CHIFFRES BINAIRESCARACTERES (1)WORD#

BOOL#

BYTE#

DWORD#

Suite de chiffres décimaux

Dans une constante, une suite de chiffres décimaux peut être séparée par des caractères de soulignement pour améliorer la lisibilité des grands nombres ; ceci est facultatif. Voici des notations correctes de suites de chiffres décimaux dans les constantes :

DW#2#1111_0000_1111_0000 dword#32768

Valeurs binaires, octales et hexadécimales

Pour indiquer une constante entière dans un autre système de numération que le système décimal, il faut placer devant le préfixe 2#, 8# ou 16#, suivi du nombre dans la représentation du système respectif. La figure suivante prend pour exemple une suite de chiffres formant un nombre octal :

_Caractère de soulignement

8# Chiffre octal

Suite de chiffres octaux

Exemple

Les exemples suivants montrent des notations correctes de constantes binaires :

Bool#false 8#177777 DW#16#0000_0000

Page 183: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-7

9.1.3.2 Constante entière

Les constantes entières contiennent des valeurs entières de 16 bits ou 32 bits de longueur. Vous pouvez les affecter dans le programme S7-SCL à des variables du type de données INT ou DINT (suivant la longueur).

Syntaxe

CONSTANTE ENTIERE

(1) pour le type INT seulement

SUITE DE CHIFFRES OCTAUX

SUITE DE CHIFFRES BINAIRESCARACTERES (1)

SUITE DE CHIFFRES HEXA

INT#

DINT#

SUITE DE CHIFFRES DECIMAUX+

-

Suite de chiffres décimaux

Dans une constante, une suite de chiffres décimaux peut être séparée par des caractères de soulignement pour améliorer la lisibilité des grands nombres ; ceci est facultatif. Voici des notations correctes de suites de chiffres décimaux dans les constantes : 1000 1_120_200 666_999_400_311

Valeurs binaires, octales et hexadécimales

Vous pouvez indiquer une constante entière dans un autre système de numération que le système décimal, en plaçant devant le préfixe 2#, 8# ou 16#, suivi du nombre dans la représentation du système respectif.

Exemple

Les exemples suivants montrent des notations correctes de constantes entières : Valeur_2:=2#0101; // Nombre binaire, valeur décimale 5 Valeur_3:=8#17; // Nombre octal, valeur décimale 14 Valeur_4:=16#F; // Nombre hexadécimal, valeur décimale 15 Valeur_5:=INT#16#3f_ff // Nombre hexadécimal, notation typée

Page 184: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-8 A5E00324651-01

9.1.3.3 Constante réelle

Les constantes réelles sont des valeurs comportant des positions après la virgule. Vous pouvez les affecter à des variables de type de données REAL.

Syntaxe

CONSTANTE REELLE

. Exposant

.

-

+

SUITE DE CHIFFRE DECIMAUX

REAL#

SUITE DE CHIFFRE DECIMAUX

SUITE DE CHIFFRE DECIMAUX

SUITE DE CHIFFRE DECIMAUX

L'indication du signe est facultative. En l'absence de signe, le nombre est interprété comme nombre positif.

Dans une constante, une suite de chiffres décimaux peut être séparée par des caractères de soulignement pour améliorer la lisibilité des grands nombres ; ceci est facultatif. Voici des notations correctes de suites de chiffres décimaux dans les constantes : 1000 1_120_200 666_999_400_311

Exposants

En notation exponentielle, vous pouvez avoir recours à un exposant pour indiquer des nombres à virgule flottante. L'exposant est indiqué par la lettre "E" ou "e", suivie du nombre entier.

La grandeur 3x1010 peut être représentée en S7-SCL par les nombres réels suivants : 3.0E+10 3.0E10 3e+10 3E10 0.3E+11 0.3e11 30.0E+9 30e9

Exemples NOMBRE4:= -3.4 ; NOMBRE5:= 4e2 ; NOMBRE6:= real#1.5;

Page 185: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-9

9.1.3.4 Constante sur caractère (caractère unique)

La constante sur caractère contient un caractère et un seul placé entre deux apostrophes ('). Elle ne peut pas être employée dans des expressions.

Syntaxe

CONSTANTE SUR CARACTERE

' 'CaractèreCHAR#

SUITE DE CHIFFRES DECIMAUX

Exemple Caractère_1 := 'B'; Caractère_2 := char#43; Caractère_3 := char#'B';

Page 186: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-10 A5E00324651-01

Syntaxe du caractère

Il peut provenir du jeu étendu complet de caractères ASCII. Pour saisir un caractère de mise en forme spécial, une apostrophe (') ou le caractère $, placez devant le caractère $.

Vous pouvez également utiliser des caractères non imprimables du jeu de caractères ASCII étendu. Il vous suffit pour cela d'indiquer leur représentation en code hexadécimal.

Exemple de caractère en code hexadécimal : CARACTERE := '$41' ; //équivaut au caractère 'A' Espace :='$20'; //équivaut au caractère |_|

Page 187: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-11

9.1.3.5 Constante sur chaîne

Une constante sur chaîne est une chaîne de 254 caractères au maximum. Les caractères sont placés entre deux apostrophes ('). Les constantes sur chaîne ne peuvent pas être employées dans les expressions.

Syntaxe

' 'de la chaîneInterruption

CaractèreCaractère

CONSTANTE SUR CHAINE

Syntaxe du caractère

Vous pouvez utiliser tous les caractères de tout le jeu de caractères ASCII étendu. Pour saisir un caractère de mise en forme spécial, une apostrophe (') ou le caractère $, placez devant le caractère $.

Vous pouvez aussi utiliser les caractères non imprimables du jeu de caractères ASCII étendu complet. Il vous suffit pour cela d'indiquer leur représentation en code hexadécimal.

Page 188: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-12 A5E00324651-01

Interruption d'une chaîne de caractères

Vous pouvez interrompre plusieurs fois puis continuer une constante sur chaîne.

Une chaîne de caractères peut figurer sur une seule ligne d'un bloc S7-SCL ou être répartie sur plusieurs lignes avec des codes spéciaux. Le code $> sert à interrompre une chaîne et le code $< sert à la continuer à la ligne suivante. L'espace entre le code d'interruption et le code de continuation peut s'étendre sur plusieurs lignes ; il ne doit pas contenir autre chose que des caractères d'espacement et du commentaire.

Interruption d'une chaîne de caractères

$<

Commentaire

Caractère demise en forme

$>

Caractère d'espacement (blank)de changement de ligne (linefeed)de retour chariot (carriage return)de saut de page (formfeed, page)de tabulation horizontale (tabulator)

Exemples // Constante sur chaîne: NOM:= 'SIEMENS'; //Interruption d'une constante sur chaîne MESSAGE1:= 'MOTEUR- $> $< Commande'; // Chaîne en représentation hexadécimale: MESSAGE1:= '$41$4E' (*suite de caractères AN*);

Page 189: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-13

9.1.3.6 Constante de date

Une date est introduite par les préfixes DATE# ou D#. Pour indiquer la date, vous utilisez des nombres entiers pour l'année (4 positions), le mois et le jour, séparés par des tirets.

Syntaxe

- -

Année Mois Jour

Indication de la date

SUITE DE CHIFFRES DECIMAUX

SUITE DE CHIFFRES DECIMAUX

SUITE DE CHIFFRES DECIMAUX

Exemple VARIABLE_TEMPS1:= DATE#1995-11-11 ; VARIABLE_TEMPS2:= D#1995-05-05 ;

9.1.3.7 Constante de durée

Une durée est introduite par les préfixes TIME# ou T#. Il y a deux façons d'indiquer la durée :

• La représentation décimale

• La représentation par niveaux

Syntaxe

TIME#

T# Représentation par niveau

Représentation décimale

Représentation décimale

-Chaque unité de temps (heures, minutes) ne doit être indiquée qu'une seule fois-L'ordre - jours, heures, minutes, secondes, millisecondes - doit être respecté

Durée

Passer de la représentation par niveaux à la représentation décimale n'est possible que tant que les unités horaires ne sont pas encore indiquées.

Après les préfixes introductifs T# ou TIME#, vous devez indiquer au moins une unité horaire.

Page 190: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-14 A5E00324651-01

Représentation décimale

Utilisez la représentation décimale si vous souhaitez indiquer sous forme de nombre décimal un composant horaire, comme par exemple les heures ou les minutes.

Pour passer à la représentation décimale, il faut que les unités temporellesn'aient pas encore été définies

. D

. H

. M

. S

. MS

Jours

Heures

Minutes

Secondes

Millisecondes

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

Représentation décimale

Page 191: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-15

Représentation par niveaux

La représentation par niveaux est une suite de composants horaires individuels. Vous indiquez d'abord les jours, puis les heures, etc., séparés par des caractères de soulignement, l'omission de composants étant permise. Vous devez cependant en indiquer une au moins.

_D

Jours

_H

Heures

_M

Minutes

_S

Secondes

Millisecondes

_MS

SUITE DE CHIFFRESDECIMAUX

Représentation par niveaux

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

Exemple // Représentation décimale Intervalle1:= TIME#10.5S ; // Représentation par niveaux Intervalle2:= T#3D_2S_3MS ; // Représentation par niveaux et décimale Intervalle3 := T#2D_2.3s ;

Page 192: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-16 A5E00324651-01

9.1.3.8 Constante d'heure du jour

L'heure du jour est introduite par les préfixes TIME_OF_DAY# ou TOD#.

Syntaxe

Heure du jour

TIME_OF_DAY#

TOD#

Indication de l'heure du jour

Pour indiquer l'heure du jour, vous entrez les heures, minutes et secondes séparées par deux-points. L'indication des millisecondes est facultative. Elle est séparée des autres par un point.

Indication de l'heure du jour

Indication de l'heure du jour

: :

Indication des heures Indication des minutes

.

Indication des millisecondesIndication des secondes

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

Exemple HEURE1:= TIME_OF_DAY#12:12:12.2 ; HEURE2:= TOD#11:11:11 ;

Page 193: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 9-17

9.1.3.9 Constante de date et d'heure

L'indication de la date et de l'heure est introduite par les préfixes DATE_AND_TIME# ou DT#. Il s'agit d'une constante composée de l'indication de la date et de celle de l'heure du jour.

Syntaxe

DATE_AND_TIME#

DT#

Indication de la date - Indication de l'heure du jour

Date et heure

Indication de la date

- -

Année Mois Jour

Indication de la date

SUITE DE CHIFFRES DECIMAUX

SUITE DE CHIFFRES DECIMAUX

SUITE DE CHIFFRES DECIMAUX

Indication de l'heure du jour

Indication de l'heure du jour

: :

Indication des heures Indication des minutes

.

Indication des millisecondesIndication des secondes

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

Exemple HEURE1:= DATE_AND_TIME#1995-01-01-12:12:12.2 ; HEURE2:= DT#1995-02-02-11:11:11;

Page 194: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Déclaration de constantes et repères de saut

S7-SCL V5.3 pour S7-300/400 9-18 A5E00324651-01

9.2 Déclaration de repères de saut

Les repères de saut (labels) servent à définir la destination d'une instruction GOTO. Vous les déclarez dans la section de déclaration d'un bloc de code en indiquant leur mnémonique.

Syntaxe

Section de déclaration des repères de saut

LABEL END_LABEL;

,

Repère de saut

IDENTIFICATEUR

Exemple LABEL REPERE1, REPERE2, REPERE3; END_LABEL

Page 195: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 10-1

10 Données globales

10.1 Présentation des données globales

Dans S7-SCL, vous avez la possibilité d'adresser des données globales. Il en existe deux sortes :

• Les zones de mémoire de la CPU

Il s'agit de données déclarées dans le système comme par exemple les entrées, les sorties et les mémentos. Leur nombre dépend de votre CPU.

• Les données utilisateur globales, sous forme de blocs de données que vous pouvez charger

Ces zones de données se trouvent dans des blocs de données. Pour pouvoir les utiliser, vous devez préalablement créer les blocs et y déclarer les données. Dans le cas de blocs de données d'instance, elles résultent de blocs fonctionnels et sont générées automatiquement.

Adressage des données globales

L'adressage des données globales peut être :

• Absolu : par un identificateur d'opérande et une adresse absolue.

• Symbolique : par un mnémonique que vous avez préalablement défini dans la table des mnémoniques.

• Indexé : par un identificateur d'opérande et un indice de tableau.

• Structuré : par une variable.

Mode d'adressage Zones de mémoire de la CPU Données utilisateur globales

Absolu oui oui

Symbolique oui oui

Indexé oui oui

Structuré non oui

Page 196: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 10-2 A5E00324651-01

10.2 Zones de mémoire de la CPU

10.2.1 Présentation des zones de mémoire de la CPU

Les zones de mémoire d'une CPU sont déclarées dans le système. Vous n'avez donc pas besoin de les déclarer dans votre bloc de code. Chaque CPU met à votre disposition les zones de mémoire suivantes possédant leur propre espace d'adressage :

• Entrées/sorties dans la mémoire image (par exemple A1.0)

• Entrées/sorties de périphérie (par exemple PA1.0)

• Mémentos (par exemple M1.0)

• Temporisations, compteurs (C1)

Syntaxe de l'adressage

Vous adressez une zone de mémoire de la CPU dans une affectation de valeur réalisée dans la section des instructions d'un bloc de code par :

• Adressage simple indiqué de manière absolue ou symbolique, ou

• adressage indexé.

IDENTIFICATEUR

Adressage absolu

Adressage symbolique

Indice

D'OPERANDE

IDENTIFICATEUR

Mnémonique

Adresse

IDENTIFICATEURD'OPERANDE

Adressage simple de la mémoire

,

Expressionde base[ ]

Adressage indexé de la mémoire

Page 197: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 10-3

10.2.2 Adressage absolu des zones de mémoire de la CPU

L'adressage absolu d'une zone de mémoire de la CPU s'effectue, par exemple, au moyen de l'affectation d'un identificateur absolu à une variable de même type.

ETAT_2:= EB10;

Variable de même type

Adressage absolu

L'identificateur absolu renvoie à une zone de mémoire dans la CPU que vous spécifiez en indiquant l'identificateur d'opérande (EB dans notre exemple) suivi de l'adresse (ici 10).

Syntaxe de l'identificateur absolu

Préfixede mémoire

Préfixede taille

Identificateur d'opérande

Préfixe de mémoire

Le préfixe de mémoire vous permet de déterminer la nature des zones de mémoire à adresser.

Entrée

Sortie

Mémento

Périphérie des entrées

Périphérie des sorties

I

Q

M

PQ

A

M

PA

E

PIPE

Préfixe de mémoire

Abréviations allemandes Abréviations anglaises

Selon le jeu d'abréviations sélectionné, la signification des identificateurs d'opérandes allemands ou anglais est réservée.

Page 198: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 10-4 A5E00324651-01

Préfixe de taille

En indiquant le préfixe de taille, vous spécifiez la largeur de la zone de mémoire qui doit être lue dans la périphérie. Vous pouvez par exemple lire un octet ou un mot. Si vous ne souhaitez spécifier qu'un bit, l'indication du préfixe de taille est facultative.

Bit

Octet

Mot

Double mot

X

W

D

B

Préfixe de taille

Adresse

Pour préciser l'adresse, vous devez d'abord indiquer l'adresse d'octet absolue, puis séparée par un point, l'adresse de bit de l'octet concerné. L'indication de l'adresse de bit est facultative.

.Numéro Numéro

uniquement pour une adresse binaire

Adresse

Exemples OCTET_ETAT :=EB10; ETAT_3 :=E1.1; VAL_MESURE :=EW20;

Page 199: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 10-5

10.2.3 Adressage symbolique des zones de mémoire de la CPU

L'adressage symbolique vous permet d'utiliser des mnémoniques au lieu des identificateurs absolus pour adresser les zones de mémoire de la CPU.

Vous associez les mnémoniques aux opérandes respectifs de votre programme utilisateur dans la table de mnémoniques. La commande Outils > Table des mnémoniques vous permet à tout moment d'ouvrir la table de mnémoniques depuis S7-SCL pour y ajouter d'autres mnémoniques.

Tous les types de données simples sont autorisés, si tant est que leur longueur suffit à la longueur d'adressage. Le tableau ci-après donne un exemple de table des mnémoniques.

Mnémonique Opérande Type de données Commentaire

Contact_moteur_1 E 1.7 BOOL Commutateur de contact 1 pour le moteur A

Entrée1 EW 10 INT Mot d'état

Adressage

Pour réaliser l'adressage, vous affectez le mnémonique déclaré à une variable de même type.

Exemple VAL_MESURE_1 := Contact_moteur_1; Etat_moteur1 := entree1 ;

Page 200: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 10-6 A5E00324651-01

10.2.4 Adressage indexé des zones de mémoire de la CPU

Vous avez également la possibilité d'accéder aux zones de mémoire de la CPU de manière indexée. Par rapport à l'adressage absolu, l'avantage réside dans le fait que vous pouvez adresser les zones de mémoire de manière dynamique, en utilisant des indices variables. Ainsi, vous pouvez par exemple utiliser la variable de contrôle d'une boucle FOR comme adresse.

L'adressage indexé d'une zone de mémoire ressemble à l'adressage absolu. La seule différence réside dans l'indication de l'adresse. A la place de l'adresse, vous spécifiez un indice qui peut être une constante, une variable ou une expression arithmétique.

Pour l'adressage indexé, l'identificateur absolu est composé de l'identificateur d'opérande (préfixe de mémoire et préfixe de taille) et d'une expression de base pour l'indexation.

Préfixe de mémoire

Préfixe de taille

E X [i,j]

Identificateur d'opérande

AdresseExpression de basecomme indice,indiquée entre crochets

Syntaxe de l'identificateur absolu

,[ ]Préfixe de mémoire

Préfixe de taille

Identificateur d'opérande Indice

Pour adressage binaire seulement

Expressionde base

Expressionde base

L'indexation (expression de base) doit être conforme aux règles suivantes :

• Chaque indice doit être une expression arithmétique du type de données INT.

• Dans le cas d'un adressage du type de données BYTE, WORD ou DWORD, vous devez utiliser un indice et un seul. Il est interprété comme adresse d'octet. La longueur d'adressage est déterminée par le préfixe de taille.

• Dans le cas d'un adressage du type de données BOOL, vous devez utiliser deux indices. Le premier spécifie l'adresse d'octet, le second la position du bit dans cet octet.

Exemple VAL_MESURE_1 :=EW[COMPTEUR]; REPERE :=E[NºOCTET, NºBIT];

Page 201: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 10-7

10.3 Blocs de données

10.3.1 Présentation des blocs de données

Dans les blocs de données, vous pouvez enregistrer et traiter pour votre application toutes les données valables pour l'ensemble du programme ou du projet. Tout bloc de code a accès en écriture ou en lecture aux données utilisateur globales.

Adressage

Il y a plusieurs façons d'adresser les données d'un bloc de données global :

• Adressage absolu ou simple,

• Adressage structuré ,

• Adressage indexé.

,

Expressionde base[ ]Identificateur d'opérande

Adressage absolu d'un DB

Adressage structuré d'un DB

AdresseIdentificateur d'opérande

. Variablesimple

Adressage indexé d'un DB Index

Identificateur d'opérande

Adressage symbolique d'un DB

. VariablesimpleMnémonique d'un DB

Page 202: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 10-8 A5E00324651-01

10.3.2 Adressage absolu des blocs de données

De même que pour les zones de mémoire de la CPU, l'adressage absolu d'un bloc de données est réalisé par affectation d'une valeur à une variable de même type. Après la désignation du DB, vous indiquez le mot-clé "D" avec le préfixe de taille (par exemple X pour bit) et l'adresse d'octet (par exemple 13.1).

ETAT_5:= DB11.DX13.1;

Variable de même type

Adresse

Désignation du DBPréfixe de taille

Syntaxe

Vous spécifiez l'adressage en indiquant la désignation du DB, suivie du préfixe de taille et de l'adresse.

. D Préfixede taille Adresse

Identificateur d'opérande

Adressage absolu d'un DB

DESIGNATIONDU DB

Préfixe de taille

Le préfixe de taille indique la longueur de la zone de mémoire qui doit être adressée dans le bloc de données. Vous pouvez par exemple lire un octet ou un mot du DB. Si vous ne souhaitez spécifier qu'un bit, l'indication du préfixe de taille est facultative.

Bit

Octet

Mot

Double mot

X

W

D

B

Préfixe de taille

Page 203: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 10-9

Adresse

Pour préciser l'adresse, vous devez d'abord indiquer l'adresse d'octet absolue, puis séparée par un point, l'adresse de bit de l'octet concerné (uniquement en cas d'adressage binaire).

.Numéro Numéro

uniquement pour une adresse binaire

Adresse

Exemple

Voici quelques exemples d'adressage absolu d'un bloc de données. Le bloc de données lui-même est indiqué de manière absolue dans la première partie et de manière symbolique dans la seconde : OCTET_ETAT :=DB101.DB10; ETAT_3 :=DB30.D1.1; VAL_MESURE :=DB25.DW20; OCTET_ETAT :=Donnees_etat.DB10; ETAT_3 :="Nouvelles_donnees".D1.1; VAL_MESURE :=Donnees_mesure.DW20.DW20; ETAT_1 :=WORD_TO_BLOCK_DB (INDICE).DW10;

Page 204: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 10-10 A5E00324651-01

10.3.3 Adressage indexé des blocs de données

Vous avez également la possibilité d'accéder aux blocs de données de manière indexée. Par rapport à l'adressage absolu, l'avantage réside dans le fait que vous pouvez adresser des opérandes dont l'adresse n'est connue qu'à l'exécution. Ainsi, vous pouvez par exemple utiliser la variable de contrôle d'une boucle FOR comme adresse.

L'adressage indexé d'un bloc de données s'effectue de manière similaire à l'adressage absolu. Seule l'indication de l'adresse est différente.

A la place de l'adresse, vous spécifiez un indice qui peut être une constante, une variable ou une expression arithmétique.

L'adressage indexé est composé de la désignation du DB, de l'identificateur d'opérande (mot-clé "D" et préfixe de taille) ainsi que d'une expression de base pour l'indexation.

Préfixe de mémoirePréfixe de taille

D X [i,j]

Identificateur d'opérande

AdresseExpression de base comme indice,indiquée entre crochets

Désignation du DB.

Syntaxe

DDU DBIDENTIFICATION Préfixe

de taille

Identificateur d'opérande

. ,de base

Expression[ ]Expressionde base

L'indexation doit être conforme aux règles suivantes :

• Dans le cas d'un adressage du type de données BYTE, WORD ou DWORD, vous devez utiliser un indice et un seul. Il est interprété comme adresse d'octet. La longueur d'adressage est déterminée par le préfixe de taille.

• Dans le cas d'un adressage du type de données BOOL, vous devez utiliser deux indices. Le premier spécifie l'adresse d'octet, le second la position du bit dans cet octet.

• Chaque indice doit être une expression arithmétique du type de données INT.

Exemple ETAT_1:= DB11.DW[COMPTEUR]; ETAT_2:= DB12.DX[NºMOT, NºBIT]; ETAT_1:= Base_de_donnees1.DW[COMPTEUR]; ETAT_2:= Base_de_donnees2.DX[NºMOT, NºBIT]; ETAT_1:= WORD_TO_BLOCK_DB(INDICE).DW[COMPTEUR];

Page 205: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 10-11

10.3.4 Adressage structuré des blocs de données

L'adressage structuré est réalisé au moyen de l'identificateur de la variable déclarée dans le bloc de données. Vous pouvez affecter la variable à toute variable de même type.

Pour référencer la variable dans le bloc de données, vous indiquez le nom du DB, puis séparé par un point, le nom de la variable simple.

Syntaxe

. VariableIDENTIFICATIONDU DB simple

Ce faisant, la variable simple représente une variable à laquelle vous avez affecté un type de données simple ou complexe lors de la déclaration du DB.

L'utilisation, pour introduire l'adressage d'un bloc de données, d'un paramètre de type BLOCK_DB ou du résultat de la fonction de conversion WORD_TO_BLOCk_DB ne permet pas l'adressage structuré, mais seulement l'adressage absolu ou indexé.

Exemple Dans la section de déclaration du FB10 : VAR Résultat : STRUCT RES1 : INT; RES2 : WORD; END_STRUCT END_VAR Type de données utilisateur UDT1 TYPE UDT1 STRUCT RES1 : INT; RES2 : WORD; END_STRUCT DB20 avec type de données utilisateur : DB20 UDT1 BEGIN ... DB30 sans type de données utilisateur : DB30 STRUCT RES1 : INT; RES2 : WORD; END_STRUCT BEGIN ... Bloc fonctionnel avec les adressages : .. FB10.DB10(); MOT_RES_A := DB10.resultat.RES2; MOT_RES_B := DB20.RES2; MOT_RES_C := DB30.RES2;

Page 206: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Données globales

S7-SCL V5.3 pour S7-300/400 10-12 A5E00324651-01

Page 207: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 11-1

11 Expressions, opérations et opérandes

11.1 Opérations

Une expression se compose d'opérations et d'opérandes. La plupart des opérations de S7-SCL combinent deux opérandes et sont par suite qualifiées de binaires. Les autres opérations n'utilisant qu'un opérande sont des opérations unaires.

Une opération binaire s'écrit entre les opérandes (par exemple A + B). Une opération unaire précède immédiatement son opérande (par exemple -B).

C'est la priorité des opérations, indiquée dans le tableau suivant, qui détermine l'ordre de calcul. Le chiffre "1" correspond à la priorité la plus élevée.

Classe Opération Représentation Priorité

Opération d'affectation : Affectation : = 11 Opérations arithmétiques : Puissance

Opérations unaires Plus unaire Moins unaire Opérations arithmétiques de base Multiplication Division Fonction modulo Division entière Addition Soustraction

** + - * / MOD DIV + -

2 3 3 4 4 4 4 5 5

Opérations de comparaison : Infériorité Supériorité Infériorité ou égalité Supériorité ou égalité Egalité Différence

< > <= >= = <>

6 6 6 6 7 7

Opérations logiques : Négation

NOT 3

Opérations logiques de base Et Ou exclusif Ou

AND ou & XOR OR

8 9 10

Caractères de parenthèse : Parenthèses ( ) 1

Page 208: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 11-2 A5E00324651-01

11.2 Opérandes

Les opérandes sont des objets avec lesquels vous pouvez former une expression. Voici les éléments autorisés pour former des opérandes :

Opérande

Constante

Variable étendue

(Expression)

NOT Opérande

Constantes

Vous pouvez utiliser des constantes sous forme de valeur numérique, de mnémonique ou de chaîne de caractères.

Valeur numérique

Chaîne de caractères

Mnémonique

Constante

Voici des exemples de constantes autorisées : 4_711 4711 30.0 'CARACTERE' FACTEUR

Page 209: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 11-3

Variable étendue

Variable étendue est un terme générique désignant une série de variables qui sont traitées plus en détail au chapitre "Affectations de valeur".

Variable étendue

Variable simple

Variable absolue

Variable dans un DB

Variable dans une

Appel de FC

pour les zones de mémoirede la CPU

instance locale

Exemples de variables correctes : CONSIGNE variable simple EW10 variable absolue E100.5 variable absolue DB100.DW [INDICE] variable dans le DB MOTEUR.VITESSE variable dans l'instance locale SQR (20) fonction standard FC192 (CONSIGNE) appel de fonction

Nota

Dans un appel de fonction, le résultat du calcul, c'est-à-dire la valeur de retour, remplace le nom de la fonction dans l'expression. Les fonctions VOID qui ne possèdent pas de valeur de retour ne sont donc pas autorisées comme opérandes dans des expressions.

Page 210: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 11-4 A5E00324651-01

11.3 Syntaxe d'une expression

Syntaxe

Opérande

( )

+

Expression Expression

Expression **

Puissance

-

Expression

NOT

Expression

Plus unaire

Moins unaire

Négation

Exposants

Expression

Opérations logiques de base

comparaisonOpérations de

arithmétiques de baseOpérations

Résultat d'une expression

Le résultat d'une expression peut être :

• Affecté à une variable

• Utilisé comme condition d'une instruction de contrôle,

• Utilisé comme paramètre pour l'appel d'une fonction ou d'un bloc fonctionnel.

Ordre de calcul

L'ordre de calcul de l'expression est déterminé par :

• Lapriorité des opérations présentes ;

• Leur position de gauche à droite ;

• Les parenthèses utilisées dans le cas d'opérations de même priorité.

Page 211: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 11-5

Règles

Les règles suivantes s'appliquent à la résolution des expressions :

• Un opérande placé entre deux opérations de priorités différentes est toujours lié à celle qui a la plus haute priorité.

• Les opérations sont traitées dans l'ordre hiérarchique.

• Les opérations de même priorité sont traitées de gauche à droite.

• Faire précéder un identificateur d'un signe moins équivaut à le multiplier par -1.

• Les opérations arithmétiques ne peuvent pas venir immédiatement à la suite l'une de l'autre. Ainsi l'expression a * - b n'est pas autorisée, par contre a*(-b) l'est.

• L'utilisation de parenthèses peut annuler la priorité entre des opérations, car les parenthèses possèdent la priorité la plus élevée.

• Les expressions entre parenthèses sont considérées comme des opérandes uniques et sont toujours traitées en premier.

• Le nombre de parenthèses d'ouverture doit être équivalent à celui des parenthèses de fermeture.

• Les opérations arithmétiques ne peuvent s'appliquer à des caractères ou à des données logiques. Ainsi des expressions telles 'A' + 'B' et (n<=0) + (m>0) sont incorrectes.

Exemples d'expressions EB10 // opérande A1 AND (A2) // expression logique (A3) < (A4) // expression de comparaison 3+3*4/2 // expression arithmétique

Page 212: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 11-6 A5E00324651-01

11.4 Expression simple

Dans S7-SCL, on entend par expression simple une expression arithmétique simple. Vous pouvez multiplier ou diviser des valeurs constantes deux par deux, puis combiner ces couples par addition ou soustraction.

Syntaxe d'une expression simple :

+

-

Multiplicationsimple

Expressionsimple

Syntaxe d'une multiplication simple :

*

/

DIV

MOD

Multiplicationsimple

Constante

Expressionsimple( )

-

Exemple : EXPRESSION_SIMPLE= A * B + D / C - 3 * VALEUR1;

Page 213: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 11-7

11.5 Expressions arithmétiques

Il s'agit d'expressions formées d'opérations arithmétiques. Elles permettent de traiter des types de données numériques.

Le tableau ci-après regroupe les opérations possibles et indique à quel type il faut associer le résultat, en fonction des opérandes utilisés. Nous employons les abréviations suivantes :

ANY_INT pour les types de données INT, DINT

ANY_NUM pour les types de données ANY_INT et REAL

Opération Identificateur 1er opérande 2nd opérande Résultat Priorité

Puissance ** ANY_NUM ANY_NUM REAL 2

Plus unaire + ANY_NUM - ANY_NUM 3

TIME - TIME 3

Moins unaire - ANY_NUM - ANY_NUM 3

TIME - TIME 3

Multiplication * ANY_NUM ANY_NUM ANY_NUM 4

TIME ANY_INT TIME 4

Division / ANY_NUM ANY_NUM ANY_NUM 4

TIME ANY_INT TIME 4

Division entière DIV ANY_INT ANY_INT ANY_INT 4

TIME ANY_INT TIME 4

Division modulo MOD ANY_INT ANY_INT ANY_INT 4

Addition + ANY_NUM ANY_NUM ANY_NUM 5

TIME TIME TIME 5

TOD TIME TOD 5

DT TIME DT 5

Soustraction - ANY_NUM ANY_NUM ANY_NUM 5

TIME TIME TIME 5

TOD TIME TOD 5

DATE DATE TIME 5

TOD TOD TIME 5

DT TIME DT 5

DT DT TIME 5

Nota

Le type de données du résultat d'une division (/) est déterminé par le type de données de l'opérande de poids le plus élevé. Si p. ex. deux opérandes du type de données INT sont divisés, le résultat est également du type de données INT (c'est-à-dire 10/3=3 correspond à 10.0/3=3.33).

Page 214: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 11-8 A5E00324651-01

Règles

L'ordre de traitement des opérations dans une expression arithmétique est fonction de leur priorité.

• Pour une meilleure lisibilité, il est recommandé d'indiquer les nombres négatifs entre parenthèses, même lorsque cela n'est pas indispensable.

• Pour les divisions avec deux opérandes entiers de type INT, les opérations "DIV" et "/" fournissent le même résultat (voir l'exemple ci-après).

• Pour les opérations de division "/", "MOD" et "DIV", le second opérande doit être différent de zéro.

• Lorsque l'un des opérandes est du type INT (entier) et le second du type REAL (nombre à virgule flottante), le résultat est toujours du type REAL.

• Pour la soustraction de donnés du type DATE_AND_TIME et TIME, l'opérande avec le type de données TIME doit toujours se trouver à droite de l'opérateur "-".

Exemples // Le résultat (11) de l'expression arithmétique // est affecté à la variable "VALEUR" VALEUR1 := 3 + 3 * 4 / 2 - (7+3) / (-5) ; // La VALEUR de l'expression suivante est 1 VALEUR2 := 9 MOD 2 ;

Page 215: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 11-9

11.6 Expressions logiques

Il s'agit d'une expression formée d'opérations logiques.

Opérations logiques de base

Vous pouvez combiner les opérations AND, &, XOR et OR avec des opérandes logiques (de type BOOL) ou des variables du type de données BYTE, WORD ou DWORD pour former des expressions logiques. L'opération NOT permet de former la négation d'un opérande logique.

AND & XOR OR

Opérateurs logiques de baseNOT n'est pas un opérateur logique de base !L'opérateur agit comme un signe.

Opérations logiques

Le résultat de l'expression est soit TRUE ou FALSE lorsque vous combinez des opérandes booléens, soit un profil binaire après combinaison binaire des deux opérandes.

Le tableau ci-après indique les expressions logiques disponibles ainsi que le type de données du résultat et des opérandes. Nous employons l'abréviation suivante :

ANY_BIT pour les types de données BOOL, BYTE, WORD, DWORD

Opération Identificateur 1er opérande 2nd opérande Résultat Priorité

Négation NOT ANY_BIT - ANY_BIT 3

Intersection AND ANY_BIT ANY_BIT ANY_BIT 8

OU exclusif XOR ANY_BIT ANY_BIT ANY_BIT 9

OU inclusif OR ANY_BIT ANY_BIT ANY_BIT 10

Résultat

Le résultat d'une expression logique sera :

• soit 1 (true) ou 0 (false) dans le cas d'une combinaison d'opérandes booléens,

• soit un profil binaire après la combinaison binaire des deux opérandes.

Page 216: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 11-10 A5E00324651-01

Exemples // Inversion du résultat de l'expression de comparaison IF NOT (COMPTEUR > 5) THEN . . . ; // Inversion du résultat de la première expression de comparaison et // intersection avec le résultat de la seconde expression A := NOT (COMPTEUR1 = 4) AND (COMPTEUR2 = 10) ; // Réunion de deux expressions de comparaison WHILE (A >= 9) OR (INTERROGATION <> "n") DO.... ; // Masquage d'un octet d'entrée (combinaison binaire) Résultat := EB10 AND 2#11110000 ;

Page 217: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 11-11

11.7 Expressions de comparaison

Les opérations de comparaison comparent les valeurs de deux opérandes et fournissent une valeur booléenne. Si la comparaison s'avère juste, le résultat est TRUE, dans le cas contraire il est FALSE.

Syntaxe

>< <>=>=<=

Opération de comparaison

Règles

Le tableau suivant indique les types de données comparables ainsi que les règles à appliquer pour la comparaison :

Type de données

= <> >0 <0 > < Règles

INT Au sein de la classe des types de données numériques, tous les opérateurs de comparaison sont autorisés.

L'opérateur avec le type le plus fort détermine le type de l'opération.

DINT

REAL

BOOL Au sein de la classe des types de données binaires, seul EGAL et DIFFERENT sont autorisés comme opérateurs de comparaison.

L'opérateur avec le type le plus fort détermine le type de l'opération.

BYTE

WORD

DWORD

Page 218: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 11-12 A5E00324651-01

Type de données

= <> >0 <0 > < Règles

CHAR Dans le cas des caractères et des chaînes de caractères, la longueur des variables ainsi que la valeur numérique de chaque caractère ASCII sont pris en compte pour la comparaison.

Dans le cas de STRING, la comparaison est réalisée en interne par les fonctions EQ_STRNG, GE_STRNG, LE_STRNG, GT_STRNG et LT_STRNG de la bibliothèque CEI.

Les opérandes suivants ne sont pas autorisés pour ces fonctions :

• paramètres d'une FC

• paramètre IN_OUT d'un FB du type STRUCT ou ARRAY.

STRING

DATE

TIME

DT Dans le cas de DT, la comparaison est réalisée en interne par les fonctions EQ_DT, GE_ DT, LE_ DT, GT_STRNG et LT_ DT de la bibliothèque CEI.

Les opérandes suivants ne sont pas autorisés pour ces fonctions :

• paramètres d'une FC

• paramètre IN_OUT d'un FB du type STRUCT ou ARRAY.

TOD

S5-TIME Les variables S5-TIME ne sont pas autorisées comme opérandes de comparaison. Une conversion explicite de S5TIME en TIME au moyen de fonctions CEI s'avère nécessaire.

Combinaison de comparaisons

Vous pouvez combiner des expressions de comparaison selon la logique booléenne. Vous pouvez ainsi former des interrogations telles que "si a < b et b < c alors ...".

Les différentes opérations sont exécutées dans l'ordre de priorité. Vous pouvez modifier la priorité à l'aide de parenthèses.

Page 219: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 11-13

Exemples // Comparaison 3 INFERIEUR OU EGAL A 4. Le résultat // est "TRUE" A := 3 <= 4 // Comparaison 7 DIFFERENT DE 7. Le résultat // est "FALSE" 7 <> 7 // Résolution d'une expression de comparaison dans // un aiguillage IF IF COMPTEUR < 5 THEN .... // Combinaison de deux expressions de comparaison Valeur_A > 20 AND Valeur_B < 20 // Combinaison de deux expressions de comparaison avec // des parenthèses A<>(B AND C)

Page 220: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Expressions, opérations et opérandes

S7-SCL V5.3 pour S7-300/400 11-14 A5E00324651-01

Page 221: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-1

12 Instructions

12.1 Affectations de valeur

Une affectation de valeur remplace la valeur momentanée d'une variable par une nouvelle valeur, indiquée sous forme d'expression. Cette expression peut aussi contenir des identificateurs de fonctions qui s'en trouvent activées et fournissent des valeurs correspondantes (valeurs de retour).

Conformément à la figure ci-dessous, l'expression figurant dans la partie droite de l'affectation de valeur est évaluée et le résultat est mémorisé dans la variable dont le nom figure à gauche du signe d'affectation. Les variables autorisées sont indiquées dans la figure suivante.

Syntaxe de l'affectation de valeur :

Affectation de valeur

ExpressionVariable simple

Variable absolue

Variable dans DB

:= ;

Dans zones de mémoire CPU

Variable instance locale

Le type d'une expression d'affectation est celui de l'opérande de gauche. La variable simple peut être d'un type de données simple ou complexe.

Page 222: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-2 A5E00324651-01

12.1.1 Affecter une valeur à une variable de type de données simple

Toute expression et toute variable de type de données simple peuvent être affectées à une autre variable de même type. Identificateur := expression ; Identificateur := variable ;

Exemple FUNCTION_BLOCK FB12 VAR COMMUTATEUR_1 : INT ; COMMUTATEUR_2 : INT ; CONSIGNE_1 : REAL ; CONSIGNE_2 : REAL ; INTERROG_1 : BOOL ; DUREE_1 : S5TIME ; DUREE_2 : TIME ; DATE_1 : DATE ; HEURE_DU_JOUR_1 : TIME_OF_DAY ; END_VAR BEGIN // Affectation d'une constante à une variable COMMUTATEUR_1 := -17 ; CONSIGNE_1 := 100.1 ; INTERROG_1 := TRUE ; DUREE_1 := T#1H_20M_10S_30MS ; DUREE_2 := T#2D_1H_20M_10S_30MS ; DATE_1 := D#1996-01-10 ; // Affectation d'une variable à une autre variable CONSIGNE_1 := CONSIGNE_2 ; COMMUTATEUR_2 := COMMUTATEUR_1 ; // Affectation d'une expression à une variable COMMUTATEUR_2 := COMMUTATEUR_1 * 3 ; END_FUNCTION_BLOCK

Page 223: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-3

12.1.2 Affecter une valeur à des variables de type STRUCT et UDT

Les variables de type STRUCT et UDT sont des variables complexes qui représentent soit une structure complète, soit un composant de cette structure.

Voici des indications correctes de variables complexes : Image //Identificateur d'une structure Image.element //Identificateur d'un composant de structure Image.tableau //Identificateur d'un tableau simple //au sein d'une structure Image.tableau[2,5] //Identificateur d'un composant de tableau //au sein d'une structure

Affectation d'une structure complète

Une structure complète ne peut être affectée à une autre structure que si les types de données et les noms des composants sont identiques. Voici une affectation correcte : nomstruct_1 := nomstruct_2;

Affectation de composants de structure

Vous pouvez affecter à tout composant d'une structure une variable ou une expression de type compatible ou encore un autre composant de structure.

Pour spécifier un composant de structure, vous indiquez l'identificateur de la structure suivi d'un point et de l'identificateur du composant. Voici des affectations correctes : nomstruct_1.element1 := valeur ; nomstruct_1.element1 := 20.0 ; nomstruct_1.element1 := nomstruct_2.element1 ; nomstruct_1.nomtableau1 := nomstruct_2.nomtableau2 ; nomstruct_1.nomtableau[10] := 100 ;

Page 224: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-4 A5E00324651-01

Exemple FUNCTION_BLOCK FB3 VAR VAR_AUX : REAL ; VALEUR_MESURE : STRUCT //Structure cible TENSION : REAL ; RESISTANCE : REAL ; TABLEAU_SIMPLE : ARRAY [1..2, 1..2] OF INT ; END_STRUCT ; VALEUR_EFFECTIVE : STRUCT //Structure source TENSION : REAL ; RESISTANCE : REAL ; TABLEAU_SIMPLE : ARRAY [1..2, 1..2] OF INT ; END_STRUCT ; END_VAR BEGIN //Affectation d'une structure complète à une autre structure //complète VALEUR_MESURE := VALEUR_EFFECTIVE ; //Affectation d'un composant de structure à un autre composant de //structure VALEUR_MESURE.TENSION := VALEUR_EFFECTIVE.TENSION ; //Affectation d'un composant de structure à une variable de type //identique VAR_AUX := VALEUR_EFFECTIVE.RESISTANCE ; //Affectation d'une constante à un composant de structure VALEUR_MESURE.RESISTANCE := 4.5; //Affectation d'une constante à un élément de tableau simple VALEUR_MESURE.TABLEAU_SIMPLE[1,2] := 4; END_FUNCTION_BLOCK

Page 225: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-5

12.1.3 Affecter une valeur à une variable de type ARRAY

Un tableau se compose de 1 à 6 dimensions au maximum et contient des éléments qui sont tous du même type. Deux possibilités s'offrent à vous pour affecter un tableau à une variable. Vous pouvez référencer des tableaux complets ou des tableaux partiels.

Affectation d'un tableau complet

Pour que vous puissiez affecter un tableau complet à un autre tableau, il faut que les types de données des composants et les limites du tableau (plus petit et plus grand indice) soient identiques. Si tel est le cas, indiquez l'identificateur du tableau à la suite du signe d'affectation. Voici une affectation correcte : nomtableau_1:=nomtableau_2;

Nota

Vous ne devez pas affecter de constantes à des tableaux complets.

Affectation d'un composant de tableau

Pour adresser un élément particulier du tableau, vous devez indiquer le nom du tableau suivi des valeurs appropriées des indices entre crochets. A chaque dimension correspond un indice. Ils sont séparés par des virgules et placés entre crochets. Un indice doit être une expression arithmétique de type INT.

Pour affecter une valeur à un tableau partiel, supprimez des indices entre les crochets qui suivent le nom du tableau, en commençant par la droite. Vous adressez ainsi un tableau partiel dont le nombre de dimensions correspond au nombre d'indices omis. Voici des affectations correctes : nomtableau_1[ i ] := nomtableau_2[ j ] ; nomtableau_1[ i ] := expression ; identificateur_1 := nomtableau_1[ i ] ;

Page 226: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-6 A5E00324651-01

Exemple FUNCTION_BLOCK FB3 VAR CONSIGNES : ARRAY [0..127] OF INT ; VALEURS_EFFECTIVES : ARRAY [0..127] OF INT ; //Déclaration d'une matrice (=tableau bidimensionnel) //comportant 3 lignes et 4 colonnes REGULATEUR : ARRAY [1..3, 1..4] OF INT ; //Déclaration d'un vecteur (=tableau unidimensionnel) //à 4 composants REGULATEUR_1 : ARRAY [1..4] OF INT ; END_VAR BEGIN //Affectation d'un tableau complet à un autre tableau CONSIGNES := VALEURS_EFFECTIVES ; //Affectation d'un vecteur à la deuxième ligne //du tableau REGULATEUR REGULATEUR[2] := REGULATEUR_1 ; //Affectation d'un composant de tableau à un composant //du tableau REGULATEUR REGULATEUR[1,4] := REGULATEUR_1 [4] ; END_FUNCTION_BLOCK

Page 227: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-7

12.1.4 Affecter une valeur à une variable de type STRING

Une variable de type STRING contient une chaîne de 254 caractères au maximum. Vous pouvez lui affecter une autre variable de même type. Voici des affectations correctes : variable_string_1 := constante_chaine; variable_string_1 := variable_string_2 ;

Exemple FUNCTION_BLOCK FB3 VAR AFFICHAGE_1 : STRING[50] ; STRUCTURE1 : STRUCT AFFICHAGE_2 : STRING[100] ; AFFICHAGE_3 : STRING[50] ; END_STRUCT ; END_VAR BEGIN // Affectation d'une constante à une variable de type STRING AFFICHAGE_1 := 'Erreur dans le module 1' ; // Affectation d'un composant de structure à une variable // de type STRING. AFFICHAGE_1 := STRUCTURE1.AFFICHAGE_3 ; // Affectation d'une variable STRING à une autre variable // de type STRING If AFFICHAGE_1 <> STRUCTURE1.AFFICHAGE_3 THEN AFFICHAGE_1 := STRUCTURE1.AFFICHAGE_3 ; END_IF; END_FUNCTION_BLOCK

Page 228: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-8 A5E00324651-01

12.1.5 Affecter une valeur à une variable de type DATE_AND_TIME

Le type de données DATE_AND_TIME définit une zone de 64 bits (8 octets) pour indiquer la date et l'heure. A toute variable de type DATE_AND_TIME, vous pouvez affecter une autre variable de même type ou une constante. Voici des affectations correctes : variable_dt_1 := constante_date_heure; variable_dt_1 := variable_dt_2 ;

Exemple FUNCTION_BLOCK FB3 VAR DUREE_1 : DATE_AND_TIME ; STRUCTURE1 : STRUCT DUREE_2 : DATE_AND_TIME ; DUREE_3 : DATE_AND_TIME ; END_STRUCT ; END_VAR BEGIN // Affectation d'une constante à une variable de type DATE_AND_TIME DUREE_1 := DATE_AND_TIME#1995-01-01-12:12:12.2 ; STRUCTURE1.DUREE_3 := DT#1995-02-02-11:11:11 ; // Affectation d'un composant de structure à une variable // de type DATE_AND_TIME DUREE_1 := STRUCTURE1.DUREE_2 ; // Affectation d'une variable DATE_AND_TIME à une // autre variable DATE_AND_TIME If DUREE_1 < STRUCTURE1.DUREE_3 THEN DUREE_1 := STRUCTURE1.DUREE_3 ; END_IF ; END_FUNCTION_BLOCK

Page 229: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-9

12.1.6 Affecter une valeur à une variable absolue pour zones de mémoire

Une variable absolue désigne les zones de mémoire d'une CPU valables globalement. Trois possibilités s'offrent à vous pour adresser ces zones de mémoire :

• Adressage absolu

• Adressage indexé

• Adressage symbolique

Syntaxe de la variable absolue

Préfixede mémoire AdressePréfixe

de taille

Identificateur d'opérande

Variable absolue

Exemple FUNCTION_BLOCK FB3 VAR MOT_ETAT1 : WORD ; MOT_ETAT2 : BOOL ; MOT_ETAT3 : BYTE ; MOT_ETAT4 : BOOL ; ADRESSE : INT ; END_VAR BEGIN ADRESSE := 10 ; // Affectation d'un mot d'entrée à une variable (adressage simple) MOT_ETAT1 := EW4 ; // Affectation d'une variable à un bit de sortie (adressage simple) a1.1 := MOT_ETAT2 ; // Affectation d'un octet d'entrée à une variable (adressage indexé) MOT_ETAT3 := EB[ADRESSE] ; // Affectation d'un bit d'entrée à une variable (adressage indexé) FOR ADRESSE := 0 TO 7 BY 1 DO MOT_ETAT4 := e[1, ADRESSE] ; END_FOR ; END_FUNCTION_BLOCK

Page 230: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-10 A5E00324651-01

12.1.7 Affecter une valeur à une variable globale

L'accès aux données dans des blocs de données s'effectue également en affectant une valeur à une variable de même type et inversement. Vous pouvez affecter à toute variable globale une variable ou une expression de type identique. Vous pouvez adresser ces données de diverses manières :

• Adressage structuré

• Adressage absolu

• Adressage indexé

Syntaxe de la variable de DB

. D Préfixede taille Adresse

DESIGNATIONDU DB

Identificateur d'opérande

Variable de DB

Page 231: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-11

Exemple FUNCTION_BLOCK FB3 VAR REGULATEUR_1 : ARRAY [1..4] OF INT ; MOT_ETAT1 : WORD ; MOT_ETAT2 : ARRAY [0..10] OF WORD ; MOT_ETAT3 : INT ; MOT_ETAT4 : WORD ; ADRESSE : INT ; END_VAR VAR_INPUT MOT_ADRESSE : WORD ; END_VAR BEGIN // Affectation du mot 1 du DB11 // à une variable (adressage simple) MOT_ETAT1 := DB11.DW1 ; // La valeur de la variable "NOMBRE" est affectée à // le composant de la 1ère ligne et de la 1ère // colonne de la matrice (adressage structuré) : REGULATEUR_1[1] := DB11.CHIFFRE; // Affectation du composant "NOMBRE2" // de la structure "NOMBRE1" à la variable MOT_ETAT3 MOT_ETAT3 := DB11.NOMBRE1.NOMBRE2 ; // Affectation d'un mot du DB11 avec adresse indexée // à une variable (adressage indexé) FOR ADRESSE := 1 TO 10 BY 1 DO MOT_ETAT2[ADRESSE] := DB11.DW[ADRESSE] ; // Le paramètre d'entrée MOT_ADRESSE est utilisé ici // comme numéro du DB et l'indice ADRESSE // pour indiquer l'adresse du mot dans le DB MOT_ETAT4 := WORD_TO_BLOCK_DB(MOT_ADRESSE).DW[ADRESSE] ; END_FOR ; END_FUNCTION_BLOCK

Page 232: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-12 A5E00324651-01

12.2 Instructions de contrôle

12.2.1 Présentation des instructions de contrôle

Instructions de sélection

Une instruction de sélection vous permet d'aiguiller le déroulement du programme vers différentes séquences d'instructions en fonction de conditions.

Type de branchement Fonction

Instruction IF L'instruction IF vous permet d'aiguiller le déroulement du programme vers l'une de deux alternatives, en fonction d'une condition qui est soit vraie, soit fausse.

Instruction CASE L'instruction CASE vous permet d'orienter le déroulement du programme vers l'une parmi n variantes, en faisant prendre à une variable une valeur parmi n valeurs possibles.

Traitement de boucles

Vous pouvez programmer l'exécution de boucles en utilisant des instructions d'itération. Une instruction d'itération indique quelles parties d'un programme doivent être répétées en fonction de certaines conditions.

Type de branchement Fonction

Instruction FOR Elle sert à répéter une suite d'instructions tant que la variable de contrôle reste dans la plage de valeurs indiquée.

Instruction WHILE Elle sert à répéter une suite d'instructions tant qu'une condition d'exécution est réalisée.

Instruction REPEAT Elle sert à répéter une suite d'instructions jusqu'à ce qu'une condition d'achèvement soit obtenue.

Saut dans le programme

Un saut dans le programme provoque le saut immédiat à un repère spécifié et donc à une autre instruction dans le même bloc.

Type de branchement Fonction

Instruction CONTINUE Elle sert à abandonner l'exécution du parcours momentané de la boucle.

Instruction EXIT Elle sert à quitter une boucle à un endroit quelconque, que la condition d'abandon soit remplie ou pas.

Instruction GOTO Elle provoque le saut immédiat à un repère de saut spécifié.

Instruction RETURN Elle permet de quitter un bloc en cours d'exécution.

Page 233: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-13

12.2.2 Conditions

Une condition peut être une expression de comparaison, une expression logique ou une expression arithmétique. Elle est du type de données BOOL et peut prendre les valeurs TRUE (VRAI) ou FALSE (FAUX). Une expression arithmétique est TRUE si elle prend une valeur différente de zéro et FALSE si le résultat est égal à zéro. Le tableau suivant présente des exemples de conditions :

Type Exemple

Expression de comparaison TEMPO > 50 COMPTEUR <= 100 CAR1 < 'S'

Expression de comparaison et expression logique (ALPHA <> 12) AND NOT BETA

Opérande booléen E1.1

Expression arithmétique ALPHA = (5 + BETA)

Page 234: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-14 A5E00324651-01

12.2.3 Instruction IF

Il s'agit d'une instruction conditionnelle. Elle propose une ou plusieurs options et sélectionne l'une (ou aucune) des sections d'instructions pour l'exécuter.

L'exécution de l'instruction conditionnelle provoque l'évaluation des expressions logiques spécifiées. Si la valeur d'une expression est vraie, la condition est considérée comme remplie ; elle ne l'est pas si la valeur est fausse.

Syntaxe

Instruction IF

IF THENExpression

ELSIF THENExpression

ELSE END_IF

Section

Section

Sectiondes instructions

Condition

Condition

des instructions

des instructions

Règles régissant l'exécution de l'instruction IF :

• La première suite d'instructions dont l'expression logique est vraie (TRUE) vient à exécution, les autres suites d'instructions ne sont pas exécutées.

• Si aucune expression booléenne n'est vraie (TRUE), c'est la suite d'instructions indiquée après ELSE qui est exécutée (ou aucune instruction s'il n'y a pas de branche ELSE).

• Le nombre d'instructions ELSIF possibles est illimité.

Nota

L'avantage d'utiliser une ou plusieurs branches ELSIF plutôt qu'une séquence d'instructions IF réside dans le fait qu'après la première expression logique vraie, les suivantes ne sont plus évaluées ce qui permet de diminuer la durée d'exécution d'un programme.

Page 235: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-15

Exemple IF E1.1 THEN N := 0 ; SOMME := 0 ; OK := FALSE ; // Attribuer la valeur FALSE au drapeau OK ELSIF START = TRUE THEN N := N + 1 ; SOMME := SOMME + N ; ELSE OK := FALSE ; END_IF ;

Page 236: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-16 A5E00324651-01

12.2.4 Instruction CASE

L'instruction CASE sert à choisir entre 1 à n variantes de parties de programmes. Cette sélection repose sur la valeur en cours d'une expression de sélection.

Syntaxe

Expression de sélection (entier)Instruction CASE

CASE OFExpression

:

Valeur

:ELSE END_CASE

Liste de valeurs Sectiondes instructions

Sectiondes instructions

Règles régissant l'exécution d'une instruction CASE :

• L'expression de sélection doit fournir une valeur de type INTEGER.

• Lors de l'exécution d'une instruction CASE, le programme vérifie si la valeur de l'expression de sélection figure dans la liste de valeurs spécifiée. Si tel est le cas, la section d'instructions affectée à la liste est exécutée.

• Si l'opération de comparaison ne trouve pas la valeur en question dans la liste, c'est la section d'instructions indiquée après ELSE qui est exécutée, ou aucune instruction s'il n'y a pas de branche ELSE.

Page 237: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-17

Liste de valeurs

Elle contient les valeurs autorisées pour l'expression de sélection.

Nombre entier

. .

,

Valeur

ValeurValeur

Liste de valeurs

Règles en vigueur :

• Toute liste de valeurs commence par une constante, une liste de constantes ou une plage de constantes.

• Les valeurs contenues dans la liste doivent être du type de données entier (INTEGER).

• Chaque valeur doit n'y figurer qu'une seule fois.

Valeur

La syntaxe de la valeur est la suivante :

IDENTIFICATEUR

Nom de la constante

Constante numérique

Exemple CASE TW OF 1 : AFFICHAGE:= TEMP_FOUR; 2 : AFFICHAGE:= VITESSE_MOTEUR; 3 : AFFICHAGE:= TARE_BRUTE; AW4:= 16#0003; 4..10: AFFICHAGE:= INT_TO_DINT (TW); AW4:= 16#0004; 11,13,19: AFFICHAGE:= 99; AW4:= 16#0005; ELSE: AFFICHAGE:= 0; TW_ERREUR:= 1; END_CASE ;

Page 238: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-18 A5E00324651-01

12.2.5 Instruction FOR

Une instruction FOR sert à répéter une suite d'instructions aussi longtemps qu'une variable de contrôle se trouve dans la plage de valeurs spécifiée. La variable de contrôle doit être l'identificateur d'une variable locale de type INT ou DINT. En définissant une boucle, l'instruction FOR fixe aussi une valeur initiale et une valeur finale. Toutes deux doivent être du même type que la variable de contrôle.

Syntaxe

FOR TO

DO

Instruction FOR

Expressionde base

Expressionde base

pour la valeur terminale

pour l'incrément

Affectationinitiale

END_FOR

BY

pour la valeur initiale

Sectiondes instructions

Exécution d'une instruction FOR

• Au départ de la boucle, la valeur initiale est attribuée à la variable de contrôle (affectation initiale) qui est ensuite augmentée (pas positif) ou diminuée (pas négatif) du pas indiqué après chaque nouvelle itération, jusqu'à ce que la valeur finale soit atteinte.

• Après chaque parcours, le programme vérifie si la condition (variable de contrôle dans la plage de valeurs) est remplie. Si c'est le cas, la suite d'instructions est exécutée, sinon la boucle (c'est-à-dire la suite d'instructions) est sautée.

Règles

Règles dont il faut tenir compte pour formuler une instruction FOR :

• La variable de contrôle doit être exclusivement du type de données INT ou DINT.

• L'indication de BY [incrément] est facultative. En son absence, la valeur utilisée est +1.

Page 239: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-19

Affectation initiale

Pour la valeur initiale de la variable de contrôle, la syntaxe doit être la suivante. La variable simple se trouvant à gauche de l'affectation doit être du type INT ou DINT.

:= de baseExpressionVariable

étendue

pour la valeur initiale

Instruction initiale

Type de donnéesINT/DINT

Voici des exemples d'affectations initiales correctes : FOR I := 1 TO 20 FOR I := 1 TO (INITIALE + J)

Valeur finale et incrément

Pour former la valeur finale et l'incrément, vous pouvez respectivement créer une expression de base. La syntaxe de l'expression de base doit être la suivante :

de baseExpression

tique de baseOpérateur arithmé-

de baseExpression

Opérande

de baseExpression

( de baseExpression )

+

-

exclusivement pour une instruction FOR

• L'indication de BY [incrément] est facultative. En son absence, la valeur utilisée est +1.

• Valeur initiale, valeur finale et incrément sont des expressions (voir au chapitre "Expressions, opérations, opérandes") dont l'évaluation est réalisée une seule fois au début de l'exécution de l'instruction FOR.

• Il n'est pas permis de modifier la valeur finale et l'incrément pendant l'exécution de la boucle.

Page 240: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-20 A5E00324651-01

Exemple FUNCTION_BLOCK FOR_BSP VAR INDICE: INT ; MOT_CLE: ARRAY [1..50] OF STRING; END_VAR BEGIN FOR INDICE := 1 TO 50 BY 2 DO IF MOT_CLE [INDICE] = 'CLE' THEN EXIT; END_IF; END_FOR; END_FUNCTION_BLOCK

Page 241: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-21

12.2.6 Instruction WHILE

L'instruction WHILE permet de reprendre l'exécution d'une suite d'instructions tant qu'une condition d'exécution est remplie. Cette condition est formée conformément aux règles d'une expression logique.

Syntaxe

Condition d'exécution

Instruction WHILE

END_WHILEWHILE Expression DOSection

des instructions

Règles régissant l'exécution d'une instruction WHILE :

• Avant chaque exécution de la section d'instructions, la condition d'exécution est évaluée (boucle de refus).

• La section d'instructions suivant DO est répétée tant que la condition d'exécution fournit la valeur TRUE.

• Si la condition d'exécution fournit la valeur FALSE, la boucle est sautée et c'est l'instruction suivante qui est exécutée.

Exemple FUNCTION_BLOCK WHILE_BSP VAR INDICE: INT ; MOT_CLE: ARRAY [1..50] OF STRING ; END_VAR BEGIN INDICE := 1 ; WHILE INDICE <= 50 AND MOT_CLE[INDICE] <> 'CLE' DO INDICE := INDICE + 2; END_WHILE ; END_FUNCTION_BLOCK

Page 242: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-22 A5E00324651-01

12.2.7 Instruction REPEAT

L'instruction REPEAT provoque l'exécution répétée de la suite d'instructions figurant entre REPEAT et UNTIL, jusqu'à ce que la condition d'abandon soit remplie. Cette condition est formée suivant les règles d'une expression logique.

Syntaxe

Condition d'abandon

Instruction REPEAT

END_REPEATREPEAT ExpressionUNTILSection

des instructions

La condition est vérifiée à chaque parcours après l'exécution du tronc. Cela signifie que le tronc est exécuté au moins une fois, même si la condition d'abandon est remplie dès le début.

Exemple FUNCTION_BLOCK REPEAT_BSP VAR INDICE: INT ; MOT_CLE: ARRAY [1..50] OF STRING ; END_VAR BEGIN INDICE := 0 ; REPEAT INDICE := INDICE + 2 ; UNTIL INDICE > 50 OR MOT_CLE[INDICE] = 'CLE' END_REPEAT ; END_FUNCTION_BLOCK

Page 243: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-23

12.2.8 Instruction CONTINUE

L'instruction CONTINUE sert à abandonner l'exécution du parcours momentané d'une instruction d'itération (FOR, WHILE ou REPEAT).

Syntaxe

CONTINUE

Instruction CONTINUE

Règles régissant l'exécution d'une instruction CONTINUE :

• Cette instruction provoque l'abandon immédiat de l'exécution de la suite d'instructions.

• Selon que la condition de répétition de la boucle est remplie ou pas, le tronc est exécuté encore une fois ou bien le programme quitte l'instruction d'itération pour exécuter l'instruction immédiatement suivante.

• Dans une instruction FOR, la variable de contrôle est augmentée du pas indiqué, aussitôt après une instruction CONTINUE.

Exemple FUNCTION_BLOCK CONTINUE_EX VAR INDICE :INT ; TABLEAU :ARRAY[1..100] OF INT ; END_VAR BEGIN INDICE := 0 ; WHILE INDICE <= 100 DO INDICE := INDICE + 1 ; // Si TABLEAU[INDICE] est égal à INDICE, // alors TABLEAU [INDICE] n'est pas modifié : IF TABLEAU[INDICE] = INDICE THEN CONTINUE ; END_IF ; TABLEAU[INDICE] := 0 ; // Autres instructions END_WHILE ; END_FUNCTION_BLOCK

Page 244: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-24 A5E00324651-01

12.2.9 Instruction EXIT

L'instruction EXIT sert à quitter une boucle (FOR, WHILE ou REPEAT) à un endroit quelconque, que la condition d'abandon soit remplie ou pas.

Syntaxe

EXIT

Instruction EXIT

Règles régissant l'exécution d'une instruction EXIT :

• Cette instruction provoque l'abandon instantané de l'instruction d'itération qui est dans son entourage immédiat.

• L'exécution du programme se poursuit après la fin de la boucle d'itération (par exemple après END_FOR).

Exemple FUNCTION_BLOCK EXIT_EX VAR INDICE_1 : INT ; INDICE_2 : INT ; INDICE_CHERCHE : INT ; MOT_CLE : ARRAY[1..51] OF STRING ; END_VAR BEGIN INDICE_2 := 0 ; FOR INDICE_1 := 1 TO 51 BY 2 DO // Quitter la boucle FOR si // MOT_CLE[INDICE_1] est égal à 'CLE' IF MOT_CLE[INDICE_1] = 'CLE' THEN INDICE_2 := INDICE_1 ; EXIT ; END_IF ; END_FOR ; // L'affectation de valeur suivante est exécutée // après l'exécution de l'instruction EXIT ou // après la fin normale de la boucle FOR : INDICE_CHERCHE := INDICE_2 ; END_FUNCTION_BLOCK

Page 245: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-25

12.2.10 Instruction GOTO

L'instruction GOTO vous permet de réaliser un saut (un branchement) dans le programme. Elle provoque le saut immédiat à un repère de saut spécifié, c'est-à-dire à une autre instruction dans le même bloc.

L'instruction GOTO ne doit être utilisée qu'à titre exceptionnel, par exemple pour le traitement des erreurs. En effet, son utilisation est contraire aux règles de la programmation structurée.

Syntaxe

GOTO IDENTIFICATEUR

Repère de saut

Branchement deprogramme

"Repère de saut" désignant un repère dans la section de déclaration LABEL/END_LABEL. Il est placé devant l'instruction qui doit être exécutée immédiatement après GOTO.

Règles dont il faut tenir compte pour utiliser une instruction GOTO :

• La cible d'une instruction de saut doit se trouver dans le même bloc.

• La cible doit être univoque.

• Un saut menant dans une boucle n'est pas autorisé. Un saut sortant d'une boucle est possible.

Exemple FUNCTION_BLOCK GOTO_EX VAR INDICE : INT ; A : INT ; B : INT ; C : INT ; MOT_CLE : ARRAY[1..51] OF STRING ; END_VAR LABEL REPERE1, REPERE2, REPERE3 ; END_LABEL BEGIN IF A > B THEN GOTO REPERE1 ; ELSIF A > C THEN GOTO REPERE2 ; END_IF ; // . . . REPERE1: INDICE := 1 ; GOTO REPERE3 REPERE2: INDICE := 2 ; // . . . REPERE3: // . . .

Page 246: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-26 A5E00324651-01

12.2.11 Instruction RETURN

L'instruction RETURN permet de quitter le bloc actif (OB, FB, FC) et de revenir au bloc appelant ou au système d'exploitation, si c'est un OB qui est quitté.

Syntaxe

RETURN

Instruction RETURN

Nota

A la fin de la section d'exécution d'un bloc de code ou de la section de déclaration d'un bloc de données, l'instruction RETURN serait redondante puisqu'elle est exécutée automatiquement.

Page 247: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-27

12.3 Appel de fonctions et de blocs fonctionnels

12.3.1 Appel et transmission de paramètres

Appel de FC et FB

Afin d'assurer une meilleure lisibilité et une maintenance plus aisée des programmes utilisateur, il est usuel de diviser l'ensemble des fonctions d'un programme en tâches partielles, réalisées par des blocs fonctionnels (FB) et des fonctions (FC). Dans un bloc S7-SCL, vous avez également la possibilité d'appeler d'autres FC ou FB, à savoir :

• les blocs fonctionnels et fonctions créés dans S7-SCL,

• les blocs fonctionnels et fonctions créés dans d'autres langages de programmation de STEP 7 (CONT, LOG, LIST),

• des fonctions système (SFC) et blocs fonctionnels système (SFB), disponibles dans le système d'exploitation de votre CPU.

Principe de la transmission de paramètres

Lorsque vous appelez une fonction ou un bloc fonctionnel, un échange de données a lieu entre le bloc appelant et le bloc appelé. Dans l'interface du bloc appelé sont définis des paramètres avec lesquels le bloc travaille. Ce sont les paramètres formels. Leur unique fonction est de réserver la place pour les paramètres qui seront transmis au bloc lors de son appel. Ces derniers sont les paramètres effectifs.

Syntaxe de la transmission de paramètres

Les paramètres à transmettre doivent être indiqués sous forme de liste de paramètres lors de l'appel. Ils doivent figurer entre parenthèses et être séparés par des virgules.

L'exemple suivant montre l'appel d'une fonction indiquant un paramètre d'entrée, un paramètre d'entrée/sortie et un paramètre de sortie.

3 Par_E

LONGUEUR Par_E/S

Somme_chif Par_S

Paramètres formelsParamètres effectifs

Page 248: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-28 A5E00324651-01

L'indication des paramètres a la forme d'une affectation de valeur. Elle consiste en effet à affecter des valeurs (paramètres effectifs) aux paramètres que vous avez définis dans la section de déclaration du bloc appelé (paramètres formels).

FB10.DB20 (X1:=5,X2:=78,......);

Affectation des paramètres

MOTEUR.MARCHE (X1:=5,X2:=78,......);

Appel absolu :

Appel symbolique :

Page 249: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-29

12.3.2 Appel de blocs fonctionnels

12.3.2.1 Appel d'un bloc fonctionnel (FB ou SFB)

Pour l'appel d'un bloc fonctionnel, vous pouvez utiliser aussi bien un bloc de données d'instance global qu'une zone d'instance locale du bloc de données d'instance actif.

C'est l'endroit où les données sont enregistrées qui distingue l'appel d'un FB comme instance locale de son appel comme instance globale. Dans le premier cas, les données ne sont pas stockées dans un DB séparé, mais dans le bloc de données d'instance du FB appelant.

Syntaxe

( Paramètres du FB )

Nom de l'instance locale

IDENTIFICATEUR

.

DESIGNATIONDU FB

DESIGNATIONDU SFB

DESIGNATIONDU DB

Appel d 'un FB

FB : bloc fonctionnelSFB : bloc fonctionnel système

Nom de l'instance globale

Appel comme instance globale

Vous indiquez dans l'instruction d'appel :

• Le nom du bloc fonctionnel ou du bloc fonctionnel système (désignation de FB ou de SFB)

• Le bloc de données d'instance (désignation de DB)

• Les valeurs des paramètres (paramètres du FB)

L'appel d'une instance globale peut être absolu ou symbolique.

FB10.DB20 (X1:=5,X2:=78,......);

Affectation des paramètres

MOTEUR.MARCHE (X1:=5,X2:=78,......);

Appel absolu :

Appel symbolique :

Page 250: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-30 A5E00324651-01

Appel comme instance locale

Vous indiquez dans l'instruction :

• Le nom de l'instance locale (identificateur)

• Les valeurs des paramètres (paramètres du FB)

L'appel d'une instance locale est toujours symbolique. Vous devez déclarer le mnémonique correspondant dans la section de déclaration du bloc appelant.

MOTEUR (X1:=5,X2:=78,......);

Affectation des paramètres

Page 251: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-31

12.3.2.2 Définition des paramètres du FB

A l'appel d'un bloc fonctionnel – comme instance globale ou locale – vous devez définir les paramètres suivants dans la liste des paramètres :

• Les paramètres d'entrée

• Les paramètres d'entrée/sortie

Les paramètres de sortie ne sont pas spécifiés à l'appel d'un FB, mais reçoivent des valeurs après l'appel de ce dernier.

Syntaxe d'une affectation de valeur aux paramètres du FB :

Elle est la même qu'il s'agisse d'appeler une instance globale ou une instance locale.

,

Affectationde l'entrée

Affectation del'entrée/sortie

Paramètres du FB

Pour définir un paramètre, vous devez tenir compte des règles suivantes :

• L'ordre des affectations est quelconque.

• Les types de données paramètre formel et paramètre effectif doivent être identiques.

• Chaque affectation est séparée de la précédente par une virgule.

• Affecter des valeurs aux sorties n'est pas possible dans un appel de FB. La valeur d'un paramètre de sortie que vous avez déclaré est enregistrée dans les données d'instance où elle peut être adressée par tous les FB. Pour la lire, vous devez définir son adressage à partir d'un FB.

• Tenez compte des particularités des paramètres de type de données ANY et de type de données POINTER.

Page 252: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-32 A5E00324651-01

Résultat après l'exécution du bloc

Après l'exécution du bloc

• Les paramètres d'entrée actuels transmis n'ont pas changé ;

• Les valeurs des paramètres d'entrée/sortie transmises mais modifiées sont actualisées, à l'exception des paramètres d'entrée/sortie de type de données simple ;

• Les paramètres de sortie du bloc appelant peuvent être lus dans le bloc de données d'instance ou dans la zone d'instance locale.

Exemple

Voici un exemple d'appel avec définition d'un paramètre d'entrée et d'un paramètre d'entrée/sortie : FB31.DB77(Par_E:=3, Par_ES:=LONGUEUR);

Page 253: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-33

12.3.2.3 Définition des entrées (FB)

Des paramètres effectifs sont affectés aux paramètres formels d'entrée au moyen d'affectations de valeur. Le FB ne peut pas modifier ces paramètres effectifs. L'affectation de valeurs actuelles aux paramètres d'entrée est facultative. Si vous n'indiquez pas de nouveaux paramètres effectifs, les valeurs du dernier appel restent en vigueur.

Paramètres effectifs possibles :

Paramètre effectif Explication

Expression • Expression arithmétique, logique ou de comparaison • Constante

• Variable étendue

Désignation de temporisation/ de compteur

Vous déterminez une temporisation ou un compteur qui doivent être utilisés à l'exécution d'un bloc.

Désignation de bloc Vous déterminez un bloc qui doit être utilisé comme paramètre d'entrée. Le type de bloc (FB, FC, DB) est fixé dans la déclaration du paramètre d'entrée.

Dans la définition du paramètre, vous indiquez l'adresse du bloc sous forme absolue ou symbolique.

Syntaxe

Affectation de l'entrée

:=

Expression

DESIGNATION DELA TEMPORISATION

DESIGNATIONDU BLOC

DESIGNATIONDU COMPTEUR

Paramètre effectif

Nom du paramètred'entrée

IDENTIFICATEUR

(Paramètre formel)

Page 254: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-34 A5E00324651-01

12.3.2.4 Définition des entrées/sorties (FB)

Des paramètres effectifs sont affectés aux paramètres formels d'entrée/sortie du FB appelé au moyen d'affectations de valeur. Les paramètres d'entrée/sortie peuvent être modifiés par le FB appelé. La nouvelle valeur du paramètre qui résulte de l'exécution du FB s'inscrit dans le paramètre effectif où elle écrase la valeur initiale.

Si vous avez déclaré des paramètres d'entrée/sortie dans le FB appelé, vous devez les définir lors du premier appel. Pour les passages suivants, l'indication de paramètres effectifs est facultative. Cependant, dans le cas de paramètres d'entrée/sortie d'un type de données simple, les paramètres effectifs ne sont pas actualisés si les paramètres formels ne sont pas définis lors de l'appel.

Puisque le paramètre effectif attribué peut être modifié durant l'exécution du FB, en sa qualité de paramètre d'entrée/sortie, il doit s'agir d'une variable.

Paramètre effectif Explication

Variable étendue Vous pouvez utiliser les types de variables étendues suivants :

• Variable simple et paramètre

• Adressage de variable absolue

• Adressage de bloc de données

• Appel de fonction

Syntaxe

Affectation de l'entrée/sortie

Paramètre effectifNom du paramètred'entrée/sortie

: = VariableétendueIDENTIFICATEUR

(Paramètre formel)

Nota

• Pour les types de données ANY et POINTER, il faut tenir compte de règles spéciales lors du paramétrage.

• Les paramètres effectifs suivants ne peuvent pas être affectés aux paramètres d'entrée/sortie d'un type de données non simple :

- Paramètre d'entrée/sortie d'un FB

- Paramètre d'une FC

Page 255: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-35

12.3.2.5 Lecture des valeurs de sortie (appel de FB)

Une fois le bloc appelé exécuté, les paramètres de sortie peuvent être lus dans le bloc d'instance globale ou dans la zone d'instance locale à l'aide d'une affectation de valeur.

Exemple RESULTAT := DB10.CONTROLE ;

12.3.2.6 Exemple d'appel d'une instance globale

Un bloc fonctionnel comportant une boucle FOR pourrait se présenter comme dans les exemples suivants. On y suppose que le mnémonique TEST a été déclaré pour le FB17 dans la table des mnémoniques.

Bloc fonctionnel FUNCTION_BLOCK TEST VAR_INPUT VALEUR_FINALE: INT; // Paramètre d'entrée END_VAR VAR_IN_OUT IQ1 : REAL; //Paramètre d'entrée/sortie END_VAR VAR_OUTPUT CONTROLE: BOOL; //Paramètre de sortie END_VAR VAR INDICE: INT; END_VAR BEGIN CONTROLE :=FALSE; FOR INDICE := 1 TO VALEUR_FINALE DO IQ1 :=IQ1*2; IF IQ1 > 10000 THEN CONTROLE := TRUE; END_IF; END_FOR; END_FUNCTION_BLOCK

Page 256: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-36 A5E00324651-01

Appel

Vous pouvez appeler ce FB de l'une des façons suivantes. On suppose que VARIABLE1 a été déclarée comme variable de type REAL dans le bloc appelant. //Appel absolu, instance globale : FB17.DB10 (VALEUR_FINALE:=10, IQ1:=VARIABLE1); //Appel symbolique, instance globale : TEST.TEST_1 (VALEUR_FINALE:= 10, IQ1:= VARIABLE1) ;

Résultat

Une fois le bloc exécuté, la valeur fournie pour le paramètre d'entrée/sortie IQ1 est disponible dans la VARIABLE1.

Lecture de la valeur de sortie

Il y a plusieurs façons de lire le paramètre de sortie CONTROLE : // L'adressage du paramètre de sortie // est réalisé par RESULTAT:= DB10.CONTROLE; //Vous avez également la possibilité d'affecter //directement le paramètre de sortie à un //paramètre d'entrée à l'appel d'un autre FB : FB17.DB12 (ENTREE_1:= DB10.CONTROLE);

Page 257: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-37

12.3.2.7 Exemple d'appel d'une instance locale

Un bloc fonctionnel avec une boucle FOR simple pourrait être programmé comme dans l'exemple "Appel en tant qu'instance globale", le mnémonique TEST ayant été déclaré pour le FB17 dans la table de mnémoniques.

En supposant que VARIABLE1 est déclarée comme variable de type REAL dans le bloc appelant, vous pouvez appeler le FB comme suit.

Appel FUNCTION_BLOCK CALL VAR // Déclaration d'instance locale TEST_L : TEST ; VARIABLE1 : REAL ; RESULTAT : BOOL ; END_VAR BEGIN . . . // Appel, instance locale : TEST_L (VALEUR_FINALE:= 10, IQ1:= VARIABLE1) ;

Lecture de la valeur de sortie

Le paramètre de sortie CONTROLE peut être lu de la manière suivante : // L'adressage du paramètre de sortie // est réalisé par RESULTAT := TEST_L.CONTROLE ; END_FUNCTION_BLOCK

Page 258: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-38 A5E00324651-01

12.3.3 Appel de fonctions

12.3.3.1 Appel d'une fonction (FC)

Pour appeler une fonction, vous indiquez son nom (DESIGNATION DE LA FC, DE LA SFC ou IDENTIFICATEUR) ainsi que la liste des paramètres. Le nom de la fonction qui désigne la valeur de retour peut être absolu ou symbolique : FC31 (X1:=5, Q1:=total_horizontal) // sous forme absolue ECART (X1:=5, Q1=:total_horizontal) // sous forme symbolique

Après l'appel, les résultats de la fonction sont disponibles comme valeurs de retour ou comme paramètres de sortie et d'entrée/sortie (paramètres effectifs).

Syntaxe

( )Paramètresde la FC

Nom de la fonction standardou mnémonique

FC : fonction

SFC : fonction système

Fonction standard réalisée dans le compilateur

DESIGNATIONDE LA FC

DESIGNATIONDE LA SFC

IDENTIFICATEUR

Appel de fonction

Nota

L'appel dans S7-SCL d'une fonction dont la valeur de retour n'a pas été définie peut entraîner une exécution erronée du programme utilisateur.

• Pour une fonction programmée dans S7-SCL, ce cas peut se produire quand la valeur de retour a certes été définie, mais que l'instruction en question n'est pas parcourue.

• Pour une fonction programmée dans CONT/LOG/LIST, ce cas peut se produire quand la fonction a été programmée sans définition de la valeur de retour ou quand l'instruction en question n'est pas exécutée.

Page 259: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-39

12.3.3.2 Valeur de retour (FC)

Contrairement au blocs fonctionnels, les fonctions fournissent la valeur de retour comme résultat. C'est la raison pour laquelle elles peuvent être traitées comme des opérandes (à l'exception des fonctions du type VOID).

La fonction calcule la valeur de retour qui porte le même nom qu'elle et la retourne au bloc appelant, où elle remplace l'appel de la fonction.

L'exemple suivant montre l'appel de la fonction ECART et l'affectation de son résultat à la variable LONGUEUR. LONGUEUR:= ECART (X1:=-3, Y1:=2);

La valeur de retour peut être utilisée dans les éléments suivants d'une FC ou d'un FB :

• Dans une affectation de valeur,

• Dans une expression logique, arithmétique ou de comparaison ou

• Comme paramètre pour un autre appel de bloc fonctionnel ou de fonction.

Nota

• Avec les fonctions dont la valeur de retour est du type ANY, il faut qu'un paramètre d'entrée ou d'entrée/sortie au moins soit aussi du type ANY. Si vous avez défini plusieurs paramètres ANY, vous devez leur affecter des paramètres effectifs de la même classe (par exemple INT, DINT et REAL). La valeur de retour est alors automatiquement du plus grand type de données utilisé dans cette classe.

• La longueur maximale du type de données STRING peut être réduite de 254 caractères à un nombre de caractères quelconque.

Page 260: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-40 A5E00324651-01

12.3.3.3 Paramètres de FC

Contrairement aux blocs fonctionnels, les fonctions n'ont pas de mémoire où enregistrer les valeurs des paramètres. Les données locales ne sont enregistrées que temporairement durant l'exécution de la fonction. C'est la raison pour laquelle, lorsque vous appelez une fonction, vous devez affecter un paramètre effectif à chaque paramètre formel d'entrée, d'entrée/sortie et de sortie que vous avez déclaré dans la section de déclaration de la fonction.

Syntaxe

,

Affectationde l'entrée

Affectation de

l'entrée/sortiela sortie ou de

Expression

Paramètres d'une FC

Règles

Pour définir un paramètre, vous devez tenir compte des règles suivantes :

• L'ordre des affectations est quelconque.

• Les types de données du paramètre formel et du paramètre effectif doivent être identiques.

• Chaque affectation est séparée de la précédente par une virgule.

Exemple

Voici un exemple d'appel avec définition d'un paramètre d'entrée, d'un paramètre de sortie et d'un paramètre d'entrée/sortie : FC32 (Param_e1:=5,Param_es1:=LONGUEUR, Param_s1:=total_horizontal)

Page 261: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-41

12.3.3.4 Définition des entrées (FC)

Des valeurs (paramètres effectifs) sont affectés aux paramètres formels d'entrée de la FC appelée, au moyen d'affectations de valeur. La FC peut travailler avec ces paramètres, mais pas les modifier. Contrairement à ce qui se passe pour l'appel d'un FB, ce paramétrage est obligatoire dans l'appel d'une FC.

Les paramètres effectifs suivants peuvent être affectés à une entrée :

Paramètre effectif Explication

Expression Une expression représente une valeur et se compose d'opérandes et d'opérations. Voici les types d'expressions disponibles :

• Expression arithmétique, logique ou de comparaison

• Constante

• Variable étendue

Désignation de temporisation/ de compteur

Vous déterminez une temporisation ou un compteur qui doivent être utilisés à l'exécution d'un bloc

Désignation de bloc Vous déterminez un bloc qui doit être utilisé comme paramètre d'entrée. Le type de bloc (FB, FC, DB) est fixé dans la déclaration du paramètre d'entrée. En définissant le paramètre, vous indiquez l'adresse du bloc sous forme absolue ou symbolique

Syntaxe

:=

Expression

DESIGNATION DELA TEMPORISATION

DESIGNATIONDU BLOC

DESIGNATIONDU COMPTEUR

Paramètre effectif

IDENTIFICATEUR

Nom du paramètred'entrée

(Paramètre formel)

Affectation de l'entrée

Nota

Pour les paramètres formels d'entrée qui ne sont pas d'un type de données simple, les paramètres d'entrée/sortie de FB et les paramètres de FC ne sont pas autorisés comme paramètres effectifs. Tenez compte aussi des particularités des types de données ANY et POINTER.

Page 262: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-42 A5E00324651-01

12.3.3.5 Définition des sorties et des entrées/sorties (FC)

Définir les sorties consiste à spécifier la variable du bloc appelant dans laquelle seront écrites les valeurs de sortie résultant de l'exécution de la fonction. Définirr les entrées/sorties consiste à affecter une valeur effective à chaque paramètre d'entrée/sortie.

Dans la définition des sorties et des entrées/sorties, les paramètres effectifs doivent être des variables, puisque la FC doit écrire des valeurs dans les paramètres. C'est la raison pour laquelle vous ne pouvez pas affecter un paramètre d'entrée à un paramètre d'entrée/sortie (la nouvelle valeur ne pourrait pas y être écrite). Ainsi donc, seule une variable étendue peut être affectée dans la définition des sorties et des entrées/sorties :

Paramètre effectif Explication

Variable étendue Vous pouvez utiliser les types de variables étendues suivants :

• Variable simple et paramètre

• Adressage de variable absolue

• Adressage de bloc de données

• Appel de fonction

Syntaxe

:= VariableétendueIDENTIFICATEUR

Paramètre effectifNom du paramètrede sortie oud'entrée/sortie

(Paramètre formel)

Affectation de la sortie ou de l'entrée/sortie

Page 263: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-43

Nota

Les paramètres effectifs suivants ne sont pas autorisés pour les paramètres formels d'entrée/sortie :

• Les paramètres d'entrée de FB/FC

• Les paramètres d'entrée/sortie de FB d'un type de données non simple

• Les paramètres de sortie et d'entrée/sortie de FC d'un type de données non simple

Tenez compte aussi des particularités des types de données ANY et POINTER.

La longueur maximale du type de données STRING peut être réduite de 254 caractères à un nombre de caractères quelconque.

Page 264: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-44 A5E00324651-01

12.3.3.6 Exemple d'appel de fonction

Fonction appelée

Soit la fonction ECART permettant de calculer l'écart entre deux points (X1,Y1) et (X2,Y2) dans un plan à l'aide de leur coordonnées cartésiennes (il est supposé que le mnémonique ECART a été déclaré pour la FC37 dans la table des mnémoniques) : FUNCTION ECART: REAL // sous forme symbolique VAR_INPUT X1: REAL; X2: REAL; Y1: REAL; Y2: REAL; END_VAR VAR_OUTPUT Q2: REAL; END_VAR BEGIN ECART:= SQRT( (X2-X1)**2 + (Y2-Y1)**2 ); Q2:= X1+X2+Y1+Y2; END_FUNCTION

Bloc appelant

Diverses possibilités s'offrent à vous pour utiliser ultérieurement la valeur de la fonction : FUNCTION_BLOCK CALL VAR LONGUEUR : REAL ; TOTAL_HORIZONTAL : REAL ; RAYON : REAL; Y : REAL; END_VAR BEGIN . . . // Appel dans une affectation de valeur LONGUEUR := ECART (X1:=3, Y1:=2, X2:=8.9, Y2:= 7.4, Q2:=TOTAL_HORIZONTAL) ; //Appel dans une expression arithmétique ou logique, par exemple Y := RAYON + ECART (X1:=-3, Y1:=2, X2:=8.9, Y2:=7.4, Q2:=total_horizontal) //Utilisation dans la définition des paramètres d'un autre bloc appelé FB32.DB32 (DISTANCE:= ECART (X1:=-3, Y1:=2, X2:=8.9, Y2:=7.4), Q2:=total_horizontal) . . . END_FUNCTION_BLOCK

Page 265: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 12-45

12.3.4 Paramètres définis automatiquement

12.3.4.1 Paramètre d'entrée EN

Tout bloc fonctionnel et toute fonction possèdent un paramètre d'entrée défini automatiquement, le paramètre EN, qui est du type de données BOOL. Il est stocké dans la zone des données temporaires du bloc. Le bloc appelé est exécuté si EN est vrai, sinon il ne l'est pas. L'affectation d'une valeur au paramètre EN est facultative. Il faut cependant veiller à ne pas déclarer EN dans la section de déclaration d'un bloc ou d'une fonction.

EN étant un paramètre d'entrée, vous ne pouvez pas le modifier dans un bloc.

Nota

La valeur de retour d'une fonction n'est pas définie si la fonction n'a pas été appelée (EN : FALSE).

Exemple FUNCTION_BLOCK FB57 VAR MON_ACTIVE: BOOL ; Résultat : REAL; END_VAR // . . . BEGIN // . . . MON_ACTIVE:= FALSE ; // Appel d'une fonction avec définition du paramètre EN : Résultat := FC85 (EN:= MON_ACTIVE, PAR_1:= 27) ; // FC85 n'a pas été exécutée, car MON_ACTIVE a été mis à FALSE ci-dessus.... END_FUNCTION_BLOCK

Page 266: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Instructions

S7-SCL V5.3 pour S7-300/400 12-46 A5E00324651-01

12.3.4.2 Paramètre de sortie ENO

Tout bloc fonctionnel et toute fonction possèdent un paramètre de sortie défini automatiquement, le paramètre ENO, qui est du type de données BOOL. Il est stocké dans la zone des données temporaires du bloc. A la fin de l'exécution d'un bloc, la valeur actuelle du drapeau OK est stockée dans ENO.

Immédiatement après l'appel d'un bloc, vous pouvez vérifier, à l'aide de la valeur de ENO, si toutes les opérations dans le bloc se sont déroulées correctement ou si des erreurs sont survenues.

Exemple // Appel d'un bloc fonctionnel : FB30.DB30 ([définition des paramètres]); // Vérification du déroulement correct dans le bloc appelé : IF ENO THEN // tout s'est déroulé correctement // . . . ELSE // une erreur est survenue et doit être corrigée // . . . END_IF;

Page 267: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-1

13 Compteurs et temporisation

13.1 Compteurs

13.1.1 Fonctions de comptage

STEP 7 vous propose diverses fonctions standard de comptage que vous pouvez utiliser dans votre programme S7-SCL sans devoir les déclarer au préalable. Il vous suffit de leur affecter les paramètres requis. Voici les fonctions de comptage disponibles :

Fonction de comptage Signification

S_CU Compteur incrémental (Counter Up)

S_CD Compteur décrémental (Counter Down)

S_CUD Compteur incrémental/décrémental (Counter Up Down)

13.1.2 Appel d'une fonction de comptage

Les fonctions de comptage sont appelées comme des fonctions. La désignation de fonction peut être employée partout à la place d'un opérande dans une expression, à condition que la valeur de la fonction soit d'un type compatible avec celui de l'opérande remplacé.

La valeur de la fonction (valeur de retour), fournie à la position appelante, est la valeur de comptage actuelle (format DCB) dans le type de données WORD.

Appel absolu ou dynamique

Vous pouvez entrer une valeur absolue comme numéro de compteur dans l'appel (par ex. C_NO:=Z10). Mais il faut savoir qu'une telle valeur n'est plus modifiable à l'exécution.

A la place du numéro de compteur absolu, vous pouvez aussi indiquer une variable ou une constante du type de données INT. Ceci a l'avantage de permettre un appel dynamique de la fonction de comptage, si vous affectez un autre numéro à la variable ou à la constante à chaque appel.

Une autre possibilité pour l'appel dynamique est l'indication d'une variable du type de données COUNTER.

Page 268: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-2 A5E00324651-01

Exemples //Exemple d'appel absolu : S_CUD (C_NO:=Z12, CD:=E0.0, CU:=E0.1, S:=E0.2 & E0.3, PV:=120, R:=FALSE, CV:=binVal, Q:=actFlag); //Exemple d'appel dynamique : un autre compteur est appelé //à chaque parcours d'une boucle FOR : FUNCTION_BLOCK COMPT VAR_INPUT Compt: ARRAY [1..4] of STRUCT C_NO: INT; PV : WORD; END_STRUCT; . . END_VAR . . FOR I:= 1 TO 4 DO S_CD(C_NO:=compt[I].C_NO, S:=true, PV:= compt[I].PV); END_FOR; //Exemple d'appel dynamique grâce à l'emploi d'une variable //du type de données COUNTER : FUNCTION_BLOCK COMPTEUR VAR_INPUT MonCompteur:COUNTER; END_VAR . . Val_cour:=S_CD (C_NO:=MonCompteur,.....);

Nota

Les noms des fonctions et des paramètres sont les mêmes dans les jeux d'abréviations allemand et anglais. Seule la désignation du compteur dépend du jeu d'abréviations utilisé (allemand : Z, anglais : C).

Page 269: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-3

13.1.3 Définition des paramètres d'une fonction de comptage

Le tableau suivant indique les paramètres des fonctions de comptage :

Paramètre Type de données Description

C_NO COUNTER INT

Numéro du compteur (DESIGNATION DU COMPTEUR) ; la plage dépend de la CPU.

CD BOOL Entrée CD : décrémenter

CU BOOL Entrée CU : incrémenter

S BOOL Entrée d'initialisation du compteur

PV WORD Valeur comprise entre 0 et 999 pour initialiser le compteur (saisie sous la forme 16#<valeur>, la valeur étant en format DCB)

R BOOL Entrée de remise à "0" du compteur

Q BOOL Sortie : état du compteur

CV WORD Sortie : état du compteur en binaire

RET_VAL WORD Résultat en format BCD

Règles

Les valeurs des paramètres (par ex. CD:=E0.0) étant enregistrées globalement, leur indication est facultative dans certains cas. Tenez compte des règles générales suivantes pour la définition des paramètres.

• A l'appel, vous devez affecter une valeur au paramètre C_NO désignant le compteur. Au lieu du numéro absolu du compteur (par ex. Z12), vous pouvez aussi indiquer une variable ou une constante du type de données INT ou un paramètre d'entrée du type de données COUNTER.

• Vous devez affecter une valeur soit au paramètre CU (compteur incrémental), soit au paramètre CD (compteur décrémental).

• L'indication du couple de paramètres PV (valeur d'initialisation) et S (initialiser) est facultative.

• La valeur de résultat en format DCB est toujours la valeur de la fonction.

Page 270: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-4 A5E00324651-01

Exemple FUNCTION_BLOCK FB1 VAR CurrVal, binVal: word; actFlag: bool; END_VAR BEGIN CurrVal :=S_CD (C_NO:= Z10, CD:=TRUE, S:=TRUE, PV:=100, R:=FALSE, CV:=binVal,Q:=actFlag); CurrVal :=S_CU (C_NO:= Z11, CU:=M0.0, S:=M0.1, PV:=16#110, R:=M0.2, CV:=binVal,Q:=actFlag); CurrVal :=S_CUD(C_NO:= Z12, CD:=E0.0, CU:=E0.1, S:=E0.2 &E0.3, PV:=120, R:=FALSE, CV:=binVal,Q:=actFlag); CurrVal :=S_CD (C_NO:= Z10, CD:=FALSE, S:=FALSE, PV:=100, R:=TRUE, CV:=binVal,Q:=actFlag); END_FUNCTION_BLOCK

Page 271: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-5

13.1.4 Saisie et exploitation de la valeur de comptage

Pour saisir la valeur d'initialisation ou exploiter le résultat de la fonction, vous avez besoin de la représentation interne de la valeur de comptage. Il s'agit du type de données WORD, les bits 0-11 indiquant la valeur de comptage dans le format DCB. Les bits 12-15 ne sont pas utilisés.

Lorsque vous initialisez le compteur, la valeur que vous avez fixée s'y inscrit. La plage des valeurs autorisées va de 0 à 999. Vous pouvez modifier la valeur de comptage dans cette plage en utilisant les fonctions compteur incrémental/décrémental (S_CUD), compteur incrémental (S_CU) ou compteur décrémental (S_CD).

Format

La figure suivante donne la représentation de la valeur de comptage en bits :

Ces bits sont insignifiants et ne sont donc pas pris en compte lorsque le compteur est mis à « 1 ».

Valeur de comptage dans le format DCB (0 à 999)

15 14 13 12

1 2 7

11 10 9 8 7 6 5 4 3 2 1 0

0 I 1 I 1 I 10 I 0 I 1 I 00 I 0 I 0 I 1X I X I X I X

Saisie :

• Décimale sous forme de valeur entière : par exemple 295, si cette valeur correspond à un format DCB_ autorisé

• DCB (saisie sous forme de constante hexadécimale) : p. ex. 16#127

Exploitation :

• Comme résultat de la fonction (type WORD) : format DCB

• Comme paramètre de sortie CV (type WORD) : binaire

Page 272: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-6 A5E00324651-01

13.1.5 Compteur incrémental (S_CU)

Le compteur incrémental (S_CU) vous permet uniquement d'exécuter des opérations de comptage incrémental. Le tableau suivant indique comment le compteur fonctionne.

Opération Fonctionnement

Incrémenter La valeur du compteur est augmentée de 1 lorsque l'état logique de l'entrée CU passe de "0" à "1" et si la valeur de comptage est inférieure à 999.

Initialiser le compteur Lorsque l'état logique de l'entrée S passe de "0" à "1", le compteur est initialisé avec la valeur de l'entrée PV. Un tel changement d'état logique est toujours requis pour initialiser un compteur.

Mettre le compteur à 0 Le compteur est mis à 0 lorsque l'entrée R = 1. A la mise à 0 du compteur, la valeur de comptage prend la valeur 0.

Interroger le compteur L'interrogation de l'état logique de la sortie Q fournit la valeur "1" si la valeur de comptage est supérieure à 0. Elle fournit la valeur "0" si la valeur de comptage est égale à 0.

13.1.6 Compteur décrémental (S_CD)

Le compteur décrémental (S_CD) vous permet uniquement d'exécuter des opérations de comptage décrémental. Le tableau suivant indique comment le compteur fonctionne :

Opération Fonctionnement

Décrémenter La valeur du compteur est diminuée de 1 lorsque l'état logique de l'entrée CD passe de "0" à "1" (front montant) et si la valeur de comptage est supérieure à 0.

Initialiser le compteur Lorsque l'état logique de l'entrée S passe de "0" à "1", le compteur est initialisé avec la valeur de l'entrée PV. Un tel changement d'état logique est toujours requis pour initialiser un compteur.

Mettre le compteur à 0 Le compteur est mis à 0 lorsque l'entrée R = 1. A la mise à 0 du compteur, la valeur de comptage prend la valeur 0.

Interroger le compteur L'interrogation de l'état logique de la sortie Q fournit la valeur "1" si la valeur de comptage est supérieure à 0. Il fournit la valeur "0" si la valeur de comptage est égale à 0.

Page 273: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-7

13.1.7 Compteur incrémental/décrémental (S_CUD)

Le compteur incrémental et décrémental (S_CUD) vous permet d'exécuter des opérations de comptage aussi bien incrémental que décrémental. Lorsque leurs impulsions sont simultanées, les deux opérations sont traitées. La valeur de comptage ne change pas. Le tableau suivant indique comment le compteur fonctionne.

Opération Fonctionnement

Incrémenter La valeur du compteur est augmentée de 1 lorsque l'état logique de l'entrée CU passe de "0" à "1" et si la valeur de comptage est inférieure à 999.

Décrémenter La valeur du compteur est diminuée de 1 lorsque l'état logique de l'entrée CD passe de "0" à "1" et si la valeur de comptage est supérieure à 0.

Initialiser le compteur Lorsque l'état logique de l'entrée S passe de "0" à "1", le compteur est initialisé avec la valeur de l'entrée PV. Un tel changement d'état logique est toujours requis pour initialiser un compteur.

Mettre le compteur à 0 Le compteur est mis à 0 lorsque l'entrée R = 1. A la mise à 0 du compteur, la valeur de comptage prend la valeur 0.

Interroger le compteur L'interrogation de l'état logique de la sortie Q fournit la valeur 1 si la valeur de comptage est supérieure à 0. Il fournit la valeur 0 si la valeur de comptage est égale à 0.

13.1.8 Exemple de fonction de comptage

Définition des paramètres

Le tableau montre la définition des paramètres de la fonction S_CD prise pour exemple.

Paramètre Description

C_NO MONCOMPTEUR

CD ENTREE E0.0

S INITIALISER

PV VALEUR INITIALE 16#0089

R METTRE_0

Q A0.7

CV VAL_BIN

Page 274: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-8 A5E00324651-01

Exemple FUNCTION_BLOCK COMPTEUR VAR_INPUT MONCOMPTEUR : COUNTER ; END_VAR VAR_OUTPUT RESULTAT : INT ; END_VAR VAR INITIALISER : BOOL ; METTRE_0 : BOOL ; VAL_DCB : WORD ; // Etat du compteur codé DCB VAL_BIN : WORD ; // Etat du compteur binaire VAL_INITIALE : WORD ; END_VAR BEGIN A0.0 := 1 ; INITIALISER := E0.2 ; METTRE_0 := E0.3 ; VAL_INITIALE := 16#0089 ; //Décrémenter VAL_DCB := S_CD (C_NO := MONCOMPTEUR, CD:= E0.0 , S := INITIALISER , PV:= VAL_INITIALE, R := METTRE_0 , CV:= VAL_BIN , Q := A0.7) ; //Traitement ultérieur en tant que paramètre de sortie RESULTAT := WORD_TO_INT (VAL_BIN) ; AW4 := VAL_DCB ; END_FUNCTION_BLOCK

Page 275: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-9

13.2 Temporisations

13.2.1 Fonctions de temporisation

Les temporisations sont des éléments fonctionnels de votre programme vous permettant d'exécuter et de contrôler des séquences déclenchées par horloge. STEP 7 propose diverses fonctions standard de temporisation que vous pouvez utiliser avec S7-SCL.

Fonction de temporisation Signification

S_PULSE Démarrer une temporisation sous forme d'impulsion

S_PEXT Démarrer une temporisation sous forme d'impulsion prolongée

S_ODT Démarrer une temporisation sous forme de retard à la montée

S_ODTS Démarrer une temporisation sous forme de retard à la montée mémorisé

S_OFFDT Démarrer une temporisation sous forme de retard à la retombée

13.2.2 Appel d'une fonction de temporisation

Les fonctions de temporisation sont appelées comme des fonctions. La désignation d'une fonction peut remplacer un opérande dans une expression, à condition que le résultat de la fonction soit d'un type compatible avec celui de l'opérande remplacé.

La valeur de la fonction (valeur de retour), fournie à la position appelante, est une durée du type de données S5TIME.

Appel absolu ou dynamique

Vous pouvez entrer dans l'appel une valeur absolue de type TIMER comme numéro de la temporisation (par ex. T_NO:=T10). Mais il faut savoir qu'une telle valeur n'est plus modifiable à l'exécution.

A la place du numéro absolu, vous pouvez aussi indiquer une variable ou une constante de type de données INT. Ceci a l'avantage de permettre un appel dynamique de la fonction, si vous affectez un autre numéro à la variable ou à la constante à chaque appel.

Une autre possibilité pour l'appel dynamique est l'indication d'une variable du type de données TIMER.

Page 276: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-10 A5E00324651-01

Exemples //Exemple d'appel absolu : CurrTime:=S_ODT (T_NO:=T10, S:=TRUE, TV:=T#1s, R:=FALSE, BI:=biVal, Q:=actFlag); //Exemple d'appel dynamique : une autre temporisation est appelée //à chaque parcours d'une boucle FOR : FUNCTION_BLOCK TEMPO VAR_INPUT MA_TEMPO: ARRAY [1..4] of STRUCT T_NO: INT; TV : WORD; END_STRUCT; . . END_VAR . . FOR I:= 1 TO 4 DO CurrTime:= S_ODT(T_NO:=MA_TEMPO[I].T_NO, S:=true, TV:= MA_TEMPO[I].TV); END_FOR; //Exemple d'appel dynamique grâce à l'emploi d'une variable //du type de données TIMER : FUNCTION_BLOCK TEMPORISATION VAR_INPUT maTempo:TIMER; END_VAR . . Tempo_cour:=S_ODT (T_NO:=maTempo,.....);

Nota

Les noms des fonctions sont les mêmes dans les jeux d'abréviations allemand et anglais.

Page 277: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-11

13.2.3 Définition des paramètres d'une fonction de temporisation

Le tableau suivant indique les paramètres pour une fonction de temporisation.

Paramètre Type de données Description

T_NO TIMER INTEGER

Numéro d'identification de la temporisation ; la plage dépend de la CPU.

S BOOL Entrée de démarrage

TV S5TIME Valeur par défaut de la durée (format DCB)

R BOOL Entrée de remise à 0

Q BOOL Etat de la temporisation

BI WORD Durée restante (binaire)

RET_VAL S5TIME Valeur de la temporisation

Règles

Les valeurs des paramètres étant enregistrées globalement, leur indication est facultative dans certains cas. Tenez compte des règles générales suivantes pour la définition des paramètres.

• A l'appel, il faut affecter une valeur au paramètre T_NO qui désigne la temporisation. Au lieu du numéro absolu de la temporisation (ex. T10), vous pouvez aussi indiquer une variable du type de données INT ou un paramètre d'entrée du type TIMER.

• L'indication du couple de paramètres TV (valeur par défaut) et S (démarrer) est facultative.

• La valeur de résultat en format S5TIME est toujours la valeur de la fonction.

Page 278: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-12 A5E00324651-01

Exemple FUNCTION_BLOCK FB2 VAR Duree_cour : S5time; Val_bin : word; Drapeau_act : bool; END_VAR BEGIN Duree_cour :=S_ODT (T_NO:= T10, S:=TRUE, TV:=T#1s, R:=FALSE, BI:=Val_bin,Q:=Drapeau_act); Duree_cour :=S_ODTS (T_NO:= T11, S:=M0.0, TV:= T#1s, R:=M0.1, BI:=Val_bin,Q:=Drapeau_act); Duree_cour :=S_OFFDT(T_NO:= T12, S:=E0.1 & Drapeau_act, TV:= T#1s, R:=FALSE, BI:=Val_bin,Q:=Drapeau_act); Duree_cour :=S_PEXT (T_NO:= T13, S:=TRUE, TV:= T#1s, R:=E0.0, BI:=Val_bin,Q:=Drapeau_act); Duree_cour :=S_PULSE(T_NO:= T14, S:=TRUE, TV:= T#1s, R:=FALSE, BI:=Val_bin,Q:=Drapeau_act); END_FUNCTION_BLOCK

Page 279: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-13

13.2.4 Saisie et exploitation de la valeur de temps

Pour saisir la valeur par défaut ou exploiter le résultat de la fonction en code DCB, vous avez besoin de la représentation interne de la valeur de temps. Il s'agit du type de données WORD, les bits 0 à 11 indiquant la valeur de temps en format DCB, les bits 12 et 13 la base de temps. Les bits 14 et 15 ne sont pas utilisés.

La mise à jour de la temporisation diminue la valeur de temps d'une unité par intervalle, celui-ci ayant été déterminé à partir de la base de temps. La valeur de temps est diminuée jusqu'à ce qu'elle soit égale à 0. La plage de valeurs de la temporisation est comprise entre 0 et 9990 secondes.

Format

La figure suivante donne la représentation de la valeur de temps en bits :

Base de temps1 seconde

Ces bits sont insignifiants à l'appel de la temporisation

Valeur de temps dans le format DCB (0 à 999)

15... ...8 7... ...0

1 2 7

X I X I 1 I 0 0 I 0 I 0 I 1 0 I 0 I 1 I 0 0 I 1 I 1 I 1

Saisie

Vous pouvez charger une valeur de temps prédéfinie dans les formats suivants :

• En représentation par niveaux

• En représentation décimale

Dans les deux cas, la base de temps est adaptée automatiquement et la valeur est arrondie au nombre inférieur le plus proche avec cette base de temps.

Exploitation

Vous pouvez exploiter le résultat dans deux formats différents :

• Comme résultat de la fonction (type S5TIME) en format DCB

• Comme paramètre de sortie (valeur de temps sans base de temps du type WORD) en binaire

Page 280: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-14 A5E00324651-01

Base de temps des valeurs de temps

Vous avez besoin de la base de temps (bits 12 et 13 du mot de temporisation) pour saisir et exploiter la valeur de temps. Elle détermine l'intervalle selon lequel la valeur de temps est diminuée d'une unité (voir le tableau suivant). La plus petite base de temps est de 10 ms, la plus grande de 10 s.

Base de temps Code binaire

10 ms 00

100 ms 01

1 s 10

10 s 11

Nota

Les valeurs de temps n'étant enregistrées qu'à l'intervalle de temps donné, celles qui ne sont pas un multiple exact de cet intervalle sont tronquées. Celles dont la résolution est trop grande pour la plage souhaitée sont arrondies, de sorte que la plage souhaitée est obtenue, mais pas la résolution souhaitée.

Page 281: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-15

13.2.5 Démarrer une temporisation sous forme d'impulsion (S_PULSE)

La durée maximale pendant laquelle le signal de sortie reste à "1" correspond à la valeur de temps programmée. Si l'entrée prend l'état logique "0" durant l'exécution de la temporisation, celle-ci est mise à "0". Ceci représente un arrêt prématuré de l'exécution.

E 2.1

A 4.0

Signal d'entrée

Signal de sortie (temporisation sous forme d'impulsion)

tS_PULSE

Fonctionnement

Le tableau suivant explique comment procède la fonction "Démarrer une temporisation sous forme d'impulsion".

Opération Fonctionnement

Démarrer la temporisation

L'opération "Démarrer une temporisation sous forme d'impulsion" démarre la temporisation indiquée lorsque l'état logique de l'entrée de démarrage (S) passe de "0" à "1". Un changement d'état logique est toujours requis pour valider la temporisation.

Fixer la durée d'exécution

La temporisation continue à courir avec la valeur indiquée à l'entrée TV, jusqu'à ce que la durée programmée soit écoulée et tant que l'entrée S = 1.

Arrêter la temporisation avant la fin

Si l'entrée S passe de "1" à "0" avant que la valeur de temps ne soit écoulée, la temporisation est arrêtée.

Remettre la temporisation à 0

La temporisation est remise à 0 lorsque l'entrée de remise à zéro (R) passe de "0" à "1" pendant que la temporisation court. La valeur de temps et la base de temps sont alors également remises à zéro. L'état logique "1" de l'entrée R n'a aucun effet lorsque la temporisation ne court pas.

Interroger l'état logique

Tant que la temporisation court, l'interrogation à "1" de la sortie Q fournit le résultat "1". Si l'exécution a été arrêtée avant la fin, l'interrogation de la sortie Q fournit le résultat "0".

Interroger la valeur de temps actuelle

Vous pouvez interroger la valeur de temps actuelle à la sortie BI à l'aide de la valeur de la fonction S_PULSE.

Page 282: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-16 A5E00324651-01

13.2.6 Démarrer une temporisation sous forme d'impulsion prolongée (S_PEXT)

Le signal de sortie reste à "1" durant le temps (t) programmé, quel que soit le temps pendant lequel le signal d'entrée reste à "1". Si l'impulsion de démarrage est à nouveau déclenchée, la valeur de temps s'écoule de nouveau, de sorte que l'impulsion de sortie est prolongée dans le temps (redémarrage).

E 2.1

S_PEXT

Signal d'entrée

tA 4.0Signal de sortie

(temporisation sous forme d'impulsion prolongée)

Fonctionnement

Le tableau suivant explique comment procède la fonction "Démarrer une temporisation sous forme d'impulsion prolongée".

Opération Fonctionnement

Démarrer la temporisation L'opération "Démarrer une temporisation sous forme d'impulsion prolongée" démarre la temporisation indiquée lorsque l'état logique de l'entrée de démarrage (S) passe de "0" à "1". Un changement d'état logique est toujours requis pour valider la temporisation.

Redémarrer la durée d'exécution

Si l'état logique de l'entrée S passe à nouveau à "1" durant l'exécution, la temporisation est redémarrée avec la valeur de temps indiquée.

Fixer la durée d'exécution La temporisation continue à courir avec la valeur indiquée à l'entrée TV jusqu'à ce que la durée programmée soit écoulée.

Remettre la temporisation à 0

La temporisation est remise à 0 lorsque l'entrée de remise à zéro (R) passe de "0" à "1" pendant que la temporisation court. La valeur de temps et la base de temps sont alors également remises à zéro. L'état logique "1" de l'entrée R n'a aucun effet lorsque la temporisation ne court pas.

Interroger l'état logique Tant que la temporisation court, l'interrogation à "1" de la sortie Q fournit le résultat "1", quelle que soit la longueur du signal d'entrée.

Interroger la valeur de temps actuelle

Vous pouvez interroger la valeur de temps actuelle à la sortie BI à l'aide de la valeur de la fonction S_PEXT.

Page 283: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-17

13.2.7 Démarrer une temporisation sous forme de retard à la montée (S_ODT)

Le signal de sortie ne passe de "0" à "1" que lorsque la temporisation programmée s'est écoulée et que le signal d'entrée est toujours "1". Ceci signifie que la sortie est activée avec un retard. Les signaux d'entrée dont la durée est plus courte que celle de la temporisation programmée n'apparaissent pas à la sortie.

E 2.1Signal d'entrée

S_ODT

t

A 4.0Signal de sortie(temporisation sous forme de retard à la montée)

Fonctionnement

Le tableau suivant explique comment procède la fonction "Démarrer une temporisation sous forme de retard à la montée".

Opération Fonctionnement

Démarrer la temporisation

L'opération "Démarrer une temporisation sous forme de retard à la montée" démarre la temporisation indiquée lorsque l'état logique de l'entrée de démarrage (S) passe de "0" à "1". Un changement d'état logique est toujours requis pour valider la temporisation.

Arrêter la temporisation Si l'état logique de l'entrée S passe de "1" à "0" pendant que la temporisation court, celle-ci est arrêtée.

Fixer la durée d'exécution

La temporisation continue de courir avec la valeur indiquée à l'entrée TV tant que l'état logique de l'entrée S = 1.

Remettre la temporisation à "0"

La temporisation est remise à 0 lorsque l'entrée de remise à zéro (R) passe de "0" à "1" pendant que la temporisation court. La valeur de temps et la base de temps sont alors également remises à zéro. La temporisation est aussi remise à zéro lorsque R = 1 pendant qu'elle ne court pas.

Interroger l'état logique Une interrogation à "1" de la sortie Q fournit le résultat "1" lorsque la temporisation s'est écoulée correctement et que l'entrée S est toujours à "1". Si la temporisation a été arrêtée, l'interrogation à "1" donne toujours "0". Une interrogation à "1" de la sortie Q fournit également le résultat "0" lorsque la temporisation ne court pas et que l'état logique de l'entrée S est toujours "1".

Interroger la valeur de temps actuelle

Vous pouvez interroger la valeur de temps actuelle à la sortie BI à l'aide de la valeur de la fonction S_ODT.

Page 284: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-18 A5E00324651-01

13.2.8 Démarrer une temporisation sous forme de retard à la montée mémorisé (S_ODTS)

Le signal de sortie ne passe de "0" à "1" que lorsque la temporisation programmée s'est écoulée, quel que soit le temps pendant lequel le signal d'entrée reste à "1".

E 2.1Signal d'entrée

S_ODTSt

A 4.0Signal de sortie(temporisation sous forme de retard à la montée mémorisé)

Fonctionnement

Le tableau suivant explique comment procède la fonction "Démarrer une temporisation sous forme de retard à la montée mémorisé".

Opération Fonctionnement

Démarrer la temporisation L'opération "Démarrer une temporisation sous forme de retard à la montée mémorisé" démarre la temporisation indiquée lorsque l'état logique de l'entrée de démarrage (S) passe de "0" à "1". Un changement d'état logique est toujours requis pour valider la temporisation.

Redémarrer la temporisation

La temporisation est redémarrée avec la valeur indiquée lorsque l'entrée S passe de "0" à "1" pendant que la temporisation court.

Fixer la durée d'exécution La temporisation continue de courir avec la valeur indiquée à l'entrée TV, même lorsque l'état logique de l'entrée S passe à "0" avant que la temporisation ne soit écoulée.

Remettre la temporisation à "0"

La temporisation est remise à 0 lorsque l'entrée de remise à zéro (R) passe de "0" à "1", quel que soit l'état logique de l'entrée S.

Interroger l'état logique Une interrogation à "1" de la sortie Q fournit le résultat "1" lorsque la temporisation s'est écoulée, quel que soit l'état logique de l'entrée S.

Interroger la valeur de temps actuelle

Vous pouvez interroger la valeur de temps actuelle à la sortie BI à l'aide de la valeur de la fonction S_ODTS.

Page 285: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-19

13.2.9 Démarrer une temporisation sous forme de retard à la retombée (S_OFFDT)

Lorsque l'état logique de l'entrée S passe de "0" à "1", la sortie Q prend l'état logique "1". Lorsque l'état logique de l'entrée de démarrage passe de "1" à "0", la temporisation est démarrée. Ce n'est qu'une fois la durée écoulée que la sortie prend l'état logique "0". La sortie est donc désactivée avec un retard.

E 2.1Signal d'entrée

S_OFFDTt

A 4.0Signal de sortie(temporisation sous forme de retard à la retombée)

Fonctionnement

Le tableau suivant explique comment procède la fonction "Démarrer une temporisation sous forme de retard à la retombée".

Opération Fonctionnement

Démarrer la temporisation L'opération "Démarrer une temporisation sous forme de retard à la retombée" démarre la temporisation indiquée lorsque l'état logique de l'entrée de démarrage (S) passe de "1" à "0". Un changement d'état logique est toujours requis pour valider la temporisation.

Redémarrer la temporisation

La temporisation est redémarrée lorsque l'état logique de l'entrée S passe à nouveau de "1" à "0" (par exemple après la remise à 0).

Fixer la durée d'exécution La temporisation court avec la valeur indiquée à l'entrée TV.

Remettre la temporisation à 0

La temporisation est remise à 0 lorsque l'entrée de remise à zéro (R) passe de "0" à "1" pendant que la temporisation court.

Interroger l'état logique Une interrogation à "1" de la sortie Q fournit le résultat "1" lorsque l'état logique de l'entrée S = 1 ou lorsque la temporisation court.

Interroger la valeur de temps actuelle

Vous pouvez interroger la valeur de temps actuelle à la sortie BI à l'aide de la valeur de la fonction S_OFFDT.

Page 286: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-20 A5E00324651-01

13.2.10 Exemple de fonction de temporisation

FUNCTION_BLOCK TEMPORISATION VAR_INPUT maTempo : TIMER ; END_VAR VAR_OUTPUT resultat : S5TIME ; END_VAR VAR initialiser : BOOL ; remettre_zero : BOOL ; val_dcb : S5TIME ;//Base de temps et valeur restante //codées DCB val_bin : WORD ; //Valeur de temps binaire val_defaut : S5TIME ; END_VAR BEGIN A0.0 := 1; initialiser := E0.0 ; remettre_zero := E0.1; val_defaut := T#25S ; val_dcb := S_PEXT (T_NO := maTempo , S := initialiser , TV := val_defaut , R := remettre_zero , BI := val_bin , Q := A0.7) ; //Traitement ultérieur en tant que paramètre de sortie resultat := valeur_dcb ; //A la sortie pour affichage AW4 := val_bin ; END_FUNCTION_BLOCK

Page 287: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 13-21

13.2.11 Choix de la temporisation appropriée

La figure suivante présente les cinq temporisations qui ont été décrites dans ce chapitre pour vous aider à choisir celle qui correspond à vos besoins.

Le signal de sortie ne passe de « 0 » à « 1 » que lorsque le signal d'entrée passe de « 0 » à « 1 ». Il reste à « 1 » pendant le temps programmé. Le temps est démarré lorsque le signal d'entrée passe de « 1 » à « 0 ».

E 2.1

A 4.0

S_PEXT

S_ODT

S_ODTS

S_OFFDT

Signal d'entrée

Signal de sortie (temporisation sous forme d'impulsion)

tS_PULSE

t

t

t

t

Le temps maximal durant lequel le signal de sortie reste à « 1 » est égal à la valeur de temps t programmée. Il reste à « 1 » pour une durée plus courte, si le signal d'entrée passe à « 0 ».

Le signal de sortie reste à « 1 » pendant la durée programmée, quelle que soit la durée pendant laquelle le signal d'entrée reste à « 1 ». L'impulsion est à nouveau lancée lorsque le signal de déclenchement est activé durant la période « t ».

Le signal de sortie ne passe de « 0 » à « 1 » que lorsque le temps programmé s'est écoulé et si le signal d'entrée est toujours à « 1 ».

Le signal de sortie ne passe de « 0 » à « 1temps programmé s'est écoulé, quelle que soit la durée pendant laquelle le signal d'entrée reste à « 1

A 4.0Signal de sortie (temporisation sous forme d'impulsion prolongée)

A 4.0Signal de sortie (impulsion sous forme de retard à la montée

A 4.0Signal de sortie (temporisation sous forme de retard à la montée mémorisé)

A 4.0Signal de sortie (temporisation sous forme de retard à la retombée)

Page 288: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Compteurs et temporisation

S7-SCL V5.3 pour S7-300/400 13-22 A5E00324651-01

Page 289: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-1

14 Fonctions standard de S7-SCL

14.1 Conversion de types de données

14.1.1 Conversion de types de données

Lorsque vous combinez deux opérandes dans une opération, vous devez vous assurer de la compatibilité de leurs types de données. S'ils ne sont pas du même type, il faut effectuer une conversion. S7-SCL connaît plusieurs sortes de conversion du type de données.

• Conversion automatique du type de données

Les types de données sont répartis en classes. S7-SCL effectue une conversion automatique au sein de ces classes. Les fonctions que le compilateur utilise à cet effet sont regroupées en "Fonctions de conversion de classe A".

• Conversion explicite du type de données

Quand les opérandes ne font pas partie de la même classe, c'est à vous d'appeler une fonction de conversion. Pour cette conversion explicite du type de données, S7-SCL met à votre disposition de nombreuses fonctions standard que l'on peut répartir dans les classes suivantes :

- Fonctions de conversion de classe B

- Fonctions d'arrondi et de troncature.

Page 290: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-2 A5E00324651-01

14.1.2 Conversion automatique du type de données

Au sein des classes définies dans le tableau suivant, le compilateur effectue une conversion automatique des types de données conformément à l'ordre indiqué. Le type commun de deux opérandes est toujours le plus grand des deux types de données. Ainsi, INTEGER est le type commun de BYTE et WORD - WORD, par exemple.

Sachez que la conversion d'un type de données dans la classe ANY_BIT met à 0 les bits à gauche.

Classes Ordre de conversion

ANY_BIT BOOL > BYTE > WORD > DWORD

ANY_NUM INT > DINT > REAL

Exemple de conversion automatique de types de données VAR REGULATEUR_PID_1 : BYTE ; REGULATEUR_PID_2 : WORD ; END_VAR BEGIN IF (REGULATEUR_PID_1 <> REGULATEUR_PID_2) THEN ... (* Dans l'instruction IF ci-dessus, REGULATEUR_PID_1 est converti automatiquement de BYTE en WORD. *)

14.1.2.1 Fonctions de conversion de classe A

Le tableau suivant énumère les fonctions de conversion du type de données appartenant à la classe A. Quoique le compilateur les lance automatiquement, vous pouvez aussi les indiquer de manière explicite. Leur résultat est toujours défini.

Nom de la fonction Règle de conversion

BOOL_TO_BYTE Complément par des zéros à gauche

BOOL_TO_DWORD Complément par des zéros à gauche

BOOL_TO_WORD Complément par des zéros à gauche

BYTE_TO_DWORD Complément par des zéros à gauche

BYTE_TO_WORD Complément par des zéros à gauche

CHAR_TO_STRING Transformation en chaîne (de longueur 1) contenant le même caractère.

DINT_TO_REAL Transformation en REAL conformément à la norme IEEE ; la valeur peut être modifiée en raison de l'autre précision pour REAL.

INT_TO_DINT Pour un paramètre d'entrée négatif, le mot de poids fort de la valeur de la fonction est complété par 16#FFFF, dans tous les autres cas par des zéros ; la valeur reste la même.

INT_TO_REAL Transformation en REAL conformément à la norme IEEE ; la valeur reste la même.

WORD_TO_DWORD Complément par des zéros à gauche

Page 291: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-3

14.1.3 Fonctions standard pour la conversion explicite du type de données

Vous trouverez la description générale d'un appel de fonction dans la rubrique "Appel d'une fonction".

Particularités dont vous devez tenir compte pour l'appel d'une fonction de conversion :

• Paramètre d'entrée Toute fonction de conversion d'un type de données possède un paramètre d'entrée et un seul, appelé IN. Puisqu'il s'agit d'un paramètre unique, il n'est pas nécessaire de l'indiquer.

• Valeur de la fonction Le résultat est toujours la valeur de la fonction.

• Nom de la fonction Les types de données du paramètre d'entrée et de la valeur de la fonction résultant du nom de la fonction, ils ne sont pas mentionnés dans la liste des fonctions de classe A ou B. Dans le cas de la fonction BOOL_TO_BYTE, par exemple, le type du paramètre d'entrée est BOOL, celui de la valeur de la fonction étant BYTE.

14.1.3.1 Fonctions de conversion de classe B

Le tableau suivant énumère les fonctions de conversion du type de données appartenant à la classe B. Vous devez les spécifier explicitement. Leur résultat peut être indéfini si la taille du type de données cible est insuffisante.

Vous pouvez soit contrôler vous-même cette éventualité en plaçant une vérification de limites en amont, soit demander au système de le faire en sélectionnant l'option "Activer drapeau OK" avant d'effectuer la compilation. Dans les cas où le résultat est indéfini, le système affecte la valeur FALSE au drapeau OK.

Nom de la fonction Règle de conversion OK

BOOL_TO_INT WORD_TO_INT(BOOL_TO_WORD(x)) N

BOOL_TO_DINT DWORD_TO_DINT(BOOL_TO_DWORD(x)) N

BYTE_TO_BOOL Copie du bit de poids faible O

BYTE_TO_CHAR Prise en charge de la chaîne binaire N

BYTE_TO_INT WORD_TO_INT(BYTE_TO_WORD(x)) N

BYTE_TO_DINT DWORD_TO_DINT(BYTE_TO_DWORD(x)) N

CHAR_TO_BYTE Prise en charge de la chaîne binaire N

CHAR_TO_INT La chaîne binaire du paramètre d'entrée est inscrite dans l'octet de poids faible de la valeur de la fonction ; l'octet de poids fort est complété par des zéros.

N

DATE_TO_DINT Prise en charge de la chaîne binaire N

DINT_TO_DATE Prise en charge de la chaîne binaire O

DINT_TO_DWORD Prise en charge de la chaîne binaire N

DINT_TO_INT Copie du bit de signe ; la valeur contenue dans le paramètre d'entrée est interprétée dans le type de données INT ; si elle est inférieure à - 32_768 ou supérieure à 32_767, la variable OK prend la valeur FALSE.

O

DINT_TO_TIME Prise en charge de la chaîne binaire N

Page 292: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-4 A5E00324651-01

Nom de la fonction Règle de conversion OK

DINT_TO_TOD Prise en charge de la chaîne binaire O

DINT_TO_BOOL DWORD_TO_BOOL(DINT_TO_DWORD(x)) O

DINT_TO_BYTE DWORD_TO_BYTE(DINT_TO_DWORD(x)) O

DINT_TO_STRING DI_STRNG N

DINT_TO_WORD DWORD_TO_WORD(DINT_TO_DWORD(x)) O

DWORD_TO_BOOL Copie du bit de poids faible O

DWORD_TO_BYTE Copie des 8 bits de poids faible O

DWORD_TO_DINT Prise en charge de la chaîne binaire N

DWORD_TO_REAL Prise en charge de la chaîne binaire N

DWORD_TO_WORD Copie des 16 bits de poids faible O

DWORD_TO_INT DINT_TO_INT (DWORD_TO_ DINT(x)) O

INT_TO_CHAR Prise en charge de la chaîne binaire O

INT_TO_WORD Prise en charge de la chaîne binaire N

INT_TO_BOOL WORD_TO_BOOL(INT_TO_WORD(x)) O

INT_TO_BYTE WORD_TO_BYTE(INT_TO_WORD(x)) O

INT_TO_DWORD WORD_TO_DWORD(INT_TO_WORD(x)) N

INT_TO_STRING I_STRNG(x) N

REAL_TO_DINT Arrondi de la valeur REAL IEEE à DINT ; si la valeur est inférieure à - 2_147_483_648 ou supérieure à 2_147_483_647, la variable OK prend la valeur FALSE.

O

REAL_TO_DWORD Prise en charge de la chaîne binaire N

REAL_TO_INT Arrondi de la valeur REAL IEEE à INT ; si la valeur est inférieure à - 32_768 ou supérieure à 32_767, la variable OK prend la valeur FALSE.

O

REAL_TO_STRING R_STRNG(x) O

STRING_TO_CHAR Copie du premier caractère de la chaîne ; si la longueur de STRING est différente de 1, la variable OK prend la valeur FALSE.

O

STRING_TO_INT STRNG_I(x) N

STRING_TO_DINT STRNG_DI(x) N

STRING_TO_REAL STRNG_R(x) N

TIME_TO_DINT Prise en charge de la chaîne binaire N

TOD_TO_DINT Prise en charge de la chaîne binaire N

WORD_TO_BOOL Copie du bit de poids faible O

WORD_TO_BYTE Copie des 8 bits de poids faible O

WORD_TO_INT Prise en charge de la chaîne binaire N

WORD_TO_DINT INT_TO_DINT(WORD_TO_INT(x)) N

WORD_TO_BLOCK_DB La configuration binaire de WORD est interprétée comme numéro de bloc de données.

N

BLOCK_DB_TO_WORD Le numéro de bloc de données est interprété comme configuration binaire de WORD.

N

BCD_TO_INT(x)

WORD_BCD_TO_INT(x)

L'expression x a le type WORD et est interprétée comme valeur codée BCD entre -999 et +999. Après la conversion, le résultat se présente sous forme de nombre entier (représentation binaire) de type INT.

Si une erreur survient lors de la conversion, le système d'automatisation se met en STOP. Une exploitation de la cause de l'arrêt est possible dans l'OB121.

N

Page 293: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-5

Nom de la fonction Règle de conversion OK

INT_TO_BCD(x)

INT_TO_BCD_WORD(x)

L'expression x a le type INT et est interprétée comme nombre entier avec une valeur comprise entre -999 et +999. Après la conversion, le résultat se présente sous forme de nombre codé BCD de type WORD.

En dehors de la plage de valeurs, le résultat est indéfini. Lorsque l'option "Mettre le drapeau OK à 1" est activée, la valeur false est affectée au drapeau OK.

J

BCD_TO_DINT(x)

DWORD_BCD_TO_DINT(x)

L'expression x a le type DWORD et est interprétée comme valeur codée BCD comprise entre -9999999 et +9999999. Après la conversion, le résultat se présente sous forme de nombre entier (représentation binaire) de type DINT

Si une erreur se produit lors de la conversion, le système d'automatisation se met en STOP. Une exploitation de la cause de l'arrêt est possible dans l'OB121.

N

DINT_TO_BCD(x)

DINT_TO_BCD_DWORD(x)

L'expression x a le type DINT et est interprétée comme nombre entier avec une valeur comprise entre –9999999 et +9999999. Après la conversion, le résultat se présente sous forme de nombre codé BCD de type DWORD

En dehors de la plage de valeurs, le résultat est indéfini. Lorsque l'option "Mettre le drapeau OK à 1" est activée, la valeur false est affectée au drapeau OK.

J

Attention

Si une constante est convertie d’un type de données d’un niveau élevé en un type de données moins élevé, un message d’erreur s’affichera à la compilation si la constante se trouve en dehors de la plage du type de données de niveau bas

Exemples :

M0.0 :=WORD_TO_BOOL(W#16#FFFF); MW0 :=DINT_TO_INT(35000);

Nota Vous avez en outre la possibilité d'utiliser d'autres fonctions CEI pour effectuer la conversion des types de données. Vous trouverez des informations détaillées sur chacune de ces fonctions dans le manuel de référence STEP 7 "Fonctions standard et fonctions système pour S7-300/400".

Page 294: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-6 A5E00324651-01

14.1.3.2 Fonctions d'arrondi et de troncature

Les fonctions d'arrondi et de troncature de nombres font également partie de la conversion du type de données. Le tableau suivant indique le nom, le type de données (du paramètre d'entrée et de la valeur de la fonction) et la tâche de ces fonctions.

Nom de la fonction

Type du paramètre d'entrée

Type de la valeur de la fonction

Tâche

ROUND REAL DINT Arrondir (former un nombre DINT)

Conformément à la norme DIN EN 61131-3, l'arrondi se fait toujours à l'entier pair le plus proche, c'est-à-dire que 1.5 est arrondi à 2 et 2.5 également à 2.

TRUNC REAL DINT Tronquer (former un nombre DINT)

Nota

Vous avez en outre la possibilité d'utiliser d'autres fonctions CEI pour effectuer la conversion du type de données. Vous trouverez des informations détaillées sur chacune de ces fonctions dans le manuel de référence STEP 7 "Fonctions standard et fonctions système pour S7-300/400".

Exemple // Arrondi à la valeur inférieure (résultat : 3) ROUND (3.14) ; // Arrondi à la valeur supérieure (résultat : 4) ROUND (3.56) ; // Troncature (résultat : 3) TRUNC (3.14) ; // Troncature (résultat : 3) TRUNC (3.56) ;

Page 295: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-7

14.1.3.3 Exemples de conversion avec des fonctions standard

Dans l'exemple suivant, une conversion explicite s'avère indispensable, car le type de données cible est moins puissant que le type de données source. FUNCTION_BLOCK FB10 VAR COMMUTATEUR : INT; REGULATEUR : DINT; END_VAR (* INT est moins puissant que DINT *) COMMUTATEUR := DINT_TO_INT (REGULATEUR) ; // . . . END_FUNCTION_BLOCK

Dans l'exemple suivant, une conversion explicite est nécessaire, car le type de données REAL n'est pas autorisé dans une expression arithmétique comportant l'opération MOD. FUNCTION_BLOCK FB20 VAR COMMUTATEUR : REAL VAL_ENT : INT := 17; CONV2 : INT ; END_VAR (* L'utilisation de MOD n'est autorisée qu'avec des données de type INT ou DINT *) CONV2 := VAL_ENT MOD REAL_TO_INT (COMMUTATEUR); // . . . END_FUNCTION_BLOCK

Dans l'exemple suivant, la conversion est indispensable car le type de données n'est pas autorisé pour une opération logique. NOT ne peut être appliquée qu'à des données de type BOOL, BYTE, WORD ou DWORD. FUNCTION_BLOCK FB30 VAR VAL_ENT : INT := 17; CONV1 : WORD ; END_VAR (* L'utilisation de NOT n'est pas autorisée avec des données de type INT *) CONV1 := NOT INT_TO_WORD(VAL_ENT); // . . . END_FUNCTION_BLOCK

Page 296: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-8 A5E00324651-01

L'exemple suivant montre la conversion de valeurs d'entrée et de sortie de la périphérie : FUNCTION_BLOCK FB40 VAR Rayon_ent : WORD ; Rayon : INT; END_VAR Rayon_ent := %EB0; Rayon := WORD_TO_INT (rayon_ent); (* Conversion en cas de passage dans une autre classe de types de données. La valeur provient du module d'entrées, elle est convertie pour la suite du calcul.*) Rayon := Rayon (surface:= donnees_cercle.surface) %AB0 :=WORD_TO_BYTE (INT_TO_WORD(RAYON)); (*Le rayon est obtenu à partir de la surface sous forme d'entier. Pour la sortie, la valeur est d'abord convertie en une autre classe de type (INT_TO_WORD), puis en un type moins puissant (WORD_TO_BYTE).*) // . . . END_FUNCTION_BLOCK

Page 297: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-9

14.2 Fonctions standard numériques

14.2.1 Fonctions standard arithmétiques générales

Il s'agit des fonctions permettant de calculer la valeur absolue, le carré ou la racine carrée d'une grandeur.

Le type de données ANY_NUM représente INT, DINT ou REAL. Sachez que les paramètres d'entrée du type INT ou DINT sont convertis de manière interne en variables REAL quand la valeur de la fonction est de type REAL.

Nom de la fonction

Type du paramètre d'entrée

Type de la valeur de la fonction

Description

ABS ANY_NUM ANY_NUM Valeur absolue

SQR ANY_NUM REAL Carré

SQRT ANY_NUM REAL Racine carrée

Nota Vous avez en outre la possibilité d'utiliser d'autres fonctions CEI pour effectuer la conversion du type de données. Vous trouverez des informations détaillées sur chacune de ces fonctions dans le manuel de référence STEP 7 "Fonctions standard et fonctions système pour S7-300/400".

14.2.2 Fonctions logarithmiques

Il s'agit des fonctions permettant de calculer une valeur exponentielle ou le logarithme d'une grandeur.

Le type de données ANY_NUM représente INT, DINT ou REAL. Sachez que les paramètres d'entrée de type ANY_NUM sont convertis de manière interne en variables de type REAL.

Nom de la fonction

Type du paramètre d'entrée

Type de la valeur de la fonction

Description

EXP ANY_NUM REAL e puissance IN

EXPD ANY_NUM REAL 10 puissance IN

LN ANY_NUM REAL Logarithme naturel

LOG ANY_NUM REAL Logarithme décimal

Nota

Vous avez en outre la possibilité d'utiliser d'autres fonctions CEI pour effectuer la conversion des types de données. Vous trouverez des informations détaillées sur chacune de ces fonctions dans le manuel de référence STEP 7 "Fonctions standard et fonctions système pour S7-300/400".

Page 298: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-10 A5E00324651-01

14.2.3 Fonctions trigonométriques

Les fonctions trigonométriques suivantes calculent des angles en radians.

Le type de données ANY_NUM représente INT, DINT ou REAL. Sachez que les paramètres d'entrée de type ANY_NUM sont convertis de manière interne en variables de type REAL.

Nom de la fonction

Type du paramètre d'entrée

Type de la valeur de la fonction

Description

ACOS ANY_NUM REAL Arccosinus

ASIN ANY_NUM REAL Arcsinus

ATAN ANY_NUM REAL Arctangente

COS ANY_NUM REAL Cosinus

SIN ANY_NUM REAL Sinus

TAN ANY_NUM REAL Tangente

Nota

Vous avez en outre la possibilité d'utiliser d'autres fonctions CEI pour effectuer la conversion des types de données. Vous trouverez des informations détaillées sur chacune de ces fonctions dans le manuel de référence STEP 7 "Fonctions standard et fonctions système pour S7-300/400".

Appel des aides de référence sur les fonctions standard

14.2.4 Exemples de fonctions standard numériques

Appel Résultat

RESULTAT := ABS (-5) ; // 5

RESULTAT := SQRT (81.0); // 9

RESULTAT := SQR (23); // 529

RESULTAT := EXP (4.1); // 60.340 ...

RESULTAT := EXPD (3); // 1_000

RESULTAT := LN (2.718 281) ; // 1

RESULTAT := LOG (245); // 2.389_166 ...

PI := 3.141592 ; RESULTAT := SIN (PI / 6) ;

// 0.5

RESULTAT := ACOS (0.5); // 1.047_197 (=PI / 3)

Page 299: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-11

14.3 Fonctions standard sur chaîne binaire

Chaque fonction standard sur chaîne binaire possède deux paramètres d'entrée désignés par IN et N. Le résultat est toujours la valeur de la fonction. Le tableau suivant indique les noms des fonctions ainsi que les types de données des deux paramètres d'entrée et de la valeur de la fonction. La signification des paramètres d'entrée est la suivante :

• paramètre d'entrée IN : mémoire dans laquelle sont exécutées les opérations de décalage de bits ; le type de données de ce paramètre détermine celui de la valeur de la fonction ;

• paramètre d'entrée N : nombre de rotations pour les fonctions de rotation ROL et ROR ou nombre de positions à décaler pour les fonctions SHL et SHR.

Le tableau suivant décrit toutes les fonctions standard sur chaîne binaire disponibles.

Nom de la fonction

Type du paramètre d'entrée IN

Type du paramètre d'entrée N

Type de la valeur de la fonction

Tâche

ROL BOOL BYTE WORD DWORD

INT INT INT INT

BOOL BYTE WORD DWORD

Une rotation vers la gauche du nombre de positions indiqué par le paramètre N va être effectuée sur la valeur donnée par le paramètre IN.

ROR BOOL BYTE WORD DWORD

INT INT INT INT

BOOL BYTE WORD DWORD

Une rotation vers la droite du nombre de positions indiqué par le paramètre N va être effectuée sur la valeur donnée par le paramètre IN.

SHL BOOL BYTE WORD DWORD

INT INT INT INT

BOOL BYTE WORD DWORD

Dans la valeur donnée par le paramètre IN, le nombre de positions indiqué par le paramètre N va être décalé vers la gauche et complété par des 0 à droite.

SHR BOOL BYTE WORD DWORD

INT INT INT INT

BOOL BYTE WORD DWORD

Dans la valeur donnée par le paramètre IN, le nombre de positions indiqué par le paramètre N va être décalé vers la droite et complété par des 0 à gauche.

Nota

Vous avez en outre la possibilité d'utiliser d'autres fonctions CEI pour effectuer la conversion des types de données. Vous trouverez des informations détaillées sur chacune de ces fonctions dans le manuel de référence STEP 7 "Fonctions standard et fonctions système pour S7-300/400".

Page 300: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-12 A5E00324651-01

14.3.1 Exemple de fonctions standard sur chaîne binaire

Appel Résultat

RESULTAT := ROL (IN:=BYTE#2#1101_0011, N:=5); // 2#0111_1010

// (= 122 décimal)

RESULTAT := ROR (IN:=BYTE#2#1101_0011, N:=2); // 2#1111_0100

// (= 244 décimal)

RESULTAT := SHL (IN:=BYTE#2#1101_0011, N:=3); // 2#1001_1000

// (= 152 décimal)

RESULTAT := SHR (IN:=BYTE#2#1101_0011, N:=2); // 2#0011_0100

// (= 52 décimal)

Page 301: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-13

14.4 Fonctions de traitement de chaîne de caractères

14.4.1 Fonctions de manipulation de chaîne de caractères

LEN

La fonction LEN (FC21) fournit comme valeur de retour la longueur en cours d'une chaîne de caractères (nombre de caractères valables). Une chaîne vide ('') a la longueur zéro. La fonction ne signale pas d'erreur.

Exemple : LEN (S:= 'XYZ' )

Paramètre Déclaration Type de données

Zone de mémoire Description

S INPUT STRING D, L Variable d'entrée en format STRING

Valeur de retour

INT E, A, M, D, L Nombre de caractères en cours

CONCAT

La fonction CONCAT regroupe 32 variables STRING au maximum en une seule chaîne de caractères. Si la chaîne en résultant est plus longue que la variable définie pour le paramètre de sortie, elle est réduite à la longueur maximale définie. En cas d’utilisation de la fonction S7-SCL CONCAT, le FC2 de la bibliothèque "Fonctions CEI" est implicitement appelé. Exemple : CONCAT (IN1:= 'soupape', IN2:= ' ouverte')

Paramètre Déclaration Type de données

Zone de mémoire Description

IN1 INPUT STRING

CHAR

D, L Variable d'entrée en format STRING ou CHAR

IN2 INPUT STRING

CHAR

D, L Variable d'entrée en format STRING ou CHAR

INn INPUT STRING

CHAR

D, L Variable d'entrée en format STRING ou CHAR

Valeur de retour

STRING

CHAR

D, L Chaîne de caractères formée par la réunion des deux chaînes

Page 302: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-14 A5E00324651-01

LEFT ou RIGHT

Les fonctions LEFT et RIGHT (FC20 et FC32) fournissent les L premiers ou derniers caractères d'une chaîne de caractères. Si L est supérieur à la longueur en cours de la variable STRING, c'est la chaîne complète qui est fournie comme valeur de retour. Si L = 0, la valeur de retour est une chaîne vide. Si L est une valeur négative, la valeur de retour est une chaîne vide.

Exemple : LEFT (IN:= 'soupape', L:= 4)

Paramètre Déclaration Type de données

Zone de mémoire Description

IN INPUT STRING D, L Variable d'entrée en format STRING

L INPUT INT E, A, M, D, L, const. Longueur de la partie gauche de la chaîne

Valeur de retour

STRING D, L Variable de sortie en format STRING

MID

La fonction MID (FC26) fournit une partie d'une chaîne de caractères. L est la longueur de la chaîne à lire, P est la position du premier caractère à lire. Si la somme de L et de (P-1) dépasse la longueur en cours de la variable STRING, le résultat de la fonction sera une chaîne démarrant à P et allant jusqu'à la fin de la valeur d'entrée. Dans tous les autres cas (P hors de la longueur en cours, P et/ou L égalent zéro ou négatifs), la valeur de retour est une chaîne vide.

Exemple : MID (IN:= 'temperature', L:= 2, P:= 3)

Paramètre Déclaration Type de données

Zone de mémoire Description

IN INPUT STRING D, L Variable d'entrée en format STRING

L INPUT INT E, A, M, D, L, const. Longueur de la partie centrale de la chaîne

P INPUT INT E, A, M, D, L, const. Position du premier caractère

Valeur de retour

STRING D, L Variable de sortie en format STRING

Page 303: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-15

INSERT

La fonction INSERT (FC17) insère la chaîne de caractères du paramètre IN2 dans celle du paramètre IN1 après le Pème caractère. Si P égale zéro, la seconde chaîne sera insérée avant la première. Si P est supérieur à la longueur en cours de la première chaîne de caractères, la seconde chaîne sera accolée à la première. Si P est négatif, la valeur de retour sera une chaîne vide. Si la chaîne de résultat est plus longue que la variable affectée au paramètre de sortie, la chaîne de résultat sera limitée à la longueur maximale définie.

Exemple : INSERT (IN1:= 'Participant arrivé', IN2:='Durand':= 2, P:= 12)

Paramètre Déclaration Type de données

Zone de mémoire Description

IN1 INPUT STRING D, L Variable STRING dans laquelle insérer

IN2 INPUT STRING D, L Variable STRING à insérer

P INPUT INT E, A, M, D, L, const. Position d'insertion

Valeur de retour

STRING D, L Chaîne résultant de l'opération

DELETE

La fonction DELETE (FC4) efface, dans une chaîne de caractères, L caractères à partir du Pème caractère compris. Si L et/ou P égalent zéro ou si P est supérieur à la longueur en cours de la chaîne d'entrée, c'est cette chaîne d'entrée qui sera fournie comme valeur de retour. Si la somme de L et de P est supérieure à la chaîne d'entrée, les caractères seront effacés jusqu'à la fin de la chaîne. Si L et/ou P sont négatifs, la valeur de retour sera une chaîne vide.

Exemple : DELETE (IN:= 'temperature ok', L:= 6, P:= 5)

Page 304: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-16 A5E00324651-01

REPLACE

La fonction REPLACE (FC31) remplace, à partir du caractère P compris, L caractères de la première chaîne (IN1) par la seconde chaîne (IN2). Si L égale zéro, c'est la première chaîne de caractères qui sera indiquée comme valeur de retour. Si P égale 0 ou 1, les caractères seront remplacés en partant du premier (y compris celui-ci). Si P se trouve hors de la première chaîne, la seconde chaîne sera accolée à la première. Si L et/ou P sont négatifs, la valeur de retour sera une chaîne vide. Si la chaîne résultant de l'opération est plus longue que la variable affectée comme paramètre de sortie, la chaîne sera limitée à la longueur maximale définie.

Exemple : REPLACE (IN1:= 'temperature', IN2:= ' haute' L:= 7, P:= 5)

Paramètre Déclaration Type de données

Zone de mémoire Description

IN1 INPUT STRING D, L Variable STRING dans laquelle remplacer

IN2 INPUT STRING D, L Variable STRING de remplacement

L INPUT INT E, A, M, D, L, const. Nombre de caractères à remplacer

P INPUT INT E, A, M, D, L, const. Position du premier caractère remplacé

Valeur de retour

STRING D, L Chaîne résultant de l'opération

FIND

La fonction FIND (FC11) fournit la position de la seconde chaîne de caractères (IN2) dans la première (IN1). La recherche part de la gauche ; c'est la première occurrence de la chaîne qui est signalée. Si la seconde chaîne n'est pas contenue dans la première, la valeur de retour est 0. La fonction ne signale pas d'erreur.

Exemple : FIND (IN1:= 'station_de_traitement', IN2:='station')

Paramètre Déclaration Type de données

Zone de mémoire Description

IN1 INPUT STRING D, L Variable STRING dans laquelle chercher

IN2 INPUT STRING D, L Variable STRING à rechercher

Valeur de retour

INT E, A, M, D, L Position de la chaîne trouvée

Page 305: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-17

14.4.2 Fonctions de comparaison de chaînes de caractères

Les opérations de comparaison de S7-SCL =, <>, <, >, <= et >= acceptent les chaînes de caractères comme opérandes. Le compilateur intègre automatiquement l'appel de fonction nécessaire. Les fonctions qui suivent ne sont mentionnées ici qu'à titre complémentaire.

EQ_STRNG et NE_STRNG

Les fonctions EQ_STRNG (FC10) et NE_STRNG (FC29) comparent les contenus de deux variables en format STRING pour en constater l'égalité (FC10) ou la différence (FC29). Elles donnent le résultat comme valeur de retour. Cette valeur de retour est à "1" quand la chaîne de caractères du paramètre S1 est égale à (différente de) celle du paramètre S2. La fonction ne signale pas d'erreur.

Paramètre Déclaration Type de données

Zone de mémoire Description

S1 INPUT STRING D, L Variable d'entrée en format STRING

S2 INPUT STRING D, L Variable d'entrée en format STRING

Valeur de retour

BOOL E, A, M, D, L Résultat de la comparaison

GE_STRNG et LE_STRNG

Les fonctions GE_STRNG (FC13) et LE_STRNG (FC19) comparent les contenus de deux variables en format STRING dans le rapport "supérieur (inférieur) ou égal à" et elles donnent le résultat de la comparaison comme valeur de retour. Cette valeur de retour est à "1" quand la chaîne de caractères du paramètre S1 est supérieure (inférieure) ou égale à celle du paramètre S2. La fonction compare les caractères en partant de la gauche et au moyen de leur codage ASCII (par ex. 'a' est supérieur à 'A'). Le premier caractère différent décide du résultat de la comparaison. Quand la partie gauche de la chaîne la plus longue est identique à la chaîne la plus courte, c'est la chaîne la plus longue qui est supérieure. La fonction ne signale pas d'erreur.

Paramètre Déclaration Type de données

Zone de mémoire Description

S1 INPUT STRING D, L Variable d'entrée en format STRING

S2 INPUT STRING D, L Variable d'entrée en format STRING

Valeur de retour

BOOL E, A, M, D, L Résultat de la comparaison

Page 306: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-18 A5E00324651-01

GT_STRNG et LT_STRNG

Les fonctions GT_STRNG (FC15) et LT_STRNG (FC24) comparent les contenus de deux variables en format STRING dans le rapport "supérieur (inférieur) à" et donnent le résultat de la comparaison comme valeur de retour. Cette valeur de retour est à "1" quand la chaîne de caractères du paramètre S1 est supérieure (inférieure) à celle du paramètre S2. La fonction compare les caractères en partant de la gauche et au moyen de leur codage ASCII (par ex. 'a' est supérieure à 'A'). Le premier caractère différent décide du résultat de la comparaison. Quand la partie gauche de la chaîne la plus longue est identique à la chaîne la plus courte, c'est la chaîne la plus longue qui est supérieure. La fonction ne signale pas d'erreur.

Paramètre Déclaration Type de données

Zone de mémoire Description

S1 INPUT STRING D, L Variable d'entrée en format STRING

S2 INPUT STRING D, L Variable d'entrée en format STRING

Valeur de retour

BOOL E, A, M, D, L Résultat de la comparaison

Page 307: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-19

14.4.3 Fonctions de conversion du type de données

INT_TO_STRING et STRING_TO_INT

Les fonctions INT_TO_STRING et STRING_TO_INT convertissent une variable de format INT en une chaîne de caractères ou une chaîne de caractères en une variable INT. Les fonctions I_TRNG (FC16) ou STRNG_I (FC38) de la bibliothèque "Fonctions CEI" sont alors utilisées de manière implicite. La chaîne sera précédée d'un signe. Si la variable affectée comme valeur de retour est trop courte, la conversion n'a pas lieu.

Paramètre Déclaration Type de données

Zone de mémoire Description

INT_TO_STRING

I INPUT INT E, A, M, D, L, const. Valeur d'entrée

Valeur de retour

STRING D, L Chaîne de caractères résultant de l'opération

STRING_TO_INT

S INPUT STRING D, L Chaîne d'entrée

Valeur de retour

INT E, A, M, D, L Résultat

DINT_TO_STRING et STRING_TO_DINT

Les fonctions DINT_TO_STRING et STRING_TO_DINT convertissent une variable de format DINT en une chaîne de caractères ou une chaîne de caractères en une variable DINT. Les fonctions DI_STRNG (FC5) ou STRNG_I (FC37) de la bibliothèque "Fonctions CEI" sont alors utilisées de manière implicite. La chaîne sera précédée d'un signe. Si la variable affectée comme valeur de retour est trop courte, la conversion n'a pas lieu.

Paramètre Déclaration Type de données

Zone de mémoire Description

DINT_TO_STRING

I INPUT DINT E, A, M, D, L, const. Valeur d'entrée

Valeur de retour

STRING D, L Chaîne de caractères résultant de l'opération

STRING_TO_DINT

S INPUT STRING D, L Chaîne d'entrée

Valeur de retour

DINT E, A, M, D, L Résultat

Page 308: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-20 A5E00324651-01

REAL_TO_STRING und STRING_TO_REAL

Les fonctions REAL_TO_STRING et STRING_TO_REAL convertissent une variable de format REAL en une chaîne de caractères ou une chaîne de caractères en une variable REAL. Les fonctions (FC30) ou (FC39) de la bibliothèque "Fonctions CEI" sont alors utilisées de manière implicite. La chaîne de caractères doit avoir le format suivant :

±v.nnnnnnnE±xx (± = signe, v = position précédant la virgule,n = positions suivant la virgule, x = exposants)

Si la longueur de la chaîne est inférieure à 14 ou si sa structure diffère de la structure ci-dessus, la conversion n'a pas lieu. Si la variable affectée comme valeur de retour est trop courte ou si le paramètre IN ne présente pas de nombre à virgule flottante correct, la conversion n'a pas lieu.

Paramètre Déclaration Type de données

Zone de mémoire Description

REAL_TO_STRING

IN INPUT REAL E, A, M, D, L, const. Valeur d'entrée

Valeur de retour

STRING D, L Chaîne de caractères résultant de l'opération

STRING_TO_REAL

S INPUT STRING D, L Chaîne d'entrée

Valeur de retour

REAL E, A, M, D, L Résultat

Page 309: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-21

14.4.4 Exemple de traitement de chaînes de caractères

Assembler des textes de signalisation //Assemblage et mémorisation commandés par le processus //des textes de signalisation //////////////////////////////////////////////////////////////////// //Le bloc contient les textes de signalisation requis et les // //20 derniers messages générés // //////////////////////////////////////////////////////////////////// DATA_BLOCK Textes_signalisation STRUCT indice : int; memoire_textes : array [0..19] of string[34]; materiel : array [1..5] of string[16]; // 5 appareils différents etats : array [1..5] of string[12]; // 5 états différents END_STRUCT BEGIN indice :=0; materiel[1] := 'moteur '; materiel[2] := 'soupape '; materiel[3] := 'presse '; materiel[4] := 'station_soudage '; materiel[5] := 'bruleur '; etats[1] := ' defecteux'; etats[2] := ' demarre'; etats[3] := ' temperature'; etats[4] := ' repare'; etats[5] := ' revise'; END_DATA_BLOCK //////////////////////////////////////////////////////////////////// //La fonction assemble des textes de signalisation et les écrit // //dans le DB Textes_signalisation. Les textes de signalisation // //sont stockés dans une mémoire circulaire. Le dernier indice // //libre de la mémoire e textes figure aussi dans le DB // //textes_signalisation où il est actualisé par la fonction. // ////////////////////////////////////////////////////////////////////

Page 310: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-22 A5E00324651-01

FUNCTION Generateur_textes : bool VAR_INPUT unite : int; //Indice du texte d'un appareil no : int; // Nº d'identification de l'appareil etat : int; valeur : int; END_VAR VAR_TEMP texte : string[34]; i : int; END_VAR //Initialisation des variables temporaires texte := ''; Generateur_textes := true; Case unite of 1..5 : case etat of 1..5 : texte := concat( in1 := textes_signalisation.materiel[unite], in2 := right(l:=2,in:=I_STRNG(no))); texte := concat( in1 := texte, in2 := Textes_signalisation.etats[etat]); if valeur <> 0 then texte := concat( in1 := texte, in2 := I_STRNG(valeur)); end_if; else Generateur_textes := false; end_case; else Generateur_textes := false; end_case; i := Textes_signalisation.indice; Textes_signalisation.memoire_textes[i] := texte; Textes_signalisation.indice := (i+1) mod 20; END_FUNCTION //////////////////////////////////////////////////////////////////// //La fonction est appelée dans le programme cyclique en cas // //de front dans le %M10.0 et elle provoque l'écriture unique d'un // //message si un paramètre change. // //////////////////////////////////////////////////////////////////// Organization_block zyklus Var_temp Besy_ifx : array [0..20] of byte; erreur: BOOL; End_var;

Page 311: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-23

Page 312: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-24 A5E00324651-01

Page 313: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-25

//////////////////////////////////////////////////////////////////// //L'appel suivant provoque l'entrée "Moteur 12 demarre" dans la // //mémoire de textes du DB Textes_signalisation, sachant qu'il faut// //transférer un 1 par %MW0, le 12 par %EW2 et un 2 par %MW2. *) // //////////////////////////////////////////////////////////////////// if %M10.0 <> %M10.1 then erreur := Generateur_textes (unite := word_to_int(%MW0), no := word_to_int(%EW2), etat := word_to_int(%MW2), valeur := 0); %M10.1:=M10.0; end_if; end_organization_block

Page 314: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-26 A5E00324651-01

14.5 Fonctions de sélection de valeurs

14.5.1 Fonctions de sélection de valeurs

Les fonctions suivantes de sélection de valeurs sont disponibles sous forme de fonctions S7-SCL internes. Elles sont conformes à CEI 61131-3.

Nota

Certaines des fonctions sont également contenues dans la bibliothèque standard de STEP 7. Les fonctions de la bibliothèque ne correspondent cependant pas en tous points aux exigences CEI.

SEL

La fonction SEL sélectionne une valeur d'entrée parmi deux.

Comme valeurs d'entrée, tous les types de données sont autorisés, à l'exception des types de données ARRAY et STRUCT ainsi que des types de données Paramètre. Toutes les variables paramétrées doivent appartenir au type de données de la même classe.

Exemple : A:= SEL (G:= SELECT, IN0:= X, IN1:= Y);

Paramètre Déclaration Type de données Zone de mémoire Description

G INPUT BOOL E, A, M, D, L Critère de sélection

IN0 INPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Première valeur d'entrée

IN1 INPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Deuxième valeur d'entrée

Valeur en retour

OUTPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Valeur d'entrée sélectionnée (option)

Page 315: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-27

MAX

La fonction MAX sélectionne la plus grande valeur de variable parmi un certain nombre de valeurs de variables. Comme valeurs d'entrée, les types de données numériques et les types de données de temporisation sont autorisés. Toutes les variables paramétrées doivent appartenir au type de données de la même classe. L'expression prend le type de données de poids le plus fort. Exemple : A:= MAX (IN1:=a, IN2:=b, IN3:=c, IN4:=d);

Paramètre Déclaration Type de données Zone de mémoire Description

IN1 INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Première valeur d'entrée

IN2 INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Deuxième valeur d'entrée

INn

(n=3...32)

INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Dernière valeur d'entrée (option)

Valeur en retour OUTPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Plus grande des valeurs d'entrée (option)

Page 316: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-28 A5E00324651-01

MIN

La fonction MIN sélectionne la plus petite valeur de variable parmi un certain nombre de valeurs de variables. Comme valeurs d'entrée, les types de données numériques et les types de données de temporisation sont autorisés. Toutes les variables paramétrées doivent appartenir au type de données de la même classe. L'expression prend le type de données de poids le plus fort. Exemple : A:= MIN (IN1:=a, IN2:=b, IN3:=c, IN4:=d);

Paramètre Déclaration Type de données Zone de mémoire Description

IN1 INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Première valeur d'entrée

IN2 INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Deuxième valeur d'entrée

INn

(n=3...32)

INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Dernière valeur d'entrée (option)

Valeur en retour OUTPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Plus petite des valeurs d'entrée (option)

Page 317: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-29

LIMIT

La fonction LIMIT limite la valeur d'une variable à des valeurs limite paramétrables. Comme valeurs d'entrée, tous les types de données numériques et les types de données de temporisation sont autorisés. Tous les paramètres doivent appartenir au même type de données. L'expression prend le type de données de poids le plus fort. La valeur limite inférieure (MN) ne doit pas être plus grande que la valeur limite supérieure (MX). Exemple : A:= LIMIT (MN:=5, IN:= Bearbeitungsschritte, MX:= 10);

Paramètre Déclaration Type de données Zone de mémoire Description

MN INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Limite inférieure

IN INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Variable d'entrée

MX INPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Limite supérieure

Valeur en retour OUTPUT ANY_NUM

Types de données de temporisation à l'exception de S5TIME

E, A, M, D, L Variable de sortie limitée (option)

Page 318: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-30 A5E00324651-01

MUX

La fonction MUX sélectionne une valeur d'entrée parmi un certain nombre de valeurs d'entrée. La sélection s'effectue avec le paramètre d'entrée K. Comme valeurs d'entrée, tous les types de données sont autorisés. L'expression prend le type de données de poids le plus fort.

Exemple : A:= MUX (K:=SELECT, IN0:= Steps, IN1:=Number, IN2:=Total);

Paramètre Déclaration Type de données Zone de mémoire Description

K INPUT INT E, A, M, D, L Critère de sélection

IN0 INPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Première valeur d'entrée

IN1 INPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Deuxième valeur d'entrée

INn

(n=2…31)

INPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Dernière valeur d'entrée (option)

INELSE INPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Valeur d'entrée alternative

(option)

Si K se trouve en dehors de 0...n, c’est la valeur actuelle de INELSE qui est utilisée.

Si INELSE n’est pas occupé, c’est la valeur actuelle de INO qui est utilisée.

Valeur en retour OUTPUT Tous les types de données à l'exception de ARRAY et STRUCT

E, A, M, D, L Valeur sélectionnée (option)

Page 319: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-31

14.6 Fonctions système, blocs fonctionnels système et bibliothèque standard

14.6.1 Fonctions système, blocs fonctionnels système et bibliothèque standard

Le système d'exploitation des CPU S7 contient des fonctions système et des fonctions standard que vous pouvez utiliser lorsque vous programmez dans S7-SCL. Il s'agit de :

• Blocs d'organisation (OB)

• Fonctions système (SFC)

• Blocs fonctionnels système (SFB)

Interface d'appel des SFC/SFB

Vous pouvez adresser les blocs de manière symbolique ou absolue. Vous devez donc connaître soit leur mnémonique, qui doit être déclaré dans la table des mnémoniques, soit leur numéro de désignation absolue.

Dans l'appel d'un bloc, vous devez affecter aux paramètres formels, dont vous avez défini les noms et les types de données en créant le bloc paramétrable, les paramètres effectifs dont le bloc utilise les valeurs durant l'exécution de votre programme.

S7-SCL cherche le bloc à appeler dans les répertoires et bibliothèques suivants :

• Le dossier "Programmes"

• La bibliothèque standard SIMATIC

• La bibliothèque standard CEI

Lorsque S7-SCL trouve un bloc, il le copie dans le programme utilisateur. Certains blocs font exception : ce sont ceux qui doivent être appelés avec la notation (" ... ") par suite de leur nom ainsi que les blocs appelés de manière absolue. S7-SCL cherche ces noms uniquement dans la table des mnémoniques du programme utilisateur. Vous devez les copier vous-même dans le programme utilisateur à l'aide de SIMATIC Manager.

Page 320: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-32 A5E00324651-01

Appel conditionnel (SFB/SFC)

Si vous voulez réaliser un appel conditionnel, vous devez affecter la valeur 0 au paramètre d'entrée EN (par exemple à l'entrée E0.3) afin que le bloc ne soit pas appelé. Lorsque EN reçoit la valeur "1", la fonction est appelée. Dans ce cas, le paramètre de sortie ENO est également mis à "1" (autrement à "0") si aucune erreur ne survient durant l'exécution du bloc.

Il n'est pas recommandé d'utiliser l'appel conditionnel pour les SFC, puisque la variable censée recevoir la valeur de retour de la fonction reste indéfinie quand la fonction n'est pas appelée.

Nota

Lorsque vous utilisez les opérations suivantes pour les types de données TIME, DATE_AND_TIME et STRING dans votre programme, S7-SCL appelle automatiquement les blocs standard correspondants.

C'est ce qui explique que les mnémoniques et les numéros de ces blocs standard soient réservés et que leur emploi pour d'autres blocs soit interdit. Un manquement à cette règle n'est pas toujours contrôlé par S7-SCL et peut provoquer une erreur de compilateur.

Le tableau ci-après énumère les fonctions standard CEI utilisées automatiquement par S7-SCL.

Opération DATE_AND_TIME STRING

== EQ_DT (FC9) EQ_STRING (FC10)

<> NE_DT (FC28) NE_STRING (FC29)

> GT_DT (FC14) GT_STRING (FC15)

>= GE_DT (FC12) GE_STRING (FC13)

<= LE_DT (FC18) LE_STRING (FC19)

< LT_DT (FC23) LT_STRING (FC24)

DATE_AND_TIME + TIME AD_DT_TM (FC1)

DATE_AND_TIME + TIME SB_DT_TM (FC35)

DATE_AND_TIME + DATE_AND_TIME

SB_DT_DT (FC34)

TIME_TO_S5TIME(TIME) TIM_S5TI (FC40)

S5TIME_TO_TIME(S5TIME) S5TI_TIM (FC33)

Pour des informations complémentaires sur les SFB, SFC et OB disponibles ainsi que pour une description détaillée de chaque interface, reportez-vous au manuel de référence STEP 7 "Fonctions standard et fonctions système pour S7-300/400".

Page 321: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 14-33

14.6.2 Interface d'échange avec les OB

Blocs d'organisation

Les blocs d'organisation constituent l'interface entre le système d'exploitation de la CPU et le programme utilisateur. Ils permettent de cibler les parties de programme à exécuter :

• à la mise en route de la CPU,

• de manière cyclique ou à une cadence donnée,

• à des instants ou jours donnés,

• après écoulement d'une durée donnée,

• à l'apparition d'erreurs,

• lors du déclenchement d'alarmes de processus ou de communication.

Les blocs d'organisation sont traités dans l'ordre de la priorité qui leur est affectée.

OB disponibles

Les CPU ne sont pas toutes en mesure de traiter l'ensemble des OB disponibles dans S7. Vérifiez dans les caractéristiques techniques de votre CPU de quels OB vous diposez.

Page 322: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Fonctions standard de S7-SCL

S7-SCL V5.3 pour S7-300/400 14-34 A5E00324651-01

Page 323: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-1

15 Description du langage

15.1 Description formelle du langage

15.1.1 Présentation des diagrammes syntaxiques

La description du langage faite dans les différentes rubriques se base sur des diagrammes syntaxiques. Ils vous montrent bien la structure syntaxique de S7-SCL. Ils sont regroupés au complet avec les éléments de langage correspondants dans les chapitres "Règles lexicales" et "Règles syntaxiques".

Qu'entend-on par diagramme syntaxique ?

Il s'agit d'une représentation graphique de la structure du langage. Cette structure est décrite par une suite de règles, pouvant elles-mêmes se fonder sur des règles déjà énoncées.

Bloc 1 Bloc 2 Bloc 4

Bloc 3

Bloc 5

Nom de la règle

ItérationAlternative

Séquence

Option

Le diagramme syntaxique se lit de gauche à droite. Il peut comporter :

• Séquence : suite de blocs

• Option : branche facultative

• Itération : répétition de branches

• Alternative : aiguillage

Page 324: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-2 A5E00324651-01

Quelles sont les différentes sortes de blocs ?

Un bloc est un élément de base ou un élément composé lui-même de blocs. La figure suivante montre la représentation des différentes sortes de blocs :

Elément complexe qui est décrit pard'autres diagrammessyntaxiques.

Elément de base qui ne nécessite pasde description supplémentaire!Il s'agit de caractères imprimables etde caractères spéciaux, de mots-cléset d'identificateurs prédéfinis.

Les indications relatives à ces blocsdoivent être reprises telles quelles.

Bloc terminal Bloc non terminal

Elément complexe, utilisé commeélément de base dans les règlessyntaxiques et expliqué dans lesrègles lexicales.

Symbole<Nom de la règle>

Le nom de la règle doit figureren majuscules !

<Nom de la règle>

Le nom de la règle est facultatif

15.1.2 Règles

Les règles que vous pouvez utiliser pour construire votre programme S7-SCL comportent deux niveaux : il y a les règles lexicales et les règles syntaxiques.

Règles lexicales

Les règles lexicales décrivent la structure des éléments (symboles) sur lesquels porte l'analyse lexicale réalisée par le compilateur. Le format de la notation n'est pas libre et les règles sont à appliquer rigoureusement. Cela signifie en particulier que :

• L'insertion de caractères de mise en forme n'est pas autorisée ;

• L'insertion de blocs et de lignes de commentaire n'est pas possible ;

• L'insertion d'attributs pour les identificateurs n'est pas possible.

Page 325: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-3

L'exemple montre la règle lexicale IDENTIFICATEUR. Elle décrit la composition d'un identificateur (nom ), par ex. : TABLEAU_MES_12 CONSIGNE_B_1

Caractère de

_ _

Chiffre

Lettre

Chiffre

Lettre Lettre

Caractère desoulignement soulignement

Règles syntaxiques

Les règles syntaxiques décrivent la structure de S7-SCL en s'appuyant sur les règles lexicales. En respectant ces règles, vous pouvez créer votre programme S7-SCL en toute liberté de format.

Règles lexicales

Règlessyntaxiques

Format libre

Format non libre !

Programme SCL

Conventions

Chaque règle est précédée de son nom. Si elle est utilisée dans une règle de niveau hiérarchique supérieur, son nom figure dans un rectangle.

Si le nom de la règle est écrit en majuscules, il s'agit d'un symbole qui est décrit dans les règles lexicales.

Page 326: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-4 A5E00324651-01

Sémantique

Les règles permettent uniquement de représenter la structure formelle du langage, sans toujours en livrer la signification. Des informations complémentaires sont donc écrites à côté des règles pour les points importants. Voici des exemples :

• Un nom supplémentaire est indiqué en cas d'éléments semblables mais de signification différente : par ex. dans la règle d'indication de la date, Année, Mois ou Jour pour SUITE DE CHIFFRES DECIMAUX. Le nom indique l'utilisation.

• Les restrictions importantes sont signalées à côté des règles : par ex. la règle Mnémonique est accompagnée du rappel qu'un mnémonique doit être défini dans la table des mnémoniques.

Page 327: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-5

15.1.3 Blocs terminaux des règles lexicales

Définition

Un bloc terminal est un élément de base dont la description ne nécessite pas de règle supplémentaire, mais une simple explication. Il est représenté par la figure suivante dans les diagrammes syntaxiques :

Le bloc terminal est représenté par un rectan-gle aux bouts arrondis ou par un cercle. Il con-tient soit un nom (en majuscules), soit directe-ment une information.Celui-ci définit le nombre de caractères ASCII utilisables.

Les tableaux suivants énumèrent les différents blocs terminaux en indiquant pour chacun l'ensemble correspondant des éléments du jeu de caractères ASCII.

Lettres et chiffres

Il s'agit des caractères les plus utilisés. L'IDENTIFICATEUR, par exemple, se compose de lettres, de chiffres et du caractère de soulignement.

Caractère Sous-groupe Eléments du jeu de caractères

Lettre Majuscule Minuscule

A à Z a à z

Chiffre Chiffre décimal 0 à 9

Chiffre octal Chiffre octal 0 à 7

Chiffre hexadécimal Chiffre hexadécimal 0 à 9, A à F, a à f

Bit Chiffre binaire 0, 1

Page 328: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-6 A5E00324651-01

Caractères imprimables et caractères spéciaux

Vous pouvez employer tout le jeu de caractères ASCII étendu dans les chaînes, les commentaires et les mnémoniques.

Caractère Sous-groupe Eléments du jeu de caractères

Caractère imprimable Selon le code de caractères utilisé. Avec le code ASCII par exemple, à partir du caractère équivalant au caractère décimal 31, sans DEL ni les caractères de remplacement ci-dessous.

Tous les caractères imprimables

Caractère de remplacement

Dollar Apostrophe

$ '

Caractère de commande

$P ou $p $L ou $l $R ou $r $T ou $t $N ou $n

Saut de page (formfeed, page) Changement de ligne (linefeed) Retour chariot (carriage return) Tabulation Nouvelle ligne

Représentation de remplacement en code hexadécimal

$hh Caractères quelconques

enregistrables en code hexa (hh)

Page 329: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-7

15.1.4 Caractères de mise en forme, séparateurs et opérations

Dans les règles lexicales

Le tableau suivant montre l'utilisation de certains caractères du jeu de caractères ASCII comme caractères de mise en forme et comme séparateurs au niveau des règles lexicales.

Caractère Description

: Séparateur entre heures, minutes et secondes

Attributs

. Séparateur pour l'adressage absolu et dans la représentation des nombres réels et des intervalles de temps

' ' Caractère et chaîne de caractères

" " Caractère introduisant le mnémonique suivant les règles de la table des mnémoniques

_ caractère de soulignement

Séparateur pour les valeurs numériques dans les constantes, peut figurer dans les IDENTIFICATEURS

$ Caractère d'alignement pour indiquer des caractères de commande ou des caractères de remplacement

$> $< Interruption d'une chaîne si sa longueur dépasse une ligne ou pour insérer des commentaires

Pour les constantes

Le tableau suivant montre l'utilisation de certains caractères et chaînes de caractères pour des constantes au niveau des règles lexicales. Il s'applique aux jeux d'abréviations allemand et anglais.

Préfixe Caractérise Règle lexicale

BOOL# Constante typée de type BOOL Constante binaire

BYTE# Constante typée de type BYTE Constante binaire

WORD# Constante typée de type WORD Constante binaire

DWORD# Constante typée de type DWORD Constante binaire

INT# Constante typée de type INT Constante entière

DINT# Constante typée de type DINT Constante entière

REAL# Constante typée de type REAL Constante réelle

CHAR# Constante typée de type CHAR Constante sur caractère

2# Constante numérique Suite de chiffres binaires

8# Constante numérique Suite de chiffres octaux

16# Constante numérique Suite de chiffres hexadécimaux

D# Indication temporelle Date

DATE# Indication temporelle Date

DATE_AND_TIME# Indication temporelle Date et heure

DT# Indication temporelle Date et heure

E Séparateur pour constante réelle Exposant

e Séparateur pour constante réelle Exposant

Page 330: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-8 A5E00324651-01

Préfixe Caractérise Règle lexicale

D Séparateur pour intervalle de temps (jour) Jours (règle : représentation par niveaux)

H Séparateur pour intervalle de temps (heure) Heures : (règle : représentation par niveaux)

M Séparateur pour intervalle de temps (minutes)

Minutes : (règle : représentation par niveaux)

MS Séparateur pour intervalle de temps (millisecondes)

Millisecondes : (règle : représentation par niveaux)

S Séparateur pour intervalle de temps (secondes)

Secondes : (règle : représentation par niveaux)

T# Indication temporelle Durée

TIME# Indication temporelle Durée

TIME_OF_DAY# Indication temporelle Heure du jour

TOD# Indication temporelle Heure du jour

Dans les règles syntaxiques

Le tableau suivant montre l'utilisation de certains caractères comme caractères de mise en forme et comme séparateurs au niveau des règles syntaxiques ainsi que dans les commentaires et les attributs.

Caractère Description Règle syntaxique, commentaire ou attribut

: Séparateur pour l'indication du type, dans une instruction après un repère de saut

Déclaration de variable, déclaration d'instance, fonction, section des instructions, instruction CASE

; Fin de déclaration ou d'instruction Déclaration de variable, section des instructions, section d'affectation de DB, section de constantes, section de repères de saut, déclaration de composant

, Séparateur dans les listes et les sections de repères de saut

Déclaration de variable, spécification du type de données ARRAY, liste d'initialisation d'un tableau, paramètres de FB, paramètres de FC, liste de valeurs, déclaration d'instance

.. Indication de plage Spécification du type de données ARRAY, liste de valeurs

. Séparateur pour nom de FB et de DB, adressage absolu

Appel de FB, variable complexe

( ) Appel de fonction et de bloc fonctionnel, mise entre parenthèses dans les expressions, liste d'initialisation de tableau

Appel de fonction et de FB, expression, liste d'initialisation de tableau, multiplication simple, expression de puissance

[ ]

Déclaration d'un tableau, variable complexe, partie de tableau, indexation pour variables globales et chaînes de caractères

Spécification du type de données ARRAY, spécification du type de données STRING

(* *) Bloc de commentaire voir "Règles lexicales" // Ligne de commentaire voir "Règles lexicales" { } Section d'attributs Affectation d'attributs % Introduction d'un identificateur direct Pour programmer en conformité avec CEI, on peut

employer %M4.0 au lieu de M4.0. # Introduction d'un non-mot-clé Caractérise un identificateur comme n'étant pas un

mot-clé, par ex. #FOR.

Page 331: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-9

Opérations

Le tableau suivant énumère toutes les opérations de S7-SCL, les mots-clés tels que AND et les opérations courantes représentées par un seul caractère. Il s'applique aux jeux d'abréviations allemand et anglais.

Opération Description Règle syntaxique

:= Opération d'affectation, affectation de départ, initialisation de type de données

Affectation de valeur, section d'affectation de DB, section de constantes, définition de sortie ou d'entrée/sortie, définition d'entrée, définition d'entrée/sortie

+, - Opérations arithmétiques : opérations unaires, signes

Expression, expression simple, expression de puissance

+, -, *, /

MOD; DIV

Opérations arithmétiques de base Opération arithmétique de base, multiplication simple

** Opérations arithmétiques : opération de puissance

Expression

NOT Opérations logiques : négation Expression, opérande

AND, &, OR; XOR, Opérations logiques de base Opération logique de base

<,>,<=,>=,=,<> Opérations de comparaison Opération de comparaison

Page 332: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-10 A5E00324651-01

15.1.5 Mots-clés et identificateurs prédéfinis

Le tableau suivant dresse la liste par ordre alphabétique des mots-clés de S7-SCL et des identificateurs prédéfinis. Ils sont accompagnés d'une description et de la règle syntaxique dans laquelle ils sont utilisés comme blocs terminaux. De façon générale, les mots-clés ne dépendent pas du jeu d'abréviations.

Mot-clé Description Règle syntaxique

AND Opération logique Opération logique de base

ANY Désignation du type de données ANY Spécification d'un type de données paramètre

ARRAY Introduction de la spécification d'un tableau, suivie de la liste des indices placée entre "[" et "]".

Spécification du type de données ARRAY

AT Déclare un accès à une variable Déclaration de variable

BEGIN Introduction de la section des instructions pour les blocs de code ou de la section d'initialisation pour les blocs de données

Bloc d'organisation, fonction, bloc fonctionnel, bloc de données

BLOCK_DB Désignation du type de données BLOCK_DB

Spécification d'un type de données paramètre

BLOCK_FB Désignation du type de données BLOCK_FB

Spécification d'un type de données paramètre

BLOCK_FC Désignation du type de données BLOCK_FC

Spécification d'un type de données paramètre

BLOCK_SDB Désignation du type de données BLOCK_SDB

Spécification d'un type de données paramètre

BOOL Type de données simple pour données binaires

Type de données binaire

BY Introduction de l'incrément Instruction FOR

BYTE Type de données simple Type de données binaire

CASE Introduction de l'instruction de contrôle pour sélection

Instruction CASE

CHAR Type de données simple Type de données caractère

CONST Introduction de la définition de constantes Section de constantes

CONTINUE Instruction de commande pour les boucles FOR, WHILE et REPEAT

Instruction CONTINUE

COUNTER Type de données pour compteur, utilisable seulement dans une section de paramètres

Spécification d'un type de données paramètre

DATA_BLOCK Introduction du bloc de données Bloc de données

DATE Type de données simple pour date Type de données temporel

DATE_AND_TIME Type de données complexe pour date et heure

DATE_AND_TIME

DINT Type de données simple pour entier à précision double

Type de données numérique

DIV Opération pour division Opération arithmétique de base, multiplication simple

DO Introduction de la section des instructions pour l'instruction FOR

Instruction FOR, instruction WHILE

Page 333: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-11

Mot-clé Description Règle syntaxique

DT Type de données simple pour date et heure

DATE_AND_TIME

DWORD Type de données simple pour double mot Type de données binaire

ELSE Introduction du cas où aucune condition n'est remplie

Instruction IF, instruction CASE

ELSIF Introduction de la condition alternative Instruction IF

EN Drapeau validant le bloc

ENO Drapeau d'erreur du bloc

END_CASE Fin de l'instruction CASE Instruction CASE

END_CONST Fin de la définition de constantes Section de constantes

END_DATA_BLOCK Fin du bloc de données Bloc de données

END_FOR Fin de l'instruction FOR Instruction FOR

END_FUNCTION Fin de la fonction Fonction

END_FUNCTION_BLOCK Fin du bloc fonctionnel Bloc fonctionnel

END_IF Fin de la condition IF Instruction IF

END_LABEL Fin de la section de repères de saut Section de repères de saut

END_TYPE Fin de l'UDT Type de données utilisateur

END_ORGANIZATION_ BLOCK

Fin du bloc d'organisation Bloc d'organisation

END_REPEAT Fin de l'instruction REPEAT Instruction REPEAT

END_STRUCT Fin de la spécification d'une structure Spécification du type de données STRUCT

END_VAR Fin d'une section de déclaration de variables temporaires, de variables statiques, de paramètres

END_WHILE Fin de l'instruction WHILE Instruction WHILE

EXIT Abandon direct du traitement d'une boucle

EXIT

FALSE Constante booléenne prédéfinie : condition logique non remplie, valeur égale 0

FOR Introduction de l'instruction de contrôle pour traitement de boucle

Instruction FOR

FUNCTION Introduction de la fonction Fonction

FUNCTION_BLOCK Introduction du bloc fonctionnel Bloc fonctionnel

GOTO Instruction ordonnant un saut à un repère de saut

Saut dans le programme

IF Introduction de l'instruction de contrôle pour sélection

Instruction IF

INT Type de données simple pour entier à précision simple

Type de données numérique

LABEL Introduction de la section de repères de saut

Section de repères de saut

MOD Opération arithmétique pour le reste de la division

Opération arithmétique de base, multiplication simple

NIL Pointeur zéro

Page 334: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-12 A5E00324651-01

Mot-clé Description Règle syntaxique

NOT Opération logique faisant partie des opérations unaires

Expression, opérande

OF Introduction de la spécification du type de données

Spécification du type de données ARRAY, instruction CASE

OK Drapeau indiquant si les instructions d'un bloc ont été exécutées sans erreur

OR Opération logique Opération logique de base

ORGANIZATION_BLOCK Introduction du bloc d'organisation Bloc d'organisation

POINTER Type de données pointeur, autorisé seulement dans la déclaration de paramètre dans la section de paramètres, n'est pas traité dans S7-SCL

Voir chapitre "Données globales".

PROGRAM Introduction de la section des instructions d'un FB (synonyme de FUNCTION_BLOCK)

Bloc fonctionnel

REAL Type de données simple Type de données numérique

REPEAT Introduction de l'instruction de contrôle pour traitement de boucle

Instruction REPEAT

RET_VAL Valeur en retour d'une fonction Fonction

RETURN Instruction de commande pour revenir d'un sous-programme

Instruction RETURN

S5TIME Type de données simple, format S5 spécial

Type de données temporel

STRING Type de données pour chaîne de caractères

Spécification du type de données STRING

STRUCT Introduction de la spécification d'une structure, suivie de la liste des composants

Spécification du type de données STRUCT

THEN Introduction des actions consécutives si la condition est remplie

Instruction IF

TIME Type de données simple pour indications temporelle

Type de données temporel

TIMER Type de données pour temporisation, utilisable seulement dans une section de paramètres

Spécification de type de données paramètre

TIME_OF_DAY Type de données simple pour l'heure du jour

Type de données temporel

TO Introduction de la valeur finale Instruction FOR

TOD Type de données simple pour l'heure du jour

Type de données temporel

TRUE Constante booléenne prédéfinie : condition logique remplie, valeur différente de 0

TYPE Introduction d'un UDT Type de données utilisateur

VAR Introduction d'une section de déclaration Section de variables statiques

VAR_TEMP Introduction d'une section de déclaration Section de variables temporaires

UNTIL Introduction de la condition d'abandon pour instruction REPEAT

Instruction REPEAT

Page 335: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-13

Mot-clé Description Règle syntaxique

VAR_INPUT Introduction d'une section de déclaration Section de paramètres

VAR_IN_OUT Introduction d'une section de déclaration Section de paramètres

VAR_OUTPUT Introduction d'une section de déclaration Section de paramètres

WHILE Introduction de l'instruction de contrôle pour traitement de boucle

Instruction WHILE

WORD Type de données simple pour mot Type de données binaire

VOID Pas de valeur de retour pour un appel de fonction

Fonction

XOR Opération logique Opération logique de base

Page 336: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-14 A5E00324651-01

15.1.6 Identificateurs d'opérande et mots-clés de bloc

Données système globales

Le tableau suivant dresse la liste des identificateurs d'opérande de S7-SCL et en donne une description.

• Indication de l'identificateur d'opérande :

préfixe de mémoire (A, E, M, PA, PE) ou bloc de données (D)

• Indication de la taille de l'élément de données :

préfixe de taille (facultatif ou B, D, W, X)

L'abréviation est une combinaison de l'identificateur d'opérande (préfixe de mémoire ou D pour bloc de données) et du préfixe de taille qui sont tous deux des règles lexicales. Le tableau est classé dans l'ordre alphabétique des abréviations allemandes ; les abréviations anglaises sont citées en regard.

Abréviation allemande

Abréviation anglaise

Préfixe de mémoire ou bloc de données Préfixe de taille

A Q Sortie (par la mémoire image) Bit

AB QB Sortie (par la mémoire image) Octet

AD QD Sortie (par la mémoire image) Double mot

AW QW Sortie (par la mémoire image) Mot

AX QX Sortie (par la mémoire image) Bit

D D Bloc de données Bit

DB DB Bloc de données Octet

DD DD Bloc de données Double mot

DW DW Bloc de données Mot

DX DX Bloc de données Bit

E I Entrée (par la mémoire image) Bit

EB IB Entrée (par la mémoire image) Octet

ED ID Entrée (par la mémoire image) Double mot

EW IW Entrée (par la mémoire image) Mot

EX IX Entrée (par la mémoire image) Bit

M M Mémento Bit

MB MB Mémento Octet

MD MD Mémento Double mot

MW MW Mémento Mot

MX MX Mémento Bit

PAB PQB Sortie (périphérie directe) Octet

PAD PQD Sortie (périphérie directe) Double mot

PAW PQW Sortie (périphérie directe) Mot

PEB PIB Entrée (périphérie directe) Octet

PED PID Entrée (périphérie directe) Double mot

PEW PIW Entrée (périphérie directe) Mot

Page 337: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-15

Mots-clés de bloc

Ils servent à l'adressage absolu de blocs. Le tableau donne la liste des mots-clés de bloc classés d'après les abréviations allemandes, avec les abréviations anglaises correspondantes.

Abréviation allemande

Abréviation anglaise

Préfixe de mémoire ou bloc de données

DB DB Bloc de données (Data_Block)

FB FB Bloc fonctionnel (Function_Block)

FC FC Fonction (Function)

OB OB Bloc d'organisation (Organization_Block)

SDB SDB Bloc de données système (System_Data_Block)

SFC SFC Fonction système (System_Function)

SFB SFB Bloc fonctionnel système (System_Function_Block)

T T Temporisation (Timer)

UDT UDT Type de données global ou utilisateur (Userdefined_Data_Type)

Z C Compteur (Counter)

Page 338: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-16 A5E00324651-01

15.1.7 Présentation des blocs non terminaux

Un bloc non terminal est un élément complexe, décrit par une règle supplémentaire. Il est représenté par une boîte. Le nom figurant dans cette boîte est celui de la règle plus détaillée.

Bloc non terminal

<Nom de la règle>

Nom de la règle : majuscules ou minuscules !

Cet élément se rencontre dans les règles lexicales et dans les règles syntaxiques.

15.1.8 Présentation des symboles

Un symbole est un élément complexe qui est employé comme élément de base dans les règles syntaxiques et expliqué dans les règles lexicales. Il est représenté par un rectangle. Le NOM en majuscules est celui de la règle lexicale plus détaillée (sans rectangle).

Symbole

<Nom de la règle>

Nom de la règle : toujours en majuscules !

Les symboles définis représentent des identificateurs qui découlent des règles lexicales. Ils décrivent :

• Les identificateurs

• L'attribution de noms dans S7-SCL

• Les constantes prédéfinies et les drapeaux

Page 339: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-17

15.1.9 Identificateurs

Identificateurs

Les identificateurs servent à adresser des objets du langage S7-SCL. Le tableau suivant vous renseigne sur les classes d'identificateurs.

Type d'identificateur Remarques, exemples

Mots-clés par ex. instructions de commande BEGIN, DO, WHILE

Noms prédéfinis Noms de

• Types de données standard (par ex. BOOL, BYTE, INT)

• Fonctions standard prédéfinies (par ex. ABS)

• Constantes standard TRUE et FALSE

Identificateurs d'opérande dans les identificateurs absolus

Pour données système globales et blocs de données globaux :

par ex. E1.2, MW10, FC20, T5, DB30, DB10.D4.5

Noms quelconques de votre choix conformes à la règle IDENTIFICATEUR

Noms de

• Variables déclarées

• Composants de structure

• Paramètres

• Constantes déclarées

• Repères de saut

Mnémoniques de la table des mnémoniques

Conformes à la règle lexicale IDENTIFICATEUR ou à la règle lexicale Mnémonique, c'est-à-dire écrits entre guillemets, par ex. "xyz"

Majuscules et minuscules

La distinction entre majuscules et minuscules n'est pas faite pour les mots-clés. Depuis la version 4.0 de S7-SCL, elle n'est plus faite non plus pour les noms prédéfinis, pour les noms que vous choisissez vous-même, par ex. pour les variables, ainsi que pour les mnémoniques de la table des mnémoniques (voir le tableau ci-après).

Type d'identificateur Distinction entre majuscules et minuscules ?

Mots-clés non

Noms prédéfinis des types de données standard non

Noms des fonctions standard prédéfinies non

Noms prédéfinis des constantes standard non

Identificateurs d'opérande dans les identificateurs absolus non

Noms quelconques de votre choix non

Mnémoniques de la table des mnémoniques non

Vous pouvez donc écrire aussi en minuscules les noms des fonctions standard, comme par ex. BYTE_TO_WORD et ABS. Il en est de même pour les paramètres des fonctions de temporisation et de comptage, par ex. SV, se ou ZV.

Page 340: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-18 A5E00324651-01

15.1.10 Attribution de noms dans S7-SCL

Attribution de noms au choix

Il y a deux façons d'attribuer des noms.

• Vous pouvez les attribuer vous-même dans S7-SCL. Ils doivent être conformes à la règle IDENTIFICATEUR qui s'applique à chaque nom employé dans S7-SCL.

• Vous pouvez les introduire par l'intermédiaire de STEP 7 à l'aide de la table des mnémoniques. Ils suivent alors la règle IDENTIFICATEUR ou bien celle des mnémoniques. Le mnémonique étant indiqué entre guillemets, il peut comporter tous les caractères imprimables (par ex. des espaces).

" "Caractèreimprimable

MNEMONIQUE

Caractère de

_ _

Chiffre

Lettre

Chiffre

Lettre Lettre

IDENTIFICATEUR

soulignementCaractère desoulignement

Les mnémoniques doivent être définis dans la table des mnémoniques.

Règles pour l'attribution de noms

Tenez compte des points suivants :

• Choisissez des noms univoques et évocateurs qui contribuent à la clarté du programme.

• Assurez-vous que le nom n'est pas déjà utilisé par le système, par exemple pour les identificateurs des types de données ou des fonctions standard.

• Domaine de validité : Dans le cas de variables globales, s'étend à tout le programme, dans le cas de variabales locales, se limite au bloc. On trouve donc des variables de même nom dans des blocs différents (voir le tableau ci-dessous sur les régles d'attribution de noms).

Page 341: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-19

Restrictions

En attribuant un nom, tenez compte des quelques restrictions suivantes.

Les noms doivent être univoques dans leur zone de validité, c'est-à-dire qu'il n'est pas permis d'utiliser encore une fois dans le même bloc un nom qui y a déjà été attribué. En outre, il ne faut pas employer les noms suivants qui sont utilisés par le système :

• Noms de mots-clés, par ex. CONST, END_CONST, BEGIN ;

• Noms des opérations, par ex. AND, XOR ;

• Noms des identificateurs prédéfinis, par ex. noms de types de données tels que BOOL, STRING, INT ;

• Noms des constantes prédéfinies TRUE et FALSE ;

• Noms des fonctions standard, par ex. ABS, ACOS, ASIN, COS, LN ;

• Noms des identificateurs d'opérande pour données système globales, par ex. EB, EW, ED, AB, AW, AD MB, MD.

Utilisation de la règle IDENTIFICATEUR

Le tableau suivant précise dans quels cas vous pouvez attribuer des noms conformes à la règle IDENTIFICATEUR.

Identificateur Description Règle

Nom de bloc Nom symbolique de bloc DESIGNATION DE BLOC, appel de fonction

Nom de temporisation et de compteur

Nom symbolique de temporisation et de compteur

DESIGNATION DE TEMPORISATION, DESIGNATION DE COMPTEUR

Nom d'attribut Nom pour un attribut Affectation d'attribut

Nom de constante Déclaration d'une constante symbolique, utilisation

Section de constantes, constante

Repère de saut Déclaration d'un repère de saut, utilisation d'un repère de saut

Section de repères de saut, section des instructions, instructions GOTO

Nom de variable Déclaration d'une variable temporaire ou statique

Déclaration de variable, variable simple, variable complexe

Nom d'instance locale Déclaration d'une instance locale Déclaration d'instance, nom d'appel de FB

Page 342: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-20 A5E00324651-01

DESIGNATION DE BLOC

Dans la règle DESIGNATION DE BLOC, vous pouvez employer au choix les règles IDENTIFICATEUR et Mnémonique.

DB, FB, FC, OB, SDB, SFC, SFB, UDT

de blocMot-clé

IDENTIFICATEUR

Mnémonique

Numéro

DESIGNATION DE BLOC

Il en est de même pour les règles DESIGNATION DE TEMPORISATION et DESIGNATION DE COMPTEUR.

15.1.11 Constantes et drapeaux prédéfinis

Les deux tableaux s'appliquent aux jeux d'abréviations allemand comme anglais.

Constantes

Abréviation Description

FALSE Constante booléenne prédéfinie (constante standard) de valeur 0. Sa signification logique est qu'une condition n'est pas remplie.

TRUE Constante booléenne prédéfinie (constante standard) de valeur 1. Sa signification logique est qu'une condition est remplie.

Drapeaux

Abréviation Description

EN Drapeau validant le bloc

ENO Drapeau d'erreur du bloc

OK Drapeau qui est mis à FALSE quand une erreur s'est produite dans l'exécution d'une instruction.

Page 343: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-21

15.2 Règles lexicales

15.2.1 Présentation des règles lexicales

Les règles lexicales décrivent la structure des éléments (symboles) sur lesquels porte l'analyse lexicale réalisée par le compilateur. Le format de la notation n'est pas libre et les règles sont à appliquer rigoureusement. Cela signifie en particulier que :

• L'insertion de caractères de mise en forme n'est pas autorisée.

• L'insertion de blocs et de lignes de commentaire n'est pas possible.

• L'insertion d'attributs pour les identificateurs n'est pas possible.

15.2.2 Désignations

Règle Diagramme syntaxique

Identificateur

Caractère de

_ _

Chiffre

Lettre

Chiffre

Lettre Lettre

IDENTIFICATEUR

Caractère desoulignement soulignement

Désignation de bloc

DB, FB, FC, OB, SDB, SFC, SFB, UDT

de blocMot-clé

IDENTIFICATEUR

Mnémonique

Numéro

DESIGNATION DE BLOC

Page 344: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-22 A5E00324651-01

Règle Diagramme syntaxique

Désignation de temporisation

Numéro

IDENTIFICATEUR

Mnémonique

T

Abréviation allemande et anglaise

Désignation de compteur

NuméroZ

IDENTIFICATEUR

Mnémonique

Abréviation allemande 'Z'Abréviation anglaise 'C'

Mot-clé de bloc

Bloc d'organisation

Bloc fonctionnel système

Bloc de données

Type de données utilisateurUDT

DB

SFB

OB

(User Data Type)

FonctionFC

Fonction systèmeSFC

Bloc fonctionnelFB

Mnémonique

" "Caractèreimprimable

Numéro

Chiffre

Page 345: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-23

15.2.3 Constantes

Règle Diagramme syntaxique

Constante binaire CONSTANTE BINAIRE

(1) pour le type BYTE seulement

SUITE DE CHIFFRES DECIMAUXSUITE DE CHIFFRES OCTAUXSUITE DE CHIFFRES HEXA

SUITE DE CHIFFRES BINAIRESCARACTERES (1)WORD#

BOOL#

BYTE#

DWORD#

Constante entière CONSTANTE ENTIERE

(1) pour le type INT seulement

SUITE DE CHIFFRES OCTAUX

SUITE DE CHIFFRES BINAIRESCARACTERES (1)

SUITE DE CHIFFRES HEXA

INT#

DINT#

SUITE DE CHIFFRES DECIMAUX+

-

Constante réelle

CONSTANTE REELLE

. Exposant

.

-

+

SUITE DE CHIFFRE DECIMAUX

REAL#

SUITE DE CHIFFRE DECIMAUX

SUITE DE CHIFFRE DECIMAUX

SUITE DE CHIFFRE DECIMAUX

Suite de chiffres décimaux

_

Caractère de soulignement

Chiffre

Suite de chiffres décimaux

Chiffres décimaux : 0-9

Page 346: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-24 A5E00324651-01

Règle Diagramme syntaxique

Suite de chiffres binaires

_

Caractère de soulignement

Chiffre binaire2#

Chiffre binaire : 0 ou 1

Suite de chiffres octaux

_Caractère de soulignement

8# Chiffre octal

Suite de chiffres octaux

Suite de chiffres hexadécimaux

_

Caractère de soulignement

Chiffre hexadécimal16#

Chiffre hexadécimal : 0-9A-F

CHIFFRE HEXADECIMAL

Exposant

Exposant

e

E

-

+

SUITE DE CHIFFRES DECIMAUX

Constante sur caractère

CONSTANTE SUR CARACTERE

' 'CaractèreCHAR#

SUITE DE CHIFFRES DECIMAUX

Page 347: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-25

Règle Diagramme syntaxique

Constante sur chaîne

' 'de la chaîneInterruption

CaractèreCaractère

CONSTANTE SUR CHAINE

Caractère

Interruption d'une chaîne de caractères

Interruption d'une chaîne de caractères

$<

Commentaire

Caractère demise en forme

$>

Caractère d'espacement (blank)de changement de ligne (linefeed)de retour chariot (carriage return)de saut de page (formfeed, page)de tabulation horizontale (tabulator)

Date

DATE#

Indication de la date

D#

Date

Page 348: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-26 A5E00324651-01

Règle Diagramme syntaxique

Durée

TIME#

T# Représentation par niveau

Représentation décimale

Représentation décimale

-Chaque unité de temps (heures, minutes) ne doit être indiquée qu'une seule fois-L'ordre - jours, heures, minutes, secondes, millisecondes - doit être respecté

Durée

Heure du jour Heure du jour

TIME_OF_DAY#

TOD#

Indication de l'heure du jour

Date et heure

DATE_AND_TIME#

DT#

Indication de la date - Indication de l'heure du jour

Date et heure

Indication de date

- -

Année Mois Jour

Indication de la date

SUITE DE CHIFFRES DECIMAUX

SUITE DE CHIFFRES DECIMAUX

SUITE DE CHIFFRES DECIMAUX

Page 349: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-27

Règle Diagramme syntaxique

Indication d'heure du jour

Indication de l'heure du jour

: :

Indication des heures Indication des minutes

.

Indication des millisecondesIndication des secondes

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

Représentation décimale

Pour passer à la représentation décimale, il faut que les unités temporellesn'aient pas encore été définies

. D

. H

. M

. S

. MS

Jours

Heures

Minutes

Secondes

Millisecondes

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

Représentation décimale

Page 350: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-28 A5E00324651-01

Règle Diagramme syntaxique

Représentation par niveaux

_D

Jours

_H

Heures

_M

Minutes

_S

Secondes

Millisecondes

_MS

SUITE DE CHIFFRESDECIMAUX

Représentation par niveaux

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

SUITE DE CHIFFRESDECIMAUX

Page 351: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-29

15.2.4 Adressage absolu

Règle Diagramme syntaxique

Adressage simple de la mémoire

IDENTIFICATEUR

Adressage absolu

Adressage symbolique

D'OPERANDE

IDENTIFICATEUR

Adresse

MNEMONIQUE

Adessage indexé de la mémoire

,[ ]Préfixe de mémoire

Préfixe de taille

Identificateur d'opérande Indice

Pour adressage binaire seulement

Expressionde base

Expressionde base

Identificateur d'opérande pour mémoire

Préfixede mémoire

Préfixede taille

Identificateur d'opérande

Adresage absolu d'un DB

AdresseIdentificateur d'opérande DB

Adressage absolu

Adressage indexé d'un DB

,Expressionde base

[ ]

Index

Identificateurd'opérande DB

Expressionde base

uniquement pour l'adressage par bit

Adressage structuré d'un DB

. VariableIDENTIFICATIONDU DB simple

Page 352: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-30 A5E00324651-01

Règle Diagramme syntaxique

Identificateur d'opérande DB

. D Préfixede taille

DESIGNATIONDU DB

Identificateur d'opérande

Préfixe de mémoire

Entrée

Sortie

Mémento

Périphérie des entrées

Périphérie des sorties

I

Q

M

PQ

A

M

PA

E

PIPE

Préfixe de mémoire

Abréviations allemandes Abréviations anglaises

Préfixe de taille pour mémoire et DB

Bit

Octet

Mot

Double mot

X

W

D

B

Préfixe de taille

Adresse pour mémoire et DB

.Numéro Numéro

uniquement pour une adresse binaire

Adresse

Adressage de l'instance locale

. VariablesimpleIDENTIFICATEUR

Nom de l'instance locale

Page 353: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-31

15.2.5 Commentaires

Voici les restrictions dont vous devez tenir compte lorsque vous insérez des commentaires :

• L'imbrication de commentaires est autorisée quand l'option "Imbrication de commentaires possible" est activée.

• L'insertion de commentaires est possible n'importe où dans les règles syntaxiques, mais il ne l'est pas dans les règles lexicales.

Règle Diagramme syntaxique

Commentaire

Bloc de commentaire

Ligne de commentaire

Ligne de commentaire

Ligne de commentaire

// CRCaractèreimprimable

Retour chariot (carriage return)

Bloc de commentaire

Page 354: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-32 A5E00324651-01

15.2.6 Attributs de bloc

Les attributs de blocs peuvent se trouver avec la syntaxe suivante après la DESIGNATION DU BLOC et avant la déclaration de la première section de variables ou de paramètres.

Règle Diagramme syntaxique

Titre

Version

: .VersionNOMBRE

DECIMAL

NOMBRE

DECIMAL

Protection de bloc KNOW_HOW_PROTECT

Auteur

Nom

Famille de blocs

Attributs système pour bloc

Attributs système de blocs

{ }':=IDENTIFICATEUR

24 caractères au maximumcaractèreimprimable

'

;

Page 355: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-33

15.2.7 Options du compilateur

Les options du compilateur se trouvent dans une ligne distincte en dehors des limites de blocs dans la source. Aucune distinction n'est faite entre les majuscules et les minuscules.

Règle Diagramme de syntaxe

Option du compilateur

Page 356: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-34 A5E00324651-01

15.3 Règles syntaxiques

15.3.1 Présentation des règles syntaxiques

Les règles syntaxiques décrivent la structure de S7-SCL en s'appuyant sur les règles lexicales. En respectant ces règles, vous pouvez créer votre programme S7-SCL en toute liberté de format.

Chacune des règles est précédée de son nom. Si elle est appliquée dans une règle de niveau hiérarchique supérieur, son nom figure dans un rectangle.

Si le nom est écrit en majuscules dans le rectangle, il s'agit d'un symbole qui est décrit dans les règles lexicales.

Pour les noms de règle figurant dans un rectangle aux coins arrondis ou dans un cercle, vous trouverez des informations au chapitre "Description formelle du langage".

Liberté de format

La liberté de format implique que :

• L'insertion de caractères de mise en forme est partout possible ;

• L'insertion de lignes et de blocs de commentaire est possible.

Page 357: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-35

15.3.2 Organisation des sources S7-SCL

Règle Diagramme syntaxique

Programme S7-SCL

Elément du programme SCL

Elément de programme S7-SCL

Bloc fonctionnel

Bloc d'organisation

Bloc de données

Type de données utilisateur

Fonction

Bloc d'organisation Bloc d'organisation

Section des instructions

DESIGNATIONDE L'OB

Section de déclaration de l'OBORGANIZATION_BLOCK

END_ORGANIZATION_BLOCKBEGIN

Fonction

N'oubliez pas que pour les fonctions sans VOID dans la section des instructions, la valeur de retour doit être affectée au nom de la fonction !

Fonction

Section des instructionsBEGIN END_FUNCTION

Spécification dutype de données:

Section de décla-ration de la FC

FUNCTION

VOID

DESIGNATIONDE LA FC

Page 358: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-36 A5E00324651-01

Règle Diagramme syntaxique

Bloc fonctionnel

Bloc fonctionnel

Section des instructionsBEGIN

DESIGNATIONDU FB

Section de dé- claration du FB

FUNCTION_BLOCK

PROGRAM

END_FUNCTION_BLOCK

END_PROGRAM

Bloc de données

Section d'affectation du DBBEGIN END_DATA_BLOCK

DATA_BLOCK Section de déclaration du DBDESIGNATION

DU DB

Bloc de données

Type de données utilisateur

TYPE DESIGNATIONDE L`UDT END_TYPE

Spécificationdu type de données

Type de données utilisateur

STRUCT

Page 359: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-37

15.3.3 Composition des sections de déclaration

Règle Diagramme syntaxique

Section de déclaration de l'OB

Section desvariables temporaires

Section des constantes

Section des repères de saut

Section de déclaration de la FC

Section desvariables temporaires

Section des repères de saut

Section des constantes

Section des paramètres

Interface

Section de déclaration du FB

Section desvariables temporaires

Section desvariables statiques

Section des repères de saut

Section des constantes

Section des paramètresInterface

Page 360: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-38 A5E00324651-01

Règle Diagramme syntaxique

Section de déclaration du DB

DESIGNATIONDE L'UDT

Structure de laspécification du

type de données

Section d'affectation du DB

:= ;Constante*Variable simple

Section d'affectation du DB

* en notation LIST

Section des constantes

Section des constantes

CONST := ;Expressionsimple

Mnémonique de

IDENTIFICATEUR END_CONST

la constante

Section des repères de saut

Section de déclaration des repères de saut

LABEL END_LABEL;

,

Repère de saut

IDENTIFICATEUR

Page 361: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-39

Règle Diagramme syntaxique

Section des variables statiques

Section de variables statiques

Déclarationdes variables

Déclaration

* pour FB seulement

d'instance*

VAR END_VAR

Déclaration de variables

,

: ;

Nom de la variable,

IDENTIFICATEURSpécification dutype de données

Initialisation dutype de données

Nom du composant dans la structure

du paramètreou du composant

Pas à l'initialisation

1)

{ }': =IDENTIFICATEUR

24 caractères au maximumcaractère

imprimable'

;

1) Attributs système de paramètres

Initialisation du type de données

INITIALISATION

CONSTANTE

LISTE D’INITIAL.

D’UN TABLEAU

Page 362: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-40 A5E00324651-01

Règle Diagramme syntaxique

Liste d'initialisation de tableau

LISTE DE REPETITION DE CONSTANTES

CONSTANTECHAINE DE CHIFFRES

DECIMALES

FACTEUR DE REPETITION

( )

,

LISTE DE REPET.

DE CONSTANTES

[ ]

LISTE D’INITIALISATION DE TABLEAUX

CONSTANTE

,

,

LISTE DE REPETIT.

DE CONSTANTES

Déclaration d'instance (possible seulement dans la section VAR d'un FB)

Nom de l'instance locale

,

IDENTIFICATEUR : ;

DESIGNATIONDU FB

DESIGNATIONDU SFB

Déclaration d'instancesLe FB et le SFB doiventdéjà exister !

Section de variables temporaires

END_VAR

,

Déclarationde la variableVAR_TEMP

Section de variables temporaires

L'initialisation n'est pas possible

Page 363: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-41

Règle Diagramme syntaxique

Section de paramètres

VAR_OUTPUT Déclarationde la variable END_VAR

VAR_INPUT

VAR_IN_OUT

Section des paramètres

L'initialisation est uniquement possible pour VAR_INPUT et VAR_OUTPUT

Spécification du type de données

type de données

Spécification du

Type de donnéesélémentaire

type de donnéesSpécification du

DESIGNATIONDE L'UDT

type de donnéesSpécification du

Spécification du

type de données

DATE_AND_TIME

chaîne de caractères

ARRAY

STRUCT

paramètre

Page 364: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-42 A5E00324651-01

15.3.4 Types de données dans S7-SCL

Règle Diagramme syntaxique

Type de données simple

Type de données

Type de donnéesbinaire

Type de données

Type de donnéesnumérique

caractère

temporel

Type de données binaire

Bit

Octet

Mot

Double mot

WORD

DWORD

BOOL

BYTE

Type de données caractère

CHAR

Spécification du type de données STRING

Spécification du type de données STRING

[ ]Expressionsimple

Longueur de la chaîne

STRING

Type de données numérique

DINT

REAL

INT Entier

Nombre réel

Entier, double précision

Page 365: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-43

Règle Diagramme syntaxique

Type de données temporel

Temps

TempsFormat S5

TIME

S5TIME

TIME_OF_DAY

TOD

DATE

Heure du jour

Date

DATE_AND_TIME

DATE_AND_TIME#

DT#

Indication de l'heure du jourIndication de la date -

DATE_AND_TIME

Spécification du type de données ARRAY

Spécification du type de données ARRAY

[ ]..

Spécification dutype de donnéesOF

,

ARRAY Indice Indice

Spécification des indices

1 n

6 dimensions au plus

Spécification du type de données STRUCT

N'oubliez pas de terminer le mot-clé END_STRUCT par un point-virgule !

Spécification du type de données STRUCT

Déclaration descomposants

END_STRUCTSTRUCT

Déclaration des composants

Spécification dutype de données

Initialisationdes données: ;IDENTIFICATEUR

Nom du composant

Page 366: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-44 A5E00324651-01

Règle Diagramme syntaxique

Spécification du type de données paramètre

Compteur

Temporisation

Type quelconque

Bloc fonctionnel

Fonction

Bloc de données

Bloc de données système

COUNTER

TIMER

ANY

BLOCK_FC

BLOCK_SDB

BLOCK_DB

BLOCK_FB

POINTER Adresse

Page 367: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-45

15.3.5 Section des instructions

Règle Diagramme syntaxique

Section des instructions

Instruction

Repère de saut

:IDENTIFICATEUR ;

Section des instructions

Instruction Instruction

Affectation de valeur

Exécution desous-programme

Instruction de contrôle

Affectation de valeur Affectation de valeur

ExpressionVariable simple

Variable absolue

Variable dans DB

:= ;

Dans zones de mémoire CPU

Variable instance locale

Page 368: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-46 A5E00324651-01

Règle Diagramme syntaxique

Variable étendue

Variable étendue

Variable simple

Variable absolue

Variable dans un DB

Variable dans une

Appel de FC

pour les zones de mémoirede la CPU

instance locale

Variable simple

Variablestructurée

Tableausimple

Nom de la variableou du paramètre

IDENTIFICATEUR

Variable composée

Tableausimple

IDENTIFICATEUR

.

Identificateur au débutNom de la variable ou

Nom du composantsuit la virgule

du paramètre

Page 369: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-47

15.3.6 Affectations de valeur

Règle Diagramme syntaxique

Expression

Opérande

( )

+

Expression Expression

Expression **

Puissance

-

Expression

NOT

Expression

Plus unaire

Moins unaire

Négation

Exposants

Expression

Opérations logiques de base

comparaisonOpérations de

arithmétiques de baseOpérations

Expression simple

+

-

Multiplicationsimple

Expressionsimple

Page 370: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-48 A5E00324651-01

Règle Diagramme syntaxique

Multiplication simple

*

/

DIV

MOD

Multiplicationsimple

Constante

Expressionsimple( )

-

Opérande

Constante

Variable étendue

( Expression)

NOT Opérande

Variable étendue

Variable étendue

Variable simple

Variable absolue

Variable dans un DB

Variable dans une

Appel de FC

pour les zones de mémoirede la CPU

instance locale

Page 371: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-49

Règle Diagramme syntaxique

Constante

Valeur numérique

Chaîne de caractères

Nom de constante

Constante

Exposant Exposant

e

E

-

+

SUITE DE CHIFFRES DECIMAUX

Opération logique de base

AND & XOR OR

Opération arithmétique de base

/ MOD DIV* -+

Opérations arithmétiques de base

Opération de comparaison

>< <>=>=<=

Opération de comparaison

Page 372: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-50 A5E00324651-01

15.3.7 Appel de fonctions et de blocs fonctionnels

Règle Diagramme syntaxique

Appel de FB

( Paramètres du FB )

Nom de l'instance locale

IDENTIFICATEUR

.

DESIGNATIONDU FB

DESIGNATIONDU SFB

DESIGNATIONDU DB

Appel d 'un FB

FB : bloc fonctionnelSFB : bloc fonctionnel système

Nom de l'instance globale

Appel de fonction

( )Paramètresde la FC

Nom de la fonction standardou mnémonique

FC : fonction

SFC : fonction système

Fonction standard réalisée dans le compilateur

DESIGNATIONDE LA FC

DESIGNATIONDE LA SFC

IDENTIFICATEUR

Appel de fonction

Paramètres de FB

,

Affectationde l'entrée

Affectation del'entrée/sortie

Paramètres du FB

Page 373: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-51

Règle Diagramme syntaxique

Paramètres de FC

,

Affectationde l'entrée

Affectation de

l'entrée/sortiela sortie ou de

Expression

Paramètres d'une FC

Affectation de l'entrée Affectation de l'entrée

:=

Expression

DESIGNATION DELA TEMPORISATION

DESIGNATIONDU BLOC

DESIGNATIONDU COMPTEUR

Paramètre effectif

Nom du paramètred'entrée

IDENTIFICATEUR

(Paramètre formel)

Affectation de l'entrée/sortie

Affectation de l'entrée/sortie

Paramètre effectifNom du paramètred'entrée/sortie

: = VariableétendueIDENTIFICATEUR

(Paramètre formel)

Affectation de la sortie

Page 374: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-52 A5E00324651-01

15.3.8 Instructions de contrôle

Règle Diagramme syntaxique

Instruction IF

N'oubliez pas de terminer le mot-clé END_IF par un point-virgule !

Instruction IF

IF THENExpression

ELSIF THENExpression

ELSE END_IF

Section

Section

Sectiondes instructions

Condition

Condition

des instructions

des instructions

Instruction CASE

N'oubliez pas de terminer le mot-clé END_CASE par un point-virgule !

Expression de sélection (entier)Instruction CASE

CASE OFExpression

:

Valeur

:ELSE END_CASE

Liste de valeurs Sectiondes instructions

Sectiondes instructions

Page 375: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-53

Règle Diagramme syntaxique

Liste de valeurs

Nombre entier

. .

,

Valeur

ValeurValeur

Liste de valeurs

Valeur

IDENTIFICATEUR

Nom de la constante

Constante numérique

Instructions d'itération et de saut

Instruction

InstructionREPEAT

WHILE

InstructionFOR

InstructionCONTINUE

InstructionEXIT

InstructionRETURN

InstructionGOTO

Page 376: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-54 A5E00324651-01

Règle Diagramme syntaxique

Instruction FOR

N'oubliez pas de terminer le mot-clé END_FOR par un point-virgule !

FOR TO

DO

Instruction FOR

Expressionde base

Expressionde base

pour la valeur terminale

pour l'incrément

Affectationinitiale

END_FOR

BY

pour la valeur initiale

Sectiondes instructions

Instruction initiale

:= de baseExpressionVariable

étendue

pour la valeur initiale

Instruction initiale

Type de donnéesINT/DINT

Instruction WHILE

N'oubliez pas de terminer le mot-clé END_WHILE par un point-virgule.

Condition d'exécution

Instruction WHILE

END_WHILEWHILE Expression DOSection

des instructions

Instruction REPEAT

N'oubliez pas de terminer le mot-clé END_REPEAT par un point-virgule.

Condition d'abandon

Instruction REPEAT

END_REPEATREPEAT ExpressionUNTILSection

des instructions

Page 377: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 15-55

Règle Diagramme syntaxique

Instruction CONTINUE

CONTINUE

Instruction CONTINUE

Instruction RETURN

RETURN

Instruction RETURN

Instruction EXIT

EXIT

Instruction EXIT

Saut dans le programme

GOTO IDENTIFICATEUR

Repère de saut

Branchement deprogramme

Page 378: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Description du langage

S7-SCL V5.3 pour S7-300/400 15-56 A5E00324651-01

Page 379: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 16-1

16 Conseils et astuces

Code optimal à l'exécution en cas d'adressage de structures dans les blocs de données

Si vous devez adresser plus d'une fois une structure dans un bloc de données, il est recommandé de procéder de la manière suivante :

1. Créez une variable locale du type de la structure.

2. Affectez-lui une fois la structure se trouvant dans le bloc de données.

3. Après quoi vous pouvez utiliser la variable plusieurs fois dans le code, sans devoir adresser de nouveau le DB.

Exemple :

DB100.tableau[i].value := DB100.tableau[i].valeur1 * DB100.tableau[i].valeur2 / DB100.tableau[i].valeur3 ;

Cet exemple nécessitera moins de mémoire et sera d'exécution plus courte si vous le programmez comme suit :

VAR_TEMP tmp : STRUCT value : REAL; valeur1 : REAL; valeur2 : REAL; valeur3 : REAL; END_STRUCT; END_VAR tmp := DB100.tableau[i]; DB100.tableau[i].value := tmp.valeur1 * tmp.valeur2 / tmp.valeur3;

Nota Avec VAR_TEMP, vous rangez des variables dans la pile de la CPU. Cela peut conduire à un dépassement de capacité de la pile pour les petites CPU. Evitez d'utiliser trop de variables temporaires dans votre programme !

Page 380: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Conseils et astuces

S7-SCL V5.3 pour S7-300/400 16-2 A5E00324651-01

Problèmes lors de l'affectation de la pile L pour les petites CPU

Les problèmes survenant lors de l'affectation de la pile L sont dus à sa taille réduite dans les petites CPU. Ceci est facile à éviter dans la plupart des cas, si vous tenez compte des conseils suivants.

• Utilisez les variables temporaires avec modération (section VAR_TEMP ou VAR).

• Ne déclarez pas de variable de type de données complexe et réduisez au minimum le nombre de variables de type simple.

• Utilisez des variables statiques :

- Quand vous programmez un FB, vous pouvez employer la section VAR au lieu de VAR_TEMP.

- Quand vous programmez un OB ou une FC, rabattez-vous sur un bloc de données global ou sur des mémentos.

• Evitez les expressions volumineuses. Pour les traiter, le compilateur enregistre en effet des résultats intermédiaires dans la pile. Selon le type ou le nombre de ces résultats, la taille de pile disponible peut s'en trouver dépassée. Solution : Décomposez l'expression en plusieurs expressions plus petites et affectez les résultats intermédiaires à des variables explicites.

Sortie de nombres REAL durant la visualisation

Pour sortir des nombres réels non représentables, la fonction de test "Visualiser" peut fournir les configurations suivantes :

Valeur Représentation

+ infinity 1.#INFrandom-digits

- infinity -1.#INFrandom-digits

Indefinite digit.#INDrandom-digits

NaN digit. #NANrandom-digits

Affichage de programmes S7-SCL en représentation LIST

Vous pouvez ouvrir un bloc S7-SCL avec l'éditeur CONT/LOG/LIST et afficher ainsi les instructions MC7 générées. Mais n'effectuez pas de modifications en LIST, car :

• les instructions MC7 affichées ne représentent pas nécessairement un bloc LIST correct dans chacun des cas,

• une compilation sans erreur avec le compilateur LIST suppose normalement des modifications qui demandent des connaissances approfondies tant de LIST que de S7-SCL,

• le bloc compilé avec LIST ne porterait plus la marque du langage S7-SCL, mais celle du langage LIST,

• la source S7-SCL et le code MC7 ne seraient plus cohérents.

Page 381: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Conseils et astuces

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 16-3

Traitement des horodatages de la source, de l'interface et du code

Horodatage de la source

Une source S7-SCL a toujours l'horodatage de la dernière modification.

Horodatage du bloc de code

Les blocs (FB, FC et OB) reçoivent toujours l'horodatage du moment de la compilation.

Horodatage de l'interface du bloc

L'horodatage d'une interface est modifié seulement quand la structure de l'interface est modifiée. En d'autres termes :

• L'horodatage d'une interface ne change pas quand des modifications sont apportées à la section des instructions, aux attributs, au commentaire, à la section VAR_TEMP (pour les FC aussi VAR) ou à l'orthographe des noms de paramètres ou de variables. Ceci est vrai aussi pour les interfaces de rang inférieur dans la hiérarchie.

• L'horodatage d'une interface est mis à jour quand le type de données ou une éventuelle initialisation d'un paramètre ou d'une variable se trouvent modifiés ou encore quand des paramètres ou des variables sont supprimés et quand le nom du FB change en cas de multi-instance. Ceci est vrai aussi pour les interfaces de rang inférieur dans la hiérarchie.

Division de deux valeurs entières avec résultat en format REAL

Vous programmez en S7-SCL l'instruction suivante :

Fraction:=Dividend/Divisor;

Fraction étant une valeur réelle, tandis que Dividend et Divisor sont des valeurs entières.

Sachez que le compilateur effectue une conversion automatique du type de données pour de telles opérations et qu'il traduit donc ainsi l'instruction ci-dessus :

Fraction:=INT_TO_REAL(Dividend/Divisor);

Il s'ensuit que la division fournit toujours une valeur arrondie comme résultat, par ex. 1/3 = 0 ou 3/2 = 1.

Page 382: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Conseils et astuces

S7-SCL V5.3 pour S7-300/400 16-4 A5E00324651-01

Valeur de retour des fonctions standard et des fonctions système de STEP 7

De nombreuses fonctions standard et fonctions système de STEP 7 possèdent une valeur de la fonction qui est du type INT et qui contient le code d'erreur. Le manuel de référence traitant de ces fonctions indique les codes d'erreur possibles en tant que constantes WORD sous la forme "W#16#8093".

Cependant, S7-SCL étant un langage vérifiant rigoureusement l'identité des types, il n'est pas possible de mélanger INT et WORD. C'est ainsi que l'interrogation suivante, par exemple, ne donnerait pas le résultat souhaité :

IF SFCxx(..) = 16#8093 THEN ...

Il y a moyen de faire savoir au compilateur S7-SCL qu'il doit considérer une constante WORD comme type INT :

• En typant les constantes ; dans ce cas, l'interrogation ci-dessus s'énonce ainsi : IF SFCxx(..) = INT#16#8093 THEN ...

• En recourant à la fonction de conversion WORD_TO_INT() ; il faut alors formuler ainsi l'interrogation ci-dessus : IF SFCxx(..) = WORD_TO_INT(16#8093) THEN ...

Réassignation de blocs

Vous ne pouvez pas utiliser la commande Outils > Réassignation de SIMATIC Manager pour réassigner les appels de bloc figurant dans les blocs S7-SCL. Vous devez éditer manuellement les appels des blocs concernés dans la source S7-SCL.

Conseils :

• Définissez des noms symboliques pour les blocs dans la table des mnémoniques et appelez les blocs sous forme symbolique.

• Définissez des mnémoniques pour les adresses absolues (E, M, A, etc.) dans la table des mnémoniques et utilisez-les dans votre programme.

Si vous souhaitez ensuite réassigner un bloc, il vous suffira de modifier l'affectation dans la table des mnémoniques et vous n'aurez aucune modification à faire dans la source S7-SCL.

Page 383: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Conseils et astuces

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 16-5

Affectation de structures avec une longueur d'octets impaire

La longueur d'une structure est toujours complétée pour atteindre une limite correspondant à un mot. Pour affecter une structure avec un nombre d'octets impair, S7-SCL met à votre disposition la construction AT :

Exemple : VAR theStruct : STRUCT twoBytes : ARRAY [0..1] OF BYTE; oneInt : INT oneByte : BYTE; END_STRUCT; fiveBytes AT theStruct : ARRAY[0..4] OF BYTE; END_VAR

Là où 5 octets sont requis, vous utilisez l'identificateur fiveBytes. Grâce à l'identificateur theStruct, il est alors possible de réaliser un accès structuré.

Valeurs limite pour instructions FOR

Afin de programmer des instructions FOR "sûres" ne réalisant pas de boucle sans fin, veuillez tenir compte de la règle ainsi que des valeurs limite suivantes :

Règles

FOR ii := début TO fin BY pas DO

Si... ...alors Nota

début < fin fin < (PMAX - pas) La variable d'exécution ii s'exécute dans le sens positif.

début > fin AND pas < 0 fin > (NMAX - pas) La variable d'exécution ii s'exécute dans le sens négatif.

Valeurs limite

Les deux types de données possibles possèdent différentes valeurs limite :

Type de données PMAX NMAX

ii de type INT 32_767 -32_768

ii de type DINT 2_147_483_647 -2_147_483_648

Page 384: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Conseils et astuces

S7-SCL V5.3 pour S7-300/400 16-6 A5E00324651-01

Page 385: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Glossaire-1

Glossaire

Abréviations

Les abréviations représentent les opérandes et les opérations de programmation de manière abrégée (E, par exemple, désigne l'entrée). STEP 7 reconnaît les abréviations CEI (exprimées en anglais) et les abréviations SIMATIC (exprimées d'après les opérations et conventions d'adressage SIMATIC allemandes).

Accès (à une variable)

Pour adresser avec un type de données supplémentaire une variable déclarée, vous pouvez définir un accès à la variable ou à des zones au sein de la variable. Cet accès peut être utilisé dans le bloc comme toute autre variable. Il hérite de tous les attributs de la variable qu'il désigne ; seul le type de données est différent.

Activer les points d'arrêt

Cette fonction permet de mettre l'unité centrale (CPU) en attente à des endroits définis du programme. Lorsqu'un point d'arrêt est atteint, vous pouvez exécuter les fonctions de test, comme par exemple le traitement incrémental d'instructions ou la visualisation de l'état des variables.

Adressage

Affectation d'une adresse dans le programme utilisateur. On peut affecter des adresses à des opérandes ou à des zones d'opérandes données (exemples : entrée E 12.1, mot de mémento MW25)

Adressage absolu

L'adressage absolu consiste à indiquer l'adresse de l'opérande à traiter. Exemple : l'adresse A 4.0 désigne le bit 0 dans l'octet 4 de la mémoire image des sorties.

Adressage symbolique

L'adressage symbolique consiste à indiquer de manière symbolique l'opérande à traiter, son mnémonique. Les mnémoniques sont associés aux adresses au moyen de la table des mnémoniques ou d'un fichier symbolique.

Affectation

Mécanisme servant à donner une valeur à une variable.

Page 386: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 Glossaire-2 A5E00324651-01

Aide en ligne

STEP 7 vous offre la possibilité d'afficher à l'écran des textes d'aide contextuels pendant votre travail avec le logiciel de programmation.

Appel de bloc

Démarrage d'un bloc dans le programme utilisateur STEP 7 : les blocs d'organisation sont toujours appelés par le système d'exploitation, tous les autres blocs le sont par le programme utilisateur STEP 7.

Attente

L'état d'attente peut être obtenu à partir de l'état de marche sur sollicitation depuis la console de programmation. Cet état de fonctionnement permet de réaliser des fonctions de test particulières.

Attribut

Un attribut est une propriété qui caractérise par exemple une désignation de bloc ou un nom de variable. Dans S7-SCL, il existe des attributs pour les indications suivantes : titre du bloc, version, protection du bloc, auteur, nom du bloc, famille de bloc.

Bloc

Les blocs constituent des parties délimitées d'un programme utilisateur par leur fonction, leur structure et leur objet. Dans STEP 7, il existe des blocs de code (FB, FC, OB, SFC, SFB), des blocs de données (DB, SDB) et des types de données utilisateur (UDT).

Bloc de code

Dans SIMATIC S7, un bloc de code est un bloc contenant une partie du programme utilisateur STEP 7, contrairement aux blocs de données qui ne contiennent que des données. Parmi les blocs de code, on distingue les blocs d'organisation (OB), les blocs fonctionnels (FB), les fonctions (FC), les blocs fonctionnels système (SFB) et les fonctions système (SFC).

Bloc de données (DB)

Les blocs de données contiennent des données et des paramètres avec lesquels le programme utilisateur travaille. Contrairement à tous les autres blocs, ils ne contiennent pas d'instructions.

Bloc de données d'instance (DB d'instance)

Un bloc de données d'instance mémorise les paramètres formels et les données locales statiques de blocs fonctionnels. Un DB d'instance est associé à un appel de bloc fonctionnel ou à une hiérarchie d'appel de blocs fonctionnels.

Page 387: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Glossaire-3

Bloc de données système (SDB)

Les blocs de données système (SDB) sont des zones de données dans la CPU S7 qui contiennent des paramètres système et des paramètres de module. Vous pouvez les générer et les modifier avec le logiciel de base STEP 7.

Bloc d'organisation (OB)

Les blocs d'organisation constituent l'interface entre le système d'exploitation de la CPU et le programme utilisateur. L'ordre de traitement du programme utilisateur est défini dans les blocs d'organisation.

Bloc fonctionnel (FB)

Selon la norme CEI 1131-3, un bloc fonctionnel (FB) est un bloc de code avec données statiques. Puisqu'un FB possède une mémoire (bloc de données d'instance), ses paramètres (par exemple sorties) sont accessibles à tout instant à tout bloc du programme utilisateur.

Bloc fonctionnel système (SFB)

Un bloc fonctionnel système (SFB) est un bloc fonctionnel intégré au système d'exploitation de la CPU qu'il est possible d'appeler dans le programme utilisateur STEP 7.

Bloc non terminal

Un bloc non terminal est un élément composé dans une description syntaxique, décrit par une règle lexicale ou syntaxique supplémentaire.

Bloc terminal

Un bloc terminal est un élément de base d'une règle lexicale ou syntaxique dont la description ne nécessite pas de règle supplémentaire, mais une simple explication. Il peut s'agir par exemple d'un mot-clé ou d'un caractère unique.

Charger dans le système cible

Des objets chargeables (par exemple des blocs de code) sont chargés depuis la console de programmation dans la mémoire de chargement d'une CPU.

Classe de bloc

En fonction de leur contenu, les blocs sont subdivisés en deux classes, les blocs de code et les blocs de données.

Commentaire

Structure permettant d'intégrer dans un programme un texte explicatif qui n'aura pas d'influence sur l'exécution du programme.

Page 388: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 Glossaire-4 A5E00324651-01

Commentaire de bloc

Les commentaires de bloc sont des informations supplémentaires sur un bloc (par exemple des explications sur le processus d'automatisation) qui ne sont pas chargées dans la mémoire de travail des automates programmables SIMATIC S7.

Compilateur de S7-SCL

Le compilateur de S7-SCL est un compilateur séquentiel qui permet de traduire le programme préalablement édité (source SCL) en code machine MC7. Les blocs ainsi créés sont rangés dans le programme S7 qui se trouve dans le dossier Blocs.

Compilation

Traduction d'une source en programme utilisateur exécutable.

Compilation source

Dans le mode de saisie source, la compilation en programme utilisateur exécutable n'est effectuée qu'une fois toutes les instructions saisies. Cette compilation est accompagnée d'une vérification détectant les erreurs de saisie éventuelles.

Compteur

Les compteurs sont partie constituante de la mémoire système de la CPU. Leur contenu est actualisé par le système d'exploitation de façon asynchrone au programme utilisateur. Des instructions en STEP 7 permettent de définir la fonction exacte de la cellule de comptage (par ex. incrémentation) et d'en lancer l'exécution.

Constante

Les constantes réservent la place pour des valeurs constantes dans les blocs de code. Elles servent à améliorer la lisibilité d'un programme. Exemple : au lieu d'indiquer une valeur directement (ex. : 10 ), on indique "Nbmax_repetitions_boucle". A l'appel de la constante, elle est remplacée par sa valeur (10).

Constante littérale

Notation formelle déterminant la valeur et le type d'une constante.

Constante symbolique

Les constantes aux noms symboliques réservent la place pour des valeurs constantes dans les blocs de code. Elles permettent d'améliorer la lisibilité d'un programme.

Conversion de types de données

Une conversion de type de données est nécessaire lorsqu'il faut combiner entre eux deux opérandes de types différents.

Page 389: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Glossaire-5

DCB

Nombre décimal codé binaire. Dans STEP 7, les temporisations et les compteurs sont indiqués exclusivement dans le format DCB à l'intérieur de la CPU.

Débogueur de S7-SCL

Le débogueur de S7-SCL est un débogueur de langage évolué permettant de trouver les erreurs de programmation logiques dans le programme utilisateur créé avec S7-SCL.

Déclaration

Mécanisme servant à définir un élément de langage. Une déclaration établit le lien entre un identificateur et l'élément de langage et lui affecte des attributs et des types de données.

Déclaration de variable

La déclaration d'une variable consiste à indiquer son mnémonique, son type de données et éventuellement une valeur par défaut, une adresse et un commentaire.

Données globales

Les données globales sont des données accessibles à chaque bloc de code (FB, FC, OB), à savoir des mémentos (M), des entrées (E), des sorties (A), des temporisations, des compteurs et des éléments de blocs de données. Il est possible d'y accéder par adressage absolu ou symbolique.

Données locales

Les données locales sont les données associées à un bloc de code qui sont déclarées dans la section de déclaration ou dans la déclaration des variables de ce bloc. Elles comprennent - selon le bloc - les paramètres formels, les données statiques, les données temporaires.

Données statiques

Les données statiques sont des données locales d'un bloc fonctionnel qui sont mémorisées dans le bloc de données d'instance et donc conservées jusqu'au traitement suivant du bloc fonctionnel.

Données temporaires

Les données temporaires sont des données locales d'un bloc qui sont sauvegardées dans la pile des données locales (pile L) durant l'exécution de ce bloc et ne sont plus disponibles une fois l'exécution terminée.

Données utiles

Les données utiles sont échangées par l'intermédiaire de la mémoire image ou par adressage direct entre une unité centrale et un module de signaux, un module fonctionnel et des modules de communication. Il peut s'agir des signaux d'entrée/sortie TOR et analogiques de modules de signaux, d'informations de forçage et d'état de modules de fonctions.

Page 390: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 Glossaire-6 A5E00324651-01

Drapeau OK

Le drapeau OK signale l'exécution correcte ou incorrecte d'une séquence d'instructions d'un bloc. Il a généralement le type de données BOOL.

Editeur de S7-SCL

L'éditeur de S7-SCL s'adapte tout particulièrement aux exigences de S7-SCL pour créer la source S7-SCL.

EN (Enable)

Dans STEP 7, tout bloc fonctionnel et toute fonction dispose du paramètre d'entrée "Enable" (EN) défini automatiquement et qui peut être mis à 1 à l'appel du bloc. Si EN est vrai, le bloc appelé est exécuté, autrement il ne l'est pas.

En ligne

Il s'agit de l'état de fonctionnement dans lequel une liaison (physique, logique) est établie entre la console de programmation et l'automate programmable.

ENO (Enable out)

Dans STEP 7, tout bloc possède une sortie "Enable Output" (ENO). A la fin de l'exécution d'un bloc, la valeur actuelle du drapeau OK est inscrite dans ENO. Immédiatement après l'appel d'un bloc, vous pouvez vérifier, à l'aide de la valeur du paramètre ENO, si toutes les opérations dans le bloc se sont déroulées correctement ou si des erreurs sont survenues.

Entier (INT)

L'entier (INT) est l'un des types de données simples. On le représente comme nombre entier à 16 bits.

Expression

Une expression permet de traiter des données dans S7-SCL. Il existe des expressions arithmétiques, logiques et de comparaison.

Fonction (FC)

Selon la norme CEI 1131-3, une fonction (FC) est un bloc de code sans données statiques. Elle permet la transmission de paramètres dans le programme utilisateur. Aussi les fonctions se prêtent-elles à la programmation de fonctions complexes se répétant souvent, comme les calculs.

Fonction système (SFC)

Une fonction système (SFC) est une fonction intégrée au système d'exploitation de la CPU qu'il est possible d'appeler dans le programme utilisateur STEP 7.

Page 391: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Glossaire-7

Hiérarchie d'appel

Pour pouvoir être exécutés, tous les blocs doivent préalablement être appelés. On appelle hiérarchie d'appel, l'ordre et l'imbrication de ces appels.

Hors ligne

Il s'agit de l'état de fonctionnement dans lequel aucune liaison (physique, logique) n'est établie entre la console de programmation et l'automate programmable.

Identificateur

Combinaison de lettres, de chiffres et de caractères de soulignement qui identifie un élément de langage.

Identificateur d'opérande

L'identificateur d'opérande est la partie de l'opérande d'une opération qui contient des informations. La zone de mémoire dans laquelle l'opération trouve une valeur qu'elle va combiner ou la grandeur d'une valeur qu'elle va combiner en sont des exemples. Dans l'instruction "Valeur := EB10", "EB" est l'identificateur d'opérande ("E" signifie la zone d'entrée de la mémoire, "B" signifie un octet dans cette zone).

Instance

On désigne par instance l'appel d'un bloc fonctionnel. Un bloc de données d'instance ou une instance locale lui sont associés. Si, par exemple, un bloc fonctionnel est appelé n fois avec des paramètres et ds noms de blocs de données différents dans le programme utilisateur STEP 7, il existe n instances de ce bloc.

Instruction

Une instruction est la plus petite unité autonome d'un programme utilisateur écrit dans un langage textuel. Il s'agit d'une tâche que doit exécuter le processeur.

Instruction CASE

L'instruction CASE permet de réaliser un branchement. Elle sert à sélectionner 1 parmi n parties de programme en fonction de la valeur d'une expression de sélection.

Instruction CONTINUE

Dans S7-SCL, l'instruction CONTINUE permet d'abandonner le parcours momentané de la boucle d'une instruction d'itération (FOR, WHILE ou REPEAT).

Instruction EXIT

Structure dans un programme qui sert à mettre fin à une boucle à un endroit quelconque et indépendamment de conditions.

Page 392: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 Glossaire-8 A5E00324651-01

Instruction FOR

Structure dans un programme. L'instruction FOR exécute une séquence d'instructions dans une boucle et des valeurs successives sont alors affectées à une variable (variable de contrôle).

Instruction GOTO

Structure dans un programme. Une instruction GOTO réalise le saut immédiat à un repère donné et par conséquent à une autre instruction dans le même bloc.

Instruction REPEAT

Structure dans un programme qui sert à répéter une séquence d'instructions jusqu'à la réalisation d'une condition d'abandon.

Instruction RETURN

Structure dans un programme ordonnant à l'ordinateur de quitter le bloc actif.

Interface d'appel

L'interface d'appel est définie par les paramètres d'entrée, de sortie et d'entrée/sortie (paramètres formels) d'un bloc dans le programme utilisateur STEP7. Ces paramètres sont remplacés par les paramètres effectifs lors de l'appel du bloc.

Mémento (M)

Un mémento est une zone de mémoire dans la mémoire système d'une CPU SIMATIC S7 qui peut être adressée en écriture et en lecture (par bit, octet, mot et double mot). L'utilisateur peut employer la zone de mémento pour y enregistrer des résultats intermédiaires.

Mémoire image

Les états de signaux des modules d'entrées et de sorties TOR sont sauvegardés dans une mémoire image dans la CPU. On distingue la mémoire image des entrées (MIE) et la mémoire image des sorties (MIS).

Mémoire image des entrées (MIE)

Avant le traitement du programme utilisateur, le système d'exploitation lit la mémoire image des entrées dans les modules d'entrée.

Mémoire image des sorties (MIS)

A la fin du traitement du programme utilisateur, le système d'exploitation transmet la mémoire image des sorties aux modules de sortie.

Page 393: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Glossaire-9

Mémoire système (zone de mémoire)

La mémoire système est une mémoire vive intégrée à la CPU S7, dans laquelle sont enregistrées les zones d'opérandes (par exemple temporisations, compteurs, mémentos) ainsi que les zones de données requises de manière interne par le système d'exploitation (par exemple mémoire pour la communication).

Mnémonique

Un mnémonique est un nom que l'utilisateur définit en respectant les règles de syntaxe imposées. Une fois son affectation déterminée (par ex. variable, type de données, repère de saut, bloc), ce nom peut être utilisé en programmation et en contrôle-commande. Exemple : opérande : E 5.0, type de données : Bool, mnémonique : Bouton_arret_urg.

Mot-clé

Unité lexicale caractérisant un élément de langage, par exemple "IF".

Dans S7-SCL, les mots-clés servent à identifier le début d'un bloc, les sections de déclaration, les instructions. Ils sont utilisés en outre pour les commentaires et les attributs.

Mot d'état

Le mot d'état fait partie des registres de la CPU. Il contient des informations d'état et des informations d'erreur susceptibles de survenir dans le traitement d'instructions STEP 7. Les bits d'état peuvent être lus et écrits par l'utilisateur, les bits d'erreur peuvent uniquement être lus.

Multi-instance

Lorsque vous utilisez des multi-instances, le bloc de données d'instance contient les données pour plusieurs blocs fonctionnels d'une hiérarchie d'appel.

Nombre réel

Un nombre réel est un nombre positif ou négatif représentant une valeur décimale comme par exemple 0.339 ou –11.1.

Opérande

Un opérande est la partie d'une instruction indiquant l'objet que le processeur doit traiter. On peut y accéder par une adresse absolue ou symbolique.

Opération

Une opération est la partie d'une instruction indiquant ce que le processeur doit faire.

Paramètre effectif

Les paramètres effectifs remplacent les paramètres formels lors de l'appel d'un bloc fonctionnel (FB) ou d'une fonction (FC).

Exemple : le paramètre formel "Démarrer" est remplacé par le paramètre effectif "E.3.6".

Page 394: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 Glossaire-10 A5E00324651-01

Paramètre formel

Un paramètre formel "réserve la place" pour le paramètre effectif dans les blocs de code paramétrables. Pour les FB et les FC, c'est l'utilisateur qui déclare les paramètres formels ; ils existent déjà pour les SFB et les SFC. A l'appel du bloc, un paramètre effectif est affecté au paramètre formel afin que le bloc appelé utilise les valeurs en cours. Les paramètres formels font partie des données locales du bloc et se répartissent en paramètres d'entrée, de sortie et d'entrée/sortie.

Paramètres d'entrée

Seuls les fonctions et les blocs fonctionnels possèdent des paramètres d'entrée. Ils permettent de transmettre des données à traiter au bloc appelé.

Paramètres d'entrée/sortie

Les fonctions et les blocs fonctionnels possèdent des paramètres d'entrée/sortie. Ils permettent de transmettre des données au bloc appelé ; elles y sont alors traitées et les résultats sont ensuite stockés dans la même variable.

Paramètres de sortie

Les paramètres de sortie d'un bloc permettent de transmettre des résultats au bloc appelant dans le programme utilisateur.

Pas à pas

C'est un mode de test utilisé à des fins de mise au point par le débogueur de S7-SCL. Il permet d'exécuter le programme instruction par instruction tout en le visualisant dans la fenêtre de résultat.

Programmation structurée

La résolution de tâches d'automatisation complexes appelle la subdivision du programme utilisateur en parties délimitées de programmes (blocs). La structure du programme utilisateur peut être fonctionnelle ou conforme à la structure technologique de l'installation.

Programmation symbolique

Le langage de programmation S7-SCL permet de remplacer les opérandes par des chaînes de caractères symboliques, les mnémoniques : l'opérande A1.1 peut par exemple être remplacé par "Vanne_17". Le lien entre l'opérande et la chaîne de caractères qui lui est associée est établi par la table des mnémoniques.

Programme utilisateur

Le programme utilisateur contient toutes les instructions et déclarations ainsi que toutes les données nécessaires au traitement des signaux qui permettent de commander une installation ou un processus. Il est associé à un module programmable (par exemple CPU, FM) et peut être structuré en unités plus petites, les blocs.

Page 395: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Glossaire-11

Programme utilisateur S7

Dossier pour les blocs qui vont être chargés dans un module programmable S7 (par exemple CPU, FM) pour y être exécutés afin de commander une installation ou un processus.

Projet

Un projet est un dossier contenant tous les objets d'une solution d'automatisation, indépendamment du nombre de stations, de modules et de leur mise en réseau.

Protection de bloc

On entend par protection de bloc la possibilité de protéger des blocs individuels contre la décompilation en effectuant la compilation de la source avec le mot-clé "KNOW_HOW_PROTECTED".

Règle lexicale

Les règles lexicales constituent le niveau inférieur de la description formelle du langage S7-SCL. Elles m'autorisent pas l'utilisation d'un format libre, c'est-à-dire que vous ne pouvez ajouter aux blocs ni espaces ni caractères de commande.

Règle syntaxique

Les règles syntaxiques constituent le niveau supérieur de la description formelle du langage S7-SCL. Elles autorisent l'utilisation d'un format libre, c'est-à-dire que vous pouvez par exemple ajouter aux blocs des espaces et des caractères de commande.

RUN

A l'état de fonctionnement RUN (marche), le programme utilisateur est traité, la mémoire image est actualisée cycliquement et toutes les entrées TOR sont validées.

RUN-P

L'état de fonctionnement RUN-P se distingue de l'état de fonctionnement RUN en ce qu'il autorise l'application sans restrictions de nombreuses fonctions de la console de programmation.

S7-SCL

Langage évolué proche du PASCAL, conforme à la norme DIN EN 61131-3 (CEI 1131-3), adapté à la programmation de tâches complexes d'automatisation, comme par exemple des algorithmes ou du traitement de données. S7-SCL est l'abréviation de "Structured Control Language".

Page 396: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 Glossaire-12 A5E00324651-01

Section de déclaration

C'est dans la section de déclaration que vous déclarez les données locales d'un bloc de code quand vous écrivez le programme avec un éditeur de texte.

La déclaration des variables d'un bloc se décompose en plusieurs sections servant à déclarer les différents paramètres du bloc. La section de déclaration IN, par exemple, contient la déclaration des paramètres d'entrée, la section OUT celle des paramètres de sortie.

Sémantique

Relation entre les éléments symboliques d'un langage de programmation et leur signification, leur interprétation et leur utilisation.

Signet

Les signets sont des marques de texte temporaires qui repèrent un emplacement quelconque au sein d’une source. Elles facilitent la navigation dans la source.

Source

Partie de programme élaborée avec un éditeur graphique ou textuel et donnant par compilation un programme utilisateur exécutable.

Source S7-SCL

La source S7-SCL est le fichier S7-SCL dans lequel vous créez le programme qui va ensuite être compilé avec le compilateur de S7-SCL.

Structure (STRUCT)

Type de données complexe composé d'éléments de données quelconques de types de données différents. Les types de données composant une structure peuvent être eux-mêmes simples ou complexes.

Tableau

Un tableau (ARRAY) est un type de données complexe formé d'éléments de données de même type, pouvant eux-mêmes être des types de données simples ou complexes.

Table des mnémoniques

Cette table contient l'affectation de mnémoniques (ou noms symboliques) à des adresses (opérandes) de données globales et de blocs. Exemples : Arret_urg (mnémonique), E 1.7 (opérande) ou Régulateur (mnémonique), SFB24 (bloc).

Table des variables

La table des variables regroupe les variables que vous voulez visualiser et forcer, avec les indications correspondantes sur le format.

Page 397: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Glossaire-13

Temporisation

Les temporisations sont partie constituante de la mémoire système de la CPU. Leur contenu est actualisé par le système d'exploitation de façon asynchrone au programme utilisateur. Des instructions en STEP 7 permettent de définir la fonction exacte de la cellule de temporisation (par ex. retard à la montée) et d'en lancer l'exécution.

Temps de cycle

Le temps de cycle est le temps que met la CPU à traiter une fois le programme utilisateur.

Temps de surveillance du cycle

Si le temps d'exécution du programme utilisateur excède le temps de surveillance du cycle choisi, le système d'exploitation émet un message d'erreur et la CPU passe à l'état d'arrêt.

Type de bloc

L'architecture des blocs de STEP 7 distingue les types de blocs suivants : bloc d'organisation, bloc fonctionnel, fonction, bloc de données de même que bloc fonctionnel système, fonction système, bloc de données système et type de données utilisateur.

Type de données complexe

Les types de données complexes sont composés d'éléments dont le type de données est simple. On distingue les structures et les tableaux. STRING et DATE_AND_TIME sont également des types de données complexes.

Type de données simple

Les types de données simples sont des types de données prédéfinis selon CEI 1131-3. Exemples : le type de données "BOOL" définit une variable binaire ("bit") et le type de données "INT" une variable entière de 16 bits.

Type de données utilisateur

Les types de données utilisateur (UDT) sont créés par l'utilisateur avec la déclaration de type de données. Ils ont leur propre nom et sont donc réutilisables. Un type de données utilisateur peut, par exemple, servir à la création de plusieurs blocs de données de même organisation (par exemple, régulateur).

Type de paramètre

Un type de paramètre est un type de données spécial réservé aux temporisations, aux compteurs et aux blocs. Vous pouvez l'utiliser pour les paramètres d'entrée de blocs fonctionnels et de fonctions ainsi que pour les paramètres d'entrée/sortie des blocs fonctionnels seulement, afin de transmettre des temporisations, des compteurs et des blocs au bloc appelé.

Page 398: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Glossaire

S7-SCL V5.3 pour S7-300/400 Glossaire-14 A5E00324651-01

Types de données

Les types de données déterminent

• la nature et la signification des éléments de données,

• les zones de mémoire et les plages de valeurs autorisées pour les éléments de données,

• le nombre d'opérations que vous pouvez réaliser avec un opérande de ce type de données et

• la manière dont les éléments de données sont écrits.

UDT

Voir : Type de données utilisateur

Valeur de retour (RET_VAL)

Contrairement aux blocs fonctionnels, les fonctions fournissent comme résultat une valeur de retour.

Valeur initiale

Valeur attribuée à une variable à la mise en route du système.

Variable

Une variable définit une donnée de contenu variable pouvant être utilisée dans le programme utilisateur STEP 7. Elle comprend un opérande (par ex. M3.1) et un type de données (par ex. BOOL) et peut être identifiée par un mnémonique (par ex. B. BANDE_MARCHE). Vous la déclarez dans la section de déclaration.

Visualisation

Visualiser un programme vous permet d'en contrôler le déroulement dans la CPU. Pour cela, des noms de variables et de paramètres par exemple sont affichés par ordre chronologique avec leurs valeurs en cours qui sont mises à jour cycliquement.

Zone de mémoire

Une unité centrale dans SIMATIC S7 possède trois zones de mémoire, à savoir la mémoire de chargement, la mémoire de travail et la zone système.

Page 399: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Index-1

Index

*

* 11-7, 11-8 ** 11-7

/

/ 11-7

+

+ 11-7, 11-8

<

< 11-12, 11-13 <= 11-13 <> 11-11, 11-13

=

= 11-11

>

> 11-13 >= 11-11

A

ABS 14-9 Accès à des zones de variable 8-5 ACOS 14-10 Addition 11-1 Adressage absolu

règles lexicales 15-29 Adressage absolu des blocs de données 10-8 Adressage absolu des zones de mémoire

de la CPU 10-3 Adressage indexé des blocs de données

10-10 Adressage indexé des zones de mémoire

de la CPU 10-6 Adressage structuré des

blocs de données 10-11 Adressage symbolique des zones de mémoire

de la CPU 10-5 Adresses 10-2 Affectation de structures avec une longueur

d'octets impaire 16-5

Affectation de valeur à des variables de type STRUCT

et UDT 12-3 à une variable absolue pour zones

de mémoire 12-9 à une variable de type

DATE_AND_TIME 12-8 à une variable de type de

données simple 12-2 à une variable de type STRING 12-7 à une variable globale 12-10 règles syntaxiques 15-47

Affectation d'une valeur 6-12 Affichage des informations sur la

communication de la CPU 4-41 Affichage des piles de la CPU 4-41 Afficher et modifier l'état de fonctionnement

de la CPU 4-38 Afficher et régler la date et l'heure

de la CPU 4-38 Afficher le temps de cycle de la CPU 4-40 Afficher les blocs dans la CPU 4-40 Afficher l'horodatage de la CPU 4-40 Afficher/comprimer la mémoire utilisateur

de la CPU 4-39 Aiguillage 12-12 Aller à 4-13 AND 11-9, 11-10 Annuler la dernière action d'édition 4-10 ANY 7-19, 7-20 Appel de bloc 4-17 Appel d'un bloc fonctionnel (FB ou SFB)

comme instance globale 12-29 comme instance locale 12-29 définition des entrées 12-33 Définition des entrées/sorties 12-34 Définition des paramètres du FB 12-31 lecture des valeurs de sortie 12-35 marche à suivre 12-29 syntaxe 12-29

Appel d'une fonction (FC) définition des entrées 12-41 définition des paramètres 12-40 définition des sorties et des entrées/sorties

12-42 marche à suivre 12-38 paramètre de sortie ENO 12-46 paramètre d'entrée EN 12-45 syntaxe 12-38 valeur de retour 12-39

Page 400: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Index

S7-SCL V5.3 pour S7-300/400 Index-2 A5E00324651-01

Appel d'une fonction de comptage 13-1 Appel d'une fonction de temporisation 13-9 ARRAY 7-10, 7-11, 8-3, 8-4, 12-6

affectation de valeur 12-5 ASIN 14-10 AT (mot-clé) 8-5 ATAN 14-10 Attributs 6-5, 6-6 Attributs de bloc

attributs système pour bloc 6-8 définition 6-5 règles lexicales 15-32

Attributs système pour bloc 6-8 Attributs système pour paramètre 6-10 AUTHORS.EXE 2-6 Automation License Manager 2-1, 2-4 Autorisation 2-1, 2-6 Autorisation de dépannage 2-6 Avertissements 4-23

B

Barre de titre 4-2 Barre des menus 4-2 Barre d'état 4-2 Barre d'outils 4-2 BIT 7-3 Bloc

appel 4-17 modèles 4-17

Bloc de commentaire 5-15 Bloc de données 6-19, 6-20 Bloc d'organisation 6-17 Bloc fonctionnel (FB) 6-13, 12-27 - 12-31 Bloc non terminal (dans les diagrammes

syntaxiques) 15-16 BLOCK_DB_TO_WORD 14-4 Blocs 4-6, 6-1 Blocs dans la CPU 4-40 Blocs dans les diagrammes syntaxiques 5-1 Blocs de code 3-4, 4-8, 6-1 Blocs de données 10-7 - 10-11 Blocs terminaux des règles lexicales

(diagrammes syntaxiques) 15-5 Boucle 12-12 Branchement 12-12 BYTE 7-3 BYTE_TO_BOOL 14-3 BYTE_TO_CHAR 14-3

C

Caractères imprimables 9-9, 9-11 Caractères non imprimables 9-10, 9-11 Certificate of License 2-1 Chaîne de caractères 5-13 CHAR 7-3, 9-9 CHAR_TO_BYTE 14-3 CHAR_TO_INT 14-3 Charger 4-27 Charger dans la CPU 4-27 Choisir la taille de papier 4-24 Choix de la temporisation appropriée 13-21 Commentaire

modèles 4-17 règles lexicales 15-31

Commentaires bloc de commentaire 5-15 ligne de commentaire 5-16

Communication de la CPU 4-41 Compatibilité avec les normes 1-1 Compilateur 1-2 Compiler 4-19, 4-22, 6-23

éliminer les erreurs 4-23 fichier d'informations compilation 4-22 options de compilation 4-20

Composition de la section de déclaration 6-9 Composition d'un bloc 6-3 Composition d'un bloc de données (DB) 6-18 Composition d'un bloc d'organisation (OB)

6-17 Composition d'un bloc fonctionnel (FB) 6-13 Composition d'une fonction (FC) 6-15 Composition d'une source S7-SCL 6-9 - 6-18 Compteurs

appel d'une fonction de comptage 13-1 compteur décrémental (S_CD) 13-6 compteur incrémental (S_CU) 13-6 compteur incrémental et décrémental

(S_CUD) 13-7 définition des paramètres d'une fonction

de comptage 13-3 exemple de fonction de comptage 13-7 saisie et exploitation de la valeur de

comptage 13-5 CONCAT 14-13 Conception d'un programme SCL 3-1 Condition d'abandon 12-22, 12-24 Conditions 12-13 Constante binaire 9-6 Constante de date 9-13 Constante de date et d'heure 9-17 Constante de durée 9-13 Constante d'heure du jour 9-16 Constante entière 9-7 Constante réelle 9-8 Constante sur caractère 9-9 Constante sur chaîne 9-11, 9-12

Page 401: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Index

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Index-3

Constantes 9-2 Constantes et drapeaux prédéfinis

description formelle du langage 15-20 Constantes littérales 9-6 - 9-17

voir Constantes 15-23 Conversion du type de données

fonctions d'arrondi et de troncature 14-6 fonctions de classe B 14-3 fonctions standard 14-3

Copier des parties de texte 4-11 COS 14-10 Couleur et police du texte source 4-15, 4-25 COUNTER 7-16, 13-1 Couper des parties de texte 4-12 Créer une nouvelle source SCL 4-4

D

DATE 7-4 DATE_AND_TIME 7-5 DATE_TO_DINT 14-3 Débogueur 1-2 Début de bloc 6-3 Débutants

exemple 3-1 Déclaration 6-9 Déclaration de variables statiques 8-2 Déclaration d'une instance 8-7 Définir les propriétés de l'objet 4-6 Définition des entrées/sorties 12-42 Définition des entrées/sorties (FB/SFB) 12-34 Définition des paramètres 12-27 Définition des paramètres d'une fonction de

comptage 13-3 Définition des paramètres d'une fonction de

temporisation 13-11 Définition d'un environnement d'appel des

blocs 4-33 Définition d'un environnement d'appel des

points d'arrêt 4-35 DELETE 14-15 Démarrer SCL 4-1 Description du langage 5-1, 15-1 Désignation de bloc 5-7, 6-3, 6-4 Désignations

règles lexicales 15-21 Désinstallation

de la licence d'utilisation 2-5 DI_STRNG 14-19 Diagrammes syntaxiques 5-1, 15-1 Différence 11-1 DINT 7-3 DINT_TO_DATE 14-3 DINT_TO_DWORD 14-3 DINT_TO_INT 14-3, 14-4 DINT_TO_TIME 14-3 DINT_TO_TOD 14-4 Disquette d'autorisation 2-6 DIV 11-7

Division 11-1 Division entière 11-1 Domaine d'application 1-1 Données de CPU 4-39 Données de référence 4-36 Données globales 10-1

présentation 10-2 Données locales 5-17, 8-1, 8-3, 8-10, 8-11 Données utilisateur globales 10-1 Double mot 7-3 Drapeau OK 8-1, 8-8 DWORD 7-3 DWORD_TO_BOOL 14-4 DWORD_TO_BYTE 14-4 DWORD_TO_DINT 14-4 DWORD_TO_REAL 14-4 DWORD_TO_WORD 14-4

E

Editer une source SCL 4-10 - 4-18 Editeur 1-2 Effacement général de la mémoire

de la CPU 4-27 Effacer des parties de texte 4-12 Egalité 11-1 Eliminer les erreurs après la compilation 4-23 EN 12-45 ENO 12-46 Enregistrer une source S7-SCL 4-24 Entrées/sorties de périphérie 10-2 Environnement d'appel 4-33 Environnement de développement 1-2 Environnement requis 2-6 EQ_STRNG 14-17 Erreurs de compilation 4-23 ET 11-1 Etat de fonctionnement 4-38 Exécution de sous-programme 6-12 Exemple "Saisie de valeurs de mesure" 3-1 Exemples 7-20, 12-35, 12-37, 12-44, 13-7,

14-7, 14-10, 14-12 temporisations 13-20

EXP 14-9 EXPD 14-9 Expression booléenne 11-11 Expression simple 11-6 Expressions 11-1 - 11-10 Expressions arithmétiques 11-7 Expressions de comparaison 11-12, 11-13

F

FC 6-15, 6-16, 12-27, 12-38 Fermer une source S7-SCL 4-5 Fichier d'information de compilation 6-23 Fichier d'informations compilation 4-22 Fin de bloc 6-3 FIND 14-16

Page 402: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Index

S7-SCL V5.3 pour S7-300/400 Index-4 A5E00324651-01

Fonction (FC) 12-27, 12-38 Fonction modulo 11-1 Fonctionnement de S7-SCL 1-2 Fonctions (FC) 6-15 Fonctions d'arrondi et de troncature 14-6 Fonctions de conversion du type

de données 14-3 classe B 14-3 fonctions d'arrondi et de troncature 14-6

Fonctions de sélection de valeurs 14-26 Fonctions de temporisation 13-9 Fonctions de test de S7-SCL 4-29 - 4-31, 4-33 Fonctions de test de STEP 7 4-36 Fonctions logarithmiques 14-9 Fonctions offertes par S7-SCL 1-4 Fonctions standard 14-3, 14-6 Fonctions standard mathématiques 14-9,

14-10 Fonctions standard numériques 14-9, 14-10 Fonctions standard sur chaîne binaire 14-11 Fonctions système

blocs fonctionnels système et bibliothèque standard 14-31

Fonctions trigonométriques 14-10

G

GE_STRNG 14-17 Générer des sources S7-SCL avec un éditeur

standard 4-6 Générer et afficher les données de référence

4-36 GT_STRNG 14-18

H

Horodatage de la CPU 4-40

I

I_STRNG 14-19 Identificateur d'opérande 5-9 Identificateur standard 5-7 Identificateurs

définition 5-6 description formelle du langage 15-17,

15-18 exemple 5-6 règles 5-6

Imprimer une source SCL 4-25 Indentation des lignes 4-14 Initialisation 8-3 Insérer des appels de bloc 4-17 Insérer des modèles de bloc 4-17 Insérer des modèles de commentaire 4-17 Insérer des modèles de paramètre 4-18 Insérer des structures de contrôle 4-18 INSERT 14-15 Installation 2-6

Installation de Automation License Manager 2-4

Instance globale 12-29, 12-36 Instance locale 12-29, 12-30, 12-37 Instruction CASE 12-12, 12-16 Instruction CONTINUE 12-12, 12-23 Instruction de saut 12-12 Instruction de sélection 12-12 Instruction d'itération 12-12 Instruction EXIT 12-12, 12-24 Instruction FOR 12-12, 12-18, 16-5 Instruction GOTO 12-12, 12-25 Instruction IF 12-12, 12-14 Instruction REPEAT 12-12, 12-22 Instruction RETURN 12-12, 12-26 Instruction WHILE 12-12, 12-21 Instructions 12-1 Instructions de contrôle 6-12

insertion 4-18 instruction CASE 12-16 instruction CONTINUE 12-23 instruction EXIT 12-24 instruction FOR 12-18 instruction GOTO 12-25 instruction IF 12-14 instruction REPEAT 12-22 instruction WHILE 12-21 modèles 4-18 règles syntaxiques 15-52

INT 7-3 INT_TO_CHAR 14-4 INT_TO_WORD 14-4 Interface utilisateur de SCL 4-2

J

Jeu de caractères 5-4

L

Label (repère de saut) 9-18 Language de programmation

évolué 1-1, 1-4, 1-5 LE_STRNG 14-17 Lecture des valeurs de sortie

définition des sorties à l'appel de la FC 12-42

définition des sorties à l'appel du FB 12-35 LEFT 14-14 LEN 14-13 Liberté de format 5-2, 5-3 Licence 2-2, 2-3 Licence d'utilisation 2-6 Licence d'utilisation avec Automation License

Manager 2-1 License Key 2-1, 2-5 License Manager 2-1, 2-2 Lieu de stockage de variables 8-5 Ligne de commentaire 5-16

Page 403: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Index

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Index-5

Lire la mémoire de diagnostic de la CPU 4-39 Lire les données de CPU 4-39 LN 14-9 LOG 14-9 LT_STRNG 14-18

M

Marque de texte 4-16 Mémentos 10-2 Mémoire image des entrées/sorties 10-2 Mémoire tampon de diagnostic 4-39 Mémoire utilisateur 4-39 Mettre à la date 4-38 Mettre à l'heure 4-38 MID 14-14 Mise entre parenthèses 11-1 Mnémoniques

utilisation 4-9 Mnémoniques pour les constantes 9-2 MOD 11-7, 11-8 Modèles de bloc 4-17 Modèles de commentaire 4-17 Modèles de paramètre 4-18 Moins unaire 11-1 Mots réservés 5-5 Mots-clés 5-5, 15-10 Multi-instances 8-7 Multiplication 11-1

N

NE_STRNG 14-17 Négation 11-1 Nombres 5-11, 5-12 Noms

définition 5-6 description formelle du langage

15-17, 15-18 exemples 5-6 règles 5-6

Normê CEI EN-61131-3 1-1 NOT 11-9, 11-10 Notions fondamentales de SCL 5-4 - 5-13 Nouveautés 1-6 Numéros de ligne 4-3, 4-25

O

OB 6-17 OK (drapeau) 8-8 Opérandes 11-2, 11-3 Opérations

liste par ordre alphabétique 15-7 Options du compilateur 6-23, 15-33 OR 11-9, 11-10 Ordre des blocs 4-8 Organigramme de EXPLOITER 3-13 Organigramme de SAISIR 3-17 OU 11-1

OU exclusif 11-1 Ouvrir des blocs 4-6 Ouvrir une source SCL 4-5

P

Paramètre modèles 4-18

Paramètre de sortie 8-1 Paramètre de sortie ENO 12-46 Paramètre d'entrée

définition 8-1 Paramètre d'entrée/sortie 8-1 Paramètre effectif

définition 8-1 Paramètre formel 8-1 Paramètres 4-3, 4-20, 6-10, 7-16, 7-17,

8-1, 8-9, 12-42, 12-43 Paramètres de bloc 5-17, 8-12 Paramètres de FB 12-31 - 12-35 Paramètres de FC 12-40 - 12-42 Paramètres d'entrée

définition (FB) 12-33 définition des entrées (FC) 12-41 paramètre d'entrée EN 12-45

Paramètres d'entrée/sortie 12-34 Paramètres effectifs

définition des entrées 12-41 Pas à pas 4-31 Piles 4-41 Plus unaire 11-1 POINTER 7-17, 7-18 Pointeur zéro 7-19 Points d'arrêt 4-34, 4-36 Positionnement de signets dans le texte

source 4-16 Positionner le curseur dans une ligne donnée

4-13 Présentation du texte source conforme

à la syntaxe 4-15 Programmation

structurée 1-4 Programmation structurée 3-4, 3-6 Programmation symbolique 4-9 Programme utilisateur 3-4, 6-1 Protection de bloc 4-7 Puissance 11-1

R

R_STRNG 14-19 REAL 7-3 REAL_TO_DINT 14-4 REAL_TO_DWORD 14-4 REAL_TO_INT 14-4 Rechercher et remplacer des parties

de texte 4-10 Règles

utilisation des License Keys 2-5

Page 404: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Index

S7-SCL V5.3 pour S7-300/400 Index-6 A5E00324651-01

Règles d'utilisation des License Keys 2-5 Règles lexicales 15-21 Règles pour les sources SCL 4-8 Règles syntaxiques 15-34 Remplacer des parties de texte 4-10 Repères de saut 9-18 REPLACE 14-16 Rétablir une action d'édition 4-10 RIGHT 14-14 ROL 14-11 ROR 14-11 ROUND 14-6

S

S_CD 13-6 S_CU 13-6 S_CUD 13-7 S_ODT 13-17 S_ODTS 13-18 S_OFFDT 13-19 S_PEXT 13-16 S_PULSE 13-15 S5Time 13-13 S5TIME 7-4 S7-SCL 1-2, 1-4 S7-SCL

fonctionnement 1-2 fonctions 1-4

Saut dans le programme 12-12 Saut de page 4-25 SCL

interface utilisateur 4-2 Section de déclaration 8-3, 8-11

composition 6-9 définition 6-9 initialisation 8-3 paramètres de bloc 8-12, 8-13 règles syntaxiques 15-37 variables statiques 8-10 variables temporaires 8-11

Section des instructions composition 6-11 règles syntaxiques 15-45

Sections de déclaration présentation 8-9

Sélectionner des parties de texte 4-11 SFC/SFB 14-31 SHL 14-11 SHR 14-11 Signet 4-16 SIN 14-10 Source 4-4 - 4-25, 6-11, 6-21 Soustraction 11-1 SQR 14-9 SQRT 14-9 STEP 7

fonctions de test 4-36

STRING 7-7 - 7-9, 9-11, 14-13 - 14-20 STRING_TO_CHAR 14-4 STRNG_DI 14-19 STRNG_I 14-19 STRNG_R 14-19 STRUCT 7-12, 7-13 Structures 7-12 Style et couleur des caractères 4-15, 4-25

T

Tableau (ARRAY) Affectation de valeur

à une variable du type de données ARRAY 12-5

initialisation 8-3 Tableaux 7-10 Taille de papier 4-24 TAN 14-10 Temporisations 13-9

appel d'une fonction de temporisation 13-9 définition des paramètres d'une fonction

de temporisation 13-11 démarrer une temporisation sous forme

de retard à la montée (S_ODT) 13-17 démarrer une temporisation sous forme de

retard à la montée mémorisé (S_ODTS) 13-18

démarrer une temporisation sous forme de retard à la retombée (S_OFFDT) 13-19

démarrer une temporisation sous forme d'impulsion (S_PULSE) 13-15

démarrer une temporisation sous forme d'impulsion prolongée (S_PEXT) 13-16

exemples 13-20 saisie et exploitation de la valeur de temps

13-13 Temps de cycle 4-40 Test avec points d'arrêt 4-31 Test en pas à pas 4-31 TIME 7-4 TIME_OF_DAY 7-4 TIME_TO_DINT 14-4 TIMER 7-16 TOD_TO_DINT 14-4 TRUNC 14-6 Type de données ANY 7-19 Type de données ARRAY 7-10 Type de données COUNTER 7-16 Type de données DATE_AND_TIME 7-5 Type de données POINTER 7-17 Type de données STRING 7-7 Type de données STRUCT 7-12 Type de données TIMER 7-16 Types de données

description 7-1 Types de données binaires 7-3 Types de données BLOCK 7-17 Types de données complexes 7-2, 7-5, 7-7

Page 405: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Index

S7-SCL V5.3 pour S7-300/400 A5E00324651-01 Index-7

Types de données numériques 7-3 Types de données paramètre 7-16, 7-17 Types de données simples 7-1, 7-3, 7-4 Types de données sur caractère 7-3 Types de données utilisateur (UDT) 6-21,

7-14, 12-3 Types de licences

Enterprise License 2-1 Floating License 2-3 Rental License 2-3 Trial License 2-3 Upgrade License 2-3

U

UDT 7-14 appel 6-21 définition 6-22 éléments 6-21

V

Valeur de retour (FC) 12-39 Valeur de temps (durée) 13-13 Valeurs initiales 8-3 Valeurs limite pour instructions FOR 16-5 VAR 8-9 VAR_IN_OUT 8-9 VAR_INPUT 8-9 VAR_OUTPUT 8-9 VAR_TEMP 8-9 Variable étendue 11-3

Variables déclaration d'une instance 8-7 initialisation 8-3, 8-4 sections de déclaration 8-9 syntaxe générale d'une déclaration de

variable ou de paramètre 8-2 Variables locales et paramètres de bloc 8-1 Variables statiques 5-17, 8-1, 8-2, 8-7, 8-10 Variables temporaires 5-17, 8-1, 8-11 Vérification de la cohérence des blocs 4-37 Visualisation 4-33 Visualisation continue 4-30 Visualiser 4-30, 4-32

W

WORD 7-3 WORD_TO_BLOCK_DB 14-4 WORD_TO_BOOL 14-4 WORD_TO_BYTE 14-4 WORD_TO_INT 14-4

X

XOR 11-9

Z

Zone de travail 4-2 Zones de mémoire de la CPU 5-9, 10-1 - 10-6

Page 406: S7-SCL V5.3 pour S7-300/400 - Siemens AG · PDF file · 2015-01-21• Programmer avec STEP 7 V5.3 • Configuration matérielle et communication avec STEP 7 V5.3 • Pour une transition

Index

S7-SCL V5.3 pour S7-300/400 Index-8 A5E00324651-01