Professional Documents
Culture Documents
PRO1 06 Architecture Edition Blocs
PRO1 06 Architecture Edition Blocs
OB 1 FB FB FC
FB FB FB
FB FC FC
Sommaire Page
Objectifs du chapitre ....................................................................................................................... 2
Types de blocs de programme ....................................................................................................... 3
Possibilités pour structurer le programme ...................................................................................... 4
Mémoires image du processus ....................................................................................................... 5
Traitement cyclique du programme ................................................................................................ 6
Insertion d'un bloc S7 ...................................................................................................................... 7
Editeur CONT / LOG / LIST ............................................................................................................ 8
Modes de représentation du langage de programmation STEP 7 ................................................. 9
Choix du mode de représentation .................................................................................................. 10
Programmation en CONT/LOG ...................................................................................................... 11
Programmation en LIST .................................................................................................................. 12
Enregistrer un bloc ......................................................................................................................... 13
Appeler un bloc dans l'OB1 ............................................................................................................ 14
Charger des blocs dans le système d'automatisation .................................................................... 15
Test simple d'un programme ......................................................................................................... 16
Charger et enregistrer des corrections de bloc .............................................................................. 17
Exercice 1 : Marche par à-coups d'un tapis roulant (FC 16) .......................................................... 18
Exercice 2 : Appel du FC 16 dans l'OB 1 ....................................................................................... 19
Informations complémentaires ....................................................................................................... 20
Paramètres de l'éditeur : Onglet "Général" ..................................................................................... 21
Paramètres de l'éditeur : Onglet "Affichage" ................................................................................... 22
Paramètres de l'éditeur : Onglet "LIST" .......................................................................................... 23
Paramètres de l'éditeur : Onglet "CONT/LOG" ............................................................................... 24
Paramètres de l'éditeur : Onglet "Bloc" ........................................................................................... 25
Paramètres de l'éditeur : Onglets "Sources" et "Texte source" ...................................................... 26
Système d'exploitation
DB DB
Cycle
Temps OB
FC FB SFC
Blocs
Processus d'organisation
Erreur FB FC SFB
Bloc d'organisation Les blocs d'organisation (OB) constituent l'interface entre le système d'exploita-
OB tion et le programme utilisateur. L'ensemble du programme peut être concaténé
dans un seul bloc OB1 (programme linéaire) appelé de manière cyclique par le
système d'exploitation, ou être structuré dans plusieurs blocs (programme
structuré).
Fonction Une fonction (FC) assure une fonctionnalité spécifique du programme. Les
FC, SFC fonctions peuvent être paramétrables. Dans ce cas, des paramètres sont transmis
à la fonction lorsqu'elle est appelée. Les fonctions conviennent donc pour la
programmation de fonctionnalités récurrentes et complexes, par exemple pour
effectuer des calculs.
Les fonctions système (SFC) sont des fonctions paramétrables, intégrées au
système d'exploitation de la CPU, dont le numéro et la fonctionnalité sont définis
de manière fixe. Pour de plus amples informations, se reporter à l'aide en ligne.
Bloc fonctionnel Du point de vue du programme, les blocs fonctionnels s'apparentent aux fonctions,
FB, SFB mais ils disposent en plus de zones mémoire spécifiques, sous forme de blocs de
données d'instance. Les blocs fonctionnels conviennent donc pour la programma-
tion de fonctionnalités récurrentes encore plus complexes, par exemple pour
assurer des tâches de régulation. Les blocs fonctionnels système (SFB) sont des
blocs fonctionnels paramétrables, intégrés au système d'exploitation de la CPU,
dont le numéro et la fonctionnalité sont définis de manière fixe. Pour de plus
amples informations, se reporter à l'aide en ligne.
Blocs de données Les blocs de données (DB) sont des zones de données du programme utilisateur,
à l'intérieur desquelles les données utilisateur sont gérées de manière structurée.
Opérations Tous les blocs (FB, FC et OB) admettent l'ensemble du jeu d'opérations.
admises
Recette A
Pompe
OB 1 OB 1 Recette B OB 1
Mélangeur
Sortie
Sortie
Toutes les opérations Les différentes opérations sont Les fonctions réutilisables sont
sont dans un seul bloc réparties dans différents blocs. écrites dans des blocs séparés.
(normalement le bloc L'OB 1 appelle ces blocs L'OB 1 (ou un autre bloc) appelle
d'organisation OB 1). les uns après les autres. ces blocs et transmet les données
correspondantes.
Programme Un programme structuré contient des blocs avec des paramètres, appelés
structuré blocs paramétrables. Ces blocs sont conçus pour être réutilisables.
Lors de l'appel d'un bloc paramétrable, les paramètres effectifs (les adresses
effectives des entrées et sorties ainsi que les valeurs paramétriques) lui sont
transmis.
Exemple :
• Un "bloc pompe" contient les instructions pour la commande d'une pompe.
• Les blocs de programme assurant la commande de pompes spéciales
appellent le "bloc pompe" pour lui délivrer des informations indiquant
quelle pompe doit être commandée et avec quels paramètres.
• Lorsque le "bloc pompe" a terminé l'exécution de ses instructions, le
programme revient au bloc appelant (OB 1, par exemple) qui poursuit le
traitement de ses instructions.
S1 K1
E 2.0 A 4.3
MIE MIS
Programme
octet 0 utilisateur octet 0
octet 1 1 octet 1
octet 2 1 octet 2
: : :
: : : 1
: U E 2.0 :
1 = A 4.3
:
:
2
U E 6.4
= A 4.3
:
Zone de mémoire de la CPU Zone de mémoire de la CPU
Introduction La CPU dispose de zones de mémoire réservées pour stocker tous les états
des entrées et des sorties TOR : la mémoire image des entrées (MIE) et la
mémoire image des sorties (MIS). Pendant le traitement du programme, la
CPU accède exclusivement à ces zones de mémoire et non pas directement
aux modules d'entrées et de sorties TOR.
MIE La mémoire image des entrées est la zone de mémoire dans laquelle sont
rangés les états logiques de toutes les entrées TOR. La mémoire image est lue
par les modules d'entrées TOR en début de cycle.
MIS La mémoire image des sorties est la zone de mémoire dans laquelle sont
rangés les états logiques de toutes les sorties TOR. La mémoire image est
transmise aux modules de sorties TOR à la fin du cycle.
Les sorties peuvent être affectées (écrites) ou interrogées (lues) dans le
programme.
Programme Si vous interrogez des entrées dans le programme utilisateur (avec U E 2.0
utilisateur par exemple), c'est le dernier état rangé dans la MIE qui est interrogé. Il ne peut
pas changer au cours d'un cycle, puisque la MIE n'est mise à jour ou lue qu'au
début d'un cycle. C'est donc toujours le même état logique qui est délivré en
cas d'interrogations multiples d'une entrée au cours d'un même cycle.
Double affectation Lorsqu'un état est affecté à une sortie à différents endroits du programme, seul
l'état affecté en dernier est transféré au module de sortie correspondant (voir
figure) :
1. L'état du signal d'entrée E 2.0 est affecté à la sortie A 4.3.
2. Dans le même cycle, l'état du signal d'entrée E 6.4 est affecté à la sortie
A 4.3. Le résultat de cette dernière affectation est transféré au module
de sorties.
En règle générale, de telles affectations en double sont des erreurs de
programmation.
Lecture des états des entrées sur les modules d'entrée TOR
et mémorisation des états dans la mémoire image (MIE)
Cycle de la CPU
Insertion d'un bloc Avec la commande de menu Insertion Bloc S7, vous affichez une liste des
types de blocs :
Section déclarative
Section des
instructions
Fenêtre de détails
Lancement La méthode la plus simple consiste à lancer l'éditeur par un double clic sur un
de l'éditeur bloc S7 dans le SIMATIC Manager. L'éditeur comporte les composants suivants :
Section déclarative La section déclarative sert à déclarer les variables locales et les paramètres. Elle
sera étudiée en détail dans le chapitre "Fonctions et blocs fonctionnels".
Section des La section des instructions contient le programme proprement dit, qui peut être
instructions structuré en réseaux.
L'éditeur procède à un contrôle de syntaxe lors de la saisie des instructions
(en LIST) ou lors de l'écriture d'éléments du programme ou de symboles
d'opérations.
Fenêtre de détails La fenêtre de détails offre les fonctions ou les informations suivantes :
1 : Erreurs : liste les erreurs de syntaxe décelées dans le
cadre d'une vérification contextuelle ou d'un
processus de compilation.
2 : Info : donne des informations complémentaires telles
que "Type de données attendu pour un opérande".
3 : Références croisées : liste des opérandes utilisés dans le réseau et de
leurs occurrences dans l'ensemble du programme.
4 : Informations opérandes : donne la possibilité de contrôler les opérandes
utilisés dans le réseau.
5 : Forçage : donne la possibilité de forcer les opérandes utilisés
dans le réseau.
6 : Diagnostic : visualisation des données relatives au diagnostic
processus (seulement si configuré)
7 : Comparaison : navigation avec la fonction "Comparaison de blocs"
Schéma à contacts
Liste d'instructions
LIST La liste d'instructions se compose d'opérations STEP 7 LIST offre une grande
liberté dans la programmation (parfois aux dépens de la lisibilité). Ce mode de
représentation est plus particulièrement destiné aux programmeurs qui
maîtrisent déjà d'autres langages de programmation.
Autres langages Outre les langages du progiciel de base STEP 7, une série d'outils d'ingénierie
est proposée pour les différents cas d'application, et notamment :
- GRAPH 7 : configuration de commandes séquentielles
- HiGraph : configuration avec des graphes d'état
- SCL : langage évolué de type PASCAL pour la description
d'algorithmes
- CFC : Continous Function Chart, pour l'interconnexion graphique
de blocs S7
CONT/LOG => LIST Les séquences de programme créées dans les modes de représentation
graphiques peuvent être visualisées en listes d'instructions (LIST). Ce
changement de mode de représentation ne constitue toutefois pas la solution
idéale pour réaliser une liste d'instructions.
LIST => CONT/LOG Les séquences de programme conçues en LIST ne sont pas toutes
visualisables en CONT ou LOG. Les séquences qui ne peuvent pas être
visualisées, restent en LIST.
Mode insertion
ou
écrasement
Eléments Les éléments CONT et LOG les plus fréquemment utilisés sont directement
accessibles dans la barre d'outils. Ils sont insérés dans le programme à
l'emplacement sélectionné par un clic de la souris.
Barre d'outils en LOG Barre d'outils en CONT
Vues d'ensemble Si vous cliquez sur l'icône "Vues d'ensemble", une nouvelle fenêtre s'affiche
avec les contenus suivants :
Eléments de programme :
tous les éléments de programme ou symboles d'opération
(le contenu de cette fenêtre dépend du mode de représentation activé :
CONT/LOG/LIST).
Structure d'appels :
montre la structure du programme ou l'imbrication des blocs et indique quel est
le bloc appelé par un autre bloc.
Réseaux En cliquant sur l'icône "Nouveau réseau" dans la barre d'outils, vous ajoutez un
nouveau réseau après le réseau actif.
Pour insérer un nouveau réseau 1 avant le Réseau 1 existant, il faut
sélectionner le titre du bloc avant de cliquer sur l'icône.
Boîte vide La boîte vide accélère l'insertion de nouveaux éléments CONT ou LOG. Vous
avez ainsi la possibilité d'ajouter directement des éléments sans recourir au
catalogue. Lorsque vous entrez les premières lettres d'un nom d'élément, la
liste des éléments correspondants s'affiche pour que vous puissiez effectuer
votre choix.
Insérer ou Avec la touche "Ins" ou "Inser", vous passez du mode d'édition "Insérer" au
écraser mode "Ecraser" et inversement. Le mode actif est indiqué dans la barre d'état.
Vues d'ensemble Dans le mode de représentation LIST, la fenêtre "Vues d'ensemble" n'affiche
que les bibliothèques et les listes contenant les blocs déjà créés qui peuvent
être appelés depuis le bloc actif.
Insérer ou Avec la touche "Ins" ou "Inser", vous passez du mode d'édition "Insérer" au
écraser mode "Ecraser" et inversement. Le mode actif est indiqué dans la barre d'état.
Enregistrer un bloc L'édition étant achevée, le bloc peut être enregistré sur le disque dur de la
console de programmation, dans le dossier de gestion des données du projet :
• à l'aide de la commande Fichier Enregistrer ou
• par un clic sur l'icône de disquette dans la barre d'outils
Remarque Si plusieurs blocs ont été ouverts avec l'éditeur, la commande "Enregistrer"
n'enregistre que le bloc affiché dans la fenêtre active.
Traitement cyclique Pour que le nouveau bloc soit intégré dans le traitement cyclique du
programme de la CPU, il faut l'appeler dans l'OB1.
Dans les langages de programmation graphiques CONT et LOG, l'appel du
bloc se fait très simplement à partir du catalogue (voir figure). En LIST, on
utilise l'instruction CALL.
Condition Pour pouvoir activer le mode Visualisation, vous devez d'abord ouvrir le bloc à
visualiser avec l'éditeur CONT/LIST/LOG, hors ligne ou en ligne.
Remarque : Un bloc ne peut être testé hors ligne qu'après son transfert dans le
système d'automatisation.
Remarque : Une fois que la fonction test est active, il n'est plus possible de changer le
mode de représentation du bloc (CONT/LIST/LOG).
Corrections
d'un bloc Les corrections s'effectuent normalement comme suit.
Ouvrir le bloc Avec l'éditeur de blocs, le bloc peut être ouvert hors ligne (dans la gestion des
données du projet sur la PG) ou en ligne (directement dans la CPU). Mais dans
le cas normal, il n'est pas nécessaire d'ouvrir le bloc en ligne.
Corriger le bloc Que le bloc ait été ouvert en ligne ou hors ligne, les modifications effectuées
sont d'abord enregistrées uniquement dans la mémoire de travail de la console
de programmation. Elles ne sont donc sauvegardées ni hors ligne dans la
gestion des données du projet, ni en ligne dans la CPU ! Une mise hors tension
de la PG causerait la perte irrémédiable de toutes les modifications.
Enregistrer le bloc Avec l'icône "Enregistrer", le bloc est toujours enregistré hors ligne, c'est-à-dire
dans la gestion des données de projet sur la PG et ce, que le bloc ait été ouvert
en ligne ou hors ligne !
Charger le bloc Avec l'icône "Charger", le bloc est toujours enregistré en ligne, c'est-à-dire
chargé dans l'automate, que le bloc avait été ouvert en ligne ou hors ligne
auparavant.
Enoncé Programmez l'appel du FC 16 dans l'OB 1 afin que ce bloc soit traité
cycliquement.
Commande Les entrées et les mémentos qui ont reçu l'attribut de commande par contact
par contact dans la table des mnémoniques peuvent être commandés directement depuis
l'éditeur de programmes au moyen de boutons (sur le contact).
Signaler les accès Cette option permet de déterminer si les accès globaux à des blocs de
aux DB d'instance données d'instance, inscrits comme tels dans la table des mnémoniques,
comme erreurs doivent être signalés comme des erreurs.
Disposition des Le contenu et la disposition des fenêtres encore ouvertes seront mémorisés
fenêtres à à la fermeture de l'éditeur et restaurés à la session suivante.
l'enregistrement
Affichage à Après ouverture à l'aide de l'éditeur, les blocs peuvent s'afficher en standard
l'ouverture du bloc comme suit :
• avec adressage symbolique ou absolu
• avec ou sans informations mnémonique
• avec ou sans sélection de mnémoniques
• avec ou sans sélection de mnémoniques (en CONT et LOG seulement)
• avec ou sans commentaires de bloc et de réseau
• avec ou sans mise en valeur des opérandes forcés de manière permanente
et/ou des opérandes utilisés pour le diagnostic du processus
Affichage de types
de blocs ...
... Blocs de code La zone de liste permet de déterminer le mode de représentation des blocs :
"LIST", "CONT", "LOG" ou Langage de programmation.
... Blocs de données Les blocs de données peuvent être représentés sous les formes suivantes :
• Vue des déclarations ou
• Vue des données
Vue d'ensemble Cette option permet de déterminer le mode de tri des blocs de code dans le
des éléments catalogue "Vue d'ensemble" : par type et numéro ou par nom de famille (entrée
de programme dans la boîte de dialogue Propriétés du bloc).
Champs d'état Lorsque vous appelez l'état d'un bloc LIST, les champs d'état qui s'affichent
sont ceux qui ont été activés dans les paramètres de l'éditeur.
Vous pouvez choisir d'afficher les champs suivants :
• Bit d'état : le bit d'état s'affiche.
• RLG : le résultat logique (RLG) s'affiche.
• Etat standard : mot de temporisation, mot de comptage ou contenu
de l'accumulateur 1, selon l'opération utilisée.
• Registre d'adresse : les registres d'adresse sont utilisés pour l'adressage
indirect.
• Accu 2 : le contenu de l'accumulateur 2 s'affiche.
• Registre de DB : le contenu du registre de bloc de données concerné
s'affiche.
• Indirect : cet affichage n'a de sens que pour l'adressage
indirect en mémoire.
• Mot d'état : le mot d'état s'affiche.
• Par défaut : avec "Par défaut", ce sont les champs d'état par
défaut qui s'afficheront, à savoir le bit d'état, le
résultat logique et l'état standard.
• Activer immédiatement tous les points d'arrêt :
cette option ne s'applique qu'à la fonction de test
"MISE EN ATTENTE".
Vérification du type Lorsque vous éditez un bloc, la saisie des opérations combinatoires sur bits
provoque toujours une vérification du type de l'opérande. Cette vérification peut
être désactivée pour les comparaisons, les opérations arithmétiques, etc...
(réservé aux utilisateurs expérimentés).
Générer les données Les données de référence seront automatiquement mises à jour lors de la
de référence modification et de l'enregistrement de blocs, si l'option "Générer les données
de référence" est cochée dans l'onglet "Bloc".
Si ce n'est pas le cas, les données de référence ne sont pas mises à jour dans
un premier temps. Mais la prochaine fois que l'utilisateur ouvre la fenêtre
"Afficher les données de référence", il doit indiquer s'il veut mettre les données
à jour et pour quels blocs.
Remarque : les "données de référence" font l'objet d'une étude détaillée dans
le chapitre "Recherche d'erreurs".
Créer des blocs Cette zone permet de déterminer le mode de représentation (CONT/LIST/LOG)
de code qui doit être automatiquement proposé lors de l'insertion d'un nouveau bloc.
Compiler les L'onglet "Sources" permet de paramétrer les options pour générer des blocs S7
sources exécutables à partir d'une source LIST ou ASCII. Les différentes options sont
expliquées en détail dans l'aide en ligne de STEP 7.
Texte source Définition des paramètres d'affichage du texte dans les fichiers source. Les
différentes options sont expliquées en détail dans l'aide en ligne de STEP 7.