13
Découverte de la logique programmée sur API avec CODESYS v3 ARA-Formations / JMD / Codesys Initiation programmation Diffusion interdite sans autorisation écrite de JMD 1 / 13 Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 1 / 13

Support d'exercices pour groupes FC

AUTOMATISMES DISCRETS

Page 2: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 2 / 13

Préambule :

CODESYS v3 est une plateforme de développement pour automaticiens et informaticiens

En 2020, environ 1 000 plates-formes différentes de matériels intelligents de plus de 400

fabricants peuvent être programmées avec CODESYS par exemple pour les calculateurs,

les contrôleurs intégrés, les passerelles, les variateurs, les robots, les IHM et les pages

web en HTML5 ainsi que les automates programmables de nombreux constructeurs que

ce soit pour l'automatisation des machines fixes ou mobiles. Cela fait de CODESYS l'IDE

IEC 61131-3 leader du marché. C'est un outil de programmation évolutif (ajout de

plugins) permettant de s’adapter aux spécificités des clients.

Cette plateforme permet de :

� Programmer dans les 5 langages de la norme IEC 61131-3 et d'utiliser en plus le langage CFC pour par

exemple développer des fonctions de régulation avec des boucles de rétroaction.

� Développer des applications multicœurs.

� Gérer les bibliothèques des constructeurs ou personnelles.

� Réaliser de la programmation orientée objet POO avec ou sans le formalisme de l'UML.

� Mettre en œuvre la grande majorité des réseaux et bus de terrain (OPC UA, MQTT, WebClient (pour

IIoT), EtherNet/IP, Modbus TCP, CANopen, Profibus, Profinet, EtherCAT, IO-Link, …).

� Mettre en œuvre des applications de sécurité SIL 2, SIL 3 (IEC 61508).

� Mettre en œuvre des IHM (alarmes, recettes, courbes XY, …) en WebVisu ou réaliser des pages de

simulation.

� Développer des applications de Motion.

� Développer des applications de Robotique.

� Protéger ses applications contre les cyberattaques, les vers et virus, ….

� Maintenir avec le serveur d'automatisation : nouvelle plate-forme industrie 4.0 dans un cloud proposant

un système de tickets, un aperçu de l'état de tous les contrôleurs en production et une mise à jour

effectuée des applications.

� Transformer une plateforme Windows ou Linux en automate temps réel.

Moyens pédagogiques : � 1 PC avec :

⁕ Windows 7 à Windows 10 ⁕ 4 Go de mémoire RAM ⁕ 4 Go de mémoire DD, SSD si possible ⁕ Une connexion Internet correcte ⁕ Un microphone ⁕ Idéalement un 2ème écran en mode étendu (écran de TV ou de PC en HDMI ou VGA selon PC)

� Le logiciel Codesys v3.5 installé après l'avoir téléchargé sur le Codesys Store (gratuit, nécessité de créer

un compte)

� Classe virtuelle

Page 3: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 3 / 13

Remarques : � La partie déclaration des composants (cartes) ne pourra pas être abordée en l'absence d'un contrôleur

réel. Le TP1 ci-après montre en exemple comment faire avec le logiciel SoMachine de Schneider qui

utilise le CODESYS v3. (Q1 à Q6) � Passer au TP1 bis � L'aide est en anglais sur Codesys Online Help. Il existe une ancienne version en français : 2013!

Table des matières

Préambule : ................................................................................................................................................ 2

Moyens pédagogiques : ............................................................................................................................. 2

Remarques :................................................................................................................................................ 3

TP1_ Configurer avec Somachine (Pour information) ................................................................................ 4

TP1 bis_ Configurer avec Codesys .............................................................................................................. 5

TP2_ Programmer et tester avec CODESY v3 ............................................................................................. 7

TP3_ Programmations de base LD et ST ..................................................................................................... 8

TP4_Le grafcet (SFC) ................................................................................................................................... 9

