Ecomat Controller V03.00.02
Ecomat Controller V03.00.02
Ecomat Controller V03.00.02
CODESYS 3.5
Pour ecomatController CR7xxS
copyrights
Aucun extrait de cette publication ne peut être utilisé (reproduit,
distribué et placé dans le domaine public), ni modifié ou réarrangé sans
autorisation préalable de la société IFM.
CONNECTEURS ET
ALIMENTATION
CONNECTEURS
CAN 0
6
AFFECTATION CONNECTEURS A et B
CONNECTEUR A :
7
AFFECTATION CONNECTEURS A et B
CONNECTEUR B :
8
TENSION D'ALIMENTATION
9
VUE D'ENSEMBLE :
ENTREES / SORTIES
TERMINOLOGIE ENTREE/SORTIES
Entrées
Sorties
11
TYPE D'ENTREES
TYP IN MULTIFUNCTION-A 24 24 16
•Digital CSi (10k)
•Analog 0..20 mA Tous type de signaux
•Analog 0..10V analogiques tension et
•Analog 0..32V
courant, ou TOR CSi
•Analog Ratio
TYP IN FREQUENCY-A 16 16 8
•Digital CSi (10k)
•Digital CSo Tous type de signaux fréquentiels (comptage
•Edge CSi (Freq, Ratio, Count) impulsions, mesure période, fréquence, ratio,
•Edge CSo (Freq, Ratio, Count) codeurs,...) ou TOR CSi/CSo
TYP IN RESISTOR-A 4 4 4
•Digital CSi (10k)
•Resistor 0..30kΩ Mesure de Résistance ou TOR CSi
16 4 0
TYP IN DIGITAL-A
•Digital CSi (10k) TOR CSi : compatibilité avec majorité des
capteurs/signaux TOR
8 8 8
TYP IN DIGITAL-B
•Digital CSi (3,3k) TOR CSi : capteurs impédance
particulière exemple: capteurs 2 fils
Total 68 56 36
12
SCHEMA BLOC INTERNE DES ENTREES
Analogique/Multifunction Digital
13
TYPE DE SORTIES
Type de sortie CR721S CR720S CR711S
TYP OUT PWM-25-A 18 12 9
•Digital CSo
•PWM / PWM-i CSo
PWM 2,5 A Signal positif: Mesure de courant 1%
14
SCHEMA BLOC INTERNE DES SORTIES
PWM A PWM B
Mesure de courant 1 % Mesure de courant 5 %
15
OUTIL EXCEL : AIDE A LA CONFIGURATION
R360-3 IO Configuration.xlsx
16
VUE D'ENSEMBLE :
CABLAGE
CABLAGE : ALIMENTATIONS
18
Diagnostic amont et aval des "relais statiques" des groupes de sorties
19
CLAMP 15 / 30 : GESTION DE L'ALIMENTATION
20
CABLAGE : ENTREES ANALOGIQUES
21
CABLAGE : ENTREES RESISTIVES
22
CABLAGE : SIGNAL ENTREE NEGATIF TOR CSo
23
CABLAGE : SIGNAL ENTREE NEGATIF TOR CSo
24
CABLAGE : MIXITE DES TENSIONS DE SORTIES
25
CABLAGE : VUE GENERALE
26
VUE D'ENSEMBLE :
CPU et MEMOIRE
CPU et MEMOIRE
28
VUE D'ENSEMBLE :
LED
COMPORTEMENT DES LED SYS0 ET SYS1
4 LED APPLx :
Ces LED sont utilisables librement (Couleur RGB)
et contrôlées par l'applicatif Codesys
30
COMPORTEMENT DES LED SYS0 ET SYS1
31
AVANT DE COMMENCER
AVANT DE COMMENCER:
34
UTILISATION DU MAINTENANCE TOOL :
TELECHARGEMENT DES OUTILS
Contenu du Package :
Le dossier contient plusieurs fichiers important :
- Le manuel de programmation du contrôleur
- La release note du firmware qui recense plusieurs informations importantes concernant le système
- Le manuel de programmation Codesys Safety SIL2
- Le firmware (dossier zip) contenant aussi le package codesys
35
UTILISATION DU MAINTENANCE TOOL :
CONNEXION AU CONTRÔLEUR
Connexion au Contrôleur :
Clic Droit sur Ecomat mobile -> Load AddIn -> Ethernet Clic Droit sur Ethernet-> Load AddIn -> EcomatController
36
UTILISATION DU MAINTENANCE TOOL :
INFORMATIONS CONTRÔLEUR
37
UTILISATION DU MAINTENANCE TOOL :
CHARGEMENT FIRMWARE ET APPLICATION
Choisir le Menu Software -> Firmware Update -> Firmware File … -> Sélectionner le fichier zip contenu dans le package
Les fonctionnalités Load From/To Device vous permettent de récupérer le contenu d'un contrôleur ou de charger un
nouveau contenu dans le contrôleur. Deux possibilités sont offertes pour gérer les fichiers de façon unitaire ou des
packages complet
38
UTILISATION DU MAINTENANCE TOOL :
CHARGEMENT FIRMWARE ET APPLICATION
Lors du chargement, vous avez la possibilité de choisir tous le package ou une partie seulement (dans ce cas les
éléments présents dans le fichier zip et disponible pour le chargement apparaissent en surbrillance dans le menu. Il est
ainsi possible de gérer que l'application (sans les retains par exemple).
39
UTILISATION DU MAINTENANCE TOOL :
MENU DEVICE
Le menu "Device-> Function Calls" permet de supprimer les application, mettre en RUN/STOP faire un Reset à Froid
Pour plus d'informations sur l'AddIn EcomatController, tapez F1 pour l'aide en ligne ou référez-vous au manuel ici.
40
UTILISATION DU MAINTENANCE TOOL :
PARTICULARITE POUR IOMAPPING
Pour cela il est nécessaire d'utiliser un autre outil : l'update tool disponible dans la zone de téléchargement
Vous trouverez plus d'informations concernant l'IO Mapping plus loin dans ce document.
41
UPDATE TOOL :
ALTERNATIVE AU MAINTEANCE TOOL
42
UPDATE TOOL :
ALTERNATIVE AU MAINTEANCE TOOL
43
MISE A JOUR DE L'OS DU CONTRÔLEUR
AVEC UPDATE TOOL
Exécuter le .bat et ignorer les avertissements : Choix 4 : Le menu suivant apparaît
Choisir 9..14 En fonction du firmware souhaité et valider. L'installation commence, le contrôleur reboot
automatiquement à chaque phase. Attendre la fin du processus jusqu'à l'apparition de ce message.
44
AUTRES FONCTIONNALITES DE L'UPDATE TOOL
Autres fonctionnalités :
Il est possible comme avec le maintenance Tool :
- D'écrire les fichier Iomapping et comconf
- De supprimer les applications
Mais aussi :
- De lister/vérifier les compatibilités HW/FW
- De modifier le mot de passe
- De lire les infos du contrôleur
Les menus "utilites" et "application features" donnent accès à plusieurs autres fonctions download/upload
applications, retain, comconf, iomapping, fichier de log des défauts, START/STOP des applications, ….
45
AVANT DE COMMENCER:
La fonctionnalité TFTP:
Le serveur TFTP intégré au contrôleur permet l'envoi (PUT) et la réception (GET) de fichier vers/du
contrôleur du/vers le PC.
Vous trouverez quantité de freeware sur internet fournissant des interfaces qui vous éviteront de taper
des commandes sous windows cmd.exe.
Ci-dessous un exemple Tftpd32 by Ph. Jounin
Pour plus de détail sur le contenu des répertoires merci de consulter le Manuel Système
47
Fonctionnalité TFTP
Accès via Codesys -> Fenêtre "Device Setting" -> Onglet "Files"
La fonctionnalité TFTP permet ainsi l'accès à différentes données :
- Les applications (fichiers compilés, pas de fichiers sources) Safe et Standard
- Les variables rémanentes MB et retain
- La configuration (Mémoire, Can, Ethernet, IO-Mapping,…)
- Le répertoire /data (données utilisateur accès libre)
- ….
48
AVANT DE COMMENCER:
INSTALLATION
CODESYS ET PACKAGE
INSTALLATION DE CODESYS
Installation...
CODESYS3.5 nécessite un minimum de ressources.
50
INSTALLATION DES PACKAGES
Sous CoDeSys 2.3 , toutes les ressources spécifiques
de chaque « target » étaient installées via l'outil
séparé "InstallTarget.exe"
51
INSTALLATION DES PACKAGES
52
Premier Projet
Premier Projet :
Nouveau Projet
PREMIER PROJET : NOUVEAU PROJET
Premier démarrage…
Lorsque l’installation est terminée, CODESYS 3.5 peut
être lancé via le menu de démarrage ou avec un
raccourci sur le bureau. Dans la page d’acceuil, vous
aurez besoin de procéder à différentes étapes pour la
mise en place du projet. Vous pouvez utiliser
l'assistant de projet ou l'approche générique via
MENU New
Il est recommandé d'utiliser les "templates" (modèles).
L’usage d’une arborescence de répertoire explicite est aussi
recommandée...
55
NOUVEAU PROJET
ATTENTION!
Toutes les versions de Devices &
CODESYS3.5 ne sont pas interfaces, Local
nécessairement compatibles Blocks
Messages & Watchlist
avec votre matériel !!!
56
Premier Projet :
Communication
PREMIER PROJET : COMMUNCATION
58
Premier Projet :
Conseil
CONSEILS
CONSEIL 1: AUTOSAVE
60
Premier Projet :
Création de POU
CREATION DE POU
● PROGRAM
● FUNCTION BLOCK
● FUNCTION
NOTE :
PLC_PRG n'est plus obligatoire ...
Vous pouvez le garder pour la compatibilité
avec les projets plus anciens.
62
CREATION DE POU
A l‘aide du menu Add POU (clik droit sur Application), vous allez
maintenant ajouter le bloc contenant votre code. L‘appellation
PLC_PRG n‘est plus obligatoire. Pour des raisons de compatibilité
avec le CODESYS V2.3, nous allons conserver cette appellation.
Choisissez votre langage préféré entre FBD et ST.
Validez [Add] …
● IL (Instruction List)
● LD (Ladder)
● FBD (Function Block Diagram)
● SFC (Sequential Function Chart)
● ST (Strutured Text)
● CFC (Continuous Function Chart) = FBD sans Réseau
63
Premier Projet :
Les Tâches
LES TÂCHES : CREATION
65
LES TÂCHES : CREATION
Dans cet exemple , le PLC_PRG sera exécuté de façon cyclique toutes les 100ms.
Dans la fenêtre TASK, cliquez sur Add CALL puis sélectionnez PLC_PRG dans application. Validez
par [OK] …
Renseignez alors la priorité (0 à 3, 0 étant le plus prioritaire), le type (cyclic dans notre cas) et la
période (T#100ms dans notre cas)
66
LES TÂCHES : PREEMPTION ET PRIORITE
La tâche au temps de cycle le plus court doit être la plus prioritaire. Si une tâche moins prioritaire est en cours
d'exécution, elle peut-être interrompue par une tâche plus prioritaire. C'est ce qu'on appelle la préemption.
1: Priorité
2: Temps
3: CAN_Task priorité 0 (la plus élevée)
4: Tâche Main priorité 1
5: Intervalle CAN_Task = 5 ms
6: Intervalle main task = 20 ms
7: Préemption : Interruption
d'exécution de la tâche Main par la
tâche CAN_Task.
67
LES TÂCHES : MONITORING
Pour choisir les intervalles des différentes tâches et notamment connaître la limite en fonction de l'application, il est
utile de tester et surveiller les temps d'exécution.
Une méthode simple consiste à configurer une seule tâche et appeler l'ensemble des POU de l'application dans cette
tâche sans configurer le chien de garde. Le temps moyen d'exécution de cette seule tâche permettra de connaître le
temps de la tâche la plus prioritaire de l'application.
En effet l'intervalle d'exécution de la tâche la plus prioritaire doit permettre aux autres tâches de s'exécuter
normalement et en respectant le cycle défini.
Si la tâche la plus prioritaire à un temps de cycle de 5ms et qu'elle s'exécute en 4ms, cela ne laisse qu'une ms aux
autres tâches pour s'exécuter à cause du principe de préemption.
68
LES TÂCHES : Pour les Experts
La librairie codesys CmpIecTask permet de manipuler et obtenir des infos sur les tâches
69
Premier Projet :
Environnement Codesys
ORGANISATION DES PROGRAMMES
71
OPTIONS / PREFERENCES
● Créer
● Commenter
● Compiler
● Charger
● Lancer
72
LIBRAIRIES
Library Manager Add Library Click "Advanced…" -> IfmR360-3 (par exemple)
73
Premier Projet :
Exercice
PREMIER PROJET : EXERCICE
75
TRUC ET ASTUCES
TIP 2:
Doublecliquez sur
l‘onglet…
76 / 102
Premier Projet :
L'éditeur FBD
L'EDITEUR FBD
78
L'EDITEUR FBD
Déclaration en table
Déclaration en texte
… ou sous forme de table. La
La zone déclaration peut être sélection est effectuée à l‘aide
présentée sous forme de texte de petits icones situés à droite
… de cette zone.
79
L'EDITEUR FBD
Commentaires…
Vous pouvez, toujours pour rendre le programme plus
lisible, ajouter des commentaires sous le titre.
80
L'EDITEUR FBD
Intellisense…
Negation…
81
L'EDITEUR FBD
Détection de front …
82
Premier Projet :
Compilation Chargement
COMPILATION/CHARGEMENT
84
MEMORY LAYOUT
MEMORY LAYOUT
85
Premier Projet :
Compiler le projet
Onlinemode
87
ONLINE MODE
F7
F7
88
ONLINE MODE
F7
89
Lecture/Ecriture des variables
Bus Cycle et Update Variables
LECTURE / ECRITURE DES VARIABLES SYSTEMES
RAFRAICHISSENT – UPDATE VARIABLES
Arborescence "DEVICE" :
91
LECTURE / ECRITURE DES VARIABLES SYSTEMES
RAFRAICHISSENT – UPDATE VARIABLES
Pour toutes les I/Os (Can Open, Hardware I/O, Backligth, ...) vous devez choisir quelle tâche met à jour la variable.
Use Parent Device Setting: Mise à jour dépendante de la configuration du module Père
Use bus cycle task if not used in any task: Les I/O sont mises à jour par “bus cycle task” si elles ne sont utilisées dans
aucune tâche de l'application.
Always in bus cycle task: Toutes les variables sont systématiquement mises à jour à chaque bus cycle task.
92
LECTURE / ECRITURE DES VARIABLES SYSTEMES
RAFRAICHISSENT – UPDATE VARIABLES
Bus Cycle Task - Manuel Codesys :
Bus Cycle Task -> → Tâche dans à laquelle le BUS CYCLE est assignée, attachée (Copie des data du/vers bus ou
système vers/du IEC application image 4+7)
Les autres tâches qui lisent écrivent ces variables n'utilisent qu'un buffer de recopie qui n'est échangé (lu ou écrit
par le système) que dans la tâche définie comme étant la Bus Cycle Task ....
Si une sortie est dans plusieurs tâches, sont état n'est pas stable (risque de réécriture...).
De même, si une entrée est utilisée dans plusieurs tâches, l'état de celle-ci peut changer au
moment de l'exécution de la tâche. Cela peut se produire lorsqu'une tâche est interrompue par
une autre avec une priorité plus élevée, dans ce cas, on relit les variables...
Il est donc préférable de toujours rafraîchir la variables dans la même tâche, la plus rapide si
possible.
93
UPDATE VARIABLES :
CONSEQUENCES POUR LES SORTIES
EXEMPLE : UTILISATION DES VARIABLES SYSTEMES OUTXXXX_Q
OUTPUTS (Double Click) -> IO Mapping-> Always Update Variables : Disabled (update only if used in a task)
Avec cette configuration, les valeurs pour la sortie OUTXXXX_Q ne seront misent à jour que si on utilise
OUTXXXX_Q dans le programme.
PLC PARENTS (Double Click) -> PLC Setting -> Always Update Variables : Disabled (update only if used in a task)
Les conditions de rafraîchissement du "Device Parent" s'appliquent.
SUITE ....
94
UPDATE VARIABLES :
CONSEQUENCES POUR LES SORTIES
EXEMPLE : UTILISATION DES VARIABLES SYSTEMES OUTXXXX_Q et APPEL DU FB "ifmIOcommon.Output" :
Dans l'exemple ci-dessus, si la valeur uiValue reste à FALSE, l'état de la sortie OUT0000 est réécrit à FALSE
(OVERWRITE) ...
SOLUTION : On n'écrit plus la valeur de la sortie OUT0000_Q.ValueDigital mais directement la variable
en entrée du FB ifmIOcommon.Output ....
95
UPDATE VARIABLES :
CONSEQUENCES POUR LES SORTIES
Pour éviter toute confusion, on garde la configuration par défaut pour le contrôleur
En utilisant ce paramétrage, on optimise les ressources car seul ce qui est utilisé est rafraîchit donc lu ou
écrit, on évite tout risque "d'Overwrite" sur les sorties.
96
Gestion des Sorties
GESTION DES SORTIES : FB Output
Diagnostic 1er Niveau : Visualisation des variables systèmes
98
GESTION DES SORTIES : FB Output
Entrées du FB OUTPUT :
● xResetError : Sur Front le FB est remis à l'état initial (ex : acquittemnt d'erreur)
● uiChannel : Numéro de la sortie
● eMode : Enumération correspondant au mode de la sortie (voir plus loin)
● uiValue : Valeur de la sortie (Attention comme vu précédemment, l'état de la sortie ne
correspond pas toujours à la commande)
Sorties du FB OUTPUT :
● xError : Une error est détectée
● eDiagInfo : Diagnostic détaillé
● xOutState : Etat "réel" de la sortie
● uiOutVoltage : Tension en sortie (non significatif pour les sorties autres que Analogique et
Alimentations stabilisées 5V/10V).
99
GESTION DES SORTIES : FB Output
100
GESTION DES SORTIES : Diagnostic
101
GESTION DES SORTIES : Diagnostic
102
GESTION DES SORTIES : Exemple de Mise en Oeuvre
Conseil :
- Faire un Reset à la fin de l'initialisation
pour éliminer les comportements
transitoires.
- Ne commander la sortie que si elle a
été correctement initialisée
103
GESTION DES SORTIES : Pilotage des Groupes VBBx_SW
104
GESTION DES SORTIES : Détail des Modes
La liste des Modes possibles suivant le type de sortie : TOR, PWM, … est disponible sous
forme d'une énumération dans la librairie concernées :
105
GESTION DES SORTIES : PWM
Librairie ifmOutPWM
106
GESTION DES SORTIES : Curent Control (PWM-i)
Librairie ifmOutPWM
107
GESTION DES SORTIES : H-Bridge
Librairie ifmOutHBridge
Dans le cas du H-Bridge, les canaux sont configurés et pilotés par paire. Dans l'exemple les canaux 6 et 7 sont utilisés pour
réaliser la fonction. Cependant, la configuration du diagnostic est indépendante, il faut la faire manuellement pour les 2
canaux… exemple de code ici.
108
GESTION DES SORTIES : Exemple
109
Gestion des Entrées
Gestion des Entrées : Introduction
De façon générale, par analogie, les mêmes règles que celles pour les sorties s'appliquent en
terme de diagnostic et concernant la mise à jour (voir chapitre Update Variable plus haut).
Cela dit puisqu'il s'agit d'entrées et non de sorties, les diagnostics sont moins indispensables et
sont laissés à la discrétion du programmeur :
- On pourra ainsi lire les valeurs de tension et les états des entrées via les variables système :
- Pour tout autre mode que DIGITAL_CSI ou VOLTAGE_32, il est impératif d'utiliser le FB
ifmIOcommon.Input pour configurer l'entrée.
- Par défaut, toutes les entrées sont configurées en IN_DIGITAL_CSI.
111
Gestion des Entrées : Les différents modes possibles
Comme pour les sorties, on retrouve les mode UNCHANGED et MONITOR, ils ont le même effet que pour les sorties.
Les modes ne sont pas tous possibles sur toutes les entrées. Il est indispensable de se référer au manuel de
programmation et à la fiche technique du contrôleur pour connaître les capacités de chaque entrée.
L'énumération ci-dessus liste les différents modes, pour plus de précisions sur chacun d'eux, il faut se référer au
manuel de programmation.
112
Gestion des Entrées : Diagnostic
113
Gestion des Entrées : Diag et Threshold
L'hystérésis pour l'état des entrées TOR (threshold) est réglable en % (pas de 0,1%) de la valeur
de VBB30 :
Par défaut le niveau d'enclenchement est fixé à 70% de VBB30 et 30 % de VBB30 pour le déclenchement .
114
Gestion des Entrées : Entrées Fréquences
La librairie ifmFastInput permet la configuration des entrées pour répondre à plusieurs
applications de comptage via plusieurs FBs (FastCount, IncEncoder, Period) utilisables suivant
différents modes permettant de répondre aux différents besoins:
Les entrées rapides, sont utilisables avec des signaux PNP(CSI) ou NPN(CSO).
115
Gestion des Entrées : Entrées Fréquences
116
Supply Switch
Supply Switch
Cette fonctionnalité doit être testée en mode Normal (pas en mode debug).
Généralement, on surveille la tension du + Après Contact (+APC aussi appelé Clamp 15). Lorsque cette tension
descend au-dessous d'un certain niveau, on décide de couper le calculateur (en agissant sur le SupplySwitch).
On peut agir sur le relais d'alimentation par exemple pour le maintient de certaines fonctionnalités pendant un
certain temps, la possibilité est donnée à l'utilisateur de gérer l'extinction avec le FB ci-dessous.
Ce FB doit être appelé avec xValue à True puis à False. Exemple ci-dessous extinction du calculateur 10s après la
perte du CLAMP 15 :
118
Variables Rémanentes
VARIABLES REMANENTES
120
VARIABLES REMANENTES
Memory Bytes
Une autre zone de mémoire non-volatile est disponible. Cette zone mémoire s'étend du %MB0 au
%MB2559 (soit 2,5ko).
Il existe plusieurs possibilités pour utiliser ces zones mémoires :
1- Utilisation de l'opérateur "AT" lors de la déclaration .
A noter : on utilise un attribut pour ne pas réinitialiser la variables à chaque démarrage
121
Variables Réseau
VARIABLES RESEAU (UDP)
Network Variables
Dans la mesure ou les différentes cibles le supportent, CODESYS propose un "service variables réseau" pour l'échange
de données.
Les variables réseau sous CODESYS sont basées sur le protocole Ethernet UDP (User Datagram Protocol). Cette
fonction ne comprenant pas de contrôle d’intégrité des données, cela signifie que l'utilisateur doit s'assurer de la
cohérence des données dans le programme.
La création de la structure de données est libre, elle doit cependant être compréhensible et les variables booléennes
regroupées en Byte ou Word. Aussi nous recommandons d'éviter l'utilisation de structures imbriquées.
De même, si en théorie la taille des listes et leur nombre sont quasi infinie, il est important de veiller à rester
raisonnable. Le mécanisme d'échange étant asynchrone, il est possible qu'une variable ne soit pas reçue/envoyée
en temps voulu (si la liste est trop longue par exemple).
123
VARIABLES RESEAU (UDP)
Network Variable : TX
124
VARIABLES RESEAU (UDP)
125
VARIABLES RESEAU (UDP)
Pour que le destinataire puisse paramétrer la réception, il est nécessaire d’exporter la configuration dans un fichier
*.gvl. Cet export est automatique si l'Option Export before compile ... a été sélectionnée.(voir ci-dessus).
L’utilité d’avoir choisi un nom de liste significatif apparait !
Lorsque le projet est compilé, un fichier *.gvl est créé dans le répertoire cible.
126
VARIABLES RESEAU (UDP)
127
VARIABLES RESEAU (UDP)
La taille limite d'une liste de variable ou le temps minimum d'envoi d'une liste sont des grandeurs difficiles à
appréhender et évaluer. Il faut pour cela prendre en compte la charge globale du contrôleur : nombre de listes
émises et ou reçues, autres tâches ou processus consommateurs de ressources (CAN, TCP, …).
Pour vous aider dans l'évaluation de ces limites, vous pouvez vous référer au programme exemple ci-dessous et
évaluer le taux d'erreur de réception pour 3 listes de variables en lecture et 3 autres en écriture.
128
VARIABLES RESEAU (UDP)
Remarques concernant le Port, le List Identifier et les tâches :
Un même port (UDP) ne peut être ouvert que dans une seule tâche de l'application :
• Si le port 1202 est utilisé dans une liste, en émission ou en réception, les tâches liées à ces listes de
variables réseaux doivent être les mêmes.
• Si l'application l'impose et que plusieurs tâches doivent être utilisées pour la communication avec les
variables réseaux, il faudra, à minima, utiliser un port par tâche.
• De manière générale, il faut limiter le nombre de ports utilisés au strict nécessaire.
• Attention au temps de cycle des tâches liées aux variables réseau :
• Le temps de cycle doit être un multiple de la période d'émission.
• Attention aux ressources, un cycle d'émission trop rapide peut dans certains cas générer un
nombre trop important de data et le contrôleur peut manquer des messages.
• Le List Identifier doit être unique dans l'application.
129
CANBUS
CAN, CANOPEN et J1939
CAN COUCHE 2
CAN COUCHE 2
Nous allons utiliser un exemple dans lequel nous devons envoyer un message ID100 sur le CAN1 de façon cyclique
toutes les 100ms.
132 / 102
CAN COUCHE 2
133 / 102
CAN COUCHE 2
134 / 102
CAN COUCHE 2
135 / 102
CAN OPEN
CAN OPEN
?
:
137 / 102
CAN OPEN
138 / 102
CAN OPEN
139 / 102
CAN OPEN
Configuration du Master
Double cliquez sur CANBus dans l‘arborescence:
Sélectionnez la vitesse de communication (Baudrate), le port CAN (Network), 0 pour CAN 1, 1 pour CAN 2, ...
Puis double cliquez sur CANOpen_Manager pour avoir accès à la configuration master
140 / 102
CAN OPEN
Désélectionnez Reset Node et choisissez de préférence Hearbeat si cette configuration est supportée par l‘esclave. Le
Nodeguarding est obsolète et ne doit être utilisé que pour les anciens modules esclaves.
Notez que vous devez configurer Heartbeat Consumer en fonction des paramètres Master:
141 / 102
CAN OPEN
PDOs Propriétés
Vous avez accès aux propriétés de chaque PDO à l‘aide
de la fonction Edit.
Choisissez le type de transmission. Les autres propriétés
peuvent conserver leur valeur par défaut.
Note : Il est fortement recommandé de modifier le SDO 16#1006 avec le subindex 0 afin de modifer le time
monitoring. En effet, cette surveillance est déjà réalisée par le Heartbeat ou le Nodeguarding et la valeur par défaut
de 3S n'est pas assez permissive (cette valeur est une surveillance du temps entre 2 Sync=CobID 0x80)
143 / 102
CAN OPEN
I/O Mapping
144
CAN OPEN
145 / 102
CAN OPEN
Des fonctions blocs de la librairie ifmCANopenManager sont disponibles pour faciliter l’utilisation du CANopen : voir la
documentation pour plus de détails (dans le manuel ou directement dans la librairie). Au besoin, les FB de codesys
sont aussi utilisables...
Une variable implicite (Type Objet) est générée par codesys portant le nom de l'esclave. Elle donne accès à des
informations concernant l'esclave par appel de méthodes. Voir exemple ci-dessous. Pour plus de détail se référer à la
documentation codesys.
146 / 102
J1939
J1939
J J1939 Manager
J1939 ECU
Sans quitter la boite de dialogue "Add
Device", vous pouvez directement ajouter
un J1939 ECU.
148 / 102
J1939
Réception J1939
149 / 102
J1939 – Reception de Messages
Vous avez maintenant accès au contenu du message sélectionné ainsi qu’à la description des données qu’il
contient :
150 / 102
J1939 – Reception de Messages
Il est possible de contrôler la réception d'un PGN en intégrant un timeout en utilisant la libraire IoDrvJ1939 de
codesys.
Le FB ReceiveParameterGroup permet, à partir du nom de
l’ECU (itfECU) …
151 / 102
J1939 – Envoi de Messages
Pour l‘envoi des messages, il faut utiliser un autre J1939_ECU, renommé par exemple en J1939_ECU_TX, puis cocher
« Local Device » dans l’onglet général. L’onglet Tx Signals permet de sélectionner les messages de type Broadcast
envoyés à tous les participants au réseau. L’onglet P2P est réservé au messages destinés à un ECU particulier.
Pour ajouter des messages à envoyer, cliquez sur « Add PG » puis sélectionner le PGN concerné, par exemple TSC1
pour une commande de régime moteur.
152 / 102
J1939 – Envoi de Messages
Pour ajouter des messages à envoyer, cliquez sur « Add PG » puis sélectionner le PGN concerné, par exemple TSC1
pour une commande de régime moteur.
Vous disposez maintenant de la description du contenu du message avec le détail de chaque variable
153 / 102
J1939 – Envoi de Messages
Pour configurer le mode de transmission du message, utilisez l’onglet General situé à droite dans la fenêtre TX Signals.
154 / 102
J1939 – Envoi de Messages
Pour envoyer un Message J1939 sur demande de l’application (Application Triggered), il faut utiliser 2 FB de la librairie
codesys IoDrvJ1939 :
155 / 102
J1939 – Adresse des ECU
Il est possible de changer l'adresse d'un ECU Locale via une méthode. Pour accéder à cette méthode, il faut utiliser dans
codesys, nom_de_ECU_locale.Change_Address :
L'appel de cette méthode permet de changer l'adresse d'une ECU J1939 locale dynamiquement.
Cette fonction n'existe malheureusement pas pour les Remote ECU. Cela rend la gestion des variantes châssis et/ou
moteur pour une même machine un peu complexe.
Si vous devez écrire un seul et même programme permettant de gérer des châssis ou des moteurs différents n'utilisant
pas la même source adresse (SA), il faudra soit :
- Déclarer plusieurs remote ECU et utiliser les données reçues en fonction d'un paramètre (Case … of)
- Soit faire la réception en couche 2 avec la libraire ifmRcan.Can_Rx
156 / 102
La Programmation SAFETY
L'application Safety
L'application SAFETY : Généralité
Il est fortement recommandé d'utiliser la PLC Standard pour gérer tout le fonctionnel de
l'application de telle sorte que :
● L'application standard décide et envoie des commandes (demandes) à la partie Safety (voir plus
loin échange EVC/EVL entre les deux PLCs).
● Ensuite, la "seule" responsabilité de la PLC Safety est de vérifier que l'exécution de l'action, du
mouvement, … demandé par la partie Standard (l'applicatif) n'est pas dangereuse.
● La partie Safety est "maître" des sorties de sécurité. Ces sorties sont celles liées aux fonctions
de sécurité telles que définies par l'analyse de risque préalable.
● Si la machine est dans un état sûr, le pilotage de la sortie est autorisé, sinon il est interdit et la
sortie liée est dans un état sûr (SAFE) = 0 => pas d'énergie.
Le codage permettant de vérifier que l'on est dans un état sûr est soumis à des règles suivant
ISO13849. Ifm fournit une librairie écrite suivant les spécifications du consortium PlcOpen qui
facilite le travail du programmeur. Les FBs de cette librairie sont documentés et certifiés. Reste à la
charge de l'utilisateur, la mise en œuvre de ces FBs dans le respect des règles, limites et
contraintes du matériel ifm.
Les fonctions de sécurité programmées à l'aide de ces FBs doivent être testées, documentées et
validées mais les FBs élémentaires sont considérés comme conformes, testés et validés.
La structure matérielle des CR7xxS est conforme aux normes IEC 61131-6, IEC 61508 et ISO 25119 avec tolérance d'erreur
matérielle (= HFT) de "0" ([HFT = 0).
161 / 102
IO Mapping et configuration
IO Mapping : Codesys
Sous codesys, il faut ouvrir la fenêtre de configuration du device à la racine (root) ensuite ouvrir l'onglet I/O
Assigment.
Il suffit ensuite d'affecter les ressources à la PLC souhaitée :
163 / 102
IO Mapping : Upload Tool
164 / 102
Mode debug / Safe run
Mode DEBUG et SAFE RUN
166 / 102
Mode Debug et Safe RUN
167 / 102
La Librairie IfmIOSafety
Configuration des Entrées Sorties Safety
La logique est exactement la même que pour la partie standard (activation et choix des niveaux
de diagnostic, appel des FBs, …)
La différence réside dans l'utilisation de Blocs Fonctionnels dédiés pour la configuration des entrées sorties. Ces FBs
sont disponibles dans la librairie ifmIOSafety. On a les même possibilités de configuration à la différence près que :
- Pour les entrées, la sortie des FBs est de type SAFE (SAFEBOOL, SAFEUINT,…)
- Pour les sorties, une entrée S_SAFECONTROL de type SAFEBOOL a été ajoutée. A FALSE, la sortie est désactivée en
respectant un niveau SIL2 PLd (bien sûr ce n'est pas suffisant pour garantir le PLr de la fonction dans sa globalité).
IN_DIGITAL_CSI_NAMUR 10 ms 1V 95 % de VBB30
Dans ces modes, le diagnostic peut-être réalisé via l'application, en évaluant par exemple le paramètre
udiValueTime (temps écoulé depuis le dernier changement d'état du signal d'entrée) en sorties des FBs
correspondant de la librairie IfmFastInput pour l'exemple.
170 / 102
Architecture Mono Canal
Configuration des Entrées Safety : Architecture Mono Canal
Evidemment, dans le cas de l'utilisation d'une entrée TOR (classique), cela ne garantit pas la détection de tous les
défauts ( défauts externes comme court-circuit à la masse ou au plus).
Pour une entrée Safety en mono canal, les modes de fonctionnement suivants sont autorisés en
fonction du type d'entrée:
IN_DIGITAL_CSI
IN_DIGITAL_CSI_NAMUR
IN MULTIFUNCTION-A IN_VOLTAGE_10 SF_Input
IN_VOLTAGE_32
IN_VOLTAGE_RATIO
172 / 102
Entrée TOR Safety
Une entrée TOR utilisée surtout si elle est utilisée en mono canal doit changer d'état
régulièrement (fréquence à déterminer en fonction de l'analyse de risque et de l'application).
173 / 102
Entrée ANA Safety
Pour détecter toutes les erreurs, le signal analogique doit être compris dans la plage de signal valide
comprise entre Valeur minimale et Valeur maximale dépendant du mode de fonctionnement
174 / 102
Entrée OSSD
Les entrées OSSD doivent être connectées sur des entrées de Type IN_FREQUENCY_B.
Elles doivent être configurées en utilisant le FB SF_InpuBlanking :
• largeur d'impulsion minimale (3)> = 10 μs
• Largeur d'impulsion maximale (3) <= 800 μs
• L'impulsion doit être inférieure au seuil de déclenchement (<30% de VBB30).
• Intervalle d'impulsion minimum (4)> = 16 ms
175 / 102
Architecture à Double Canal
Configuration des Entrées Safety : Architecture Double Canal
Dans une architecture Double Canal, les signaux suivants peuvent être évalués :
• Signaux TOR
• Signaux analogique
• Signaux fréquentiels
Pour ces entrées Safety, les modes de fonctionnement suivants sont autorisés en fonction du
type d'entrée:
Type d'entrée Modes de fonctionnement autorisé FB de configuration et Lecture
IN_DIGITAL_CSI
IN_DIGITAL_CSI_NAMUR
IN_VOLTAGE_10
IN MULTIFUNCTION-A SF_Input
IN_VOLTAGE_32
IN_VOLTAGE_RATIO
IN_CURRENT_CSI
IN_DIGITAL_CSI
IN_DIGITAL_CSI_NAMUR
IN_DIGITAL_CSI_BLANKING
IN_VOLTAGE_10
IN FREQUENCY-B SF_InputBlanking
IN_FREQUENCY_CSI
IN_INC_ENCODER_CSI
IN_PERIOD_RATIO_CSI
IN_PHASE_CSI IN_COUNT_CSI
IN RESISTOR-A IN_DIGITAL_CSI
IN_DIGITAL_CSI_NAMUR
IN_DIGITAL_CSI
IN DIGITAL-A/B SF_Input
IN_DIGITAL_CSI_NAMUR
177 / 102
Configuration des Entrées Safety : Architecture Double Canal
Si l'application le permet, les signaux d'entrée standard peuvent être utilisés dans les fonctions de sécurité.
Pour cela, connecter les signaux avec 2 canaux et comparez-les à l'aide d'un FB de sécurité. Ifm fournit les blocs de
fonctions de sécurité suivants à cette fin:
• SF_Equivalent_BOOL
• SF_Antivalent_BOOL
• SF_Equivalent_UINT
• SF_Equivalent_UDINT
• SF_Equivalent_REAL
Les deux canaux d'entrée d'une structure à 2 canaux doivent être situés dans des groupes d'entrée différents afin
que les exigences de sécurité puissent être satisfaites.
• Les 2 canaux doivent être câblés sur le même connecteur
• Un canal d'entrée dans la moitié supérieure du connecteur
• L'autre canal d'entrée dans la moitié inférieure du connecteur
178 / 102
Configuration des Entrées Safety : Répartition des canaux
Répartitions des canaux pour une évaluation sûre de signaux TOR Conecteur A:
Les entrées de ces groupes… Peuvent être combinées avec les entrées de ces groupes
IN00nn IN05nn
IN01nn IN06nn
IN01nn IN07nn
IN02nn IN06nn
IN02nn IN07nn
IN03nn IN08nn
IN04nn IN09nn
179 / 102
Configuration des Entrées Safety : Répartition des canaux
Répartitions des canaux pour une évaluation sûre de signaux TOR Connecteur B:
Les entrées de ces groupes… Peuvent être combinées avec les entrées de ces groupes
IN10nn IN15nn
IN11nn IN16nn
IN12nn IN17nn
IN12nn IN18nn
IN14nn IN17nn
IN14nn IN18nn
180 / 102
Configuration des Entrées Safety : Répartition Canaux
Répartitions des canaux pour une évaluation sûre de signaux Analogiques Connecteur A:
Les entrées de ces groupes… Peuvent être combinées avec les entrées de ces groupes
IN01nn IN06nn
IN01nn IN07nn
IN02nn IN06nn
IN02nn IN07nn
181 / 102
Configuration des Entrées Safety : Répartition Canaux
Répartitions des canaux pour une évaluation sûre de signaux Analogiques Connecteur B:
Les entrées de ces groupes… Peuvent être combinées avec les entrées de ces groupes
IN11nn IN16nn
182 / 102
Configuration des Entrées Safety : 2 canaux TOR
183 / 102
Configuration des Entrées Safety : 2 canaux analogiques
184 / 102
Configuration des Entrées Safety : 2 canaux fréquentiels
185 / 102
MONO CANAL VERSUS DOUBLE CANAL
186 / 102
Configuration des Sorties Safety
Selon les besoins, une sortie relative à la sécurité peut être configurée comme suit:
• 1 canal
• 1 canal avec surveillance de la fonction
• 2 canaux
• 2 canaux avec surveillance de fonction
Ceci est autorisé pour les types de sortie suivants:
Type d'entrée Modes de fonctionnement autorisé FB de configuration et Contrôle
OUT_DIGITAL_CSO SF_Output
OUT PWM-25-A OUT_PWM_CSO SF_PWM1000
OUT_CURRENT_CSO SF_CurrentControl
OUT_DIGITAL_CSO SF_Output
OUT PWM-25-B
OUT_PWM_CSO SF_PWM1000
OUT_DIGITAL_CSO SF_Output
OUT PWM-40-A OUT_PWM_CSO SF_PWM1000
OUT_CURRENT_CSO SF_CurrentControl
OUT_DIGITAL_CSO SF_Output
OUT PWM-40-BRIDGE-A OUT_PWM_CSO SF_PWM1000
OUT_CURRENT_CSO SF_CurrentControl
De même il est possible de contrôler des H-Bridge de façon SAFE et même des
groupes entiers de sorties :
• OUT PWM-40-BRIDGE-A et SF_HBridge
• SF_OutGroup
187 / 102
Architecture Mono Canal
Configuration d'une Sortie Safety Monocanal
La sortie doit être testée à intervalle régulier (fréquence déterminée suivant analyse de risque
et application). Les sorties sont testées à chaque redémarrage par le système
Lorsque la fonction de sécurité est demandée, le contrôleur désactive le commutateur de sortie. La sortie associée
est désactivée.
Le commutateur de groupe a une importance pour la fonction de sécurité en tant que deuxième chemin d'arrêt si
le commutateur de sortie présente un défaut, ce deuxième canal peut être utilisé pour atteindre l'état sûr.
En option, une surveillance de la fonction de sécurité mécanique peut être mise en œuvre pour augmenter le
diagnostic (capteurs, codeurs, fins de course, par exemple).
189 / 102
Configuration d'une Sortie Safety avec Arrêt du groupe de sortie
Lorsque la fonction de sécurité est demandée, le contrôleur commute le commutateur de groupe de sorties et
la sortie est désactivée. Les sorties associées sont désactivées.
190 / 102
Architecture Double Canal
Configuration des Sorties Safety : Double Canal
Les sorties de ces groupes… Peuvent être combinées avec les entrées de ces groupes
OUT00nn OUT01nn
OUT00nn OUT04nn
OUT01nn OUT02nn
OUT01nn OUT04nn
OUT02nn OUT03nn
OUT03nn OUT04nn
192 / 102
Configuration d'une Sortie Safety Double Canal
La sortie doit être testée à intervalle régulier, au moins une fois toute les huit heures. Les
sorties sont testées à chaque redémarrage par le système
Lorsque la fonction de sécurité est demandée, le contrôleur désactive les deux commutateurs de sortie en
parallèle. Les sorties associées sont désactivées.
Le commutateur de groupe a une importance pour la fonction de sécurité en tant que deuxième canal d'arrêt
lorsqu'un commutateur de sortie présente un défaut (ne peut pas être désactivé).
En option, une surveillance de la fonction de sécurité peut être mise en œuvre pour augmenter le diagnostic
(capteurs, codeurs, fins de course, par exemple).
193 / 102
Configuration d'une Sortie Safety H-Bridge
Lorsque la fonction de sécurité est demandée, le contrôleur désactive les commutateurs de sortie. Les sorties
associées sont désactivées.
Le commutateur de groupe n'a aucune incidence sur la fonction de sécurité.
Il est également possible de commander en toute sécurité des actionneurs autres que des moteurs sans inverser le
sens de rotation avec un pont en H.
194 / 102
La librairie ifmPLCopenSafe
La Librairie ifmPLCopenSafe
La librairie est très riche, ifm a ajouté quelques FBs utiles dans un AddOn. Il serait trop long
d'expliquer l'utilité de chaque Bloc dans le détail. Nous vous renvoyons à la documentation
disponible sur le site de plcOpen.org et à notre manuel de programmation pour plus de détails.
196 / 102
ECHANGE DE VARIABLES ENTRE
APPLICATIONS SAFE ET STANDARD
Il est possible de lire/écrire des données de l'application standard à partir de l'application Safety.
Pour cela on utilise 2 objets Codesys EVC (Exchange Variable Connection) côté standard et EVL (Exchange Variable
List) côté Safety.
Les règles d'accès sont les suivantes :
197 / 102
ECHANGE DE VARIABLES ENTRE
APPLICATIONS SAFE ET STANDARD
Dans l'exemple ci-dessous, nous déclarons 3 variables écrites par l'application Standard vers l'application Safety
dans les EVL ensuite il faut compiler l'application.
Dans l'application standard sélectionner EVC puis Build (en haut à gauche). Sélectionner ensuite les variables
nécessaires
Il est ensuite possible de lire des variables de l'application Safety et d'écrire les EVL.
198 / 102
CANopen SAFETY
CAN OPEN SAFETY
200 / 102
CAN OPEN SAFETY
201 / 102
CAN OPEN SAFETY
Configuration du Master
La configuration est identique à celle d'un Master standard
202 / 102
CAN OPEN SAFETY
Configuration de l'Esclave
La configuration est identique à celle d'un Esclave standard
Les onglets de l'esclave standard sont dupliqués avec les onglets SAFETY (PDO->SRDO CANopen I/O
Mapping -> CANopen Safety I/O Mapping, …)
203 / 102
CAN OPEN SAFETY
Configuration de l'Esclave
L'onglet SRDO indique le contenu et les Ids utilisés pour les SRDO comme pour des PDO standards
L'onglet CANopene Safety Parameters permet d'accéder aux paramètres SAFETY (SCT, SRVT, SRDO CobID, …)
204 / 102
CAN OPEN SAFETY : DIAGNOSTIQUE
205 / 102
CAN OPEN SAFETY : COMMUNICATON ENTRE 2 CONTRÔLEURS
206 / 102
CAN OPEN SAFETY : COMMUNICATON ENTRE 2 CONTRÔLEURS
207 / 102
CAN OPEN SAFETY : COMMUNICATON ENTRE 2 CONTRÔLEURS
Par défaut les SRDOs sont créés avec les ID 101,102,… et un type de transmission donné
208 / 102
CAN OPEN SAFETY : COMMUNICATON ENTRE 2 CONTRÔLEURS
209 / 102
CAN OPEN SAFETY : COMMUNICATON ENTRE 2 CONTRÔLEURS
Il faut ensuite ajouter ce nouvel eds au device repository et d'ajouter l'esclave au master CANopen Safety
210 / 102
contact
ifm electronic
support.networkandcontrol.fr@ifm.com
www.ifm.com