Vous êtes sur la page 1sur 72

Introduction au S7-1200

VERSION 2015 - 2016


Ces notes se réfèrent au « Manuel System » qui est
téléchargeable, au format PDF, à partir du campus numérique :
cours « Automation industrielle ». N’imprimer pas ce manuel car
il comporte plus de 380 pages. Si vous avez besoin de
renseignements complémentaires, vous pouvez facilement trouvez
l’information à l’aide de recherche par « mots clés » ou par la
table des matières.

Ch. 1 Introduction
a. Après avoir vu ce chapitre 1, l’étudiant doit pouvoir :
 Pouvoir décrire l’automate

1 Introduction à l’automate S7-1200


L'automate programmable S7-1200 offre la souplesse et la puissance nécessaires pour
commander une large gamme d'appareils afin de répondre à vos besoins en matière
d'automatisation. Sa forme compacte, sa configuration souple et son important jeu
d'instructions en font une solution idéale pour la commande d'applications très variées.
La CPU combine un microprocesseur, une alimentation intégrée, des circuits d'entrée et des
circuits de sortie dans un boîtier compact afin de créer un puissant automate programmable.
Une fois que vous avez chargé votre programme, la CPU contient la logique nécessaire au
contrôle et à la commande des appareils dans votre application. La CPU surveille les entrées
et modifie les sorties conformément à la logique de votre programme utilisateur, qui peut
contenir des instructions booléennes, des instructions de comptage, des instructions de
temporisation, des instructions mathématiques complexes ainsi que des commandes pour
communiquer avec d'autres appareils intelligents.

1
A. Signal Boards
Un Signal Board (SB) vous permet d'ajouter des E/S à votre CPU. Vous pouvez utiliser un
Signal Board à E/S TOR (tout ou rien) où à E/S analogiques. Un Signal Board se connecte sur
l'avant de la CPU.
 SB à 4 E/S TOR (2 entrées CC et 2 sorties CC)
 SB à 1 sortie analogique

2
Ch. 2 Step 7 basic
a. Après avoir vu ce chapitre 2, l’étudiant doit pouvoir :
 Affecter une adresse IP
 Ajouter un appareil
 Utiliser les entrées et sorties comme « bits » et comme « bytes ou mots (words) »
 Créer une fonction « ET » et une fonction « OU »
 Utiliser la commande « Move »
 Utiliser la « table de variables standard »
 Créer un programme dans l’OB1
 Utiliser la visualisation dynamique: « les lunettes »

Nous utiliserons la vue projet qui nous permet d’accéder à tous les composantes d’un projet.

1 Quelques outils simples


A. Insertion facile d’opération dans votre programme
STEP 7 Basic met à votre disposition des Task Cards qui contiennent les opérations pour
votre programme. Les opérations sont regroupées selon leur fonction.
Pour créer votre programme, vous amenez les opérations de la Task Card dans un réseau.

3
B. Accès facile à vos opérations favorites à partir de la barre d’outils

2 Mise en route
Le système travaille avec des adresses Internet Protocole (IP).
Une adresse IP est constituée de 4 nombres pointés et d’un masque de réseau.
Exemple d’un nombre pointé : 192.168.1.152
Exemple d’un masque de réseau : 255.255.255.0
Dans notre exemple, cela signifie que l’ordinateur ne pourra communiquer qu’avec des
automates dont l’adresse IP commence par 192.168.1. (puisque 3 fois 255). Il pourra donc
communiquer avec les automates commençant par 192.168.1.0 à 192.168.1.254 soit 255
automates. Attention l’ordinateur ne peut communiquer avec lui-même, donc en réalité avec
254 automates.
Vous devez relever le numéro de l’adresse IP de la carte réseau de votre ordinateur, ensuite il
faudra attribuer une adresse IP compatible à l’automate (si 2 fois 255 => les 2 premiers
nombres doivent être équivalents). Si l’automate dispose déjà d’une adresse IP alors il faut la

4
relever et voir si elle est compatible. Si elle n’est pas compatible, vous devez appeler le
professeur.

A. Ordinateur
Voir l’adresse IP de la deuxième carte réseau de votre ordinateur:
1. Vue projet
2. Accès en ligne
3. Carte « fast…. »
4. Clic droit, propriété, configurations
5. Vous voyez l’adresse IP et le masque (noter les)

B. API

b. Affecter adresse IP de L’API


1. Revenez sur accès en ligne (clic gauche)
2. Double clic sur « Mettre à jour les abonnés accessibles »
3. Le numéro de l’adresse IP de l’automate apparaît
4. Si l’adresse IP est compatible vous pouvez passer au point b.
5. Si l’adresse IP n’est pas compatible vous devez réinitialiser l’automate
6. Double clic sur API_1 (dans mettre à jour les abonnés accessibles)
7. En ligne & diagnostique – fonctions – restaurer les paramètres d’usine
8. Cocher : « réinitialiser l’adresse IP » - clic sur « Réinitialiser »
a. Attendre un peu et si vous cliquez sur « mettre à jour les abonnés accessible »
l’adresse MAC apparaît.
b. Double clic sur API_1 (dans mettre à jour les abonnés accessibles)
c. En ligne & diagnostique – fonctions – affecter une adresse IP
d. Ecrivez une adresse IP et un masque compatible

c. Ajouter matériel (il faut indiquer à l’ordinateur avec quel matériel il va


travailler)

1. Ajouter matériel
2. Double clic sur « CPU 1200 non spécifiée »
3. Double clic sur 6ES7 2XX-XXXX-XXXX
4. Clic sur « déterminer » (le programme détecte lui-même toutes les cartes de
l’automate ainsi que le type d’automate)
5. Mode : « PN/IE » (mode Internet) – Interface : choisir la carte « Fast… »
6. Clic sur API_1 – Détection
7. Le dessin de votre automate apparaît en noir.

5
3 Théorie_1 : Explications des bases
Dans un premier temps, nous allons utiliser des entrées, des sorties et des mémoires.

A. Les entrées
Vous disposez d’une CPU 1214C qui possède 14 entrées séparées. C’est-à-dire que l’on peut
amener 14 fois 24 volts. Du 24volt peut être introduit dans l’automate via un capteur, via un
bouton poussoir ou encore via un bouton bistable.

a. Comment l’automate « lit » les entrées


L’automate peut regarder de différentes façons s’il y a 24volts en entrée.
En écrivant dans le programme soit :
 I0.2 = l’automate lit la valeur (0 ou 1) du 3ème bit (numéroté de 0 à 7) du byte
d’entrée 0.
 I1.1 = l’automate lit la valeur du 2ème bit du byte d’entrée 1.
 IB0 = l’automate lit les valeurs des 8 bits (d’un coup) du byte 0 (B pour byte).
 IW0 = l’automate lit les valeurs des 16 bits (d’un coup) à partir du byte 0 (W pour
word).
 ID1 = l’automate lit les valeurs des 32 bits à partir de 1.

B. Utilisation des mémoires de l’automate


Pour faciliter la programmation on peut utiliser des mémoires internes à l’automate.
Vous pouvez utiliser dans le programme :
 M50.4 = l’automate comprend : il s’agit du 5ème bit (numéroté de 0 à 7) du byte
mémoire 50.
 M1.3 = l’automate comprend : il s’agit du 4ème bit du byte mémoire 1.
 MB12 = l’automate comprend « il s’agit des 8 bits du byte 12 (B pour byte). Donc
l’ensemble des bits M12.0, M12.1 à M12.7.
 MW14 = l’automate comprend « il s’agit des 16 bits à partir du byte 14 (W pour
word). Donc l’ensemble des bits M14.0 à M14.7 et M15.0 à M15.7.
 MD16 = l’automate comprend : double mots « 32 bits à partir du byte mémoire 16 ».
Donc l’ensemble des bits M16.0 à M16.7 et M17.0 à M17.7 et M18.0 à M18.7 et
M19.0 à M19.7.

C. Les sorties
Notre automate dispose de 10 sorties tout ou rien (TOR). Si un bit de sortie est à « 1 » alors
l’automate délivre du 24 volt si il est à « 0 » alors l’automate délivre « 0 » volt.

b. Utilisation des sorties


Vous pouvez écrire :
 Q0.2 = l’automate comprend : 3ème bit (numéroté de 0 à 7) du byte de sortie 0.
 Q1.1 = l’automate comprend : 2ème bit du byte de sortie 1.
 QB0 = l’automate comprend : 8 bits (d’un coup) du byte de sortie 0 (B pour byte).
Donc l’ensemble des bits Q0.0, Q0.1 à Q0.7.
 QW0 = l’automate comprend : 16 bits (d’un coup) à partir du byte 0 (W pour word).
Donc l’ensemble des bits Q0.0 à Q0.7 et Q1.0 à Q1.7.

6
 QD1 = l’automate comprend : 32 bits à partir du byte 1. Donc l’ensemble des bits
Q1.0 à Q1.7 et Q2.0 à Q2.7 et Q3.0 à Q3.7 et Q4.0 à Q4.7.

D. Fonctionnement de l’automate
Dans les conditions normales, toutes les E/S TOR et analogiques sont actualisées en
synchronisme avec le cycle à l'aide d'une zone de mémoire interne appelée mémoire image du
processus.
La mémoire image contient un cliché instantané des entrées et sorties physiques de la CPU,
du Signal Board et des modules d'entrées-sorties.

 La CPU lit les entrées physiques justes avant l'exécution du programme utilisateur et
stocke les valeurs d'entrée dans la mémoire image des entrées. Cela garantit que ces
valeurs restent cohérentes pendant toute l'exécution des instructions utilisateur.

 La CPU exécute la logique des instructions utilisateur et actualise les valeurs des
sorties dans la mémoire image des sorties sans les écrire dans les sorties physiques
réelles.

 Une fois le programme utilisateur exécuté, la CPU écrit les sorties résultantes de la
mémoire image des sorties dans les sorties physiques.

7
E. Créer un programme nommé : Théorie1_les_bases1

 Les adresses IP ont été affectées (voir chapitre 2.2)


 L’automate est détecté (voir chapitre 2.2)

c. Dans API_1, Variables, table de variables standard


Ecrire : INT_0 « touche enter »