TP5_Editer la documentation ................................................................................................................... 10

TP6_Utiliser la Web Visu (communication via le Web) ............................................................................ 10

TP7_Démo avec SoMachine ..................................................................................................................... 10

TP8_Conclusions : outils de conception, de mise au point et de diagnostic ........................................... 10

Fichiers fournis aux stagiaires :

JMD_1ère application avec CODESYS V3_ISTP.pdf

Grafcet SoM_ISTP.jpg

Visu_TP_INIT_Codeys v3.export

Page 4: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 4 / 13

TP1_ Configurer avec Somachine (Pour information) 1) Ouvrir le logiciel Somachine

2) Cliquer sur « Nouveau projet »/ Projet vide/ Définir un nom de projet/Créer le projet

3) Double cliquer sur configuration/Définir l'API (choisir la référence selon le matériel sur le poste

de travail)

4) Cliquer sur contrôleur (cadre)

5) Dans la nouvelle fenêtre, Affichage / Navigateur / sélectionner Equipement puis Application

Puis outils. Vous obtenez pour chaque onglet :

6) Dans l'onglet [équipement], mapper les E/S TOR :

Enregistrer votre projet.

Page 5: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 5 / 13

TP1 bis_ Configurer avec Codesys 1) Lancer le logiciel Codesys v3.5 SP15 Patch … via le raccourci sur le bureau ou le navigateur

d'applications

2) Cliquer sur « Nouveau projet »

3) Sélectionner « Projet » et « Projet standard », le renommer en « Init_API » et choisir de le

mettre dans un dossier de TP, puis « OK »

4) Sélectionner les éléments ci-dessous (si votre PC est en 64 bits) :

5) L’arborescence suivante apparait :

6) Sélectionner « Application », clic droit, « Ajouter un objet », sélectionner « Liste de variables

globales », laisser le nom par défaut : GVL, Ajouter.

7) Créer quelques variables (en mode tabulaire –à droite de la fenêtre) :

8) Visualiser les variables en mode Textuel

9) Configurer la tâche : Double clic sur « MainTask », configurer : « Exécuté librement », activer

l’horloge de surveillance (CdG) et la régler à 100ms.

10) Renommer le POU PLC_PRG(PRG) en PLC_PRG_1(PRG) ; il en est de même avec le gestionnaire

de tâche.

11) Importer la page de visualisation (à récupérer dans le mail transmis) :

a) Aller dans projet/importer/ sélectionner le fichier et importer

b) La page IHM_ISTP apparaît dans l'onglet [Outils]

Page 6: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 6 / 13

c) Aller dans Créer/Générer tout

d) Vérifier l'absence d'erreur

12) Dans l'onglet [Appareils]

a. Renommer GVL en GVL_ISTP (via propriétés)

b. Créer les variables ci-dessous (en mode tabulaire –à droite de la fenêtre):

13) Pour créer un programme :

a. Renommer "PLC_PRG_1" en

POU_Combinatoire"

b. Si il n'est pas en langage LD, le supprimer

et en recréer un autre, même nom et

langage LD :

i. Dans l'Item Application

ii. Clic droit/ajouter un

objet/POU…/ nommer en

Combinatoire, programme,

Ladder/Ajouter

c. Le refactoring permet une réactualisation

"automatique" dans le gestionnaire de

tâche.

14) Créer une "boite à boutons"

a. Rajouter un objet visualization à partir de l'Application

b. Prévoir un bouton de changement de page (idem sur la page

"IHM_ISTP")

c. Recopier les objets nécessaires depuis la page importée

(bouton poussoir x 3 et 1 commutateur ainsi que les textes ;

d. Modifier les adresses de variables dans la fenêtre des

propriétés

e. Modifier les textes pour s'y retrouver

f. Enrichir la GVL_ISTP : i. // Boite à boutons

ii. xBP_S2_noir: BOOL;

iii. xBP_S3_Vert: BOOL;

iv. xBP_S4_rouge: BOOL;

v. xct_s5: BOOL; // Commutateur

Page 7: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 7 / 13

TP2_ Programmer et tester avec CODESY v3

15) Programmer : Double cliquer dans le POU_Combinatoire (PRG) et saisir le programme suivant.

