Vous êtes sur la page 1sur 10

Programmation de l’API SIMATIC S7-1200 avec TIA

Portal V14

1. Objectif du TP

Dans ce TP, vous allez apprendre comment programmer l’automate programmable


industriel (API) SIMATIC S7-1200, grâce au logiciel de programmation TIA Portal. Ce
TP fournit les notions de base et montre les différentes étapes à suivre pour
programmer l’API.

2. Présentation de l'automate SIMATIC S7-1200

L’automate SIMATIC S7-1200 est un microcontrôleur utilisé dans les plages de


performances inférieures. La CPU combine un microprocesseur, une alimentation
intégrée, des circuits d'entrée et de sortie, un PROFINET intégré, des E/S rapides de
commande de mouvement, ainsi que des entrées analogiques intégrées dans un
boîtier compact. La gamme S7-1200 offre divers modules et cartes enfichables pour
accroître les capacités de la CPU avec des E/S supplémentaires ou d'autres protocoles
de communication.
3. Mode de fonctionnement de la CPU

La CPU a les modes de fonctionnement suivants :

 En mode « STOP », la CPU n’exécute pas le programme, et vous pouvez


charger un projet.
 En mode « STARTUP », la CPU entame une procédure de démarrage.
 En mode « RUN », le programme est exécuté de façon cyclique. Les projets ne
peuvent pas être chargés dans une CPU en mode RUN.

La CPU n’a pas de commutateur physique pour changer de mode de fonctionnement.


Le mode STOP ou RUN se change en utilisant le bouton sur le panneau de commande
du logiciel Step 7 Basic. De plus, le panneau de commande est muni d’un bouton
MRES pour faire une réinitialisation générale de la mémoire et il affiche l’état actuel
des LED de la CPU.

La couleur de la LED des états RUN/STOP sur la face avant de la CPU indique le mode
de fonctionnement actuel.

 Une lumière JAUNE indique le mode STOP


 Une lumière VERTE indique le mode RUN
 Une lumière CLIGNOTANTE indique le mode STARTUP

En outre il y a les LED « ERROR » et « MAINT » qui indiquent respectivement si une


erreur est survenue et si une maintenance est requise.

4. Logiciel de programmation TIA PORTAL

La suite logicielle TIA (Totally Integrated Automation) intègre un ensemble de


logiciels destiné aux équipements d'automatismes Siemens, notamment :

 Step7 pour la configuration et la programmation des API


 WinCC pour la création de pages de supervision & visualisations sur PC ou
écrans Simatic panels
5. Les variables de l’automate

Les types de variables :

 Zone I : Mémoire image des entrées


 Zone Q : Mémoire image des sorties
 Zone M : Mémoire utilisateur
 Zone T : Mémoire des temporisations
 Zone C : Mémoire des compteurs
 Zone DB : Mémoire utilisateur ou système structuré dans des blocs de données

I Bit d’entrée
IB Octet d’entrée
IW Mot d’entrée
ID Double mot d’entrée
Q Bit de sortie
QB Octet de sortie
QW Mot de sortie
QD Double mot de sortie
M Mémoire utilisateur
MB Octet mémoire
MW Mot mémoire
MD Double mot mémoire
T Temporisation
C Compteur
DBX Bit dans un bloc de donnée
DBB Octet dans un bloc de donnée
DBW Mot dans un bloc de donnée
DBD Double mot dans un bloc de donnée
6. Adressage des variables

Les objets I, Q, M, DB sont rangés dans des octets (8 bits). On peut accéder à un bit,
à un octet, à un mot de 16 bits ou à un double mot (32 bits).

Exemples :

%I0.4

%I indique ici que l’adresse est de type « entrée », 0 l’adresse d’octet, et 4 l’adresse
de bit.

%Q1.2

%Q indique ici que l’adresse est de type « sortie », 1 l’adresse d’octet et 2 l’adresse
de bit.

Les adresses d’octet et de bit sont toujours séparées par un point.

7. Langage de programmation

Les langages de programmation logigramme (LOG), schéma à contacts (CONT) et


Structured Control Language (SCL) sont disponibles pour la programmation de
fonctions et blocs fonctionnels pour SIMATIC S7-1200.

8. Concepts de programmation
a. Système d'exploitation et programme utilisateur