d. Dans API_1 ; Blocs de programme ; OB1


Réseau 1 : si INT_0 alors on alimente en 24 volt la SORT_2

Réseau 2 : si INT_0 et NON INT_1 et INT_2 alors on alimente la SORT_0 (fonction ET).

Réseau 3 : si INT_3 ou INT_4 alors on alimente la SORT_1 (fonction OU non exclusif).

8
Réseau 4 : si INT_1 et INT_2 et NON INT_3 et INT_4 et INT 5 alors on alimente SORT_3 et
SORT_4 et SORT_5 et SORT_6 et SORT_7.

Réseau 5 : travail par byte : si INT_7 alors move IB0 to QB0 (basculer les 10 premiers INT)
et effectuer différents essais avec les interrupteurs. (Manipuler les autres interrupteurs et
observer la souplesse de réponse sans autre programmation).

Réseau 6 : travail par mot : si INT_9 alors move IW0 to QW0 (basculer les 10 premiers INT)
et effectuer différents essais avec les interrupteurs. (Manipuler les autres interrupteurs et
observer la souplesse de réponse sans autre programmation).

Utiliser les « lunettes » pour visualiser le programme en fonctionnement.

9
Application séance 1
 Créer un nouveau programme appelé Application_1.
 Ajouter dans la table des variables INT_0, INT_1 et INT_2 et les 4 sorties : SORT_0 à
SORT_3 et écrire un réseau de telle manière que quand on actionne INT_0 les deux
sorties à l’extrême droite de l’automate s’allument. Si on actionne INT_1, les deux
sorties de l’extrême gauche s’allume. Le faire par les bits.
 Ecrire un réseau supplémentaire lorsque l’on actionne INT_2 alors on transfert le
chiffre 255 vers la sortie « byte » de l’automate.
 Les interrupteurs sont actionnés un à la fois.
 Montrer au professeur.

Ch. 3 Théorie1_les_bases2
a. A l’issue de ce chapitre, l’étudiant doit pouvoir :
 Utiliser des mémoires en tant que « bits », « bytes » ou « mots »
 Créer une structure de programme en utilisant l’OB1 qui appelle des « FB »
 Créer la fonction « ET exclusif »
 Utiliser les « set – reset »

A. La structure d’un programme


Lorsque vous créez un programme utilisateur pour les tâches d’automatisation, vous insérez
les instructions pour le programme dans des blocs de code (OB, FB ou FC).

Un OB est un bloc de code que vous utilisez pour structurer ou organiser le programme
utilisateur de votre application. L’OB1 sert à structurer votre programme. Il existe d’autre OB
pour la gestion des alarmes par exemple ou des OB de démarrage.

Un FB est un sous-programme qui s’exécute lorsqu’il est appelé dans un autre bloc de code
(OB, FB ou FC). Le bloc appelant transmet des paramètres au FB et identifie également un
bloc de données spécifique (DB) qui contient les données pour l’appel spécifique ou instance
de ce FB. Changer le DB d’instance permet à un FB générique de commander le
fonctionnement d’un ensemble d’appareils. Ainsi, par exemple, un FB peut piloter plusieurs
pompes ou vannes avec des DB d’instance différents contenant les paramètres de
fonctionnement spécifiques de chaque pompe ou vanne. Le DB d’instance conserve les
valeurs du FB entre différents appels ou entre des appels consécutifs de ce FB, ce qui permet
une communication asynchrone.

Une FC est un sous-programme qui s’exécute lorsqu’il est appelé dans un autre bloc de code
(OB, FB ou FC). Une FC ne comporte pas de DB d’instance associé. Le bloc appelant
transmet des paramètres à la FC. Les valeurs de sortie de la FC doivent être écrites dans une
adresse de mémoire ou dans un DB global.

En fonction des 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. Typiquement, un programme linéaire place toutes

10
les instructions dans un cycle de programme de l’OB (OB 1) pour l’exécution cyclique du
programme.
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 tâches subordonnées plus petites qui correspondent aux tâches fonctionnelles 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.

Siemens propose de moduler votre programme car en utilisant des FB et des FC votre
programme devient plus lisible et les dépannages beaucoup plus faciles.
En effet, si le FB1 correspond à la gestion du moteur1 et le FB2 à la gestion des fermetures-
ouvertures des vannes. Il est évident que si un problème survient dans la gestion des vannes il
s’agit du FB2.

B. Programme
 Les adresses IP ont été affectées (voir chapitre 2.2)
 L’automate est détecté (voir chapitre 2.2)
Si vous certain de savoir initialiser l’automate et de lui affecter une adresse IP alors, une
fois le programme créer vous pouvez directement cliquer sur « Ajouter un appareil »
sinon refaite une réinitialisation et réaffecter une adresse IP.

11
 Dans API_1, cliquer sur variables API, « table de variables standard » et écrire :

 Dans API_1, cliquer sur « Blocs de programmes », sur « ajouter un nouveau bloc »,
sur FB (laisser cochés « automatique » et « optimisé », refaire l’opération une seconde
fois afin de créer un FB1 et un FB2.
 Ensuite cliquer sur « OB1 » et insérer, dans le réseau 1, comme ci-dessous.

12
C’est au moment que vous appelez « %FB1 ou %FB2 » que se crée le bloc de données
correspondant. Ce bloc de donnée conserve toutes les variables du FB.
 Cliquer sur FB1 et écrire :
Réseau 1 : fonction « OU exclusif ».

Réseau 2 : Si INT_4 est à 1 alors SORT_2 est à 1 et SORT_1 est mis à 1 (set) et restera à 1
même si INT_4 est remis à 0, ce qui n’est pas le cas pour SORT_2.

Tester le programme.
 Cliquer sur FB2 et écrire :
Réseau 1 : le fait d’avoir créé le programme avec deux modules, nous permets d’utiliser
INT_2 et INT_3 (qui ont déjà) été utilisé dans le FB1 mais pour d’autres tâches. Afin de bien
comprendre comment fonctionne les sorties et mémoires nous allons utiliser une table de
visualisation.

Réseau 2 :

13
Réseau 3 : On transfert la valeur 0 en QW0.

 Cliquer sur « table de visualisation », sur « Ajouter une nouvelle table », sur « Table
de visualisation_1 », écrire :

Forcer les valeurs en cliquant sur « lunette » et ensuite sur « le symbole éclair 1 ».
Pour MB2, vous constatez que les 4 bits sur l’API et dans la table sont inversés.
Pour MW4, vous constatez que, sur l’API, le byte 0 est 1101_0000 (inversé par rapport à
l’affichage) et le byte 1 est 1111_0000 (inversé également mais ici on ne voit que les deux
premières led).

C. Exercice : 2 int. et 3 lampes


a) On dispose de deux interrupteurs bistables et de trois lampes.
On déclare les 5 variables INT_0, INT_1, Lampe_1, Lampe_2 et Lampe_3 dans la table
des variables. Il s’agit de variables booléennes.
On désire que : INT_0 allume Lampe_1, INT_1 allume Lampe_1 et Lampe_2, rien
allume la veilleuse Lampe_3.
La veilleuse Lampe_3 peut s’allumer même si INT_0 et INT_0 n’ont pas été actionnés.
La programmation s’effectuera dans FB1 et OB1 ne contiendra qu’un appel de FB1.
b) Idem mais la veilleuse Lampe_3 s’allume seulement si INT_0 et INT_1 ont étés
actionnés.

D. Exercice : les trois lampes


On dispose d’un bouton « poussoir : INT_1 ». A la première pression la première lampe
s’allume, à la deuxième pression la première et la deuxième lampe s’allument, à la troisième
pression les trois lampes seront allumées et enfin à la quatrième pression les trois lampes
s’éteignent. Evidemment on doit pouvoir recommencer l’opération.
Seules les instructions « non » ; « et» ; « ou » ; « set » et « reset » seront utilisées.
Une fois l’API configuré (adresse IP et appareil reconnu, voir début du cours) vous
effectuerez les opérations suivantes :
1. Creer la table de variables standard :

14
2. Cliquer sur « Ajouter un nouveau bloc » et ajouter FB1.
3. Ecrire dans « L’OB1 », la première ligne du réseau 1.

4. Une fois que le programme fonctionne, ajouter un « FB2 » et ensuite ajouter la 2ème
ligne dans l’OB1. Et écrire le programme qui utilise l’instruction :

Vous obtiendrez l’explication de l’instruction « P » en cliquant sur « Opération


logique » et en laissant la souri sur « P ». Il s’agit de discerné lorsque l’on appuie sur
« INT_1 » et non quand on « lâche le bouton ».

15
Ch. 4 : Les variables « bytes », « mots », « double-mots »,
etc…
a. A l’issue de ce chapitre, l’étudiant doit pouvoir :
 Utiliser toutes les variables reprises dans le tableau ci-dessous.
 Les manipuler afin d’utiliser des temporisations, des compteurs, des opérations
arithmétiques.
Les différentes variables utilisables sont indiquées dans le tableau repris ci-dessous.
Par exemple, si vous effectuez une multiplication en utilisant des variables USINT vous ne
pourrez utiliser des nombres négatifs et la réponse ne pourra dépasser 255.
Exemple :
Une addition :

Une multiplication :

Une soustraction :

16
Exercices : Voir ventilation des trois secteurs

Ch. 5 Les temporisations – les compteurs


a. A l’issue de ce chapitre l’étudiant doit :
 Savoir manipuler toutes les temporisations (TP, TON, TOFF et TONR)
 Savoir enregistrer le temps déjà écoulé lorsque la temporisation est active.
 Savoir manipuler les différents compteurs
 Savoir enregistrer la valeur déjà comptées à un certain moment lorsque le compteur est
actif.
 Utiliser un mémento de cadence

1 Fonctionnement des temporisations


Vous utilisez les temporisations pour créer des retards programmés :
● TP: La temporisation "Impulsion" génère une impulsion ayant une durée prédéfinie.
● TON: La sortie Q de la temporisation "Retard à la montée" est mise à 1 après un temps de
retard prédéfini.
● TOF: La sortie Q de la temporisation "Retard à la retombée" est mise à 0 après un temps de
retard prédéfini.
● TONR: La sortie de la temporisation "Retard à la montée mémorisé" est mise à 1 après un
temps de retard prédéfini. Le temps écoulé est accumulé sur plusieurs périodes de temps
jusqu'à ce que l'entrée R soit utilisée pour réinitialiser le temps écoulé.

