NOTES DU COURS DE PROGRAMMATION ET DE
SUPERVISION INDUSTRIELLES

Djamba Tunda-Olembe

► To cite this version:

Djamba Tunda-Olembe. NOTES DU COURS DE PROGRAMMATION ET DE SUPERVISION INDUSTRIELLES. Licence. Cours de programmation et supervision industrielles, Lubumbashi, Congo-Kinshasa. 2023, pp.185. hal-04884491

HAL Id: hal-04884491

https://hal.science/hal-04884491v1

Submitted on 13 Jan 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
REPUBLIQUE DEMOCRATIQUE DU CONGO
ENSEIGNEMENT SUPERIEUR ET UNIVERSITAIRE
UNIVERSITE PROTESTANTE DE LUBUMBASHI

NOTES DU COURS DE
PROGRAMMATION ET SUPERVISION
INDUSTRIELLES

(BAC3 INFORMATIQUE OPTION RESEAUX ET TELECOMMUNICATIONS)

PAR MASTER ING TUNDA-OLEMBE DJAMBA
JANVIER 2023

DESCRIPTIF DU COURS DE PROGRAMMATION ET SUPERVISION INDUSTRIELLES

FACULTE : SCIENCES INFORMATIQUES

INTITULE : PROGRAMMATION ET SUPERVISION INDUSTRIELLES

VOLUME : 6 crédits

PROMOTION : BAC 3 ISI

TITULAIRE : MASTER ING CIVIL TUNDA-OLEMBE DJAMBA

PROFIL ACADEMIQUE : CT

I. LIMINAIRE

La programmation industrielle couvre l'ensemble des techniques de conception, d'analyser et de programmation des systèmes informatiques à vocation industrielle.
Les applications de la programmation industrielle sont multiples : les automatismes utilisés dans les appareils électroniques et électriques, les avions, les automobiles, les avions, les locomotives et les portables ; les automates programmables industriels, les systèmes numériques de Contrôle et commande, et la supervision industrielle.

La supervision industrielle est l'ensemble des taches qui visent à surveiller l'etat de fonctionnement d' un procéde industriel ou d'une installation industrielle, pour l' amener au plus prés de fonctionnement nominal et d' y maintenir . Ceci requiert des procedures adéquates ainsi que le Contrôle de leur exécution et de leurs résultats .

Les objectifs de la supervision sont : détecter toute rupture de performance ; participer au maintien des cadences de production à leu niveau optimal ; permettre la reconfiguration des paramètres de fonctionnement ; assurer un certain niveau de disponibilité de l'outil de production ; et faciliter la maintenance.

Afin de répondre aux besoins du marché, les entreprises doivent rechercher continuellement des solutions. Réduire les dépenses, améliorer le rendement des procèdes industriels ou la qualité des produits, sont des thèmes récurrents que l'entreprise s'efforce d'améliorer pour se démarquer.

Et ces efforts d'amélioration impliquent une bonne coordination entre les différents pôles de l'entreprise notamment au niveau de leurs échanges d'informations. Voilà pourquoi deux types de système d'information se sont développés au niveau des sites de production :

1. Le système d'information de l'entreprise comprenant les fonctions de gestion de l'entreprise (Finances, comptabilité, commerciale et marketing, ressources humaine, ERP, ...)

2. Le système d'information industriel est un système de traitement des transactions assurant le contrôle, la commande et le pilotage en temps réel des ateliers de fabrication
et des lignes de production. Il comprend les réseaux des organes d'automatisme et de contrôle, la supervision SCADA, le MES et les outils ordonnancements MRP I et MRP II

## II. PLAN DU COURS

- Chapitre 1 : Introduction aux systèmes automatisés, aux automates programmables industriels et aux robots

- Chapitre 2 : Introduction à la programmation et supervision industrielles;

- Chapitre 3 : La programmation industriels des automates programmables industriels ;

- Chapitre 4 : Supervision industrielle et le SCADA ;

- Chapitre 5: Supervision industrielle et le système d'information industriel (le MES) ;

- Chapitre 6: Supervision industrielle et le système d'information globale (l'ERP).

## III. OBJECTIFS DU COURS

L'étudiant doit comprendre et maitriser les aspects matériels et logiciels de l'informatique dans le contexte d'applications à usage industriel, afin de lui permettre de concevoir, et de mettre en œuvre les réseaux des organes d'automatismes et de contrôle, la supervision industrielle, système d'information industriel et le système d' information d' entreprise ERP

## IV.METHODE DE COMMUNICATION

1. Cours théorique orienté vers la pratique ;

2. Travaux et discussion en groupe ;

3. Organisation TD et TP ;

4. Autoformation.

## V. METHODE D'EVALUATION

1. Travaux pratiques ;

2. Interrogations ;

3. Examen
# CHAP.1 INTRODUCTION AUX SYSTEMES AUTOMATISES, AUX AUTOMATES PROGRAMMABLES INDUSTRIELS ET AUX ROBOTS

## I.1 INTRODUCTION AUX SYSTEMES AUTOMATISES

### I.1.1 DEFINITIONS DE L'AUTOMATIQUE ET EXEMPLES

**# Commandes de vol primaires de l'Airbus A380**

<figure><img src="image_2.png" /></figure>

Précision, Fiabilité.

<figure><img src="image_3.png" /></figure>

**Définition** : **Automatique**, c'est l'ensemble de théories et de techniques pour la prise de décision et la commande des systèmes. En anglais "Automatic Control" (faux ami : commande).

L'automatique est ainsi la discipline scientifique permettant de caractériser les systèmes automatisés et de choisir/concevoir/réaliser la commande des systèmes. Les systèmes de commande s'inspirent le plus souvent de l'homme.

**Définition** : Un système **automatisé** ou **automatique** est un système réalisant des opérations et pour lequel l'homme n'intervient que dans la programmation du système et dans son réglage.

Les buts d'un système automatisé sont de réaliser des tâches complexes ou dangereuses pour l'homme, effectuer des tâches pénibles ou répétitives ou encore gagner en efficacité et en précision.

**Quelques exemples :**

**# Capsuleuse**
Ravoux

Tâche répétitive,
Cadence élevée.

<figure><img src="image_4.png" /></figure>

**# Robot TRIBAR**, inspection des conduites de centrale nucléaire : Tâche dangereuse, nécessitant précision et fiabilité

<figure><img src="image_5.png" /></figure>
<figure><img src="image_6.png" /></figure>

Le
distributeur
de billets

Les feux de carrefour

<figure><img src="image_7.png" /></figure>
## Définition

