Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
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
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
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
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.
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]
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
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.
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
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
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
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
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
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 …