17
● RT: Réinitialise une temporisation en effaçant les données de temps sauvegardées dans le
bloc de données d'instance de temporisation spécifié.
Chaque temporisation utilise une structure sauvegardée dans un bloc de données afin de
conserver les données de la temporisation. Vous affectez le bloc de données lors du placement
de la temporisation dans l'éditeur.
Lorsque vous placez des temporisations dans un bloc fonctionnel, vous pouvez sélectionner
l'option "bloc de données multi-instance". Les noms des structures de temporisation peuvent
alors être différents avec des structures de données distinctes, mais les données de
temporisation sont contenues dans un seul bloc de données et vous n'avez pas besoin d'un bloc
de données distinct pour chaque temporisation. Cela réduit le temps de traitement et l'espace
mémoire nécessaire pour la gestion des temporisations. Il n'y a pas d'interaction entre les
structures de données de temporisation dans le bloc de données multi-instance partagé.

Le paramètre IN démarre et arrête les temporisations :


● Le passage de 0 à 1 du paramètre IN démarre les temporisations TP, TON et TONR.
● Le passage de 1 à 0 du paramètre IN démarre la temporisation TOF.
Le tableau suivant montre l'effet des changements de valeur dans les paramètres PT et IN.

18
Valeur Time

Les valeurs PT (temps prédéfini) et ET (temps écoulé) sont sauvegardées en mémoire en tant
qu'entiers doubles signés représentant des millisecondes. Les données TIME utilisent
l'identificateur T# et peuvent être entrées en tant qu'unité de temps simple "T#200ms" ou
unités de temps composées "T#2s_200ms".

Remarque
La plage négative du type de données TIME indiquée ci-avant ne peut pas être utilisée avec
les temporisations. Les valeurs négatives de PT (temps prédéfini) sont mises à zéro lorsque
l'instruction de temporisation est exécutée. ET (temps écoulé) est toujours une valeur positive.

19
20
Ecrivez le programme suivant :
 En premier lieu écrire la table des variables standards.
 Ensuite le FB1.
 Dans le FB1 placer la variable local « PRESELEC » en static.
 L’OB1 contiendra un appel du FB1 à écrire après le FB.
 Aller dans « Blocs systèmes », « Ressources programmes »,
« IEC_Timer_0_DB[BD1] » et placer la valeur par défaut de 10s dans la variable
« PT ».
Il y a trois façons de placer une présélection pour une temporisation :
 En écrivant directement la valeur « temps » dans le FB.
 En variable « locale » ou « globale » ici on l’a écrit en « locale ».
 En variable « IEC_Timer_0_DB[BD1].PT ».
En manipulant les différents interrupteurs vous pouvez observer et comprendre comment
fonctionnent les différentes temporisations.

L’instruction « RT » réinitialise une temporisation choisie.

Il ne faut pas de table de visualisation car vous pouvez visualiser directement en FB1 avec les
lunettes.

Une fois toutes les instructions écrites et après avoir tout testé et visualisé vous reprendrez
l’OB1 pour y programmer un mémento de cadence.
 Clic droit sur « API_1 », clic sur « Propriétés », sur « Mémentos système et de
cadences ».
 cocher « Activer l’utilisation de l’octet mémento de cadence ».
 Ecrire 200 pour l’adresse de l’octet (on choisit le MB200).
 Repérer le bit qui clignotera toutes les demi-secondes.

21
L’OB1 final sera donc :

FB1 :

22
23
Exercices : clignoteur et escalator 1

2 Fonctionnement des compteurs


Vous utilisez les compteurs pour compter des événements de programme internes et des
événements de processus externes :
● CTU est un compteur de comptage.
● CTD est un compteur de décomptage.
● CTUD est un compteur de comptage et de décomptage.

Chaque compteur utilise une structure sauvegardée dans un bloc de données afin de conserver
les données du compteur. Vous affectez le bloc de données lors du placement du compteur
dans l'éditeur. Ces instructions utilisent des compteurs logiciels dont la vitesse de comptage
maximale est limitée par la vitesse d'exécution de l'OB dans lequel ils se trouvent.
Il faut exécuter l'OB dans lequel se trouvent les instructions suffisamment souvent pour
détecter toutes les transitions des entrées CU ou CD. Utilisez l'instruction CTRL_HSC pour
disposer d'opérations de comptage plus rapides.
Lorsque vous placez des compteurs dans un bloc fonctionnel, vous pouvez sélectionner
l'option "bloc de données multi-instance". Les noms des structures de compteur peuvent alors
être différents avec des structures de données distinctes, mais les données de compteur sont
contenues dans un seul bloc de données et vous n'avez pas besoin d'un bloc de données
distinct pour chaque compteur. Cela réduit le temps de traitement et l'espace mémoire
nécessaire pour les compteurs. Il n'y a pas d'interaction entre les structures de données de
compteur dans le bloc de données multi-instance partagé.

24
La plage numérique des valeurs de comptage dépend du type de données que vous
sélectionnez. Si la valeur de comptage est un entier non signé, vous pouvez décompter jusqu'à
zéro ou compter jusqu'à la limite de plage. Si la valeur de comptage est un entier signé, vous
pouvez décompter jusqu'à la limite entière négative et compter jusqu'à la limite entière
positive.

CTU : CTU incrémente sa valeur d'1 lorsque la valeur du paramètre CU passe de 0 à 1. Si la


valeur du paramètre CV (valeur de comptage en cours) est supérieure ou égale à la valeur du
paramètre PV (valeur prédéfinie), le paramètre de sortie Q du compteur est égal à 1. Si la
valeur du paramètre de réinitialisation R passe de 0 à 1, la valeur de comptage en cours est
remise à 0. La figure suivante montre un chronogramme CTU avec une valeur de comptage
entière non signée (PV = 3).

25
CTD : CTD décrémente sa valeur d'1 lorsque la valeur du paramètre CD passe de 0 à 1. Si la
valeur du paramètre CV (valeur de comptage en cours) est inférieure ou égale à 0, le
paramètre de sortie Q du compteur est égal à 1. Si la valeur du paramètre LOAD passe de 0 à
1, la valeur dans le paramètre PV (valeur prédéfinie) est chargée dans le compteur en tant que
nouvelle valeur CV (valeur de comptage en cours). La figure suivante montre un
chronogramme CTD avec une valeur de comptage entière non signée (PV = 3).

CTUD : CTUD incrémente ou décrémente sa valeur d'1 en cas de passage de 0 à 1 des entrées
CU (compter) ou CD (décompter). Si la valeur du paramètre CV (valeur de comptage en
cours) est supérieure ou égale à la valeur du paramètre PV (valeur prédéfinie), le paramètre de
sortie QU du compteur est égal à 1. Si la valeur du paramètre CV est inférieure ou égale à 0,
le paramètre de sortie QD du compteur est égal à 1. Si la valeur du paramètre LOAD passe de
0 à 1, la valeur dans le paramètre PV (valeur prédéfinie) est chargée dans le compteur en tant
que nouvelle valeur CV (valeur de comptage en cours). Si la valeur du paramètre de
réinitialisation R passe de 0 à 1, la valeur de comptage en cours est remise à 0. La figure
suivante montre un chronogramme CTUD avec une valeur de comptage entière non signée
(PV = 4).

Ecrivez le programme suivant :


 En premier lieu écrire la table des variables standards.
 Ensuite le FB1.
 Dans le FB1 placer les 5 variables locales en static.
 L’OB1 ne contiendra qu’un appel du FB1 à écrire après le FB.
 Aller dans « Blocs systèmes », « Ressources programmes »,
« IEC_Counter_0_DB1[DB2] » et placer la valeur par défaut de 4 dans la variable
« PV ».
Il y a trois façons de placer une présélection pour un compteur :

26
 En écrivant directement la valeur dans le FB.
 En variable « locale » ou « globale » ici on l’a écrit en « locale ».
 En variable « IEC_Counter_0_DBx[DBx].PV ».

En manipulant les différents interrupteurs vous pouvez observer et comprendre comment
fonctionnent les différents compteurs.

Il ne faut pas de table de visualisation car vous pouvez visualiser directement en FB1 avec les
lunettes.

Dans le FB1 :

27
28
Dans « Blocs système », « ressources programmes », « IEC_Counter_0_DB1[DB2] »

Exercice : le parking

Ch. 6 Le grafcet
a. Après avoir vu ce chapitre, l’étudiant doit pouvoir :
 Créer un « Grafcet » simple
 Créer le tableau d’activation et de désactivation des étapes
 Traduire le tableau, le Grafcet en langage « Ladder »
 Savoir utiliser des variables globales et locales (les variables d’étapes seront toujours
locales)
 Connaître l’instruction « Flanc montant » ou « Flanc descendant »

1 Les principes de bases


A. Définition
Le langage GRAFCET (GRAphe Fonctionnel de Commande Etapes Transitions) est une
norme qui date de 2002 (Norme internationale CEI 60848 seconde édition).
Il s’agit d’un langage graphique permettant de définir le comportement séquentiel d’un
système automatisé à partir de la connaissance des actions à entreprendre.

Le Grafcet est donc un langage graphique représentant le fonctionnement d'un automatisme


par un ensemble :

29
 d'étapes auxquelles sont associées des actions ;
 de transitions entre étapes auxquelles sont associées des conditions de transition
(réceptivités) ;
 des liaisons orientées entre les étapes et les transitions.

B. Mode de représentation
Le mode de représentation qui est normalisé par est le suivant :
 Une étape est représentée par un carré repéré par un numéro
identificateur. Une étape active peut être désignée par un point au-
dessous du numéro. Les actions associées sont indiquées de façon
littérale ou symbolique, dans un rectangle relié à la partie droite.
Une étape initiale est représentée par un carré doublé. (En bleu, fig.
ci-contre).
 Une liaison orientée est représentée par une ligne, parcourue par
défaut de haut en bas ou de gauche à droite. Dans le cas contraire,
on utilise des flèches. On évite les croisements. (En noir, fig. ci-contre).
 Une transition entre deux étapes est représentée par une barre perpendiculaire aux liaisons