Chaque automate (CPU) contient un système d'exploitation qui organise toutes les
fonctions et processus de la CPU n'étant pas liés à une tâche d'automatisation
spécifique. Les tâches du système d'exploitation :

 Déroulement du démarrage (à chaud)


 Actualisation de la mémoire image des entrées et de la mémoire image des
sorties
 Appel cyclique du programme utilisateur
 Acquisition des alarmes et appels des OB d'alarme
 Détection et traitement des erreurs
 Gestion des zones de mémoire

Le système d'exploitation est un composant de la CPU et est déjà installé dans la CPU
à la livraison.

Le programme utilisateur contient toutes les fonctions requises pour le traitement de


tâches d'automatisation spécifiques. Les fonctions du programme utilisateur :

Vérification des conditions préalables au démarrage (à chaud) à l'aide d'OB de


démarrage

 Traitement des données du processus, c'est-à-dire commande des signaux de


sortie en fonction des états des signaux d'entrée
 Réaction aux alarmes et entrées d'alarmes
 Traitement des perturbations dans l'exécution normale du programme

Selon les besoins de votre application, vous pouvez choisir soit une structure linéaire
soit une structure modulaire pour votre programme utilisateur :

 Un programme linéaire exécute toutes les instructions pour vos tâches


d'automatisation séquentiellement les unes après les autres. Avec un
programme linéaire, vous placerez typiquement toutes les instructions dans
l'OB d'exécution cyclique du programme (OB 1).
 Un programme modulaire appelle des blocs de code spécifiques qui exécutent
des tâches spécifiques. Pour créer une structure modulaire, vous divisez la
tâche d'automatisation complexe en petites tâches subordonnées qui
correspondent aux fonctions technologiques du processus. Chaque bloc de
code fournit le segment de programme pour une tâche subordonnée. Vous
structurez votre programme en appelant l'un des blocs de code à partir d'un
autre bloc.
b. Blocs d'organisation

Les blocs d'organisation (OB) constituent l'interface entre le système d'exploitation


de l'automate (CPU) et le programme utilisateur. Ils sont appelés par le système
d'exploitation et gère les opérations suivantes :

 Traitement cyclique du programme (par ex. OB1)


 Comportement au démarrage de l'automate
 Traitement du programme déclenché par alarme
 Traitement des erreurs

Un projet doit contenir au moins un bloc d'organisation pour le traitement cyclique


du programme. Un OB est appelé par un évènement déclencheur. Des priorités sont
définies pour les différents OB afin que l'OB1 cyclique puisse par exemple être
interrompu par un OB82 pour le traitement des erreurs.

Activité 1 : Démarrage d’un moteur en deux sens de marche

Un moteur est démarré en deux sens de marche par les boutons poussoirs S1 et S2.
L’appui sur le bouton poussoir S3 permet d’arrêter le moteur. Le moteur est alimenté
par les contacteurs KM1 et KM2.

Travail à faire :

Lister et adresser les entrées et les sorties

Configurer l’automate

Ecrire le programme dans l’OB1 et le simuler

c. Fonctions

Les fonctions (FC) sont des blocs de code sans mémoire. Elles n'ont pas de mémoire
de données dans laquelle il est possible d'enregistrer les valeurs de paramètres de
bloc. C'est pourquoi tous les paramètres d'interface doivent être interconnectés lors
de l'appel d'une fonction. Des blocs de données globaux doivent être crées pour
stocker durablement les données.
Une fonction contient un programme qui est toujours exécuté quand un autre bloc
de code appelle cette fonction. Les fonctions peuvent par exemple servir dans les cas
suivants :

 Retourner un résultat dépendant des valeurs d'entrée pour les fonctions


mathématiques.
 Exécuter des fonctions technologiques comme des commandes uniques avec
combinaisons binaires.

Une fonction peut également être appelée plusieurs fois à divers endroits du
programme.

Activité 2 :

Reprendre l’activité 1 et écrire le programme dans un FC

d. Blocs fonctionnels et blocs de données d'instance

Les blocs fonctionnels sont des blocs de code qui mémorisent durablement leurs
variables d'entrée, de sortie et d'entrée/sortie ainsi que leurs variables statiques dans
des blocs de données d'instance afin qu'il soit possible d'y accéder même après le
traitement de blocs. Pour cette raison, ils sont aussi appelés blocs avec mémoire.