a. Programme LD :

b. Puis compiler le projet (dans Créer, ….) et vérifier qu'il n'y a pas d'erreur (sinon

corriger).

c. Associer le POU à la tâche MAST : double clic sur MainTask et ajouter l'appel

/POU_combinatoire si ce n'est pas déjà fait.

16) Tester l’application en visualisation dynamique : dans les menus déroulants : « En ligne »,

cocher ou décocher « simulation », cliquer sur En ligne :« Connexion », "OUI", démarrer l’API

« Débogage » et « Démarrer »

17) Modifier ou forcer les valeurs des variables du programme (table de surveillance) :

a. Sélectionnez la commande « Surveillance - Surveillance 1 » du menu « Affichage ».

b. Cliquer glisser les variables du programme vers la fenêtre de surveillance

c. Préparer la valeur souhaitée

d. Faire : CTRL+F7 pour valider la modification de la variable

Un clic à droite de l’instruction permet de modifier la « Valeur préparée »

Commande « Écrire valeurs » / CTRL+F7 ou « Forcer valeurs » F7 et pour supprimer un Forçage : ALT+F7

e. Se déconnecter après ces 1ers essais.

Page 8: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 8 / 13

TP3_ Programmations de base LD et ST 1. Réaliser un auto-maintient de 2 manières différentes

a. En utilisant les instructions indiquées par l'intervenant et en gardant les mêmes

entrées pour chacune des sorties

b. A réaliser dans le même POU : Combinatoire

2. Lorsque le moteur 1 aura démarré, 8s après un voyant Vert s'allumera

a. Vous utiliserez une temporisation TON (voir aide)

b. En entrée : xMoteur1, en Sortie : xVoyant 2 (vert)

3. Vous créez un POU Gestion en langage ST permettant de gérer les démarrages de Moteur1 :

a. Après 5 démarrages : le moteur ne devra pas redémarrer sans acquittement par le

commutateur : xCt_S5

b. Le compteur sera réalisé par une variable iCpt_DemM1 de

type Integer (à créer dans les GVL)

c. Nous aurons aussi besoin du bloc fonction :

4. Dans ce POU de Gestion, vous copierez la valeur du potentiomètre (simulateur de

température) dans l'indicateur de température.

a. Lorsque la mesure sera >= 80%, un voyant alarme xVoyant3 devra clignoter (F= 1Hz)

b. Nous aurons aussi besoin du bloc fonction : BLINK

5. Dans quelle bibliothèque avez-vous trouvé la temporisation TON ?

6. Dans quelle bibliothèque avez-vous trouvé le clignotant BLINK ?

xMoteur 1

xMoteur 2

xBp_S3_vert

xBp_S4_rouge

Page 9: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 9 / 13

TP4_Le grafcet (SFC) 1) Réaliser le grafcet suivant et le tester en créant les variables dans le GVL :

2) Programmer la transition T0 selon :

3) (Corriger la coquille entre STEP2 et Init)

4) Enrichir le programme pour créer une INIT de votre grafcet par action sur le Bp "INIT_Gr7" à

créer.

a. Dans les propriétés de votre POU grafcet, Onglet "Paramètres SFC", Décocher utiliser

les préréglages puis Cocher SFCInit.

b. Créer une variable xBpInitGr7 dans les GVL_ISTP

Clic droit / ajouter un objet/ transition

Choisir Ladder/…

Front montant de xMarche2

Page 10: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 10 / 13

c. Créer une variable SFCinit:BOOL;

d. Créer un bouton poussoir pour piloter cette

variable dans la boite à boutons