orientées qui la relient aux étapes précédente(s) et suivante(s). Une transition indique la
possibilité d'évolution entre étapes. À chaque transition est associée une réceptivité inscrite à
droite de la barre de transition. Une réceptivité est une condition logique qui permet de
distinguer parmi toutes les combinaisons d'informations disponibles celle qui est susceptible
de faire passer le système aux étapes suivantes (En rouge, fig. ci-contre).

C. Séquence unique et séquences multiples


Séquence unique : un automatisme est décrit par un grafcet à séquence unique lorsqu'il peut
être représenté par un ensemble de plusieurs étapes formant une suite dont le déroulement
s'effectue toujours dans le même ordre. (Le grafcet ci-
dessus en est un exemple).
Séquences multiples simultanées : lorsque le
franchissement d'une transition conduit à activer
plusieurs étapes, les séquences issues de ces étapes sont
dites « séquences simultanées ». Les séquences
simultanées débutent toujours sur une réceptivité
unique et se terminent toujours sur une réceptivité
unique. En effet, les différentes séquences
« démarrent » en même temps puis évoluent ensuite
indépendamment les unes des autres. Ce n'est donc que
lorsque toutes les étapes finales de ces séquences sont
actives simultanément (ce qui se produit souvent après
attente réciproque) que l'évolution peut se poursuivre
par le franchissement simultané d'une même transition. Le début et la fin des séquences
simultanées sont représentés par deux traits parallèles (en rouge, fig. ci-contre), qui ne
constituent pas des entités spécifiques du grafcet, mais qui doivent être compris comme
l'élargissement de l'entrée ou de la sortie de la transition. (On parle parfois de « divergence »
et de « convergence en ET » pour cette représentation.).

30
Séquences multiples exclusives : Lorsque, à
partir d'une étape, on peut effectuer un choix
entre plusieurs séquences possibles
conditionnées par plusieurs réceptivités
exclusives, c'est une « sélection de
séquences » ou « aiguillage ». Pour une
meilleure lisibilité, les différentes séquences
possibles sont installées sous un trait
horizontal (en rouge fig. ci-contre) qui
représente l'élargissement de la sortie de
l'étape, et se retrouvent par un trait analogue
représentant l'entrée de l'étape à nouveau
commune. D'une façon analogue au double
trait vu ci-dessus, on parle de « divergence »
et de « convergence en OU » pour cette
représentation.

Deux cas particuliers de sélection de séquences


se rencontrent fréquemment dans la plupart des
automatismes séquentiels. Ce sont le saut
d'étape et la reprise de séquence :

1. Le saut d'étapes permet de sauter un


certain nombre d'étapes si une condition
logique est réalisée (c'est le cas général,
avec une branche vide d'action).
2. La reprise de séquence permet de
répéter une même séquence jusqu'à ce
que la réceptivité de fin de séquence soit
vraie.

Si les réceptivités ne sont pas exclusives (par


exemple, si c12 et c13 peuvent être vraies au
même moment), la suite est indéterminée ; le grafcet est fautif ou pas.

D. Règles de syntaxe

1. L'alternance étape-transition doit être respectée.


2. Deux étapes ne doivent jamais être reliées directement.
3. Deux transitions ne doivent jamais être reliées directement.

Les flèches sont inutiles, elles ne participent pas à la syntaxe mais aident à la lecture.

E. Règles d’évolution
 L'initialisation : une situation initiale est caractérisée par le fait qu'un certain nombre
d'étapes sont actives au début du fonctionnement. Ces étapes sont repérées sur le grafcet par
un double carré.

31
 Le franchissement d'une transition : une transition est soit validée soit non validée. Elle est
validée lorsque toutes les étapes immédiatement précédentes sont actives (voir le tableau
suivant). Elle ne peut être franchie :

1. que lorsqu'elle est validée


2. et que la réceptivité associée est vraie.

 L'évolution des étapes actives : le franchissement d'une transition entraîne l'activation de


toutes les étapes immédiatement suivantes et la désactivation de toutes les étapes
immédiatement précédentes.
 Évolution simultanée : plusieurs transitions
simultanément franchissables sont
simultanément franchies. Par exemple, sur la
figure ci-contre, si la variable c est vraie, le
grafcet va évoluer vers la désactivation
simultanée des étapes 5 et 10 et l'activation simultanée des étapes 6 et 11.
 Activation et désactivation simultanées : si au cours du fonctionnement, une même étape
doit être simultanément désactivée et activée, elle reste ACTIVE.

32
Franchissabilité d'une transition

Étape aucune aucune 5 5 6


active
Transitio non non oui oui
n validée
Réceptivi non oui non oui
té vraie
Transitio non non non oui
n
franchissa
ble

a. Nature des actions


Le critère de classification des actions les plus utilisées est : la durée de l'action
comparativement à la durée de l'étape :
 Action continue : l'action se poursuit tant que l'étape à laquelle elle est associée est active.
Cela se traduit par le diagramme temporel (chronogramme 1) ci-dessous.

 Action conditionnelle : l'action est exécutée si, en plus de l'activité de l'étape à laquelle elle
est associée, une condition logique spécifiée est vraie (voir chronogramme 2 ci-dessous). Ces
actions conditionnelles sont particulièrement importantes car elles permettent, dans une étape,
de réaliser une combinatoire locale en vue, par exemple, d'exécuter l'action seulement pendant
un certain temps, ou après un certain temps d'activité de l'étape (voir les chronogrammes 3 et
4 ci-dessous).

 Action : pour maintenir la continuité d'une action devant se prolonger pendant


l'activité de plusieurs étapes, il est possible :

 de répéter l'action continue dans toutes les étapes concernées ;


 de mémoriser l'action par des fonctions mises à 1 (SET) et mises à zéro (RESET).

33
La figure 4 ci-dessous présente ces différentes méthodes équivalentes de maintien d'une
action sur plusieurs étapes.

b. Nature des réceptivités

Il s'agit toujours du résultat d'une expression booléenne unique pouvant faire intervenir

1. Des états de variables booléennes (état direct, front, fin de temporisation...)


2. Des comparaisons sur des valeurs numériques.
3. Des tests sur les états actifs d'étapes (permis mais à éviter pour une meilleure
lisibilité).
4. etc.

34
c. Macro-étapes
Une macro-étape est un moyen de représentation d'un ensemble unique de transitions et
étapes en une seule étape : la macro-étape. Une macro-étape Mi peut être complètement
remplacée par son expansion qui contient une étape d'entrée Ei et une de sortie Si. (voir image
ci-contre).

Ce moyen de représentation peut donc être considéré comme un « zoom » qui permet de
simplifier la lecture de Grafcet de taille importante. Une expansion ne peut être utilisée qu'une
seule fois : son utilisation est unique et elle ne doit pas être confondue avec un sous-
programme, à l'instar d'autres langages de programmation.

35
d. Exemple
Voici par exemple une partie de grafcet pour effectuer 5 perçages dans une pièce (sur l’image
il y en a 8).

Action A : perçage d’un trou (descente et remontée du foret).


Action B : rotation de la pièce d’un cinquième de tour.

La situation initiale correspond à la situation S = {3}.


Si l’étape 3 est active, la transition 3 → 4 est validée.
Le compteur C1 est mis à zéro (action interne à la PC).
Si les actions A et B sont terminées, le compteur C1 mis à zéro et l’ordre de départ de cycle
donné, l’expression logique de la réceptivité correspondante est vraie.
La transition 3 → 4 est franchie.
L’action A et l’action B sont exécutées 5 fois. Ensuite le GRAFCET est réinitialisé.

36
2 Passage du grafcet au ladder
Pour transférer la logique « Grafcet » vers un programme écris en « ladder » il suffit , pour
chacune des étapes, d’identifier les conditions d’activations « CAXn » et les conditions de
désactivations « CDXn » (Xn étant le numéro de l’étape concernée.
Exemples :

37
A. Gestion des modes Marche/Arrêt et des Arrêts d’urgences

B. Pour les étapes initiales :

C. Pour les étapes NON initiales :

D. Pour les actions associées à une étape :

38
E. Exemple traduisez en ladder le « grafcet » suivant :

1) Effectuer le tableau des CA et des CD des étapes tenez compte de la variable


Init sans tenir compte des arrêts d’urgence « doux » et « dur ».
2) Ecrivez en langage ladder.

F. Remarques importantes
Les exemples ci-dessus reprennent la programmation en grafcet d’une manière « puriste ».
Il est possible de limiter le nombre de lignes de programmation en utilisant des « bascules
R/S » avec priorité au set. Si le programme est assez petit on peut également placer les actions
correspondantes aux étapes derrière les « bascules R/S ». Ce qui donne dans le cas d’une
étape NON initiale:

39
G. Application : les trois lampes
On dispose d’un bouton « poussoir : INT_1 ». A la première pression la première lampe
s’allume, à la deuxième pression la première et la deuxième lampe s’allument, à la troisième
pression les trois lampes seront allumées et enfin à la quatrième pression les trois lampes
s’éteignent. Evidemment on doit pouvoir recommencer l’opération.
Seules les instructions « non » ; « et» ; « ou » ; « set » et « reset » seront utilisées.
Une fois l’API configuré (adresse IP et appareil reconnu, voir début du cours) vous
effectuerez les opérations suivantes :
5. Creer la table de variables standard :

6. Cliquer sur « Ajouter un nouveau bloc » et ajouter FB1.


7. Ecrire dans « L’OB1 », la première ligne du réseau 1.

INT_1.N(L1).N(L2).N(L3) INT1.L1.N(L2).N(L3) INT_1.L1.L2.N(L3) INT_1.L1.L2.L3


3 S(L1) 4 S(L2) 5 S(L3) 6 R_L1.R_L2.R_L3
=1

8. Dans le « FB1 », écrire les variables d’étapes comme variables locales afin de toujours
utiliser les mêmes variables dans tous les « FB ».

40
9. Programmer le tableau suivant :

Xi CAXi CDXI
0 VALEUR X3+X4+X5+X6
DEFAUT=1
3 X0.INT_1.N(L1). X0
N(L2). N(L3)
4 X0.INT_1.L1. X0
N(L2). N(L3)
5 X0.INT_1.L1. L2. X0
N(L3)
6 X0.INT_1.L1.L2.L3 X0