L'automatisation d'un procédé (c'est à dire une machine, un ensemble de machines ou plus généralement un équipement industriel) consiste à en assurer la conduite par un dispositif technologique (appelé automatisme). L'ensemble procédé + automatisme est appelé système automatisé.

## 1-Objectifs de l'automatisation

- produire à qualité constante

- fournir les quantités nécessaires

- augmenter la productivité

- améliorer les conditions de travail

## 2-Fonctions des automatismes

Le degré d'automatisation d'un système varie selon la nature, la complexité, les objectifs assignés au projet.

## 3-Exemple

Prenons à titre d'exemple la surveillance d'une installation de chauffage central d'un édifice quelconque. Si le niveau d'eau diminue, la pression augmente. Au-delà d'une certaine pression la chaudière risque d'exploser. Pour faire baisser la pression il faut tout simplement rajouter de l'eau.

Dans le cas du mode surveillance, un simple indicateur visuel à aiguille nous permet de savoir que la pression a augmenté, ou que le volume d'eau a diminué.

Dans le mode guide opérateur, on donne l'information sur l'action qu'il faut entreprendre, afin de baisser la pression. Un indicateur visuel ou sonore indique qu'il faut ouvrir la vanne d'eau.

Dans le mode commande, l'automatisme commande l'ouverture de la vanne, surveille le niveau d'eau, puis ferme la vanne quand le niveau désiré est atteint.

## 2-Fonctions des automatismes

Le degré d'automatisation d'un système varie selon la nature, la complexité, les objectifs assignés au projet.

<table><thead><tr><th>FONCTION</th><th>Acquisition de l'information</th><th>Traitement de l'information</th><th>Action sur le procédé</th><th>Structure de l'automatisme</th></tr></thead><tbody><tr><th>MODE FONCTIONNEMENT</th><td></td><td></td><td></td><td></td></tr><tr><th>Surveillance</th><td>X</td><td></td><td></td><td>Boucle ouverte</td></tr><tr><th>Guide-Opérateur</th><td>X</td><td>X</td><td></td><td>Boucle ouverte</td></tr><tr><th>Commande</th><td>X</td><td>X</td><td>X</td><td>Boucle fermée</td></tr></tbody></table>

## DIFFERENTES FONCTIONS D'UN AUTOMATISME

## 4-Technologies des automatismes
<figure><img src="image_8.png" /></figure>

## PRINCIPALES SOLUTIONS D'UN PROBLEME D'AUTOMATISATION

### Remarques :

-1-L'informatique industrielle est une discipline conjuguant les théories de l'automatique et les moyens de l'informatique pour résoudre des problèmes de nature industrielle.

-2-Un automate programmable industriel ou API est une machine électronique, programmable par un personnel non informaticien, destinée à piloter en ambiance industrielle et en temps réel, des procédés logiques séquentiels.

## PRINCIPALES SOLUTIONS D'UN PROBLEME D'AUTOMATISATION

### Remarques :

-1-L'informatique industrielle est une discipline conjuguant les théories de l'automatique et les moyens de l'informatique pour résoudre des problèmes de nature industrielle.

-2-Un automate programmable industriel ou API est une machine électronique, programmable par un personnel non informaticien, destinée à piloter en ambiance industrielle et en temps réel, des procédés logiques séquentiels.
I.1.2 CLASSIFICATIONS DES SYSTEMES AUTOMATISES

1. Les différentes natures d'information

On a vu (Analyse fonctionnelle, §VII – 1.) qu'à chaque chaîne fonctionnelle d'un système correspond une chaîne d'information et une chaîne d'énergie. L'automatique s'intéresse à la **chaîne d'information**. Les systèmes automatisés vont alors être classés en fonction de la nature des informations de commande ou de mesure, et également en fonction de la nature du traitement de ces informations.

On distingue deux types d'informations : **analogiques** et **discrètes (logiques)**.

**Définition** : une **information (signal) analogique** est une information qui peut prendre toutes les valeurs possibles dans un intervalle donné. Les grandeurs physiques, comme la température, la vitesse, la pression, la tension (...) sont des informations analogiques. Une information analogique peut être représentée par une courbe (voir page suivante).

**Définition** : une **information (signal) discrète** est constituée d'un ensemble fini de valeurs.
On distingue :

# Information binaire (0 ou 1, vrai/faux, noir/blanc, Tout Ou Rien (TOR)).

<figure><img src="image_9.png" /></figure>

# Information numérique sous la forme d'un mot binaire, constitué de plusieurs variables binaires (bits¹). Information généralement issue d'un traitement d'une information analogique (échantillonnage, codage²).

<figure><img src="image_10.png" /><figcaption>Information analogique</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>Information numérique</figcaption></figure>
## 2. Classification des systèmes

On peut alors distinguer les systèmes automatisés suivants :

### Variables logiques - Systèmes automatisés à logique combinatoire

Pour un tel système les sorties dépendent exclusivement d'une combinaison des entrées, sans prendre en compte "l'histoire" du système. A un état d'entrées, correspond un et un seul état en sortie. Aucune mémoire des états précédents des entrées et des sorties n'est conservée. L'information logique est traitée de manière instantanée.

Les grandeurs y sont manipulées sous formes d'états binaires, ce qui justifie l'utilisation de l'algèbre de **BOOL**E³, et des notions liées au codage de l'information.

### Exemple : afficheur sept segments

L'information, chiffre compris entre 0 et 9, est fournie par un nombre binaire sur 4 bits, soit pour notre afficheur quatre entrées ($E_0$, $E_1$, $E_2$ et $E_3$) et en sortie les segments seront allumés ou éteints. Pour chaque combinaison des quatre entrées, doit correspondre un et un seul état des sorties, correspondant à l'affichage correct de l'information.

<figure><img src="image_12.png" /><figcaption>Entrées</figcaption></figure>

<figure><img src="image_13.png" /><figcaption>Sorties</figcaption></figure>

### Variables logiques - Systèmes automatisés à logique séquentielle

Qualifié de système à mémoire généralisée, les sorties du système sont élaborées à partir d'un ensemble de signaux logiques, mais dépendent aussi de la chronologie des événements logiques. "L'histoire" du système est prise en compte.

En effet les états précédents des entrées et des sorties sont mémorisés, et influent sur l'évolution du système. A une combinaison d'entrées, peuvent correspondre plusieurs combinaisons des sorties.

**Exemple de système logique :**
Le portail automatisé.

Pour simplifier, on s'intéresse aux éléments suivants :

* ✓ Les 2 portes

* ✓ Les 2 moteurs

* ✓ La télécommande

* ✓ La cellule photo électrique

Entrées/sorties de la Partie commande (PC) du portail : (les entrées sont les informations, les sorties sont les ordres)

<figure><img src="image_14.png" /></figure>
<figure><img src="image_15.png" /></figure>

Les entrées et les sorties sont sous la forme tout ou rien (1 ou 0) (vrai ou faux), on les appelle des variables logiques.

## Variables analogiques ou numériques - Systèmes automatisés continus

Les signaux traités sont analogiques ou numériques, et leurs valeurs ne peuvent être prédéterminées. Les sorties (asservies ou non) sont des grandeurs continues pour un processus donné.

## Variables analogiques ou numériques - Systèmes automatisés continus

Les signaux traités sont analogiques ou numériques, et leurs valeurs ne peuvent être prédéterminées. Les sorties (asservies ou non) sont des grandeurs continues pour un processus donné.

**Systèmes automatisés asservis** : ils sont l'objet du cours qui suit, pour de tels systèmes une mesure de la sortie est réalisée en permanence et sa valeur comparée à l'entrée (sortie souhaitée) puis corrigée. Ces systèmes permettent d'obtenir toutes les caractéristiques nécessaires aujourd'hui dans beaucoup de systèmes pluri-techniques [Rapidité, Précision, Stabilité]. Les asservissements sont classés en deux familles : les systèmes **régulateurs** et les systèmes asservis **suiveurs**.

\# Systèmes **régulateurs** : la consigne d'entrée est fixe, ils sont destinés à assurer une sortie constante.

### Exemple : Régulation de température

\# Systèmes asservis **suiveurs** ou en poursuite d'une loi de référence : la consigne d'entrée varie constamment et l'objectif est d'ajuster en permanence la sortie au signal d'entrée.

La figure suivante illustre un procédé régulé par une boucle fermée. Dans ce cas l'association procédé et instruments constitue un système asservi, de ce fait la réponse à un échelon de consigne est généralement du type apériodique.

<figure><img src="image_16.png" /></figure>
# I.1.3 INTRODUCTION AUX SYSTEMES AUTOMATISES DE PRODUCTION

## I.1.3.1 PRESENTATION

Ce chapitre permet de comprendre la structure d'un Système Automatisé de Production et de définir les différentes parties de ce système. Un système de production est dit _automatisé_ lorsqu'il peut gérer de manière autonome un cycle de travail préétabli qui se décompose en séquences et/ou en étapes.

Les systèmes automatisés, utilisés dans le secteur industriel, possèdent une structure de base identique. Ils sont constitués de plusieurs parties plus ou moins complexes reliées entre elles :

- la partie opérative (PO);

- la partie commande (PC) ou système de contrôle/commande (SCC);

- la partie relation (PR) de plus en plus intégrée dans la partie commande.

<figure><img src="image_17.png" /></figure>

## I.1.3.2 DESCRIPTION DES PARTIES D'UN SYSTEME SEQUENTIEL

### 1. LA PARTIE OPERATIVE

C'est la partie visible du système. Elle comporte les éléments du procédé, c'est à dire :

- des pré-actionneurs (distributeurs, contacteurs) qui reçoivent des ordres de la partie commande;

- des actionneurs (vérins, moteurs, vannes) qui ont pour rôle d'exécuter ces ordres. Ils transforment l'énergie pneumatique (air comprimé), hydraulique (huile sous pression) ou électrique en énergie mécanique;

- des capteurs qui informent la partie commande de l'exécution du travail. Par exemple, on va trouver des capteurs mécaniques, pneumatiques, électriques ou magnétiques montés sur les vérins. Le rôle des capteurs (ou détecteurs) est donc de contrôler, mesurer, surveiller et informer la PC sur l'évolution du système.
## 2. PARTIE COMMANDE

Ce secteur de l'automatisme gère selon une suite logique le déroulement ordonné des opérations à réaliser. Il reçoit des informations en provenance des capteurs de la Partie Opérative, et les restitue vers cette même Partie Opérative en direction des pré-actionneurs et actionneurs. L'outil de description de la partie commande s'appelle le **GRAphe Fonctionnel de Commande Étape / Transition** (GRAFCET).

## 3. PARTIE RELATION (OU IHM : INTERFACE HOMME MACHINE)

Sa complexité dépend de l'importance du système. Elle regroupe les différentes commandes nécessaires au bon fonctionnement du procédé, c'est à dire marche/arrêt,

<figure><img src="image_18.png" /></figure>
En effet les états précédents des entrées et des sorties sont mémorisés, et influent sur l'évolution du système. A une combinaison d'entrées, peuvent correspondre plusieurs combinaisons des sorties.

Exemple de système logique :

Le portail automatisé.

Pour simplifier, on s'intéresse aux éléments suivants :

✓ Les 2 portes

✓ Les 2 moteurs

✓ La télécommande

✓ La cellule photo électrique

Entrées/sorties de la Partie commande (PC) du portail : (les entrées sont les informations, les sorties sont les ordres)

<figure><img src="image_19.png" /></figure>

I.2 INTRODUCTION AUX AUTOMATES PROGRAMMABLES INDUSTRIELS
## Historique

<figure><img src="image_20.png" /></figure>

<figure><img src="image_21.png" /></figure>

### Ambiance industrielle

- bruit électrique

- poussière

- température

- humidité

A la fin des années 60, Un fabricant américain de voitures décide de remplacer les systèmes de commande à base de logique cablée (relais électrique) par une logique programmée.

## Cahier des charges de l'époque

<figure><img src="image_22.png" /></figure>

- Solution pour un coût acceptable

- utilisable par le personnel en place

- programmation facile

- Supporter l'ambiance industrielle

- Adaptation aux nombreuses variétés E/S

- Simplicité de mise en œuvre

## Les API d'aujourd'hui

<figure><img src="image_23.png" /></figure>

<figure><img src="image_24.png" /></figure>
<figure><img src="image_25.png" /></figure>

Architecture interne

<figure><img src="image_26.png" /></figure>

<figure><img src="image_27.png" /></figure>

Essai de classification

<figure><img src="image_28.png" /></figure>
<figure><img src="image_29.png" /></figure>

## Architecture réseau

<figure><img src="image_30.png" /></figure>

<figure><img src="image_31.png" /></figure>

## Aspect programmation

### FONCTIONS DES ATELIERS LOGICIEL

* gestion des projets

* configuration API

* édition, compilation

* Transfert console <--> API

* Mise au point dynamique

<figure><img src="image_32.png" /></figure>

<figure><img src="image_33.png" /></figure>

## Les langages IEC1131

### Function Block Diagram (FBD)

<figure><img src="image_34.png" /></figure>

### Ladder Diagram (LD)

<figure><img src="image_35.png" /></figure>
<figure><img src="image_36.png" /></figure>

# Les langages IEC1131

## Structured Text (ST)

```text
VAR CONSTANT X : REAL := 53.8;
Z : REAL; END_VAR
VAR aFB, bFB : FB_type; END_VAR
bFB(A:=1, B:='OK');
Z := X - INT_TO_REAL(bFB.OUT1);
IF Z>57.0 THEN aFB(A:=0, B:="ERR");
ELSE aFB(A:=1, B:="Z is OK");
END_IF
```

## Instruction List (IL)

```
A: LD %IX1 (* PUSH BUTTON *)
ANDN %MX5 (* NOT INHIBITED *)
ST %QX2 (* FAN ON *)
```

<figure><img src="image_37.png" /></figure>

# Les langages IEC1131

## Sequential Flow Chart (SFC)

<figure><img src="image_38.png" /></figure>
<figure><img src="image_39.png" /></figure>

# Comparaison des langages

<table><thead><tr><td>LANGAGE</td><td>AVANTAGES</td><td>INCONVENIENTS</td></tr></thead><tbody><tr><td>LD</td><td>facile à lire et à comprendre par la majorité des électriciens<br>langage de base de tout PLC</td><td>suppose une programmation bien structurée</td></tr><tr><td>FBD</td><td>Très visuel et facile à lire</td><td>Peut devenir très lourd lorsque les équations se compliquent</td></tr><tr><td>ST</td><td>Langage de haut niveau (langage pascal)<br>Pour faire de l'algorithmique</td><td>Pas toujours disponible dans les ateliers logiciels</td></tr><tr><td>IL</td><td>langage de base de tout PLC type assembleur</td><td>très lourd et difficile à suivre si le programme est complexe<br>Pas visuel.</td></tr><tr><td>SFC</td><td>Description du fonctionnement (séquentiel) de l'automatisme.<br>Gestion des modes de marches<br>Pas toujours accepté dans l'industrie...</td><td>Peu flexible</td></tr></tbody></table>

<figure><img src="image_40.png" /></figure>

# Acquisition des entrées

Acquisition des entrées

E

écriture en mémoire
de l'état des
informations
présentes sur les
entrées (réalise une
image du monde
extérieur)

<figure><img src="image_41.png" /></figure>
<figure><img src="image_42.png" /></figure>

# Traitement

<figure><img src="image_43.png" /></figure>

exécution du
programme
application, écrit
par l'utilisateur.

<figure><img src="image_44.png" /></figure>

<figure><img src="image_45.png" /></figure>

<figure><img src="image_46.png" /></figure>

# Mise à jour des sorties

<figure><img src="image_47.png" /></figure>

<figure><img src="image_48.png" /></figure>

écriture des bits ou des
mots de sorties
associés aux modules
TOR et métier selon
l'état défini par le
programme
application.

<figure><img src="image_49.png" /></figure>
<figure><img src="image_50.png" /></figure>

# Tâche Automate

<figure><img src="image_51.png" /></figure>

<figure><img src="image_52.png" /></figure>

## fonctionnement mono-tâche périodique
(synchrone)

<figure><img src="image_53.png" /></figure>

Dans ce mode de fonctionnement, l'acquisition des entrées, le traitement du programme et la mise à jour des sorties s'effectue de façon périodique **te ms** selon un temps défini par configuration API.
<figure><img src="image_54.png" /></figure>

# Chien de garde
(watchdog)

La durée d'exécution de la tâche maître, en fonctionnement cyclique ou périodique, est contrôlée par l'automate (chien de garde) et ne doit pas dépasser la valeur définie en configuration.

Dans le cas de débordement, l'application est déclarée en défaut, ce qui provoque l'arrêt immédiat de l'automate.

! STOP CPU

<figure><img src="image_55.png" /></figure>

L'automate programmable ou système d'automatisation est un appareil qui commande un processus (par exemple une machine à imprimer pour l'impression de journaux, une installation de remplissage de ciment, une presse pour le moulage de formes plastiques sous pression, etc.). Ceci est possible grâce aux instructions d'un programme stocké dans la mémoire de l'appareil.

Programme chargé dans la mémoire de l'automate ...

<figure><img src="image_56.png" /></figure>
## COMMENT L'AUTOMATE COMMANDE-T-IL LE PROCESSUS ?

L'automate commande le processus en appliquant une tension de 24V, par exemple, aux **actionneurs** via les points de connexion de l'automate appelés **sorties**. Ceci permet d'activer ou de désactiver des moteurs, de faire monter ou descendre des électrovannes ou d'allumer ou éteindre des lampes.

<figure><img src="image_57.png" /></figure>

<figure><img src="image_58.png" /></figure>

## Sorties (TOR)

<figure><img src="image_59.png" /></figure>

## COMMENT L'AUTOMATE REÇOIT-IL LES INFORMATIONS SUR LES ETATS DU PROCESSUS?

L'automate programmable reçoit les informations sur le processus via les **capteurs de signaux reliés** aux **entrées** de l'automate. Ces capteurs de signaux peuvent, par exemple, être des capteurs qui reconnaîtront si la pièce d'usinage se trouve à une position donnée ou de simples commutateurs ou interrupteurs qui peuvent être fermés ou ouverts. Il est également fait la distinction entre les **contacts i ouvertures** qui sont fermés au repos et les **contacts à fermeture** qui sont ouverts au repos.

<figure><img src="image_60.png" /></figure>
QUELLE EST LA DIFFERENCE ENTRE LES CONTACTS A OUVERTURE ET A FERMETURE ?

On distingue parmi les capteurs de signaux les contacts à ouverture et les contacts à fermeture

Le commutateur ci-dessous est un contact à fermeture qui se ferme lorsqu'il est activé.

Contact à
fermeture au
repos

<figure><img src="image_61.png" /></figure>

Contact à
fermeture
ouvert

Contact à
fermeture
activé

<figure><img src="image_62.png" /></figure>

Contact à
fermeture
fermé

Le commutateur ci-dessous est un contact à ouverture qui est fermé quand il n'est pas activé.

Contact à
ouverture au
repos

<figure><img src="image_63.png" /></figure>

Contact à
ouverture
fermé

Contact à
ouverture
activé

<figure><img src="image_64.png" /></figure>

Contact à
ouverture
ouvert

Le traitement du programme dans l'automate est cyclique et se déroule comme suit :

1. Après la mise sous tension de l'automate programmable, le **processeur** qui constitue pour ainsi dire le cerveau de l'automate vérifie si chaque entrée est sous tension ou non. L'état de ces entrées est enregistré dans la mémoire image des entrées (MIE). Si l'entrée est sous tension, l'information 1 ou "High" sera enregistrée. Si l'entrée n'est pas sous tension, l'information 0 ou "Low" sera enregistrée.

2. Ce processeur exécute le programme stocké en mémoire de programme. Celui-ci est constitué d'une liste d'instructions et d'opérations logiques exécutées de manière séquentielle. L'information d'entrée requise à cet effet est prélevée dans la mémoire image des entrées lue auparavant et les résultats logiques sont écrits dans une mémoire image des sorties (MIS). Durant l'exécution du programme le processeur accède également aux zones de mémoire des compteurs, temporisations et mnémoniques.

3. Dans la troisième étape, l'état est transmis après l'exécution du programme utilisateur de la MIS aux sorties, activant ou désactivant celles-ci. L'exécution du programme revient ensuite au point 1.
1. Enregistrement des entrées dans la MIE

<figure><img src="image_65.png" /></figure>

2. Exécution du programme instruction après instruction avec accès à la MIE et MIS, ainsi qu'aux temporisations, compteurs et mnémoniques

<figure><img src="image_66.png" /></figure>

<figure><img src="image_67.png" /></figure>

Programme de l'automate programmable dans la mémoire du programme

1ère instruction
2ème instruction
3ème instruction
4ème instruction
...

Dernière instruction

<figure><img src="image_68.png" /></figure>

MIE

Tempos

Compteur

Mnémonique

MIS

COMMENT LE PROGRAMME D'AUTOMATISATION EST-IL CREE ? COMMENT ARRIVE-T-IL DAN
LA MEMOIRE DE L'AUTOMATE PROGRAMMABLE ?

Le programme de l'automate programmable est créé sur le PC avec le logiciel STEP 7 et y est
temporairement enregistré.

Une fois que vous avez relié le PC avec l'interface MPI de l'automate, le programme peut alors être
chargé à l'aide de la fonction de chargement dans la mémoire de l'automate programmable.

1. Création du programme d'automatisation avec STEP 7 sur le PC.

<figure><img src="image_69.png" /><figcaption>PC avec STEP 7</figcaption></figure>

2. Connexion du PC avec l'interface MPI de l'automate programmable

<figure><img src="image_70.png" /><figcaption>Adaptateur PC</figcaption></figure>

<figure><img src="image_71.png" /><figcaption>Automate S7-300</figcaption></figure>

3. Chargement du programme du PC dans la mémoire de l'automate programmable.

<figure><img src="image_72.png" /></figure>

I.1.3 INTRODUCTION A LA ROBOTIQUE
<figure><img src="image_73.png" /></figure>

<figure><img src="image_74.png" /><figcaption>Robot KR 1000 Titan (KUKA)</figcaption></figure>
<figure><img src="image_75.png" /></figure>

<figure><img src="image_76.png" /></figure>
• Robotique de service :

<figure><img src="image_77.png" /><figcaption>Robot pompiste</figcaption></figure>

<figure><img src="image_78.png" /><figcaption>Robot laveur d'avion</figcaption></figure>

<figure><img src="image_79.png" /><figcaption>Robot grimpeur</figcaption></figure>

<figure><img src="image_80.png" /><figcaption>Robot de construction</figcaption></figure>

# 1. Définition et historique

- Étymologie : le mot tchèque robota (travail).

- Définition : un robot est un système mécanique poly-articulé mû par des actionneurs et commandé par un calculateur qui est destiné à effectuer une grande variété de tâches.

- Historique :

- 1947 : premier manipulateur électrique téléopéré.

- 1954 : premier robot programmable.

- 1961 : apparition d'un robot sur une chaîne de montage de General Motors.

- 1961 : premier robot avec contrôle en effort.

- 1963 : utilisation de la vision pour commander un robot.
Classification des robots sériels

<figure><img src="image_81.png" /><figcaption>Polaire</figcaption></figure>

<figure><img src="image_82.png" /><figcaption>Anthropomorphique</figcaption></figure>

<figure><img src="image_83.png" /><figcaption>Cylindrique</figcaption></figure>

<figure><img src="image_84.png" /><figcaption>SCARA</figcaption></figure>

<figure><img src="image_85.png" /><figcaption>Cartésien</figcaption></figure>

3. Vocabulaire de la robotique

• Actionneur = moteur

• Axe = articulation

• Corps = segment

• Organe terminal

• Effecteur = outil

• Base

<figure><img src="image_86.png" /></figure>
# CHAP.2 INTRODUCTION A LA PROGRAMMATION ET A LA SUPERVISION INDUSTRIELLES

## II.1 INTRODUCTION A LA PROGRAMMATION DES AUTOMATES PROGRAMMABLESINDUSTRIELS

### I.LA NORME CEI 1131

La normalisation des langages en informatique est un fait acquis (Pascal, C, C++, etc...). C'est un critère d'achat, aujourd'hui il n'existe plus sur le marché des progiciels de ce type qui ne respecterais pas les normes. En automatismes, bien que la part des automates programmables dans les systèmes automatisés soit très importante, la diversité est de règle. La part du logiciel devenant de plus en plus importante dans les applications, la nécessité de passer d'une programmation quasi artisanale à une certaine harmonisation s'est petit à petit imposer aux utilisateurs ainsi qu'aux constructeurs.

Les besoins d'une normalisation des langages pour API s'exprime, pour les industriels, en termes de:

* faciliter la formation des réalisateurs de configurations d'automates programmables

* obtenir un bon niveau de portabilité des programmes

* favoriser la création de bibliothèques de blocs fonctionnels fiables

* faciliter les configurations en réseau d'automates

* améliorer la qualité des applications (sûreté de fonctionnement, maintenabilité, extensibilité)

* réutiliser les outils de configuration et de programmation

* produire des dossiers d'applications homogènes

* faciliter la maintenance du logiciel d'application

Le CENELEC (Comité Européen de Normalisation Electrotechnique) a adopté en 1993 le texte (65B) de la CEI (Commission Electrotechnique Internationale) comme norme EN 61131 pour la commande des processus industriels. Cette norme traite des automates programmables en 5 parties :

* CEI 1131-1 définitions¹, informations générales.

* CEI 1131-2 spécifications et essais matériels

* CEI 1131-3 langages de programmations

* CEI 1131-4 documentations

* CEI 1131-5 communications

L'originalité des langages de programmation pour automates est qu'ils sont généralement imagés par rapport à l'expression de la commande des machines automatisées. Ils sont souvent graphiques et depuis 20 ans des formes de langages se sont dégagés et sont mise à disposition par les constructeurs d'API (liste d'instruction mnémonique, réseau à contacts, GRAFCET).

La norme commence à être utiliser, des associations d'utilisateurs se sont crées en France et en Europe (EXERA, PLCopen) pour certifier des produits à un niveau de conformité "de base" et un niveau de "probabilité". Chez les constructeurs des langages de programmation "proches" sont annoncés (XTel et PL7Micro pour télémécanique, SFCd'Allen Bradley, Step5 et 7 de Siemens, etc...) des test de conformité sont fait par le CETIM relatifs aux prescriptions et à la syntaxe. Les nouveaux ateliers logiciels pour le Génie automatique sont développés pour fonctionner sur des PC avec des interfaces standard et des langages normalisés.
L'étude de la norme nous permettra de constater des principes largement éprouvés par le Génie logiciel tels que la structuration et la modularité. De distinguer les modules logiciels des langages dans lesquels ils peuvent être écrits. De faire la différence entre le modèle de spécification et le langage de programmation (code automate).

La norme CEI 1131 s'applique aux automates programmables industriels et à leurs périphériques. Les objectifs sont:

* donner les définitions et identifier les principales caractéristiques permettant de sélectionner et utiliser les automates programmables et leurs périphériques associés.

* déterminer les prescriptions minimales relatives aux caractéristiques fonctionnelles, aux conditions de service, aux caractéristiques constructives, à la sécurité générale ainsi qu'aux essais applicables aux automates programmables et à leurs périphériques.

* définir pour les langages de programmation les principaux champs d'applications, les règles syntaxiques et sémantiques ainsi que des ensembles de base simples mais exhaustifs d'éléments de programmation.

* fournir à l'utilisateur des informations générales didactiques et des recommandations quant à son application.

La partie 3 de cette norme définit :

Les langages de programmation

Les modules logiciels ou unités d'organisation de programmes

# Autour de l'automate

<figure><img src="image_87.png" /></figure>
# I.1. Ateliers logiciels

## I.1.1 L'atelier de Génie Automatique

La complexité des traitements est induite par l'augmentation de la taille et par la multiplicité des fonctions demandées à l'API. Les fonctions classiques (combinatoire, séquentiel) représentent environ un tiers du logiciel à développer pour une application, le reste est souvent destiné:

* à l'aide à la maintenance et au diagnostic de panne

* à la communication

* aux fonctions spécifiques (régulation)

* aux fonction de commande d'axes, ...

L'atelier logiciel vise à répondre au problème et est composé d'une gamme de produits dont certains peuvent être vendus séparément.

* structuration d'une application (architecture de commande)

* conception, codage, test

* gestion du processus de développement (# versions, projet, ...)

* production des documents

* maintenance

* communication avec d'autres outils de CAO, ...

L'atelier de Génie automatique ci-dessous est composé d'une partie matérielle (PC ou station de travail) et d'un atelier logiciel conçu dans un souci d'ergonomie. Des environnement graphiques différents peuvent être utilisés (OS2, Windows, Unix ...), leur contribution est importante par rapport à des logiciels sous DOS.

### Atelier de Génie automatique

#### Atelier logiciel

environnement
structure d'accueil
Windows
OS2
UNIX

Ensembles logiciels

Outils d'adaptation

#### Matériel

## I.1.2. L'atelier logiciel et les configurations d'API

Les potentialités des API sont déterminées par des fonctions programmables que l'on peut subdiviser en groupes orientés « application ». Dans le cadre d'une application, la partie
matérielle qui assure ces différentes fonctionnalités et les périphériques associés constituent
une configuration d'automate programmable<fnref n="2" />.

Les ateliers logiciels disposent de mécanismes et de fonctionnalités communes, et s'appuient
sur la norme CEI 1131.

### I.1.3 Modèle logiciel

Le modèle logiciel écrit en langage évolué se compose d'éléments qui sont :

**Les programmes et les blocs fonctionnels**

**Les éléments de configuration**

- configuration

- ressources

- tâches

- variables globales et chemin d'accès

**Reprise à froid**

Reprise de la configuration d'AP et de son programme d'application après que toutes les données dynamiques {variables telles qu'image *E/S*, mémoires internes, temporisateurs, compteurs, etc. et contextes du programme) aient été ramenées à un état prédéterminé. Une reprise à froid peut être automatique (par exemple après une coupure de courant, une perte d'information dans la ou les parties dynamiques de la ou des mémoires, etc.) ou manuelle (par exemple bouton de réinitialisation, etc.).

**Reprise immédiate**

Reprise après une coupure d'alimentation intervenant pendant le laps de temps maximal fonction du processus allowé à la configuration d'AP pour rétablir son fonctionnement comme s'il n'y avait pas eu de coupure d'alimentation. Toutes les informations d'E/S et toutes les autres données dynamiques ainsi que le contexte du programme d'application sont restaurée ou demeurent inchangés.

**Reprise à chaud**

Reprise après une coupure d'alimentation avec un ensemble de données dynamiques prédéterminé et programmé par l'utilisateur et un contexte programme d'application prédéterminé par le système. Une reprise à chaud se caractérise par une signalisation d'état ou tout autre moyen apparenté mis à la disposition du programme d'application indiquant que l'interruption d'alimentation de la configuration d'AP a été détectée en mode run

## II.LES LANGAGES DE PROGRAMMATION

### II.1. Les éléments communs

La norme 61131.3 spécifie la syntaxe et la sémantique d'une série unifiée de langages pour
automate programmable. Elle se compose de cinq langages classés en trois familles :

- **Langages LITTERAUX**

- Langage IL : liste d'instructions

- Langage ST : littéral structuré

- **Langages GRAPHIQUES**

- Langage LD : langage à contacts (Ladder)

- Langage FBD : diagramme fonctionnel — logigramme

- **Langage SFC : diagramme fonctionnel en séquence** — GRAFCET

<footnote n="2">² Configuration d'AP : Configuration réalisée par l'utilisateur et comportant un automate programmable et des périphériques associés, nécessaires au système automatisé prévu. Elle consiste en des unités interconnectées au moyen de câbles ou de raccords enfichables pour l'installation permanente, et au moyen de câbles ou d'autres dispositifs pour des périphériques portables et transportables.</footnote>
# Langages de programmation

## 1. Encodage des actions et des réceptivités (bas niveau)

80 % des applications actuelles

<figure><img src="image_88.png" /></figure>

Les représentations des données, dans les divers langages de programmation d'automates programmables, doivent se composer de libellés numériques, de cordons de caractères et de libelles de datation.

Libellés numériques;

Libellés entiers ----> -12 ; 0 ; +986 ; 123

Libellés réels ----> -12,0 ; 0,0 ; 0,45623 ; 3,1416 ; 1,34E-1,2

Libellés de cordons de caractères;

Séquence de zéro à plusieurs caractères précédée et terminée par une apostrophe

(').'A'

Libellés de datation ; nécessité de distinguer deux types de données temporelles:

Relative à la durée pour la mesure et le contrôle du temps écoulé, TIME #10s

Relative à l'heure du jour pour l'expression d'une date, DATE # 2000-10-28

Identificateurs

Un *identificateur* est un cordon de lettres de chiffres et de caractères de soulignement qui doit commencer par une lettre ou par un caractère de soulignement.

Les identificateurs ne doivent pas comporter de caractères d'espaces intercalaires (SP).

Exemple : Cs_TPav, dcy,

Commentaires

Les *commentaires* de l'utilisateur doivent être respectivement délimités, à leur début et à leur fin, par la combinaison de caractères spéciaux « (* » et « *) ».

Exemple : dcy : (* bouton poussoir départ cycle *)
## II.2. Les données

### II.2.1 données élémentaires

Défini le mot clé relatif à chaque type de donnée, le nombre de bits, la plage des valeurs relative à chaque type de données (tableau 10 annexe A)

### II.2.2 données génériques

Rassemblement de données élémentaires d'une même famille, la hiérarchie des types de données génériques est donnée dans le tableau ci-dessous. Elles sont identifiées par le préfixe "ANY" (tableau 11 annexe A)

### II.2.3 données dérivées

Les données dérivées sont celles spécifiées par l'utilisateur ou le fabricant et sont déclarées à l'aide de la construction littérale:

TYPE

END_TYPE

## II.3. Les variables

Les variables fournissent un moyen pour identifier des objets de données dont le contenu peut varier, comme par exemple les données associées aux entrées/sorties.

### II.3.1 variable à un élément

Une variable à un seul élément est définie comme une variable qui représente une valeur mono élément. La représentation d'une variable à un seul élément est assurée par le symbole "%" combiné avec un préfixe d'emplacement et un préfixe de taille.

### II.3.2 variable à plusieurs éléments

Les variables à plusieurs éléments sont des tableaux et des structures. Les indices sont mis entre crochets [ ] et séparés par des virgules.

ARRAY [1...10, 1... 8] → tableau 2 dimensions à 80 éléments

### II.3.3 déclaration de variable

Chaque unité d'organisation de programme doit comporter une partie déclaration qui spécifie le type (et l'emplacement si possible) des variables utilisées dans le module logiciel. Cette déclaration se fait sous forme littérale en utlisant des mots clés (VAR ... END_VAR ) ou sous forme graphique. Les valeurs initiales peuvent être données dans la déclaration.

<table><thead><tr><td>Mot clé</td><td>Désignation de la variable</td></tr></thead><tbody><tr><td>VAR</td><td>interne au module</td></tr><tr><td>VAR INPUT</td><td>variable d'entrée du module</td></tr><tr><td>VAR OUTPUT</td><td>variable de sortie du module</td></tr><tr><td>VAR IN OUT</td><td>fournie par des entités et modifiable dans le module (A=A+1</td></tr><tr><td>VAR EXTERNAL</td><td>fournie par la configuration</td></tr><tr><td>VAR GLOBAL</td><td>déclaration de variable globale</td></tr><tr><td>VAR ACCES</td><td>déclaration de chemin d'accès</td></tr><tr><td>RETAIN</td><td>variable non volatile</td></tr><tr><td>CONSTANT</td><td>constante</td></tr><tr><td>AT</td><td>énoncé d'emplacement</td></tr><tr><td>END_VAR</td><td>fin de déclaration</td></tr></tbody></table>

### II.3.4 initialisation des variables

Chacune des variables associées à l'élément de configuration et à son programme peut prendre une valeur initiale.
## II.4. Langage IL (Liste d'Instructions)

Langage à liste d'instructions (IL) est composé d'une suite d'instruction, chaque instruction doit débuter une nouvelle ligne de programme et doit contenir un opérateur suivi d'une ou plusieurs opérandes. L'instruction peut être précédée d'une étiquette d'identification avec (:) S'il y a présence d'un commentaire il doit constituer le dernier élément de la ligne. Le format d'une ligne d'instruction et les opérateurs standards sont définis (tableaux 51&52 annexe A)

<table><caption>Tableau 51 – Exemples de champs d'instruction</caption><thead><tr><td>Etiquette</td><td>Opérateur</td><td>Opérande</td><td>Commentaire</td></tr></thead><tbody><tr><td rowspan="3">START:</td><td>LD</td><td>%IX1</td><td>(* BOUTON POUSSOIR *)</td></tr><tr><td>ANDN</td><td>%MX5</td><td>(* NON INHIBÉE *)</td></tr><tr><td>ST</td><td>%QX2</td><td>(* MARCHE VENTILATEUR *)</td></tr></tbody></table>

## II.5. Langage structuré ST

Le langage litteral structuré est constitué d'expression litterale composée d'opérateur et d'opérande libellé conformément à la norme. Les opérateurs booléens du langage ST sont ressemblant aux précédents, on retrouve : AND, OR, XOR, et NOT pour la complémentation (voir tableau 55 annexe A).

L'écriture du programme se fait sous forme d'énoncés littérale. Une ligne de programmation peut avoir la structure générale suivante

Commentaires

Etiquettes : énoncé ...

### AFFECTATION

L'énoncé d'affectation remplace la valeur actuelle d'une variable par le résultat de l'évaluation d'une expression. Un énoncé d'affectation doit se composer d'une référence de variable à gauche, suivie de l'opérateur d'affectation (:=), suivi de l'expression à évaluer.

### SELECTION

Les énoncés de sélection comprennent les énoncés IF et CASE

L'énoncé IF indique qu'un groupe d'énoncés ne doit être exécuté que si la valeur prise par l'expression booléenne associée est 1 (vraie) ;THEN. Si la condition n'est pas vérifiée, soit aucun énoncé n'est exécuté, soit le groupe d'énoncés suivi du mot clé ELSE doit être exécuté.

L'énoncé CASE se compose d'une expression qui doit être évaluée sur une variable de type INT (que J'on appelle le "sélecteur"), et d'une liste de groupes d'énoncés, chacun d'entre eux étant étiqueté par une ou plusieurs plages de valeurs entières. Cet énoncé précise que le premier groupe d'énoncés, dont l'une des plages contient la valeur calculée du sélecteur, doit être exécuté. Si la valeur du sélecteur n'apparaît dans aucune plage d'aucun cas, la suite d'énoncés qui suit le mot clé ELSE. Dans le cas contraire aucune des suites d'énoncés ne doit être exécuté

### ITERATION

Les énoncés d'itération comprennent les énoncés FOR, WHILE et REPEAT

L'énoncé FOR indique qu'une suite d'énoncés doit être exécutée de manière répétitive jusqu'à ce que le mot clé END-FOR soit atteint, une suite de valeurs progressives étant affectée à la variable de commande de la boucle FOR. La variable de commande, la valeur initiale et la valeur finale doivent être des expressions du même type entier (SINT, INT ou DINT). L'énoncé FOR augmente ou diminue la variable de commande d'une valeur initiale jusqu'à une valeur finale par incrément déterminés par la valeur d'une expression; par défaut, cette valeur est 1.
L'énoncé WHILE declenche l'execution repetee de la suite d'enonces s'étendant jusqu'au mot clé END-WHILE, jusqu'à ce que l'expression booléenne associée soit fausse. Si, à l'origine, l'expression est fausse, le groupe d'énoncés n'est pas exécuté du tout.

L'énoncé REPEAT entraîne l'exécution répétée (et au moins une fois) de la suite d'énoncés s'étendant jusqu'au mot clé UNTIL, jusqu'à ce que la condition booléenne associée soit vraie.

l'énoncé EXIT doit permettre de sortie de toutes les boucles d'itérations

## II.6. Langage FBD (langage en Blocs Fonctionnels)

Le langage FBD est un langage graphique de programmation (type logigramme) compatible avec la norme CEI 617-12.

<figure><img src="image_89.png" /></figure>

<table><thead><tr><td>N°</td><td>symbole</td><td>désignation</td></tr></thead><tbody><tr><td>1</td><td>&amp;</td><td>ET</td></tr><tr><td>2</td><td>&gt;=1</td><td>OU</td></tr><tr><td>3</td><td>=1</td><td>OU exclusif</td></tr><tr><td>4</td><td>1</td><td>égalité</td></tr><tr><td>5</td><td>—|</td><td>complément d'entrée</td></tr><tr><td>6</td><td>—P—</td><td>complément de sortie</td></tr></tbody></table>

## II.7. Langage à contacts LD (Ladder)

Le langage à contacts permet la programmation à l'aide de symboles graphiques. Ces symboles sont organisés en réseau reliés à gauche et à droite à des barres d'alimentation.

<table><thead><tr><td>N°</td><td>Symbole</td><td>Désignation</td></tr></thead><tbody><tr><td>1</td><td>—|—</td><td>Contact Normalement Overt</td></tr><tr><td>2</td><td>—|—</td><td>Contact Normalement Fermé</td></tr><tr><td>3</td><td>—P—</td><td>Contact détection front montant</td></tr><tr><td>4</td><td>—N—</td><td>Contact détection front descendant</td></tr><tr><td>5</td><td>—( )—</td><td>bobinage</td></tr><tr><td>6</td><td>—( / )—</td><td>bobinage complémenté</td></tr><tr><td>7</td><td>—( S )—</td><td>bobinage SET (vérouillage)</td></tr><tr><td>8</td><td>—( R )—</td><td>bobinage RESET (dévérouillage)</td></tr><tr><td>9</td><td>—( P )—</td><td>bobinage Front Montant</td></tr><tr><td>10</td><td>—( N )—</td><td>bobinage Front descendant</td></tr></tbody></table>

<figure><img src="image_90.png" /></figure>
# III.UNITES D'ORGANISATION DE PROGRAMMES.

## III.1. Définition

Les unités d'organisation de programmes, définies par la norme, sont aux nombre de trois:

* la FONCTION

* le BLOC FONCTIONNEL

* le PROGRAMME

Ces unités d'organisation de programmes (ou modules logiciels) peuvent être fournies par le constructeur d'automate programmable (modules standards), ou programmées par l'utilisateur à l'aide des modules standards

## III.2. La fonction

### III.2.1 définition

La fonction est définie comme un module logiciel pouvant avoir plusieurs variables d'entrées, mais une et une seule variable de sortie. Le lancement d'une fonction dotée des mêmes valeurs d'entrées doit toujours donner la même valeur de sortie. Une fonction n'a donc pas de mémoire.

### III.2.2 représentation

Les fonctions peuvent être représentées soit graphiquement, soit littéralement (Voir annexe A)
Une entrée EN ( Enable, validation) et une sortie ENO (pas d'erreur) booléenne supplémentaire peuvent être utilisées.

<figure><img src="image_91.png" /></figure>

(***) - Nom ou symbole

<table><tr><td>Nom</td></tr><tr><td>AND</td></tr><tr><td>OR</td></tr><tr><td>XOR</td></tr><tr><td>NOT</td></tr></table>
### III.2.3 déclaration

Une fonction doit être déclarée graphiquement ou littéralement. La déclaration d'une fonction doit comporter les éléments suivant.

* le mot clé FUNCTION ... END_FUNCTION

* la déclaration des variables utilisées par la fonction

* le corps de fonction dans un des langages normalisé.

Exemple:

Etude de la fonction pesage : poids NET = poids BRUT – tare

FONCTION_PESEE

## III.3. Le bloc fonctionnel

### III.3.1 définition

Le bloc fonctionnel est défini comme un module logiciel pouvant avoir plusieurs sorties. Le bloc fonctionnel possède une mémoire interne, les variables internes sont transparentes pour l'utilisateur. Il est possible de créer plusieurs instances d'un bloc fonctionnel, chaque instance étant identifiée par un nom.

### III.3.2 représentation

La représentation d'un bloc fonctionnel ou d'une instance de bloc fonctionnel peut être soit graphique soit littérale.

La norme défini certains nombre de blocs, les blocs fonctionnels standards (mémoire, tempo, ect ...), mais des blocs fonctionnels utilisateur peuvent être construit à l'aide de Fonctions et de Blocs fonctionnels standards.

#### Bloc fonctionnel bistable

<figure><img src="image_92.png" /></figure>

### III.3.3 déclaration

Un bloc fonctionnel peut être déclaré graphiquement ou littéralement. Cette déclaration doit comporter les éléments suivant:

* les mots clés FUNCTION_BLOCK ... END_FUNCTION_BLOCK

* la déclaration des variables utilisées par le bloc fonctionnel

* la définition du corps du bloc fonctionnel

Exemple: Extrait de la norme EN 61131

Le bloc fonctionnel CMD_MONITOR correspond à la commande d'un ensemble d'exploitation qui réagit a un ordre de marche (la sortie CMD) et renvoie un signal de bonne exécution (entrée FDBK). Le bloc fonctionnel permet une commande manuelle (MAN_CMD) ou auto (AUTO_CMD) suivant l'entrée AUTO_MODE. La vérification de MAN_CMD se fait par MAN_CMD_chk.
Si aucune confirmation de la commande CMD dans un delais (T_CMD_MAX) la commande est annulée et une alarme est signalée.

Déclaration sous forme littérale

```pascal
FUNCTION_BLOCK CMD_MONITOR
VAR INPUT AUTO_CMD : BOOL ; (* Automated command *)
AUTO_MODE : BOOL ; (* AUTO_CMD enable *)
MAN_CMD : BOOL ; (* Manual command *)
MAN_CMD_chk : BOOL ; (* Negated MAN_CMD to abounce *)
T_CMD_MAX : TIME ; (* Max time from CMD to FDBK *)
FDBK : BOOL ; (* Confirmation of CMD completion by operative unit *)
ACK : BOOL ; (* Acknowledge/cancel ALRM *)
END_VAR

VAR_OUTPUT CMD : BOOL ; (* Command to operative unit *)
ALRM : BOOL ; (* T_CMD_MAX expired without FDBK *)
END_VAR

VAR CMD_TMR : TON ; (* CMD-to-FDBK timer *)
ALRM FF : SR ; (* Note over-riding "S" input: *)
END_VAR (* Command must be cancelled before "ACK" can cancel alarm *)

(* Function Block Body *)
END_FUNCTION_BLOCK
```

Corps du bloc fonctionnel en langage ST.

```pascal
CMD := AUTO_CMD & AUTO_MODE
OR MAN_CMD & NOT MAN_CMD_chk & NOT AUTO_MODE;
CMD TMR (IN := CMD, PT := T_CMD_MAX);
ALRM FF (S1 := CMD_TMR.Q & NOT FDBK, R := ACK);
ALRM := ALRM FF.Q1;
```

Corps du bloc fonctionnel en langage LD

```pascal
|                                |                                |
| AUTO_MODE AUTO_CMD            | CMD                            |
+---|----------|------------------------------+---+
|   | AUTO_MODE | MAN_CMD              |   |
+---|----------|------------------------------+---+
|   |           | MAN_CMD_CHECK         |   |
+---|---|---|---|---+
|   |           |                            |   |
|   | ACK       | ALRM                     |   |
+---|---|---|---|---+
|   |           |------------------------------(R)---+
|   |           |                                |
|   | CMD_TMR   |                            |
|   |           | +---+                         |   |
|   | CMD       | TON | FDBK                  | ALRM |
+---|---|---|---|---+
|   |           | IN Q | +---|---|---+             | (S)---+
|   |           | PT ET| +---+                         |   |
|   |           |       |                                |   |
|   |           |       | +---+                         |   |
|   |           |       |                                |   |
```
### III.4. Le programme

Le programme est défini comme un "ensemble logique de tous les éléments et constructions des langages de programmation nécessaires pour le traitement des données requis pour contrôler une machine ou un processus au moyen d'une configuration d'automate programmable". Un programme est construit à l'aide de Fonctions et de Blocs Fonctionnels. Un programme ne peut être instancié que dans des ressources, alors que les blocs fonctionnels ne peuvent être instanciés que dans des programmes ou dans d'autres blocs fonctionnels.

#### III.4.1 déclaration.

La déclaration et l'utilisation de programmes sont identiques aux blocs fonctionnels :

* mots clés PROGRAM ...... ENDnan PROGRAM

* les déclarations de variables, un programme pouvant utiliser des variables globales ou/et des chemins d'accès.

Exemple : PROGRAM ESSAI_1
VAR INPUT x: BOOL; END_VAR
VAR_OUTPUT y: BOOL; END_VAR
VAR_EXTERNAL z: WORD; END_VAR
FB1 (...);
FB2 (...);
ENDnan PROGRAM

### III.4. Le programme

Le programme est défini comme un "ensemble logique de tous les éléments et constructions des langages de programmation nécessaires pour le traitement des données requis pour contrôler une machine ou un processus au moyen d'une configuration d'automate programmable". Un programme est construit à l'aide de Fonctions et de Blocs Fonctionnels. Un programme ne peut être instancié que dans des ressources, alors que les blocs fonctionnels ne peuvent être instanciés que dans des programmes ou dans d'autres blocs fonctionnels.

#### III.4.1 déclaration.

La déclaration et l'utilisation de programmes sont identiques aux blocs fonctionnels :

* mots clés PROGRAM ...... ENDnan PROGRAM

* les déclarations de variables, un programme pouvant utiliser des variables globales ou/et des chemins d'accès.

Exemple : PROGRAM ESSAI_1
VAR INPUT x: BOOL; END_VAR
VAR_OUTPUT y: BOOL; END_VAR
VAR_EXTERNAL z: WORD; END_VAR
FB1 (...);
FB2 (...);
ENDnan PROGRAM
Conclusion.

La conformité à une norme est pour les utilisateurs un gage de qualité, de maintenabilité, et d'évolutivité. A la demande de certains constructeurs, des tets sont réalisés par le CETIM³ et de l'EXERA⁴ qui ont pour objectifs de vérifier la conformité. La norme représente une synthèse d'un état de l'art du génie logiciel sur des principes éprouvés tels que la structuration et la modularité. Dans l'application de cette norme , il est important:

- de distinguer les modules logiciels des langages dans lesquels ils peuvent être écrits

- de différencier le modèle de spécifications et le langage de programmation.

La démarche, ci-contre peut être mise en œuvre pour mener une étude de conception
logicielle. Le bloc conception et le bloc réalisation n'ont pas obligatoirement les mêmes
auteurs.

<figure><img src="image_93.png" /></figure>

IV.STRUCTURE D'UN PROGRAMME

Le moniteur système de l'automate gérant l'acquisition et l'affectation des entrées/sorties la partie programme de l'application de l'utilisateur respectera l'organisation générale ci-dessous. L'implémentation des différents modules est fonction de la structure de la mémoire programme de l'automate.

Avant tout travail de codage API, la configuration matérielle est obligatoire. Cette
configuration prévoit l'adressage des entrées sorties, document important du dossier
d'automatisme, en fonction des caractéristiques du matériel mis en service. Ce document
peut se présenter sous la forme de tableaux directement accéssibles dans l'atelier logiciel.
<figure><img src="image_94.png" /></figure>

## V. TRAVAIL SUR BIT

L'objet de ce paragraphe est la programmation d'équations booléennes, combinatoires et/ou séquentielles. La norme défini les fonctions et les blocs fonctionnels utilisables dans les spécifications pour la programmation d'équations binaires.

### V.1. Fonctions booléennes. (Voir annexe A)

V.1.1 fonctions booléennes standard.

V.1.2 fonctions spéciales de traitement de cordons de bits.
Ces fonctions sont liées au décalage droite ou gauche

### V.2. Blocs fonctionnels. (voir annexe A)

V.2.1 blocs fonctionnels standards: Bistables et détection de front

La sortie "Q" d'un bloc fonctionnel front passe à la valeur "1" au passage de " 0 —>1" de l'entrée "CLK" d'un bloc R_TRIG ou, de " 1—>0" pour un bloc F_TRIG, et reste à "1" de l'exécution du bloc à la suivante.

V.2.2 blocs fonctionnels de comptage

Les blocs fonctionnels standards de comptage sont au nombre de trois :
CTU bloc compteur
CTD bloc décompteur
CTUD bloc fonctionnel mixte de comptage/décomptage
### V.2.3 blocs fonctionnels de temporisation

$$ 
\begin{array}{c|ll}
+\text{------}+ & & \\
| \text{***} | & & \\
\text{BOOL---}|\text{IN} & \text{Q}|\text{---}\text{BOOL} & \\
\text{TIME---}|\text{PT} & \text{ET}|\text{---}\text{TIME} & \\
+\text{------}+ & &
\end{array}
 $$

<table><caption>Les blocs fonctionnels standards de temporisateurs (TON)</caption><tr><td>TP (impulsion)</td></tr><tr><td>TON (Enclenchement)</td></tr><tr><td>T---0 (Enclenchement)</td></tr><tr><td>TOF (Déclenchement)</td></tr><tr><td>0---T (Déclenchement)</td></tr></table>

<figure><img src="image_95.png" /><figcaption>Les blocs fonctionnels standards de temporisateurs (TOF)</figcaption></figure>

<figure><img src="image_96.png" /></figure>

## Annexe A

### Norme 61131

### Eléments communs

#### identificateurs

Un identificateur est un cordon de lettres, de chiffres et de caractères de soulignement qui doit commencer par une lettre ou par un caractère de soulignement.

Les identificateurs ne doivent pas comporter de caractères d'espaces intercalaires (SP).

Exemple : `Cs_mpa`, `dcy`,

#### commentaires

Les commentaires de l'utilisateur doivent être respectivement délimités, à leur début et à leur fin, par la combinaison de caractères spéciaux « (* » et « *) ».

Exemple : `dcy : (* bouton pousoir départ cycle *)`
<table><caption>Tableau 10 – Types de données élémentaires</caption><thead><tr><td>N°</td><td>Mot clé</td><td>Type de donnée</td><td>Bits</td><td>Étendue</td></tr></thead><tbody><tr><td>1</td><td>BOOL</td><td>Boolean</td><td>1</td><td>Note 8</td></tr><tr><td>2</td><td>SINT</td><td>Integer court</td><td>8</td><td>Note 2</td></tr><tr><td>3</td><td>INT</td><td>Integer</td><td>16</td><td>Note 2</td></tr><tr><td>4</td><td>DINT</td><td>Integer double</td><td>32</td><td>Note 2</td></tr><tr><td>5</td><td>LINT</td><td>Integer long</td><td>64</td><td>Note 2</td></tr><tr><td>6</td><td>USINT</td><td>Integer court non signé</td><td>8</td><td>Note 3</td></tr><tr><td>7</td><td>UINT</td><td>Integer non signé</td><td>16</td><td>Note 3</td></tr><tr><td>8</td><td>UDINT</td><td>Integer double non signé</td><td>32</td><td>Note 3</td></tr><tr><td>9</td><td>ULINT</td><td>Integer long non signé</td><td>64</td><td>Note 3</td></tr><tr><td>10</td><td>REAL</td><td>Nombre réels</td><td>32</td><td>Note 4</td></tr><tr><td>11</td><td>LREAL</td><td>Réels longs</td><td>64</td><td>Note 5</td></tr><tr><td>12</td><td>TIME</td><td>Durée</td><td>Note 1</td><td>Note 6</td></tr><tr><td>13</td><td>DATE</td><td>Date (uniquement)</td><td>Note 1</td><td>Note 6</td></tr><tr><td>14</td><td>TIME_OF_DAY ou TOD</td><td>Heure du jour (uniquement)</td><td>Note 1</td><td>Note 6</td></tr><tr><td>15</td><td>DATE_AND_TIME ou DT</td><td>Date et heure du jour</td><td>Note 1</td><td>Note 6</td></tr><tr><td>16</td><td>STRING</td><td>Cordon de caractères de longueur variable</td><td>Note 1</td><td>Note 7</td></tr><tr><td>17</td><td>BYTE</td><td>Cordon de bits de longueur 8</td><td>8</td><td>Note 7</td></tr><tr><td>18</td><td>WORD</td><td>Cordon de caractères de longueur 16</td><td>16</td><td>Note 7</td></tr><tr><td>19</td><td>DWORD</td><td>Cordon de caractères de longueur 32</td><td>32</td><td>Note 7</td></tr><tr><td>20</td><td>LWORD</td><td>Cordon de caractères de longueur 64</td><td>64</td><td>Note 7</td></tr></tbody></table>
NOTES

1 La longueur de ces données dépend de l'application concernée.

2 L'étendue des valeurs, relatives à des variables de ce type de donnée, est comprise entre -(2**(Bits-1)) et (2**(Bits-1))-1.

3 L'étendue des valeurs, relatives à des variables de ce type de donnée, est comprise entre 0 et (2**Bits)-1.

4 L'étendue des valeurs, relatives à des variables de ce type de donnée doit être telle que définie dans la CEI 559 pour le format de virgule flottante à largeur binaire unique.

5 L'étendue des valeurs, relatives à des variables de ce type de donnée, doit être telle que définie dans la CEI 559 pour le format de virgule flottante à double largeur binaire.

6 L'étendue des valeurs relatives à des variables de ce type de donnée dépend de l'application concernée.

7 Une étendue numérique de valeurs ne s'applique pas à ce type de donnée.

8 Les valeurs que peut prendre variables de ce type de donnée doivent être 0 et 1, correspondant respectivement aux mots clés FAUX et VRAI.

NOTES

1 La longueur de ces données dépend de l'application concernée.

2 L'étendue des valeurs, relatives à des variables de ce type de donnée, est comprise entre -(2**(Bits-1)) et (2**(Bits-1))-1.

3 L'étendue des valeurs, relatives à des variables de ce type de donnée, est comprise entre 0 et (2**Bits)-1.

4 L'étendue des valeurs, relatives à des variables de ce type de donnée doit être telle que définie dans la CEI 559 pour le format de virgule flottante à largeur binaire unique.

5 L'étendue des valeurs, relatives à des variables de ce type de donnée, doit être telle que définie dans la CEI 559 pour le format de virgule flottante à double largeur binaire.

6 L'étendue des valeurs relatives à des variables de ce type de donnée dépend de l'application concernée.

7 Une étendue numérique de valeurs ne s'applique pas à ce type de donnée.

8 Les valeurs que peut prendre variables de ce type de donnée doivent être 0 et 1, correspondant respectivement aux mots clés FAUX et VRAI.

NOTES

1 La longueur de ces données dépend de l'application concernée.

2 L'étendue des valeurs, relatives à des variables de ce type de donnée, est comprise entre -(2**(Bits-1)) et (2**(Bits-1))-1.

3 L'étendue des valeurs, relatives à des variables de ce type de donnée, est comprise entre 0 et (2**Bits)-1.

4 L'étendue des valeurs, relatives à des variables de ce type de donnée doit être telle que définie dans la CEI 559 pour le format de virgule flottante à largeur binaire unique.

5 L'étendue des valeurs, relatives à des variables de ce type de donnée, doit être telle que définie dans la CEI 559 pour le format de virgule flottante à double largeur binaire.

6 L'étendue des valeurs relatives à des variables de ce type de donnée dépend de l'application concernée.

7 Une étendue numérique de valeurs ne s'applique pas à ce type de donnée.

8 Les valeurs que peut prendre variables de ce type de donnée doivent être 0 et 1, correspondant respectivement aux mots clés FAUX et VRAI.
<table><caption>Tableau 11 - Hiérarchie des types de données génériques</caption><tr><td>ANY</td></tr><tr><td>ANY_NUM</td></tr><tr><td>ANY_REAL</td></tr><tr><td>LREAL</td></tr><tr><td>REAL</td></tr><tr><td>ANY_INT</td></tr><tr><td>LINT, DINT, INT, SINT</td></tr><tr><td>ULINT, UDINT, UINT, USINT</td></tr><tr><td>ANY_BIT</td></tr><tr><td>LWORD, DWORD, WORD, BYTE, BOOL</td></tr><tr><td>STRING</td></tr><tr><td>ANY_DATE</td></tr><tr><td>DATE_AND_TIME</td></tr><tr><td>DATE</td></tr><tr><td>TIME_OF_DAY</td></tr><tr><td>TIME</td></tr><tr><td>Dérivés (voir notes)</td></tr><tr><td>NOTES</td></tr><tr><td>1 Les types de données génériques ne doivent pas être utilisés dans des unités d'organisation de programmes déclarées par l'utilisateur, telles que spécifiées en 2.5.</td></tr><tr><td>2 Le type générique d'un type dérivé à partir d'une sous-étendue (caractéristique 3 du tableau 12) doit être ANY_INT.</td></tr><tr><td>3 Le type générique d'un type directement dérivé (caractéristique 1 du tableau 12) doit être identique au type générique du type élémentaire dont il est dérivé.</td></tr><tr><td>4 Le type générique de tous les autres types dérivés définis au tableau 12 doit être ANY.</td></tr></table>
## Le Langage IL (Liste d'Instructions)

<table><caption>Tableau 52 – Opérateurs de liste d'instructions</caption><thead><tr><th>N°</th><th>Opérateur</th><th>Modificateurs</th><th>Opérande</th><th>Sémantique</th></tr></thead><tbody><tr><td>1</td><td>LD</td><td>N</td><td>Note 2</td><td>Rendre le résultat courant égal à l'opérande</td></tr><tr><td>2</td><td>ST</td><td>N</td><td>Note 2</td><td>Mémoriser le résultat à l'emplacement de l'opérande</td></tr><tr><td>3</td><td>S<br>R</td><td>Note 3<br>Note 3</td><td>BOOL<br>BOOL</td><td>Positionner l'opérande booléen à 1<br>Remettre l'opérande booléen à 0</td></tr><tr><td>4</td><td>AND<br>&<br>OR<br>XOR</td><td>N. (<br>N. (<br>N. (<br>N. (</td><td>BOOL<br>BOOL<br>BOOL<br>BOOL</td><td>AND booléen<br>AND booléen<br>OR booléen<br>OR exclusif booléen</td></tr><tr><td>8</td><td>ADD<br>SUB<br>MUL<br>DIV</td><td>(<br>(<br>(<br>(</td><td>Note 2<br>Note 2<br>Note 2<br>Note 2</td><td>Addition<br>Soustraction<br>Multiplication<br>Division</td></tr><tr><td>12</td><td>GT<br>GE<br>EQ<br>NE<br>LE<br>LT</td><td>(<br>(<br>(<br>(<br>(<br>(</td><td>Note 2<br>Note 2<br>Note 2<br>Note 2<br>Note 2<br>Note 2</td><td>Comparaison: ><br>Comparaison: >=<br>Comparaison: =<br>Comparaison: <><br>Comparaison: &lt;</td></tr><tr><td>18</td><td>JMP</td><td>C, N</td><td>LABEL</td><td>Saut vers l'étiquette</td></tr><tr><td>19</td><td>CAL</td><td>C, N</td><td>NAME</td><td>Appel d'un bloc fonctionnel (note 4)</td></tr><tr><td>20</td><td>RET</td><td>C, N</td><td></td><td>Retour d'une fonction appelée ou d'un bloc fonctionnel</td></tr><tr><td>21</td><td>)</td><td></td><td></td><td>Evaluation d'une opération différée</td></tr></tbody></table>

### NOTES

1. Se reporter au texte précédent pour toute explication relative aux modificateurs et à l'évaluation des expressions.

2. Ces opérateurs doivent être soit surchargés soit saisis comme défini en 2.5.1.4. Le résultat courant et l'opérande doivent être du même type.

3. Ces opérations sont effectuées si et seulement si le résultat courant a la valeur booléenne 1.

4. Le nom du bloc fonctionnel est suivi par une liste d'arguments entre parenthèses, telle que définie en 3.2.3.

5. Lorsqu'une instruction JMP est contenue dans une construction ACTION...ENDAction, l'opérande doit être une étiquette à l'intérieur de la même construction.
## Le Langage ST (littéral structuré)

Le langage littéral structuré est constitué d'expression. Une expression est une co syntaxique qui, lorsqu'elle est évaluée, fournit une valeur correspondante à l'un des données définies. Les expressions sont composées d'opérateur et d'opérandes.

<table><caption>Tableau 55 - Opérateurs du langage ST</caption><thead><tr><th>N°</th><th>Opération</th><th>Symbole</th><th>Priorité</th></tr></thead><tbody><tr><td>1</td><td>Mise entre parenthèses</td><td>(Expression)</td><td>MAXIMALE</td></tr><tr><td>2</td><td>Evaluation de Fonction<br>Exemples:</td><td>Identificateur<br>(liste d'arguments)<br>LN(A), MAX(X,Y), etc.</td><td></td></tr><tr><td>3</td><td>Exponentiation</td><td>**</td><td></td></tr><tr><td>4</td><td>Négation</td><td>-</td><td></td></tr><tr><td>5</td><td>Complément</td><td>NOT</td><td></td></tr><tr><td>6</td><td>Multiplication</td><td>*</td><td></td></tr><tr><td>7</td><td>Division</td><td>/</td><td></td></tr><tr><td>8</td><td>Modulo</td><td>MOD</td><td></td></tr><tr><td>9</td><td>Addition</td><td>+</td><td></td></tr><tr><td>10</td><td>Soustraction</td><td>-</td><td></td></tr><tr><td>11</td><td>Comparaison</td><td>&lt;,&gt;, <=, >=</td><td></td></tr><tr><td>12</td><td>Egalité</td><td>=</td><td></td></tr><tr><td>13</td><td>Inégalité</td><td>&lt;&gt;</td><td></td></tr><tr><td>14</td><td>AND booléen</td><td>&</td><td></td></tr><tr><td>15</td><td>AND booléen</td><td>AND</td><td></td></tr><tr><td>16</td><td>OR exclusif booléen</td><td>XOR</td><td></td></tr><tr><td>17</td><td>OR booléen</td><td>OR</td><td>MINIMALE</td></tr></tbody></table>

## Les Langages Graphiques

Les langages graphiques sont le langage à contacts (LD) et le langage en blocs fonctionnels (FBD).

<figure><img src="image_97.png" /></figure>

<figure><img src="image_98.png" /></figure>

<figure><img src="image_99.png" /></figure>
# UNITES D'ORGANISATION DE PROGRAMMES
## LES FONCTIONS

<table><caption>Tableau 26 - Fonctions booléennes standards au niveau du bit</caption><thead><tr><th>Forme graphique</th><th>Exemple d'application</th></tr></thead><tbody><tr><td>ANY_BIT---| *** |---ANY_BIT<br>ANY_BIT---| |<br>. ---| |<br>. ---| |<br>ANY_BIT---| |<br>-------<br>("") - Nom ou symbole</td><td>A := AND(B,C,D);<br>ou<br>A := B & C & D;</td></tr><tr><th>N°</th><th>Nom</th><th>Symbole</th><th>Description</th></tr><tr><td>5</td><td>AND</td><td>à (note 1)</td><td>OUT := IN1 & IN2 & ... & INn</td></tr><tr><td>6</td><td>OR</td><td>>=1 (note 2)</td><td>OUT := IN1 OR IN2 OR ... OR iNn</td></tr><tr><td>7</td><td>XOR</td><td>«2k+1 (note 2)</td><td>OUT := IN1 XOR IN2 XOR ... XOR iNn</td></tr><tr><td>8</td><td>NOT</td><td></td><td>OUT := NOT IN1 (note 4)</td></tr></tbody></table>

NOTES

1. Ce symbole convient à l'utilisation en tant qu'opérateur dans des langages littéraux, comme l'illustrent les tableaux 52 et 55.

2. Ce symbole ne convient pas à l'utilisation en tant qu'opérateur dans des langages littéraux.

3. Les notations IN1, IN2, ..., iNn se rapportent aux entrées dans un ordre descendant (haut vers le bas); OUT se rapporte à la sortie.

4. L'inversion graphique de signes de type BOOL peut être également effectuée conformément aux indications du tableau 19.

5. Lorsque la représentation nommée d'une fonction est acceptée, cela doit être indiqué par le suffixe "n" dans l'écriture de conformité. Par exemple: "5n" représente la notation "AND".

6. Lorsque la représentation symbolique d'une fonction est acceptée, cela doit être indiqué par le suffixe "s" dans l'écriture de conformité. Par exemple: "Is" représente la notation "s".

7. Des exemples d'application et des descriptions sont donnés en langage ST, tel qu'il est défini en 3.3.

<table><caption>Tableau 25 - Fonctions standards de décalage binaire</caption><thead><tr><th>Forme graphique</th><th>Exemple d'application</th></tr></thead><tbody><tr><td>ANY_BIT---|***|<br>ANY_BIT---|IN |---ANY_BIT<br>ANY_BIT---|<br>-------<br>("") - Nom de fonction</td><td>A := SHL(IN := B, N := 5);<br>(Langage ST - voir 3.3)</td></tr><tr><th>N°</th><th>Nom</th><th>Description</th></tr><tr><td>1</td><td>SHL</td><td>OUT := IN Décalage à gauche de N bits, remplissage de zéros à droite</td></tr><tr><td>2</td><td>SHR</td><td>OUT := IN Décalage à droite de N bits, remplissage de zéros à gauche</td></tr><tr><td>3</td><td>ROR</td><td>OUT := IN Rotation à droite de N bits, circulaire</td></tr><tr><td>4</td><td>ROL</td><td>OUT := IN Rotation à gauche de N bits, circulaire</td></tr></tbody></table>

NOTE - La notation "OUT" se rapporte à la sortie de la fonction.
<table><caption>Tableau 34 - Blocs fonctionnels bistables standards</caption><thead><tr><th>N°</th><th>Forme graphique</th><th>Corps de bloc fonctionnel</th></tr></thead><tbody><tr><td>1</td><td>Bloc fonctionnel bistable (forcé dominant) (notes 1 et 2)<br><br>+------+<br>| SR |<br>BOOL---|S1 Q1|---BOOL<br>BOOL---|R |<br>+------+<br><br>S1--------------| &gt;=1 |---Q1<br><br>+---+ | |<br>R------O | & | ---| |<br>Q1------| | +---+<br>+---+</td><td>+---+<br>| |<br>+---+ | |<br>+---+</td></tr><tr><td>2</td><td>Bloc fonctionnel bistable (réinitialisé dominant) (notes 1 et 2)<br><br>+------+<br>| RS |<br>BOOL---|S Q1|---BOOL<br>BOOL---|R1 |<br>+------+<br><br>R1--------------O | & | ---Q1<br><br>+---+ | |<br>S------| &gt;=1 |---| |<br>Q1------| | +---+<br>+---+</td><td>+---+<br>| |<br>+---+ | |<br>+---+</td></tr><tr><td>3</td><td>Sémaphore avec "Essai et Positionnement" en continu (notes 3, 4, 5 et 6)<br><br>+--------------+<br>| SEMA |<br>BOOL---|CLAIM BUSY|---BOOL<br>BOOL---|RELEASE |<br>+--------------+<br><br>VAR X: BOOL := 0; END_VAR<br>BUSY := X;<br>IF CLAIM THEN X := 1;<br>ELSIF RELEASE THEN BUSY := 0; X := 0;<br>END_IF</td><td></td></tr></tbody></table>

<table><caption>Tableau 35 - Blocs fonctionnels standards de détection de fronts</caption><thead><tr><th>N°</th><th>Forme graphique</th><th>Définition<br>(langage ST - voir 3.3)</th></tr></thead><tbody><tr><td>1</td><td>Détecteur de front montant<br><br>+--------+<br>| R_TRIG |<br>BOOL---|CLK Q|---BOOL<br>+--------+<br><br>FUNCTION_BLOCK R_TRIG<br>VAR INPUT CLK: BOOL; END_VAR<br>VAR_OUTPUT Q: BOOL; END_VAR<br>VAR M: BOOL := 0; END_VAR<br>Q := CLK AND NOT M;<br>M := CLK;<br>END_FUNCTION_BLOCK</td><td></td></tr><tr><td>2</td><td>Détecteur de front descendant<br><br>+--------+<br>| F_TRIG |<br>BOOL---|CLK Q|---BOOL<br>+--------+<br><br>FUNCTION_BLOCK F_TRIG<br>VAR INPUT CLK: BOOL; END_VAR<br>VAR_OUTPUT Q: BOOL; END_VAR<br>VAR M: BOOL := 1; END_VAR<br>Q := NOT CLK AND NOT M;<br>M := NOT CLK;<br>END_FUNCTION_BLOCK</td><td></td></tr></tbody></table>

<caption>Tableau 36 - Blocs fonctionnels standards de détenteurs</caption>
<table><thead><tr><th>N°</th><th>Forme graphique</th><th>Corps de bloc fonctionnel (langage ST - voir 3.3)</th></tr></thead><tbody><tr><td>1</td><td>Compteur (comptage)<br> +------+<br> | CTU |<br> BOOL---&gt;CU Q|---BOOL<br> BOOL---|R |<br> INT---|PV CV|---INT<br> +------+</td><td>IF R THEN CV := 0;<br> ELSIF CU AND (CV &lt; PVmax)<br> THEN CV := CV+1;<br> END_IF;<br> Q := (CV &gt;= PV);</td></tr><tr><td>2</td><td>Compteur (décomptage)<br> +------+<br> | CTD |<br> BOOL---&gt;CD Q|---BOOL<br> BOOL---|LD |<br> INT---|PV CV|---INT<br> +------+</td><td>IF LD THEN CV := PV;<br> ELSIF CD AND (CV &gt; PVmin)<br> THEN CV := CV-1;<br> END_IF;<br> Q := (CV &lt;= 0);</td></tr><tr><td>3</td><td>Compteur (comptage-décomptage)<br> +------+<br> | CTUD |<br> BOOL---&gt;CU QU|---BOOL<br> BOOL---&gt;CD QD|---BOOL<br> BOOL---|R |---BOOL<br> BOOL---|LD |<br> INT---|PV CV|---INT<br> +------+</td><td>IF R THEN CV := 0;<br> ELSIF LD THEN CV := PV;<br> ELSIF CU AND (CV &lt; PVmax)<br> THEN CV := CV+1;<br> ELSIF CD AND (CV &gt; PVmin)<br> THEN CV := CV-1;<br> END_IF;<br> QU := (CV &gt;= PV);<br> QD := (CV &lt;= 0);</td></tr></tbody></table>

NOTE - Les valeurs numériques des variables limites PVmin et PVmax sont propres à l'application

<table><caption>Tableau 37 - Blocs fonctionnels standards de temporisateurs</caption><thead><tr><th>N°</th><th>Description</th><th>Forme graphique</th></tr></thead><tbody><tr><td>1</td><td>***est: TP (impulsion)</td><td></td></tr><tr><td>2a</td><td>TON (Enclenchement)</td><td>+--------+</td></tr><tr><td>2b</td><td>T---0 (Enclenchement)</td><td>| *** |</td></tr><tr><td>3a</td><td>TOF (Déclenchement)</td><td>BOOL---|IN Q|---BOOL</td></tr><tr><td>3b</td><td>0---T (Déclenchement)</td><td>TIME---|PT ET|---TIME<br>+--------+</td></tr><tr><td>4</td><td>Horloge temps réel</td><td></td></tr><tr><td></td><td>PDT = Date et heure prédéfinies, chargées sur<br>le front montant de EN</td><td>+--------+</td></tr><tr><td></td><td>CDT = Date et heure du jour,<br>valables lorsque EN=1</td><td>| RTC |</td></tr><tr><td></td><td>Q = copie de EN</td><td>BOOL---|EN Q|---BOOL<br>DT-----|PDT CDT|-----DT<br>+--------+</td></tr></tbody></table>

NOTE - Dans les langages littéraux, les caractéristiques 2b et 3b ne doivent pas être utilisées.
## II.2 INTRODUCTION A LA SUPERVISION INDUSTRIELLE

### II.2.1 GENERALITES SUR LA SUPERVISION INDUSTRIELLE

<figure><img src="image_100.png" /></figure>

#### Supervisions et IHM : définitions

Dans l'industrie, **la supervision** est une technique de suivi et de pilotage informatique de procédés de fabrication automatisés. La supervision concerne l'acquisition de données et la modification manuelle ou automatique des paramètres de commande des processus généralement confiés à des automates programmables, des machines spéciales, des robots...

**SCADA** Supervisory Control And Data Acquisition

<figure><img src="image_101.png" /></figure>

**L'Interface Homme - Machine (IHM)** représente l'interface informatique proche de la machine, principalement à l'usage de l'opérateur d'atelier.

**HMI** : human-machine interface

<figure><img src="image_102.png" /></figure>
<figure><img src="image_103.png" /><figcaption>SUPERVISION INDUSTRIELLE SUR CHANTIER</figcaption></figure>

<figure><img src="image_104.png" /></figure>
<figure><img src="image_105.png" /></figure>

<figure><img src="image_106.png" /></figure>

<figure><img src="image_107.png" /></figure>

<figure><img src="image_108.png" /></figure>

# Supervisions

* Collecter les données

* Traiter les informations

* Créer les bases de données

* Diffuser les résultats

La supervision dans la hiérarchie d'une entreprise manufacturière

<figure><img src="image_109.png" /></figure>
<figure><img src="image_110.png" /></figure>

## II.2.2 ORGANISATION LOGICIELLE DE LA SUPERVISION

⇒ Les logiciels de supervision sont une classe de programmes applicatifs dédiés à la production dont les buts sont :

- l'assistance de l'opérateur dans ses actions de commande du processus de production (interface IHM dynamique...)

- la visualisation de l'état et de l'évolution d'une installation automatisée de contrôle de processus, avec une mise en évidence des anomalies (alarmes)

- la collecte d'informations en temps réel sur des processus depuis des sites distants (machines, ateliers, usines...) et leur archivage

- l'aide à l'opérateur dans son travail (séquence d'actions/batch, recette/receipe) et dans ses décisions (propositions de paramètres, signalisation de valeurs en défaut, aide à la résolution d'un problème ...)

- fournir des données pour l'atteinte d'objectifs de production (quantité, qualité, traçabilité, sécurité...)
II.2.3 ORGANISATION MATERIELLE DE LA SUPERVISION

Les calculateurs

<figure><img src="image_111.png" /><figcaption>Baie 19”</figcaption></figure>

<figure><img src="image_112.png" /><figcaption>PC en rack 19”</figcaption></figure>

<figure><img src="image_113.png" /><figcaption>ShoeBox PC</figcaption></figure>

<figure><img src="image_114.png" /><figcaption>Panel PC</figcaption></figure>

<figure><img src="image_115.png" /><figcaption>Terminal
portatif</figcaption></figure>

Les automates
programmables

<figure><img src="image_116.png" /><figcaption>Réseau</figcaption></figure>

<figure><img src="image_117.png" /><figcaption>Automate</figcaption></figure>

<figure><img src="image_118.png" /></figure>

<figure><img src="image_119.png" /></figure>

<figure><img src="image_120.png" /></figure>
## II.2.3 SUPERVISION ET PYRAMIDE CIM

### La pyramide du CIM : les réseaux

La pyramide du CIM, définit le modèle d'usine industrielle au sens de l'automatisation et de la communication. Actuellement, elle décrit les différents niveaux de communication sous une forme quantitative des données à véhiculer.

Le choix du réseau est différent selon les niveaux dans la pyramide. On prendra couramment Ethernet TCP/IP pour les niveaux 1 à 4. Pour le niveau 0, on est dans le domaine des Bus de Terrain Industriels qui offrent rapidité, déterminisme et une très bonne tenue aux contraintes d'environnement.

**Temps différé**

<figure><img src="image_121.png" /></figure>

**Trames longues (Ethernet)**

* Au niveaux supérieurs, on a de **gros paquets de données** (fichiers) sans impératif de performance absolue.

Trames courtes

Trames courtes

Trames courtes

* Au niveau 0, transfert performant - **peu d'informations mais très rapidement**

**Temps réel**

Il y a 2 exigences impératives vis à vis des réseaux industriels:

**Sécurité de l'information** : l'erreur peut être dangereuse...

**Déterminisme** : faculté de transférer des données dans un temps donné.

13

## II.2.4 DE LA SUPERVISION INDUSTRIELLE AU SCADA

### II.2.4.1, DEFINITION DE LA SUPERVISION INDUSTRIELLE
# Définitions

## CETIM

Ensemble des tâches qui visent à surveiller l'état de fonctionnement d'un procédé, pour l'amener au plus près de son point de fonctionnement nominal et l'y maintenir.

Ceci requiert des procédures adéquates ainsi que le contrôle de leur exécution et de leurs résultats.

Objectifs :

- détecter toute rupture de performance.

- participer au maintien des cadences de production à leur niveau optimal

- permettre la reconfiguration des paramètres de fonctionnement

- assurer un certain niveau de disponibilité

- faciliter le diagnostic de pannes pour optimiser les tâches de maintenance.

## II.2.4.2 POSITIONNEMENT DE LA SUPERVISION DANS LE SYSTEME D'INFORMATION DE L'ENTREPRISE

<figure><img src="image_122.png" /></figure>
II.2.4.3 ROLES DE LA SUPERVISION

Pourquoi la supervision?

* Aide à la conduite

– Visualisation

- Concentrateur de données

– Maintenance

- Systèmes complexes et distribués

* Flexibilité

– Optimisation de conduite

- Nourrir la traçabilité

* Améliorer la productivité

* ....

ROLE 1 : AIDE A LA CONDUITE (CONTROLE ET COMMANDE)

<figure><img src="image_123.png" /></figure>

ROLE 2 : SUPPORT INFORMATION
* **Sans les superviseurs**

- **Parcours de l'installation**

* Surveillance directe de procédé

* L'opérateur se base sur des indices informels (bruits du moteur, température...)

- **Pupitre classique**

- **Panneaux synoptiques**

* **Avec les superviseurs**

* Flexibilité de mode de présentation de l'information (courbes, graphiques, animations, fond, ...)

* Structuration par bloc de variables

* Mémorisation ou prétraitement des variables de procédé.

* Perception de l'information en vrai et en temps réel

* Passage rapide d'une information à l'autre

## ROLE 3 : GESTION DES ALARMES

* Alarme = Dysfonctionnements et anomalies

* Les alarmes nécessitent l'« intervention » de l'opérateur

* Différents types d'alarmes

- Avec ou sans acquittement

- Historisation

- etc.

* Selon la « qualification » de l'opérateur, celui-ci peut acquitter les alarmes.
Exemple industriel : une plateforme pétrolière :

* La supervision se fait par la surveillance de 500 variables analogiques et 2500 variables logiques (TOR)

* Les alarmes sont générées sur des dépassements de seuils.

* Une avalanche d'alarmes peut mettre en jeu 500 alarmes (variables) en moins d'une minute.

* Un problème mineur toutes les demi-heure et un problème majeur par semaine.

* Il y a plus d'avantages à éviter un arrêt de l'installation qu'à gagner qq % de production

<figure><img src="image_124.png" /></figure>

II.2.4.4 MISE EN OEUVRE DE LA SUPERVISION AVEC LE SCADA

II.2.4.4.1 PRESENTATION DU SCADA

<figure><img src="image_125.png" /></figure>
# Supervisory Control and Data Acquisition
(SCADA)

## Une fondation de l'excellence opérationnelle

SCADA n'est pas une technologie spécifique, mais un type d'application. SCADA signifie Supervisory Control and Data Acquisition (système de **supervision industrielle** qui traite en temps réel un grand nombre de mesures et controle à distance les installations). Toute application qui reçoit les données de fonctionnement d'un système pour contrôler et optimiser ce dernier est une application SCADA. Cette application peut être un processus de distillation pétrochimique, un système de filtration d'eau, un compresseur sur un pipeline ou tout autre chose.

SCADA automation est tout simplement les moyens à une fin et non une fin en soi. A la fin de la journée, toutes les activités convergent vers la nécessité de maximiser l'utilisation des équipements au travers de l'excellence opérationnelle. Rester compétitif signifie de trouver sans cesse de nouvelles façons de travailler plus vite et plus efficacement et d'une manière plus économique. La pression est toujours – pour augmenter la productivité, l'efficacité, l'agilité, la qualité et la profitabilité tout en minimisant les coûts.

<figure><img src="image_126.png" /></figure>
II.2.4.4.2 FONCTIONNALITES DU SCADA

L'objectif du système SCADA est de mener une conduite réactive de processus.
Les fonctions en marche normale sont:

↔ L'envoi de consignes vers le procédé dans le but de provoquer son évolution.

↔ L'acquisition de mesures ou de comptes rendus permettant de vérifier que les consignes envoyées vers le procédé produisent exactement les effets escomptés.

↔ L'acquisition de mesures ou d'informations permettant de reconstituer l'état réel du procédé et/ou du produit.

↔ La recherche des causes de l'apparition d'un fonctionnement ne correspondant plus à ce qui est attendu.

↔ L'envoi vers le procédé d'ordres prioritaires permettant de déclencher des procédures de sécurité (arrêts d'urgence par exemple)

↔ La recherche des conséquences de l'apparition d'un fonctionnement non prévu ou non contrôlé,

↔ L'élaboration de solutions permettant de pallier le fonctionnement non prévu,

↔ La modification des modèles utilisés pendant le fonctionnement prévu pour revenir à ce fonctionnement : changement de la commande, réinitialisations, relaxation de contraintes, etc.,

↔ La collaboration avec les opérateurs humains pour les prises de décision critiques, pour le recueil d'informations non accessibles directement et pour l'explication de la solution curative envisagée ou appliquée.
II.2.4.4.3 COMPOSITION DU SCADA

Sous-ensembles du système SCADA

Le système SCADA comprend 3 sous-ensembles fonctionnels:

- la commande

- la surveillance

- la supervision

Partie Commande du système SCADA

Son rôle est de faire exécuter un ensemble d'opérations (élémentaires ou non suivant le niveau d'abstraction auquel on se place) au procédé en fixant des consignes de fonctionnement en réponse à des ordres d'exécution. Il s'agit de réaliser généralement une séquence d'opérations constituant une gamme de fabrication dans le but de fabriquer un produit en réponse à une demande d'un client,

La commande regroupe toutes les fonctions qui agissent directement sur les
actionneurs du procédé qui permettent d'assurer :

- le fonctionnement en l'absence de défaillance,

- la reprise ou gestion des modes,

- les traitements d'urgence,

- une partie de la maintenance corrective.
# Partie Surveillance du système SCADA

La partie surveillance:

- recueille en permanence tous les signaux en provenance du procédé et de la commande

- reconstitue l'état réel du système commandé

- fait toutes les inférences nécessaires pour produire les données utilisées pour dresser des historiques de fonctionnement

- met en œuvre un processus de traitement de défaillance le cas échéant

Dans cette définition, la surveillance est limitée aux fonctions qui collectent des informations, les archivent, font des inférences, etc. sans agir réellement ni sur le procédé ni sur la commande. La surveillance a donc un rôle passif vis-à-vis du système de commande et du procédé.

# Partie Supervision du système SCADA

Contrôler et surveiller l'exécution d'une opération ou d'un travail effectué par d'autres sans rentrer dans les détails de cette exécution.

⇒ en fonctionnement normal, son rôle est surtout de prendre en temps réel les dernières décisions correspondant aux degrés de liberté exigés par la flexibilité décisionnelle. Pour cela elle est amenée à faire de l'ordonnancement temps réel, de l'optimisation, à modifier en ligne la commande et à gérer le passage d'un algorithme de surveillance à l'autre.

⇒ en présence de défaillance, la supervision va prendre toutes les décisions nécessaires pour le retour vers un fonctionnement normal. Après avoir déterminé un nouveau fonctionnement, il peut s'agir de choisir une solution curative, d'effectuer des ré-ordonnancements "locaux", de prendre en compte la stratégie de surveillance de l'entreprise, de déclencher des procédures d'urgence, etc.
II.2.4.4.4 CARACTESTIQUE DU SCADA

* Que peut-on superviser?

* Plate-forme informatique?

* Base de données

* Communication

* Traitements

* Imagerie

* Bibliothèques d'objets

* Passerelle avec des bases de données

* Aspect technico-commercial

II.2.4.4.5 MATERIELS A SUPERVISER

* Automate Programmable Industriel

* Régulateur Industriel

* Chaîne d'acquisition et/ou traitement de données

* Ordinateur de process

* Commande Numérique de Machine Outil

* Carte d'entrées-sorties

* Système d'identification

* Terminaux d'atelier

* ...

1.3.2.6 LOGICIELS DE SUPERVISION
* **INTOUCH** Factory Systems (Wonderware)

* Fix de INTELLUTION

* **PCVUE** de Arc Informatique

* **Panorama** de Europ Supervision

* **Wizcon** de Wizcon

* **OCS Moniteur** de Schneider Electric

* **RSVIEW 32** de Rockwell Automation

* **Simatic WinCC** de Siemens

* **PlantScape** Honeywell

* ...
# CHAP.III LA PROGRAMMATION INDUSTRIELLE

## III.1 PROGRAMMATION GRAFCET

### 1 - Historique

En 1975, un groupe d'universitaires et industriels de la section "Systèmes Logiques" de l'AFCET (Association Française de Cybernétique Economique et Technique) se sont fixés l'objectif de définir un formalisme adapté à la représentation des évolutions séquentielles d'un système et ayant les caractéristiques suivantes :

- Simple;

- Accepté par tous;

- Intelligible à la fois par les concepteurs et les exploitants;

- Fournissant potentiellement des facilités de passage à une réalisation, à base matérielle et/ou logicielle de l'automatisme ainsi spécifié.

Au début, le travail consista à dresser un état de l'art des différentes approches de modélisation du comportement de tels automatismes. Trois grandes classes d'outils de modélisation furent ainsi recensées :

- les organigrammes ;

- Les Réseaux de Pétri;

- Les graphes d'état.

L'analyse des avantages et inconvénients de ces outils mena, en 1977, à la définition du **GRAFCET**, ainsi nommé pour, à la fois marquer l'origine de ce nouvel outil de modélisation « **AFCET** » et son identité **GRAphe** **Fonctionnel de Commande Etapes-Transitions**). Les résultats de ces travaux firent l'objet d'une publication officielle dans la revue "**Automatique et Informatique Industrielle**" en décembre 1977, date que la communauté considère aujourd'hui comme correspondant à la date de naissance effective du **GRAFCET**.

### 2 - Définition

Le **GRAFCET** (**GRAphe** **Fonctionnel de Commande** par **Etapes** et **Transitions**) ou **SFC** (**Sequential Fonction Chart**) est un outil **graphique** qui décrit les différents comportements de l'évolution d'un **automatisme** et établit une correspondance à caractère séquentiel et combinatoire entre :

- Les **ENTREES**, c'est-à-dire les transferts d'informations de la Partie Opérative vers la Partie Commande,
Les **SORTIES**, transferts d'informations de la Partie Commande vers la Partie Opérative.

C'est un outil graphique puissant, directement exploitable, car c'est aussi un langage pour la plupart des **API** existants sur le marché. Lorsque le mot **GRAFCET** (*en lettre capitale*) est utilisé, il fait référence à l'outil de **modélisation**. Lorsque le mot **grafcet** est écrit en minuscule, il fait alors référence à **un modèle** obtenu à l'aide des règles du **GRAFCET**. (Exemple : *J'ai utilisé le GRAFCET pour concevoir cette machine, jette un coup d'œil sur le grafcet de sécurité et dit moi ce que tu pense*)

Le **GRAFCET** comprend :

des **étapes** associées à des actions ;

des **transitions** associées à des **réceptivités** ;

des **liaisons orientées** reliant étapes et transitions.

## 3 - Description du GRAFCET

La description du comportement attendu d'un automatisme peut se représenter par un **GRAFCET** d'un certain « **niveau** ». La caractérisation du «niveau» du GRAFCET nécessite de prendre en compte trois dimensions :

**Le point de vue**, caractérisant le point de vue selon lequel un observateur s'implique dans le fonctionnement du système pour en donner une description.

On distingue trois points de vue :

Un point de vue système,

Un point de vue Partie Opérative,

Un point de vue Partie Commande.

**La spécifications**, caractérisant la nature des spécifications techniques auxquelles doit satisfaire la Partie Commande. On distingue trois groupes de spécifications :

Spécifications fonctionnelles,

Spécifications technologiques,

Spécifications opérationnelles.

**La finesse**, caractérisant le niveau de détail dans la description du fonctionnement, d'un niveau global (ou macro-représentation) jusqu'au niveau de détail complet où toutes les actions et informations élémentaires sont prises en compte.
# 4 - Les concepts de base du GRAFCET

## 4.1 - Etape

Une **étape** symbolise un état ou une partie de l'état du système automatisé. L'étape possède deux états possibles : **active** représentée par un jeton dans l'étape ou **inactive**. L'étape i, représentée par un carré repéré numériquement, possède ainsi une variable d'état, appelée variable d'étape Xi. Cette variable est une variable booléenne valant 1 si l'étape est active, 0 sinon.

La situation initiale d'un système automatisé est indiquée par une étape dite **étape initiale** et représentée par un carré double.

<figure><img src="image_127.png" /></figure>

Remarque : Dans un grafcet il doit y avoir au moins une étape initiale.

## 4.2 - Actions associées aux étapes

A chaque étape est associée une **action** ou plusieurs, c'est à dire un ordre vers la partie opérative ou vers d'autres grafcets. Mais on peut rencontrer aussi une même action associée à plusieurs étapes ou une étape **vide** (sans action).

<figure><img src="image_128.png" /></figure>

## 4.3 - Transition

Une transition indique la possibilité d'évolution qui existe entre deux étapes et donc la succession de deux activités dans la partie opérative. Lors de son franchissement, elle va permettre l'évolution du système. A chaque transition est associée une condition logique appelée réceptivité qui exprime la condition nécessaire pour passer d'une étape à une autre.
<figure><img src="image_129.png" /></figure>

La réceptivité qui est une information d'entrée qui est fournie par :

l'opérateur : pupitre de commande,
la partie opérative : états des capteurs,
du temps, d'un comptage ou tout opération logique, arithmétique...
du grafcets : d'autres grafcet pour la liaison entre grafcets ou de l'état courant
des étapes du grafcet (les Xi),
d'autres systèmes : dialogue entre systèmes,
.....

Remarque: Si la réceptivité n'est pas précisée, alors cela signifie qu'elle est toujours vraie. (=1)

## 4.4 - Liaisons orientées

Elles sont de simples traits verticaux qui relient les étapes aux transitions et les transitions aux étapes. Elles sont normalement orientées de haut vers le bas. Une flèche est nécessaire dans le cas contraire.

<figure><img src="image_130.png" /></figure>
## 4.3 - Classification des actions associées aux étapes

L'action associée à l'étape peut être de 3 types : **continue**, **conditionnelle** ou **mémorisée**. Les actions peuvent être classées en fonction de leur durée par rapport à celle de l'étape.

### 4.3.1 - Actions continues :

<figure><img src="image_131.png" /></figure>

L'ordre est émis, de façon continue, tant que l'étape, à laquelle il est associé, est active.

### 4.3.2 - Actions conditionnelles :

Une action **conditionnelle** n'est exécutée que si l'étape associée est active et si la condition associée est vraie. Elles peuvent être décomposées en 3 cas particuliers:

#### 4.3.2.1 - Action conditionnelle simple : Type C

<figure><img src="image_132.png" /></figure>

#### 4.3.2.1 - Action retardée : Type D (delay)

Le temps intervient dans cet ordre conditionnel comme condition logique. L'indication du temps s'effectue par la notation générale " t / xi / q " dans
laquelle "xi" indique l'étape prise comme origine du temps et "q" est la
durée du retard.

<figure><img src="image_133.png" /></figure>

**Exemple :** "t /x6/ 5s" : prendra la valeur logique 1, 5s après la dernière activation de l'étape 6.

4.3.2.2 - Action de durée limitée: *Type L (limited)*

L'ordre est émis dès l'activation de l'étape à laquelle il est associé ; mais la
durée de cet ordre sera limitée à une valeur spécifiée.

<figure><img src="image_134.png" /></figure>

L'ordre "A" est limité à 2s après l'activation de l'étape 4.

4.3.3 - Action maintenue sur plusieurs étapes:

Afin de maintenir la continuité d'une action sur plusieurs étapes, il est
possible de répéter l'ordre continu relatif à cette action, dans toutes les
étapes concernées ou d'utiliser une description sous forme de séquences
simultanées (Les séquences simultanées seront traitées ultérieurement).
<figure><img src="image_135.png" /></figure>

### 4.3.4 - Action mémorisée :

Le maintien d'un ordre, sur la durée d'activation de plusieurs étapes consécutives, peut également être obtenu par la mémorisation de l'action, obtenue par l'utilisation d'une fonction auxiliaire appelée fonction mémoire.

<figure><img src="image_136.png" /></figure>
<figure><img src="image_137.png" /></figure>

Cette fonction pourra être décrite par un **GRAFCET**

# 5 - Règles d'évolution d'un GRAFCET

## 5.1 - Règle N°1 : Condition initiale

A l'instant initial, seules les étapes initiales sont actives.

## 5.2 - Règle N°2 : Franchissement d'une transition.

Pour qu'une transition soit validée, il faut que toutes ses étapes amont (immédiatement précédentes reliées à cette transition) soient actives. Le franchissement d'une transition se produit lorsque la transition est validée, **ET seulement si** la réceptivité associée est **vraie**.

## 5.3 - Règle N°3 : Evolution des étapes actives

Le franchissement d'une transition entraîne obligatoirement l'activation de toutes les étapes immédiatement suivantes et la désactivation de toutes les étapes immédiatement précédentes.
<figure><img src="image_138.png" /></figure>

## 5.4 - Règle N°4 : Franchissement simultané

Toutes les transitions simultanément franchissables à un instant donné sont simultanément franchies.

## 5.5 - Règle N°5 : Conflit d'activation

Si une étape doit être simultanément désactivée par le franchissement d'une transition aval, et activée par le franchissement d'une transition amont, alors elle reste active. On évite ainsi des commandes transitoires (néfastes à la partie opérative).

# 6 - Les structures de base

## 6.1 - Notion de Séquence :

Une séquence, dans un Grafcet, est une suite d'étapes à exécuter l'une après l'autre. Autrement dit chaque étape ne possède qu'une seule transition AVAL et une seule transition AMONT.
<figure><img src="image_139.png" /></figure>

## 6.2- Saut d'étapes et reprise de séquence

Le saut d'étapes permet de sauter une ou plusieurs étapes lorsque les actions associées sont inutiles à réaliser. La reprise de séquence (ou boucle) permet de reprendre, une ou plusieurs fois, une séquence tant qu'une condition n'est pas obtenue.

<figure><img src="image_140.png" /></figure>
## 6.3 - Aiguillage entre deux ou plusieurs séquences (Divergence en OU)

On dit qu'il y a **Aiguillage** ou **divergence en OU** lorsque le grafcet se décompose en deux ou plusieurs séquences selon un choix conditionnel. Comme la divergence en OU on rencontre aussi la convergence en OU. On dit qu'il y a convergence en OU, lorsque deux ou plusieurs séquences du grafcet converge vers une seule séquence.

<figure><img src="image_141.png" /></figure>

Si les deux conditions a et d sont à 1 simultanément, les étapes 2 et 4 vont devenir actives simultanément, situation non voulue par le concepteur. Donc elle doivent être des conditions **exclusives**

## 6.4 - Parallélisme entre deux ou plusieurs séquences (ou séquences simultanées ou divergence-convergence en ET) :

Au contraire de l'aiguillage où ne peut se dérouler qu'une seule activité à la fois, On dit qu'on se trouve en présence d'un parallélisme structurel, si plusieurs activités indépendantes pouvant se dérouler en parallèle. Le début d'une divergence en ET et la fin d'une convergence en ET d'un parallélisme structurel sont représentés par deux traits parallèles.
<figure><img src="image_142.png" /></figure>

La synchronisation permet d'attendre la fin de plusieurs activités se déroulant en parallèle, pour continuer par une seule.

## 7 - Liaison entre grafcets :

Une étape dans un grafcet peut servir comme réceptivité à une autre étape d'un autre grafcet. Cette méthode est utilisée aussi pour synchroniser deux grafcets c'est à dire rendre l'évolution de l'un dépendente de l'évolution de l'autre.
<figure><img src="image_143.png" /></figure>

# 8 - Mise en équation d'un grafcet :

## 8.1 - Règle générale :

Pour qu'une étape soit activée il faut que :

- L'étape immédiatement précédente soit active ;

- La réceptivité immédiatement précédente soit vraie ;

- L'étape immédiatement suivante soit non active ;

- Après activation l'étape mémorise son état.
<figure><img src="image_144.png" /></figure>

Equation d'activation de l'étape de rang n

9 - Exemple

Soit le système automatisé suivant :

<figure><img src="image_145.png" /></figure>

Le chariot fait des navettes entre un point A et un point B. On veut le commander grâce à deux boutons : Marche et Arrêt. C'est à dire que le chariot commence à effectuer ses cycles une fois le bouton Marche aura été appuyé et il arrêtera une fois son cycle terminé si l'on a appuyé sur le bouton Arrêt.

**Proposition de grafect :**
<figure><img src="image_146.png" /></figure>

Cette solution a un inconvénient : pour arrêter le chariot il faut appuyer sur Arrêt au moment ou le chariot arrive en A. Ce n'est pas satisfaisant. L'idée est d'avoir un grafcet qui lit les boutons et qui commande l'autre. Ce sera un grafcet **superviseur** :

<figure><img src="image_147.png" /></figure>

Dans les cas plus généraux et plus complexes, le grafcet maitre (superviseur) s'occupe du démarrage, de la séquence, de la synchronisation et de l'arrêt de différentes **taches**. Chaque tâche est décrite par un grafcet commandé par le superviseur ou **grafcet de gestion des taches** on parle ici de **Notion de structures hiérarchisées**
# COURS INFORMATIQUE INDUSTRIELLE PAR MASTER TUNDA

## III.2 EXEMPLE DE PROGRAMMATION

### PROGRAMMATION DES APIs «Siemens S7-200»

<figure><img src="image_148.png" /></figure>

Affectation des bornes du S7-200 (CPU 221)
<figure><img src="image_149.png" /></figure>

# Sorties à relais

## Exécution cyclique du programme dans le S7-200

### xécution cyclique du programme dans le S7-200

Tous les automates SIMATIC fonctionnent de façon cyclique. Le cycle commence par la lecture des états des entrées et leur transfert dans la mémoire image des entrées MIE (phase d'acquisition des entrées). Cette mémoire image est la source d'approvisionnement du programme pour son exécution. En cours de traitement, le programme range les résultats des opérations dans la mémoire image des sorties MIS. A la fin du programme, les états contenus dans la MIS sont transférés aux sorties physiques (phase d'émission des sorties), et le cycle reprend au début.
<figure><img src="image_150.png" /></figure>
Configuration de l'interface pour liaison PC/PG-API

<figure><img src="image_151.png" /></figure>

1. Cliquez sur l'icône de communication dans la barre de navigation.

2. Vérifier les paramètres de la communication.
3. Double-cliquez sur le champ de mise à jour de la communication. Le logiciel devrait alors identifier et inscrire de lui-même la CPU connectée.

4. Si la CPU n'est pas identifiée ou s'il apparaît un message signalant que la communication n'est pas possible, double-cliquez sur le champ Câble PPI.

5. Dans l'interface PG/PC, sélectionnez le câble PC/PPI puis cliquez sur Propriétés.

6. Dans la fenêtre PPI, réglez l'adresse CPU sur 2 et la vitesse de transmission sur 9,6 kbits/s. Dans

La fenêtre Connexion locale, sélectionnez l'interface à laquelle est connecté le câble PC/PPI. Dans chaque fenêtre, confirmez votre choix par OK. 7. Dans la fenêtre Liaisons de communication, double cliquez à nouveau sur le champ de mise à jour de la communication. La CPU est alors identifiée et inscrite automatiquement. Cette opération peut durer quelques secondes. Fermez alors la fenêtre Liaisons de communication.

## Combinaisons logiques :

Les opérations combinatoires sur bits utilisent deux chiffres : 1 et 0. Ces deux chiffres sont à la base du système de numération binaire et sont appelés chiffres binaires ou bits. Pour les contacts et les bobines, 1 signifie activé ou excité et 0 signifie désactivé ou désexcité. Les opérations de combinaison sur bits évaluent les états de signal 1 et 0 et les combinent selon la logique booléenne. Le résultat de ces combinaisons est égal à 1 ou 0. Il s'agit du résultat logique (RLG).

Il existe des opérations combinatoires sur bits pour effectuer les fonctions suivantes :
<table><thead><tr><th>Contact/contacteur</th><th></th><th>Instruction dans l'API avec la fonction correspondante</th></tr></thead><tbody><tr><td></td><td>Interrogation :<br>Est-ce qu'il circule du courant ?<br>Si oui, le résultat de l'interrogation est vrai.<br>(interrogation à "1")</td><td></td></tr><tr><td></td><td>Interrogation : est-ce qu'il ne circule pas de courant ?<br>Si oui (pas de courant), le résultat de l'interrogation est vrai.<br>(interrogation à "0")</td><td></td></tr><tr><td></td><td>Bobine :<br>si une bobine est alimentée avec la valeur "vraie" (courant), elle est activée (attraction)</td><td></td></tr><tr><td></td><td>Couplage en série :<br>(combinaison ET).<br>Le premier ET le deuxième contact doivent être fermés pour laisser passer le courant</td><td></td></tr><tr><td></td><td>Couplage en parallèle<br>(combinaison OU).<br>Le premier OU le deuxième contact doit être fermé pour laisser passer le courant</td><td></td></tr></tbody></table>

Les réseaux servent à structurer un programme. On entre chaque circuit dans un réseau.
Les réseaux servent à structurer un programme. On entre chaque circuit dans un réseau.

<figure><img src="image_152.png" /></figure>

Les autres modes de représentation sont la liste d'instructions (Langage LIST) et le logigramme (Langage LOG). Dans le menu Affichage, vous pouvez commuter entre les langages CONT, LIST et LOG.
Instructions
Instructions

<table><thead><tr><th colspan="2">Instruction</th></tr></thead><tbody><tr><td>L'instruction est la plus petite entité d'un programme utilisateur d'API. Une instruction se compose d'une partieopérande.</td><td></td></tr><tr><td><table><thead><tr><th>Opération</th><th>Opérande</th></tr></thead><tbody><tr><td>(Que faut-il faire ?)<br>La partie opération d'une instruction (ici une fonction ET) spécifie la fonction qui doit être réalisée lors de l'exécution de l'instruction.</td><td>(Avec quoi faut-il le faire ?)<br>La partie opérande d'une instruction (ici l'entrée 0.0) précise l'élément concerné par l'opération. Il se décompose lui même en un identificateur d'opérande et un paramètre.</td></tr><tr><td>Identificateur d'opérande</td><td>Paramètre</td></tr><tr><td>L'identificateur d'opérande indique la zone dans l'API. Ici l'opération porte sur une Entrée. Exemple d'autres zones possibles : Sortie ou Mémento.</td><td>Le paramètre est l'adresse de l'opérande ; il se compose par ex. d'une adresse d'octet et d'un numéro de bit.</td></tr></tbody></table></td><td></td></tr></tbody></table>
# CHAP.IV LA SUPERVISION INDUSTRIELLE ET LE SCADA

## IV.1 DEFINITIONS

### SUPERVISION

➡ Les logiciels de supervision sont une classe de programmes applicatifs dédiés au contrôle de processus et à la collecte d'informations en temps réel depuis des sites distants, en vue de maîtriser un équipement.

**SCADA** (supervisory control and data acquisition)

➡ Un système SCADA inclut des composants hardware et software. Les éléments hardware assurent la collecte des informations qui sont à disposition du calculateur sur lequel est implanté de le logiciel de supervision.
Le calculateur traite ces données et en donne une représentation graphique réactualisée périodiquement. Le système SCADA enregistre les évènements dans des fichiers ou les envoie sur une imprimante, par mail... Le système surveille les conditions de fonctionnement anormale et génère des alarmes.

<figure><img src="image_153.png" /></figure>
IV.2 LES PRINCIPALES PROCEDES INDUSTRIELS
# IV.3 AVENEMENTS DE LA SUPERVISION INDUSTRIELLE

## 1 - Pour les procédés continus

- Au début, la supervision des procédés était purement humaine: L'ouvrier avait connaissance en temps réel des données qui le concernent. Le contre-maître était informé dans l'heure des événements qui concernaient son équipe, puis l'information montait plus ou moins vite et plus ou moins diluée vers le haut.

- Il s'est avéré utile de **centraliser les données** et on a vu apparaître ainsi des **salles de contrôle** avec des mûrs couverts de tableaux, de vues synoptiques et d'indicateurs représentant les états de variables.

**Les opérateurs disposaient de commandes principales sous forme de manettes, rhéostats, boutons pousoirs, etc.**

- Les procédés sont devenus de plus en plus complexes et **il est devenu difficile pour un seul opérateur d'avoir une vue synthétique et globale du procédé**.

La multiplication des écrans avec des synoptiques animées a permis de représenter sur des surfaces beaucoup plus petites une multitude de vues accessibles à volonté.

(Les premiers systèmes étaient complexes et spécifiques)

- D'autres **fonctionnalités sont apparues**: enregistrement d'erreurs "au fil de l'eau", gestion des alarmes, etc.

## 2 - Pour les procédés manufacturiers

Les procédés manufacturiers ont pu se passer pendant longtemps de la supervision, mais avec l'avènement de l'automatisation, il est **devenu nécessaire de centraliser dans un lieu unique les données** concernant l'avancement de la fabrication.

La **conduite flexible** suppose une interaction constante entre les équipements de pilotage et les systèmes d'information de l'entreprise.
## IV.4 FONCTIONS DE LA SUPERVISION DE LA SUPERVISION INDUSTRIELLE

### FONCTION1 : REPRESENTATION SYNOPTIQUE

→ **Synoptique** fonction essentielle de la supervision, fournit une représentation synthétique, dynamique et instantanée de l'ensemble des moyens de production de l'unité

<figure><img src="image_154.png" /></figure>
# FONCTION2 : REPRENSATION GRAPHIQUE AVEC DES COURBES

<figure><img src="image_155.png" /></figure>

## Courbes:

- donne une représentation graphique de différentes données du processus

- donne les outils d'analyse des variables historisées

<figure><img src="image_156.png" /></figure>

# FONCTION3 : ALARMES
→ Alarmes: - calcule en temps réel les conditions de déclenchement des alarmes

- affiche l'ensemble des alarmes selon des règles de priorité,

- donne les outils de gestion depuis la prise en compte jusqu'à la résolution complète

- assure l'enregistrement de toutes les étapes de traitement de l'alarme

<figure><img src="image_157.png" /></figure>

## FONCTION4 : HISTORISATION DU PROCEDE

→ Historisation du procédé:

- permet la sauvegarde périodique de grandeurs (archivage au fil de l'eau)

- permet la sauvegarde d'événements horodatés (archivage sélectif)

- fournit les outils de recherche dans les données archivées

- fournit la possibilité de refaire fonctionner le synoptique avec les données archivées (fonction de magnétoscope ou de replay)

- permet de garder une trace validée de données critiques (traçabilité de données de production)

<figure><img src="image_158.png" /></figure>

<figure><img src="image_159.png" /></figure>
## FONCTION5 : GESTION DES GAMMES DE FABRICATION ET RECETTES

→ Gestion des gammes de fabrication et recettes:

- donne un outil de gestion des lots de fabrication (batchs)

- gère les paramètres de réglage des machines pour chacun des lots (recettes)

<figure><img src="image_160.png" /></figure>

## IV.5 FOURNISSEURS DE SUPERVISSEURS INDUSTRIELS

→ Quelques superviseurs commerciaux:

Schneider
Electric

Monitor Pro, Vidjo
Look, Citect

Codra

Panorama P2,
Panorama E2

<figure><img src="image_161.png" /></figure>

TopKapi

ARC
Informatique

PcVue, PlantVue

<figure><img src="image_162.png" /></figure>

ControlMaestro,
Wizcon

SIEMENS

SIMATIC WinCC
Version 7

<figure><img src="image_163.png" /></figure>

Genesis 32

<figure><img src="image_164.png" /></figure>

InTouch,
InControl
IV.6 DOMAINES D'APPLICATION DE LA SUPERVISION ET EXEMPLE

<figure><img src="image_165.png" /></figure>

Domaines d'application :

↔ Le pilotage de grandes installations industrielles automatisées:

- métallurgie (laminoir) production pétrolière (distillation),

- production et stockage agroalimentaire (lait, céréales...)

- production manufacturière (automobile, biens de consommation...)

↔ Le pilotage d'installations réparties:

- alimentation en eau potable,

- traitement des eaux usées,

- gestion des flux hydrauliques (canaux, rivières, barrages...)

- gestion de tunnels (ventilation, sécurité)

↔ La gestion technique de bâtiments et gestion technique centralisée (GTC):

- gestion des moyens de chauffage et d'éclairage (économies d'énergie)

- gestion des alarmes incendies

- contrôle d'accès, gestion des alarmes intrusion
# CHAP.V LA SUPERVISION ET LE SYSTEME D'INFORMATION INDUSTRIEL

## V.1. DE LA SUPERVISION AU MES

### VI.1.1. GENERALITES SUR MES (MANUFACTURING EXECUTION SYSTEME)

#### V.1.1. Définition du MES

**Définition du NIST : (National Institute of Standardisation)**

“Un MES est un regroupement de fonctions qui permet la gestion et l'optimisation des activités de production depuis le lancement d'un ordre de fabrication jusqu'aux produits finis.

En conservant des données courantes et précises, il permet en fonction des activités qui apparaissent, de faire des rapports, de proposer des solutions et de les mettre en place.

Un MES procure des informations clefs sur les activités de production aux différents systèmes de décision à travers l'entreprise.”

Les informations données par le M.E.S. doivent:

donner les indications aux services commerciaux pour la prise de commande (délais de fabrication compte tenu des commandes en cours, des fabrications en cours, des cadences réelles et des approvisionnements)

permettre la mise en fabrication rapide d'un nouveau produit (recettes, procédures de travail, formation...)

proposer le réordonnancement de la production face à un imprévu

diagnostiquer rapidement une dérive de production

respecter les exigences réglementaires
### I.3.3.2 FONCTIONS DU MES

1. Allocation des ressources

2. Distribution des travaux

3. Répartition et gestion des tâches

4. Contrôle de la documentation

5. Acquisition des données

6. Gestion des temps de travail / Suivi du personnel

7. Suivi et gestion de la qualité

8. Gestion et suivi du processus de fabrication

9. Gestion et suivi de maintenance

10. Traçabilité des produits

11. Analyse de performance
# I.4 INTRODUCTION AU SYSTEME D'INFORMATION INDUSTRIEL MES

## I.4.1 GENERALITES

L'outil industriel est un maillon essentiel qui s'insère dans la chaîne de valeur de l'entreprise. La recherche d'une optimisation globale impose que la gestion industrielle soit un maillon intégré dans le système d'information de l'entreprise. Le Système d'Information Industriel doit donc permettre de relier l'outil industriel aux solutions de gestion de l'entreprise. Il doit également fournir aux opérateurs, aux techniciens et aux managers toutes les informations nécessaires au pilotage global de l'activité.

<figure><img src="image_166.png" /></figure>
Dans cette perspective, le MESA propose aujourd'hui une représentation qui permet de positionner les 11 fonctions décrites il y a plusieurs années dans une représentation générale des opérations assumées par une entreprise.

Dans ce schéma, le Système d'Information Industriel apparaît dans une fonction générale de lien entre la fabrication et les activités opérationnelles généralement prises en charge dans un ERP mais aussi dans des solutions CRM, GMAO, Supply Chain Management etc. Outre le suivi de fabrication dont les données permettent de calculer les Prix de Revient Industriel, la visibilité sur les stocks permet à la logistique de disposer d'informations plus précises pour son organisation, etc.

La visibilité temps réel sur les activités de fabrication y est présentée comme un levier pour des « initiatives stratégiques » parmi lesquelles on retrouve la notion d'entreprise temps réel et la gestion du cycle de vie des produits.

Dans ce nouveau positionnement, le Système d'Information Industriel joue un rôle de générateur et de distributeur des données qui sont utilisées à tous les niveaux de l'entreprise pour réaliser la fabrication, les activités opérationnelles et déclencher des initiatives stratégiques.

<figure><img src="image_167.png" /></figure>
## I.4.2 Les objectifs du système d'information industriel MES

### Connecter les équipements

Les fabricants d'équipements industriels sont nombreux et le parc installé comprend généralement plusieurs générations d'équipements. Le Système d'Information Industriel doit donc permettre d'une part la connexion au parc existant sans le remettre en cause et d'autre part une connexion facile aux nouveaux équipements. Les éditeurs doivent donc proposer des connecteurs entre le Système d'Information Industriel et les équipements, ceux-ci doivent reposer sur des standards pour assurer la connexion quel que soit le constructeur des équipements installés dans les ateliers.

### Superviser les procédés de fabrication automatisés

La supervision des procédés de fabrication est, en partie, la déclinaison du point précédent pour les procédés automatisés. Elle permet de prendre en charge le pilotage des installations, la surveillance du bon fonctionnement et d'alerter en cas de dysfonctionnement. Son intégration étroite avec la gestion de l'exécution, via des processus, permet d'intégrer les procédés automatisés dans le processus global de production dans un ensemble cohérent, sans discontinuité. A ce titre, elle est une brique du Système d'Information Industriel.
## Rendre compte de l'exécution

Cette fonction est toujours proposée dans les solutions de gestion de la fabrication. Les solutions proposées sont à minima de simples écrans de la GPAO, redésignées pour assurer une ergonomie compatible avec l'environnement industriel. Dans le même esprit, des solutions proposent pour les industries pharmaceutiques la présentation sur écran de formulaires électroniques se substituant aux traditionnelles fiches papier.

Des solutions plus avancées permettent de prendre en compte l'ensemble des événements de fabrication, y compris les interventions connexes à la fabrication elle-même (maintenance, contrôles qualité, consommations d'énergie), y compris également les données issues de la supervision, comme une courbe de montée en température d'un four. Ces solutions enregistrent les données au fur et à mesure de l'exécution et les mettent en forme dans le format souhaité, sans intervention spécifique de saisie de données mais comme résultat des actions menées.

## Analyser pour optimiser la fabrication

Les données collectées tout au long de la fabrication permettent de constituer un compte rendu d'exécution mais sont également le support à l'analyse et au pilotage de l'activité.

La constitution d'indicateurs temps réel permet de suivre au fur et à mesure, sans décalage temporel, la performance de la fabrication. Des modules métier sont également proposés qui permettent d'exploiter les données disponibles selon des axes spécifiques comme la généalogie, la consommation d'énergie ou la validation de la conformité règlementaire.

Il sera également possible de construire des analyses croisées ou des analyses de causes qui ouvriront une réflexion sur des leviers d'amélioration.
### III.2. MES et flux d'informations

<figure><img src="image_168.png" /><figcaption>Figure 1 FLUX D' INFORMATION SANS MES</figcaption></figure>

<figure><img src="image_169.png" /><figcaption>Figure 2 FLUX D' INFORMATION AVEC MES</figcaption></figure>
<figure><img src="image_170.png" /><figcaption>Figure 3 FLUX D' INFORMATION ERP-MRP-MES</figcaption></figure>

<figure><img src="image_171.png" /><figcaption>Figure 4 COMMUNICATION ENTRE LES SYSTEMES INFORMATIQUES D' ENTREPRISE ET D' ATELIER (ERP-SCADA-MES -CONTROLE ET COMMANDE)</figcaption></figure>
### III.3. Fonctions couvertes par le MES

Le MESA a défini les fonctions principales du MES, reprises ensuite dans la norme ISA S95. Certaines ont un caractère opératoire tandis que d'autres concernent plutôt des fonctions transversales de l'entreprise

- Gestion des ressources

Personnel, Matériels et Equipements et aussi documents, énergies, matières premières, ingrédients...

Réservation, Mise à disposition pertinente, gestion temps réel des ressources de l'atelier ...

Historisation du statut et de l'utilisation de ces ressources

- Ordonnancement

Gestion des ordres de fabrication en tenant compte de l'état réel de l'atelier (ressources disponibles et ou autorisées), en prenant en compte ses performances nominales et en visant l'optimisation de son fonctionnement.

- Cheminement des produits et des lots / Suivi des opérations

Suivi des productions en temps réel, à travers les gammes de fabrication en prenant en compte les aléas de production, les parcours sur différentes lignes ou machines, cette fonction permet l'optimisation des stocks et la prise en compte de tâches non prévues (maintenance, attente,...). Cette fonction participe à la généalogie du produit.

- Gestion des documents de l'atelier

Recettes de fabrication, schémas, organisation, procédures, instructions, avis techniques, modes opératoires aides contextuelles...

Mise à disposition de documents existants et/ou génération de documents sur événements, en particulier pour la traçabilité.
- <u>Collecte et acquisition de données</u>

Interfaçage de toutes formes de données de production acquises manuellement et/ou
automatiquement au niveau du Contrôle Commande (Automates, IHM, Superviseurs, CNC,
SNCC, autres systèmes automatiques d'acquisition)

- <u>Gestion du personnel</u>

Suivi par fonction et par disponibilité de la mise à disposition et de l'affectation avec enregistrement des tâches et du temps passé.

- <u>Gestion de la Qualité</u>

Mise en œuvre de différentes méthodes de contrôle. Processus de conformité libératoire.
Analyse continue et en temps réel des données de qualité demandée et réelle - Alerte sur les
dérives, recherche des causes et suggestion ou exécution des mesures correctives

- <u>Gestion de la maintenance</u>

Planification et enregistrement des actions de maintenance préventive en terme de périodicité et de contenu - déclenchement et enregistrement de la maintenance curative. Historisation par machine et par atelier. La gestion de maintenance des équipements est une nécessité pour l'obtention de l'agrément ISO.

- <u>Tracabilité ascendante et descendante du produit / Généalogie</u>

Permet de connaître à tout moment l'état de chaque batch, lot ou campagne engagés (ensemble de toutes les ressources engagées et consommées et de tous les évènements survenus). Entretien d'un historique à l'origine de la généalogie du produit fabriqué.

- <u>Analyse des performances</u>

Compare les résultats obtenus aux objectifs fixés par l'entreprise, les clients ou les contraintes réglementaires. Un certain nombre d'indicateurs de performance pour la production et la maintenance font l'objet de définitions quasi-normalisées.

Tout ou partie de ces fonctions peut être utile selon le type d'industrie (pharmaceutique, agroalimentaire, chimique, automobile, aéronautique, électronique...), que l'on ait à faire à une fabrication faisant appel à un procédé du type batch, continu ou manufacturier. Compte tenu du caractère modulaire des progiciels MES, leur implémentation peut être progressive.
### III.6 CONCLUSION

L'industrie est aujourd'hui globalisée et de nombreuses multinationales opèrent de par le monde.

La stratégie qui prévalait de choisir et de déployer des applications industrielles hétérogènes par équipement, par ligne ou par site n'est plus la stratégie la plus pertinente dans ce contexte et les offreurs proposent au marché des alternatives.

Ces nouvelles solutions permettent d'envisager le déploiement d'un Système d'Information Industriel global et homogène, étape par étape sur l'ensemble d'un parc industriel.

Pour réussir l'urbanisation du système d'information industriel, il est nécessaire de définir ou redéfinir une vision commune dans l'entreprise concernant les données métiers, les indicateurs de performances et les processus de fabrication et de gestion des exceptions. Ce travail préalable est en soi porteur d'amélioration dans l'entreprise mais la construction d'un Système d'Information Industriel sur ces bases permet d'élargir ces améliorations à de nombreux domaines.

En effet, la collecte et la distribution de données qui vont pouvoir être organisées grâce au Système d'Information Industriel permet en premier lieu une amélioration des performances de la fabrication elle-même. En effet, l'entreprise dispose alors d'une visibilité temps réel sur les opérations, autorisant une forte réactivité. Par ailleurs, l'analyse des données collectées permet d'identifier des gisements d'optimisation des processus pour améliorer la productivité et la qualité.

Mais un Système d'Information Industriel se conçoit comme une brique de liaison entre les opérations de production et les activités opérationnelles gérées par l'ERP. Les données de fabrication peuvent alors être propagées sur l'ensemble du Système d'Information de l'entreprise pour disposer par exemple de prix de revient industriels comparables entre les sites, d'information temps réel sur la situation des stocks pour répondre aux demandes clients, etc.
# CHAP.VI LA SUPERVISION INDUSTRIELLE ET LE SYSTEME D'INFORMATION D'UNE ENTREPRISE INDUSTRIELLE (ERP)

## V.1.1 PRESENTATION DU ERP

L'acronyme ERP signifie "Enterprise Ressource Planning" traduit en français par Progiciel de Gestion Intégré ou PGI. ERP est le terme le plus couramment utilisé.

Emanant d'un concepteur unique, un ERP est un progiciel qui permet de gérer l'ensemble des processus d'une entreprise intégrant l'ensemble de ses fonctions comme la gestion des ressources humaines, la gestion financière et comptable, l'aide à la décision, la vente, la distribution, l'approvisionnement, la production ou encore du e-commerce.

Le principe fondateur d'un ERP est de construire des applications informatiques correspondant aux diverses fonctions citées précédemment de manière modulaire sachant que ces modules sont indépendants entre eux, tout en partageant une base de données unique et commune au sens logique.

L'autre principe qui caractérise un ERP est l'usage de ce qu'on appelle un moteur de workflow et qui permet, lorsqu'une donnée est enregistrée dans le SI, de la propager dans les modules qui en ont l'utilité, selon une programmation prédéfinie.

Ainsi, on peut parler d'ERP lorsqu'on est en présence d'un SI composé de plusieurs applications partageant une seule et même base de données, par le biais d'un système automatisé prédéfini et éventuellement paramétrable, un moteur de workflow.

Les ERP sont principalement destinés aux grandes entreprises ou multinationales du fait d'un coût important. Cependant, le marché des ERP tend à se démocratiser vers les PME/PMI. Certains éditeurs conçoivent un
ERP uniquement pour ce type de structure. Enfin, il existe des ERP open source ce qui revient moins cher, puisqu'il n'y a pas de coût de licence (ils sont gratuits). En revanche, il faut inclure dans le calcul du coût d'acquisition total, les frais de maintenance et l'assistance technique.

Concrètement, les avantages de la mise en place d'un ERP sont les suivants:

* L'intégrité et l'unicité du SI, c'est à dire qu'un ERP permet une logique et une ergonomie unique à travers sa base de données, elle aussi unique au sens "logique". Ceci se traduit par le fait qu'il peut exister plusieurs bases de données "physiques" mais celles-ci respectent la même structure. En bref, un ERP permet d'éviter la redondance d'information entre différents SI de l'entreprise.

* L'utilisateur a la possibilité de récupérer des données de manière immédiate, ou encore de les enregistrer. Un avantage important, les mises à jour dans la base de données sont effectuées en temps réel et propagées aux modules concernés.

* Un ERP est un outil multilingue et multidevise, il est donc adapté au marché mondial, en particulier aux multinationales.

* Pas d'interface entre les modules, il y a synchronisation des traitements et optimisation des processus de gestion. De même, la maintenance corrective est simplifiée car celle-ci est assurée directement par l'éditeur et non plus par le service informatique de l'entreprise. (Celui-ci garde néanmoins sous sa responsabilité la maintenance évolutive: amélioration des fonctionnalités, évolution des règles de gestion, etc.).

* Un ERP permet de maîtriser les stocks, élément important pour la plupart des entreprises car les stocks coûtent chers

Par conséquent, les ERP gèrent et prennent en charge plusieurs périodes (pour les exercices comptables par exemple), plusieurs devises, plusieurs
langues pour les utilisateurs et clients, plusieurs législations, plusieurs axes d'analyse en informatique décisionnelle.

Mais l'implantation comporte plusieurs risques: des risques **organisationnels** (le progiciel et l'organisation de l'entreprise doivent cohabiter), de **mise en œuvre** (au niveau formation utilisateur), **fonctionnels** (fonctions offertes par le progiciel par rapport aux fonctions attendues), **techniques, contractuels** entre l'éditeur et l'entreprise et enfin des risques **économiques** du fait de l'investissement.

Concernant le déploiement d'un ERP, celui-ci est la plupart du temps **client/serveur** comme le décrit le schéma ci-dessous:

<figure><img src="image_172.png" /></figure>

Avant de découvrir en quoi consiste une architecture modulaire et ses modules, nous allons voir les principaux acteurs du marché des ERP (au niveau mondial).
# V.4 ERP (Entreprise Ressource planning ou PGI : Progiciel de Gestion Intègre)

Pourquoi un cours sur les outils d'ERP (Enterprise Resource Planning) dans un cursus d'informatique ou d'école d'ingénieurs ?

* Intégration fonctionnelle des directions Informatique et Système d'Information (et donc de leurs collaborateurs) dans les moyennes et grandes entreprises.

* Intégration de plus en plus importante des processus métier dans les programmations, développements, administrations et autres activités de ces services informatiques.

* Importance accordée dans les profils des informaticiens recherchés, aux connaissances fonctionnelles de l'entreprise, métiers, processus, business intelligence, etc.

Pourquoi l'ERP?

Dépasser les limites du SI traditionnel:

* Traiter l'activité en flux continu

* Fiabiliser les données

* Unifier la Base des données

* Délivrer les informations en temps réel

* Principe de mise à jour

* Ouverture sur l'environnement partenaires (fournisseurs, clients)

* Multi-langues
Pour résumer: L'ERP

* C'est un logiciel qui intègre toutes les fonctions de l'entreprise dans une logique de flux transversaux autour d'une base de données commune.

* C'est un logiciel de « planification des ressources » humaines, matérielles, financières.

* C'est une réforme de l'organisation de l'entreprise

Définition

<figure><img src="image_173.png" /></figure>

* Un **Progiciel de Gestion Intégré** ou **PGI (Enterprise Resource Planning** ou **ERP)** est un « logiciel qui permet de gérer l'ensemble des processus opérationnels d'une entreprise, en intégrant l'ensemble des fonctions de cette dernière comme la gestion des ressources humaines, la gestion comptable, financière, mais aussi la vente, la distribution, l'approvisionnement, le commerce électronique, etc. »
Description

* Le terme ERP provient du nom des méthodes de Planification des besoins en composants ou matières ou matériaux (MRP ou GPAO) suivant l'intégration de plus en plus poussée des fonctions de gestion de l'entreprise :

* MRP1, *Materials Requirements Planning 1*: première application industrielle de la gestion intégrée des flux de production, mise au point dans les années 1960 par Joseph Orlicky,

* MRP2, *Manufacturing Resources Planning 2*: en plus du calcul des besoins nets en matières premières et composants, effectue une planification des lancements en tenant compte des capacités des ressources par période.

5

Principes

* Construire des applications informatiques (paie, comptabilité, gestion de stocks...) de manière modulaire (modules indépendants entre eux) tout en partageant une base de données unique et commune.

* Les données sont désormais supposées standardisées et partagées

* Usage systématique d'un moteur de workflow qui permet, lorsqu'une donnée est entrée dans le système d'information, de la propager dans tous les modules du système qui en ont besoin, selon une programmation prédéfinie

6
# Utilisation

* Un ERP peut être orienté en fonction du métier de l'utilisateur:

* En gestion de production, un MRP constitue le module central

* Une entreprise de négoce développera davantage la gestion de stock et la logistique.

* Il existe encore des modules de relation clients ou des modules financiers.

* Véritable cerveau de l'entreprise,

* L'ERP permet une gestion globale et simplifiée,

* Le choix du logiciel et la finition de l'intégration sont capitaux.

* Un ERP doit être personnalisé à la société et un intégrateur est souvent nécessaire pour la mise en place et le déploiement.

7

# Données

* La base de données d'un ERP contient toutes les informations nécessaires à l'entreprise, communes aux différents modules, et sous formes de tables:

* produits

* nomenclatures

* gammes

* matières premières

* capacités de production

* clients

* fournisseurs

* commandes

* livraisons

* catalogues des fournisseurs

* stocks

* durées de conservations

* délais d'acheminement des transporteurs

* données financières de l'entreprise

* ressources humaines

* etc.

8
# Avantages 1/2

* optimisation des processus de gestion (flux économiques et financiers)

* cohérence et homogénéité des informations (un seul fichier articles, un seul fichier clients, etc.)

* intégrité et unicité du Système d'information

* partage du même système d'information facilitant la communication interne et externe

* minimisation des coûts

* globalisation de la formation (même logique, même ergonomie)

* maîtrise des coûts et des délais de mise en œuvre et de déploiement

9

# Avantages 2/2

* Les ERP/PGI vont pouvoir gérer et prendre en charge:

* Plusieurs entités et organisations

* Plusieurs devises

* Plusieurs langues pour les utilisateurs et les clients

* Plusieurs législations

* Plusieurs plans comptables

* Plusieurs axes en comptabilité analytique

10
Mise en œuvre stratégique

* La mise en œuvre d'un ERP/PGI dans une entreprise est fréquemment associée à une révision en profondeur de l'organisation des tâches et à une optimisation et standardisation des processus, en s'appuyant sur le « cadre normatif » de l'ERP/PGI.

Inconvénients

- la mise en œuvre est compliquée à comprendre, lourde et rigide

- coût élevé (cependant, il existe des ERP/PGI qui sont des logiciels libres)

- périmètre fonctionnel souvent plus large que les besoins de l'entreprise

- diminution du nombre de salariés ayant pour mission principale la saisie comptable

- difficultés d'appropriation par le personnel de l'entreprise

- nécessité d'une bonne connaissance des processus de l'entreprise

- nécessité parfois d'adapter certains processus de l'entreprise au progiciel

- nécessité d'une maintenance continue

- captivité vis à vis de l'éditeur

<figure><img src="image_174.png" /></figure>
# Exemple de coûts réels de SAP R/3

Pour 100 utilisateurs :

- Coûts d'acquisition du PGI : 150 000 Euros

- Mise en place : 330 000 Euros

- Formation : 50 000 Euros

- Assistance technique: 15 000 Euros

- Soit un Coût fixe initial : 545 000 Euros

- Coût d'exploitation sur un an y compris serveur, maintenance, assistance, télécommunications: 150 000 Euros/an

- Coût annuel par utilisateur sur une durée de vie de 5 ans: 2590 Euros/an/utilisateur

## Impact

- Les progiciels de gestion intégrés permettent à l'entreprise une meilleure maîtrise de ses activités de production.

- Le paradigme sur lequel ils se basent repose essentiellement sur une optimisation de l'utilisation des ressources, qu'elles soient humaines ou matérielles.

- Le PGI induit donc une orientation stratégique vers la réduction des coûts comme vecteur essentiel de la création de valeur donc de la croissance de l'entreprise.

- Ce modèle est critiqué car il met l'entreprise (et éventuellement ses fournisseurs) au centre de l'attention, au détriment du client.

- Les principaux éditeurs de PGI se sont donc efforcés d'intégrer des fonctionnalités marketing afin d'évoluer vers le nouveau modèle de la gestion de la relation client (GRC, CRM)

FIN