e. Ecrire le programme :

f. Tester.

TP5_Editer la documentation 1) Imprimer en pdf le fichier programme que vous avez créé. « Projet » : « Documenter »

2) On obtient 1006 pages si on garde toute la sélection

3) Décocher selon consigne animateur

TP6_Utiliser la Web Visu (communication via le Web) 1) Déterminer l'adresse IP de son PC

2) A l'aide de son smartphone ou d'une tablette ou à partir de son PC ; lancer un navigateur

(Chrome, Firefox, …)

3) Dans la barre d'adresse saisir : Mon@IP:8080/webvisu.htm

4) Vous pouvez piloter votre application à l'aide des pages de visualisation

TP7_Démo avec SoMachine

TP8_Conclusions : outils de conception, de mise au point et de

diagnostic

Page 11: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 11 / 13

TP9_Créer un diviseur par 2 [LD] 1) Créer une POU_Telerupteur

2) Importer la visu :" VisuTPdeBase" (ou la créer)

3) Technique 1

a. Avec un BF front montant

b. Avec des bobine S et R

4) Technique 2

a. Avec un test front montant

b. Avec un saut de programme + étiquette

c. On rajoutera un 2ème bouton pour cette solution

R_TRIG_Telerupteur: R_TRIG;

xMemoTelerupteur1: BOOL;

xMarcheTelerupteur1: BOOL;

xVoyantTelerupteur1: BOOL;

xMemoTelerupteur2: BOOL;

xMarcheTelerupteur2: BOOL;

xMarcheTelerupteur3: BOOL;

xVoyantTelerupteur2: BOOL;

E

S

Page 12: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 12 / 13

TP10_Créer un BF "Signalisation de défaut" [FBD] On souhaite créer une fonction de signalisation de défaut réutilisable.

Une 1ère approche nous donne cette analyse (modifiable si souhaitable)

En entrée En interne En sortie

Défaut (bit) Signalisation

Acquittement (bit)

Temps clignotement

Haut

Temps clignotement

Bas

Mémoire défaut

Mémoire acquittement

1) Valider ce cahier des charges

2) Créer ce BF

3) Instancier 2 fois ce BF et mettre en œuvre ces instances après avoir créé les données utiles

4) Apporter la modification suivante au BF : « en sortie on souhaite connaître le nombre

d’apparition des défauts ; on prévoira une entrée RAZ compteur défaut »

5) Vérifier l’impact sur les instances déjà créées et adapter le programme

Page 13: Support d'exercices pour groupes FC AUTOMATISMES DISCRETS

Découverte de la logique programmée sur API avec CODESYS v3

ARA-Formations / JMD / Codesys Initiation programmation

Diffusion interdite sans autorisation écrite de JMD 13 / 13

TP11_Créer un combinateur cyclique [ST]

Pendant un cycle de durée = 100 s, on veut piloter n sorties (5 par exemple) de la manière suivante :

On donne dans une table, les instants tdi où les sorties sont mises à 1 et dans une seconde table, les

temps tfi où les sorties sont mises à 0.

On écrira les valeurs dans des mots constants.

Définir les objets nécessaires à cette application. Le démarrage est réalisé avec la mise à 1 de l'entrée

d'activation ; lorsque cette entrée passe à 0, les sorties passent à 0 sans que le combinateur soit

réinitialisé : il repart là où il s’était arrêté dès le passage à 1 de l'entrée d'activation

Un Bp INIT réinitialisera le combinateur.

Sorties Tdi Valeur en s Adresse API Tfi Valeur en s Adresse API

S0 TD0 10 TF0 35

S1 TD1 21 TF1 60

S2 TD2 30 TF2 45

S3 TD3 40 TF3 91

S4 TD4 52 TF4 70

Mise en œuvre : mots constants mots internes, organigramme, compteur numérique, adressage indexé,

100 secondes

S0

10 35

S1 21 60

Sn …