Et ensuite :
Si X3 alors S_L1
SI X4 alors S_L2
SI X5 alors S_L3
SI X6 alors R_L1, R_L2, R_L3

10. Constater ce qui ne fonctionne pas et corriger le « grafcet ».


11. Corriger le tableau et programmer en ladder.
12. Une fois que le programme fonctionne, ajouter un « FB2 » et ensuite ajouter la 2ème
ligne dans l’OB1. Et écrire le programme qui utilise l’instruction :

41
Vous obtiendrez l’explication de l’instruction « P » en cliquant sur « Opération
logique » et en laissant la souri sur « P ». Il s’agit de discerné lorsque l’on appuie sur
« INT_1 » et non quand on « lâche le bouton ».

3 Exercice : Les trois halls

Ch. 7 Blocs de fonction (FC) - paramétrages

 A l’issue de ce chapitre l’étudiant maîtrisera les sous-programmes paramétrés.

Une fonction (FC) est un bloc de code qui exécute typiquement une opération spécifique sur
un ensemble de valeurs d'entrée. La FC stocke les résultats de cette opération dans des
adresses de mémoire.

Utilisez des FC pour les tâches suivantes :


● Exécution d'opérations standard et réutilisables, par exemple pour des calculs
mathématiques
● Exécution de fonctions technologiques, par exemple pour des commandes individuelles à
l'aide d'opérations logiques sur bits.

Un FC peut également être appelé plusieurs fois en différents points d'un programme.
Cette réutilisation simplifie la programmation de tâches revenant souvent.

Une FC ne comporte pas de bloc de données (DB) d'instance associé. La FC se sert de la pile
des données locales pour les données temporaires utilisées pour effectuer l'opération.

Les données temporaires ne sont pas sauvegardées. Pour stocker les données de manière
permanente, affectez la valeur de sortie à une adresse de mémoire globale, un mémento M ou
un DB global par exemple.
Ecrivez le programme suivant :
 Reprenez la table des variables écrite ci-dessous.
 Ajouter un « FC1 »
 Dans « FC1 » inscrivez les paramètres comme indiqué ci-dessous dans « Input » et
« Output ».
 Ecrire le réseau du FC1.
 Ecrire l’OB1.
 Ajouter la table de visualisation.
 Se placer en ligne et forcer les variables
Vous pouvez constater que le FC1 se comporte comme un sous-programme que vous pouvez
appeler plusieurs fois, à partir de votre programme principal, et ce, avec des paramètres
différents (les variables peuvent être différentes).

42
Dans FC1 :

Dans OB1 :

43
Ch. 8 Entrées et sorties analogique

Les entrées et les sorties analogiques sont simplement des « mots » particuliers qui sont codés
sur 12 bits + 1 bit de signe (dans le cas de notre signal board). Pour d’autres modules, on peut
obtenir d’autres codages, par exemple sur 13 bits ou sur 14bits.
Dans notre cas, pour pouvoir utiliser le « signal board », il faut :
 Clic droit sur « API_1 », « Propriétés », « Signal Board », « Sortie analogique »,
« Adresse ».

44
 Vous repérez l’adresse (QW80) et vous paramétrez en tension +/- 10V, dans « Général »
vous observez que le codage est sur 12 bits.
Dans le manuel système il est indiqué la représentation des entrées analogique pour la tension:

Vous pouvez observer que le chiffre 27648 correspond à + 10V.


Ecrivons le programme suivant et à l’aide d’une table de visualisation effectuons plusieurs
essais.

45
Dans l’OB1

Pour contrôler la tension de sortie, il vous suffit de brancher un voltmètre entre OM et 0


(signal Board).

46
Ch. 9 Quelques instructions utiles
1 Contact à ouverture

L'opérande "TagOut" est mis à 1 lorsque l'une des conditions suivantes est remplie :

 Les opérandes "TagIn_1" et "TagIn_2" sont à l'état logique "1".


 L'opérande "TagIn_3" est à l'état logique "0".

2 Inverser le résultat logique

L'opérande "TagOut" est mis à 0 lorsque l'une des conditions suivantes est remplie :

 L'opérande "TagIn_1" fournit l'état logique "1".


 Les opérandes "TagIn_2" et "TagIn_3" sont à l'état logique "1".

3 Négation de la « bobine »

L'opérande "TagOut_1" est mis à 0 lorsque l'une des conditions suivantes est remplie :

 Les opérandes "TagIn_1" et "TagIn_2" fournissent l'état logique "1".


 L'opérande "TagIn_3" est à l'état logique "0".

4 SET_BF : Mise à 1 champ de bits


L'instruction "Mise à 1 champ de bits" vous permet de mettre à 1 plusieurs bits à partir d'une
adresse spécifiée.

Vous déterminez le nombre de bits à mettre à 1 avec la valeur de <opérande1>. L'adresse du


premier bit à mettre à 1 est définie par <opérande2>. Si la valeur de <opérande1> est
supérieure au nombre de bits dans un octet sélectionné, les bits de l'octet suivant sont mis à 1.
Les bits restent à 1 jusqu'à ce qu'ils soient remis à 0 de manière explicite, par une autre
instruction par exemple.

47
L'instruction est exécutée uniquement lorsque le résultat logique (RLO) à l'entrée de la bobine
est égal à "1". L'instruction n'est pas exécutée si le RLO à l'entrée de la bobine est égal à "0".

L'instruction "Mise à 1 champ de bits" peut être placée au début ou à la fin du circuit de
courant, même sans opération amont.

Paramètre

Le tableau suivant montre les paramètres de l'instruction "Mise à 1 champ de bits" :

Paramètre Déclaration Type de Zone de Description


données mémoire
<opérande1> Input UINT Constante Nombre de
bits à mettre
à1
<opérande2> Output BOOL I, Q, M Pointeur sur
le premier
Pour un bit mis à 1.
DB voir
manuel

5 Reset_BF : mise à 0 un champ de bits

Idem que ci-dessus mais mise à 0 au lieu de mise à 1.

6 Bascule mise à 1/0 (SR = priorité Reset, RS = priorité set)

Les opérandes "TagSR" et "TagOut" sont mis à 1 lorsque les conditions suivantes sont
remplies :

 L'opérande "TagIn_1" fournit l'état logique "1".


 L'opérande "TagIn_2" fournit l'état logique "0".

Les opérandes "TagSR" et "TagOut" sont mis à 0 lorsqu'une des conditions suivantes est
remplie :

 L'opérande "TagIn_1" fournit l'état logique "0" et l'opérande "TagIn_2" fournit l'état
logique "1".
 Les opérandes "TagIn_1" et "TagIn_2" fournissent l'état logique "1".

48
7 --|P|-- : Interroger front montant d'un opérande

L'opérande "TagOut" est mis à 1 quand les conditions suivantes sont remplies :

 Les opérandes "TagIn_1", "TagIn_2" et "TagIn_3" fournissent l'état logique "1".


 Il y a un front montant à l'entrée "TagIn_4". L'état logique de l'interrogation
précédente est mémorisé dans le mémento de front "Tag_M".
 L'état logique de l'opérande "TagIn_5" est "1".

8 --|N|-- : Mise à 1 de l'opérande si front descendant du signal


Idem que ci-dessus mais front descendant.

9 ---( RT )--- : Réinitialiser temporisation

Quand l'état logique de l'opérande "Tag_Input_1" passe de "0" à "1", l'instruction "Retard à la
montée" est exécutée. La durée enregistrée dans le bloc de données d'instance "TON_DB" est
démarrée pour la durée indiquée par l'opérande "Tag_PT".

Si les opérandes "Tag_Input_2" et "Tag_Input_3" fournissent l'état logique "1", l'instruction


"Réinitialiser temporisation" est exécutée et la durée enregistrée dans le bloc de données
"TON_DB" est mise à 0.

10 ---( PT )--- : Charger la durée de la temporisation

Quand l'état logique de l'opérande "Tag_Input_1" passe de "0" à "1", l'instruction "Retard à la
montée" est exécutée. La temporisation CEI enregistrée dans le bloc de données d'instance
"TON_DB" est démarrée pour la durée indiquée par l'opérande "Tag_PT".

Lorsque l'opérande "Tag_Input_2" est à l'état logique "1", l'instruction "Charger la durée de la
temporisation" est exécutée. L'instruction écrit la durée "Tag_PT_2" dans le bloc de données
d'instance "TON_DB" et écrase ce faisant la valeur de l'opérande "Tag_PT" dans le bloc de
49
données. L'état logique de l'état de la temporisation peut s'en trouver modifié à la prochaine
interrogation.

11 Comparaisons

Vous utilisez les instructions de comparaison pour comparer deux valeurs ayant le même type
de données. Lorsque la comparaison est vraie, le contact de comparaison CONT est activé.
Lorsque la comparaison est vraie, la sortie de la boîte de comparaison LOG est VRAIE.

12 Transferts

Utilisez les instructions de transfert pour copier des éléments de données à une nouvelle
adresse mémoire et les convertir en un autre type de données. Les données source ne sont pas
modifiées par le processus de transfert.
 MOVE : Copie à une nouvelle adresse un élément de données stocké à l'adresse
indiquée.
 MOVE_BLK : Copie de zone interruptible qui copie une zone d'éléments de données
à une nouvelle adresse.
 UMOVE_BLK : Copie de zone contiguë qui copie une zone d'éléments de données à
une nouvelle adresse.

50
13 ---( JMP ) : Saut si RLO = 1

Quand l'opérande "TagIn_1" fournit l'état logique "1", l'instruction "Saut si RLO = 1" est
exécutée. L'exécution linéaire du programme est alors interrompue et se poursuit dans le
réseau 3, identifié par le repère de saut CAS1. Quand l'entrée "TagIn_3" fournit l'état logique
"1", la sortie "TagOut_3" est remise à 0.

51
14 Décalages et rotations
A. Décalages

Vous utilisez les instructions de décalage pour décaler le motif binaire du paramètre IN. Le
résultat est affecté au paramètre OUT. Le paramètre IN indique le nombre de positions de bit
à décaler :
 SHR : Décaler le motif binaire vers la droite
 SHL : Décaler le motif binaire vers la gauche