Les blocs fonctionnels peuvent aussi travailler avec des variables temporaires.
Cependant, les variables temporaires ne sont pas enregistrées dans le DB d'instance
mais disponibles uniquement tout le temps d'un cycle. Les FB sont utilisés pour des
tâches qui ne peuvent être mises en œuvre avec des fonctions :

 Toujours quand les temporisations et les compteurs sont nécessaires dans un


bloc
 Toujours quand une information doit être enregistrée dans le programme. Par
ex. un indicatif de mode de fonctionnement avec un bouton.

Les FB sont toujours exécutés quand un bloc fonctionnel est appelé par un autre bloc
de code. Un FB peut aussi être appelé plusieurs fois à divers endroits du programme.
Ceci facilite la programmation de fonctions complexes et répétitives.
Un appel d'un bloc fonctionnel est désigné par le terme "instance". Pour chaque
instance d'un FB, une zone mémoire lui est affectée, contenant les données utiles au
traitement du bloc. Cette mémoire est fournie par des blocs de données que le logiciel
génère automatiquement. Il est également possible de fournir de la mémoire pour
plusieurs instances dans un bloc de données sous forme de multi-instance. La taille
maximale des DB d'instance varie selon la CPU. Les variables déclarées dans le bloc
fonctionnel déterminent la structure du bloc de données d'instance.

Activité 3 :

On souhaite démarrer deux pompes d’évacuation des eaux dans une mine. Les deux
pompes fonctionnent de la même manière. On démarre les pompes respectivement
par les boutons poussoirs S0 et S1 et on les arrête par les boutons S3 et S4. Les
voyants H1 et H2 signalent leur état de fonctionnement.

Lister et adresser les entrées et les sorties

Configurer l’automate

Créer un FB et entrer les variables d’entrée et de sortie ainsi que le programme

Simuler le programme

e. Blocs de données globaux

Contrairement aux blocs de code, les blocs de données ne contiennent pas


d'instructions, mais ils sont utilisés pour enregistrer les données utilisateurs.

Les blocs de données contiennent donc des données variables qui sont utilisées dans
le programme utilisateur. La structure des blocs de données globaux peut être définie
au choix. Les blocs de données globaux stockent des données qui peuvent être
utilisés par tous les autres blocs. L'accès aux blocs de données d'instance doit être
réservé au bloc fonctionnel correspondant. La taille maximale des blocs de données
varie selon la CPU.
Activité 4 :

Reprendre l’activité 1

Créer un DB pour stocker les différentes entrées et sorties

Ecrire le programme et simuler

9. Activité de synthèse : Commande de feux de signalisation

On veut commander les feux de signalisation au niveau d’un passage pour piétons.
Le programme FEUX doit commander aussi bien :

 les feux de signalisation pour la circulation routière (feux de circulation) que


 les feux de signalisation pour le passage des piétons (feux pour piétons).

Les feux de circulation sont tricolores (rouge, orange et vert). Les feux pour piétons
sont bicolores (rouge et vert) et comportent un bouton-poussoir pour l’appel du vert
et la demande de passage.

Quand un piéton presse sur le bouton-poussoir, le programme reçoit la demande de


passage au vert des feux pour piétons et commute les feux de circulation du vert à
l’orange, puis de l’orange au rouge.

L’orange pour les automobilistes doit durer 5 secondes. Le rouge pour les
automobilistes doit durer 20 secondes et commencer au même moment que le vert
pour piétons. Le vert pour piétons doit durer 10 secondes. Dès que la phase du vert
pour piétons est écoulée, les feux pour piétons doivent passer au rouge. La
temporisation pour la prochaine demande de passage au vert des feux pour piétons
doit être de 7 secondes.
Un compteur permet de compter le nombre de demande de passage au vert. L’appui
sur un bouton poussoir permet de réinitialiser le compteur.

Travail à faire :

 Lister et adresser les entrées et les sorties


 Configurer l’automate
 Ecrire le programme et le simuler
 Câbler les entrées et les sorties
 Charger le programme dans l’automate et faire les essais

Vous aimerez peut-être aussi