Cliquez sous le nom de la boîte et sélectionnez un type de données dans la liste déroulante.

 Pour N=0, aucun décalage n'est effectué et la valeur IN est affectée à OUT.
 Des zéros sont insérés dans les positions de bit vidées par l'opération de décalage.
 Si le nombre de positions à décaler (N) dépasse le nombre de bits dans la valeur cible
(8 pour Byte, 16 pour Word, 32 pour DWord), toutes les valeurs de bit d'origine sont
décalées et remplacées par des zéros (zéro est affecté à OUT).
 ENO est toujours VRAI pour les instructions de décalage.

B. Rotations

Vous utilisez les instructions de rotation pour opérer une rotation sur le motif binaire du
paramètre IN. Le résultat est affecté au paramètre OUT. Le paramètre IN définit le nombre de
positions de bit à faire tourner.
 ROR : Rotation du motif binaire vers la droite
 ROL : Rotation du motif binaire vers la gauche
Cliquez sous le nom de la boîte et sélectionnez un type de données dans le menu déroulant.

52
 Pour N=0, aucune rotation n'est effectuée et la valeur IN est affectée à OUT.
 Les données binaires objet de la rotation qui sortent d'un côté de la valeur cible sont
insérées de l'autre côté de la valeur cible de sorte qu'aucune valeur binaire d'origine
n'est perdue.
 Si le nombre de positions de bit à faire tourner (N) dépasse le nombre de bits dans la
valeur cible (8 pour Byte, 16 pour Word, 32 pour DWord), la rotation est quand même
exécutée.
 ENO est toujours VRAI après l'exécution des instructions de rotation.

53
Ch. 10 Exercices
1 Ventilation de 3 secteurs
Travail sur bytes. Un opérateur lit les capteurs d'humidités et de températures. Il effectue le
cycle comme suit:
- si nécessaire, il actionne I0 (bistable) et les 3 premiers ventilateurs se mettent à tourner
- si nécessaire, il actionne I1 (bistable) en plus de I0 et les 5 premiers ventilateurs
fonctionnent
-si nécessaire, il actionne I2 (bistable) en plus de I0 et I1 et les 5 premiers ventilateurs plus le
7 se mettent en fonctionnement
Le 6ème ventilateur est un ventilateur de secours et il sera actionné en cas d'urgence à l'aide
de I3 (en plus des autres).
Pour terminer le cycle l'opérateur actionne les interrupteurs en sens inverse.
Un interrupteur général sera prévu.
La programmation s'effectuera dans OB1 et FB1.
La logique s'effectuera en pilotant les 8 sorties à la fois de manière à limiter les lignes de
programmation (travailler avec des bytes).

2 Clignoteur
a) Effectuer un clignoteur dont la lampe s’allume trois secondes et s’éteint deux secondes
à l’aide d’une seule temporisation.
b) Effectuer un deuxième clignoteur qui s’allume et s’éteint toutes les secondes à l’aide
d’un mémento de cadence.
Compte tenu de la simplicité le programme s’écrira dans l’OB1 (pas de grafcet demandé).

3 Escalator1
Deux escalators sont disposés à la suite l’un de l’autre, ils sont séparés par un palier.
Une cellule de détection est située au bas du premier escalator. Si une personne est détectée,
alors le premier escalator se met en route durant 7 secondes (les délais sont diminués pour les
besoin de l’exercice), on estime le temps de traverser le palier à 1 seconde et le deuxième
escalator démarre pour une durée de 4s. Il est évident, que toute personne détectée doit arriver
« en haut ». Dans ce premier exemple vous utiliserez une seule temporisation et les deux
escalators démarreront en même temps.
Données : cellule = I0.0, Escalator1 = Q1.0 et Escalator2 = Q1.1

4 Escalator2
Idem que l’exercice « Escalator1 » mai dans ce programme, vous utiliserez plusieurs
temporisations. Afin d’économiser de l’énergie, l’escalator 2 doit démarrer après 8 secondes.

54
5 Le parking
On souhaite placer à l’entrée d’un parking un panneau indiquant la présence ou l’absence de
places disponibles. Q0.0 indique qu’il reste des places dans le parking et Q0.1 représente
l’indication « parking complet ».
L’entrée et la sortie du parking s’effectuent par le même passage. La détection de l’entrée et
de la sortie d’un véhicule s’effectue à l’aide de deux capteurs disposés à 50 cm l’un de l’autre.
Les capteurs sont de type « normalement ouvert ». Par exemple lorsqu’un véhicule entre : le
capteur C1 détecte le véhicule en premier lieu, ensuite le capteur C2 réagit. A ce moment, les
deux capteurs C1 et C2 détectent le véhicule et ensuite C1 ne détecte plus de véhicule et enfin
C2 ne détecte plus de véhicule. Pour la sortie les capteurs réagissent en sens inverse. Pour
l’exercice on disposera d’un parking de 8 places.
Lorsqu’il y a une coupure de courant, les voitures doivent pouvoir entrer et sortir du parking.
Lorsque le courant est rétabli, on compte le nombre de véhicules restant dans le parking. Ce
nombre sera entré via MW2, en actionnant l’interrupteur INIT. On peut donc « réactualiser »
à tous moment le nombre de véhicules réellement garé dans le parking.
Vous programmerez en FB1 et vous utiliserez un seul compteur.
Données :
 Libre= Q0.0 Complet = Q0.1
 C1 = I0.0 C2 = I0.1
 INT GENERAL = I0.4 MW2 = Nombre_actu
 INIT = I0.6 (en l’actionnant on indique le nombre réel de véhicules dans le parking)

6 Les trois chaînes de production


Trois chaînes produisent des pièces. Un capteur est placé en fin de chaque chaîne afin de
détecter toutes pièces produites (I0, I1 et I2). Le programme compte chaque pièce produite sur
l’ensemble des trois chaînes en utilisant des « mots » (les mots s’appellerons : Pièces chaîne
1, Pièces chaîne 2, Pièces chaîne 3 et Total Pièces produites). Les mots sont nécessaires car il
faut pouvoir compter jusque 65 000 pièces au total. Normalement la visualisation s’effectue
par paquet de 1000 pièces.
Un interrupteur I7 initialise la production. Le temps de production doit être visible dans une
table de visualisation. Le temps total de production est mémorisé dans le double mot :
« Temps de production mémorisé ».
Pour notre exemple nous travaillerons avec 10 pièces et donc 10 led.
La visualisation s’effectue de deux manières :
 La production totale est visualisée par une « led » qui se déplace d’une unité de droite
vers la gauche chaque fois que « Total Pièces produites » est incrémentée de 1.
Lorsque qu’il y a 10 pièces de produites, l’ensemble des 10 leds de sortie de
l’automate clignote rapidement afin d’avertir l’opérateur qui doit réinitialiser. Vous
utiliserez le mot QW0 et l’instruction « ROR » .
 Dans une table de visualisation vous prévoirez de visualiser « QW0 » en binaire,
« temps de production » et « temps de production mémorisé » en Durée.
Pour programmer vous utiliserez un OB1 qui appelle un FB. Je vous propose d’effectuerez le
programme en trois fois :

55
 Commencer par la partie « comptage » (Total pièces produites) sans visualisation
probablement à l’aide d’instructions « inc » (incrémente) ou « dec » (décrémente)
et/ou d’instructions mathématiques.
 Ajouter la partie visualisation à l’aide d’instruction « MOVE » et « ROR »
 Et enfin ajouter la partie « Temps de production » avec visualisation dans la table.
Vous pouvez travailler en grafcet (pas obligatoire).

7 Les trois halls


Un veilleur de nuit doit inspecter une entreprise constituée d’un couloir et de 3 halls (voir
tableau). Le veilleur agit sur des boutons « poussoir » (INT1, INT2, INT3 et INT4). Seules
les instructions « non » ; « et» ; « ou » ; « set » et « reset » seront utilisées. Le veilleur doit
obligatoirement parcourir le chemin comme indiqué ci-dessous et ne peut revenir sur ces pas.
 Une première pression sur INT1 allume le couloir.
 Une pression sur INT2 allume le hall1 et éteint le couloir.
 Une pression sur INT3 allume le hall2 et éteint le hall1.
 Une pression sur INT4 allume le hall3 ainsi que le couloir et éteint le hall2.
 Enfin une deuxième pression sur INT1 éteint l’ensemble des halls et le couloir.
L’éclairage de chaque hall et du couloir est représenté chaque fois par une seule sortie.
Une programmation s’effectuera sans « flanc montant » dans FB1 et OB1 et contiendra un
appel de FB1qui s’effectuera à l’aide d’un interrupteur bistable « INT5 ».
Une autre programmation s’effectuera avec « flanc montant » dans FB2 (en effectuant un
copier-coller du FB1 vers FB2) et OB1 et contiendra un appel de FC2 qui s’effectuera à l’aide
d’un interrupteur bistable « INT6 ».
Le programme sera établit en utilisant un grafcet.

8 Le silo
Un silo est muni d’une vanne de vidange. La matière se déverse sur une bande transporteuse
qui l’achemine vers un camion (voir schéma au tableau). Un détecteur détecte la présence du
camion.
Lors de l’ordre de vidange, un klaxon retentit durant 1S, la bande transporteuse se met en
mouvement et elle atteint sa vitesse après 2S, la vanne de vidange s’ouvre alors. Après
disparition de l’ordre de vidange, la bande transporteuse se vide alors pendant 10S.
Données :
 ARRET_URGENCE = I1.4 (URG)
 INT_GENERALE = I1.5 (GEN)
 ORDRE_VIDANGE = I0.0 (ORD)
 DETECTEUR_CAMION = I0.1 (DET)
 KLAXON = Q0.0 (KLA)
 BANDE_TRANSP = Q0.1(MOT)
 VANNE = Q0.4 (VAN)
Toutes les sécurités doivent être prévues (départ inopiné du camion, coupure du courant,
vidage manuel de la bande,….). Il faut du courant pour maintenir la vanne ouverte, s’il n’y a
pas de courant la vanne se ferme automatiquement.

56
9 Les ventilateurs - visualisation
Onze groupes de trois ventilateurs doivent être contrôlés à l’aide de panneaux de
visualisation. Chaque groupe dispose de son panneau de visualisation comportant trois
lampes.
Le fonctionnement de chaque panneau est le suivant :
 Si aucun des trois ventilateurs du groupe fonctionne la lampe A clignote par 0,5S.
 Si un seul des trois ventilateurs du groupe fonctionne la lampe A s’allume de suite.
 Si 2 ventilateurs sur 3 fonctionnent, la lampe B s’allume après 5S.
 Si les 3 ventilateurs du groupe fonctionnent, la lampe C s’allume de suite.
Pour notre exercice, nous utiliserons deux groupes et donc deux panneaux de visualisation.
Les capteurs indiquant le fonctionnement des ventilateurs seront :
 INT0 = I0.0 INT1 = I0.1 INT2 = I0.2
 INT4 = I0.4 INT5 = I0.5 INT6 = I0.6
Les lampes correspondantes aux panneaux de signalisation sont :
 GR1_0-1VENT. = Q0.0 GR1_2VENT. = Q0.1 GR1_3VENT. = Q0.2
 GR2_0-1VENT = Q0.5 GR2_2VENT. = Q0.6 GR2_3VENT. = Q0.7
Pour la programmation, vous utiliserez un bloc FB1 avec comme paramètres « Input » : trois
entrées et comme paramètres « Output » : trois sorties.
Le FB1 sera appelé deux fois pour indiquer si un, deux ou trois ventilateurs fonctionnent par
groupe.
La visualisation n’est pas un programme « séquentiel » aussi, bien que le système de
programmation « grafcet » fonctionne, l’écriture du programme sera plus longue. Dans ce
cadre, si vous le désirez, vous pouvez écrire directement le programme dans l’OB1 et le FB1
sans passer par les étapes.

Ch. 11 Exercices complémentaires


10 Commande de pompes

Le niveau de liquide contenu dans un réservoir est contrôlé par trois détecteurs N1, N2, N3.
L’alimentation de ce réservoir s’effectue par trois pompes P1, P2, P3 de la façon suivante :
-si le niveau N1 est découvert (N1=0), une première pompe est mise en marche
-si le niveau N2 est découvert (N1=0, N2=0), une deuxième pompe est mise en marche
-si le niveau N3 est découvert (N1=0, N2=0, N3=0), la troisième pompe est mise en marche.
Le nombre de pompes en service sera égal au nombre de niveaux découverts. Effectuer le
GRAFCET de commande des pompes et écrivez le programme.

57
CAPTEURS ACTIONNEURS
niveau n1 recouvert I1 pompe P1 P1
niveau n2 recouvert I2 pompe P2 P2
niveau n3 recouvert I3 pompe p3 P3

11 Traitement de surfaces

Une installation de traitement de surface comprend un chariot automoteur desservant 4 bacs,


un poste de chargement et un poste de déchargement. Des capteurs _sq1_ à _sq6_ permettent
le positionnement au-dessus des différents postes. L'opérateur après avoir accroché les pièces
à traiter sur le cadre situé au point de chargement, en position basse, donne l'ordre de départ
cycle. Le chariot doit alors effectuer le cycle suivant :

58
Au poste de déchargement l'opérateur décroche les pièces et renvoie le chariot avec l'ordre
retour.
Effectuer le grafcet et écrivez le programme en utilisant que les deux premiers bacs et
ensuite déchargement et retour.

59
12 Priorités

capteurs Actions
a1 :présence pièce sur ligne 1 G : déplacement de la navette vers la
gauche
a2 : présence pièce sur ligne 2
D : déplacement de la navette vers la droite
a3 :présence pièce sur ligne 3
R1 : rotation tapis ligne 1
an :présence pièce sur navette
R2 : rotation tapis ligne 2
ae : présence pièce sur tapis évacuation
R3 : rotation tapis ligne 3
p1, p2, p3, pe : détecteurs positions de la
navette Rn : rotation tapis navette

Une navette transporte un par un les produits fabriqués par 3 lignes de fabrication
indépendantes vers un tapis roulant d'évacuation selon le schéma ci-dessus. Il faut donner la
priorité à la ligne la plus éloignée.
Effectuer le grafcet et écrivez le programme.

60
13 Travail à la chaîne
Soit une chaîne de remplissage de bidons d'huile. Un tapis roulant se déplaçant par saccades,
s'arrêtant à chaque nouvel appui de la came sur le capteur final. Le tapis est alimenté
manuellement sur le poste marqué entrée (de temps en temps il manque des bidons). Trois
postes sont prévus : remplissage (R), bouchage (B) et enfoncement (E).

Un seul capteur ("entrée") détecte la présence d'un bidon en début de chaîne. On désire faire
les 3 opérations simultanément, sauf s'il n'y a pas de bidon sous le poste. Il n'est pas
nécessaire de rajouter des capteurs. On suppose que le tapis est vide lors de l'initialisation.

61
14 Chaîne de manutention et de traitement

Un poste de dégraissage est composé de trois postes : le dégraissage en lui-même,


entièrement mécanisé (un panier, suspendu à un chariot, descend dans la cuve les pièces à
traiter, attend 30s et les ressort). A gauche, un poste de chargement manuel : Dès qu’il a
chargé un panier de pièces, l’opérateur appuie sur le bouton "dcat" (départ cycle avec
trempage). Si le panier est présent (grâce à un capteur pp), il est levé, le chariot va de C1 à
C2, le panier est trempé pendant 30s puis il est amené au poste de déchargement (à droite). Un
second opérateur décharge le panier, puis appuie sur le bouton "retour" qui ramène le tout
(panier compris) en position initiale. Le repos, au chargement et au déchargement, se fait en
position basse.

Il y a en plus deux situations particulières : Si le chariot est à gauche, et sans panier,


l’opérateur de déchargement peut appuyer sur le bouton "appel" qui lui amène le chariot, il y
met un panier (vide) et à l’appui sur "retour" il est ramené (qu’il y ait un panier ou non). Il y a
aussi, pour l’opérateur de chargement, un second bouton "dcst" (départ cycle sans trempage)
qui permet soit de transporter un panier vide vers le déchargement, soit de transférer des
pièces sans les tremper.

62
15 Tri de caisses

Un dispositif automatique destiné à trier des caisses de deux tailles différentes se compose
d’un tapis amenant les caisses, de trois poussoirs et de deux tapis d’évacuation.

Le poussoir P1 pousse les petites caisses devant les poussoirs P2 qui à son tour les transfère
sur le tapis 2, alors que les grandes caisses sont poussées devant les poussoirs P3, ce dernier
les évacuant sur le tapis 3.

Pour effectuer la sélection des caisses, un dispositif de détection placé devant le poussoir P1
permet de reconnaître sans ambiguïté le type de caisse qui se présente (a=1 si petite caisse,
b=1 si grande caisse).

Représenter le GRAFCET de commande de cette machine et effectuer la programmation.

63
capteurs actionneurs
I0.0 : présence pièce a
I0.1 : présence pièce b
I0.2 : vérin 1 rentré Q0.0: rentrée vérin 1
I0.3 : vérin 1 position intermédiaire Q0.1: sortie vérin 1
I0.4 : vérin 1 sorti
I0.5 : vérin 2 rentré Q0.4: rentrée vérin 2
I0.6 : vérin 2 sorti Q0.5: sortie vérin 2
I1.1 : vérin 3 rentré Q1.0: rentrée vérin 3
I1.2: vérin 3 sorti Q1.1: sortie vérin 3

16 Poste de perçage

Un plateau tournant dessert 3 postes de travail :


-un premier poste de chargement
-un deuxième de perçage
-un troisième de contrôle et d’évacuation des pièces percées.
Un vérin permet la rotation de 120° du plateau supportant les pièces à usiner et son
indexation, c’est à dire son blocage précis après chaque rotation.
Le contrôle du perçage s’effectue par un testeur qui doit descendre en position basse, si le
trou est correctement percé. Si cela n’est pas réalisé, tout le système se bloque, testeur en
position haute, de façon à ce que l’opérateur puisse enlever la pièce défectueuse avant de
réarmer manuellement le système. Effectuer le grafcet et écrivez le programme.

64
capteurs actionneurs
dcy : départ cycle « Clignote lorsque recul ou descend »
Ch_av: chargeur avancé CH : avance chargeur
Ch_rec: chargeur reculé CH : recul chargeur (clignote)
Sr_av: vérin serrage avancé SR : avance vérin serrage
Sr_rec : vérin serrage reculé SR : recul vérin serrage (clignote)
Per_haut : perceuse en haut Perceuse : montée perceuse
Per_bas : perceuse en bas Perceuse : descente perceuse (clignote)
Test. bas: testeur en bas TE : descente testeur (clignote)
Test. haut : testeur en haut TE : montée testeur
Ev_av : vérin évacuation avancé EV : avance vérin évacuation
Ev_rec : vérin évacuation reculé EV : recul vérin évacuation (clignote)
Rea : réarmement après pièce mauvaise
Vr_av : vérin rotation plateau avancé VR : avance vérin rotation plateau
Vr_rec : vérin rotation plateau reculé VR : recul vérin rotation plateau (clignote)

17 Presse à emboutir et son évacuation

Une presse à emboutir est alimentée par un dispositif formé par un tapis supérieur amenant les
pièces dans un retourneur qui les retourne sur un tapis inférieur. Ce dernier élève les pièces
jusqu’au niveau de la presse grâce à un ascenseur.

Après emboutissage une pince prend la pièce, qui a été préalablement surélevée par l’éjecteur,
pour la déposer sur le tapis d’évacuation.

Effectuer le grafcet et écrivez le programme.

Capteurs Actions
Départ cycle
Pièce dans retourneur Rotation tapis supérieur
Retourneur reculé Recul retourneur
Retourneur avancé Avance retourneur

65
Présence pièce sur ascenseur
Ascenseur en haut Montée ascenseur
Ascenseur en bas Descente ascenseur
Présence pièce sous presse Rotation tapis inférieur
Presse en bas Descente presse
Presse en haut Montée presse
Pince avancée Avance pince
Pince reculée Recul pince

18 Ressource ou sémaphore
Deux wagonnets alimentent le skip de déchargement d’un haut-fourneau en empruntant une
voie commune.

Le cycle correspondant à un chariot est le suivant :


-dès que l’opérateur donne l’ordre de " départ cycle " (Dcy), le wagonnet considéré effectue
automatiquement son chargement et démarre au signal fin de chargement (Fc).
-le wagonnet se dirige ensuite vers la partie commune où il s’arrête à une position d’attente si
la voie commune est occupée, sinon il faut positionner l’aiguillage sur la position correcte et
le chariot continue ;
-arrivé à la position de déchargement automatique, il attend le temps nécessaire avant de
retourner à la position initiale (attente 10s).
-chaque déchargement de wagonnet est comptabilisé en vue d’une gestion journalière.
En utilisant les capteurs et les actions suivantes:
capteur commande
départ wagonnet A dcya avance wagonnet A ava
départ wagonnet B dcyb avance wagonnet B avb
commande aiguillage
position d'attente A paa aga
sur pos A
commande aiguillage
position d'attente B pab agb
sur pos B

66
aiguillage en A paga retour wagonnet A ara
aiguillage en B pagb retour wagonnet B arb
wagonnet en C pdc
fin de déchargement fdch
wagonnet A en position
pca
de chargement
wagonnet B en position
pcb
de chargement

On peut écrire par exemple le GRAFCET ci-dessous qui se décompose en:


-un GRAFCET pour la voie A
-un GRAFCET pour la voie B
-un GRAFCET pour déterminer si la voie est libre
La voie commune est une ressource physique que les 2 utilisateurs ne peuvent pas utiliser en
même temps. Dans les problèmes de ce type la disponibilité de la ressource commune ne peut
pas être détectée par un capteur, mais uniquement par l'état du GRAFCET.

19 Emboutissage de tubes de cuivre

Après appui sur dcy (départ cycle), on serre le tube par le vérin A. Puis on effectue la
première passe d’emboutissage par un aller-retour de B. Ensuite, le support du vérin B est
déplacé grâce à la sortie du vérin C, puis on effectue la deuxième passe d’emboutissage. On
desserre ensuite la pièce tout en remettant les vérins en position initiale. En temps masqué
(c’est à dire pendant que d’autres opérations sont effectuées), le vérin D doit effectuer un
marquage du tube, mais pas pendant la passe de finition (deuxième passe de B). Grâce à des
distributeurs tels que celui schématisé à côté du vérin D, les vérins sont tous "double effet" :

67
la sortie du vérin A est notée A+, sa rentrée A-. Les capteurs de fin de course du vérin sont
notés a+ et a-.

20 Poste de perçage

Un plateau tournant dessert 3 postes de travail : le premier de chargement, le seconde de


perçage et le dernier de contrôle et d’évacuation des pièces percées. Un vérin permet la
rotation de 120° du plateau extérieur supportant les pièces à usiner, et son indexation, c’est à
dire son blocage précis après chaque rotation. Le contrôle de perçage s’effectue par un testeur
qui doit descendre en position basse si le trou est correctement percé. Si cela n’est pas le cas
(en fait pas s’il n’est pas à la hauteur prévue au bout d’un certain temps), tout le système se
bloque, testeur en position haute, de façon à ce que l’opérateur puisse enlever la pièce
défectueuse avant de réarmer manuellement le système.
Les trois postes fonctionnent évidemment simultanément, et vous supposerez dans un premier
temps que vous trouvez toujours la machine dans l’état initial qui vous convient (en
particulier pièces en cours de cycle disponibles).
Vous gérerez les actions suivantes :
 alimentation : avance puis recul du chargeur ;
 perçage : serrage, descente, montée, desserrage, rotation perceuse ;
 test : descente, montée, avance et recul de l’évacuateur Pour les capteurs, créez ce que
vous voulez, mais utilisez des noms explicites.
Une fois le Grafcet de fonctionnement normal terminé, vous pouvez prévoir une modification
afin qu’on puisse demander la fin de la production en terminant les pièces en cours, et une
initialisation à partir d’une machine vide (on peut rajouter des Grafcets)

68
21 Presse à découper

Une presse sert à découper et pré-former des emballages en carton à partir d’un rouleau. La
presse comprend (de gauche à droite dans le schéma) :
 un mandrin sur lequel est monté le rouleau de carton (sa mise à niveau s’effectue
mécaniquement),
 des rouleaux d’entraînement tous couplés à un même moto-réducteur ME (chaque tour
de came correspond à l’avance d’un pas du carton),
 une presse dont le moteur PR tourne en permanence, entraînant un volant d’inertie. La
descente de la presse se fait par la commande EMB qui déclenche (assez brusquement)
un embrayage.
 un tapis d’évacuation commandé par le poste suivant (mais un capteur peut vous dire
s’il y a la place pour y poser un carton découpé)
Au début du cycle, le carton doit préalablement avancer de deux pas avant d’effectuer la
première découpe. Ensuite, en régime établi, chaque avance de carton sera suivi d’une
découpe, et ceci tant qu’il reste du carton. Lorsque l’on détecte la fin du rouleau (S2 passe à
0), il reste néanmoins de quoi faire encore deux découpes avant d’arrêter le cycle (et PR).
On pourrait utiliser des compteurs, mais (comme on ne compte que jusqu’à 2) je vous
demande de ne pas en utiliser ici.

69
22 Presse à emboutir

Une presse à emboutir est alimentée par un dispositif formé par un tapis supérieur (que l’on
fera avancer tant que le dispositif peut accepter de nouvelles pièces), amenant les pièces dans
un retourneur, qui les retourne sur un tapis inférieur. Ce dernier élève les pièces jusqu’au
niveau de la presse grâce à un ascenseur, puis les introduit dans la presse (nous négligeons ici
les problèmes de précision de la mise en position). Après l’emboutissage, la pièce est
soulevée par l’éjecteur, afin de pouvoir être retirée par la main de fer qui peut la déposer sur le
tapis d’évacuation (qui l’évacue si un capteur nommé « dispo » lui précise que c’est possible).
L’objectif est d’avoir un débit maximal, donc de faire un maximum d’actions simultanées : on
pourra avoir en même temps une pièce sur le tapis supérieur, une autre dans le retourneur, une
sur le tapis inférieur, une dans la presse, une sur le tapis d’évacuation. Mais s’il n’y a qu’une
pièce qui arrive, elle doit être traitée complètement et immédiatement, même s’il n’y en pas
d’autres qui suivent !

70
1 Table des matières
Ch. 1 Introduction ................................................................................................................. 1
1 Introduction à l’automate S7-1200 .................................................................................. 1
Ch. 2 Step 7 basic .................................................................................................................. 3
1 Quelques outils simples ................................................................................................... 3
2 Mise en route ................................................................................................................... 4
3 Théorie_1 : Explications des bases ................................................................................. 6
Ch. 3 Théorie1_les_bases2 .................................................................................................. 10
4 Exercice_2 int. et 3 lampes - cet exercice, partie a), devra être montré au début de la
séance suivante ..................................................................................................................... 14
Ch. 4 Le grafcet ................................................................................................................... 16
1 Les principes de bases ................................................................................................... 29
2 Passage du grafcet au ladder ......................................................................................... 37
3 Application : les trois lampes ........................................................................................ 14
4 Exercice : Les trois halls ............................................................................................... 42
Ch. 5 : Les variables « bytes », « mots », « double-mots », etc… .................................... 16
Ch. 6 Les temporisations – les compteurs ........................................................................... 17
1 Fonctionnement des temporisations .............................................................................. 17
2 Fonctionnement des compteurs ..................................................................................... 24
Ch. 7 Blocs de fonction (FC) - paramétrages ..................................................................... 42
Ch. 8 Entrées et sorties analogique ..................................................................................... 44
Ch. 9 Quelques instructions utiles ....................................................................................... 47
1 Contact à ouverture ....................................................................................................... 47
2 Inverser le résultat logique ............................................................................................ 47
3 Négation de la « bobine » .............................................................................................. 47
4 SET_BF : Mise à 1 champ de bits ................................................................................. 47
5 Reset_BF : mise à 0 un champ de bits .......................................................................... 48
6 Bascule mise à 1/0 (SR = priorité Reset, RS = priorité set) .......................................... 48
7 --|P|-- : Interroger front montant d'un opérande ............................................................ 49
8 --|N|-- : Mise à 1 de l'opérande si front descendant du signal ....................................... 49
9 ---( RT )--- : Réinitialiser temporisation ....................................................................... 49
10 ---( PT )--- : Charger la durée de la temporisation .................................................... 49
11 Comparaisons ............................................................................................................ 50
12 Transferts ................................................................................................................... 50
13 ---( JMP ) : Saut si RLO = 1 ...................................................................................... 51

71
14 Décalages et rotations ................................................................................................ 52
 ENO est toujours VRAI pour les instructions de décalage. .......................................... 52
Ch. 10 Exercices .................................................................................................................... 54
1 Ventilation de 3 secteurs ............................................................................................... 54
2 Clignoteur ...................................................................................................................... 54
3 Escalator1 ...................................................................................................................... 54
4 Escalator2 ...................................................................................................................... 54
5 Le parking ..................................................................................................................... 55
6 Les trois chaînes de production ..................................................................................... 55
7 Le silo ............................................................................................................................ 56
8 Les ventilateurs - visualisation ...................................................................................... 57
9 Tri de caisses ................................................................................................................. 57
10 Poste de perçage ........................................................................................................ 64
11 Commande de pompes............................................................................................... 57
12 Traitement de surfaces ............................................................................................... 58
13 Presse à emboutir et son évacuation .......................................................................... 65
14 Priorités ...................................................................................................................... 60
15 Travail à la chaîne ...................................................................................................... 61
16 Ressource ou sémaphore ........................................................................................... 66
17 Chaîne de manutention et de traitement .................................................................... 62
18 Emboutissage de tubes de cuivre ............................................................................... 67
19 Poste de perçage ........................................................................................................ 68
20 Presse à découper ....................................................................................................... 69
21 Presse à emboutir ....................................................................................................... 70
1 Table des matières ......................................................................................................... 71

72

Vous aimerez peut-être aussi