Académique Documents
Professionnel Documents
Culture Documents
iii
Printed Documentation
iv
Printed Documentation
vi
......................................................................
Destination d'une instruction de saut
312
.................................................................................................
Calcule la valeur absolue
327
ACC
.....................................................................................................................
Acclration
328
.................................................................................................................
Acclration
329
ACC_T
ACCP
ACOS
.............................................................................................................
Cosinus inverse
330
ADC
.................................................................................................
Entres analogiques IMD
331
ADD
........................................................................................................
Addition (langage IL)
332
ADDMOV
ADDSTOP
................................................................................
Superposition de mouvements
332
......................................................................
Arrt superposition de mouvements
332
Oprateur
ntre
2 inverse
ET avec
.........................................................................
l'e
334
...................................................................................................................
Sinus inverse
334
...........................................................................................................
Tangente inverse
335
C
ontrle
la boucle d'asservissement............................................................................... 336
vii
Printed Documentation
......................................................................
Lit l'tat de la boucle d'asservissement
337
AXIS_S
................................................
Lit l'tat de la demande d'asservissement
338
AXISREQUEST_S
BREAKCAM
..................................................
Position aprs un BREAKCAM340
/ STOPS
BREAKCAM_POS
................................................................
Nombre de mouvement dans le buffer 340
BUFMOV_S
BY ................................................................................................................................................. 341
BYTE ............................................................................................................................................ 341
Appel
L)
.............................................................................
de bloc fonctionnel (langage I
341
CAL
..........................................................................
Appel de bloc fonctionnel (langage IL)
341
CALC
CALCN
........................................................................
Appel de bloc fonctionnel (langage IL)
341
CAM_S
...........................................................................................................
Etat de la came
341
CAMBOX
....................................................................................
Sortie de bote cames
343
CAMBOXSEG
..............................................................................
Segment de bote cames
344
..........................................................
Numro de la came en cours d'excution
344
CAMNUM_S
............................................................
Position de l'esclave dans la came 345
CAMREADPOINT
Numro
tion
.........................................
d'quation de la came
345en cours d'excu
CAMSEG_S
....................................................................
Lancement d'une capture de position
346
CAPTURE
.................................................................................
Annule une capture
347
CAPTURECANCEL
..........
Lancement
347
d'une capture
CAPTUREIMD
...........................................................
Associe un vnement la capture348
CAPTUREEVENT
CASE OF ELSE END_CASE
......................................................................
Test multiples
349
.....................................................................................
Met zro la position de l'axe
350
CLEAR
.....................................................................
Met zro la position de l'auxiliaire
350
CLEARAUX
CONCAT
..........................................................................
Continue l'excution d'une tche
351
CONTINUE
............................................................................................................................
Cosinus
352
COS
...........................................................................................
Configure le compteur
353
COUNTER
.........................................................
Associe un vnement au compteur
354
CTU
Compteur
..........................................................................................................................
356
CTUD
..................................................................................................
Compteur/Dcompteur
357
viii
DAC
.........................................................................................................
Sorties analogiques
360
DAC_S.......................................................................................................................................... 360
DEC
DEC_T
DECP
DELAY
DELETE
Modifie.....................................................................................................
lration
la dc
361
...............................................................................................
Renvoie la dclration
361
........................................................................................
Dclration en pourcentage
362
............................................................................................................
Attente passive
362
...............................................................
Supprime des caractres dans une chane
363
.........................................................................
Dsactivation du recalage
363
Afficheur 7 segments
................................................................................................
363
.............................................................
Fonction de recalage automatique 364
ENABLERECALE
.............................................................
Fonction de recalage automatique 365
......................................................................................................
Arrt d'une came
366
............................................................................................................
Egalit (langage IL)
366
EXIT
.........................................................................................
Abandonne un nonc itratif
367
EXP
.......................................................................................................................
Exponentiel
367
EXPT
.......................................................................................................................
Puissance
368
F_TRIG
....................................................................................
Dtection de front descendant
369
Valeur
rreur
de poursuite
de l'e
....................................................................................... 370
....................................................................................
Limite d'erreur de poursuite
371
.....................................................
Chercher la position de caractres
372dans une chane
..................................
Applique un filtrage 373
lors de mouvement
.....................................................................................................................
Boucle FOR
374
.........................................................................................................
Partie fractionnelle
375
.........................................................................................
Suprieur ou gale (langage IL)
375
.....................................................................................................
Arbre lectrique
375
ix
Printed Documentation
................................
Change le rapport 379
de rduction d'un ar
GEARBOXRATIO
..................................................................
Etat du changement de ratio
380
GEARBOXRATIO_S
..................................................................
Retourne un bit d'une variable DWORD381
GETBITW
....................................................................
Retourne un bit d'une variable WORD 381
.............................
Retourne le dernier
381vnement de la
GETLASTSYSEVENT
.............................
Retourne le premier
382vnement de la
GETSYSTEMEVENT
........................................................................................................
Suprieur (langage IL)
383
GT
.............................................................................................................
Arrte une tche
383
HALT
...............................................................................................................
Prise d'origine
384
HOME
HOME_S
.................................................................................
Prise d'origine sur l'auxiliaire
388
HOMEAUX
......................................................
Rsultat de la prise d'origine sur389
l'auxiliaire
HOMEAUX_S
..................................................
Annule la prise d'origine sur l'auxiliaire
389
HOMEAUXCANCEL
HOMEAUXREQUEST_S
HOMECANCEL
HOMEREQUEST_S
ICORRECTION
Etat
re
...........................................
de la prise d'origine sur390
l'auxiliai
.................................................................................
Annule la prise d'origine
391
.........................................................................
Etat de la prise d'origine
391
..............................................................................
fonction de compensation
392
ICORRECTION_S
............................................................................
Etat de la compensation
392
ICORRECTIONA
...........................................................................
Fonction de compensation
393
.....................................................................
Retourne l'tat de la tche d'Initialisation 394
......................................
Retourne le contexte de
395
la tche d'Initialisa
....................................
Force la valeur de retour
395 de la tche d'Ini
.................................................................................................
Lecture d'une entre TOR
396
INPB
.............................................................................................
Lecture d'un bloc 8 entres
396
INPW
.....................................................................................
Lecture d'un bloc de 16 entres
397
...................................................................................................................
Partie entire
398
..............................................................................................................
Effectuer un saut
399
............................................................................................
Partie gauche d'une chane
400
LEFT
.....................................................................................................
Longueur d'une chane
401
LEN
................................................................................................
Borne une valeur entire
402
LIMIT
.........................................................................................................
Logarithme de base e
404
LN
LOADCAM
..................................................................................................
Charge une came
404
LOADCAMI
.................................................................................................
Charge une came
405
.............................................................
Modification de points d'une came 407
LOADCAMPOINT
................................................................................
Bloque le squenceur sur la tche
407
LOCK
....................................................................................................
Logarithme de base 10
408
LOG
............................................
Dcale dynamiquement la409
position du matre
MASTEROFFSET
MASTEROFFSET_S
MAX
MERGE
..........................................................
Valeur courante de l'offset matre 409
...........................................................................
Retourne le maximum de deux valeurs
410
................................................................................................
Dfinit l'enchanement
411
.............................................................................
Retourne le minimum de deux valeurs
412
.......................................................................................................
Division (langage IL)
413
..................................................................
Image de la puissance moteur
413
........................................................................................................
Mouvement absolu
413
..................................................................................................
Etat du mouvement
414
MOVR
.........................................................................................................
Mouvement relatif
415
MOVS
...............................................................................................
Mouvement synchronis
415
MUL
................................................................................................
Multiplication (langage IL)
416
MULTITASKARRAY
.................................
Fonction interne de416
rglage d'accs aux
MUX.............................................................................................................................................. 416
NE - Comparaison (langage IL) ................................................................................................... 416
NEXTTASK .................................................................................................................................. 416
NEG
......................................................................................................
Ngation (langage IL)
417
NOT
....................................................................................................
Oprateur complment
417
OF................................................................................................................................................. 418
OR
ORDER
.....................................................................................................................
Oprateur OU
418
..................................................................................
Numro d'ordre du mouvement
419
ORDER_S
.........................................................................................
Numro d'ordre courant
419
ORDER_T
.................................................................
Numro d'ordre du dernier mouvement 420
ORN
OUTP
OUTP_S
OUTB
OUTB_S
...........................................................................
Oprateur OU avec l'entre 2 inverse
420
.......................................................................................................
Ecriture d'une sortie
420
......................................................................
Lecture de l'tat de la sortie physique
421
.......................................................................................
Ecriture d'un bloc de 8 sorties
421
.....................................................................
Lecture de l'tat des sorties physiques 422
xi
Printed Documentation
....................................................................................
Ecriture d'un bloc de 16 sorties
422
OUTW
....................................................................
Lecture de l'tat des sorties physiques 423
OUTW_S
..........................................................................................................
Position atteindre
423
POS
POS_S
.............................................................................................................
Position Relle
424
POS_T
......................................................................................................
Position atteindre
424
.......................................................................................
Position relle auxiliaire
425
POSAUX_S
POSERROR_S
.................................................................
Indique une erreur de mouvement
425
...............................................................................
Force une variable boolenne FALSE
425
R
R_TRIG
.........................................................................................
Dtection de front montant
426
.......................................................................
Charge une came dans un tableau
428
Etat de
capture
........................................................................................................
la
429
Valeur de la capture
.............................................................................................
429
........................................................................................................
Boucle REPEAT
430
......................................................................................
Redmarrage du systme
431
Retourne
la
raison du dernier dmarrage .......................................................... 431
......................................................................................
Saut la fin du programme
431
............................................................................................
Partie droite d'une chane
432
ROL
ROR
.................................................................................................
Rotation des bits droite
434
...............................................................................................
Bascule RESET prioritaire
435
RS
RUN
S
..............................................................................................................
Lance une tche
436
SECURITY
..............................................................................
Dfinit les actions de scurits
438
..........................................................................
Modifie un bit d'une variable BYTE
440
SETBITD
.....................................................................
Modifie un bit d'une variable DWORD
440
SETBITW
Modifie
ble
WORDun
.......................................................................
bit d'une varia
441
Force
..............................................................................................
l'tat d'une entre
441
xii
................................................................................................................................
Signe
442
SHL
.............................................................................................
Dcalage des bits gauche
442
SHR
...............................................................................................
Dcalage des bits droite
443
............................................................................................
Gnration d'vnement
444
SIGNAL
SIN
..................................................................................................................................
Sinus
445
............................................
Dcale dynamiquement la446
position de l'esclav
SLAVEOFFSET
SLAVEOFFSET_S
...........................................................
Valeur courante de l'offset esclave 447
.....................................................................................................
Rend le smaphore
447
SPOST
................................................................................................................
Racine carre
447
SQRT
....................................................................................................
Bascule SET prioritaire
448
SR
..............................................................................................................
Arrt d'un axe
449
SSTOP
ST ................................................................................................................................................. 450
...............................................................................................
Excute une came
450
STARTCAM
STARTCAMBOX
.............................................................................
Lance une bote cames
450
..................................................................................................
Etat dune tche
451
.................................................................................................................
Arrt d'un axe
452
................................................................................
Arrte une bote came
452
............................................................................
Permet d'arrter l'instruction MOVS
453
...............................................................
Erreur d'excution de la fonction STOPS
454
deTente
prendre le smaphore ........................................................................... 454
.........................................................................................
Lance un mouvement absolu
455
STTC2D........................................................................................................................................ 455
STTC3D........................................................................................................................................ 456
STTH3D........................................................................................................................................ 456
STTH
STTHAUX
.........................................................................................
Prise d'origine non bloquante
456
..........................................................
Prise d'origine sur l'auxiliaire non bloquante
461
STTIM
..................................................................
Lance un mouvement infini en sens moins
461
STTIP
Lance
ment
infini
unen
mouve
sens plus ...................................................................... 462
...........................................................................................
Lance un mouvement relatif
463
SUSPEND
................................................................................................
Suspend une tche
464
SUB
.................................................................................................
Soustraction (langage IL)
464
SWAIT
TAN
.....................................................................................................
Prend le smaphore
464
..........................................................................................................................
Tangente
465
...............................................................
Temps coul depuis le dmarrage du466
MPC
TIMEL
...............................................................
Temps coul depuis le dmarrage du466
MPC
xiii
Printed Documentation
TO................................................................................................................................................. 467
TOF
....................................................................................
Temporisateur l'enclenchement
467
TON
....................................................................................
Temporisateur l'enclenchement
468
.......................................................................................................
Trajectoire absolue
472
TRAJA
Lance
moins
................................................................
un mouvement infini en sens
473
TRAJIP
.....................................................................
Lance un mouvement infini en sens plus 474
.......................................................................................................
Trajectoire relative
475
TRAJR
TRIGGERAXIS_S
TRIGGERAXISSET
Etat ..........................................................................................
trigger
d'un
476
..............................................................
Active le mouvement dclench
476
.......................................................................
Mouvement dclench sur fentre
476
TRIGGERF
Mouvement
h
sur entre..........................................................................
dclenc
477
TRIGGERI
TRIGGERP
...............................................................
Mouvement dclench sur une position
478
TRIGGERRESET
................................................................
Annule le mouvement dclench
478
TRUNC
UNLOCK
...........................................................................................
Inversion de mots
480
..........................................................................................................................
Vitesse
482
VEL_T
..................................................................................
Valeur de la consigne de vitesse
482
VELAUX_S
VELP
VELT_S
xiv
..............................................................................................................................
Vitesse
481
..................................................................................................................
Vitesse
483
..................................................................................................
Vitesse en pourcentage
483
.....................................................................
Retourne la vitesse thorique courante 484
VELT_S
VERSION
WAIT
.....................................................................
Retourne la vitesse thorique courante 484
................................................................................
Version de l'Operating System
485
...................................................................................................
Attente d'une condition
485
WATCHDOGOFF
.............................................................................
Ouvre le chien de garde
486
WATCHDOGON
...............................................................................
Ferme le chien de garde
486
WATCHDOG_S
.................................................................
Retourne l'tat du chien de garde
486
WDTASKRAZ
WDTASK_S
WHILE
......................................
Remet 0 le nombre de
487dclenchement d
Retourne
hement
de WD
le nombre
d'une tche
de dclenc
............................... 487
..........................................................................................................
BOUCLE WHILE
487
Enregistre
ableau
dans une
un t came ................................................................. 488
XOR
.....................................................................................................
Oprateur OU exclusif
488
XORN
...........................................................
Oprateur OU exclusif avec l'entre490
2 inverse
xv
Pour des informations sur les nouveauts de cette version, reportez-vous la rubrique Nouveaut
de l'aide en ligne.
Aide en ligne
Le systme d'aide en ligne fournit des informations dtailles sur les fonctionnalits de l'interface
utilisateur, l'implmentation des langages et les tches de programmation.
Pour afficher la table des matires, choisissez Aide | Sommaire de l'aide. Pour rechercher des
informations sur l'installation, la configuration, la programmation ou d'autres sujets, choisissez les
onglets Index ou Recherche et saisissez votre requte.
Aide F1
1
Printed Documentation
Pour obtenir de l'aide sur une partie de l'environnement de dveloppement Motion Studio (y
compris les lments de menu, les botes de dialogue, les barres d'outils), slectionnez l'lment et
appuyez sur F1.
Les messages d'erreur du compilateur ou du lieur apparaissent dans la console. Pour avoir de
l'aide sur les erreurs de compilation, slectionnez une ligne sur la console et appuyez sur F1.
Printed Documentation
Impression documentation
II est possible d'imprimer la rubrique slectionne ou toutes les rubriques du titre slectionn grce
au bouton d'impression disponible dans la barre d'outils de l'aide en ligne.
Service et support
SERAD offre de nombreuses possibilits de service et support si vous avez besoin d'informations
supplmentaires : hot line, site Web http://www.serad.fr .
Introduction
Mise en garde
Historique du manuel
Version
Date
Commentaire
R1.02
01/09/2008
R1.01
28/05/2007
R0.59
03/05/2007
R0.54
11/10/2006
R0.51
19/09/2006
Version originale
Description du MPC
Gnralits
Dot de hautes performances et d'une grande flexibilit, MPC rpond une large gamme
d'applications industrielles.
Printed Documentation
La puissance du calculateur MPC lui permet de grer des machines complexes haute cadence.
Son noyau temps rel excute des tches cycliques, acycliques, interruptives.
MPC bnficie de toutes les interfaces de communications d'un PC et propose en plus un rseau
Ethernet Industriel et un bus de terrain CANopen.
Donnes techniques
Introduction
Option
Printed Documentation
Convivialit :
Gestion de projets
Configuration simplifie par arborescence
Multi-fentrage
Editeurs graphiques
Menus flottants
Navigation intuitive
Botes outils
Aide intgre
Dveloppement rapide:
Programmation possible dans les 5 langages normaliss
Editeurs avec mise en vidence de la syntaxe
Cration de blocs fonctionnels
Choix des types et priorits des programmes
Rfrences croises
Dfinition de profils de cames par outil graphique
Dclaration en clair des axes, I/O et variables
Liste et historique des messages d'erreurs
Nombreuses librairies intgres
Outils de rglages :
Tableau de bord
Modes trace et pas pas
Dfinition de points d'arrts
Auto-tuning des axes
Gnrateur de trajectoires
Simulateur Motion
Hyper Terminal
Visualisation des variables
Tables d'animation
Oscilloscope numrique
Analyseur de rseau
Applications
Impression d'tiquettes
Lignes d'emballage
Machines textiles
Amenage de presse
Dcoupe jet d'eau
Robots pick & place
Machines bois
Gestion de flux
Dosage, etc.
Printed Documentation
10
Vue de dessus
Vue de ct
11
Printed Documentation
12
13
Printed Documentation
14
Pour accder au module Compact Flash ou aux DIPSwitchs, retirer les deux vis de fixation
du capot :
La Compact Flash est fournie par SERAD, tout autre Compact Flash entrane des
dysfonctionnements.
Entres logiques
15
Printed Documentation
Sorties logiques
16
Alimentation E/S
Alimentation gnrale
17
Printed Documentation
Interface USB
18
Montage
Montage
Le MPC doit tre install verticalement pour assurer un refroidissement optimal.
Il doit tre l'abri de l'humidit, des projections de liquides quelconques, de la poussire.
19
Printed Documentation
Afin de garantir la bonne circulation de l'air, montez le systme de sorte que les espacements du
dessus, du bas, et des cts correspondent au schma suivant :
20
21
Printed Documentation
Scurits
Scurits
Les normes de scurit imposent un rarmement manuel aprs un arrt provoqu soit par
coupure secteur, dfaut chien de garde ou arrt d'urgence.
Le chien de garde du MPC doit tre reli en srie dans la boucle d'arrt d'urgence.
Le chien de garde doit tre activ au dbut du programme. Dans le cas d'un dfaut
(problme interne, micro-coupure, ...), la sortie chien de garde retombe.
Le paramtre "Erreur de poursuite maxi" de chaque axe devra tre rgl.
Des capteurs, pour limiter la course de chacun des axes devront tre relis en srie dans
la boucle d'arrt d'urgence.
Il est recommand d'utiliser les butes logicielles dans le cas des axes finis.
Relier l'information Puissance armoire lectrique OK sur une entre automate et la
traiter dans une tche non bloquante de scurit.
Sur dtection d'une erreur de poursuite, le MPC passe tous les axes en boucle ouverte et
ouvre le chien de garde. Si un autre traitement est souhait, il faut utiliser l'instruction
SECURITY.
Il faut prvoir sur toutes sorties statiques des diodes de roue libre sur les charges
inductives. Ces diodes doivent tre placs le plus prs possible de la charge. Les
conducteurs d'alimentation et de signaux ne doivent pas tre le sige de surtensions.
Mise en route
Mise en route
La mise en route du MPC s'effectue de la faon suivante :
On commence par dfinir les axes en dclarant chaque variateur avec un numro de node
diffrent sur le rseau Ethercat et une configuration moteur.
On dclare les entres/sorties disponibles en locales ou dports.
On charge la configuration ainsi dfinie en utilisant la fonction "Envoyer la configuration" partir
du menu communication du Motion Studio.
On dfinit les variables globales.
On transfre la valeur initiale des variables sauvegardes en utilisant "Envoyer les variables"
partir du menu communication du Motion Studio.
On crit les diffrentes tches.
On transfre les tches aprs les avoir compiles.
Par la suite chaque modification apporte aux tches ncessite une nouvelle compilation et un
transfert des tches dans le MPC. Une modification de la configuration ncessite un nouvel envoi
de la configuration dans le MPC.
Raccordement de variateur
Raccordement avec des variateurs IMD
22
23
Printed Documentation
24
Afin de reprer physiques les MPC, l'assistant affiche leur numro sur l'afficheur 7 segments :
Pour le MPC l'adresse 192.168.1.155, l'afficheur 7 segments affiche L1.
Pour le MPC l'adresse 192.168.1.136, l'afficheur 7 segments affiche L2.
25
Printed Documentation
26
27
, slectionner
.
4. Dans la bote de dialogue Excuter , slectionner
5. Dans la bote de dialogue Parcourir , slectionner le lecteur o se situe le CDROM.
6. Slectionner
puis
8. Le dbut de l'installation est marqu par une srie de bote de dialogue guidant
l'utilisateur :
29
Printed Documentation
30
Message d'accueil
Options d'installation
L'installation des fichiers dbute et est indique par l'volution d'une barre de
progression.
31
Printed Documentation
Architecture
Les rpertoires
32
Le logiciel Motion Studio est install par dfaut dans le rpertoire C :\Program files\SERAD\Motion
studio X.XX\
X.XX reprsente la version du logiciel installe. Plusieurs versions peuvent tre installes en mme
temps. Les rpertoires sont diffrents pour chaque version installe.
Le rpertoire DATA contient la base de donnes systme, ou sont stock les dclarations des
priphriques reconnus par le systme (IMD, Mode entres / sorties CAN
).
Le rpertoire DOC regroupe les documentations sur la table Modbus et le dictionnaire CANopen.
Le rpertoire GFX contient les images utilises par le logiciel.
Le rpertoire HELP regroupe les fichiers de la documentation en ligne.
Le rpertoire INFO contient les outils ncessaires l'dition et la compilation des fichiers du
projet (diteur de langage, compilateur, outils de debug
).
Le rpertoire LIB regroupe la bibliothque de paramtre moteur, au format iDPL. Ceci permet de
crer un axe dans le projet, en se basant sur le paramtrage adapt au moteur.
Dans le rpertoire OS, une copie du systme d'exploitation du MPC ainsi qu'une image complte
de Linux sur la carte compact flash sont prsentes. Ces fichiers sont utiliss pour mettre jour le
MPC ou recrer une compact flash.
Contenu d'un projet
33
Printed Documentation
Le rpertoire
idb
XXX.
fonctions, dclarations de type et tous les fichiers ncessaires pour compiler le projet.
contient tous
Le rpertoire
XXX.sdb con
priphriques (axes, modules d'entres / sorties
), les dclarat
affectations des entres sorties. Cette base rpertorie galement les tches, programmes, bloc
fonctionnels, fonctions, et tous les paramtres de l
IEC1131.
XXX.odb
:
contient tous les autres fi
Le rpertoire
Etc
Dans ces rpertoires, les sous rpertoires .arch contiennent des archives du projet, ralises
chaque sauvegarde. Le nombre d'archives disponibles est paramtrable dans les prfrences. Voir
l'cran prfrence.
Ces archives peuvent, tout moment, tre rcupres. Voir le menu projet.
Prsentation
Cration d'un projet
1. Dmarrer l'atelier logiciel Motion Studio
2. Cliquer sur Projet dans le menu principal
3. Cliquer sur Nouveau dans le menu droulant
4. Dans la fentre Nouveau Projet, indiquer le nom du nouveau projet ainsi que son
emplacement
34
Ecran initial
Les lments de l'environnement de programmation Motion Studio ont t conus pour que vous
soyez dot d'outils permettant de dvelopper rapidement et intuitivement des applications. Cette
section dcrit brivement chacun de ces lments.
Le Motion Studio est compos d'une fentre principale comportant :
1. Le menu principal et la barre d'outils
2. Le navigateur de projet
3. La zone d'dition en multi fentrage
4. La zone commandes rapides
5. La console de sortie
35
Printed Documentation
Le menu principal regroupe l'ensemble des commandes disponibles sous forme de menu set sous
menus. Les barres d'outils du Motion Studio permettent un accs rapide aux oprations et aux
commandes les plus utilises. De nombreuses commandes possdent des quivalents claviers
ainsi que des boutons dans la barre d'outils. Lorsqu'un raccourci clavier est disponible, il est
toujours inscrit ct de la commande dans le menu droulant.
Le navigateur de projet donne une vue d'ensemble, rpartie par groupe de tous les constituants
d'un projet. La navigation est ainsi rapide et prcise. Le pointeur de souris
d'une commande accessible par double clic sur un lment du navigateur.
indique la prsence
La zone de multi fentrage contient les fentres ouvertes par l'utilisateur et en donne une liste sous
multi fentrage
forme d'onglet en dessous. Les proprits du
pouvoir passer d'une fentre l'autre sans avoir les fermer. Les onglets permettent, la fois, le
basculement rapide vers une fentre cache et la fermeture des fentres en cliquant sur la croix.
Menus et icnes
Menu Projet
36
Nouveau
Icne :
Action : Crer un nouveau projet. Le dernier projet en cours doit tre ferm. Une fentre
d'exploration s'ouvre pour indiquer l'emplacement du nouveau projet (comme ci-dessous).
37
Printed Documentation
Ouvrir
Icne :
Action : Ouvrir la bote de dialogue "Ouvrir un Projet". Elle permet l'utilisateur de spcifier le
chemin et le nom du projet charger. Le projet en cours doit tre ferm avant d'entreprendre une
ouverture.
Enregistrer
Icne :
Action : Sauvegarder le projet en cours. Lorsque le Motion Studio est en ligne avec le MPC, les
paramtres sont reus automatiquement avant la sauvegarde.
Enregistrer sous
Icne :
Action : Ouvrir la bote de dialogue "Enregistrer sous" et spcifier le nom du projet de sauvegarde.
Cette commande permet de crer des copies de projets.
38
Fermer
Icne :
Action : Fermer le projet en cours.
Archiver le projet
Icne :
Action : Archiver en compressant le projet afin de rduire son encombrement sur le disque.
Commentaires
Icne :
Action : Permettre de rentrer des commentaires lis au projet grce l'diteur de texte intgr
(format RTF).
39
Printed Documentation
Si la case "Afficher automatiquement l'ouverture du projet" est coche, cette fentre s'ouvre
automatiquement pour rappeler les commentaires et peut ainsi servir d'aide mmoire.
Recherche globale
Icne :
Action : Rechercher un texte dans l'ensemble du projet.
40
Les rsultats de recherche sont rpartis par fichier. En double cliquant sur une ligne, le fichier
correspondant s'ouvre la ligne concerne.
L'application
Le systme d'exploitation
Linux
L'onglet PC regroupe les informations disponible sur le PC, concernant l'atelier logiciel, le systme
d'exploitation associ et le projet.
41
Printed Documentation
L'onglet MPC regroupe les informations concernant le MPC rfrenc dans le projet.
42
Imprimer
Icne :
Action : Raliser une impression totale ou personnalise du projet. Dans cette impression, on
retrouve la configuration du MPC, les tches et le contenu des diffrents programmes, fonctions et
blocs fonctionnels.
Quitter
Icne :
Action : Quitter le logiciel.
Menu Objets
Configuration
Icne :
Action : Activer l'onglet configuration dans le navigateur de projet.
Motion
Icne :
Action : Activer l'onglet motion dans le navigateur de projet.
Automate
Icne :
Action : Activer l'onglet automate dans le navigateur de projet.
Programmation
Icne :
Action : Activer l'onglet programmation dans le navigateur de projet.
Outils
Icne :
43
Printed Documentation
Dfaire
Icne :
Action : Annuler la dernire action dans un diteur de langage.
Refaire
Icne :
Action : Refaire la dernire action annule dans un diteur de langage.
Couper
Icne :
Action : Couper du texte ou un objet afin de le coller un autre emplacement. Slectionnez-le, puis
cliquez sur Couper. Cette commande ne fonctionne que dans les diteurs de langage.
Copier
Icne :
Action : Copier du texte ou un objet afin de le coller un autre emplacement. Slectionnez-le, puis
cliquez sur Copier. Cette commande ne fonctionne que dans les diteurs de langage.
Coller
44
Icne :
Action : Coller le texte ou un objet que vous avez coup ou copi. Placez le point d'insertion
l'emplacement voulu, puis cliquez sur Coller. Cette commande ne fonctionne que dans les diteurs
de langage.
Supprimer
Icne :
Action : Supprimer du texte ou un objet. Slectionnez-le, puis cliquez sur Supprimer. Cette
commande ne fonctionne que dans les diteurs de langage.
Tout slectionner
Icne :
Action : Slectionner l'ensemble des objets ou du texte d'un programme. Cette commande ne
fonctionne que dans les diteurs de langage.
Rechercher
Icne :
Action : Rechercher du texte dans les fentres d'dition. Cette commande ne fonctionne que dans
les diteurs de langage.
Remplacer
Icne :
Action : Remplacer du texte dans les fentres d'dition. Cette commande ne fonctionne que dans
les diteurs de langage.
Menu Affichage
Zoom +
Icne :
Action : Permettre l'utilisateur d'effectuer un agrandissement de la zone d'affichage de vos
schmas SFC, Ladder, FBD et CFC.
45
Printed Documentation
Zoom Icne :
Action : Permettre l'utilisateur d'effectuer une diminution de la zone d'affichage de vos schmas
SFC, Ladder, FBD et CFC.
Menu Compilation
Vrifier la syntaxe
Icne :
Action : Vrifier la syntaxe du programme en cours.
Compiler
Icne :
Action : Compiler le programme en cours.
Construire
Icne :
Action : Reconstruire le projet.
Menu Communication
46
Connecter
Icne :
Action : Passer en ligne avec le MPC. Cette opration ncessite le rception des paramtres
stocks dans le MPC afin de garantir la cohrence des informations affichs.
Dconnecter
Icne :
Action : Interrompre la connexion avec le MPC.
Auto-dtecter la configuration
Icne :
Action : Reoit la configuration le MPC et ajoute automatiquement les priphriques dans le projet.
Le projet doit tre vierge pour pouvoir utiliser cette fonction.
Envoyer la configuration
Icne :
Action : Envoyer la configuration et initialise le MPC avec les paramtres dfinis dans les crans de
configuration du projet. A la fin de l'envoi de la configuration, le rseau Ethercat est
automatiquement r-initialis, ce qui pour effet d'arrter les tches.
47
Printed Documentation
Recevoir la configuration
Icne :
Action : Mettre jour partir du MPC les paramtres indiqus dans les crans de configuration.
Run
Icne :
Action : Dmarrer les tches du MPC.
48
Continuer
Icne :
Action : Continuer les tches du MPC prcdemment suspendues.
Suspendre
Icne :
Action : Suspendre les tches du MPC.
Stop
Icne :
Action : Arrter les tches du MPC.
Redmarrer
Icne :
Action : Redmarrer le MPC.
Cascade
Icne :
49
Printed Documentation
Mosaque
Icne :
Action : Afficher les diffrentes fentres en mosaque.
Console
Icne :
Action : Forcer l'affichage de la console.
Menu Options
Prfrences
Icne :
Action : Permettre l'utilisateur de personnaliser la couleur et le fond des textes, mots-clefs des
diteurs de programmes.
Voir la rubrique prfrences.
Systme d'exploitation
Icne :
Action : Mettre jour le systme d'exploitation du MPC par transfert direct dans celui-ci. Si cette
opration choue, se reporter Compact Flash .
50
Compact flash
Icne :
) sur une
Action : Mettre jour l'image complte du systme d'exploitation du MPC (OS, Linux
compact flash partir d'un PC quip d'un lecteur de compact flash.
Menu Aide
51
Printed Documentation
A propos
Icne :
Action : Ouvrir une bote de dialogue indiquant la version du logiciel, sa date de cration, etc...
Sommaire de l'aide
Icne :
Action : Ouvrir l'aide en ligne du Motion Studio partir du sommaire.
Index de l'aide
Icne :
Action : Ouvrir l'aide en ligne du Motion Studio partir de l'index.
52
53
Printed Documentation
Ajouter
Icne :
Action : Ajouter un axe IMD ou virtuel, un module d'entres / sorties CANopen.
Supprimer
Icne :
Action : Supprime le priphrique slectionn, aprs confirmation.
Menu Pop-up
En cliquant avec le clic droit de la souris on accde au menu pop-up suivant :
Renommer
Icne :
Action : Renomme l'axe slectionn.
54
Onglet Motion
55
Printed Documentation
L'onglet Motion reprsente la liste axes et les fichiers de cames associs. La partie motion de l'axe
inclue ses units, son profile de vitesse, sa prise d'origine et le contrle de ses dfauts de
positionnement (erreur de poursuite, fentre de position et butes). Les axes physiquement relis y
sont reprsents, ainsi que les axes virtuels. Le pointeur de souris
commande accessible par double clic sur un lment du navigateur.
Ajouter
Icne :
Action : Ajouter un profil de cames.
Supprimer
Icne :
Action : Supprime le priphrique slectionn, aprs confirmation.
Menu Popup
56
Renommer
Icne :
Action : Renomme l'axe slectionn.
57
Printed Documentation
Onglet Programmation
L'onglet programmation rpertorie l'ensemble des fichiers utiliss pour crer l'application. Les fichiers
sont rpartis par type (Tches, programmes, bloc fonctionnels, fonctions, dfinitions de type,
variables globales, bibliothques). Diffrents diteurs sont alors utilis pour crer ces fichiers. Un
diteur de variable permet de placer prcisment les variables en mmoire sauvegarde ou dans la
zone d'change. Le pointeur de souris
double clic sur un lment du navigateur.
58
Ajouter
Icne :
Action : Ajouter une tche, un programme, un bloc fonctionnel, une fonction, un fichier de dclaration
de type, un fichier de variables globales ou une bibliothque.
Supprimer
Icne :
Action : Supprime l'lment slectionn, aprs confirmation.
Menu Popup
En cliquant avec le clic droit de la souris on accde au menu popup suivant :
59
Printed Documentation
Renommer
Icne :
Action : Renomme l'lment slectionn
Dans le cas des diteurs de variables sauvegardes et d'change, il est galement possible
d'importer et d'exporter les listes de variables.
60
Onglet Outils
L'onglet outils rassemble les outils disponibles pour le MPC, chaque priphrique, Ethercat ou
CANopen. Le pointeur de souris
clic sur un lment du navigateur.
Ajouter
Icne :
61
Printed Documentation
Crer partir de : Active la cration par copie d'un axe existant. Slectionnez l'axe dans la
liste
Ajout d
62
un Axe virtuel
63
Printed Documentation
Supprimer
Icne :
Action : Supprime le priphrique slectionn, aprs confirmation.
Menu Popup
En cliquant avec le clic droit de la souris on accde au menu popup suivant :
Renommer
Icne :
Action : Renomme l'axe slectionn.
64
Commandes rapides
La zone de commandes rapides, droite, sur la fentre principale du Motion Studio permet d'avoir
une vue globale des fonctions essentiels du MPC (Afficheur Status, Etat des liaisons, des axes et
des tches). Il fait galement office de panneau de contrle rapide.
65
Printed Documentation
Etat
Icne :
Signification : Indique l'tat global de la validation des axes.
En ligne.
Validation
Icne :
Action : Demande la validation de tous les axes, rel, en simulation ou virtuel prsent dans la
configuration.
66
Dvalidation
Icne :
Action : Demande la dvalidation de tous les axes, rel, en simulation ou virtuel prsent dans la
configuration.
En ligne
Liaison EtherCAT
Etat
Icne :
Signification : Indique l'tat global de la liaison EtherCAT avec les variateurs.
Allum vert: La liaison EtherCAT est tablie et le rseau est initialis correctement
En ligne.
Init
Icne :
Action : Demande l'initialisation de la liaison EtherCAT et la vrification des axes prsents sur le
rseau.
En ligne
Liaison CANopen
Etat
Icne :
Signification : Indique l'tat global de la liaison CANopen avec les modules d'entres / sorties.
Allum vert : La liaison CANopen est tablie et le bus de terrain est initialis correctement.
En ligne.
Afficheur status
67
Printed Documentation
Etat
Icne :
Signification : Indique l'tat de l'afficheur de status du MPC. Ceci permet de visualiser les erreurs
prsentes sur le MPC
L'tat n'est visualisable qu'en mode
En ligne.
Acuitter
Icne :
Action : Demande l'acquittement des dfauts afficher qui ont t corrigs. Si la source d'un dfaut
est encore prsente, celui-ci ne peut tre acquitt.
Etat
Icne :
Signification : Indique l'tat du squenceur qui gre les tches dans le MPC.
68
En ligne.
Console de sortie
Console de sortie
La zone de console est la zone de communication entre le logiciel Motion Studio et l'utilisateur. Sur
cette console sont reproduit l'enchanements des oprations demand ( envoi, rception,
connexion, dconnexion, compilations
).
Les informations sont indiques en utilisant diffrentes couleurs pour signifier leur importance :
Noir : Information d'ordre gnrale, sans indication particulire
Vert : Rsultat positif. L'opration s'est termine avec succs.
Orange : Avertissement. L'opration a t abandonne, un problme est survenu, ou l'opration est
interdite.
Rouge : Une erreur est survenue
Liste des points d'arrts
La liste des points d'arrts donne un aperu rapide des points d'arrt apposs aux programmes ST
et IL. Cette liste permet de les retrouver facilement, par fichier, instance et numro de ligne.
Supprimer
Icne :
Action : Supprimer le point d'arrt slectionn
Tout supprimer
Icne :
Action : Supprime tout les points d'arrts
69
Printed Documentation
Prfrences
Motion Studio
Fichiers
Console
70
Accessibilit
Langues
Mode
71
Printed Documentation
Editeurs
Texte
Ladder
72
Compilateur
Options
Outils
Oscilloscope
73
Printed Documentation
74
75
Printed Documentation
Afin de reprer physiquement les MPC, l'assistant affiche leur numro sur l'afficheur 7 segments :
Pour le MPC l'adresse 192.168.1.136, l'afficheur 7 segments affiche L1.
Pour le MPC l'adresse 192.168.1.155, l'afficheur 7 segments affiche L2.
Slectionner votre MPC puis cliquer sur Suivant pour obtenir un rsum des configurations.
Si l'auto-dtection chou, il est nanmoins possible de paramtrer le MPC par liaison srie.
De mme s'il n'est pas dans la liste, on doit cocher la case "Le MPC n'est pas dans la liste" pour
pouvoir utiliser la liaison srie.
76
Pour cela, comme indiqu sur l'cran, on active le DIP2 du MPC, pour pouvoir utiliser la liaison
srie de configuration et redmarrer le MPC.
On doit alors utiliser la liaison srie.
Liaison srie
Pour utiliser la liaison srie de configuration, on doit indiquer au systme, le lien srie du PC sur
lequel le MPC est reli.
77
Printed Documentation
Il faut alors relier le MPC avec un cble srie crois standard sur le port X18 - COM1.
Le MPC indique qu'il est prt communiquer avec un "C" sur l'afficheur de "Status".
Si la lecture des paramtres t ralise avec succs, on accde au rsum des
configurations.
Sinon un erreur de lecture est indique :
Dans ce cas vrifier le cble et le MPC et recommencer la procdure.
Rsum des configurations
Le rsum des configurations permet de confronter et comparer les paramtres de communication
du projet et du MPC.
Ces informations ne tiennent pas compte de la compatibilit avec les paramtres de communication
du PC.
78
79
Printed Documentation
Choix de la configuration
Il est alors possible de dcider quelle sera la configuration conserve.
80
81
Printed Documentation
Validation de la configuration
Le paramtrage de la configuration se termine toujours par une validation des paramtres, afin de
s'assurer que le PC est capable de transmettre les informations vhiculs entre le logiciel Motion
Studio et le MPC. On a maintenant la certitude que la configuration du MPC est identique celle
indique dans le projet.
Pour cela on compare et on vrifie la compatibilit :
- Des classes d'adresses du MPC et du PC
- Des adresses IP et des masques rseau
On termine la vrification par un change de donnes (PING)
Si un incompatibilit est dtecte entre le MPC et le PC, vrifier les paramtres de communication
Ethernet du PC.
Onglet Configuration
Interne
Paramtrage du MPC
Configuration Interne
MPC
Accessible partir d'un double-clic sur le nom MPC, cette fentre permet d'obtenir la liste complte
des paramtres du MPC.
82
Ethernet TCP
83
Printed Documentation
EtherCAT
Mode Ethercat (en mode usine) : Dfinit la longueur de la trame Ethercat, ce paramtre
ne doit tre modifi sans l'autorisation d'un technicien SERAD).
CANopen
84
Conversion des flottants : Conversion des flottants en virgules fixes pour les
priphriques qui ne supportent pas les flottants ou qui ont des flottants cods
diffremment
COM1 / Configuration:
COM1
85
Printed Documentation
COM2
COM2 / Configuration:
Vitesse (bauds) : Vitesse du port COM 2
Accessoires
86
Axe virtuel
87
Printed Documentation
Configuration
Node interne : Noeud interne de l'axe virtuel. Ne pas modifier sauf dans le cas o 2 axes virtuels
ont la mme valeur de noeud.
Modbus RTU
Node Modbus : Numro de noeud utilis par une liaison Modbus RTU pour accder aux
paramtres de l'axe virtuel. Mette 0 si l'on souhaite inhiber l'accs.
CANopen
88
Node CANopen : Numro de noeud utilis par le rseau CANopen pour accder aux paramtres de
l'axe virtuel. Mette 0 si l'on souhaite inhiber l'accs.
89
Printed Documentation
90
Variateur
91
Printed Documentation
Rgulation
Action : Fentre principale pour le paramtrage de la rgulation du variateur. Elle permet d'accder
aux autres fentres de rgulation et aux fentres de configuration.
Boucle simple:
Les 3 boucles de rgulation utilisent le mme retour de position (Rsolveur ou SinCos). Il est
possible partir de cet cran de modifier le sens du retour de position.
92
Double boucle:
La boucle de position utilise un retour de position (Rsolveur ou SinCos) diffrent des 2 autres
boucles de rgulations (couple et vitesse). Il est possible partir de cet cran de modifier le
sens du retour de position.
Boucle de courant
Action : Configurer la boucle courant du variateur
93
Printed Documentation
Anticipation : Assure une erreur de poursuite proche de zro vitesse constante en ajoutant
la consigne une composante proportionnelle la vitesse thorique.
Gain proportionnel : Dfinit la raideur de la rgulation de position. Une valeur trop faible
donne un asservissement mou, une valeur trop forte rend le systme instable.
Entres/sorties analogiques
94
Entres analogiques :
En mode boucle de courante, la voie 1 peut tre utilise comme consigne et la voie 2 en limite de
courant avec comme valeur maximum : Inom * Imax.
Echelle : 10V= : Permet d'associer un pourcentage pour 10V sachant que 100% correspond la
valeur
maximale
du
courant
ou
de
la
vitesse.
Ex : Vitesse
nominale =
3000tr/min
Vitesse
maximale
=
110
%
Tension
sur
la
voie
1 ->
5V
On a alors la vitesse maximale du moteur 3300 tr/min et on choisira une chelle de 200 %
pour faire correspondre 5V la vitesse maximale.
Sortie analogique :
Scurit
Action : Ajuster les paramtres de scurit pour une scurit maximale.
95
Printed Documentation
DC Bus
Rglages usines, ne pas les modifier.
Dans le cas o une rsistance externe est ncessaire, cocher la case Rsistance externe (si elle
n'est pas cocher, le variateur utilisent des paramtres par dfaut pour grer le ballast).
Cette rsistance devra tre bien dimensionne sous peine de dtrioration de celle-ci, son
rglage est accessible en paramtres avancs.
96
Sous-tension : actif par dfaut, tension minimum du variateur lorsqu'il est asservi. Provoque
le dfaut E02 sous tension.
Sur-tension : actif par dfaut, tension maximum du variateur. Provoque le dfaut E01 surtension.
: Ce paramtre est modifiable seulement si on est en mode usine et si le paramtre
Tension nominal est sur Autre (fentre paramtres, onglet variateur) sinon une valeur
par dfaut lui est attribue (390 pour un drive 230V, 780 pour un drive 400V).
Seuil de freinage : permet de dfinir partir de quelle tension, le sur-tension DCBus sera
dissip
par
la
rsistance
de
freinage.
: Ce paramtre est modifiable si on est en mode usine et si le paramtre Tension
nominal est sur Autre (fentre paramtres, onglet variateur) sinon une valeur par dfaut
lui est attribue (375 pour un drive 230V, 750 pour un drive 400V).
Temprature
Rglages usines, ne pas les modifier.
Courant
Rglages usines, ne pas les modifier.
97
Printed Documentation
It : Les moteurs brushless acceptent des courants crtes (jusqu' 2 fois le courant nominal).
I2t permet de surveiller le courant moyen du variateur, sachant que celui-ci ne doit pas
dpasser le courant nominal. En fonctionnement stabilis, I2t doit rester 0. La dure
permet de dfinir la priode sur laquelle le contrle du courant moyen est effectu.
Sur-courant : Le variateur contrle en permanence si le courant est dans une certaine plage
(dpend du type de variateur), si ce courant est hors limite pendant dure du paramtre surcourant alors le variateur passe en dfaut E04 sur-courant.
Moteur
Action : Configurer le moteur et le choisir le type de type de retour moteur associs au variateur.
Moteur
98
Courant maximal : Pourcentage par rapport au courant nominal. Par dfaut 200% (Imax = 2
* Inom).
Couple nominal : Couple nominal du moteur en Nm. Cette information n'est pas utilise par
la rgulation et est juste titre indicatif.
Vitesse maximal : Pourcentage de la vitesse nominal utilis dans le boucle de vitesse pour
limiter le vitesse du moteur.
Capteur de temprature
Sonde PTC : l'erreur est dclenche lorsque la rsistance de la sonde est suprieure au
seuil du variateur.
Sonde NTC : l'erreur est dclenche lorsque la rsistance de la sonde est infrieure au seuil
du
variateur.
Retour moteur
Type : Choix du retour moteur : retour rsolveur X11 ou retour SinCos X13.
Rsolveur / Sincos
Action : Configurer le retour moteur associ au variateur.
Rsolveur
Action : Permet de configurer le retour rsolveur du variateur
99
Printed Documentation
Pour un rsolveur ayant plusieurs paires de ples, la position du rotor sur un tour
pourra tre dcale de NB paire de ples / 360 (ex : 0, 120 ou 240 pour un rsolveur avec
3 paires de ples). De la mme manire, une prise d'origine sur TOP Z pourra tre dcal
de NB paire de ples / 360.
Sincos
Action : Permet de configurer le retour SinCos du variateur
Lien srie : si aucun est slectionn, alors le retour position est relatif ; si Hiperface est
slectionn, on reoit une position absolue.
En cas de dfaut sur le lien srie, une erreur rsolveur E08 ce produira lors de la
demande d'asservissement.
100
Mode incrmental :
Mode Stepper :
Permet de raccorder une commande de moteur pas pas d'un constructeur quelconque au variateur
IMD. Le nombre de pas est rglable ainsi que le sens de rotation.
Mode SSI :
Permet de raccorder un codeur absolu de type SSI pour les fonctions codeur matre ou rgulation
double boucle (retour boucle de position).
C'est partir des signaux cycliques absolus sur l'entre codeur que la position de l'arbre moteur est
calcule.
101
Printed Documentation
Attention : La rsolution doit tre infrieure ou gale 2^nb Bit et la dure maxi pour un
chantillonnage (2^nb Bit / Frquence) doit tre infrieure 100s.
Mode inactif: La
sortie
codeur
n'est
pas
utilise.
Mode actif : La sortie codeur renvoie un signal incrmental par rapport la source
slectionn
et
la
rsolution
saisie.
Mode bypass: (codeur incrmental) L'entre codeur multifonctions est recopie sur la sortie
codeur.
Codeur auxiliaire
Action : Configurer le codeur auxiliaire
102
103
Printed Documentation
Onglet Motion
Paramtrage d'un axe IMD
Liste des paramtres Motion d'un axe IMD
Accessible partir d'un double-clique sur le nom d'un axe IMD, cette fentre permet d'obtenir la
liste complte des paramtres motion du variateur.
Principal
Action : Dfinir la cinmatique de l'axe.
104
Rducteur
Unit
Position : Unit logique de la position de l'axe. L'unit saisie n'est qu'informative et ne rentre
pas dans le calcul des positions.
Position
Distance pour un Rout : Distance parcourue par l'axe pour un tour en sortie de rducteur
Inversion du sens de rotation : Inverse le sens d'volution de la position de l'axe, par rapport
au dplacement physique de l'arbre moteur.
Modulo
105
Printed Documentation
Dclration urgente : Dclration urgente, utilise lorsqu'une bute est atteinte ou lors de
la dsactivation, si l'option
Utiliser
lors de la
la dsactivation
dclration urgente
est
active.
Courbe en
S
: permet d'avoir des acclrations et dclrations en forme de S, ce qui
permet d'adoucir les dbuts et fins de mouvement. L'acclration avec un coefficient S peut
varier de 0 200% de l'acclration donne dans le profil de vitesse.
L'acclration sinus est en cours de dveloppement et non disponible sur cette
version.
Prise d'origine
Action : Dfinir les paramtres de la prise d'origine de l'axe. Ces paramtres sont utiliss par
l'instruction de prise d'origine par l'outil Motion.
106
Type : Dfinit le type de prise d'origine pour l'outil motion. L'instruction HOME peut
galement utiliser ce paramtre, en mettant -1 comme type dans l'instruction.
Entre : Entre utilise dans certains types de prise d'origine. L'entre peut tre l'entre E4
de l'IMD ou une entre du MPC.
Les types de prise d'origine sont dtaills dans la rubrique Programmation du contrle de
mouvement | Paramtrage de l'axe | Prise d'origine
Contrle
Action : Rpertorier tout les paramtres de contrles de l'axe
107
Printed Documentation
Position
Erreur de poursuite : Ds que l'axe passe en mode asservi, il est contrl tout moment :
l'arrt, en mouvement. Si la diffrence entre sa position thorique calcule et sa position
relle donne par le retour codeur est suprieure l'erreur de poursuite maxi, l'axe est
dsactiv. Le rglage de cette valeur est trs important : une valeur trop petite entrane des
arrts intempestifs sur l'axe, une valeur trop grande influe sur la scurit des organes
lectriques
et
mcaniques.
: la valeur de l'erreur de poursuite se fait dans l'unit slectionne et dpend des
paramtres de l'cran Motion control \ Units.
Butes
Mini :
Maxi :
La dclration urgente (motion control / profil de vitesse) est utilise pour arrter le
mouvement lorsqu'on utilise les entres de Fin de course quand le variateur est en mode
position.
Entres sorties
108
Fonction de l'entre E1 :
Fonction de la sortie S1 :
Fonction de la sortie S2 :
La sortie variateur prt doit tre insre dans la boucle d'arrt d'urgence.
Si le frein est slectionn sur la sortie 2, il est ncessaire d'insrer un relais statique externe
(la sortie n2 tant limite 100 mA) avec une diode de roue libre.
L'tat logique de la sortie frein correspond la validation interne du variateur.
Auxiliaire
Action : Rpertorier tout les paramtres de l'entre codeur auxiliaire
Position
Distance pour un Rout : Distance parcourue par l'entre codeur auxiliaire pour un tour en
sortie de rducteur
Unit
Position : Unit logique de la position de l'entre codeur auxiliaire. L'unit saisie n'est
qu'informative et ne rentre pas dans le calcul des positions.
Prise d'origine
Modulo
109
Printed Documentation
Accessible partir d'un double-clique sur le nom d'un axe Virtuel, cette fentre permet d'obtenir la
liste complte des paramtres motion de l'axe virtuel.
Principal
Action : Dfinir la cinmatique de l'axe virtuel.
Rducteur
110
Unit
Position : Unit logique de la position de l'axe. L'unit saisie n'est qu'informative et ne rentre
pas dans le calcul des positions.
Position
Distance pour un Rout : Distance parcourue par l'axe pour un tour en sortie de rducteur
Inversion du sens de rotation : Inverse le sens d'volution de la position de l'axe, par rapport
au dplacement physique de l'arbre moteur.
Modulo
111
Printed Documentation
Dclration urgente : Dclration urgente, utilise lorsqu'une bute est atteinte ou lors de
la dsactivation, si l'option
Utiliser
rgente
lors
la de
dclration
la dsactivation
u
est
active.
Courbe en
S
: permet d'avoir des acclrations et dclrations en forme de S, ce qui
permet d'adoucir les dbuts et fins de mouvement. L'acclration avec un coefficient S peut
varier de 0 200% de l'acclration donne dans le profil de vitesse.
L'acclration sinus est en cours de dveloppement et non disponible sur cette
version.
Prise d'origine
Action : Dfinir les paramtres de la prise d'origine de l'axe. Ces paramtres sont utiliss par
l'instruction de prise d'origine par l'outil Motion.
112
Type : Dfinit le type de prise d'origine pour l'outil motion. L'instruction HOME peut
galement utiliser ce paramtre, en mettant -1 comme type dans l'instruction.
Entre : Entre utilise dans certains types de prise d'origine. L'entre peut tre l'entre E4
de l'IMD ou une entre du MPC.
Profils de came
Ajout d'un profil de came
113
Printed Documentation
114
L'diteur est compos d'un diteur de came graphique dans la partie suprieure et d'une zone
d'options rpartie sur trois onglets :
Vitesse et acclration
Table
Paramtres
115
Printed Documentation
1. Une barre d'outils permet un accs rapide aux fonctions de base de l'dition de came :
Curseur
Icne :
Signification : Active l'outil curseur. Permet les mesures de positions sur l'cran de
l'diteur. Pour cela, cliquer sur l'diteur graphique l'endroit o se trouve l'origine de
la mesure. Un petite croix rouge apparat la position de l'origine.
Dplace
Icne :
Signification : Active l'outil de dplacement de points. Cet outil autorise le placement
manuel des points sur l'cran.
Insrer
Icne :
Signification : Active l'outil d'insertion de point. Grce cet outil, on insre les points,
un par un pour former la courbe de dplacement de l'axe.
Supprimer
Icne :
Signification : Active l'outil de suppression de point. En cliquant sur un point avec cet
outil, il est supprim et la courbe est re-calcule en tenant compte de cette
modification.
Centrage automatique
Icne :
Signification : Centre automatiquement la courbe sur l'cran de manire ce qu'elle
soit visible en totalit.
Zoom slection
Icne :
Signification : Active l'outil de zoom par slection. Slectionnez une zone de l'cran
l'aide de cet outil en gardant le bouton de la souris enfonc. En relchant, la zone
slectionne est agrandie pour occuper la totalit de la fentre d'dition.
116
117
Printed Documentation
1. Une barre d'outil permet un accs rapide aux fonctions de base de l'dition de liste :
Insrer
Icne :
Signification : Active l'outil d'insertion de point. Grce cet outil, on insre les points,
un par un pour former la courbe de dplacement de l'axe.
Supprimer
Icne :
Signification : Active l'outil de suppression de point. En cliquant sur un point avec cet
outil, il est supprim et la courbe est re-calcule en tenant compte de cette
modification.
2. Dans cette table on liste les points avec leurs coordonnes X,Y et la pente dX,dY. Le
champ mode indique la mthode de calcul de la pente au point correspondant.
Suivant le mode choisi, on obtient des valeurs diffrentes pour dX et dY. Le champ
mode n'est pas transmit dans le MPC. Le mode est interprt partir des valeurs de
dX et dY.
Mode Ligne : dX=X et dY=1. Dans ce mode, une ligne droite est automatique
calcule entre ce point et le suivant.
Mode Auto : dX=X et dY=0. Dans ce mode, la pente au point est calcule
automatiquement comme la moyenne arithmtique des pentes aux points
prcdent et suivant.
Onglet Paramtres
L'onglet paramtres permet de dfinir la came.
118
Onglet Automate
L'diteur de variables d'entres/sorties
A partir d'un double-clic sur Editeur celui-ci permet de dfinir pour chaque entre/sortie : un nom,
une inversion et un filtrage.
Pour les sorties, il est possible de dfinir en plus une valeur de replie.
Des noms peuvent tre affects des blocs de 8, 16 ou 32 entres ou sorties.
Le choix des inversions, filtrage, numro de filtre et valeur de repli ne sont paramtrables que pour
des entres ou sorties unitaires.
Les entres / sorties nommes sont utilises pour crer un fichier IO.POE utilis la compilation
pour dclarer les entres / sorties globales.
Les dclarations de ce fichier doivent tre reprises dans la dclaration des variables des
programmes qui les utilisent, sans la partie affectation directe (AT %XX.X).
119
Printed Documentation
Inversion : NON pour travailler en logique positive (tat hardware = tat software), OUI
pour travailler en logique ngative.
Adresse : Adresse dans l'image de process, calcule par le Motion Studio et servant
dclarer les entres sorties dans le fichier IO.POE.
Les paramtres des sorties sont indiqus par un bloc de 32 sorties. Le MPC ne possdant que 24
sorties, les autres bits de cette valeur ne sont pas pris en compte.
Paramtrage des E/S IMD
Accessible partir d'un double-clique sur le nom d'un axe IMD, cette fentre permet d'obtenir la
liste complte des paramtres des entres / sorties du variateur. Elle reprend les valeurs
d'inversion, filtrage, repli de l'diteur d'entres / sorties et permet en plus de rgler la valeur du filtre
1.
120
Valeur de repli des sorties 1 32 : Valeur affecte aux sorties en cas de rupture de
communication en binaire.
Les paramtres des entres et des sorties sont indiqus par un bloc de 32 ou 16 bits. Le variateur
ne possdant que 16 entres et 10 sorties, les autres bits de ces valeurs ne sont pas pris en
compte.
Paramtrage des E/S CANopen
Accessible partir d'un double-clique sur le nom d'un module CANopen, cette fentre permet
d'obtenir la liste complte des paramtres des entres / sorties du module d'entres / sorties
CANopen. Elle reprend les valeurs d'inversion, filtrage, repli de l'diteur d'entres / sorties et
permet en plus de rgler les valeurs des filtres.
121
Printed Documentation
122
Nombre d'entres : Nombre d'entres prsentes sur le module. Cette valeur est utilise
dans la fonction d'initialisation du module d'entres / sorties CANopen pour le
paramtrage de ce dernier.
Adresse des entres : Paramtre calcul par l'diteur d'entres / sorties et utilis dans la
fonction d'initialisation du module d'entres / sorties CANopen pour le paramtrage de ce
dernier.
Inversion des entres XX XX : Inversion des entres en binaire, par bloc de 32 entres,
en fonction du nombre d'entres dclares.
Filtrage des entres XX XX : Filtrage des entres en binaire, par bloc de 32 entres, en
fonction du nombre d'entres dclares.
Nombre de sorties : Nombre de sorties prsentes sur le module. Cette valeur est utilise
dans la fonction d'initialisation du module d'entres / sorties CANopen pour le
paramtrage de ce dernier.
Adresse des sorties : Paramtre calcul par l'diteur d'entres / sorties et utilis dans la
fonction d'initialisation du module d'entres / sorties CANopen pour le paramtrage de ce
dernier.
Inversion des sorties XX XX : Inversion des sorties en binaire, par bloc de 32 entres,
en fonction du nombre de sorties dclares.
Valeur de repli des sorties XX XX : Valeur affecte aux sorties en cas de rupture de
communication, en binaire, par bloc de 32, en fonction du nombre de sorties dclares.
Un module d'entres / sorties CANopen pouvant possder jusqu' 256 entres et 256 sorties, les
paramtres de toutes ces entres / sorties sont accessibles afin de pouvoir moduler sa taille en
fonction de l'volution du projet sans tre oblig de le recrer.
Onglet Programmation
Configuration du multitche
Accessible partir d'un double-clique sur le mot Tches, cette fentre indiquer les paramtres du
multitche.
Vieillissement des tches de fond : Temps de cycle total pour toutes les tches de fond.
123
Printed Documentation
Erreur systme sans arrt des tches : Les tche ne sont pas arrt mais
une erreur systme apparat sur l'afficheur
Erreur systme avec arrt des tches : Les tches sont arrtes et une
erreur systme apparat sur l'afficheur
Priode des statistiques : Priode de calcul des statistiques visualisable dans l'outil
performance.
Taille d'une banque de variable : Taille en octet d'une banque de variables sauvegardes.
Maximum 65283 octets
124
Priorit des communications Modbus TCP : Dfini la priorit de la tche de traitement des
messages Modbus TCP dans le systme d'exploitation.
Dure minimale entre deux messages CAN : Dfini le temps d'attente sur le BUS
CANopen entre deux messages. Permet de limiter le dbit pour permettre aux
priphriques lents de traiter tous les messages.
Dure minimale entre deux messages Modbus : Dfini le temps d'attente en Modbus
entre deux messages. Permet de limiter le dbit pour permettre aux priphriques lents
de traiter tous les messages.
Dure minimale entre deux messages Modbus TCP : Dfini le temps d'attente en Modbus
TCP entre deux messages. Permet de limiter le dbit pour permettre aux priphriques
lents de traiter tous les messages.
Les tches
Cration d'une tche
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout
3. Dans la fentre Ajout, slectionner Tches dans l
.
arborescence de gauche.
4. Nommer et paramtrer votre nouvelle tche puis terminer en cliquant sur Ajouter
Configuration des tches
Accessible partir d'un double-clique sur le mot Tches, cette fentre indiquer les paramtres de
chacune des tches.
125
Printed Documentation
Dmarrage :
Directe : Utilisation des instructions INP et OUT pour grer les entres /
sortie directement
Par image de process : Utilisation des entres / sorties dclars dans l'diteur
d'affectation. Les entres / sorties sont mis jour par l'image de process en dbut et fin
de tche.
126
127
Printed Documentation
5. Nommer et paramtrer votre nouveau programme puis terminer en cliquant sur Ajouter.
Configuration des programmes
Accessible partir d'un double-clic sur le mot Tches, cette fentre indiquer les paramtres de
chacun des programmes.
128
Actif : Dfinit s'il doit tre ajout la liste des programmes de la tche l'excution.
Index : Index dans la liste des programmes de la tche. Permet de dfinir l'ordre
d'excution des programmes dans la tche.
Renommer un programme:
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant tches .
3. Afficher l'arborescence des programmes, en cliquant sur le + devant le nom de la
tche contenant le programme modifier.
4. Faire un clic droit sur le programme et slectionner Renommer dans le menu contextuel.
Dplacer un programme:
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant tches .
3. Afficher l'arborescence des programmes, en cliquant sur le + devant le nom de la
tche contenant le programme modifier.
4. Faire un clic droit sur la tche et slectionner Dplacer vers le haut ou Dplacer vers le
Bas du menu contextuel pour dplacer la tche.
129
Printed Documentation
3. Afficher l'arborescence des types de bloc fonctionnel, en cliquant sur le + devant Blocs
fonctionnels .
130
5. Nommer et paramtrer votre nouveau bloc fonctionnel puis terminer en cliquant sur
Ajouter.
Modification d'un bloc fonctionnel
131
Printed Documentation
5. Nommer et paramtrer votre nouvelle fonction puis terminer en cliquant sur Ajouter.
Attention
La configuration du retour de la fonction se fait dans la fentre d'dition de la tche
Modification d'une fonction
132
Renommer un programme:
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des fonctions en cliquant sur le + devant fonctions .
3. Puis cliquer droit sur le fonction et slectionner Renommer dans le menu contextuel.
Dplacer un programme:
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des fonctions en cliquant sur le + devant fonctions .
3. Puis cliquer droit sur la fonction et slectionner Dplacer vers le haut ou Dplacer vers le
Bas du menu contextuel pour dplacer la tche.
133
Printed Documentation
134
4. Nommer le nouveau fichier de variables globales puis terminer en cliquant sur Ajouter.
135
Printed Documentation
136
137
Printed Documentation
Si des messages d'erreur apparaissent, vous devez corriger toutes les erreurs pour pouvoir
sauvegarder et ferme l'diteur
Les variables d'changes
138
139
Printed Documentation
Si des messages d'erreur apparaissent, vous devez corriger toutes les erreurs pour pouvoir
sauvegarder et ferme l'diteur
Onglet Outils
Outils MPC
Tableau de bord
Accessible partir d'un double-clic sur Tableau de bord, cet outil permet de contrler l'tat
hardware du MPC.
140
Entres / Sorties
Accessible partir d'un double-clic sur Entres / Sorties, cet outil permet de contrler l'tat des
entres / sorties du MPC. Sur cet cran l'tat physique et l'tat logique y sont indiqu.
141
Printed Documentation
Il est possible de manipuler les entres et les sorties en modifiant les inversions.
En cliquant sur les voyants des sorties il est galement possible de les modifier si elle ne sont pas
utilise dans une des tche utilisant une image de process.
En effet cette dernire vient priodiquement crire physiquement les sorties qu'elle utilise, partir
du moment ou elle sont dclar dans un des programmes de la tche.
Hyper-Terminal
Accessible partir d'un double-clic sur Hyper-terminal, cette outils permet de contrler l'tat des
tches / programmes, de visualiser l'tat des axes et la valeur des variables.
142
L'outil est compos de trois zones distinctes dplaables sur l'cran au moyen de sparateurs.
1. Une zone contenant les lments visualisables du systme regroupe les visualisations
disponibles sur les axes et l'ensemble des variables du projet rparties par instance.
2. L'tat des tches et des programmes qu'elles contiennent est accessible dans cette zone.
Une barre d'outils permet de grer l'excution des tches.
Stop
Icne :
Signification : Arrte la tche slectionne.
Run
Icne :
Signification : Dmarre la tche slectionne.
Suspendre
Icne :
Signification : Suspend l'excution de la tche slectionne.
143
Printed Documentation
Continuer
Icne :
Signification : Continu l'excution de la tche slectionne.
3. Une barre d'outil permet un accs rapide aux fonctions de base de l'outil de visualisation:
Debug
Icne :
Signification : Active / dsactive la visualisation de la valeur des variables ou de l'tat des
axes.
Ajouter
Icne :
Signification : Ajoute l'lment slectionn de la liste des lments visualisable, dans la liste
de visualisation en cours.
Supprimer
Icne :
Signification : Supprime l'lment slectionn.
Ouvrir
Icne :
Signification : Ouvre une liste de visualisation sur fichier.
Enregistrer
Icne :
Signification : Enregistre la liste de visualisation en cours dans une liste de visualisation sur
fichier.
Tout supprimer
Icne :
Signification : Supprime la liste de visualisation en cours.
Oscilloscope
Accessible partir d'un double-clic sur Oscilloscope, cet outil permet d'observer des donnes en
temps rel.
144
L'outil est compos de trois zones distinctes dplaables sur l'cran au moyen de sparateurs,
ainsi que d'une barre d'outils.
- Au centre, la visualisation des donnes captures
- A droite, la barre d'outils
Lecture
Icne :
Signification : Lancer l'acquisition en mode automatique. A la fin d'une acquisition, on affiche
les donnes et on relance automatiquement l'acquisition suivante.
Mono-coup
Icne :
Signification : Lance une seule acquisition.
Force trig
Icne :
Signification : Force le dclenchement du Trigger programm.
145
Printed Documentation
Stop
Icne :
Signification : Stoppe l'acquisition en cours et affiche les donnes captures.
Zoom +
Icne :
Signification : Augmente la profondeur du zoom.
Zoom Icne :
Signification : Diminue la profondeur du zoom.
Zoom slection
Icne :
Signification : Zoom sur la zone slectionne.
Pan
Icne :
Signification : Dplace la zone de visualisation de l'cran.
Zoom d'origine
Icne :
Signification : Affiche les donnes en utilisant la totalit de l'cran.
Mesures
Icne :
Signification : Active ou dsactive l'outils de mesure.
L'outils mesure permet d'valuer les amplitudes et les carts temporelles.
146
Enregistrement
Icne :
Signification : Enregistre au format HTML les courbes captures et les paramtres associs.
147
Printed Documentation
Une source peut tre une grandeur mesurable d'un priphrique (axe ...), une variable du
programme.
Une expression peut-tre utilise pour appliquer une formule aux canaux existant et en
extraire une autre courbe.
La formule utilise donc les autres canaux (CH1, CH2, CH3, CH4 ... ) en tous les oprateurs
et fonction mathmatiques suivantes :
- Oprateurs de bases : +, -, *, /, ^, DIV, MOD
- Oprateurs trigonomtriques : SIN, COS, TAN, SINH, COSH, ARCTAN
- Oprateurs mathmatiques un argument :
EXP : Exponentielle
LN : Logarithme nprien
LOG10 : Log base 10
LOG2 : Log base 2
SQR : Carr
SQRT : Racine carre
ABS : Valeur absolue
TRUNC,INT : Partie entire
CEIL : Arrondi suprieur
FLOOR : Arrondi infrieur
HEAV : Ngatif
SIGN : Signe
ZERO : Zro
148
PH : Phase
RND : Nombre alatoire
RANDOM : Nombre alatoire
- Oprateurs mathmatiques deux arguments :
MAX : Valeur maxi
MIN : Valeur minimale
ARG : Angle form par deux vecteurs
POWER : Puissance
INTPOWER: Puissance entire
LOGN : Logarithme nprien
- En bas, le paramtrage de la capture et de la visualisation
Le trigger permet de dfinir le dclenchent de l'oscilloscope sur un vnement ou une
condition particulire sur les donnes.
L'amplitude dfinit les conditions d'affichage des donnes sur l'cran. Le mode auto permet
de laisser l'oscilloscope choisir automatiquement.
Ce peut tre un bon choix pour une premire acquisition. Par la suite et surtout dans le cas
on l'on veut observer des variations d'amplitude, d'une acquisition l'autre il est
recommand de dsactiver ce mode
De mme, on peux choisir rsolution et dure d'acquisition. En mode auto, la rsolution est
calcule en fonction de la dure, de faon obtenir un temps de transfert correcte avec une
bonne finesse des donnes.
149
Printed Documentation
Performances
Accessible partir d'un double-clic sur Oscilloscope, cet outil permet d'observer les performances
du systme en temps rel.
Pour cela, on indique, pour chaque tche, les donnes cruciales concernant l'excution :
Processeur : Cette rubrique regroupe les temps vu par le processeur, sans tenir compte
du fait que les tches sont rgulirement interrompu.
Max (s) : Dure maxi pour excuter entirement la tche sur le processeur
Cycle : Cette rubrique regroupe les temps d'excution des cycles des tches en tenant
compte des interruptions dues aux tches de priorits plus levs
Informations
150
Max (s) : Dure maxi observe pour l'excution totale d'un cycle de la tche
Accessible partir d'un double-clic sur Information, cet outil permet d'obtenir des informations
dtailles sur le MPC et l'utilisation qui en est faite.
Cet outils permet d'obtenir un rsum, ou des information dtaills, suivant la page choisie. Les
informations dtailles n'tant interprtable que par le service technique SERAD, il n'est pas utile
de le consulter directement. En revanche, il peut tre demand par ce dernier, de gnrer un
rapport partir de ces informations.
Pour cela, cliquer sur Rapport pour le gnrer et l'envoyer par la suite, ou sur eMail pour le gnrer
et l'envoyer immdiatement.
Le rsum est compos de deux rubriques :
La rubrique hardware regroupe les caractristiques matrielles du MPC
La rubrique utilisation regroupe les informations concernant l'utilisation qui est faire des ressources
:
151
Printed Documentation
Alarmes
152
Acquitter
Icne :
Action : Demande l'acquittement des dfauts afficher qui ont t corrigs. Si la source d'un
dfaut est encore prsente, celui-ci ne peut tre acquitt.
Messages
Accessible partir d'un double-clic sur Messages, cet outil permet l'historique des vnements
observ sur le MPC.
L'observation des vnements commence par la mise jour de la liste partir du MPC en cliquant
sur "Mise jour".
La partie suprieur de cet outils est un bandeau chronologique, sur lequel les vnements sont
indiqus.
Un point d'interrogation dsigne une information, un point d'exclamation une erreur. En
slectionnant une date sur ce bandeau, on affiche la liste.
153
Printed Documentation
La liste de droite permet de paramtrer les vnements que le MPC doit enregistrer. On dfinir
galement la priode d'enregistrement de l'historique sur la compact flash du MPC.
Il est possible, enfin d'effacer l'historique.
Console
Accessible partir d'un double-clic sur Console, cet outil permet d'accder la console systme du
MPC. Cette console est galement disponible en reliant un cran et clavier directement sur les
connecteurs prvus cet effet. Cependant, l'utilisation de cet outils tant complexe il est fortement
recommand de ne l'utiliser qu' la demande expresse du service technique SERAD.
Outils Axe
Tableau de bord
Accessible partir d'un double-clic sur Tableau de bord, cet outil permet de contrler l'tat
hardware de l'IMD et du moteur.
154
Courant : Indique le courant efficace instantan consomm par le moteur. Une valeur
en n.m est galement indique, par conversion partir des donnes du moteurs.
DC Bus : Donne la tension actuel du bus continu interne. La valeur peut augmenter
pendant les phases de dclration.
Entres / Sorties
Accessible partir d'un double-clic sur Entres / Sortie, cet outil permet de contrler l'tat
hardware des entres / sorties. Sur cet cran l'tat physique et l'tat logique y sont indiqu.
155
Printed Documentation
Il est possible de manipuler les entres et les sorties en modifiant les inversions.
En cliquant sur les voyants des sorties il est galement possible de les modifier si elle ne sont pas
utilise dans une des tche utilisant une image de process.
En effet cette dernire vient priodiquement crire physiquement les sorties qu'elle utilise, partir
du moment ou elle sont dclar dans un des programmes de la tche.
Entres / Sorties analogiques
Accessible partir d'un double-clic sur Entres / Sortie analogiques, cet outil permet de contrler
l'tat hardware des entres / sorties analogiques.
156
Les tensions des entres / sorties analogiques sont indiques. Il est galement possible de modifier
la tension sur la sortie analogique, condition qu'elle ne soit pas crite dans une tche en cours
d'excution.
Motion
Accessible partir d'un double-clic sur Motion, cet outil permet de tester le comportement
dynamique de l'axe.
L'outil se compose de trois partie disposs verticalement :
157
Printed Documentation
158
159
Printed Documentation
Auto-tuning complet :
Permet denchaner les diffrents auto-tuning : du retour position la boucle de position.
160
Il est possible de manipuler les entres et les sorties en modifiant les inversions.
En cliquant sur les voyants des sorties il est galement possible de les modifier si elle ne sont pas
utilise dans une des tche utilisant une image de process.
En effet cette dernire vient priodiquement crire physiquement les sorties qu'elle utilise, partir
du moment ou elle sont dclar dans un des programmes de la tche.
161
Printed Documentation
Dans la partie dclaration, on retrouve toutes les variables utilises dans la partie code.
Ces variables sont classs selon leur utilisation (local, global, externe
sections de dclaration du langage IEC61131
Menu Pop-up
En cliquant avec le clic droit de la souris on accde au menu pop-up suivant :
Couper
162
Copier
Action : Copier la slection.
Coller
Action : Coller la slection.
Supprimer
Action : Supprimer la slection.
Chercher
Remplacer
Type de base
Action : Insrer un type pour une variable parmi les types de base.
Type complexes
Action : Insrer un type pour une variable parmi les types complexes.
Blocs fonctionnels
Action : Insrer un type pour une variable parmi les types de blocs fonctionnels.
Les diteurs ST et IL
Les diteurs ST et IL se dcomposent en une zone d'dition de texte dans lequel l'utilisateur vient
entrer le code ST ou IL associ son application, une barre d'outil (permettant l'aide l'dition du
code et le dbogage en mode connecter ) et une zone de dclaration des variables.
163
Printed Documentation
Barre d
outils
164
Dfaire
Action : Annuler la dernire action dans l'diteur.
Refaire
Action : Refaire la dernire action annule dans l'diteur.
Couper
Action : Copier la slection.
Copier
Action : Copier la slection.
Coller
Action : Coller la slection.
Slectionner tout
Action : Slectionner l'ensemble du code de l'diteur.
Basculer le signet
Action : Ajouter ou supprimer un signet
Voir aussi :
Langage ST
Langage IL
L'diteur LD
L'diteur LD (Ladder) se dcompose en une zone d'dition du POU ladder (la grille), une barre
d'outils et une zone de dclaration des variables.
Un POU ladder est constitu de plusieurs rseaux.
Chaque rseau est la constitution d'un en-tte ou commentaire et d'une seule expression associe
une sortie (voir langage LD)
165
Printed Documentation
Barre d'outils
166
Action : Ouvre une fentre avec la liste de variables dclarer dans le POU et permet de
l'insrer dans le code
Action : Ouvre une fentre avec la liste des blocs fonctionnels disponibles.
Insrer un rseau
Action : Insre un nouveau rseau aprs le rseau courant
Insrer en parallle
Action : Insre un contact en parallle avec les lments slectionns
Insrer un contact
Action : Insre un contact l'endroit de la slection
Insrer un relais
Action : Insre un relais l'endroit de la slection
Insrer un saut
Action : Insre un saut l'endroit de la slection
Insrer un reset
Action : Insre un relais reset l'endroit de la slection
Insrer un set
Action : Insre un relais set l'endroit de la slection
Insrer un retour
Action : Insre un retour l'endroit de la slection
L'diteur CFC
167
Printed Documentation
L'diteur CFC (diteur de diagramme de fonction continue) est un outil technique, utilis pour crer
graphiquement des programmes d'automation.
Les lments principaux d'un diagramme de CFC sont les blocs (blocs progiciels, blocs utilisateur,
blocs composants), qui peuvent tre arrang librement sur le diagramme, les barres d'alimentation
( gauche et droite), qui fournissent des liens aux variables IEC1131 et des liens virtuels dans le
diagramme, et des connexions pour relier une sortie (bloc ou barre d'alimentation) l'une ou
plusieurs entres (bloc ou barre d'alimentation).
Niveau 0 :
Niveau 1 :
Barre d'outils
168
Couper
Action : Copie la slection.
Copier
Action : Copie la slection.
Supprimer
Action : Supprime la slection.
Chercher/Remplacer
Insrer un bloc
Remplacer un bloc
Zoom +
Action : Permet l'utilisateur d'effectuer un agrandissement de la zone d'affichage.
169
Printed Documentation
Niveau haut :
Action : Permet d'aller au diagramme (bloc composant) suprieur.
Afficher la documentation
Action : Affiche l'aide du bloc slectionn.
Voir/Cacher la grille
Action : Options d'affichage
Voir aussi :
Langage CFC
L'diteur FBD
L'diteur F.B.D est un outil technique, utilis pour crer graphiquement des programmes d'automatisation.
Il se dcompose d'une zone d'dition du POU (la grille), une barre d'outils et une zone de
dclaration des variables.
Un POU FBD est constitu de plusieurs rseaux.
Chaque rseau est la constitution d'un en-tte ou commentaire et d'un schma.
Les lments principaux du graphique FBD sont les rseaux et les symboles graphiques. Avec chaque rseau
dfinit par l'utilisateur, un projet une structure facile. Entre les barres de variables (gauche et droite) les
symboles graphiques choisis reprsentant par exemple des blocs de fonctions sont placs dans des places
fixes. Vous trouvez toutes les parties graphiques dans la fentre d'instructions du cadre ControlX .
170
Barre d'outils
171
Printed Documentation
Couper
Action : Copier la slection.
Copier
Action : Copier la slection.
Supprimer
Action : Supprimer la slection.
Slectionner tout
Action : Slectionner l'ensemble du code de l'diteur.
Rechercher/Remplacer
Action : Ouvre une fentre avec la liste de variables dclarer dans le POU et permet de
l'insrer dans le code
Action : Ouvre une fentre avec la liste des blocs fonctionnels disponibles.
Zoom +
Action : Permettre l'utilisateur d'effectuer un agrandissement de la zone d'affichage.
Voir aussi :
Langage FBD
172
Langage de programmation
Introduction
Motion Studio est un outil de programmation puissant et simple utiliser. Il offre une architecture
structure base sur la norme IEC 61131-3.
Ce langage est gr par un noyau temps rel multitches, utilisant des instructions dfinies par la
norme IEC 61131-3 et contenant galement des fonctions de contrle de mouvement.
Le langage intgre aussi la gestion de donnes sous la forme de variables globales, locales,
sauvegardes...
Un projet Motion Studio regroupe :
1. une configuration (MPC, axes, E/S)
2. des tches contenant des programmes
3. des blocs fonctionnels
4. des fonctions
5. des donnes
Les langages
Langage IL
Langage IL
173
Printed Documentation
Description
Un programme crit en langage IL est une liste d'instructions.
Chaque instruction doit tre crite sur une ligne de texte.
Une instruction peut avoir un ou plusieurs oprandes.
Les oprandes peuvent tre des variables ou des expressions constantes.
Chaque instruction peut commencer par une tiquette suivie par le caractre ":".
Les tiquettes sont les destinations pour les instructions de saut.
Structure du langage
Le langage IL utilise ce que l'on appelle un registre, chaque instruction utilise ou modifie le contenu
du registre :
Exemple :
LD
10
ADD
25
ST
LD
10
INT_TO_REAL
25
(* On la convertie en rel*)
ADD
0.543
(* On
0.543*)
ST
(* On stocke
variable A*)
Instructions
Instructions logiques de programme:
174
l'additionne
le
la
rsultat
valeur
dans
la
Langage de programmation
Instruction
Modificateur
Oprande
Description
CAL
C, CN
bloc
fonctionnel
JMP
C, CN
tiquette
RET
C, CN
boolen
AND
N, N (, (
boolen
OR
N, N (, (
boolen
XOR
N, N (, (
boolen
S(et)
boolen
R(eset)
boolen
Oprations Mathmatiques:
ADD
numrique
SUB
numrique
MUL
numrique
DIV
numrique
Instruction de chargement/Forage:
LD
tout type
ST
tout type
Oprateurs logiques:
GT
numrique
GE
numrique
EQ
numrique
NE
numrique
LE
numrique
LT
numrique
Modificateurs
Dans le langage IL, on utilise des modificateurs, les modificateurs influencent l'excution de
l'oprateur :
175
Printed Documentation
Modificateur
Oprande
Description
tout type
boolen
CN
boolen
tout type
Sous-programmes
176
Langage de programmation
L'appel d'un sous- programme en langage IL est fait en utilisant les oprateurs CAL et CALC. Les
appels de sous programme ne fournissent pas de valeurs de retour. La section IL appele doit se
situer dans la mme tche que la section IL appelante :
Appel
fonction :
ST
CAL
Ma_fonction()
LD
ST
CAL
Ma_fonction
LD
Ou
Appel
fonction :
Commentaires
Des textes de commentaire peuvent tre entrs la fin de chaque ligne d'instruction. Les
commentaires n'ont pas d'influence sur l'excution du programme. Un commentaire doit tre
dlimit par les caractres "(*" et "*)". Vous pouvez galement entrer des commentaires sur des
lignes vides (sans instruction). Les commentaires ne peuvent pas tre imbriqus.
Langage ST
Langage ST
Description
Le ST est un langage textuel structur. Un programme ST est une liste d'instructions. Chaque
instruction dcrit une action et se termine par un point-virgule (";"). La prsentation du texte n'a pas
d'influence sur l'excution du programme. Vous pouvez insrer des caractres blancs ou des sauts
de lignes n'importe o dans le texte.
Les retours la ligne ne sont pas significatifs puisque l'on peut crire plusieurs instructions sur une
mme ligne. De mme, une instruction peut tre sur plusieurs lignes.
Expressions
Chaque instruction dcrit une action et peut inclure des expressions complexes.
Une expression est value:
de gauche droite
selon la priorit des oprateurs
177
Printed Documentation
la priorit par dfaut peut tre change l'aide de parenthses
Les arguments d'une expression sont:
des variables dclares
des expressions constantes
des appels de fonction
Les oprateurs sont excuts en fonction de leur rang dans les expressions :
Oprateur
Signification
Rang
Oprandes
possibles
Description
()
Mise entre
parenthses
1 (le
plus
haut)
Expression
FUNCNAME
(liste des
paramtres
rels)
Traitement
de fonction
(appel)
Expression, valeur
littrale, variable,
adresse (tous les
types de donnes)
Ngation
Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT, UDINT ou
REAL
NOT
Complment
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD
**
Elvation de
puissance
Expression, valeur
littrale, variable,
adresse du type de
donnes REAL (base)
et INT, DINT, UINT,
UDINT ou REAL
(exposant)
178
Langage de programmation
Multiplication
Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT, UDINT ou
REAL
Dans le cas de la
multiplication *, la valeur du
premier oprande est
multiplie par la valeur du
deuxime oprande.
Exemple : Dans l'exemple,
OUT est gal 20,0, si IN1
est 5,0 et IN2 4,0.
OUT := IN1 * IN2 ;
Remarque : La fonction
MULTIME de la bibliothque
obsolte est destine aux
multiplications du type de
donnes Time.
Division
Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT, UDINT ou
REAL
MOD
Modulo
Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT ou UDINT
Addition
Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT, UDINT, REAL
ou TIME
<
Comparaison
Expression, valeur
179
Printed Documentation
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, INT, DINT,
UINT, UDINT, REAL,
TIME, WORD,
DWORD, STRING,
DT, DATE ou TOD
"infrieur "
>
Comparaison
"suprieur "
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, INT, DINT,
UINT, UDINT, REAL,
TIME, WORD,
DWORD, STRING,
DT, DATE ou TOD
<=
Comparaison
"infrieur ou
gal "
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, INT, DINT,
UINT, UDINT, REAL,
TIME, WORD,
DWORD,
STRING, DT, DATE
ou TOD
>=
Comparaison
"suprieur ou
gal "
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, INT, DINT,
UINT, UDINT, REAL,
TIME, WORD,
DWORD, STRING,
DT, DATE ou TOD
180
Langage de programmation
Egalit
Expression, valeur
littrale,
variable, adresse du
type
de donnes BOOL,
BYTE,
INT, DINT, UINT,
UDINT,
REAL, TIME, WORD,
DWORD,
STRING, DT, DATE
ou TOD
<>
Ingalit
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, INT, DINT,
UINT, UDINT, REAL,
TIME, WORD,
DWORD, STRING,
DT, DATE ou TOD
= permet de comparer la
valeur du premier oprande
celle du deuxime oprande.
Si le premier oprande est
gal au deuxime oprande,
le rsultat est un 1 boolen. Si
le premier oprande n'est pas
gal au deuxime oprande,
le rsultat est un 0 boolen.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1 est gal
10. Sinon, il est sur 0.
OUT := IN1 = 10 ;
<> permet de comparer la
valeur du premier oprande
celle du deuxime oprande.
Si le premier oprande n'est
pas gal au deuxime
oprande, le rsultat est un 1
boolen. Si le premier
oprande est gal au
deuxime oprande, le
rsultat est un 0 boolen.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1 n'est
pas gal 10. Sinon, il est sur
0.
OUT := IN1 <> 10 ;
&
ET logique
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD
AND
ET logique
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD
181
Printed Documentation
IN3 ;
XOR
OU exclusif
logique
10
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD
OR
OU logique
11 (le
plus
bas)
Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD
Instructions
Voici les diffrents styles d'instructions de base d'un programme ST:
Assignation
Appel de fonction
Appel de bloc fonctionnel
Voici les instructions disponibles pour l'excution conditionnelle d'instructions:
IF / THEN / ELSE (slecteur binaire)
CASE (numration de cas)
Voici les instructions disponibles pour l'excution itrative d'instructions:
WHILE (avec test en entre de boucle)
182
Langage de programmation
Commentaire
Des commentaires peuvent tre entrs n'importe o dans un programme ST. Les commentaires
n'ont pas d'influence sur l'excution du programme. Un commentaire doit commencer par "(*" et se
terminer par "*)". Les commentaires peuvent tre entrs sur plusieurs lignes (un commentaire peut
contenir des sauts de lignes). Les commentaires ne peuvent pas tre imbriqus.
Exemple :
(* Commentaires sont utiles *)
(* Ce commentaire
est long et
ncessite plus
d'une ligne
*)
Langage LD
Langage LD
Description
Le langage Ladder Diagram (ou Schma relais) est une liste de rseaux. Chaque rseau
reprsente un flux de donnes boolen depuis une barre d'alimentation gauche vers une barre
d'alimentation droite. La barre d'alimentation gauche reprsente l'tat TRUE qui initialise le flux
dans le rseau. Chaque symbole insr sur le rseau modifie le flux de donnes et/ou excute une
opration.
Rseaux
Un rseau se compose :
Une tiquette : Chaque rseau qui peut tre une cible de saut dans un autre rseau sera
automatiquement identifi par un repre alphanumrique ou nombre entier dcimal non sign. Par
dfaut, les rseaux seront numrots. Cette numrotation de tous les rseaux sera
automatiquement mise jour toutes les fois qu'un nouveau rseau est insr. La numrotation
simplifie la recherche d'un rseau correspondant au numro de ligne des langages de
programmation textuel.
Un commentaire : Le commentaire de rseau est reprsent comme secteur carr dans le
diagramme Ladder. Pour crire un texte de commentaire, double cliquer sur cette zone. Le
commentaire est toujours plac au-dessous de l'tiquette de rseau. Notez que le premier rseau
contient en plus un commentaire de diagramme Ladder au-dessus de l'tiquette de rseau et du
commentaire de rseau.
Un graphique : Le graphique de rseau se compose des objets graphiques, qui peuvent tre
des symboles ou des connexions graphiques. Les connexions transportent les donnes entre les
symboles graphiques, qui traitent les donnes avec leurs entres et transfrent les donnes
traites leurs sorties. Notez que les connexions peuvent galement se croiser.
Voici les lments composants un graphique de rseau:
Contacts
183
Printed Documentation
Oprations
Fonctions
Blocs fonctionnels
Contacts
Les contacts sont des lments graphiques de base du langage LD. Un contact est associ une
variable boolenne indiqu en dessus du symbole graphique. Un contact modifie l'tat du flux de
donne en fonction de l'tat de la variable associe.
Voici les diffrents types de contacts disponibles:
1.) Normal: la valeur du flux de donne droite est le ET boolen entre le flux gauche et la valeur
de la variable associe.
2.) Invers: la valeur du flux de donne droite est le ET boolen entre le flux gauche et l'inverse
de la valeur de la variable associe.
Deux contacts normaux en srie reprsentent une opration logique AND.
Deux contacts normaux en parallle reprsentent une opration logique OR.
Oprations
Relais de contrle
Les relais de contrle sont des contacts qui sont insrs devant les bobines. Les relais de contrle
peuvent tre utiliss comme points d'arrt dans l'excution manuelle, par exemple. Il peut toujours
y avoir un relais de contrle avant chaque bobine seule.
Insrer -> Relais de contrle: Employez cette commande pour insrer un relais de contrle
additionnel au symbole logique.
Bobines
Les bobinages sont des lments graphiques du langage LD. Un bobinage est associ une
variable boolenne, inscrite en dessus du symbole graphique. Un bobinage reprsente un forage
de la variable associe en fonction du flux de donne en entre.
Voici les diffrents styles de bobinages:
184
Langage de programmation
Description
Un diagramme CFC (Chart Function Block) reprsente un flux de donnes entre des expressions
constantes ou des variables et des oprations reprsentes par des boites rectangulaires. Les
oprations peuvent tre des oprateurs de base du langage, des appels de fonctions ou de blocs
fonctionnels.
185
Printed Documentation
Ordre d'excution
L'arrangement des blocs sur un diagramme est directement li l'ordre d'excution : Les blocs sont
excuts colonne par colonne et de haut en bas dans une colonne. Pour modifier l'ordre
d'excution, rarrangez les blocs comme requis.
186
Langage de programmation
Les blocs composs seront excuts comme un ensemble un moment dans l'ordre d'excution
o le bloc compos est localis. Le contenu des blocs composs sera excut selon les mmes
rgles. Ceci est trs semblable aux sous-programmes dans des langages de programmation
modernes.
Barres d'alimentation
Les barres de marge relient la logique contenue dans le diagramme CFC d'autres parties du
mme diagramme CFC, ou d'autres parties de l'application ou du processus commander.
Pour configurer tout lment de la barre de marge, faire un "clique droit" et choisir "proprits"
partir du menu de contexte :
187
Printed Documentation
Dans le Nom, crivez le nom de l'objet. Ceci devrait tre un nom valide de variable IEC61131-3.
Si vous voulez que l'diteur CFC dclare une variable pour cet objet de barre de marge, choisissez
Variable IEC61131. Autrement, si vous choisissez `connexion CFC', l'objet est employ seulement
virtuellement, et toute les informations est immdiatement propage aux sorties connectes. Ceci
peut tre plus conomique en temps d'excution et de mmoire utilise, mais il empche de faire
de la surveillance en ligne.
Pour les variables IEC61131-3, choisissez la section de dclaration partir de la "bote de
dialogue". Le choix offert ici dpend du type de bloc et du type de barre de marge. Pour certains
genres de variables, vous pouvez choisir une adresse physique ou une valeur initiale.
Pour les connecteurs CFC, vous pouvez choisir le "connecteur de bloc de compos", c.--d. une
connexion de l'intrieur d'un bloc compos vers l'extrieur, de "connecter un connecteur interne"',
c.--d. qu'on relie une entre sur la barre droite de marge une sortie sur la barre gauche de
marge. Le "connecteur interne" et "connecte un connecteur interne" sont semblables, mais le
premier est seulement disponible sur la barre droite de marge (o des connecteurs internes sont
dfinis), tandis que le dernier est disponible seulement sur la barre gauche de marge, o des
connecteurs internes peuvent tre utiliss.
Les variables d'entre du diagramme CFC doivent tre connectes aux entres des botes
fonctions. Le type de chaque variable doit tre cohrent avec le type de l'entre de la bote
correspondante. Une entre pour le diagramme CFC peut tre une expression constante, toute
variable interne, d'entre ou de sortie.
Pour utiliser une valeur constante comme entre d'un bloc, slectionnez l'entre (ou entre de la
barre d'alimentation), cliquez droit dessus avec la souris, slectionnez "proprits" et entrez la
valeur constante dans le champ d'dition "valeur" de la feuille "valeur par dfaut".
188
Langage de programmation
Les variables de sortie du diagramme CFC doivent tre connectes aux sorties des botes
fonctions. Le type de chaque variable doit tre cohrent avec le type de la sortie de la bote
correspondante. Une sortie pour le diagramme CFC peut tre une variable interne ou de sortie, ou
le nom du programme dit (pour les fonctions seulement). Quand le nom de la fonction dite est
utilis comme sortie du diagramme, il reprsente une assignation de la
valeur retourne par la fonction.
Les variables d'entre et de sortie, les entres et les sorties des botes fonctions sont relies par
des arcs de liaison. Des lignes sont utilises pour reprsenter les liaisons entre deux points du
diagramme :
une variable d'entre et une entre de bote.
une sortie d'une bote et une entre d'une autre bote.
une sortie de bote et une variable de sortie.
Boites
Pour ajouter des blocs votre diagramme CFC, utilisez "Insrer Bloc" pour des progiciels ou
des blocs dfinis pour l'utilisateur, "Insrer bloc de texte" pour des blocs des textes, ou
"Insrer bloc de composants" pour les blocs de composants.
Le curseur de la souris change, cliquez sur le diagramme o vous voulez insrer le nouveau bloc.
Pour rarranger des blocs, slectionnez les blocs et faites un "glisser lcher" jusqu' leur nouvel
emplacement.
Lorsque vous ajoutez de nouveaux blocs ou des blocs existants mobiles, l'diteur CFC fera de la
place en dplaant les blocs avoisinants existants comme il se doit.
Pour enlever des blocs de votre diagramme, choisissez-les et appuyez sur DEL.
Connexion
Pour relier deux objets, slectionner en premier l'objet de sortie (sortie d'un bloc, ou d'objet sur la
barre gauche de marge), pour choisir alors l'entre (entre d'un bloc de fonction, ou d'un objet sur
la barre droite de marge), puis appuyer sur "Insertion Connexion".
L'diteur CFC supporte aussi des connexions entre une sortie et des entres multiples. Pour crer
une connexion multiple crer d'abord une connexion entre la sortie dsire et une entre. Ensuite,
marquer la prochaine entre et cliquer dans la sortie. La connexion cre la premire tape et la
189
Printed Documentation
sortie sont maintenant marques. Choisir "Insrer Connexion" pour crer la connexion
multiple entre la sortie et deux entres. Vous pouvez maintenant ajouter plus d'entres de la mme
manire.
Pour enlever une entre d'une connexion multiple, marquer l'entre et appuyer sur la cl effacer.
Seule la connexion entre cette entre et la sortie sera enleve.
Bloc de texte
Utilisez "Insertion Bloc" de texte pour insrer un bloc de textes dans votre diagramme. Un bloc
de textes est seulement pour la documentation et n'ajoute rien au code tant excut.
Bloc compos
2.
3.
190
Langage de programmation
Vous pouvez maintenant remplir bloc compos d'abord par un double-clique et diter comme
n'importe quel autre diagramme de fonction. Ou, ajouter des entres et sorties au bloc compos ,
diter son contenu plus tard en utilisant les entres et sorties dj fournies.
Quand vous manquez d'espace sur un diagramme, ou pensez que la lisibilit serait augmente en
crant des groupes hirarchiques, vous pouvez vous dfaire certains de vos blocs pour les mettre
dans des blocs composs :
1.
2.
3.
4.
Notes:
Actuellement, le processus de retour en groupe de blocs partir d'un bloc compose, n'est pas
support.
Tous les blocs composs ont le tout dernier connecteur qui est plus court
que les autres. C'est toujours le dernier connecteur, un du ct gauche
comme entre, un du ct droit comme sortie.
2.
3.
Bottom-Up:
1.
2.
3.
Cliquez droit sur le connecteur et ouvrez la boite de dialogue 'proprits... ' par
l'intermdiaire du menu contextuel.
4.
191
Printed Documentation
Si vous montez d'un niveau en cliquant le symbole appropri vous voyez qu'un autre connecteur
inutilis plus court a t ajout au bloc compos.
Langage FBD
Langage FBD
Description
Un diagramme FBD (Function Block Diagram) reprsente un flux de donnes entre des
expressions constantes ou des variables et des oprations reprsentes par des boites
rectangulaires. Les oprations peuvent tre des oprateurs de base du langage, des appels de
fonctions ou de blocs fonctionnels.
Rseaux
Vous pouvez structurer un diagramme FBD avec des rseaux. Chaque rseau obtient
automatiquement un n d'identification 4 chiffres. Un clic ou un double-clique dans cette zone
permet de saisir un nom pour rfrencer le rseau.
Lorsqu
un nouveau rseau, ou de passer au suivant ou au prcdent.
192
on utilise le bouton
Langage de programmation
Ordre d'excution
L'arrangement des blocs sur un diagramme est directement li l'ordre d'excution : Les blocs sont
excuts colonne par colonne et de haut en bas dans une colonne. Pour modifier l'ordre
d'excution, rarrangez les blocs comme requis.
193
Printed Documentation
Les blocs composs seront excuts comme un ensemble un moment dans l'ordre d'excution
o le bloc compos est localis. Le contenu des blocs composs sera excut selon les mmes
rgles. Ceci est trs semblable aux sous-programmes dans des langages de programmation
modernes.
Barres d'alimentation
Les barres d'alimentation sur les cts gauche et droit vous permettent de connecter la logique
contenue dans le FBD avec les variables d'entre (gauche) et de sortie (droite). Double-cliquer
dans la barre de marge et saisir le nom de la variable :
Barre d'alimentation gauche :
194
Langage de programmation
Les variables d'entre du diagramme FBD doivent tre connectes aux entres des botes
fonctions. Le type de chaque variable doit tre cohrent avec le type de l'entre de la bote
correspondante. Une entre pour le diagramme FBD peut tre une expression constante, toute
variable interne, d'entre ou de sortie.
Pour utiliser une valeur constante comme entre d'un bloc, slectionnez l'entre (ou entre de la
barre d'alimentation), cliquez droit dessus avec la souris, slectionnez "proprits" et entrez la
valeur constante dans le champ d'dition "valeur" de la feuille "valeur par dfaut".
Les variables de sortie du diagramme FBD doivent tre connectes aux sorties des botes
fonctions. Le type de chaque variable doit tre cohrent avec le type de la sortie de la bote
correspondante. Une sortie pour le diagramme FBD peut tre une variable interne ou de sortie, ou
le nom du programme dit (pour les fonctions seulement). Quand le nom de la fonction dite est
utilis comme sortie du diagramme, il reprsente une assignation de la
valeur retourne par la fonction.
Les variables d'entre et de sortie, les entres et les sorties des botes fonctions sont relies par
des arcs de liaison. Des lignes sont utilises pour reprsenter les liaisons entre deux points du
diagramme :
une variable d'entre et une entre de bote.
une sortie d'une bote et une entre d'une autre bote.
une sortie de bote et une variable de sortie.
Boites
Pour ajouter des blocs votre diagramme FBD, utilisez "Insrer Bloc" pour des progiciels ou
des blocs dfinis pour l'utilisateur, "Insrer bloc de texte" pour des blocs des textes, ou
"Insrer bloc de composants" pour les blocs de composants.
195
Printed Documentation
Le curseur de la souris change, cliquez sur le diagramme o vous voulez insrer le nouveau bloc.
Pour rarranger des blocs, slectionnez les blocs et faites un "glisser lcher" jusqu' leur nouvel
emplacement.
Lorsque vous ajoutez de nouveaux blocs ou des blocs existants mobiles, l'diteur CFC fera de la
place en dplaant les blocs avoisinants existants comme il se doit.
Pour enlever des blocs de votre diagramme, choisissez-les et appuyez sur DEL.
Connexion
Pour relier deux objets, slectionner en premier l'objet de sortie (sortie d'un bloc, ou d'objet sur la
barre gauche de marge), pour choisir alors l'entre (entre d'un bloc de fonction, ou d'un objet sur
la barre droite de marge), puis appuyer sur "Insertion -> Connexion".
L'diteur FBD supporte aussi des connexions entre une sortie et des entres multiples. Pour crer
une connexion multiple crer d'abord une connexion entre la sortie dsire et une entre. Ensuite,
marquer la prochaine entre et cliquer dans la sortie. La connexion cre la premire tape et la
sortie est maintenant marque. Choisir "Insrer Connexion" pour crer la connexion multiple
entre la sortie et deux entres. Vous pouvez maintenant ajouter plus d'entres de la mme
manire.
Pour enlever une entre d'une connexion multiple, marquer l'entre et appuyer sur la touche DEL.
Seule la connexion entre cette entre et la sortie sera enleve.
Bloc de texte
Utilisez Insertion -> Bloc de texte pour insrer un bloc de textes dans votre diagramme. Un bloc
de textes est seulement pour la documentation et n'ajoute rien au code tant excut.
Les tches
Principe des tches
Chaque tche s'excute paralllement aux autres grce un noyau temps rel et un niveau de
priorit.
Une tche contient un ou plusieurs programmes (jusqu' 255 maximum).
Il existe 5 types diffrents de tches :
1. Tche d'initialisation (1re tche s'excuter lors du dmarrage du MPC)
196
Langage de programmation
Tche cyclique :
Elles s'excutent lorsque le squenceur n'excute pas les tches TIMER et vnementielles.
Ce type de tche permet de raliser des tches de fond, gestion de process, communication.
197
Printed Documentation
2. Traitement des diffrents programmes de la tche : les programmes cris par l'utilisateur
sont excuts.
3. Mise jour des sorties : criture des variables de sorties de la tche (ensemble des
variables de sortie dclares dans tous les programmes de la tche) sur les bits
physiques des sorties.
Une variable de sortie dclare dans un programme mais non utilise sera
automatiquement re-force 0 la fin de la tche (risque d'ala sur les sorties
physiques).
La dure de l'excution de la tche n'est pas limite dans le temps.
Tche Timer :
Ce type permet de raliser des tches rptitives intervalle fixe.
La gestion des entres sorties se fait uniquement par image de process.
198
Langage de programmation
199
Printed Documentation
200
Langage de programmation
a pas termine so
201
Printed Documentation
202
Langage de programmation
Exemple : on ne montre que les tches de fond. Dans le mme temps, ces tches sont
interrompues par les tches TIMER, les process internes (motion, communications, etc.).
Le temps allou chaque tche de fond est calcul au moment de l'excution de chaque tche en
supposant que la situation reste identique sur toute la priode de vieillissement.
Le temps allou la tche t correspond PTt / (somme PTx)
Le temps de vieillissement est fixe mais le temps rel de son droulement dpend de la charge
en tche TIMER / vnementielles et interne. Plus cette charge augmente et plus la puissance
disponible pour systme diminue.
Gestion des tches
Chaque tche possde un mode de dmarrage qui a t paramtr lors de sa cration :
Dmarrage automatique : chaque dmarrage du MPC la tche est lance automatiquement aprs
l'initialisation du MPC.
Dmarrage manuel : la tche n'est pas lance automatiquement.
Initialisation : dmarre avant toutes les autres tches (voir tche d'initialisation)
Un projet doit au moins contenir une tche avec dmarrage automatique et/ou une tche
d'initialisation. Il est conseill d'avoir une tche d'initialisation o sera ralise l'initialisation des
priphriques et des variables de l'application et qui dmarrera ensuite les autres tches.
On dispose de 5 instructions pour grer les tches :
RUN
SUSPEND
CONTINUE
HALT
STATUS
203
Printed Documentation
Attention :
Le systme multitche du MPC a t prvu pour grer de nombreuses tches. Cependant, l'arrt et
la suspension des tches influencent le fonctionnement du squenceur et peuvent modifier les
performances du MPC.
Les programmes
Introduction
Pour chaque tche, il est possible d'avoir un ou plusieurs programmes qui s'excutent l'un aprs
l'autre.
Ses programmes doivent tre crit dans un des 6 langages dcrits dans les chapitres suivants et
correspondants la norme IEC 61131-3.
IL : Instruction List
LD : Ladder Diagram
ST : Structured Text
SFC : Sequential Function Chart
FBD : Function Bloc Diagram
CFC : Continius Function Chart
Exemple de cration de programme :
204
Langage de programmation
Les fonctions
Les fonctions
Description
Une fonction calcule un rsultat partir de ses paramtres d'entre.
Contrairement un bloc fonctionnel, une fonction ne dispose pas de donnes prives pour le
stockage d'information.
Une fonction a une sortie et une seule.
Une fonction peut tre :
Exemple ST
Pour appeler une fonction en ST, entrez son nom, suivi de ses paramtres entre parenthses et
spars par des virgules.
La fonction peut tre imbrique dans une expression complexe.
Un paramtre de fonction peut tre un appel une autre fonction.
Voici un exemple d'utilisation des fonctions "ODD" et "SEL" en ST :
(* L'nonc suivant convertit un entier impair en l'entier pair le plus
proche *)
iEvenVal := SEL ( ODD( iValue ), iValue, iValue+1 );
Exemple IL
Pour appeler une fonction en IL, il faut d'abord charger le premier paramtre de la fonction dans le
rsultat courant, puis utiliser le nom de la fonction comme une instruction.
205
Printed Documentation
Les entres suivantes (si la fonction a plus d'une entre, sont les oprandes de l'instruction,
spars par des virgules.
Le rsultat de la fonction est charg dans le rsultat courant.
Voici un exemple d'utilisation de la fonction "OR" en IL:
(* les instructions suivantes excutent un OU logique entre IN1 et IN2 *)
Op1:
LD
IN1
OR
IN2
ST
(* Q = IN1 OR IN2 *)
Description
Un bloc fonctionnel regroupe un algorithme et un jeu de donnes prives.
Il peut avoir des paramtres en entre et en sortie.
Un bloc fonctionnel peut tre :
un bloc utilisateur ou "User Defined Function Block" (UDFB) crit en ST, FBD, LD ou IL
Pour utiliser un bloc fonctionnel, vous devez dclarer une instance du bloc de la mme faon qu'on
dclare une variable.
Chaque instance doit tre identifie par un symbole unique.
Chaque instance de bloc reprsente un jeu de donnes prives et peut tre appele
indpendamment des autres instances.
Un appel une instance de bloc lance l'algorithme du bloc sur les donnes de l'instance, en
utilisant les paramtres passs lors de l'appel.
Exemple ST
Pour appeler un bloc en ST, vous devez spcifier le nom de l'instance, suivi des paramtres d'appel
crits entre parenthses et spars par des virgules.
Pour accder un paramtre de sortie, vous devez spcifier le nom de l'instance suivi par un point
'.' et le nom du paramtre.
Voici un exemple d'utilisation du bloc TON en ST:
(* MyTimer est une instance dclare du bloc TON *)
MyTimer (bTrig, t#2s); (* active le bloc fonctionnel *)
TimerOutput := MyTimer.Q;
ElapsedTime := MyTimer.ET;
Exemple FBD et LD
Pour appeler un bloc fonctionnel en FBD ou LD, il suffit d'insrer le bloc dans le schma et de
connecter des variables ses entres/sorties.
Le nom de l'instance est spcifi en dessus du cadre du bloc.
206
Langage de programmation
Exemple IL
Pour appeler un bloc en IL, utilisez l'instruction CAL, en spcifiant une instance dclare ayant le
type du bloc.
Le nom de l'instance est l'oprande de l'instruction, suivi par les paramtres d'entre entre
parenthses et spars par des virgules.
Les instructions CALC, CALCN ou CALNC reprsentent un appel conditionnel du bloc:
CAL Appelle le bloc
CALC Appelle le bloc si le rsultat courant est TRUE
CALCN Appelle le bloc si le rsultat courant est FALSE
Voici un exemple d'appel du bloc TON en IL:
(* MyTimer est une instance dclare du bloc TON *)
Op1:
Op2:
Op3:
CAL
LD
MyTimer.Q
ST
TimerOutput
LD
MyTimer.ET
ST
ElapsedTimer
LD
bCond
CALC
LD
bCond
CALCN
Les donnes
Introduction
La norme IEC61131-3 exige que tous les objets de donnes soient dclars comme des variables.
Diffrentes sections de dclaration sont disponibles pour dclarer des variables ou instances selon
leur porte :
207
Printed Documentation
Les diffrentes zones de mmoire pour dclarer les variables dans un projet sont :
Global : Cette mmoire contient les variables globales non sauvegardes du projet.
La dclaration de ces variables se fait dans un fichier textuel.
208
Langage de programmation
Bank : Cette mmoire contient les variables sauvegardes, elle est divise en plusieurs blocs de
taille ajustable (4 banques de 64Ko par dfaut), ces variables peuvent aussi tre changs (via
Modbus ou CANopen dans certaines limites).
La dclaration de ces variables se fait partir de l'diteur ci-dessous.
209
Printed Documentation
IEC61131-3 est fourni avec un ensemble de type de donne pr dfini, appel aussi type de
donne lmentaire. Mais, il est aussi possible de dfinir des types de donnes drivs (dclar
par l'utilisateur), des structures, des tableaux et des numrations.
Pour utiliser une variable dans un programme, il faut obligatoirement la dclarer dans la zone
"Dclaration de variable" de la fentre programme en cours. Les dclarations sont crites dans un
format textuel dfini par la norme IEC61131-3.
210
Langage de programmation
Sections de dclaration
Les variables sont dclares dans diffrentes sections de variables, appeles sections de
dclaration. Une section de dclaration commence par un mot-cl et se termine par END_VAR (par
exemple, VAR_GLOBAL... END_VAR).
VAR_INPUT: Si un bloc variable doit seulement tre lu l'intrieur d'un POU, vous devez dclarer
cette variable comme variable d'entre. Cette variable ne pourra tre modifie dans ce POU. Un
variable d'entre peut tre employe pour le transfert de paramtres dans une fonction ou un bloc
de fonction.
VAR_IN_OUT: Une variable d'entre/sortie est accessible sous le mme nom dans un bloc de
fonction. La variable obtient une rfrence (pointeur) la variable transfre et son emplacement
mmoire pendant le transfert des paramtres par l'appel du bloc. Puisqu'une opration d'criture a
un effet direct sur le contenu de la variable In_Out, il n'est pas autoris d'employer un type protg
en criture pour la variable transfre l'inverse des variables d'entres ayant l'attribut
CONSTANT.
VAR_OUTPUT: Les variables de sorties sont dclares dans un bloc de fonction qui les utilise pour
le retour de valeurs. Le POU appelant peut y accder.
VAR_GLOBAL: Une variable doit tre dclare en tant que variable globale dans un 'programme '
POU si cette variable est utilise dans ce POU et dans les blocs de fonctions appels par ce POU.
Cette variable doit tre dclare en tant que variable externe (VAR_EXTERNAL) dans tous les
blocs de fonction qui prvoient de l'utiliser.
VAR_EXTERNAL: Si une variable dclare en globale est utilise l'intrieur d'un bloc de fonction,
cette variable doit tre dclare en tant que variable externe l'intrieur de ce bloc de fonction.
211
Printed Documentation
VAR: Une variable locale est seulement valide l'intrieur du POU dans lequel elle est dclare.
La dclaration des variables locales peut tre complte par les attributs 'RETAIN' ou 'CONSTANT
', ou par une adresse.
TYPE : Le mot-cl 'TYPE ' est utilis pour la dclaration de type de donnes (driv) dfini par
l'utilisateur avec une porte locale dans les 'programmes' types POU et 'bloc de fonction', ou avec
une porte globale dans les dfinitions de type.
Selon le type de POU seul certaines sections de variable peuvent tre employes :
Un POU de type programme peut contenir les types : local, global et externe
Un POU de type bloc fonctionnel peut contenir les types : Entre, Sortie, E/S, local et externe
Un POU de type fonction peut contenir les types : Entre, Sortie et local.
Structure d'une ligne de dclaration
Description
Une ligne de dclaration la forme suivante, o les lments facultatifs sont placs entre
parenthses [ ], et les expressions sont places entre parenthses < > :
<Variable name> : <Type> [:= <Initial value>]; [(* <Comment> *)]
D'abord on donne le nom de la variable, suivi de deux points. Derrire les deux points suit le type.
Si la variable a une valeur d'initialisation, cette valeur sera indique aprs ':='. Une ligne finit
toujours avec un point-virgule (;). La ligne peut tre commente avec les commentaires placs
entre (* et *).
Exemple:
Expvariable1 : BOOL; (* variable de type BOOL *)
Expvariable2 : BOOL := TRUE; (* variable de type BOOL commenant avec la
valeur TRUE *)
Exemples
Variable sans valeur initiale: InterMedSum : INT;
Variable avec valeur initiale: Pieces : INT := 5;
Variable directement reprsente avec un nom et sans valeur initiale: Valve : BOOL;
Exemple de bloc fonctionnel: Counter1 : CTU;
212
Langage de programmation
Entree_MPC_1a8: BYTE;
Entree_MPC_9a16: BYTE;
END_VAR
Note
(1) Les valeurs initiales doivent seulement tre littrales. Il n'est pas possible d'utiliser d'autres
variables pour initialiser des variables pendant la dclaration.
(2) La longueur maximale du nom d'une variable est de 64 caractres.
Attention
Il est interdit de faire de l'adressage direct avec ou sans noms de variables (l'attribut AT est
interdit), l'adressage se fait partir de l'diteur d'E/S.
Types de base
Le logiciel Motion Studio ne met pas en application les types de donnes suivants dfinies par la
norme IEC61131-3:
DATE: 'Jour, Mois, Anne (seulement)'
TIME_OF_DAY: 'Heure du jour (seulement)'
DATE_Inst_AND_TIME: 'Date et heure'
Types redfinis
Description
Les mots clefs TYPE ... END_TYPE permettent de crer un synonyme d'un type de base, d'un type
redfini ou d'un tableau.
213
Printed Documentation
Les types redfinis peuvent tre dclar par SERAD ou par vous-mme.
Aprs dfinition, ils peuvent tre utiliss comme des types de base dans les zones de dclaration
de variable des diteurs de programme.
Exemple
Dans l'exemple suivant, un nouveau type redfini est dclar pour reprsenter la valeur de
'pression'.
Dclaration du type:
TYPE Pressure: INT;
tTable: Array [1..10] Of INT; END_TYPE
Dclaration de la variable:
VAR PreValvePressure: Pressure;
Table: tTable; END_VAR
Utilisation de la variable de type redfini en ST:
PreValvePressure:= 0;
Table[1]:= 15;
Dclaration de tableau
Description
Les tableaux contiennent des lments multiples d'un mme type. Le mot-clef ARRAY est employ
pour dfinir un tableau. Chaque lment d'un tableau peut tre une variable de type de base,
redfini ou structure.
Exemple
Dclaration de variable de type tableau :
VAR (* Dclaration d'un tableau de cinq entiers initialis *)
Arr1: ARRAY [1..5] OF INT := [1,2,3,4,5];
(* Dclaration d'un tableau deux dimensions de 25 lments de type
structure tStuct *)
Arr2: ARRAY [1..5,10..14] of tStruct;
(* Dclaration d'un tableau deux dimensions de 4 lments de type
tPressure *):
Arr3: ARRAY [0..3] Of tPressure;
END_VAR
Utilisation de la variable de type tableau en ST:
Arr1[2]:= 2728;
Arr2[2,11].Param1:= 12.3;
Arr3[3]:= 12;
Attention
Motion Studio utilise des nombres entiers 16bits pour les index de tableau donc les tableaux ne
doivent pas tre dpasser 65536 lments.
Dclaration de structure
214
Langage de programmation
Description
Une structure contient des lments multiples du mme ou de diffrents types de donnes,
lmentaires. Le mot-cl STRUCT est employ pour dfinir une structure. Les diffrents lments
d'une structure s'appellent les membres de cette structure, et sont accds en saisissant le nom de
la structure, suivie d'un point et du nom du membre.
Exemple
Dclaration de la structure:
TYPE RobotArm: STRUCT Angle_1: REAL;
Angle_2: REAL;
Grip: BOOL;
Length: INT;
END_STRUCT;
END_TYPE
Dclaration de la variable:
VAR Robot1: RobotArm;
Robot2: RobotArm;
END_VAR
Utilisation de la variable en ST:
Robot1.Grip:= TRUE;
Dclaration de type numr
Description
Une variable de type numration de donnes peut prendre n'importe quel valeur d'une liste fixe.
La liste de valeurs lgales est numre dans la dclaration du type numration de donnes,
spare par des virgules. Une valeur initiale peut tre indique aprs la fermeture ')'; si la valeur
initiale n'est pas indique, la premire valeur sera la valeur par dfaut.
Exemple
Le type de donnes de TrafficLight peut tre 'red', 'yellow' ou
dfaut.
215
Printed Documentation
tBcleMode
Description
Ce type est une numration des diffrents modes d'utilisation des variateurs:
tEdgeType
Description
Ce type est une numration des diffrents types de front :
tFilterMaster
Description
Ce type est une numration des diffrents filtres applicable lors de mouvement synchronis
filter_none
filter_std
filter_advanced
filter_advanced2
filter_interpol
filter_interpol2
tModeInitVal
Description
Ce type est une numration des diffrents paramtres de transistion lors du passage d'un mode
un autre :
Inital_Zero
Initial_real
Initial_theoric
Initial_v alue
216
Langage de programmation
tMoveDirection
Description
Ce type est une numration des sens d'un axe:
tSrcPos
Description
Ce type est une numration des diffrentes sources de position disponible pour un axe :
interpolation
Cambox
tSegmentDef
Dclaration
TYPE tSegmentDef :
STRUCT
Count :
UInt;
Active :
Array [0..31] Of
OutputNum :
Array [0..31] Of
BeginPosition : Array [0..31] Of
EndPosition :
Array [0..31] Of
Direction :
Array [0..31] Of
EventIn :
Array [0..31] Of
Bool;
UInt;
Real;
Real;
tMoveDirection;
UInt;
217
Printed Documentation
EventInParam :
EventOut :
EventOutParam :
Mode :
Duration :
END_STRUCT;
END_TYPE
Array
Array
Array
Array
Array
[0..31]
[0..31]
[0..31]
[0..31]
[0..31]
Of
Of
Of
Of
Of
UDInt;
UInt;
UDInt;
tSegmentMode;
Udint;
Description
Ce type de structure permet de dclarer les segments de boites cames
<Count> nombre de segments
<Active> TRUE si le segment est actif sinon FALSE
<OutputNum> numro de la sortie correspondante (0 31) de dfinie dans une structure
de type tOutputDef
Si plusieurs segments sont sur la mme sortie (d'une mme boite), un OU logique est
effectu entre les segments.
<BeginPosition> position de dbut du segment
<EndPosition> position de fin du segment
Pour un axe modulo, si <BeginPostion> est infrieur <EndPosition> alors le segment
correspondra au segment de <BeginPosition> <EndPosition> sinon au segment de
<EndPosition> <BeginPosition> en passant par 0.
Pour un axe non modulo, si <BeginPostion> est suprieur <EndPosition> alors le
segment ne sera jamais actif.
<Direction> direction du mouvement (indiffrente, positive ou ngative)
Indiffrente : ne tient pas compte de la direction du mouvement
Positive : le segment ne sera activ que si l'on y entre en sens STTI+
Ngative : le segment ne sera activ que si l'on y entre en sens STTIDans le cas d'une direction positive ou ngative, le sens est test lors de l'ENTREE dans le
segment (instant o l'on passe de "hors segment" "dans segment").
Dure : sort une pulse gale <Duration> lorsque l'on franchit la borne de dbut.
Hystrsis est ignore, CompensationOn et Direction sont utiliss. Cette pulse est
monostable NON redclenchable (une fois la pulse arme, tout passage sur la borne est
ignor tant que la dure ne soit pas coule). L'activation ou dsactivation d'un segment
ou d'une sortie de la boite came, recharge automatiquement la dure de la pulse
<Duration>
<Duration> dure en s (utilis seulement en mode dure)
tOutputDef
Dclaration
TYPE tOutputDef:
STRUCT
Count :
218
UINT;
Langage de programmation
Active :
Target :
OutBit :
InBit :
Hysteresis :
CompensationOn :
CompensationOff :
Timeout :
Array
Array
Array
Array
Array
Array
Array
Array
[0..31]
[0..31]
[0..31]
[0..31]
[0..31]
[0..31]
[0..31]
[0..31]
Of
Of
Of
Of
Of
Of
Of
Of
BOOL;
tOutTarget;
tIOBitOut;
tIOBitIn;
REAL;
DINT; (*compensation en s*)
DINT; (*compensation en s*)
UDINT; (*timeout en s*)
Description
Ce type de structure permet de dclarer les sorties de boites cames
<Count> numro de sortie
<Active> TRUE si le segment est sinon FALSE
<Target> type de destination de la sortie de la bote cames
<OutBit> nom de la sortie physique du MPC, d'un IMD ou d'un module d'I/O CANopen
<InBit> nom de l'entre interne du MPC
<CompensationOn> dure en s compenser l'activation de la sortie.
<CompensationOff> dure en s compenser la dsactivation de la sortie
Le systme anticipe/retarde l'activation en fonction de la vitesse en cours.
o Valeur positive : retarde l'activation
o Valeur ngative : anticipe l'activation
<Hysteresis> hystrsis pour viter les changements d'tat rapides sur la sortie, lorsque
l'on est proche d'une position de changement d'tat.
<Timeout>timeout en s sur tat actif de la sortie
0 : aucun timeout sur la sortie.
Si la sortie reste active pendant la dure du timeout elle est remise 0 tant que tous les
segments activant cette sortie ne soient pas termins.
tSegmentMode
Description
Ce type est une numration utilis pour le choix du mode d'activation dans la dclaration des
segments de boites cames :
tOutTarget
Description
Ce type est une numration utilis pour le choix de la cible dans la dclaration des sorties de
boites cames :
Came
tCamTable
219
Printed Documentation
Dclaration
TYPE tCamTable :
STRUCT
Nb :UDINT;
X :
<dX>: la tangente X
<dY>: la tangente Y
Capture
tCapType
Description
Ce type est une numration des diffrents types de capture :
tCapImdIo
Description
Ce type est une numration de diffrentes entres rapides du variateur IMD et IMDL:
Communications
tHandle
Description
Ce type permet d'associer un numro (UDINT) un port de communication physique.
Entres / Sorties
220
Langage de programmation
tIObitIn
Description
Ce type est une numration de tous les entres de type BIT du projet, il est mis jour
automatiquement par le Motion Studio et correspond la liste des entres du type BIT prsents
dans l'diteur d'E/S de l'onglet Automate :
tIObitOut
Description
Ce type est une numration de tous les sorties de type BIT du projet, il est mis jour
automatiquement par le Motion Studio et correspond la liste des sorties du type BIT prsents
dans l'diteur d'E/S de l'onglet Automate :
221
Printed Documentation
tIObyteIn
Description
Ce type est une numration de tous les entres de type BYTE du projet, il est mis jour
automatiquement par le Motion Studio et correspond la liste des entres du type BYTE prsents
dans l'diteur d'E/S de l'onglet Automate :
tIObyteOut
222
Langage de programmation
Description
Ce type est une numration de tous les sorties de type BYTE du projet, il est mis jour
automatiquement par le Motion Studio et correspond la liste des sorties du type BYTE prsents
dans l'diteur d'E/S de l'onglet Automate :
tIOwordIn
Description
Ce type est une numration de tous les entres de type WORD du projet, il est mis jour
automatiquement par le Motion Studio et correspond la liste des entres du type WORD prsents
dans l'diteur d'E/S de l'onglet Automate :
223
Printed Documentation
tIOwordOut
Description
Ce type est une numration de tous les sorties de type WORD du projet, il est mis jour
automatiquement par le Motion Studio et correspond la liste des sorties du type WORD prsents
dans l'diteur d'E/S de l'onglet Automate :
Fichier de CAM
224
Langage de programmation
tCam
Description
Ce type est contient toutes les cames du projet, il est mis jour automatiquement par le Motion
Studio et correspond la liste des cames prsentes dans l'onglet Motion :
Interpolation
tGeoEntry
Dclaration
TYPE tGeoEntry :
STRUCT
Input : Array [1..3] of USINT;
Output : Array [1..3] of USINT;
Param : Array [1..3] of REAL;
GeoType : tGeoType;
END_STRUCT;
END_TYPE
Description
Ce type de structure permet dcrire les transformations gomtriques de l'interpolation :
<Input> : entres de la transformation
<Output> : sorties de la transformation
Les entres et sorties de la transformation peuvent prendre les valeurs suivantes :
1:X
2:Y
3:Z
11
20
100...255 => Entre "de calcul" permettant de relier une entre une sortie.
225
Printed Documentation
tGeoType
Description
Ce type est une numration des diffrents types de transformation gomtrique pour
l'interpolation:
tInterpolateParam
Dclaration
TYPE tInterpolateParam :
STRUCT
Axes_Count :USINT;
Axes : Array [1..10] of tPeripheral;
Acc_Limit : Array [1..10] of BOOL;
Acc_Limit_Value : Array [1..10] of REAL;
Vel_Limit : Array [1..10] of BOOL;
Vel_Limit_Value
Limit_Type : tInterpoLimitType;
Geo_Count :USINT;
Geo_ReverseCount :USINT;
Geo : Array [1..10] of tGeoEntry;
Geo_Reverse : Array [1..10] of tGeoEntry;
END_STRUCT;
END_TYPE
Description
Ce type de structure permet configurer tout les paramtres une interpolation :
<Axes_Count> : nombre d'axe du modle
<Axes> : tableau des noms d'axe du modle
<Acc_Limit> : tableau d'activation des limites d'acclration des diffrents axes
<Acc_Limit_Value> : tableau des valeurs de limite d'acclration des diffrents axes
<Vel_Limit> : tableau d'activation des limites de vitesse des diffrents axes
<Vel_Limit_Value> : tableau des valeurs de limite de vitesse des diffrents axes
<Limit_Type> : TADAPTSPEED pour que l'interpolation suive le plus prcisment possible le profil
de vitesse ou TADAPTTRAJ pour privilgi la trajectoire
<Geo_Count> : nombre de transformation
<Geo_ReverseCount> : nombre de transformation inverse
226
Langage de programmation
tInterpoLimitType
Description
Ce type est une numration des diffrents modes de suivi de l'interpolation :
Paramtres
tIntParam
Description
Ce type est une numration de tous les paramtres accessible dans configuration et de type
entier.
La liste de ces paramtres est consultable partir des fentres suivantes :
Aide \ Table CANopen class par Index/Sub
Aide \ Table CANopen class par Groupe
Aide \ Table modbus class par Index/Sub
Aide \ Table modbus class par Groupe
Les paramtres ne contenant pas Real dans la colonne Prec sont du type rel
tRealParam
Description
Ce type est une numration de tous les paramtres accessible dans configuration et de type rel.
La liste de ces paramtres est consultable partir des fentres suivantes :
Aide \ Table CANopen class par Index/Sub
Aide \ Table CANopen class par Groupe
Aide \ Table modbus class par Index/Sub
Aide \ Table modbus class par Groupe
Les paramtres contenant Real dans la colonne Prec sont du type rel
Priphrique
tPeripheral
Description
Ce type est une numration de tous les priphriques du projet, il est mis jour automatiquement
par le Motion Studio et correspond la liste des priphriques prsents dans l'onglet
Configuration :
227
Printed Documentation
Squenceur
tGroup
Description
Ce type est une numration de toutes les tches du projet, il est mis jour automatiquement par
le Motion Studio et correspond la liste des tches prsentes dans l'onglet Programmation :
tTaskStatus
Description
Ce type est une numration des diffrents tats que peuvent avoir une tche :
<TSTOP> : la tche est arrte
<TSUSPEND> : la tche est suspendue
<TRUN> : la tche est en cours d'excution
228
Botes contacts
Synchronisation de mouvements
Axes virtuels
Buffer de mouvements
Le processeur du MPC qui excute les tches, change priodiquement des informations de
mouvements avec les variateurs.
Les informations de mouvement (MOVA, STTA, MOVS, GEARBOX, STOP ...) sont transmises du
MPC vers chaque axe via un buffer logiciel.
Le buffer de mouvement contient 10000 tronons (dcomposition la plus simple d'un mouvement)
dont 100 rservs aux arrts d'urgence.
Un mouvement peut prendre plusieurs tronons dans le buffer de mouvement selon son type et ses
paramtres.
Lorsqu'une tche rencontre une fonction de mouvement, elle l'envoie dans le buffer :
Tout mouvement doit passer par le buffer pour tre excut.
Si le buffer est dj plein, la tche est bloque jusqu' ce qu'une place soit disponible (ce mode
de fonctionnement dgrade les performances de toutes les tches et bloque l'inclusion de tous
mouvements).
229
Printed Documentation
La place dans le buffer est libre lorsque le mouvement a t compltement excut.
Tous les mouvements sont composs de tronons :
STTA : <= 3 tronons
MOVS : <= 3 tronons
STTI : <= 2 tronons
STOP : 1 tronon
MOVS est compos de 1 3 tronons selon les valeurs de Distance esclave, Distance
acclration, Distance dclration.
MOVS (Y, X, SRC_AXE, Dmaitre, 100.0, 0.0, 0.0); (* 1 tronon *)
MOVS (Y, X, SRC_AXE, Dmaitre, 100.0, 100.0, 0.0); (* 1 tronon *)
MOVS (Y, X, SRC_AXE, Dmaitre, 100.0, 0.0, 100.0); (* 1 tronon *)
MOVS (Y, X, SRC_AXE, Dmaitre, 100.0, 20.0, 0.0); (* 2 tronons *)
MOVS (Y, X, SRC_AXE, Dmaitre, 100.0, 0.0, 20.0); (* 2 tronons *)
MOVS (Y, X, SRC_AXE, Dmaitre, 100.0, 20.0, 20.0); (* 3 tronons *)
Attention:
Les fonctions STOP, SSTOP et STOPS arrtent le mouvement en cours d'excution et retirent
tous les tronons concernant l'axe dans le buffer.
Si l'axe est en boucle ouverte (AXIS (Axe, OFF)), toute fonction de mouvement rencontre dans
une tche passe par le buffer et est directement consomme par l'axe sans excution du
mouvement.
Mode de fonctionnement
Mode de fonctionnement
Il existe 3 modes de fonctionnement pour un axe :
Mode couple
L'axe fonctionne par l'envoi d'une consigne de couple.
Mode vitesse
L'axe fonctionne par l'envoi d'une consigne de vitesse.
Mode Position
Un gnrateur de mouvement effectue des dplacements sur l'axe.
230
CURRENT_S
GETMODE
SETMODE
POS
POS_S
POS_T
POSAUX_S
POSERROR_S
SPEED
SPEED_S
TORQUE
TORQUE_S
231
Printed Documentation
... (* axe => tous les axes passent en mode non asservi *)
MOVA (Axe_X, 1000.0); (* le mouvement est consomm par le variateur *)
... (* mais non effectu *)
OUTP (S1, 1) ; (* sortie S1=1 *)
MOVA (Axe_X, 2000.0); (* le mouvement est consomm par le variateur *)
... (* mais non effectu *)
OUTP (S1, 0); (* sortie S1=0 *)
... (* la sortie S1 est passe fugitivement 1 car *)
... (* la fontion MOVA (Axe_X, 2000.0) a pris peu de temps au systme *)
Passage en mode asservi
Pour que le MPC puisse piloter et contrler les mouvements d'un axe, il est ncessaire de le passer
en mode asservi.
Un axe passe en mode asservi (boucle ferme) :
A chaque excution de la fonction AXIS (Axe, 1) partir d'une tche.
Sur un forage partir des menus de debug (bouton asservi ).
La fonction AXIS_S (Axe) permet de lire l'tat dans lequel se trouve le variateur.
La lecture de AXIS_S doit se faire uniquement quand AXISREQUEST_S est gale 0.
Pour des raisons de scurit, il est ncessaire d'affecter une sortie logique du MPC la gestion de
la fonction Enable / Disable des variateurs relis au MPC.
Cette sortie devra tre relie sur l'entre Enable du variateur. La gestion de la sortie sera insre
dans une tche de surveillance non bloquante.
Par exemple :
Tche Defauts
...
OUTP (EnableDrive,AXIS_S(Axe_X)) ; (* si axe en mode asservi *)
...
Attention
Si l'on souhaite vrifier qu'un axe a fini un mouvement partir d'un programme du MPC, il faut
tester MOVE_S; AXISREQUEST_S et AXIS_S.
Pour s'assurer que l'asservissement est effectif, crire :
(* TEST COMPLET *)
AXIS (Axe_X, 1) ;
(* Demande d'asservissement *)
(* Test de l'asservissement *)
Rgulation
Le diagramme ci-dessous reprsente, de faon simplifie les trois boucles de rgulations dans le
systme. Les boucles de couple et vitesse sont excut par l'IMD, le MPC quand lui se charge de
la boucle de position.
L'asservissement d'un axe est rglable partir de ses paramtres. Il peut tre programm en mode
vitesse ou en mode couple et position ; par dfaut, en mode position.
Il est conseill d'utiliser la bibliothque de paramtres moteur afin de calibrer les boucles de
rgulation ncessaire au bon fonctionnement du moteur, pour plus d'information voir le chapitre
Paramtrage d'un axe et les crans de rglages de l'IMD.
Paramtrage d'un axe
Un axe doit tre paramtr avant de pouvoir l'utiliser.
Le paramtrage d'un axe consiste rgler les boucles, d'une part et ensuite a intgrer la
cinmatique de la machine.
L'accs aux paramtres des boucles se fait partir des l'onglets Configuration du navigateur de
projet
Plusieurs solutions existes pour paramtrer les boucles :
Raliser un auto-tuning moteur vide. Les rglages de base sont trouvs par cette
mthode, un rajustement et un optimisation sur machine est ncessaire.
Utiliser les caractristiques du moteur, saisir les paramtres et rgler les boucles
manuellement. C'est la mthode la plus longue. Elle ne doit tre utilise qu'en dernier
recours.
Pour ajuster les rglages ainsi obtenus, on peut agir sur les paramtres suivants :
Boucle de courant :
Augmenter le gain Ki amliore le suivi mais peut, par excs, dgrader la stabilit de
la boucle
Boucle de vitesse :
233
Printed Documentation
Augmenter le gain Ki amliore le suivi mais peut, par excs, dgrader la stabilit de
la boucle
Boucle de position :
234
Profil de vitesse
Une trajectoire en positionnement intgre les phases d'acclration, de vitesse plateau, de
dclration.
Les champs contenus dans la configuration du profil de l'axe dans l'onglet Motion permettent de
donner des valeurs par dfaut ces diffrentes phases.
Les valeurs sont prises en compte chaque dmarrage du MPC, elles sont galement utilises par
l'outil Motion et par les fonctions ACC%, DEC%, VEL%.
Rentrez dans le champ Vitesse (paramtre associ _IMD_PROFILE_VELOCITY), la vitesse par
dfaut en unit/s.
235
Printed Documentation
Remarque
La dclration urgente (paramtre associ _IMD_PROFILE_DECELERATION_URG) est utilise
pour arrter le mouvement lorsqu'on utilise les entres de Fin de course ou en cas d'erreur
entranant un stop urgent.
Prise d'origine
Description :
La Prise d'origine permet au systme de dterminer l'origine de l'axe, celle-ci tant perdue
chaque coupure d'alimentation.
La prise d'origine machine (P.O.M) permet de rfrencer la position moteur par rapport une
position de la mcanique.
Diffrents types de POM sont disponibles : immdiat, sur capteur, avec dgagement.
Un cycle de POM force le compteur de position moteur une valeur de rfrence.
Un home prend en compte :
236
Le zro programme :
Lorsque l'axe a rencontr sa position d'origine, il remet son compteur 0 et s'arrte en se
repositionnant sur 0. Cette position correspond au zro machine. Si l'on souhaite travailler dans un
autre repre partir du programme, il suffit de rentrez une valeur dans le champ Zro
programme. Par exemple :
237
Printed Documentation
HOME_S(Axe)
Indique l'tat de la prise d'origine
HOMECANCEL(Axe)
Arrte un home sur un Axe.
CLEAR(Axe)
Met la position d'un axe la valeur - zro programme
HOMEAUX(Axe,type)
Lance un home sur une position auxiliaire.
HOMEAUXREQUEST(Axe)
Indique l'tat de la demande de prise d'origine sur l'auxiliaire
HOMEAUX_S(Axe)
Indique l'tat de la prise d'origine sur l'auxiliaire
HOMEAUXCANCEL(Axe)
Arrte un home sur une position auxiliaire.
CLEARAUX(Axe)
Met la position auxiliaire la valeur - zro programme
axe:
Type 0 : immdiate :
Le compteur de position est forc la valeur de rfrence de faon immdiate.
Exemple : Rfrence = 100 dans la fentre de saisie
HOME (0) position moteur = 100
238
239
Printed Documentation
240
241
Printed Documentation
Type 1 : Sur Top Z (la fonction attend le top Z sur l'entre auxiliaire)
Type 2 : Sur capteur (la fonction attend un front montant sur le capteur HOME)
Type 3 : Sur capteur et Top Z (la fonction attend un niveau haut sur le capteur
HOME et un top Z sur le codeur auxiliaire)
Remarque
Le paramtre de position de prise d'origine (_IMD_HOME_ZEROP) est pris en compte en
permanence.
Le paramtre de position de prise d'origine sur l'auxiliaire (_IMD_AUX_ZEROP) est pris en
compte en permanence.
Un AXIS OFF arrte une prise d'origine
La fonction HOME ne modifient pas la vitesse courante de l'axe, ex :
242
Fentre de position
Lorsque l'on envoie un axe une position, la MPC considre que le mouvement est termin quand
le profil thorique de la trajectoire est excut et que la position relle est comprise entre +/- la
fentre de position. Par exemple, sur une machine de perage o l'on recherche une prcision de
+/- 0.1mm, on rglera la fentre cette valeur.
Rentrez dans le champ Fentre de position du Motion Studio la valeur de prcision recherche.
Butes
Sur un axe course limit, il est possible de dclarer des fins de course mini et maxi. Si le systme
dtecte qu'une entre de fin de course est active alors il arrte et interdit tout mouvement dans le
sens du fin de course.
Le dgagement de l'axe se fait dans le sens inverse
Il est possible d'utiliser les entres du MPC ou les entres fin de course du variateur pour raliser
cette fonction.
E/S de scurits
La fonction "E1 : Entre autorisation" permet de verrouiller la fonction AXIS (Axe, 1).
Si l'entre autorisation passe 0 alors l'axe est dsasservi et tout demande
d'asservissement est refuse (AXIS_S reste 0).
Si l'entre autorisation est 1 les demandes d'asservissement sont autoriss.
Lors d'un asservissement, le processus de validation suit les tapes suivante et s'arrte ds
la prsence d'une Annulation ou d'une Erreur :
243
Printed Documentation
Etap
e
Condition
Lentre E1 est
0
Dfaut paramtre
dans le variateur
(E09)
3
4
E1 :
aucune
E1 :
Autorisatio
n
E1 :
Autorisatio
n sans
erreur
Annulation
(*)
Annulation
(*)
Annulatio
n (*)
Annulation
(*)
Annulation
(*)
Annulatio
n (*)
Dfaut modle de
variateur (E10)
Annulatio
n (*)
Annulation
(*)
Annulation
(*)
Annulatio
n (*)
Le paramtre
"Utiliser la
dclration
urgente" est actif
Annulatio
n (*)
Annulation
(*)
Annulation
(*)
Annulatio
n (*)
E1 :
Mode
MCS
et une
dclration est
en cours
5
Puissance non
prsente ou
depuis mois de
100 ms
Erreur
E02
Erreur E02
Erreur E02
Erreur
E02
Le variateur
excute une
fonction spciale
telle que : Autotuning ou recalage de
l'excitation
rsolveur aprs
une rupture de
liaison.
Annulatio
n (*)
Annulation
(*)
Annulation
(*)
Annulatio
n (*)
Le SinCos est
utilis mais
aucune
information
absolue n'as t
reue.
Erreur
E08
Erreur E08
Erreur E08
Erreur
E08
Un dfaut est
encore prsent
sur le variateur
Erreur
Exx
Erreur Exx
Erreur Exx
Erreur
Exx
Le dfaut E21
(entre validation
non active) est
prsente.
Erreur
E21
Erreur E21
Erreur E21
Erreur
E21
Ok
Ok
Ok
Ok
11
244
Le frein moteur
est en cours de
dcollage (TOn)
Evnement
E1 :
aucune
Lentre E1 est 0
E1 :
Autorisation
E1 :
Autorisation
sans erreur
E1 : Mode
MCS
Erreur E21
AXIS OFF
Puissance
coupe
Lentre E1 est 1
Puissance
rtablie
Lors d'un ds-asservissement, suite une erreur ou un AXIS OFF, le processus de dvalidation suit les tapes suivante :
Etape
Condition
AXISREQUEST_S(<Axe>)=1
et AXIS_S(<Axe>)=0
AXISREQUEST_S(<Axe>)=0
et AXIS_S(<Axe>)=0
La fonction "Sortie tat variateur" permet d'avoir une sortie image de l'tat du variateur,
c'est dire qu'en cas de dfaut du variateur, la sortie passe 0.Le dfaut E21 "entre
validation non active" n'a pas d'influence sur cette sortie.
245
Printed Documentation
Un AXIS OFF est pris en compte et ds-asservit laxe (abrge Ton, recolle
le frein et excute TOff)
Pendant TOff :
Pendant TOff :
Un front montant sur E1 est pris en compte (abrge TOff, dcolle le frein et
excute Ton)
246
Un AXIS OFF est pris en compte et ds-asservit laxe (abrge Ton, recolle
le frein et excute TOff)
Un tat bas sur E1 ds-asservit laxe (abrge Ton, recolle le frein et excute
TOff)
Pendant TOff :
Les erreurs suivantes dsactivent immdiatement le variateur SANS passer par la gestion
du frein (la puissance est coupe immdiatement).
E03 : It
E05 : Court-circuit
Les autre erreurs entranent un AXIS OFF passant par la phase de ds-activation du frein.
247
Printed Documentation
248
Auxiliaire
En fonction de l'application, de la mcanique (axe linaire, rotatif), il est d'intressant de pouvoir
affecter l'auxiliaire de chaque axe une unit utilisateur reprsentative : mm, point (point codeur *
4), degrs, radian, pouce, tour, unit quelconque...
249
Printed Documentation
En fait, l'unit est utilise uniquement sur les crans du Motion Studio afin d'y apporter un confort
d'utilisation et de comprhension.
250
Positionnement
Mouvements absolues
Dpart de mouvement : STTA
Pour lancer un mouvement vers une position absolue et ne pas attendre sa fin pour poursuivre
l'excution de la tche, on doit utiliser STTA.
Cette fonction est trs utile si la vitesse ou la position atteindre doit changer en cours de
mouvement.
Avec cette fonction, l'erreur absolue est minimale.
Cette fonction est non bloquante pour la tche (except si le buffer de mouvements est plein).
Elle utilise les valeurs courantes d'acclration, de dclration et de vitesse.
La syntaxe est :
STTA (<Axe>, <Position>)
Par exemple :
VELP (X, 100.0); (* Vitesse normale *)
251
Printed Documentation
Mouvement : MOVA
La fonction MOVA envoie un axe une position absolue. Elle utilise les valeurs courantes
d'acclration, de dclration et de vitesse. La syntaxe est :
MOVA (<Axe>, <Position>)
Cette fonction envoie <Axe> la position absolue dont la valeur est <Position>. Le programme
attend la fin du mouvement avant de continuer. L'erreur de positionnement absolue est minimale.
Par exemple :
MOVA(X, 100.0);
Percage (Diametre);
MOVA(X, 0.0);
La fonction MOVA est bloquante pour la tche tant que le mouvement n'est pas termin (condition
MOVE_S (Axe)=0.0).
MOVA(X, 100.0);
;est quivalent :
STTA (X, 100.0);
WAIT (NOT MOVE_S(X));
Pour obtenir une prcision relative accrue on peut demander un mouvement absolu utilisant la
position courante :
MOVA(X, POS_S(X) +100.0); (* Dplacement relatif avec prcision relative
*)
252
Si l'axe est modulo, le mouvement sera effectu dans le sens positif si la valeur demande est
positive, sens ngatif dans le sens contraire. Par exemple :
Axe modulo 360
Axe en position initiale 90
MOVA(X, -10.0); (* dplacement dans le sens - d'une distance de 80 *)
MOVA(X, 350.0); (* dplacement dans le sens+ d'une distance de 340 *)
MOVA(X, 20.0); (* dplacement dans le sens+ d'une distance de 30 *)
Trajectoire : TRAJA
La fonction Trajectoire est conue pour simplifier la dfinition de mouvements complexes.
Pour faire un mouvement une vitesse spcifique, une acclration ou une dclration donne,
ces paramtres doivent tre prciss avant de lancer le mouvement.
Syntaxe de la fonction TRAJA :
TRAJA (<Axe>, <Positon>, <Vitesse>, <Acclration>, <Dclration>)
Par exemple :
TRAJA(X, 500.0, 1000.0, 100.0, 100.0) ;
Cet exemple est quivalent :
VEL(X, 1000.0);
ACC(X, 100.0);
DEC(X, 100.0);
STTA(X, 500.0);
La fonction TRAJA n'est pas bloquante pour la tche tant que tous les mouvements ne sont pas
termins.
Si la fonction MERGE est active et que l'on charge plusieurs TRAJ pour un axe, les mouvements
seront excuts les uns aprs les autres sans passer par une vitesse nulle.
Par exemple :
MERGE(X, 1);
TRAJA(X, 500.0, 1000.0, 100.0, 100.0);
TRAJA(X, 1000.0, 200.0, 100.0, 100.0); (* passage en petite vitesse la
position 500 *)
Mouvements relatifs
Dpart de mouvement : STTR
Pour lancer un mouvement vers une position relative et ne pas attendre sa fin pour poursuivre
l'excution de la tche, on doit utiliser STTR. Cette fonction est trs utile si la vitesse ou la position
atteindre doit changer en cours de mouvement. Avec cette fonction, l'erreur absolue est minimale.
Cette fonction est non bloquante pour la tche (except si le buffer de mouvements est plein).
Elle utilise les valeurs courantes d'acclration, de dclration et de vitesse. La syntaxe est :
STTR (<Axe>, <Distance>)
Par exemple :
VELP(X, 100.0); (* Vitesse rapide *)
253
Printed Documentation
Position:=POS_S(X);
STTR(X, 2000.0); (* Start relatif en position 2000 *)
WAIT ((POS_S(X)-Position) >100.0); (* Attente position +100 *)
VELP(X, 10.0); (* Vitesse lente *)
WAIT (NOT (MOVE_S(X))); (* Attente fin de mouvement *)
Dans cet exemple, pendant un mouvement, la vitesse peut tre modifie car l'excution du
programme n'est pas arrte.
Si la fonction MERGE est active et que l'on charge plusieurs STTR pour un axe, les mouvements
seront excuts les uns aprs les autres sans passer par une vitesse nulle.
Mouvement : MOVR
La fonction MOVR envoie un axe une position relative. Elle utilise les valeurs courantes
d'acclration, de dclration et de vitesse. La syntaxe est :
MOVR (<Axe>, <Distance>)
Cette fonction envoie <Axe> une valeur relative <Distance>. Le programme attend la fin du
mouvement avant de continuer. L'erreur de positionnement absolue est minimale.
Par exemple :
FOR I :=1 To 10 DO
MOVR(X, 100.0);
Percage (Diametre);
END_FOR;
La fonction MOVR est bloquante pour la tche tant que le mouvement n'est pas termin (condition
MOVE_S (Axe)=0).
MOVR(X, 100.0);
; est quivalent
STTR (X, 100.0);
WAIT (NOT (MOVE_S(X)));
Trajectoire : TRAJR
La fonction Trajectoire est conue pour simplifier la dfinition de mouvements complexes.
Pour faire un mouvement une vitesse spcifique, une acclration ou une dclration donne,
ces paramtres doivent tre prciss avant de lancer le mouvement.
Syntaxe de la fonction TRAJR :
TRAJR (<Axe>, <Positon>, <Vitesse>, <Acclration>, <Dclration>)
Par exemple :
TRAJR(X, 500.0, 1000.0, 100.0, 100.0) ;
Cet exemple est quivalent :
VEL(X, 1000.0);
ACC(X, 100.0);
DEC(X, 100.0);
254
STTR(X, 500.0);
La fonction TRAJR n'est pas bloquante pour la tche tant que tous les mouvements ne sont pas
termins.
Si la fonction MERGE est active et que l'on charge plusieurs TRAJ pour un axe, les mouvements
seront excuts les uns aprs les autres sans passer par une vitesse nulle.
Par exemple :
MERGE(X, 1);
TRAJR(X, 500.0, 1000.0, 100.0, 100.0);
TRAJR(X, 1000.0, 200.0, 100.0, 100.0); (* passage en petite vitesse la
position 1500 *)
Mouvements infinis
Mouvement : STTIP
Pour lancer un mouvement continu positif, il faut utiliser la fonction STTIP. L'axe concern se
dplace sa vitesse courante.
Cette fonction est non bloquante pour la tche (except si le buffer de mouvements est plein).
La fonction STOP ou SSTOP est ncessaire pour arrter un mouvement continu.
Syntaxe :
STTIP (<Axe>)
Exemple :
WAIT (INP (BoutonPlus) =1) ;
STTIP(X);
WAIT (INP (BoutonPlus) =0);
STOP(X);
Mouvement : STTIM
Pour lancer un mouvement continu ngatif, il faut utiliser la fonction STTIM. L'axe concern se
dplace sa vitesse courante.
Cette fonction est non bloquante pour la tche (except si le buffer de mouvements est plein).
La fonction STOP ou SSTOP est ncessaire pour arrter un mouvement continu.
Syntaxe :
STTIM (<Axe>)
Exemple :
WAIT (INP (BoutonMoins) =1) ;
STTIM(X);
WAIT (INP (BoutonMoins) =0);
STOP(X);
Trajectoire : TRAJIP
La fonction Trajectoire est conue pour simplifier la dfinition de mouvements complexes.
Pour faire un mouvement infini positif une vitesse spcifique et avec une acclration donne,
ces paramtres doivent tre prciss avant de lancer le mouvement.
255
Printed Documentation
Trajectoire : TRAJIM
La fonction Trajectoire est conue pour simplifier la dfinition de mouvements complexes.
Pour faire un mouvement infini ngatif une vitesse spcifique et avec une acclration donne,
ces paramtres doivent tre prciss avant de lancer le mouvement.
Syntaxe de la fonction TRAJIM :
TRAJIM (<Axe>, <Vitesse>, <Acclration>)
Par exemple :
TRAJIM(X, 1000.0, 100.0);
Cet exemple est quivalent :
VEL(X, 1000.0);
ACC(X, 100.0);
STTIM(X);
La fonction TRAJIM n'est pas bloquante pour la tche tant que tous les mouvements ne sont pas
termins.
Si la fonction MERGE est active et que l'on charge plusieurs TRAJ pour un axe, les mouvements
seront excuts les uns aprs les autres sans passer par une vitesse nulle.
Par exemple :
MERGE(X, 1);
TRAJR(X, 500.0, 1000.0, 100.0, 100.0);
TRAJIM(X, 200.0, 100.0); (* passage en petite vitesse la position 500
*)
Arrt d'un mouvement
256
Pour arrter un mouvement, il faut utiliser les fonctions STOP ou SSTOP. Elles arrtent l'axe
spcifi via leur dclration programme et elles vident le buffer de mouvement de tous les
mouvements de l'axe.
La fonction STOP est bloquante pour la tche tant que le mouvement n'est pas termin (condition
MOVE_S(Axe)=0 ) alors que SSTOP n'est pas bloquante.
Syntaxe :
STOP (<Axe>)
Exemple : dplacement jusqu' un capteur.
STTIP(X);
WAIT (INP (Capteur)=1);
STOP(X);
La fonction AXIS (Axe)=0 arrte aussi le mouvement mais sans aucun contrle car
l'asservissement est inhib.
Mouvements dclenchs
Mouvements dclenchs
Introduction
Les fonctions TRIGGER permettent de lancer un mouvement sur un vnement :
Une position du matre
Un changement d'tat d'une entre
Un changement d'tat d'une entre dans une fentre de position
Description
La fonction TRIGGER peut tre associe 3 types de mouvements et pour chaque groupe, on peut
avoir 1 trigger de mouvement en attente :
Groupe 1: MOVA, MOVR, STTA, STTR, STTIM, STTIP, TRAJA, TRAJR, TRAJIM,
TRAJIP, MOVS, GEARBOX, STARTCAM
Un trigger sur une fonction du Groupe 1 est pris en compte lorsque le mouvement prcdent est
termin :
257
Printed Documentation
Groupe 3: ICORRECTION
Un trigger sur une fonction du Groupe 3 est pris en compte ds qu'elle est charg (cas particulier
du ICORRECTION, en ralit ds que le ICORRECTION prcdent est termin, mais il n'y a jamais
de ICORRECTION en attente)
TRIGGERI
TRIGGERF
TRIGGERAXISSET
TRIGGERAXIS_S
Exemple
(* Dplacement de l'axe X sur front montant de l'entre 4 du MPC lorsque l'axe Y est entre 10 et 20
*)
TRIGGERF (Mpc_4, 1, Axe_Y, SRC_AXE, 10.0, 20.0, 1);
MOVR (Axe_X, 100.0);
...
(* Dplacement de l'axe X sur front montant de l'entre 4 du MPC *)
TRIGGERI (Mpc_4, 1);
MOVR (Axe_X, 100.0);
...
(* Dplacement de l'axe X partir de la position Y= 10 en sens positif *)
258
Synchronisation
Arbre lectrique
Introduction
Les fonctions GEARBOX permettent de raliser un arbre lectrique entre un axe matre et un axe
esclave.
GEARBOX2
GEARBOXRATIO
GEARBOXRATIO_S
Exemple
(* Maitre : 360 par tour, modulo de 360 *)
(* Esclave : 25.4 mm/tour *)
(* Un ratio de 25.4 (num)/360 (den) correspond : 1 tour esclave pour un tour matre *)
GEARBOX (Axe_X, Axe_Y, SRC_AXE, 25.4, 360.0, 1, 0.0) ;
...
If GEARBOXRATIO_S(Axe_X)=1 Then
(* il faut 2 tour sur le matre pour 1 tour sur l'esclave *)
GEARBOXRATIO (Axe_X, 25.4, 720.0, 0.0);
End_If;
...
Mouvements synchroniss
Formules gnrales
259
Printed Documentation
STOPS
STOPS_S
Applications
La fonction MOVS accepte les combinaisons de paramtres suivantes :
Phase de changement de vitesse
Phase de changement de vitesse + Phase plateau
Phase plateau
Phase plateau + Phase d'arrt
Phase d'arrt
Phase de changement de vitesse + Phase plateau + Phase d'arrt
260
Phase plateau
261
Printed Documentation
Phase d'arrt
La phase d'arrt 7 est dcrite directement :
MOVS (dM7, dE7, 0, dM7)
Le rapport de vitesse avant cette phase tait 2*dE7/dM7
262
dE1=1/2*dM1*dE2/dM2
dE3=1/2*dM3*dE2/dM2
dE=dE1+dE2+dE3=1/2*(dM1+dM3)*dE2/dM
2
dM=dM1+dM2+dM3
Exemple
...
(* DOUBLE COUPE *)
MOVS (Axe_X, Axe_Y, SRC_AXE, DistMaitre, DistEsclave, DistMaitre, 0.0);
(* Phase d'acclration *)
MOVS (Axe_X, Axe_Y, SRC_AXE, CoteMaxSynchro, CoteMaxSynchro, 0.0, 0.0);
(* Phase plateau *)
MOVS (Axe_X, Axe_Y, SRC_AXE, DistMaitre, DistEsclave, 0.0, DistMaitre);
(* Phase de dclration *)
MOVS (Axe_X, Axe_Y, SRC_AXE, LongueurPiece, 0.0, 0.0, 0.0); (* Phase
d'arrt de l'esclave *)
MOVS (Axe_X, Axe_Y, SRC_AXE, DistMaitre, DistEsclave, DistMaitre, 0.0);
(* Phase d'acclration *)
MOVS (Axe_X, Axe_Y, SRC_AXE, CoteMaxSynchro, CoteMaxSynchro, 0.0, 0.0);
(* Phase plateau *)
MOVS (Axe_X, Axe_Y, SRC_AXE, DistMaitre, DistEsclave, 0.0, DistMaitre);
(* Phase de dclration *)
263
Printed Documentation
Dfinition de la came
La fonction came permet de raliser un profil de came sur un axe esclave li un axe matre. Ce
profil est dfini par un tableau de points
Chaque point est reprsent par une position de l'axe matre et une position de l'axe esclave.
La MPC excutera entre deux points conscutifs une trajectoire calcule partir d'un polynme du
3me degr.
Les valeurs donnes aux positions de l'axe matre l'intrieur de la table doivent tre des valeurs
croissantes.
La forme de la came dpend du mode de chaque point :
Ligne : trace une ligne droite qui relie le point actuel au point suivant (il y a discontinuit de la
vitesse au point actuel puis la vitesse reste constante jusqu
au point suiva
nt).
Auto : calcule automatique avec un polynme en x3 utilisant le point avant, actuel et les deux
suivants.
Manuel : trace une courbe avec un tangente au point actuel de pente tangente matre / tangente
esclave.
Matre
Esclave
10
20
30
30
35
40
30
50
15
264
Esclave
20
30
30
35
40
30
50
15
Esclave
20
35
30
37
40
60
50
65
60
60
70
45
Came infinie
265
Printed Documentation
Attention :
Si l'axe matre ou l'axe esclave est un axe infini, il doit tre dclar en axe modulo
partir de l'onglet Motion.
Si la came est infinie et absolue, elle doit tre dclar sur l'intgralit du modulo du
matre.
Editeur graphique
Voir "Editeur de came" dans le chapitre Logiciel Motion Studio
266
READCAM
WRITECAM
REAL
REAL
Le choix du mode de trajectoire pour chaque point dpend des valeurs des
diffrents membres de la structure tCameTable :
Si X (Position matre) <> dX (Tangente matre) alors on a une trajectoire de type
Manuel
Si X (Position matre) = dX (Tangente matre) et dY (Tangente esclave) <> 0
alors on a une trajectoire de type ligne.
Si X (Position matre) = dX (Tangente matre) et dY (Tangente esclave) = 0 alors
on a une trajectoire de type Auto.
LOADCAMI
Direction
Indif.
Embrayage
Fin de came
(si monocoup=1)
Dbrayage
(si monocoup=1)
Une fois le
dernier point
de la came
atteint.
Si l'on
revient au
dbut, la
came est
267
Printed Documentation
d'un STTIP.
Si le matre va dans le sens
d'un STTIM sur son axe,
l'esclave va dans le sens
d'un STTIM.
0
rversible.
(rembraye
en sens
inverse)
Une fois le
dernier point
de la came
atteint.
Si l'on
revient au
dbut,
dsembraye
puis
rembraye
Une fois le
dernier point
de la came
atteint.
Si l'on
revient au
dbut,
dsembraye
puis
rembraye
Indif.
Aucun
(ncessite un
arrt
manuel :
STOP /
BREAKCAM)
Si l'on sort
d'un ct ou
l'autre de la
came
Une fois le
dernier point
de la came
atteint.
Si l'on
ressort au
dbut de
came
Une fois le
premier point
de la came
atteint.
Si l'on
ressort la
fin de la
came
268
269
Printed Documentation
(* Lancement de la came *)
STARTCAM (1);
...
WAIT (INP (InfoStop)); (* Attente demande d'arrt *)
ENDCAM (Esclave); (* Demande d'arrt en fin du profil courant
*)
...
Etat de la came
Trois fonctions permettent de connatre l'tat courant d'une came :
CAM_S
CAMNUM_S
CAMSEG_S
270
BREAKCAM
BREAKCAM_POS
Remarque :
Le retour d'une came vers une came boucle transforme cette dernire en came
mono-coup.
LOADCAMPOINT
Dphasage dynamique
Ces dphasages sont effectues indpendamment des mouvements du maitre et
de l'esclave, leur application dpend du temps et de l'acclration donne, ou est
immdiate.
Dcalage du matre :
Le dcalage du matre a pour effet de dphaser le cycle du matre par rapport
celui de l'esclave. Dans le cas d'une came absolue reboucle il est ncessaire de
prendre en compte ce dcalage pour positionner l'esclave par rapport au matre (la
271
Printed Documentation
MASTEROFFSET_S
ICORRECTIONA
Dcalage de l'esclave
Le dcalage de l'esclave a pour effet de dcaler les positions de l'esclave mais
conserve la phase avec le cycle du matre. Il est ncessaire dans tous les cas de
prendre en compte ce dcalage pour positionner l'esclave par rapport au matre(la
fonction CAMREADPOINT prend en compte ce dcalage). Le dcalage de
l'esclave peut se faire progressivement par l'application d'un paramtre
d'acclration. Le dcalage est appliqu directement si l'axe n'est pas embray, ou
le mouvement en cours n'est pas un mouvement synchronis.
SLAVEOFFSET
SLAVEOFFSET_S
ICORRECTIONA
272
ICORRECTION_S
Exemple
...
MOVS (Axe_X, Axe_Y, SRC_AXE, 100.0, 50.0, 0.0, 0.0);
MOVS (Axe_X, Axe_Y, SRC_AXE, 200.0, 250.0, 0.0, 0.0);
MOVS (Axe_X, Axe_Y, SRC_AXE, 60.0, 60.0, 0.0, 0.0);
(* Recalage automatique, pas de risque de perte de point suite des rapports non finis *)
ICORRECTIONA (Axe_X, Axe_Y, SRC_AXE, 360.0, 360.0);
...
Fonction de superposition de mouvements
Introduction
La fonction ADDMOV permet de superposer sur un axe esclave ses propres mouvements avec
ceux effectu par un axe matre. La liaison entre les deux axes doit tre de type arbre lectrique
(GEARBOX), synchronisation (MOVS) ou came (CAM) ou positionnement (MOVA, MOVR, SSTA,
STTR, STTIP, STTIM).
ADDSTOP
Exemple
HOME (Axe_Y, 0);
273
Printed Documentation
SSTOP
STOPS
STOPS_S
indique si STOPS a pu s
excuter correct
Exemple
GEARBOX (Esclave, Maitre, SRC_AXE, 25.4, 360.0, 1, 0.0); (* activation du
lien matre / esclave *)
STTIP (Maitre); (* dpart du matre => l'esclave suit *)
...
STOP (Maitre); (* arrt du matre => l'esclave s'arrte *)
...
STOP (Esclave); (* arrt de la liaison matre / esclave *)
Interpolation
Interpolation 2D et 3D
Interpolation linaire
Introduction
Les fonctions STTL2D et TRAJL2D permettent d'effectuer des interpolations linaires sur deux
axes et
les fonctions STTL3D et TRAJL3D permettent d'effectuer des interpolations linaires sur trois axes.
274
Liste de fonctions
INTERPOLATE2D
STTL2D
TRAJL2D
INTERPOLATED3D
STTL3D
TRAJL3D
Exemple
Axe_Interpo est un axe virtuel dclar dans le projet
Axe_X et Axe_Y sont des axes dclars dans le projet
(* Dclaration de mon interpolation Axe_Interpo selon les axes Axe_X et Axe_Y *)
INTERPOLATE2D (Axe_Interpo, Axe_X, Axe_Y);
(* Ralisation d'un rectangle
STTL2D(Interpo_2D, 100, 0.0, 1);
STTL2D(Interpo_2D, 100, 10.0, 1);
STTL2D(Interpo_2D, 0.0, 10.0, 1);
STTL2D(Interpo_2D, 0.0, 0.0, 1);
Interpolation circulaire
Introduction
Les fonctions STTL2D et TRAJL2D permettent d'effectuer des interpolations circulaires sur deux
axes et
Les fonctions STTC2D et TRAJC2D permettent d'effectuer des interpolations circulaires sur trois
axes.
Liste de fonctions
INTERPOLATE2D
STTC2D
TRAJC2D
INTERPOLATE3D
STTC3D
TRAJC3D
Exemple
Axe_Interpo est un axe virtuel dclar dans le projet
Axe_X et Axe_Y sont des axes dclars dans le projet
275
Printed Documentation
Interpolation hlicodale
Introduction
Les fonctions STTH3D et TRAJH3D permettent d'effectuer des interpolations hlicodales.
Liste de fonctions
INTERPOLATE3D
STTH3D
TRAJH3D
Exemple
Axe_Interpo est un axe virtuel dclar dans le projet
Axe_X, Axe_Y et Axe_Z sont des axes dclars dans le projet
(* Dclaration de mon interpolation Axe_Interpo selon les axes Axe_X et Axe_Y *)
INTERPOLATE3D (Axe_Interpo, Axe_X, Axe_Y, Axe_Z);
(* Ralisation d'un mouvement hlicodale *)
STTH3D(Interpo_3D, Xcentre, Ycentre, ZPas, Angle, Sens, Abs) ;
276
Si l'on souhaite faire une pause sur une trajectoire il faut mettre 0 la vitesse rsultante. Par
exemple :
VEL (Axe_Interpo, 300.0) ; (* Vitesse interpole *)
ACC (Axe_Interpo, 2000.0) ; (* Acclration interpole *)
DEC (Axe_Interpo, 2000.0) ;
INTERPOLATE2D(Axe_Interpo, X, Y) ;
MERGE (Axe_Interpo, 1) ; (* Mouvements enchans *)
STTL2D (Axe_Interpo, 0.0, 2.0, 0) ; (* Dplacement interpol en 0,20*)
STTL2D (Axe_Interpo, 10.0, -10.0, 0) ; (* Dplacement en 10,-10 - Gravure du M*)
...
IF (FlagStop=1) Then
FlagStop:=0 ;
VEL (Axe_Interpo, 0.0) ; (* Vitesse interpole *)
END_IF;
IF (FlagStart=1) Then
FlagStart:=0 ;
VEL (Axe_Interpo, 300.0) ; (* Vitesse interpole *)
END_IF;
277
Printed Documentation
...
Exemples d'interpolation 2D
Dpose de colle
Programme :
Axe_Interpo est un axe virtuel dclar dans le projet
X et Y sont des axes dclars dans le projet
MarcheDepose:=1000;
VEL (X, 1000.0) ; (* Vitesse en mode positionnement *)
VEL (Y, 1000.0) ;
ACC (X, 1500.0) ; (* Acclration et dclration *)
ACC (Y, 1500.0) ;
DEC (X, 1500.0) ; (* en mode positionnement *)
DEC (Y, 1500.0) ;
AXIS (X, 1) ;
AXIS (Y, 1) ;
VEL (Axe_Interpo, 1000.0) ; (* Vitesse interpole *)
ACC (Axe_Interpo, 1500.0) ; (* Acclration interpole *)
DEC (Axe_Interpo, 1500.0) ;
INTERPOLATE2D(Axe_Interpo, X, Y);
MERGE (Axe_Interpo, 1) ; (* Mouvements enchans *)
STTA (X, 20.0) ; (* Dplacement de positionnement au 1er point *)
STTA (Y, 10.0) ;
WAIT ((MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ;
OUTP (Depose, 1) ; (* Activation *)
DELAY (MarcheDepose) ; (* Tempo *)
STTL2D (Axe_Interpo, 110.0, 0.0, 0) ; (* Dplacement interpol en 130,10
*)
278
Gravure ou dcoupe
Programme :
VEL
VEL
ACC
ACC
DEC
DEC
(X,
(Y,
(X,
(Y,
(X,
(Y,
1000.0)
1000.0)
1500.0)
1500.0)
1500.0)
1500.0)
279
Printed Documentation
AXIS (X, 1) ;
AXIS (Y, 1) ;
VEL (Axe_Interpo, 300.0) ; (* Vitesse interpole *)
ACC (Axe_Interpo, 2000.0) ; (* Acclration interpole *)
DEC (Axe_Interpo, 2000.0) ;
INTERPOLATE2D(Axe_Interpo, X, Y) ;
MERGE (Axe_Interpo, 0) ; (* Mouvements non enchans *)
STTA (X, 0.0) ; (* Dplacement de positionnement au 1er point *)
STTA (Y, 10.0) ;
WAIT ((MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ;
OUTP (Graveuse, 1) ; (* Activation *)
DELAY (MarcheGraveuse) ; (* Tempo *)
STTL2D (Axe_Interpo, 0.0, 2.0, 0) ; (* Dplacement interpol en 0,20*)
STTL2D (Axe_Interpo, 10.0, -10.0, 0) ; (* Dplacement en 10,-10 - Gravure
du M*)
STTL2D (Axe_Interpo, 10.0, 10.0, 0) ; (* Dplacement interpol en 20,20
*)
STTL2D (Axe_Interpo, 0.0, -20.0, 0) ; (* Dplacement interpol en 20,0 *)
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ; (* Attente de la fin des
dplacements *)
OUTP (Graveuse, 0) ; (* Dsactivation *)
DELAY (ArretGraveuse) ; (* Tempo *)
STTA (X, 40.0) ; (* Dplacement en 35,0 *)
STTA (Y, 0.0) ;
WAIT ((MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ;
OUTP (Graveuse, 1) ; (* Activation *)
DELAY (MarcheGraveuse) ; (* Tempo *)
STTL2D (Axe_Interpo, 5.0, 0.0, 0) ; (* Dplacement interpol en 35,0 *)
STTC2D (Axe_Interpo, 20.0, 0.0, 10.0, 0.0, 1, 0) ; (* Dplacement en
35,20 - Gravure du C *)
STTL2D (Axe_Interpo, 5.0, 0.0, 0) ; (* Dplacement interpol en 40,0 *)
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ; (* Attente de la fin des
dplacements *)
OUTP (Graveuse, 0) ; (* Dsactivation *)
DELAY (ArretGraveuse) ; (* Tempo *)
STTA (X, 60.0) ; (* Dplacement en 60,20 *)
STTA (Y, 20.0) ;
WAIT ((MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ;
OUTP (Graveuse, 1) ; (* Activation *)
DELAY (MarcheGraveuse) ; (* Tempo *)
STTL2D (Axe_Interpo, -10.0, 0.0, 0) ; (* Dplacement interpol en 50,20
*)
STTC2D (Axe_Interpo, 0.0, -10.0, 0.0, -5.0, 0, 0) ; (* Dplacement en
50,10 *)
STTL2D (Axe_Interpo, 10.0, 0.0, 0) ; (* Dplacement interpol en 60,10 Gravure du S *)
STTC2D (Axe_Interpo, 0.0, -10.0, 0.0, -5.0, 1, 0) ; (* Dplacement en
60,0 *)
STTL2D (Axe_Interpo, -10.0, 0.0, 0) ; (* Dplacement interpol en 50,0 *)
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ; (* Attente de la fin des
dplacements *)
OUTP (Graveuse, 0) ; (* Dsactivation *)
DELAY (ArretGraveuse) ; (* Tempo *)
STTA (X, 0.0) ; (* Retour origine *)
STTA (Y, 0.0) ;
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ;
280
Interpolation tendue
Dclaration d'un axe d'interpolation
Principe :
1. Pour raliser une interpolation, il faut dclarer un axe virtuel dans l'onglet Motion
2. A partir des tches, on dfinit le modle gomtrique et la liste des axes esclaves
Rgle de l'interpolation :
1. Les axes esclaves doivent tre asservis.
2. La gestion de la dsactivation des axes lorsqu'un axe d'une interpolation passe en erreur
est laiss au SECURITY(x,x).
3. Tout autre mouvement dclench sur les axes esclaves, lors d'un mouvement
d'interpolation, est strictement interdit.
4. Les fonctions de contrle de mouvement des axes virtuels sont utilisables avec l'axe
d'interpolation
5. Pendant un mouvement d'interpolation, une modification de numrateur, dnominateur ou
distance sur un axe esclave n'est pas prise en compte.
6. Le MOVE_S des axes esclaves est 1 tant que le mouvement d'interpolation n'est pas
termin.
Dfinition du modle gomtrique
L'instruction INTERPOLATE permet de dfinir un modle gomtrique et de dfinir l'ensemble des
paramtres ncessaires l'interpolation.
Le modle gomtrique est pris en compte l'instant du dmarrage d'un mouvement.
Les paramtres ncessaires l'interpolation sont contenus dans une structure du type
tInterpolateParam :
1. Axes_Count: nombre d'axe du modle
2. Axes[] : tableau des noms d'axe du modle
3. Acc_Limit[] : tableau d'activation des limites d'acclration des diffrents axes
4. Acc_Limit_Value[] : tableau des valeurs de limite d'acclration des diffrents axes
281
Printed Documentation
1:X
2:Y
3:Z
11
20
100...255 => Entre "de calcul" permettant de relier une entre une sortie.
Type de transformation:
TROTATESERIAL:
Cette transformation effectue 3 rotations successives du repre
angle (degrs) Param[0] selon Z,
puis angle (degrs) Param[1] selon X,
puis angle (degrs) Param[2] selon Z,
282
TROTATEPARALLEL :
Cette transformation effectue 3 rotations du repre par rapport un repre fixe
Angle (degrs) Param[0] selon X
Angle (degrs) Param[1] selon Y
Angle (degrs) Param[2] selon Z
283
Printed Documentation
TTRANSLATE :
Cette transformation effectue une translation du repre
de +Param[0] en X
de +Param[1] en Y
de +Param[2] en Z
TSCALE :
Cette transformation effectue une mise l
de *Param[0] en X
de *Param[1] en Y
de *Param[2] en Z
chelle/dilatation/inversion du rep
TTANGENTIAL :
Cette transformation retourne l
-0.5 et 0.5 tour esclave, effectue les raccords automatiques entre mouvement et tient compte du
multi tour.
Input [0] : X
Input [1] : Y
P1 : Axe X
P2 : Axe Y
Z : Axe Z
284
orientation de la
285
Printed Documentation
286
Programme :
Axe_Interpo est un axe virtuel dclar dans le projet
X et Y sont des axes dclars dans le projet
OutilTAN est l'axe contrlant l'orientation de l'outil de dcoupe
VAR
InterpoParam:tInterpolateParam;
MarcheDepose:UDINT;
ArretDepose:UDINT;
END_VAR
;
InterpoParam.axes_count:=3; (* Dclaration des axes *)
InterpoParam.axes[1]:=X;
InterpoParam.axes[2]:=Y;
InterpoParam.axes[3]:=OutilTAN;
;
InterpoParam.geo_count:=2; (* Dclaration du modle gomtrique direct *)
InterpoParam.geo[1].Input[1]:=1; (* Axe X *)
InterpoParam.geo[1].Input[2]:=2; (* Axe Y *)
InterpoParam.geo[1].Input[3]:=0; (* aucun *)
InterpoParam.geo[1].Output[1]:=11;
InterpoParam.geo[1].Output[2]:=12;
InterpoParam.geo[1].Output[3]:=0;
287
Printed Documentation
InterpoParam.geo[1].Param[1]:=0.0;
InterpoParam.geo[1].Param[2]:=0.0;
InterpoParam.geo[1].GeoType:=TTRANSLATE;
InterpoParam.geo[2].Input[1]:=1; (* Axe X *)
InterpoParam.geo[2].Input[2]:=2; (* Axe Y *)
InterpoParam.geo[2].Input[3]:=0; (* aucun *)
InterpoParam.geo[2].Output[1]:=13;
InterpoParam.geo[2].Output[2]:=0;
InterpoParam.geo[2].Output[3]:=0;
InterpoParam.geo[2].GeoType:=TTANGENTIAL;
;
InterpoParam.geo_reversecount:=2; (* Dclaration du modle gomtrique
inverse *)
InterpoParam.geo_reverse[1].Input[1]:=11;
InterpoParam.geo_reverse[1].Input[2]:=12;
InterpoParam.geo_reverse[1].Input[3]:=0;
InterpoParam.geo_reverse[1].Output[1]:=1;
InterpoParam.geo_reverse[1].Output[2]:=2;
InterpoParam.geo_reverse[1].Output[3]:=0;
InterpoParam.geo_reverse[1].Param[1]:=0.0;
InterpoParam.geo_reverse[1].Param[2]:=0.0;
InterpoParam.geo_reverse[1].GeoType:=TTRANSLATE;
InterpoParam.geo_reverse[2].Input[1]:=13;
InterpoParam.geo_reverse[2].Input[2]:=0;
InterpoParam.geo_reverse[2].Input[3]:=0;
InterpoParam.geo_reverse[2].Output[1]:=13;
InterpoParam.geo_reverse[2].Output[2]:=0;
InterpoParam.geo_reverse[2].Output[3]:=0;
InterpoParam.geo_reverse[2].GeoType:=TTANGENTIAL;
;
VEL (X, 1000.0) ; (* Vitesse en mode positionnement *)
VEL (Y, 1000.0) ;
ACC (X, 1500.0) ; (* Acclration et dclration *)
ACC (Y, 1500.0) ;
DEC (X, 1500.0) ; (* en mode positionnement *)
DEC (Y, 1500.0) ;
AXIS (X, 1) ;
AXIS (Y, 1) ;
AXIS (OutilTan, 1) ;
VEL (Axe_Interpo, 1000.0) ; (* Vitesse interpole *)
ACC (Axe_Interpo, 150000.0) ; (* Acclration interpole *)
DEC (Axe_Interpo, 150000.0) ;
INTERPOLATE(Axe_Interpo, InterpoParam);
MERGE (Axe_Interpo, 1) ; (*Mouvements enchans *)
;
STTA (X, 20.0) ; (* Dplacement de positionnement au 1er point *)
288
Capture
Capture
Introduction
Une capture permet d'enregistrer la position courante d'un axe sur certaine condition.
Il existe 128 registres de capture disposition. (De 0 127)
Au dmarrage des tches, tous les registres sont r-initialiss 0 et toutes les captures en cours
sont annules (redmarrage du squenceur)
CAPTURECANCEL
CAPTUREIMD
289
Printed Documentation
CAPTUREEVENT
DISABLERECALE
Dsactivation du recalage
ENABLERECALE
REG_S
Etat de la capture
REGPOS_S
Position capture
Exemple
(* Capture position relle du moteur sur front montant de l'entre 4 du MPC lorsque l'axe est entre
10 et 20. *)
CAPTURE (1, Axe_X, SRC_AXE, Mpc_4, 1, W_NONE , 10.0, 20.0) ;
WAIT (REG_S(1) = 1) ; (* Attente d'une capture *)
Position:= REGPOS_S(1) ; (* Position = valeur de la position lors de la capture *)
Attention
Le nombre de captures simultanes dpend des ressources internes.
290
Programmation de l'automate
En langage ST
Entres/Sorties logiques
Lecture des entres
La fonction INP est utilise pour lire 1 entre, INPB un bloc de 8 entres et INPW un bloc de 16
entres.
Ecriture des sorties
La fonction OUTP est utilise pour crire 1 sortie, OUTB un bloc de 8 sorties et OUTW un bloc de
16 sorties.
Lecture des sorties
La fonction OUTP_S est utilise pour lire 1 sortie, OUTB_S un bloc de 8 sorties et OUTW_S un
bloc de 16 sorties.
Attente d'un tat
Il est possible d'attendre un changement d'tat sur une entre grce l'instruction WAIT.
Test d'un tat
Il est possible de tester l
291
Printed Documentation
Temporisations
Attente passive
La fonction DELAY est utilise pour tablir une attente passive.
Avec cette fonction, le programme attend la dure indique.
Attente active
Les instructions LOADTIMER et TIMER permettent d'tablir des attentes actives.
LOADTIMER permet de charger la temporisation.
TIMER indique que la temporisation est coule.
TIMEL et TIMEH donnent le nombre de ms coules depuis la mise sous tension du MPC
Ces instructions utilisent un timer interne du type entier long qui reprsente le millime de secondes
coules depuis la dernire mise sous tension.
Ce timer peut donc tre utilise comme base de temps.
Evnements
Evnements
Dans un systme multitche, les mcanismes d'vnements sont utiles pour la communication
entre tches. La gestion d'vnements peut aussi fournir des fonctions de contrle de process.
Plusieurs programmes peuvent attendre ou envoyer le mme vnement.
Le Motion Studio offre deux types de tches vnementielles pour raliser ces mcanismes :
292
Programmation de l'automate
Si la tche d'erreur systme ne dpile pas (via GETSYSTEMEVENT()) les erreurs systme, soit
elle a un WD et il se dclenche, sinon la tche est prte en permanence (et il n'y a plus qu'elle qui
s'excute si elle est la plus prioritaire)
Si cette tche a un Watchdog et qu'elle le dpasse, quelle que soit la configuration du Watchdog,
cela entrane une erreur LZS qui arrte toutes les tches
Si la tche d'erreur ne traite pas les erreurs assez vite, le buffer se remplit ce qui entrane une
erreur interne
S'il n y a pas de tche d'vnement systme les vnements systmes sont ignors.
List des vnements systmes :
1 : Watchdog des tches (l'action du chien de garde doit tre paramtr en Evnement
systme)
2 : Ethercat (perte de communication ou pas de communication ou erreur d'initialisation
Ethercat lors d'un RESTART(1))
3 : Erreur LZS
4 : Erreur Read/Write : en cas d'erreur sur un READ/WRITE/PARAM/REAL
5 : Erreur Init Task error : erreur lors de l'excution de la tche d'initialisation
6 : Erreur NodeGuarding slave : erreur dclenche par le Node Guarding esclave/serveur
local (le MPC n'a pas reu de paquet NodeGuarding d'un matre distant avant le timeout)
7 : Erreur CAN Hard
8 : Erreur NodeGuarding master : erreur dclenche par le Node Guarding d'un noeud
distant (un noeud distant n'a pas rpondu la requte NodeGuarding du MPC)
Liste des fonctions pour grer les tches vnementielles systmes
GETLASTSYSEVENT
GETSYSTEMEVENT
Mode standard
Cette tche possde un N d'vnement, arbitraire, donn par l'utilisateur. Par dfaut, elle n'a pas
de liste d'vnements. Dans ce mode elle est mise prte tre excute (dclenche) chaque
fois qu'un vnement (avec son N) se produit. Si un vnement se produit alors que la tche
s'excute, il est perdu. Dans ce mode, aucun acquittement n'est ncessaire.
293
Printed Documentation
Il est possible de rajouter une file d'attente pour obtenir le mme fonctionnement qu'une tche
vnementielle systme. Dans ce mode la file d'attente stocke en plus un "paramtre" permettant
de diffrencier plusieurs source d'un mme vnement (et de traiter ces diffrentes sources dans
une seule tche).
Gnration d'vnement
CAPTUREEVENT
CAMBOX
Bote cames
COUNTEREVENT
SETTASKEVENTLIST
Compteurs
Compteurs
Le MPC possde 64 compteurs 32 bits.
Chaque entre du systme (MPC, IMD, CANopen ...) peut tre affecte un compteur.
Les fonctions disponibles sont :
COUNTER
Configuration du compteur
COUNTER_S
Lecture du compteur
294
Programmation de l'automate
COUNTEREVENT
COUNTERSET
STARTCOUNTER
Dmarre le compteur
STOPCOUNTER
Arrte le compteur
Attention
- Lorsque le compteur atteint sa valeur maxi, il repasse 0 au prochain front
Botes cames
Botes cames
La bote cames permet de piloter des sorties TOR suivant des positions angulaires :
Motion Studio accepte jusqu' 32 botes cames avec jusqu' 32 segments et 32 sorties par bote.
Ces boites cames sont rafrachies tous les 300 s
Les fonctions disponibles sont :
CAMBOX
Bote cames
CAMBOX_S
CAMBOXOUT
CAMBOXSEG
SETINP
STARTCAMBOX
STOPCAMBOX
tOutputDef
tSegmentMode
tOutTarget
295
Printed Documentation
VAR
SegmentDef : tSegmentDef;
OutputDef : tOutputDef;
END_VAR
(* Dclaration des segments *)
SegmentDef.Count:=6;
(* Le segment 1 met la sortie 1 1 entre 20 et 60 *)
SegmentDef.Active[0]:=1;
SegmentDef.OutputNum[0]:=0;
SegmentDef.BeginPosition[0]:=20.0;
SegmentDef.EndPosition[0]:=60.0;
SegmentDef.Direction[0]:=S_ALL;
SegmentDef.Mode[0]:=SMPOSITION;
(* Le segment 2 met la sortie 2 1 entre 100 et 135 *)
SegmentDef.Active[1]:=1;
SegmentDef.OutputNum[1]:=1;
SegmentDef.BeginPosition[1]:=100.0;
SegmentDef.EndPosition[1]:=135.0;
SegmentDef.Direction[1]:=S_ALL;
SegmentDef.Mode[1]:=SMPOSITION;
(* Le segment 3 met la sortie 1 1 entre 135 et 180 *)
SegmentDef.Active[2]:=1;
SegmentDef.OutputNum[2]:=0;
SegmentDef.BeginPosition[2]:=135.0;
SegmentDef.EndPosition[2]:=180.0;
SegmentDef.Direction[2]:=S_ALL;
296
Programmation de l'automate
SegmentDef.Mode[2]:=SMPOSITION;
(* Le segment 4 met la sortie 3 1 entre 200 et 240 *)
SegmentDef.Active[3]:=1;
SegmentDef.OutputNum[3]:=2;
SegmentDef.BeginPosition[3]:=200.0;
SegmentDef.EndPosition[3]:=240.0;
SegmentDef.Direction[3]:=S_ALL;
SegmentDef.Mode[3]:=SMPOSITION;
(* Le segment 5 met la sortie 1 1 entre 200 et 240 *)
SegmentDef.Active[4]:=1;
SegmentDef.OutputNum[4]:=0;
SegmentDef.BeginPosition[4]:=200.0;
SegmentDef.EndPosition[4]:=240.0;
SegmentDef.Direction[4]:=S_ALL;
SegmentDef.Mode[4]:=SMPOSITION;
(* Le segment 6 met la sortie 3 1 entre 350 et 10 *)
SegmentDef.Active[5]:=1;
SegmentDef.OutputNum[5]:=2;
SegmentDef.BeginPosition[5]:=350.0;
SegmentDef.EndPosition[5]:=10.0;
SegmentDef.Direction[5]:=S_ALL;
SegmentDef.Mode[5]:=SMPOSITION;
(* Dclaration des sorties *)
OutputDef.Count:=3;
(* Assigne la sortie MPC 4 la sortie 1 de la boite came *)
OutputDef.Active[0]:=1;
OutputDef.Target[0]:=OM_PHYSICALOUTBIT;
OutputDef.OutBit[0]:=MPC_OUT_4;
(* Assigne la sortie MPC 3 la sortie 2 de la boite came *)
OutputDef.Active[1]:=1;
OutputDef.Target[1]:=OM_PHYSICALOUTBIT;
OutputDef.OutBit[1]:=MPC_OUT_3;
(* Assigne la sortie MPC 12 la sortie 3 de la boite came *)
OutputDef.Active[2]:=1;
OutputDef.Target[2]:=OM_PHYSICALOUTBIT;
OutputDef.OutBit[2]:=MPC_OUT_12;
(* Paramtrage de la boite came *)
CAMBOX(1,axe_X,SRC_AXE,FILTER_NONE,SegmentDef,OutputDef);
;
STARTCAMBOX(1); (* Lancement de la bote *)
DELAY(1000);
STOPCAMBOX(1,1); (* Arrt de la bote et remise zro des sorties
actives *)
297
Fonctions mathmatiques
Voici les oprateurs standards pour le calcule arithmtique:
Addition
299
Printed Documentation
Soustraction
Multiplication
Division
MOVE (assignation)
Voici les fonctions standard effectuant des oprations mathmatiques:
ABS
valeur absolue
SQRT
racine carre
LN
logarithme de base e
LOG
logarithme de base 10
EXP
exponentiel de base e
EXPT
exponentiel de base 10
MOD
modulo
TRUNC
partie entire
INTP
FRAC
NEG
SGN
FIXTOREAL
REALTOFIX
UDINTSWAP
inversion de mots
Sinus
COS
Cosinus
TAN
Tangente
ASIN
arc-sinus
ACOS
arc-cosinus
ATAN
arc-tangente
dcalage gauche
SHR
dcalage droite
ROL
rotation gauche
ROR
rotation droite
Fonctions boolennes
Voici les oprateurs standard pour les oprations boolennes:
AND
ET boolen
OR
OU boolen
XOR
OU exclusif
NOT
Fonctions de slection
300
MIN
MAX
LIMIT
SEL
slection
MUX
multiplexage
Oprations de comparaison
Voici les oprateurs et blocs standard effectuant des comparaisons:
Suprieur
Suprieur ou gal
Diffrent
Egalit
Infrieur ou gal
Infrieur
Manipulation des chanes de caractres
LEN
LEFT
RIGHT
MID
CONCAT
INSERT
DELETE
REPLACE
FIND
RS
SR
Dtection de front
R_TRIG
F_TRIG
Compteur
CTU
Compteur
CTD
Dcompteur
CTUD
Compteur/Dcompteur
301
Printed Documentation
Temporisateur
TON
Temporisateur l'enclenchement
TOF
Temporisateur au dclenchement
TP
Temporisateur d'impulsions
HALT
GETLASTSYSEVENT
GETSYSTEMEVEN
INIT_S
INITGETCONTEXT
INITSETRESULT
NEXTTASK
RUN
SIGNAL
Gnre un vnement
STATUS_S
SUSPEND
Acclration
ACC_T
ACCP
Acclration en pourcentage
AXIS
AXIS_S
AXISREQUEST_S
BUFMOV_S
CLEAR
CLEARAUX
CLEARAXISFAULT
CURRENT
CURRENT_S
DEC
Dclration
DEC_T
DECP
Dclration en pourcentage
FE_S
FEMAX_S
GETMODE
SETMODE
302
HOME
Prise d'origine
HOME_S
HOMEAUX
HOMEAUX_S
HOMEAUXCANCEL
HOMEAUXREQUEST_S
HOMECANCEL
HOMEREQUEST_S
MERGE
Dfinit l'enchanement
MOVE_S
Etat du mouvement
ORDER
ORDER_S
ORDER_T
POS
POS_S
Position relle
POS_T
POSAUX_S
POSERROR_S
SPEED
SPEED_S
STTH
STTHAUX
TORQUE
TORQUE_S
VEL
Vitesse
VEL_T
VEL_S
Vitesse courante
VELAUX_S
VELP
Vitesse en pourcentage
Positionnement
MOVA
Mouvement absolu
MOVR
Mouvement relatif
SSTOP
STOP
STTA
STTIM
STTIP
STTR
TRAJA
Trajectoire absolue
TRAJIM
TRAJIP
TRAJR
Trajectoire relative
Mouvements dclenchs
303
Printed Documentation
TRIGGERAXIS_S
TRIGGERAXISSET
TRIGGERF
TRIGGERI
TRIGGERP
Synchronisation
BREAKCAM
BREAKCAM_POS
CAM_S
Etat de la came
CAMNUM_S
CAMREADPOINT
CAMSEG_S
ENDCAM
FILTERMASTER
GEARBOX
Arbre lectrique
GEARBOXRATIO
GEARBOXRATIO_S
ICORRECTION
Fonction de compensation
ICORRECTION_S
Etat de la compensation
ICORRECTIONA
Fonction de compensation
LOADCAM
LOADCAMI
LOADCAMPOINT
MASTEROFFSET
MASTEROFFSET_S
MOVS
Mouvement synchronis
READCAM
SLAVEOFFSET
SLAVEOFFSET_S
STARTCAM
STOPS
STOPS_S
WRITECAM
Interpolation
INTERPOLATE
INTERPOLATE2D
INTERPOLATE3D
STTL2D
STTL3D
304
TRAJL2D
TRAJL3D
STTC2D
STTC3D
TRAJC2D
TRAJC3D
STTH3D
TRAJH3D
Capture
CAPTURE
CAPTURECANCEL
CAPTUREIMD
CAPTUREEVENT
REG_S
Etat de la capture
REGPOS_S
Position capture
INPB
INPW
OUTP
OUTP_S
OUTB
OUTB_S
OUTW
OUTW_S
Entres analogiques
DAC
Sorties analogiques
Temporisations
DELAY
Attente passive
WAIT
Evnements
GETLASTSYSEVENT
GETSYSTEMEVENT
GETUSEREVENTPARAM
SETTASKEVENTLIST
SIGNAL
Gnration d'vnement
305
Printed Documentation
Compteurs
COUNTER
Configuration du compteur
COUNTER_S
Lecture du compteur
COUNTEREVENT
COUNTERSET
STARTCOUNTER
Dmarre le compteur
STOPCOUNTER
Arrte le compteur
Boites cames
CAMBOX
Bote cames
CAMBOX_S
CAMBOXOUT
CAMBOXSEG
SETINP
STARTCAMBOX
STOPCAMBOX
TYPE
END_TYPE
VAR_EXTERNAL
VAR_GLOBAL
VAR
VAR_IN
VAR_IN_OUT
VAR_OUTPUT
END_VAR
Instructions du langage IL
Instructions du langage IL
Instructions de programmation:
Parenthses
CAL <Instance name>
Saut inconditionnel
JMP <Label>
JMPC <Label>
JMPCN <Label>
RET
RETC
RETCN
306
AND
ANDN
OU
OR
ORN
OU exclusive
XOR
XORN
force TRUE
S BOOL
force FALSE
R BOOL
Optations mathmatiques:
ADD
addition
SUB
soustraction
MUL
multiplication
DIV
division
MOD
modulo
charge l'oprande
LDN ANY_BIT
stocke le rsultat
ST ANY
STN ANY_BIT
Oprateurs logiques:
GT
GE
EQ
Egalit
NE
Ingalit
LE
LT
Instructions du langage ST
Instructions du langage ST
CASE
OF
END_CASE
IF
THEN
ELSE
ELSEIF
END_IF
FOR
307
Printed Documentation
TO
BY
DO
END_FOR
REPEAT
UNTIL
END_REPEAT
WHILE
END_WHILE
EXIT
Autres
Flash, Scurit, Divers
Afficheur
DISPLAY
Afficheur 7 segments
Scurit
WATCHDOGOFF
WATCHDOGON
WATCHDOG_S
WDTASKRAZ
WDTASK_S
Horloge
LOADTIMER
Charge un TIMER
TIMEH
TIMEL
TIMER
Paramtres
READ
READPARAM
READPARAMR
READR
SECURITY
SECURITYFEMAX
WRITE
WRITEPARAM
WRITEPARAMR
WRITER
308
Systme
RESTART
Redmarrage du systme
RESTART_S
VERSION
RAMTOFLASH
CLEARTOFLASH
FLASHOK_S
RAMOK_S
BATERY_S
IOFAULT_S
Liste alphabtique
Accs aux bits d'un mot
Vous pouvez directement spcifier un bit d'une variable entire dans les expressions et les
diagrammes, en utilisant la syntaxe suivante:
Variable.BitNo
O:
Variable: est le nom d'une variable de type ANY_BIT
BitNo: constante indiquant le numro du bit dans la variable
La variable peut avoir un des types suivants:
BYTE (8 bits de .0 .7)
WORD (16 bits de .0 .15)
DWORD (32 bits de .0 31)
0 reprsente toujours le bit de poids le plus faible.
Pour pouvoir accder au bit d'un variable ANY_BIT via une variable, il faut utiliser une des fonctions
suivantes:
SETBITB
SETBITW
SETBITD
GETBITB
GETBITW
GETBITD
Exemple ST
VAR
a: BYTE;
b: DWORD;
c: DWORD;
j: USINT;
END_VAR
If a.1=1 Then
(* Test le 1er bit de a *)
For j:=1 To 8 Do
SETBITD(c, j, GETBITD (b, j)); (* Copie les 8 premiers bits de b->c
309
Printed Documentation
*)
End_For;
End_If;
Assignation de variable
Syntaxe
<Variable> := <Expression>
Types accepts
<Variable> : ANY
<Expression> : ANY
Description
La variable force et l'expression doivent avoir le mme type.
En IL, l'instruction LD est utilise pour charger la valeur dans le rsultat courant, et l'instruction ST
force la variable.
Le rsultat courant et l'oprande de l'instruction ST doivent avoir le mme type.
Les instructions LD et ST peuvent tre modifies par le suffixe "N" pour indiquer une inversion dans
le cas d'un oprande boolen.
Remarques
":=" est un mot-cl rserv au langage ST, il est dfini par la norme IEC61131-3.
Exemple ST
VAR
a: INT;
b: ARRAY [0..5] OF INT;
c: REAL;
e: INT;
END_VAR
a := 5;
(* assigne 5 a *)
b[1]:= a*2; e := a;
(* double assignations *)
e:= REAL_TO_INT( c ); (* assignement avec un appel de fonction *)
Exemple IL
VAR
IN: BOOL;
IN1: BOOL;
IN2: BOOL;
Q: BOOL;
END_VAR
Op1: LD
ST
LDN
ST
LD
STN
IN
Q
IN1
Q
IN2
Q
Voir aussi
Parenthses
Parenthses
310
(*
(*
(*
(*
(*
(*
rsultat courant: IN *)
Q = IN *)
rsultat courant: NOT (IN1) *)
Q = NOT (IN1) *)
rsultat courant: IN2 *)
Q = NOT (IN2) *)
Syntaxe
()
Description
Les parenthses permettent force l'ordre d'valuation d'une expression complexe.
Les parenthses sont utilises en ST et en IL pour changer l'ordre par dfaut lors de l'valuation
des lments d'une expression complexe.
Par exemple, l'ordre par dfaut pour l'valuation de l'expression "2 * 3 + 4" en ST donne un rsultat
de 10 puisque l'oprateur "*" est prioritaire.
Changer l'ordre avec des parenthses pour "2 * ( 3 + 4 )" donne un rsultat de 14.
Les parenthses peuvent tre imbriques dans une expression.
Remarques
Voici l'ordre de priorit appliqu par dfaut pour les oprateurs du langage ST (le premier a la plus
grande priorit):
Oprateurs unaires:
- NOT
Multiplication/Division: * /
Addition/Soustraction: + Comparaisons:
< > <= >= = <>
ET boolen:
& AND
OU boolen:
OR
OU exclusif:
XOR
En IL, l'ordre par dfaut est donn par l'ordre des instructions dans la squence. Chaque nouvelle
instruction modifie le rsultat courant. En IL, une parenthse ouvrante "(" doit tre crite entre une
instruction et son oprande. La parenthse fermante ")" est crite seule sur une ligne, sans
oprande.
Exemple ST
VAR
IN1: INT;
IN2: INT;
IN3: INT;
IN4: INT;
Q: INT;
END_VAR
Q := (IN1 + (IN2 / IN 3)) * IN4;
Exemple IL
VAR
IN1: INT;
IN2: INT;
IN3: INT;
IN4: INT;
Q: INT;
END_VAR
Op1: LD
ADD(
MUL
)
SUB
ST
IN1
IN2
IN3
IN4
Q
Voir aussi
311
Printed Documentation
Assignation
Destination d'une instruction de saut
Etiquettes
Les tiquettes sont les destinations des instructions de saut en FDB, LD ou IL. Les sauts et les
tiquettes ne sont pas disponibles en ST. Une tiquette est reprsente par un nom unique suivi de
deux points (":"). En LD et FBD, une tiquette identifie une chelle et est inscrite au dessus de la
barre gauche d'alimentation. En IL, les tiquettes sont les destinations des instructions JMP, JMPC,
JMPCN. Elles doivent tre inscrites en dbut de ligne, avant une instruction, et doivent prcder
une instruction valide: LD (chargement), instructions inconditionnelles telles que CAL, JMP ou RET.
L'tiquette peut galement tre insre seule sur une ligne, avant une instruction valide. Dans tous
les langages, il n'est pas obligatoire qu'une tiquette soit la destination d'un saut. Les tiquettes
peuvent galement tre utilises comme des repres dans les programmes pour en augmenter la
lisibilit.
Exemple ST
Non disponible
Exemple FBD
(* Dans cet exemple, la seconde chelle n'est pas value si IN1 = TRUE
*)
Exemple LD
(* Dans cet exemple, la seconde chelle n'est pas value si IN1 = TRUE
*)
Exemple IL
VAR
IN1: BOOL;
IN2: BOOL;
IN3: BOOL;
Q2: BOOL;
Q3: BOOL;
END_VAR
Start:
312
LD
IN1
(* tiquette inutilise *)
JMPC TheRest (* Saut "TheRest" si IN1 = TRUE *)
LD
ST
IN2
Q2
TheRest: LD
ST
IN3
Q3
(* destination du saut *)
Voir aussi
Sauts
RETURN
Sauts
Un saut une tiquette droute l'excution du programme vers l'tiquette spcifie. Les sauts et
les tiquettes ne sont pas disponibles en ST. En FBD, un saut est reprsent par un bloc oprateur
JMPC contenant le nom de l'tiquette de destination. Le flux en entre du bloc doit tre connect
une variable boolenne qui conditionne le branchement. Le saut n'est excut que si le flux en
entre est TRUE. En LD, l'oprateur JMP ou JMPN, suivi par le nom d'une tiquette, finit une
chelle. Le saut est excut si le flux est TRUE pour un JMP et FALSE pour un JMPN. En IL, les
instructions JMP, JMPCet JMPCN spcifient des oprations de saut. La destination du saut est
l'oprande de l'instruction.
Attention: les sauts en arrire peuvent crer des boucles infinies et bloquer le cycle.
Exemple ST
Non disponible
Exemple FBD
(* Dans cet exemple, la seconde chelle n'est pas value si IN1 = TRUE
*)
Exemple LD
(* Dans cet exemple, la seconde chelle n'est pas value si IN1 = TRUE
*)
Exemple IL
Les instructions suivantes sont disponibles:
JMP
Branchement inconditionnel
313
Printed Documentation
JMPC
JMPCN
VAR
IN1: BOOL;
IN2: BOOL;
IN3: BOOL;
Q2: BOOL;
Q3: BOOL;
END_VAR
Start:
LD
JMPC
LD
ST
TheRest: LD
ST
IN1
TheRest
IN2
Q2
(*
(*
(*
(*
tiquette inutilise *)
Saut "TheRest" si IN1 = TRUE *)
ces instructions ne sont pas excutes *)
si IN1 = TRUE *)
IN3
Q3
(* destination du saut *)
Voir aussi
Etiquettes
RETURN
Addition
Syntaxe
<Q> := <IN1> + <IN2>
Type accepts
<IN1>: ANY_NUM ou TIME
<IN2>: ANY_NUM ou TIME
<Q>: ANY_NUM ou TIME
Description
Cet oprateur additionne deux expressions numriques et retourne une valeur du mme type que
ces oprandes.
< IN1> et < IN2> doivent tre des expressions valides et tre du mme type.
Remarques
En langage LD et FBD, plusieurs fonctions ADD sont disponibles suivant le type de donne.
En langage IL, la valeur d'entre doit tre charge dans le rsultat courant avant l'appel de la
fonction.
Voir la Table E.1: Les conditions d'erreur pour un rsultat avec dbordement.
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: INT;
END_VAR
Q := IN1 + IN2;
Exemple FBD
314
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
VAR
IN1: INT;
IN2: INT;
IN3: INT;
Q: INT;
END_VAR
Op1: LD
ADD
ST
Op2: LD
ADD
ADD
ST
IN1
IN2
Q
(* Q = IN1 + IN2 *)
IN1
IN2
IN3
Q
(* Q = IN1 + IN2 + IN3 *)
Voir aussi :
Soustraction
Multiplication
Division
Soustraction
Syntaxe
<Q> := <IN1> - <IN2>
Type accepts
<IN1> : ANY_NUM ou TIME
<IN2> : ANY_NUM ou TIME
<Q>: ANY_NUM ou TIME
Description
Cet oprateur soustrait l'expression <IN2> de l'expression <IN1> et retourne une valeur du mme
type que ces oprandes.
< IN1> et < IN2> doivent tre des expressions valides et tre du mme type.
Remarques
315
Printed Documentation
En langage LD et FBD, plusieurs fonctions SUB sont disponibles suivant le type de donne.
En langage IL, la valeur d'entre doit tre charge dans le rsultat courant avant l'appel de la
fonction.
Voir la Table E.1: Les conditions d'erreur pour un rsultat avec dbordement.
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: INT;
END_VAR
Q := IN1 - IN2;
Exemple FBD
(* le bloc peut avoir jusqu' 16 entres *)
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
VAR
IN1: INT;
IN2: INT;
IN3: INT;
Q: INT;
END_VAR
Op1: LD IN1
SUB IN2
ST Q
(* Q = IN1 + IN2 *)
Op2: LD
SUB
SUB
ST
IN1
IN2
IN3
Q
(* Q = IN1 + IN2 + IN3 *)
Voir aussi :
Addition
Multiplication
Division
Multiplication
Syntaxe
<Q> := <IN1> * <IN2>
316
Type accepts
<IN1> : ANY_NUM ou TIME
<IN2> : ANY_NUM
<Q>: ANY_NUM ou TIME
Description
Cet oprateur multiplie deux expressions numriques et retourne une valeur du mme type que ces
oprandes.
< IN1> et < IN2> doivent tre des expressions valides et tre du mme type.
Remarques
En langage LD et FBD, plusieurs fonctions MUL sont disponibles suivant le type de donne.
En langage IL, la valeur d'entre doit tre charge dans le rsultat courant avant l'appel de la
fonction.
Voir la Table E.1: Les conditions d'erreur pour un rsultat avec dbordement.
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: INT;
END_VAR
Q := IN1 * IN2;
Exemple FBD
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
VAR
IN1: INT;
IN2: INT;
IN3: INT;
Q: INT;
END_VAR
Op1: LD IN1
MUL IN2
ST Q
(* Q = IN1 * IN2 *)
Op2: LD IN1
MUL IN2
317
Printed Documentation
MUL IN3
ST Q
(* Q = IN1 * IN2 * IN3 *)
Voir aussi :
Addition
Soustaction
Division
Division
Syntaxe
<Q> := <IN1> / <IN2>
Type accepts
<IN1> : ANY_NUM ou TIME
<IN2> : ANY_NUM
<Q>: ANY_NUM ou TIME
Description
Cet oprateur divise deux expressions numriques et retourne une valeur du mme type que ces
oprandes.
< IN1> et < IN2> doivent tre des expressions valides et tre du mme type.
Remarques
En langage LD et FBD, plusieurs fonctions DIV sont disponibles suivant le type de donne.
En langage IL, la valeur d'entre doit tre charge dans le rsultat courant avant l'appel de la
fonction.
Voir la Table E.1: Les conditions d'erreur pour un rsultat avec dbordement.
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: INT;
END_VAR
Q := IN1 / IN2;
Exemple FBD
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
318
Exemple IL
VAR
IN1: INT;
IN2: INT;
IN3: INT;
Q: INT;
END_VAR
Op1: LD IN1
DIV IN2
ST Q
(* Q = IN1 / IN2 *)
Op2: LD
DIV
DIV
ST
IN1
IN2
IN3
Q
(* Q = IN1 / IN2 / IN3 *)
Voir aussi :
Addition
Soustaction
Multiplication
Ngation
Syntaxe
<Q> := - <IN>
Type accepts
<IN1> : ANY_NUM
<Q>: ANY_NUM
Description
Cet oprateur retourne la ngation de l'oprande.
Remarques
En langage IL, la valeur d'entre doit tre charge dans le rsultat courant avant l'appel de la
fonction.
Exemple ST
VAR
IN: INT;
Q: INT;
END_VAR
Q := - IN;
Infrieur
Syntaxe
<Q> := <EN1> LT <EN2>
Types accepts
<IN1> : ANY
<IN2> : ANY
<Q> : BOOL
319
Printed Documentation
Description
Permet de comparer le contenu du registre au contenu de l'oprande, si le contenu du registre est
infrieur celui de l'oprande, le rsultat est TRUE. Si le contenu du registre est suprieur ou gal
celui de l'oprande, le rsultat est FALSE.
Remarques
Les deux entres doivent tre du mme type.
En LD, le flux d'entre (EN) conditionne l'opration, et le flux de sortie est le rsultat de la
comparaison.
En IL, l'instruction LE compare le rsultat courant et l'oprande.
L'oprande et le rsultat courant doivent tre du mme type.
La comparaison peut tre utilise pour des chanes de caractres.
Dans ce cas, le systme effectue une comparaison lexicographique des chanes.
Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Q := IN1 < IN2;
Langage FBD
Langage LD
(* La comparaison est excute si EN = TRUE *)
Langage IL
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Op1: LD IN1
LT IN2
ST Q
Voir aussi
Infrieur ou gal
Egalit
Diffrent
320
Suprieurou gal
Suprieur
Infrieur ou gal
Syntaxe
<Q> := <EN1> LE <EN2>
Types accepts
<IN1> : ANY
<IN2> : ANY
<Q> : BOOL
Description
Permet de comparer le contenu du registre au contenu de l'oprande, si le contenu du registre est
infrieur ou gal celui de l'oprande, le rsultat est TRUE. Si le contenu du registre est suprieur
celui de l'oprande, le rsultat est FALSE.
Remarques
Les deux entres doivent tre du mme type.
En LD, le flux d'entre (EN) conditionne l'opration, et le flux de sortie est le rsultat de la
comparaison.
En IL, l'instruction LE compare le rsultat courant et l'oprande.
L'oprande et le rsultat courant doivent tre du mme type.
La comparaison peut tre utilise pour des chanes de caractres.
Dans ce cas, le systme effectue une comparaison lexicographique des chanes.
Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Q := IN1 <= IN2;
Langage FBD
Langage LD
(* La comparaison est excute si EN = TRUE *)
Langage IL
VAR
IN1: INT;
321
Printed Documentation
IN2: INT;
Q: BOOL;
END_VAR
Op1: LD IN1
LE IN2
ST Q
Voir aussi
Infrieur
Egalit
Diffrent
Suprieur ou gal
Suprieur
Egalit
Syntaxe
<Q> := <EN1>EQ<EN2>
Types accepts
<IN1> : ANY
<IN2> : ANY
<Q> : BOOL
Description
Permet de comparer contenu du registre au contenu de l'oprande, si le contenu du registre est
gal celui de l'oprande, le rsultat est TRUE. Si le contenu du registre n'est pas gal celui de
l'oprande, le rsultat est FALSE.
Remarques
Les deux entres doivent tre du mme type.
En LD, le flux d'entre (EN) conditionne l'opration et le flux de sortie est le rsultat de la
comparaison.
En IL, l'instruction EQ compare le rsultat courant et l'oprande.
L'oprande et le rsultat courant doivent tre du mme type.
La comparaison peut tre utilise pour des chanes de caractres.
Dans ce cas, le systme effectue une comparaison lexicographique des chanes.
Par exemple, ABC est plus petit que ZX ; ABCD est plus grand que ABC.
Les tests d'galit ne peuvent pas tre utiliss avec des entres de type TIME. En effet, une
temporisation active crot avec la rsolution de temps de cycle et certaines valeurs peuvent ne
jamais apparatre.
Langage ST
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Q :=IN1=IN2 ;
Langage FBD
322
Langage LD
(*La comparaison est excute si EN=TRUE*)
Langage IL
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Op1: LD IN1
EQ IN2
ST Q
Voir aussi
Infrieur
Infrieur ou gal
Diffrent
Suprieur ou gal
Suprieur
Diffrent
Syntaxe
<Q> := <EN1> NE <EN2>
Types accepts
<IN1> : ANY
<IN2> : ANY
<Q> : BOOL
Description
Permet de comparer le contenu du registre au contenu de l'oprande, si le contenu du registre est
diffrent de celui de l'oprande, le rsultat est TRUE. Si le contenu du registre est gal celui de
l'oprande, le rsultat est FALSE.
Remarques
Les deux entres doivent tre du mme type.
En LD, le flux d'entre (EN) conditionne l'opration et le flux de sortie est le rsultat de la
comparaison.
En IL, l'instruction EQ compare le rsultat courant et l'oprande.
L'oprande et le rsultat courant doivent tre du mme type.
La comparaison peut tre utilise pour des chanes de caractres.
Dans ce cas, le systme effectue une comparaison lexicographique des chanes.
323
Printed Documentation
Par exemple, ABC est plus petit que ZX ; ABCD est plus grand que ABC.
Les tests d'galit ne peuvent pas tre utiliss avec des entres de type TIME. En effet, une
temporisation active crot avec la rsolution de temps de cycle et certaines valeurs peuvent ne
jamais apparatre.
Langage ST
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Q :=IN1<> IN2 ;
Langage FBD
Langage LD
(*La comparaison est excute si EN=TRUE*)
Langage IL
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Op1: LD IN1
NE IN2
ST Q
Voir aussi
Infrieur
Infrieur ou gal
Egalit
Suprieur ou gal
Suprieur
Suprieur ou gal
Syntaxe
<Q> := <EN1> EQ <EN2>
Types accepts
324
<IN1> : ANY
<IN2> : ANY
<Q> : BOOL
Description
Permet de comparer le contenu du registre au contenu de l'oprande, si le contenu du registre est
suprieur ou gal celui de l'oprande, le rsultat est TRUE. Si le contenu du registre est infrieur
celui de l'oprande, le rsultat est FALSE.
Remarques
Les deux entres doivent tre du mme type.
En LD, le flux d'entre (EN) conditionne l'opration, et le flux de sortie est le rsultat de la
comparaison.
En IL, l'instruction EQ compare le rsultat courant et l'oprande.
L'oprande et le rsultat courant doivent tre du mme type.
La comparaison peut tre utilise pour des chanes de caractres.
Dans ce cas, le systme effectue une comparaison lexicographique des chanes.
Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Q := IN1 >= IN2;
Langage FBD
Langage LD
(* La comparaison est excute si EN = TRUE *)
Langage IL
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Op1: LD IN1
EQ IN2
ST Q
Voir aussi
Infrieur
Infrieur ou gal
325
Printed Documentation
Egalit
Diffrent
Suprieur
Suprieur
Syntaxe
<Q> := <EN1> GT <EN2>
Types accepts
<IN1> : ANY
<IN2> : ANY
<Q> : BOOL
Description
Permet de comparer le contenu du registre au contenu de l'oprande, si le contenu du registre est
suprieur celui de l'oprande, le rsultat est TRUE. Si le contenu du registre est infrieur ou gale
celui de l'oprande, le rsultat est FALSE.
Remarques
Les deux entres doivent tre du mme type.
En LD, le flux d'entre (EN) conditionne l'opration, et le flux de sortie est le rsultat de la
comparaison.
En IL, l'instruction EQ compare le rsultat courant et l'oprande.
L'oprande et le rsultat courant doivent tre du mme type.
La comparaison peut tre utilise pour des chanes de caractres.
Dans ce cas, le systme effectue une comparaison lexicographique des chanes.
Par exemple, "ABC" est plus petit que "ZX" ; "ABCD" est plus grand que "ABC".
Exemple ST
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Q := IN1 > IN2;
Langage FBD
Langage LD
(* La comparaison est excute si EN = TRUE *)
Langage IL
326
VAR
IN1: INT;
IN2: INT;
Q: BOOL;
END_VAR
Op1: LD IN1
GT IN2
ST Q
Voir aussi
Infrieur
Infrieur ou gal
Egalit
Diffrent
Suprieur ou gal
ABS
Syntaxe
<Q> := ABS (<IN>)
Types accepts
<IN> : ANY_NUM
<Q>: ANY_NUM
Description
Cette fonction fournit la valeur absolue de <IN>. Un nombre ngatif est donc converti en un nombre
positif.
<IN> doit tre une expression numrique valide. La valeur absolue d'un nombre est sa valeur nonsigne.
Remarques
En langage LD et FBD, plusieurs fonctions ABS sont disponibles suivant le type de donne.
En langage IL, la valeur d'entre doit tre charge dans le rsultat courant avant l'appel de la
fonction.
Exemple ST
VAR
IN: INT;
Q: INT;
END_VAR
Q := ABS (IN);
Exemple FBD
Exemple LD
327
Printed Documentation
Exemple IL
VAR
IN: INT;
Q: INT;
END_VAR
Op1: LD IN
ABS
ST Q
Voir aussi
TRUNC
LOG
SQRT
EXP
ACC
Acclration
Syntaxe
ACC (<Axe>, <Expression>)
Unit
<Expression> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s
Limite
<Expression> doit tre suprieur ou gal 0
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette instruction modifie l'acclration courante.
<Axe> : nom de l'axe
<Expression> contient la valeur appliquer.
Remarque
L'acclration courante peut tre modifie tout moment.
Exemple ST
VAR
Acceleration : REAL;
END_VAR
ACC(Axe_X, 500.0); (* Acclration de 500 units/s *)
Acceleration := 250.0 ;
ACC(Axe_X, Acceleration); (* Acclration de 250units/s *)
328
Voir aussi
DEC
VEL
ACC_T
ACCP
ACC_T
Acclration
Syntaxe
<Variable> : = ACC_T (<Axe>)
Unit
<Variable> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s
Limite
<Variable> est suprieur ou gal 0
Types accepts
<Axe> : tPeripheral
<Variable> : REAL
Description
Cette instruction retourne l'acclration courante.
<Axe> : nom de l'axe
<Expression> contient la valeur retourne par la fonction.
Remarque
L'acclration courante peut tre lue tout moment.
Exemple ST
VAR
VitesseX: REAL;
END_VAR
ACC(Axe_X, 500.0);
(* Acclration de 500 units/s *)
VitesseX := ACC_T(Axe_X); (* VitesseX = 500 *)
Voir aussi
DEC_T
VEL_T
ACC
ACCP
ACCP
Acclration en pourcentage
Syntaxe
ACCP (<Axe>, <Expression>)
Limite
<Expression> doit tre suprieur ou gal 0
329
Printed Documentation
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette fonction ajuste l'acclration courante en pourcentage du paramtre d'acclration par dfaut
dfinie dans le profil de l'axe.
<Axe> : nom de l'axe
<Expression> contient le pourcentage appliquer.
Remarques
La valeur d'acclration peut tre entre dans l'cran "Profil de vitesse" lors de la configuration
Motion de l'axe et peut tre modifi une tche.
Exemple ST
VAR
Acceleration : REAL;
END_VAR
ACCP(Axe_X, 10.0) ; (* 10% de la l'acclration dfinie dans le profil de
vitesse *)
Acceleration := 15.0 ;
ACCP(Axe_X, Acceleration); (* Acclration de 15% *)
Voir aussi :
DECP
VELP
ACC
ACC_T
ACOS
Cosinus inverse
Syntaxe
<Q> := ACOS (<IN>)
Types accepts
<IN> : REAL
<Q>: REAL
Description
Cette fonction restitue l'arccosinus de <IN>. Cette fonction restitue un angle exprim en radian.
<IN> doit tre une expression numrique valide.
Remarques
En langage LD, la fonction Cosinus inverse s'appelle : ACOS_REAL
En langage FBS, la fonction Cosinus inverse s'appelle : ACOS_REAL_FBD
En langage IL, l'entre (IN) doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
VAR
IN: REAL;
330
Q: REAL;
END_VAR
Q := ACOS (IN);
Exemple FBD
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
VAR
IN: REAL;
Q: REAL;
END_VAR
Op1: LD
IN
ACOS
ST
Q
Voir aussi :
ASIN
ATAN
COS
SIN
TAN
ADC
Syntaxe
<Variable> := ADC (<Axe>, <Entre>)
Unit
<Variable> en Volt
Limite
<Variable> valeur lue, aprs application de l'chelle et de l'offset associs l'entre ANA.
Types accepts
<Axe> : tPeripheral
<Entre> : UINT
<Variable> : REAL
Description
331
Printed Documentation
Voir Addition
ADDMOV
Superposition de mouvements
Syntaxe
ADDMOV (<Esclave>, <Matre>, <Source>, <Coef>)
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<Coef> : REAL
Description
Cette fonction permet de superposer sur un axe esclave ses propres mouvements avec ceux
effectu par un axe matre.
<Esclave> : nom de l'axe
<Matre> : nom de l'axe
<Source> permet de slectionner la source du <Matre>
<Coef> permet d'ajouter un coefficient sur l'axe esclave
Remarque
Le matre et l'esclave peuvent excuter n'importe quel type de mouvement : positionnement,
synchronisation, interpolation.
Exemple ST
ADDMOV (Axe_X, Axe_Y, SRC_AXE,1.0) ; (* Superperposition sur l'Axe_X des mouvements de
l'Axe_Y *)
Voir aussi
ADDSTOP
ADDSTOP
332
Syntaxe
ADDSTOP (<Esclave>)
Types accepts
<Esclave> : tPeripheral
Description
Cette fonction permet de dtruire les liens de superposition de mouvements de l'axe esclave.
<Esclave> : nom de l'axe
Remarques
Si l'axe esclave passe en mode non asservi ( AXIS(Esclave)=Off ), le lien entre le matre et
l'esclave est galement coup.
Exemple ST
ADDMOV(Axe_X,Axe_Y, SRC_AXE); (* Superperposition sur l'Axe_X les
mouvements de l'Axe_Y *)
Delay(10000);
ADDSTOP(Axe_X); (* Arrt de la superposition sur l'Axe_X aprs 10s *)
Voir aussi
ADDMOV
AND
Syntaxe
<Q> := <IN1> AND <IN2>
Types accepts
<IN1> : ANY_BIT
<IN2> : ANY_BIT
<Q> : ANY_BIT
Description
Cette fonction effectue un ET binaire entre deux expressions et retourne une valeur du type de
l
oprande.
<IN1> et <IN2> doivent tre du mme type.
Remarque
AND
Exemple ST
VAR
IN1 : BOOL;
IN2 : BOOL;
IN3 : BOOL;
333
Printed Documentation
Q : BOOL;
END_VAR
Q:= IN1 AND IN2;
Q:= IN1 & IN2 & IN3;
Exemple FBD
Exemple LD
(* contacts en srie *)
Exemple IL
VAR
IN1 : BOOL;
IN2 : BOOL;
IN3 : BOOL;
Q : BOOL;
END_VAR
Op1: LD IN1
& IN2 (* "&" et "AND" sont quivalents *)
ST Q
(* Q = IN1 AND IN2 *)
Op2: LD
AND
&N
ST
IN1
IN2
IN3 (* "&N" et "ANDN" sont quivalents *)
Q
(* Q = IN1 AND IN2 AND (NOT IN3) *)
Voir aussi
OR
XOR
NOT
ANDN
O
prateur
ET avec l'entre 2 inverse
Sinus inverse
Syntaxe
<Q> := ASIN (<IN>)
Types accepts
<IN> : REAL
<Q>: REAL
Description
Cette fonction restitue l'arcsinus de <IN>. Cette fonction restitue un angle exprim en radian.
<IN> doit tre une expression numrique valide.
334
Remarques
En langage LD, la fonction Sinus inverse s'appelle : ASIN_REAL
En langage FBS, la fonction Sinus inverse s'appelle : ASIN_REAL_FBD
En langage IL, l'entre (IN) doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
VAR
IN: REAL;
Q: REAL;
END_VAR
Q := ASIN (IN);
Exemple FBD
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
VAR
IN: REAL;
Q: REAL;
END_VAR
Op1: LD
IN
ASIN
ST
Q
Voir aussi
ACOS
ATAN
COS
SIN
TAN
ATAN
Tangente inverse
Syntaxe
<Q> := ATAN (<IN>)
Types accepts
<IN>: REAL
<Q>: REAL
Description
335
Printed Documentation
Cette fonction restitue l'arctangente de <IN>. Cette fonction restitue un angle exprim en radian.
<IN> doit tre une expression numrique valide.
Remarques
En langage LD, la fonction Tangente inverse s'appelle : ATAN_REAL
En langage FBS, la fonction Tangente inverse s'appelle : ATAN_REAL_FBD
En langage IL, l'entre (IN) doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
VAR
IN: REAL;
Q: REAL;
END_VAR
Q := ATAN (IN);
Exemple FBD
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
VAR
IN: REAL;
Q: REAL;
END_VAR
Op1: LD
IN
ATAN
ST
Q
Voir aussi :
ACOS
ASIN
COS
SIN
TAN
AXIS
Syntaxe
AXIS (<Axe>, <Commande>)
Types accepts
<Axe> : tPeripheral
<Commande> : UINT
336
Description
Cette fonction est utilise pour ouvrir et fermer les boucles d'asservissement.
Lorsque l'axe est en boucle ferm (AXIS=ON), toutes les instructions de mouvement sont
transmises l'axe par l'intermdiaire du buffer de mouvement et sont excutes. Si l'axe passe en
boucle ouverte (AXIS=OFF), le buffer de mouvement est vid, les instructions MOVE_S et FE_S
retournent la valeur 0.
<Axe> : nom de l'axe
<Commande> "1" ou ON pour demander un asservissement et "0" ou OFF pour demander un
dsasservissement
Remarques
La fonction Axis effectue une demande d'asservissement. Le temps de traitement dpend de
l'axe (rel, simulation, virtuel) et de ses paramtres.
Toute fonction de mouvement envoye un axe qui est en boucle ouverte sera consomme par
l'axe mais ne sera pas excute rellement.
Exemple ST
VAR
FlagDefaut : BOOL;
END_VAR
(* TEST COMPLET *)
AXIS (Axe_X, 1);
(* Demande d'asservissement *)
WAIT (AXISREQUEST_S (Axe_X) =0); (* Attente fin de demande
d'asservissement *)
If (AXIS_S (Axe_X) =0) Then
(* Test de l'asservissement *)
FlagDefaut := 1;
Else
FlagDefaut := 0;
End_If;
(* BLOQUANT SI DEFAUT PENDANT L'ASSERVISSEMENT *)
AXIS (Axe_X, 1) ;
(* Demande d'asservissement *)
WAIT (AXIS_S (Axe_X) =1); (* Attente asservissement de l'axe *)
(* PAS DE CONTROL DE L'ASSERVISSEMENT *)
AXIS (Axe_X, 1) ; (* Demande d'asservissement *)
Delay (10) ;
MOVA (Axe_X, 100.0);
Voir aussi
AXIS_S
AXISREQUEST_S
SECURITY
AXIS_S
Lit
la
boucle
l'tatd'asservissement
de
Syntaxe
<EtatAxe> := AXIS_S(<Axe>)
Types accepts
<Axe> : tPeripheral
<EtatAxe> : BOOL
337
Printed Documentation
Description
Cette fonction est utilise pour lire l'tat de la boucle d'asservissement et retourne une rponse 0
ou 1.
<Axe> : nom de l'axe
Remarque
Cette fonction peut tre utilise tout moment pour voir si l'axe est asservi.
Exemple ST
VAR
FlagDefaut : BOOL;
END_VAR
(* TEST COMPLET *)
AXIS (Axe_X, 1) ;
(* Demande d'asservissement *)
WAIT (AXISREQUEST_S (Axe_X) =0); (* Attente fin de demande
d'asservissement *)
If (AXIS_S (Axe_X) =0) Then
(* Test de l'asservissement *)
FlagDefaut := 1;
Else
FlagDefaut := 0;
End_If;
Voir aussi
AXIS
AXISREQUEST_S
SECURITY
AXISREQUEST_S
Syntaxe
<EtatDemandeAxe> := AXISREQUEST_S(<Axe>)
Types accepts
<Axe> : tPeripheral
< EtatDemandeAxe > : BOOL
Description
Cette fonction est utilise pour lire l'tat de la demande d'asservissement et retourne une rponse 0
ou 1.
<Axe> : nom de l'axe
Remarques
Cette fonction peut tre utilise tout moment pour voir si une commande AXIS est en cours.
Exemple ST
VAR
FlagDefaut : BOOL;
END_VAR
(* TEST COMPLET *)
AXIS (Axe_X, 1) ;
(* Demande d'asservissement *)
WAIT (AXISREQUEST_S (Axe_X) =0); (* Attente fin de demande
d'asservissement *)
338
(* Test de l'asservissement *)
Voir aussi
AXIS
AXIS_S
SECURITY
AXISWAIT
Syntaxe
<EtatAxe> := AXISWAIT (<Axe>, <Commande>)
Types accepts
<Axe> : tPeripheral
<Commande> : UINT
<EtatAxe> : BOOL
Description
Cette fonction excute le code suivant :
AXIS(Axe, Commande);
WAIT(AXISREQUEST_S(Axe)=0);
RETURN AXIS_S(Axe);
Voir aussi
AXIS_S
AXISREQUEST_S
SECURITY
BATERY_S
Syntaxe
<Q> := BATERY_S (0)
Types accepts
<Q> : BOOL
Description
Cette fonction indique l'tat de la pile de sauvegarde BBM du MPC : 1 indique que la pile de
sauvegarde est OK
Voir aussi
RAMTOFLASH
CLEARFLASH
BOOL
Voir les types de base
339
Printed Documentation
Notes
Ce type de base est dfini par l'IEC61131-3.
BREAKCAM
Syntaxe
BREAKCAM (<Axe>)
Types accepts
<Axe> : tPeripheral
Description
Cette fonction est utilise pour interrompre le mouvement de synchronisation en cours et passer au
suivant.
<Axe> : nom de l'axe
Voir aussi
BREAKCAM_POS
BREAKCAM_POS
Syntaxe
<Position> := BREAKCAM_POS (<Axe>, <Source>)
Types accepts
<Axe> : tPeripheral
<Source> : USINT
<Position> : REAL
Description
Cette fonction renvoie la position de l'axe lors du dernier BREAKCAM ou STOPS.
<Axe> : nom de l'axe
<Source> permet de slectionner la source :
Voir aussi
BREAKCAM
BUFMOV_S
Syntaxe
<Variable> := BUFMOV_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Variable> : UDINT
Description
340
CAL
Voir Appel d'un bloc de fonction
CALC
Voir Appel d'un bloc de fonction
CALCN
Voir Appel d'un bloc de fonction
CAM_S
Etat de la came
Syntaxe
< Variable > := CAM_S (< Esclave >)
Types accepts
< Esclave >: tPeripheral
< Variable > : UDINT
Description
Cette fonction permet de savoir quel numro et segment de came est en cours d'excution en une
seule fonction.
< Esclave > : nom de l'axe esclave o est effectue la came
Remarques
341
Printed Documentation
Bote cames
Syntaxe
CAMBOX (<NumCamBox>, <Axis_Ref>, <Src_Pos>, <Filtrage>, <SegmentDef>, <OutputDef>)
Type accept
<NumCamBox> : USINT
<Axis_Ref> : tPeripheral
<Src_Pos> : tSrcPos
<Filtrage> : tFilterMaster
<SegmentDef> : tSegmentDef
<OutputDef> : tOutputDef
Description
Cette fonction dfinit une bote came.
<NumCamBox> : Numro de bote (0..31)
<Axis_Ref> : Axe sur lequel est la source de position
<Src_Pos> : Rfrence de la source de position
<Filtrage> : type de filtrage sur la source de position
<SegmentDef> : dfinition des segments
<OutputDef> : dfinition des sorties
Remarques
L'excution de cette instruction provoque l'arrt de la bote came si elle est active (mais les
sorties ne sont pas remises zro).
Si un paramtre est incorrect ou une erreur survient, la boite reste inactive
Voir aussi
CAMBOX_S
CAMBOXOUT
342
CAMBOXSEG
SETINP
STARTCAMBOX
STOPCAMBOX
CAMBOX_S
Syntaxe
<Q> := CAMBOX_S (<NumCamBox>)
Type accept
<NumCamBox> : USINT
<Q> : BOOL
Description
Cette fonction teste l'tat d'une boite came et retourne TRUE si la boite est lance
Voir aussi
CAMBOX
CAMBOXOUT
CAMBOXSEG
SETINP
STARTCAMBOX
STOPCAMBOX
CAMBOXOUT
Syntaxe
CAMBOXOUT (<NumCamBox>, <NumOut>, <OutputDef>)
Type accept
<NumCamBox> : USINT
<NumOut> : USINT
<OutputDef> tOutputDef
Description
Cette fonction modifie une sortie de la boite came.
<NumOut> contient le numro de la sortie modifier, ses donnes sont prises l'endroit
correspondant dans le tableau de dfinition des sorties passs en paramtre <OutputDef>.
L'appelle de cette fonction Influe sur tous les segments relis la sortie concerne
<NumCamBox> : numro de bote (0..31)
<NumOut> : numro du segment (0..31)
<OutputDef> : dfinition des sorties
Remarques
Il est possible d'ajouter/retirer une sortie la vole.
La fonction est bloquante jusqu' ce que la sortie soit effectivement prise en compte (300s max).
En cas de modification de sortie concerne, la sortie initiale conserve sa valeur au moment du
changement.
Voir aussi
CAMBOX
343
Printed Documentation
CAMBOX_S
CAMBOXSEG
SETINP
STARTCAMBOX
STOPCAMBOX
Segment de bote cames
CAMBOXSEG
Syntaxe
Numro
came
en cours
de lad'excution
Syntaxe
<Variable> := CAMNUM_S (<Esclave >)
Types accepts
<Esclave> : tPeripheral
<Variable> : UINT
Description
Cette instruction permet de savoir quel numro de came est en cours d'excution (entre 1 et 128).
< Esclave >: nom de l'axe
Remarques
344
Position
la
came
de l'esclave dans
Syntaxe
<Position Esclave> := CAMREADPOINT (<Position Matre>, <N Came>)
Types accepts
<Position Esclave> : REAL
<Position Matre > : REAL
< N Came > : UINT
Description
Cette instruction permet de calculer la position de l'esclave <Position Esclave> dans la came,
correspondant la position du matre <Position Matre>.
Remarques
Cette instruction tient en compte des valeurs de MASTEROFFSET et SLAVEOFFSET en cours
pour cet axe.
Voir aussi
CAM_S
CAMSEG_S
CAMSEG_S
Syntaxe
<Variable> := CAMSEG_S (< Esclave >)
Types accepts
<Esclave> : tPeripheral
< Variable > : UINT
Description
345
Printed Documentation
Cette instruction permet de savoir quel segment de la came est en cours d'excution (entre 1 et le
nombre de position de la came-1).
< Esclave >: nom de l'axe
Remarques
La valeur retourne est significative que si CAM_S est 1.
CAMSEG_S retourne la valeur 0 si aucune came n'est lance.
Si une came n'est pas encore embraye ou est en attente de TRIGGER, CAMSEG_S retourne la
valeur 1.
Exemple ST
VAR
Segment1EnCours : BOOL;
Segment2EnCours : BOOL;
END_VAR
If (CAMSEG_S(Axe_X)=1) Then
Segment1EnCours :=1 ; (* Segment entre le point 1 et le point 2 *)
End_If ;
If (CAMSEG_S(Axe_X)=2) Then
Segment2EnCours :=1 ; (* Segment entre le point 2 et le point 3 *)
End_If ;
Voir aussi
CAM_S
CAMNUM_S
CAPTURE
Syntaxe
CAPTURE (<Numro>, <Axe>, <Source>, <RefEntre>, <Front>, <Fentre>, <Min>, <Max>)
Types accepts
<Numro> : UINT
<Axe> : tPeripheral
<Source> : tSrcPos
<RefEntre> : tIObitIn
<Front> : USINT
<Fentre> : tCapType
<Mini> : REAL
<Maxi> : REAL
Description
La fonction CAPTURE est utilise pour enregistrer la position courante de la source.
Avec cette instruction, le variateur attend un front sur l'entre capture (ventuellement d'une
fentre).
Quand le front est dtect, la position est stocke dans la variable REGPOS_S.
Le flag REG_S est alors positionn vrai.
<Axe> : nom de l'axe
<Numro> est le numro de registre stockant le capture (de 0 127).
<Source> : permet de slectionner la source de la capture.
<RefEntre> : Rfrence de l'entre de type BIT dclare dans l'diteur E/S.
<Front> : 1 pour front montant ou 0 pour front descendant.
<Fentre> : type de fentre.
<Mini> doit toujours tre infrieur <Maxi>.
346
Exemple ST
VAR
Position : REAL;
END_VAR
(* Capture position relle du moteur sur front montant de l'entre 4 du
MPC lorsque l'axe est entre 10 et 20 *)
CAPTURE (1, Axe_X, SRC_AXE, Mpc_4, 1, W_NONE , 10.0, 20.0);
WAIT (REG_S(1) = 1);
(* Attente d'une capture *)
Position:= REGPOS_S(1); (* Position = valeur de la position lors de la
capture *)
Voir aussi
CAPTURECANCEL
CAPTUREIMD
CAPTUREEVENT
REG_S
REGPOS_S
CAPTURECANCEL
Syntaxe
CAPTURECANCEL (<Numro>)
Types accepts
<Numro> : UINT
Description
La fonction CAPTURECANCEL est utilise pour annule une capture en cours.
<Numro> : est le numro du registre stockant le capture (de 0 127).
Voir aussi
CAPTURE
CAPTUREIMD
CAPTUREEVENT
REG_S
REGPOS_S
CAPTUREIMD
Syntaxe
CAPTUREIMD (<Numro>, <Axe>, <Source>, <N de l'entre>, <Front>, <Fentre>, <Min>,
<Max>)
Types accepts
<Numro> : UINT
<Axe> : tPeripheral
<Source> : tSrcPos
<N de l'entre> : tCapImdIo
<Front> : USINT
<Fentre> : tCapType
<Mini> : REAL
<Maxi> : REAL
347
Printed Documentation
Description
La fonction CAPTUREIMD est utilise pour enregistrer la position courante de l'axe ou de la
position du matre.
Avec cette instruction, le variateur attend un front sur l'entre capture.
Quand le front est dtect, la position est stocke dans la variable REGPOS_S.
Le flag REG_S est alors positionn vrai.
<Axe> : Nom de l'axe
<Source> : permet de slectionner la source de la capture.
<N de l'entre> : rfrence de l'entre rapide du variateur pour la capture
<Front> : USINT -> 1 sur front montant ou 0 sur front descendant.
<Fentre> : type de fentre.
<Mini> doit toujours tre infrieur <Maxi>.
Exemple ST
(* Capture position relle du moteur sur front montant de l'entre 3 de
l'IMD lorsque l'axe est entre 10 et 20 *)
CAPTUREIMD (1, Axe_X, SRC_AXE, IO_3, 1, W_NONE, 10.0, 20.0);
WAIT (REG_S(1) = 1);
(* Attente d'une capture *)
Position:= REGPOS_S(1); (* Position = valeur de la position lors de la
capture *)
Remarques
Cette fonction utilise les captures lies aux entres rapides du variateur IMD/IMDL
Voir aussi
CAPTURE
CAPTURECANCEL
CAPTUREEVENT
REG_S
REGPOS_S
CAPTUREEVENT
Syntaxe
CAPTUREEVENT (<Numro>, <Evnement>, <Paramtre>)
Types accepts
<Numro> : UINT
<Evnement> : UINT
<Paramtre> : UDINT
Types accepts
Cette fonction associe un vnement une capture.
<Numro> : N de capture (0 127)
<Evnement> : N d'vnement lancer
<Paramtre> : Paramtre passer l'vnement
Remarque
Si l'vnement est gal 0, l'vnement est dissoci de la capture.
348
Voir aussi
CAPTURE
CAPTURECANCEL
CAPTUREIMD
REG_S
REGPOS_S
CASE OF ELSE END_CASE
Test multiples
Syntaxe
CASE <expression > OF
<valeur> :
<instructions>
<valeur> , <valeur> :
<instructions>
<valeur> .. <valeur> :
<instructions>
ELSE
<instructions>
END_CASE;
Types accepts
<expression> : ANY_BIT ou ANY_INT
Description
Cette instruction permet d'excuter d'un groupe d'instructions selon la valeur d'une expression.
Le cas dont la <valeur> correspond <expression> est excut. Si aucun cas ne correspond ELSE
est excut
Remarques
Pour chaque cas, vous devez spcifier soit une valeur, soit une liste de valeurs spares par des
virgules (",") soit une plage spcifie par un intervalle "min .. max".
Attention
Pour chaque cas du CASE, l'<expression> est recalcul ce qui peut provoquer des incohrences et
surtout des appels multiples dans le cas d'une fonction.
Il faut utiliser une variable intermdiaire afin d'avoir une valeur constante pour les diffrents cas.
Il est interdit de faire un case avec un type numr.
Exemple ST
(* cet exemple teste les nombres premiers jusqu' 5 *)
iNumber := Number;
CASE iNumber OF
0 :
Alarm := TRUE;
AlarmText := '0 = pas de rsultat';
1 .. 3, 5 :
bPrime := TRUE;
4, 6 :
bPrime := FALSE;
ELSE
Alarm := TRUE;
AlarmText := 'Je ne sais pas aprs 6 !';
END_CASE;
349
Printed Documentation
Voir aussi
IF
WHILE
REPEAT
FOR
EXIT
Met zro la position de l'axe
CLEAR
Syntaxe
CLEAR (<Axe>)
Types accepts
<Axe> : tPeripheral
Description
Metlaposition de l'auxiliaire
zro
Syntaxe
CLEARAUX (<Axe>)
Types accepts
<Axe> : tPeripheral
Description
Cette instruction force la position auxiliaire de l'axe la valeur du paramtre -ZEROAUX_P.
<Axe> : Nom de l'axe
Exemple ST
CLEARAUX(Axe_X);
Position :=POSAUX_S(Axe_X) ; (* Rsultat : Position=0.0 *)
CLEARAXISFAULT - Acquitte les dfauts d'un axe
Syntaxe
CLEARAXISFAULT (<Axe>)
Types accepts
<Axe> : tPeripheral
Description
CLEARAXISFAULT acquitte tous les dfauts d'un axe (y compris l'erreur de poursuite).
<Axe> : Nom de l'axe
350
CLEARFLASH
Syntaxe
CLEARFLASH (0)
Description
Cette fonction efface le contenue de la mmoire FLASH du MPC
Voir aussi
RAMTOFLASH
FLASHOK_S
CONCAT
Syntaxe
<Q> := CONCAT(<In1>, <In2>)
Types accepts
<In1> : STRING
<In2> : STRING
<Q>: STRING
Description
Les chanes de caractres 'IN1 'et 'IN2 'dans le registre de fonctionnement sont assembles pour
former une chane de caractres qui est charge dans le registre de fonctionnement. Les chanes
IN1 IN2 sont crites de la gauche vers la droite dans l'ordre croissant dans la variable Q.
CONTINUE
Syntaxe
CONTINUE(< tche >)
Types accepts
< Tche > : tGroup
Description
Cette instruction est utilise pour continuer l'excution d'une tche suspendue.
< Tche > est le nom de la tche suspendue.
Remarques
Cette fonction n'a pas d'effet sur une tche stoppe ou en cours d'excution.
Exemple ST
Delay (100);
Run (MaTache);
Delay (100);
SUSPEND(MaTache);
Delay (100);
CONTINUE(MaTache);
Voir aussi
RUN
351
Printed Documentation
HALT
SUSPEND
COS
Cosinus
Syntaxe
<Q> := COS (<IN>)
Unit
<IN> est exprime en radians
Types accepts
<IN> : REAL
<Q>: REAL
Description
Cette fonction restitue le cosinus de <IN>.
L'argument <IN> doit tre une expression numrique valide.
La fonction COS prend un angle et restitue le rapport de deux cts d'un triangle rectangle.
Le rapport est la longueur du ct adjacent l'angle divis par la longueur de l'hypotnuse.
Remarques
En langage LD, la fonction Cosinus inverse s'appelle : COS_REAL
En langage FBS, la fonction Cosinus inverse s'appelle : COS_REAL_FBD
En langage IL, l'entre (IN) doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
Q := COS (IN);
Exemple FBD
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
Op1: LD IN
COS
ST Q
Voir aussi :
ACOS
ASIN
ATAN
352
SIN
TAN
COUNTER
Configure le compteur
Syntaxe
COUNTER (<NumCounter>, <Src_io>, <Up>, <Fronts>)
Type accept
<NumCounter> : USINT
<Src_io> : tIOBitIn
<Up> : BOOL
<Fronts> : tEdgeType
Description
Cette fonction permet de configurer le compteur
<NumCounter> : N de compteur (de 0 63)
<Src_io> : Nom de l'entre
<Up> : TRUE compte, FALSE dcompte
<Fronts> : Choix du front
Remarques
Si le compteur tait lanc, cette fonction arrte le compteur, le remet 0 et retire l'vnement
associ.
Voir aussi
COUNTER_S
COUNTEREVENT
COUNTERSET
STARTCOUNTER
STOPCOUNTER
COUNTER_S
Syntaxe
<Q> := COUNTER_S (<NumCounter>)
Type accept
<NumCounte> : USINT
<Q> : UDINT
Description
Cette fonction retourne la valeur courante du compteur.
<NumCounter> : N de compteur (0 63)
Voir aussi
COUNTER
COUNTEREVENT
COUNTERSET
STARTCOUNTER
STOPCOUNTER
353
Printed Documentation
COUNTEREVENT
Syntaxe
COUNTEREVENT (<NumCounter>, <Modulo>, <Event>, <Param>, <Use_modulo>)
Type accept
<NumCounter> : USINT
<Modulo> : UDINT
<Event> : UINT
<Param> : UDINT
<Use_modulo> : BOOL
Description
Cette fonction permet d'associer un vnement un compteur
<NumCounter> : N de compteur (0 63)
<Modulo> : Modulo/Dclenchement du compteur
<Event> : N d'vnement lancer (0 si aucun vnement)
<Param> : Paramtre passer l'vnement
<Use_modulo> : Utiliser la valeur du modulo
En mode compteur :
Lorsque le compteur atteint "modulo", l'vnement est lanc (sauf si 0).
La valeur du compteur est remise 0 si use_modulo est TRUE
En mode dcompteur :
Lorsque le compteur atteint "0", l'vnement est lanc (sauf si 0).
La valeur du compteur est remise modulo-1 si use_modulo est TRUE
Remarques
Il existe un seul vnement par compteur, un 2me appel sur le mme compteur remplace
l'vnement affect ce compteur.
En modulo, le compteur va de 0 modulo-1, si le compteur est initialis une valeur en dehors du
modulo, il n'y reviendra que lorsqu'il r atteindra la valeur naturelle du modulo
Voir aussi
COUNTER
COUNTER_S
COUNTERSET
STARTCOUNTER
STOPCOUNTER
COUNTERSET
Syntaxe
COUNTERSET (<NumCounter>, <Valeur>)
Type accept
<NumCounter> : USINT
<Valeur> : UDINT
Description
Cette fonction pr positionne un compteur une valeur donne
<NumCounter> : N de compteur (0 63)
<Valeur> : Valeur donner au compter
354
Voir aussi
COUNTER
COUNTER_S
COUNTEREVENT
STARTCOUNTER
STOPCOUNTER
CTD
Dcompteur
Syntaxe
CTD(<CD >,< LOAD >,< PV>)
CTD.<Q>
CTD.<CV>
Types accepts
<CD> : bool
<LOAD> : bool
<PV> : int
<Q> : bool
<CV> : int
Description
Permet de raliser un bloc fonction dcompteur
<CD> est l'entre de dcomptage. Le compteur est dcrment chaque front montant de CD
<LOAD> est la valeur de chargement. Le compteur est forc PV si LOAD = TRUE
<PV> est la valeur maximum programme
<Q> est TRUE si le comptage est termin, c'est--dire si CV = 0
<CV> est la valeur courante du compteur
Remarque
A l'initialisation, le compteur est charg la valeur "0".
Exemple ST
(* MyCounter est une instance dclare du bloc CTD *)
MyCounter(CD:=0,LOAD:=1,PV:=10); (* Initialisation du dcompteur la
valeur 10 *)
MyCounter(LOAD:=0);
MyCounter(CD:=1);
(* CV = 9 *)
MyCounter(CD:=0);
MyCounter(CD:=1);
(* CV = 8 *)
Q_BOOL := MyCounter.Q;
CV := MyCounter.CV;
Exemple LD
Exemple FBD
355
Printed Documentation
Exemple IL
(* MyCounter est une instance dclare du bloc CTD *)
Op1: CAL
CAL
CAL
CAL
CAL
LD
ST
LD
ST
MyCounter(CD:=0,LOAD:=1,PV:=10)
MyCounter(LOAD:=0)
MyCounter(CD:=1)
MyCounter(CD:=0)
MyCounter(CD:=1)
MyCounter.Q
Q_BOOL
MyCounter.CV
CV
Voir aussi
CTU
CTUD
CTU
Compteur
Syntaxe
CTU(<CU>,< RESET >,< PV>)
CTU.<Q>
CTU.<CV>
Types accepts
<CD> : bool
<RESET> : bool
<PV> : int
<Q> : bool
<CV> : int
Description
Permet de raliser un bloc fonction compteur
<CD> esrt l'entre de comptage. Le compteur est incrment chaque front montant de CD
< RESET > est la valeur de chargement. Le compteur est forc PV si LOAD = TRUE
<PV> est la valeur maximum programme
<Q> est TRUE si le comptage est termin, c'est--dire si CV = 0
<CV> est la valeur courante du compteur
Remarque
A l'initialisation, le compteur est charg la valeur "0".
Exemple ST
(* MyCounter est une instance dclare du bloc CTU *)
MyCounter(CD:=0,LOAD:=1,PV:=0); (* Initialisation du compteur la valeur
0*)
MyCounter(LOAD:=0);
MyCounter(CD:=1);
(* CV = 1 *)
MyCounter(CD:=0);
MyCounter(CD:=1);
(* CV = 2 *)
356
Q_BOOL := MyCounter.Q;
CV := MyCounter.CV;
Exemple LD
Exemple FBD
Exemple IL
(* MyCounter est une instance dclare du bloc CTU *)
Op1: CAL MyCounter(CD:=0,LOAD:=1,PV:=0)
CAL MyCounter(LOAD:=0)
CAL MyCounter(CD:=1)
CAL MyCounter(CD:=0)
CAL MyCounter(CD:=1)
LD MyCounter.Q
ST Q_BOOL
LD MyCounter.CV
ST CV
Voir aussi
CTD
CTUD
CTUD
Compteur/Dcompteur
Syntaxe
CTUD(<CU>,<CD>,< RESET >,<LOAD>,< PV>)
CTUD.<QU>
CTUD.<QD>
CTUD.<CV>
Types accepts
<CU> : bool R_EDGE
<CD> : bool R_EDGE
< LOAD > : bool
< RESET > : bool
<PV> : int
<QU> : bool
<QD> : bool
<CV> : int
Description
Permet de raliser un bloc fonction compteur ou dcompteur
<CU> est l'entre de comptage. Le compteur est incrment chaque front montant de Cu
357
Printed Documentation
<CD> est l'entre de dcomptage. Le compteur est dcrment chaque front montant de CD
< RESET > est la valeur de chargement. Le compteur est forc PV si RESET = TRUE
< LOAD > est la valeur de chargement. Le compteur est forc PV si LOAD = TRUE
<PV> est la valeur maximum programme
<QU> est TRUE si le comptage est termin, c'est--dire si CV >= PV
<QD> est TRUE si le comptage est termin, c'est--dire si CV <= 0
<CV> est la valeur courante du compteur
Remarque
Al
Exemple ST
(* MyCounter est une instance dclare du bloc CTUD
MyCounter(CU :=0 ;CD:=0, RESET :=1,LOAD:=0,PV:=10);
dcompteur la valeur 10 *)
MyCounter(RESET:=0);
MyCounter(LOAD:=0);
MyCounter(CD:=1);
MyCounter(CD:=0);
MyCounter(CD:=1);
MyCounter(CU:=1);
Q_BOOL := MyCounter.Q;
CV := MyCounter.CV;
*)
(* Initialisation du
(* CV = 9 *)
(* CV = 8 *)
(* CV = 9 *)
Exemple LD
Exemple FBD
Exemple IL
(* MyCounter est une instance dclare du bloc CTUD *)
Op1: CAL MyCounter(CU:=0,CD:=0, RESET:=1;LOAD:=0,PV:=10)
CAL MyCounter(RESET:=0)
CAL MyCounter(LOAD:=0)
CAL MyCounter(CD:=1)
CAL MyCounter(CD:=0)
CAL MyCounter(CD:=1)
CAL MyCounter(CU:=1)
LD MyCounter.Q
ST Q_BOOL
LD MyCounter.CV
ST CV
358
Voir aussi
CTU
CTD
CURRENT
Syntaxe
CURRENT (<Axe>, <Expression>)
Unit
<Expression> en A
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette instruction force la consigne de courant.
<Axe> : Nom de l'axe
<Expression> contient la valeur appliquer.
Exemple ST
CURRENT (Axe_X, 5.20); (* Courant de 5.2 A *)
Voir aussi
TORQUE
TORQUE_S
CURRENT_S
SPEED
SPEED_S
CURRENT_S
Syntaxe
<Q> := CURRENT_S (<Axe>)
Unit
<Q> en A
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne le courant actuel.
<Axe> : Nom de l'axe
Voir aussi
TORQUE
TORQUE_S
359
Printed Documentation
CURRENT
SPEED
SPEED_S
DAC
Sorties analogiques
Syntaxe
DAC (<Axe>, <Expression>)
Unit
<Expression > : Volts
Limites
<Expression> : de -10 +10
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette fonction envoie une tension sur une sortie analogique d'un variateur IMD.
<Axe> Nom de l'axe
Exemple ST
DAC(Axe_X, 5.2);
Voir aussi
ADC
DAC_S
Syntaxe
<Value> := DAC_S (<Axe>)
Unit
<Value> : Volts
Limites
<Value> : de -10 +10
Types accepts
<Axe> : tPeripheral
<Value> : REAL
Description
Cette fonction retourne la valeur de la sortie analogique d'un variateur IMD.
<Axe> Nom de l'axe
Exemple ST
TensionX := DAC_S(Axe_X);
360
Voir aussi
ADC
DEC
Modifie la dclration
Syntaxe
DEC (<Axe>, <Expression>)
Unit
<Expression> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s
Limite
<Expression> doit tre suprieur ou gal 0
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette instruction modifie la dclration courante
<Axe> : Nom de l'axe
<Expression> contient la valeur appliquer
Remarque
La dclration courante peut tre modifie tout moment.
Exemple ST
DEC(AXE_X, 500.0) ; (*Dclration de 500 units/s*)
Voir aussi
ACC*ACC
VEL
DEC_T
DECP
DEC_T
Renvoie la dclration
Syntaxe
<Variable> := DEC_T(<Axe>)
Unit
<Variable> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s
Limite
<Variable> est suprieur ou gal 0
Types accepts
<Axe> : tPeripheral
<Variable> : REAL
361
Printed Documentation
Description
Cette instruction retourne la dclration courante.
<Axe> : Nom de l'axe
<Expression> contient la valeur retourne par la fonction
Remarques
La dclration courante peut tre lue tout moment.
Exemple ST
DEC (Axe_X, 500.0);
(* Dclration de 500 units/s *)
DecX : = DEC_T (Axe _X); (* DecX=500*)
Voir aussi
ACC_T
VEL_T
DEC
DECP
Dclration en pourcentage
DECP
Syntaxe
DECP (<Axe>, <Expression>)
Limites
Attente passive
Syntaxe
DELAY <Dure>
362
Unit
<Dure> : millisecondes
Type accept
Dure : UDINT
Description
Cette fonction ralise une attente suivant la dure spcifie.
Elle endort la tche et provoque le basculement vers la tche suivante.
Attention :
Cette instruction peut tre utilise dans tout type de tche, cependant son utilisation dans une
tche TIMER ou vnementielle peut entraner le dclenchement du chien de garde de celle-ci.
Exemple
DELAY(500);
(* Dlai de 0.5 s. *)
DELAY(Tempo1) ;
Supprime des caractres dans une chane
DELETE
DISABLERECALE
Syntaxe
DISABLERECALE (<Axe>, <Source> )
Types accepts
<Axe> : tPeripheral
<Source> : tSrcPos
Description
Afficheur 7 segments
Syntaxe
DISPLAY <Expression>
Type accept
<Expression> : BYTE
Description
Cette instruction fixe l'tat de l'afficheur status du MPC
363
Printed Documentation
Remarque
Chaque bit de <Expression> reprsente un segment.
Le bit b8 n'est pas utilis.
Exemple ST
Display (109); (* Affiche 5 sur l
afficheur *)
Syntaxe
ENABLERECALE (<Axe>, <Source>, <RefEntre>, <Front>, <Fentre>, <Min>, <Max>,
<Position>, <Acceleration>)
Types accepts
<Axe> : tPeripheral
<Source> : tSrcPos
<RefEntre> : tIObitIn
<Front> : USINT
<Fentre> : tCapType
<Mini> : REAL
<Maxi> : REAL
<Position> : REAL
<Acceleration> : REAL
Description
Cette fonction recale automatiquement un axe sur un capteur.
364
Cette fonction ne doit pas tre utilise avec des axes synchroniss
Elle permet de remdier au problme d'un rapport de rduction non entier ou fractionnaire (Pi)
Elle s'utilise avec les fonctions de positionnement tel que : STTA, STTR, MOVR, MOVA
Syntaxe
ENABLERECALE (<Axe>, <Source>, <RefEntre>, <Front>, <Fentre>, <Min>, <Max>,
<Position>, <Acceleration>)
Types accepts
<Axe> : tPeripheral
<Source> : tSrcPos
<RefEntre> : tIObitIn
<Front> : USINT
<Fentre> : tCapType
<Mini> : REAL
<Maxi> : REAL
<Position> : REAL
<Acceleration> : REAL
Description
Cette fonction recale automatiquement un axe sur un capteur.
Cette fonction ne doit pas tre utilise avec des axes synchroniss
Elle permet de remdier au problme d'un rapport de rduction non entier ou fractionnaire (Pi)
Elle s'utilise avec les fonctions de positionnement tel que : STTA, STTR, MOVR, MOVA
365
Printed Documentation
Voir FOR
END_IF
Voir IF
END_REPEAT
Voir REPEAT
END_TYPE
Voir les sections de dclaration et les types redfinis.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
Les mots-clefs TYPE et END_TYPE ne doivent pas tre insr dans des blocs VAR ... END_VAR,
mais dans les fichiers de dclaration de type au niveau du projet.
END_VAR
Voir les sections de dclaration.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
END_WHILE
Voir WHILE
ENDCAM
Syntaxe
ENDCAM(<Esclave>)
Types accepts
<Esclave> : tPeripheral
Description
Cette fonction permet d'arrter le mouvement de l'axe <Esclave> la fin de la came.
Elle diffre de la fonction STOP qui met fin au mouvement immdiatement.
<Esclave> : Nom de l'axe
Remarques
Si ENDCAM s'applique une came qui a t dclare en mode non mono-coup et enchane avec
une autre, la came termine son profil et enchane sur la suivante.
Voir aussi
STOP
EQ
366
Voir Egalit
Abandonne un nonc itratif
EXIT
Syntaxe
EXIT
Description
L
nonc
doi
tre quitte.
EXIT indique que la boule couran
excution est drou
L
boucle o EXIT est insr.
EXIT se rapporte une boucle uniquement et ne peut pas tre utilis pour quitter plusieurs boucles
imbriques
Exemple ST:
VAR
start: INT :=0;
summe: INT :=0;
ende : INT := 10;
END_VAR
FOR Start:=1 TO Ende BY 2 DO
Summe := Summe + 1;
IF Summe > 4 THEN
EXIT;
END_IF;
END_FOR;
(* Will continue here *)
Voir aussi
IF
WHILE
REPEAT
FOR
CASE
EXP
Exponentiel
Syntaxe
<Q> := EXP (<IN>)
Types accepts
(<IN>) : REAL
(<Q>) : REAL
Description
Cette fonction restitue la base des logarithmes naturels leve la puissance (<Expression>).
L'argument (<Expression>) doit tre une expression numrique valide. La valeur retourne est de
type rel.
Remarques
367
Printed Documentation
En langage LD et FBD, plusieurs fonctions EXPS sont disponibles suivant le type de donne.
En langage IL, la valeur d'entre doit tre charge dans le rsultant courant avant l'appel de la
fonction.
Exemple ST
Q :=EXP (IN);
Exemple FBD
Exemple LD
(*La fonction est excute seulement si EN est TRUE*
(*ENO a la mme valeur que EN*
Exemple IL
Op1: LD IN
EXP
ST Q
Voir aussi
LOG
EXPT
Puissance
Syntaxe
<Q> := EXPT (<IN>, <Exp>)
Types accepts
<IN>, <Q> : ANY_REAL
<Exp> : ANY_NUML
Description
Cette fonction lve <IN> la puissance (<Exp>).
L'argument (<Exp>) doit tre une expression numrique valide. La valeur retourne est de type
rel.
Remarques
En langage LD et FBD, plusieurs fonctions EXPT sont disponibles suivant le type de donne.
En langage IL, la valeur d'entre doit tre charge dans le rsultant courant avant l'appel de la
fonction.
Exemple ST
Q :=EXPT (IN1,IN2) ;
Q := IN1**IN2 ;
368
Exemple FBD
Exemple LD
(*La fonction est excute seulement si EN est TRUE*
(*ENO a la mme valeur que EN*
Exemple IL
Op1: LD
IN1
EXPT IN2
ST
Q
Voir aussi
LOG
F_TRIG
Dtect
ion
de front descendant
Syntaxe
F_TRIG (<CLK>)
F_TRIG.Q
Types accepts
<CLK> : BOOL
<Q> : BOOL
Description
Le bloc de fonction F_TRIG dtecte l'tat de l'entre de commande CLK.
Le changement d'tat de 1 0 dans un cycle de process est dtect et indiqu dans le cycle
suivant par l'activation de la sortie Q.
La sortie est "1" pendant le cycle o le changement de "CLK" est dtect et un front descendant
est indiqu.
Exemple ST
(* F_TRIG1 est une instance dclare du bloc F_TRIG *)
F_TRIG1(CLK:=IN_BOOL);
Q_BOOL:=F_TRIG1.Q;
Exemple FBD
369
Printed Documentation
Exemple LD
Exemple IL
(* F_TRIG est une instance dclare du bloc F_TRIG *)
Op1: CAL F_TRIG1(CLK:=IN_BOOL)
LD F_TRIG1.Q
ST Q_BOOL
Voir aussi
R_TRIG
FALSE
Valeur constante du type BOOL
FAULTAXIS_S
Syntaxe
<DrivFlagFault> := FAULTAXIS_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Value> : DWORD
Description
Cette fonction retourne l'tat des bits de dfauts d'un variateur IMD.
<Axe> Nom de l'axe
Exemple ST
Defauts:=FAULTAXIS_S(X);
If (Defauts.2<>0) Then
(* DEFAUT SOUS TENSION *)
Defaut:=2;
End_If;
InitSetResult(Defaut);
Voir aussi
ADC
FE_S
Syntaxe
<Q> := FE_S(<Axe>)
370
Types accepts
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la valeur de l'erreur de poursuite courante.
<Axe> : Nom de l'axe
Remarques
Cette fonction est utilise pour connatre la valeur courante de l'erreur de poursuite.
On peut ainsi vrifier le comportement de la rgulation en temps rel.
Exemple ST
ValErrPoursuite := FE_S(Axe_X);
If (ValErrPoursuite>10.0) Then
FlagDefautAxeX:=1;
End_If;
Voir aussi
FEMAX_S
SECURITY
FEMAX_S
Syntaxe
<Q> : = FEMAX_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction indique le dpassement de l'erreur de poursuite maximale.
<Axe> : Nom de l'axe
Remarques
Cette fonction est utilise pour savoir quel axe est pass en erreur de poursuite.
Ce flag peut tre trait dans une tche de gestion des dfauts.
Il est possible galement de lire l'tat des dfauts d'un variateur IMD/IMDL :
READPARAM (Axe_X, IMD_FAULT_STATUS);
READPARAM (Axe_X, IMD_FAULT_STATUS2);
Exemple
IF FEMAX_S(Axe_X) THEN
FlagDefautAxeX:=1;
End_If;
IF FEMAX_S(Axe_X) THEN
FlagDefautAxeY:=1;
End_If;
Voir aussi
FE_S
SECURITY
371
Printed Documentation
FIND
Syntaxe
<Q> := FIND (<IN1>, <IN2>)
Types accepts
<IN1> : STRING Chane de caractres
<IN2> : STRING Chane contenant la squence de caractres chercher
<Q> : INT Position du premier caractre de STR dans IN, ou 0 si la recherche a chou
Description
Cette fonction permet de chercher la position de caractres dans une chane.
<IN1> est la chane de caractres scanner
<IN2> est la chane contenant la squence de caractres chercher
<Q> est la position du premier caractre de <IN2> dans <IN1>, ou 0 si la recherche a chou
Remarques
La premire position valide est 1.
Une valeur de retour de 0 signifie que <IN2> n'a pas t trouve.
La recherche tient compte de la casse.
En LD, le flux d'entre (EN) valide l'opration, et le flux en sortie est inchang.
En IL, le premier paramtre (la chane) doit tre charg dans le rsultat courant avant l'appel de la
fonction.
Le second paramtre est l'oprande de la fonction.
Langage ST
POS := FIND (IN, STR);
Langage FBD
Langage LD
(* La fonction est appele si EN = TRUE *)
(* ENO est gal EN *)
Langage IL
Op1: LD
IN
FIND STR
ST
POS
Voir aussi
+
MLEN
DELETE
372
INSERT
REPLACE
LEFT
RIGHT
MID
FILTERMASTER
Syntaxe
FILTERMASTER (<Type>)
Type accept
<Type> : UINT
Description
Cette fonction permet d'appliquer diffrents types de filtrage lors de mouvement synchrone
Les valeurs de <Type> sont :
0 : aucun filtrage, la synchronisation est trs rapide mais risque de forts coup si le ratio est lev
(pour 1 tour matre, l'esclave fait plusieurs tours)
1 : filtrage standard (par dfaut)
2 : grce une faible constante de temps et un filtrage avanc, la synchronisation garde une
rponse assez rapide et diminue fortement les coup (en particulier pour les ratios levs)
3 : grce une constante de temps leve et un filtrage avanc, la synchronisation limine trs
fortement les coups mais perd en prcision (augmente le temps de rponse)
4 : Filtrage par interpolation pour les forts ratios o la vitesse matre varie peu.
5 : Filtrage avancs par interpolation pour les forts ratios o la vitesse matre varie peu, la
synchronisation limine trs fortement les coups mais perd en prcision (augmente le temps de
rponse)
FIXTOREAL
Syntaxe
<Q> := FIXTOREAL (<IN>, <PREC>, <INV>)
Type accepts
<IN> : UDINT
<PREC> : USINT
<INV> : BOOL
<Q> : REAL
Description
Cette fonction convertit un nombre virgule fixe (UDINT) en rel avec la prcision indique en rel.
<INV> TRUE, permet d'inverss le poids fort (16bits) et le poids faible (16bits) avant de
transformer <IN> en rel.
Langage ST
Valeur := FIXTOREAL (123, 2, 0); (* Valeur = 1.23 *)
FLASHOK_S
Syntaxe
<Q> := FLASHOK_S (0)
373
Printed Documentation
Types accepts
<Q> : BOOL
Description
Cette fonction retourne l'tat de la dernire copie en mmoire FLASH du MPC
Voir aussi
RAMTOFLASH
CLEARFLASH
FOR
Boucle FOR
Syntaxe
FOR <index> := <minimum> TO <maximum> BY <step> DO
<instructions>
END_FOR
Types accepts
<index>, <minimum>, <maximum>, <step> : SINT, INT ou DINT
Description
Cette instruction permet de rpter un groupe d'instructions un nombre fini de fois.
<index> est utilise comme index
<minimum> est utilise comme valeur initiale d'index
<maximum>est utilise comme valeur maximum autoris pour l'index
<step> est le pas d'incrment de l'index aprs chaque itration (1 par dfaut)
Remarques
La mention "BY <step>" peut tre omise. Dans ce cas le pas d'incrment est 1.
Attention
Il est possible de crer des boucles infinies si les valeurs <maximum> correspondent au maximum
du type de l'<index>, "For index:=0 to 255" avec index du type SINT provoque une boucle infini
Exemple ST
iArrayDim := 10;
(* force 0 tous les lments d'un tableau *)
FOR iPos := 0 TO (iArrayDim - 1) DO
MyArray[iPos] := 0;
END_FOR;
(* force 1 tous les lments aux index impairs *)
FOR iPos := 1 TO 9 BY 2 DO
MyArray[ipos] := 1;
END_FOR;
Exemple FBD
Non disponible
Exemple LD
Non disponible
Exemple IL
374
Non disponible
Voir aussi
IF
WHILE
REPEAT
CASE
EXIT
FRAC
Partie fractionnelle
Syntaxe
<Q> := FRAC (<Expression>)
Type accept
<Expression> : REAL
Description
Cette fonction restitue la partie fractionnelle de <Expression>.
Remarque
Cette fonction restitue une valeur relle.
Voir aussi
INTP
GE
Arbre lectrique
Syntaxe
GEARBOX(<Esclave>, < Matre>, <SourceMatre>, <Num_Esclave>, <Dn_Matre>, <Rversible>,
<Acclration>)
Units
<Num_Esclave> dans l'unit de l'esclave
<Dn_Matre> dans l'unit du matre
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<SourceMatre> : tSrcPos
<Num_Esclave> : REAL
<Dn_Matre> : REAL
<Rversible> : BOOL
<Acclration> : REAL
Description
Cette fonction lie 2 axes en arbre lectrique.
375
Printed Documentation
En phase plateau le ratio est tel que pour une distance de <Dn_Matre>, l'esclave parcoure
<Num_Esclave>.
< Esclave > nom de l'axe esclave.
< Matre > nom de l'axe matre.
<SourceMatre> : permet de slectionner la source du <Matre>.
Le rapport de l'arbre est dfini par <Num_Esclave> / <Dn_Matre> :
<Rversible>est un boolen qui indique que l'arbre est rversible.
Si Reversible = TRUE
L'esclave est li au matre quelque soit le sens du matre.
La phase d'acclration doit tre termine (distance d'acclration parcourir dans un
des sens) pour que le ratio dfini par <Num_Esclave> / <Dn_Matre> soit atteint.
La phase d'acclration est entirement rversible, y compris si le matre part en sens
avant ou arrire (position rsolveur bruite).
Ratio :
Si le signe de <Num_Esclave> est positif, l'esclave va dans le mme sens qu'un STTIP
sur son axe.
Le signe de <Dn_Matre> n'a aucun effet
Si Rversible = FALSE
L'esclave est li au matre uniquement dans le sens d'acclration du matre.
L'autre sens n'est pas pris en compte mais mmoris et la mme distance devra tre reparcourue dans le sens d'acclration avant de r-embrayer la synchronisation.
376
La liaison tablie entre matre et esclave est valide tant que l'instruction STOP(esclave) ou
AXIS(esclave)=OFF n'a pas t active.
Une valeur nulle de <Dnominateur> provoque une erreur LZS.
Le signe de <Acclration> est ignor car il est systmatiquement pris dans le sens d'avance.
Exemple ST
(* Maitre : 360 par tour, modulo de 360 *)
(* Esclave : 25.4mm/tour *)
(* Un ratio de 25.4 (num)/360(den) correspond : 1 tour esclave pour un
tour matre *)
GEARBOX(Axe_X, Axe_Y, SRC_AXE, 25.4, 360.0, 1, 0.0) ;
Voir aussi
CAM
CAMBOX
MOVS
STOP
AXIS
GEARBOX2
Syntaxe
GEARBOX2(<Esclave >, < Matre >, <SourceMatre>, <Num_Esclave>, <Dn_Matre>,
<Rversible>, <Acclration>, <Direction>, <Seuil_Embrayage>)
Units
<Num_Esclave> dans l'unit de l'esclave
<Dn_Matre> dans l'unit du matre
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<SourceMatre> : tSrcPos
<Num_Esclave> : REAL
<Dn_Matre> : REAL
<Rversible> : BOOL
<Acclration> : REAL
<Direction> : USINT
<Seuil_Embrayage> REAL
Description
Cette fonction lie 2 axes en arbre lectrique.
GEARBOX2 permet d'ajouter une distance <Seuil_Embrayage> parcourir avant d'embrayer l'axe
(le paramtre <Direction> permet de dfinir le type de seuil d'embrayage).
En phase plateau le ratio est tel que pour une distance de <Dn_Matre>, l'esclave parcoure
<Num_Esclave>.
< Esclave > nom de l'axe esclave.
< Matre > nom de l'axe matre.
<SourceMatre> : permet de slectionner la source du <Matre>.
Le rapport de l'arbre est dfini par <Num_Esclave> / <Dn_Matre> :
<Rversible>est un boolen qui indique que l'arbre est rversible.
Si Reversible = TRUE
L'esclave est li au matre quelque soit le sens du matre.
377
Printed Documentation
Si le signe de <Num_Esclave> est positif, l'esclave va dans le mme sens qu'un STTIP
sur son axe.
Le signe de <Dn_Matre> n'a aucun effet
Si Rversible = FALSE
L'esclave est li au matre uniquement dans le sens d'acclration du matre.
L'autre sens n'est pas pris en compte mais mmoris et la mme distance devra tre reparcourue dans le sens d'acclration avant de r-embrayer la synchronisation.
378
La liaison tablie entre matre et esclave est valide tant que l'instruction STOP(esclave) ou
AXIS(esclave)=OFF n'a pas t active.
Une valeur nulle de <Dnominateur> provoque une erreur LZS.
Le signe de <Acclration> est ignor car il est systmatiquement pris dans le sens d'avance.
Exemple ST
(* Matre : 360 par tour, modulo de 360 *)
(* Esclave : 25.4mm/tour *)
(* Un ratio de 25.4 (num)/360(den) correspond : 1 tour esclave pour un tour matre *)
GEARBOX2 (Axe_X, Axe_Y, SRC_AXE, 25.4, 360.0, 1, 0.0, 0, 0.0) ;
Voir aussi
CAM
CAMBOX
MOVS
STOP
AXIS
GEARBOXRATIO
Syntaxe
GEARBOXRATIO (<AxeEsclave>, <Num_Esclave>, <Dn_Matre>, < Acceleration >)
Units
<Numrateur> dans l'unit de l'esclave
<Dnominateur> dans l'unit du matre
Types accepts
<AxeEsclave> : tPeripheral
<Num_Esclave> : REAL
<Dn_Matre> : REAL
<Acceleration> : REAL
Description
Cette fonction modifie le rapport (ratio) de la liaison arbre lectrique.
<AxeEsclave> : Nom de l'axe esclave
Le rapport de l'arbre est dfini par <Num_Esclave> / <Dnominateur> :
<Acclration> est un paramtre qui permet de dfinir une phase d'acclration du matre.
Remarque
La fonction est prise en compte seulement lorsque le GEARBOX a termin sa phase d'acclration
sinon il est ignor.
L'instruction est non-bloquante sauf si le buffer de mouvement est plein.
La liaison tablie entre matre et esclave est valide tant que l'instruction STOP(esclave) ou
379
Printed Documentation
Syntaxe
<Q> = GEARBOXRATIO_S (<Axe_X>)
Types Accepts
<Axe_X> : tPeripheral
<Q> : BOOL
Description
Cette fonction renvoie TRUE si un changement de ratio est possible
<Axe_X> : Nom de l'axe
Exemple
WAIT (GEARBOXRATIO_S (Axe_X));
GEARBOXRATIO (Axe_X, 1.0, 1.0, 0.0);
Voir aussi
CAM
CAMBOX
MOVS
STOP
AXIS
GETBITB
Syntaxe
<Q> := GETBITB (<Data>, <Num>)
Limite
<Num> doit tre entre 0 et 7
Types accepts
380
<Data> : BYTE
<Num> : USINT
<Q> : BOOL
Description
Cette fonction retourne la valeur d'un bit d'une variable BYTE.
GETBITD
Syntaxe
<Q> := GETBITD (<Data>, <Num>)
Limite
<Num> doit tre entre 0 et 31
Types accepts
<Data> : DWORD
<Num> : USINT
<Q> : BOOL
Description
Cette fonction retourne la valeur d'un bit d'une variable DWORD.
GETBITW
Syntaxe
<Q> := GETBITW (<Data>, <Num>)
Limite
<Num> doit tre entre 0 et 15
Types accepts
<Data>: WORD
<Num>: USINT
<Q>: BOOL
Description
Cette fonction retourne la valeur d'un bit d'une variable WORD.
GETLASTSYSEVENT
Syntaxe
<Q> := GETLASTSYSEVENT ( 0 )
Type accept
<Q> : UINT
Desccription
Cette fonctionne retourne le dernier vnement de la pile systme :
1 : Erreur Chien de garde : une tche configur avec chien de garde et que le paramtre "Action du
chien garde" soit "Evnement systme"
2 : Erreur Ethercat
381
Printed Documentation
3 : Erreur LZS
4 : Erreur de Lecture Ecriture : erreur avec les fonctions READ, WRITE, READR, WRITER,
READPARAM, WRITEPARAM, READPARAMR, WRITEPARAMR
5 : Erreur Init Task error : erreur lors de l'excution de la tche d'init
6 : Erreur NodeGuarding slave : erreur dclenche par le nodeguarding esclave/ serveur local (le
MPC n'a pas reu de paquet NodeGuarding d'un matre distant avant le timeout)
7 : Erreur CAN Hard
8 : Erreur NodeGuarding master : erreur dclenche par le NodeGuarding d'un noeud distant (un
noeud distant n'a pas rpondu la requte NodeGuarding du MPC)
Remarque
Le dpassement de la pile d'vnements systme provoque l'erreur E54.52
Voir aussi
GETSYSTEMEVENT
GETUSEREVENTPARAM
SETTASKEVENTLIST
SIGNAL
GETMODE
Syntaxe
<Q> := GETMODE (<Axe>)
Type accept
<Axe> : tPeripheral
<Q> : tBcleMode
Description
Cette fonction retourne le mode de fonctionnement d'un axe.
<Axe> : Nom de l'axe
<Q> : Mode de fonctionnement de l'axe
Voir aussi
SETMODE
GETSYSTEMEVENT
Syntaxe
<Q> := GETSYSTEMEVENT ( 0 )
Type accept
<Q> : UINT
Desccription
Cette fonctionne retourne et dpile l'vnement systme le plus ancien ayant eu lieu:
1 : Erreur Chien de garde : une tche configur avec chien de garde et que le paramtre "Action du
chien garde" soit "Evnement systme"
2 : Erreur Ethercat
3 : Erreur LZS
4 : Erreur de Lecture Ecriture : erreur avec les fonctions READ, WRITE, READR, WRITER,
READPARAM, WRITEPARAM, READPARAMR, WRITEPARAMR
382
GT
Voir Suprieur
HALT
Syntaxe
HALT(<Tache>, <Synchro>)
Types accepts
<Tche> : tGroup
<Synchro> : UDINT
Description
Cette instruction est utilise pour stopper une tche en cours d'excution ou suspendue.
<Tche> est le nom de la tche arrter.
<Synchro> permet de dfinir l'arrt des tches TIMER :
383
Printed Documentation
0 pour un arrt immdiat
1 pour un arrt la fin du cycle de la tche
Remarques
Cette fonction n'a pas d'effet sur une tche dj arrte.
Elle n'affecte pas les mouvements en cours ni les buffers de mouvements.
Seule la valeur "1" est utilisable pour les tches cycliques
Prise d'origine
HOME
Syntaxe
HOME(<Axe>, <Type>)
Types accepts
<Axe> : tPeripheral
<Axe> : Nom de l'axe
<Type> : SINT
Description
La Prise d'origine permet au systme de dterminer l'origine de mesure de l'axe, celle-ci tant
perdue chaque coupure d'alimentation.
La prise d'origine machine (P.O.M) permet de rfrencer la position moteur par rapport une
position de la mcanique.
Diffrents types de POM sont disponibles : immdiat, sur capteur, avec dgagement.
Un cycle de POM force le compteur de position moteur une valeur "Zro Programme".
<Axe> : Nom de l'axe
<Type> :
384
1 : Sur TOP Z
Le moteur n'effectue aucun dplacement mais sa position est re-calcule par rapport au
Top Z moteur et la valeur "Zro Programme".
On obtient une position se situant entre +/- tour ou rfrence +/- tour moteur.
385
Printed Documentation
386
Remarque
La fonction HOME est bloquante jusqu' ce que la prise d'origine soit effectue.
Un home prend en compte :
387
Printed Documentation
Syntaxe
<Q> := HOME_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction indique l'tat de la prise d'origine
<Axe> : Nom de l'axe
Remarque
Cette fonction est utilise pour savoir si la prise d'origine a t effectue ou non.
Pendant un cycle de prise d'origine, l'indicateur HOME_S est forc en 0.
Ds que le cycle est termin sans dfaut, HOME_S passe 1.
Exemple ST
WAIT (HOME_S(Axe_X)=1);
Voir aussi
HOME
HOMECANCEL
HOMEAUX
HOMEAUXCANCEL
HOMEAUX_S
HOMEAUX
Syntaxe
HOMEAUX (<Axe>, <Type>)
Types accepts
<Axe> : tPeripheral
<Type> : SINT
Description
Cette fonction permet de faire une prise d'origine sur l'auxiliaire d'un axe
<Axe> : Nom de l'axe
<Type> :
388
2 : Sur capteur (la fonction attend un front montant sur le capteur HOME)
3 : Sur capteur et Top Z (la fonction attend un niveau haut sur le capteur HOME et un top Z
sur le codeur auxiliaire)
Remarque
La fonction HOMEAUX est bloquante jusqu' ce que la prise d'origine soit effectue.
Exemple ST
HOMEAUX(Axe_X,0); (*Prise d'origine immdiate sur l'auxiliaire*)
Voir aussi
HOME
HOMECANCEL
HOME_S
HOMEAUXCANCEL
HOMEAUX_S
HOMEAUX_S
Syntaxe
<Q> := HOMEAUX_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction indique l'tat de la prise d'origine sur l'auxiliaire
<Axe> : Nom de l'axe
Remarque
Cette fonction est utilise pour savoir si la prise d'origine a t effectue ou non sur l'auxiliaire
Pendant un cycle de prise d'origine, l'indicateur HOMEAUX_S est forc en 0.
Ds que le cycle est termin sans dfaut, HOMEAUX_S passe 1.
Exemple ST
WAIT (HOMEAUX_S(Axe_X)=1);
Voir aussi
HOME
HOMECANCEL
HOME_S
HOMEAUX
HOMEAUXCANCEL
HOMEAUXCANCEL
389
Printed Documentation
Syntaxe
HOMEAUXCANCEL (<Axe>)
Type accept
<Axe> : tPeripheral
Description
Cette fonction permet d'annuler une prise d'origine en cours sur l'auxiliaire.
<Axe> : Nom de l'axe
Remarque
Cette fonction est utilise dans une autre tche que celle qui contient la fonction HOMEAUX
Voir aussi
HOME
HOMECANCEL
HOME_S
HOMEAUX
HOMEAUX_S
HOMEAUXREQUEST_S
Syntaxe
<Q> := HOMEAUXREQUEST_S (<Axe>)
Type accept
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction indique si une prise d'origine est en cours sur l'auxiliaire.
<Axe> : Nom de l'axe
Remarque
Pendant un cycle de prise d'origine, l'indicateur HOMEAUXREQUEST_S est mis "1".
Ds que le cycle est entirement termin, HOMEAUXREQUEST_S passe "0".
Exemple ST
STTHAUX (Axe_s,0);
WAIT (HOMEAUXREQUEST_S (Axe_X) =0);
Voir aussi
HOME
HOMECANCEL
HOME_S
HOMEAUX
HOMEAUXCANCEL
HOMEAUX_S
390
HOMECANCEL
Syntaxe
HOMECANCEL (<Axe>)
Type accept
<Axe> : tPeripheral
Description
Cette fonction permet d'annuler une prise d'origine en cours.
<Axe> : Nom de l'axe
Remarque
Cette fonction est utilise dans une autre tche que celle qui contient la fonction HOME.
Voir aussi
HOME
HOME_S
HOMEAUX
HOMEAUXCANCEL
HOMEAUX_S
HOMEREQUEST_S
Syntaxe
<Q> := HOMEREQUEST_S (<Axe>)
Type accept
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction indique si une prise d'origine est en cours
<Axe> : Nom de l'axe
Remarque
Pendant un cycle de prise d'origine, l'indicateur HOMEREQUEST_S est mis "1".
Ds que le cycle est entirement termin, HOMEREQUEST_S passe "0".
Exemple
STTH (Axe_s,0);
WAIT (HOMEREQUEST_S(Axe_X)=0);
Voir aussi
HOME
HOMECANCEL
HOME_S
HOMEAUX
HOMEAUXCANCEL
391
Printed Documentation
HOMEAUX_S
ICORRECTION
fonction de compensation
Syntaxe
ICORRECTION (<Esclave>, <Matre>, <Source>, <Dist.matre>, <Dist.esclave>, <Dist. d
accl>)
Units
<Dist.matre>, <Dist.esclave> : unit utilisateur (Ex : mm, degr,
<Dist.d
accl>
: unit utilisateur/s
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<Dist.matre>, <Dist.esclave>, <Dist.d
accl>
: REAL
Description
Cette fonction permet d'appliquer un mouvement de correction sur un axe esclave pendant une
distance de l'axe matre.
L'esclave devra au pralable tre li un matre par une fonction d'arbre lectrique (GEARBOX),
de mouvement synchronis (MOVS) ou came (CAM) avant de lancer une compensation. Au
mouvement de synchronisation normal de l'esclave, on superpose le mouvement suivant : Pendant
que le matre parcourt une distance matre, on ajoute un dplacement distance esclave avec
une acclration et une dclration sur une distance matre de distance d
accl.
Les fonctions STOP et STOPS permettent d'arrter la compensation
<Esclave>, <Matre> : Nom d'axe
<Source> permet de slectionner la source du <Matre>
Remarques
La fonction n'est pas prise en compte si une correction est dj en cours
La fonction est bloquante si le buffer de mouvement est plein.
Voir aussi
CORRECTION_S
ICORRECTIONA
ICORRECTION_S
Etat de la compensation
Syntaxe
<Q> := ICORRECTION_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction permet de connatre l'tat du cycle de compensation : retourne 1 si ICORRECTION
est en cours d'excution sinon renvoie 0.
<Axe> : Nom de l'axe
Voir aussi
ICORRECTION
392
ICORRECTIONA
ICORRECTIONA
Fonction de compensation
Syntaxe
ICORRECTIONA (<Esclave>, <Matre>, <Source>, <Pos.matre>, <Pos.esclave>,)
Units
<Pos.matre>, <Pos.esclave> : unit utilisateur (Ex : mm, degr,
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<Pos.matre>, <Pos.esclave> : REAL
Description
Cette fonction permet de calculer et d'appliquer les compensations effectuer pour se situer au
point ad hoc.
L'esclave devra au pralable tre li un matre par une fonction d'arbre lectrique (GEARBOX),
de mouvement synchronis (MOVS) ou came (CAM) avant de lancer une compensation. Au
mouvement de synchronisation normal de l'esclave, on superpose les mouvements ncessaire
pour avoir la position matre = <Pos.matre> et la position esclave = < Pos.esclave >.
Les fonctions STOP et STOPS permettent d'arrter la compensation
<Esclave>, <Matre> : Nom d'axe
<Source> permet de slectionner la source du <Matre>
Remarque
Cette instruction tient compte des valeurs de SLAVEOFFSET et MASTEROFFSET actuelles.
La fonction est bloquante si le buffer de mouvement est plein.
Un ICORRECTIONA est appliqu de la mme faon qu'un MASTEROFFSET et qu'un
SLAVEOFFSET (soumis aux mmes rgles sur arrt du mouvement ...)
Une squence MOVS + ICORRECTIONA ne produira pas de dcalage physique (lors de
l'application du ICORRECTIONA, car il n'y a plus de mouvement dans le buffer).
Une squence ICORRECTIONA + MOVS ne produira pas de dcalage physique (lors de
l'application du ICORRECTIONA, car le MOVS n'est pas encore dans le buffer de mouvement).
Une squence MIOVS +ICORRECTIONA + MOVS produira l'effet escompt.
Exemple
WHILE (NOT Fin_Mvt)
MOVS(Axe_X,Axe_Y, SRC_AXE,100.0,50.0,0.0,.0.0) ;
MOVS(Axe_X,Axe_Y, SRC_AXE,200.0,250.0,0.0,.0.0) ;
MOVS(Axe_X,Axe_Y, SRC_AXE,60.0,60.0,0.0,.0.0) ;
(* Recalage automatique par risque de perte de point avec des rapports
non finis *)
ICORRECTIONA(Axe_X,Axe_Y, SRC_AXE,360.0,360.0) ;
END_WHILE ;
Voir aussi
CORRECTION_S
ICORRECTION
IF THEN ELSE ELSIF END_IF
393
Printed Documentation
Syntaxe
IF <expression BOOL> THEN
<instructions>
ELSIF <expression BOOL> THEN
<instructions>
ELSE
<instructions>
END_IF;
Types accepts
<Expression> : BOOL
Description
L'nonc IF n'est utilisable qu'en ST. L'excution des instructions est conditionne par la valeur de
l'expression boolenne. Les noncs ELSIF et ELSE sont optionnels. Il peut y avoir plusieurs
noncs ELSIF.
Exemple ST
(* condition simple *)
IF bCond THEN
Q1 := IN1;
Q2 := TRUE;
END_IF;
(* slection binaire *)
IF bCond THEN
Q1 := IN1;
Q2 := TRUE;
ELSE
Q1 := IN2;
Q2 := FALSE;
END_IF;
(* conditions numres *)
IF bCond1 THEN
Q1 := IN1;
ELSIF bCond2 THEN
Q1 := IN2;
ELSIF bCond3 THEN
Q1 := IN3;
ELSE
Q1 := IN4;
END_IF;
Voir aussi
CASE
WHILE
REPEAT
FOR
EXIT
INIT_S
Syntaxe
<Q> := INIT_S (0)
394
Type accept
<Q> : USINT
Description
Cette fonction retourne l'tat de la tche d'initialisation :
Remarque
Cette fonction permet dans une tche systme de traiter le cas particulier de l'initialisation (viter de
relancer en boucle la tche d'initialisation).
INITGETCONTEXT
Retourne
xte
de la tche
le conte
d'Initialisation
Syntaxe
<Q> := INITGETCONTEXT (0)
Type accept
<Q> : USINT
Description
Cette fonction retourne le contexte de la tche d'initialisation :
INITSETRESULT
Syntaxe
INITSETRESULT (<EN>)
Type accept
<EN> : USINT
Description
Cette fonction force le rsultat de retour de la tche d'initialisation :
0 : OK
2-255 : erreur spcifique, retourne telle quelle sur l'afficheur (erreur 64-xx)
Exemple
Defaut:=0;
(* ---------------- Manque alimentation 24V pupitre -------------------*)
If (Inp(Etat24VPupitre)=0) Then
Defaut:=2;
End_If;
(* -------------- Pas de communication avec le pupitre ----------------*)
If (MODBUSERROR(1)<>0) Then
Defaut:=3;
395
Printed Documentation
End_If;
InitSetResult(Defaut);
Remarque
Une tche d'initialisation doit imprativement faire appel cette fonction.
INP
Syntaxe
<Q> := INP (<Entre>)
Types accepts
<Entre> : tIObitIn
<Q> : BOOL
Description
Cette fonction donne l'tat d'une entre TOR.
<Entre> : Nom d'une entre de type BOOL
Remarque
Cette fonction s'utilise dans une tche avec gestion des E/S en direct
Exemple ST
Etat_Entree_MPC_1 := INP(Entree_MPC_1) ;
Voir aussi
INPB
INPW
INPB
Syntaxe
<Q> := INPB (<Entres>)
Types accepts
<Entre> : tIObyteIn
<Q> : BYTE
Description
Cette fonction retourne l'tat d'un bloc de 8 entres TOR.
<Entres> : Nom d'un bloc d'entre de type BYTE
Remarque
Cette fonction s'utilise dans une tche avec gestion des E/S en direct
Exemple ST
Etat_Entree_MPC_1a8 := INPB(Entree_MPC_1a8) ;
Voir aussi
396
INP
INPW
INPW
Syntaxe
<Q> := INPW (<Entres>)
Types accepts
<Entre> : tIOwordIn
<Q> : WORD
Description
Cette fonction retourne l'tat d'un bloc de 16 entres TOR.
<Entres> : Nom d'un bloc entre de type WORD
Remarque
Cette fonction s'utilise dans une tche avec gestion des E/S en direct
Exemple ST
Etat_Entree_MPC_1a16 := INPW (Entree_MPC_1a16) ;
Voir aussi
INP
INPB
INSERT
Motion Studio ne met pas en application la fonction INSERT.
INT
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
INTERPOLATE
Syntaxe
INTERPOLATE (<Axe_virt >, < Param >)
Types accepts
<Axe_virt> : tPeripheral
<Param>: tInterpolateParam
Description
Cette fonction dmarre une interpolation sur un axe virtuel suivant des paramtres dfinissant
le modle gomtrique.
<Axe_virt> : nom de l'axe virtuel
<Param>: description du modle gomtrique
397
Printed Documentation
INTERPOLATE2D
Syntaxe
INTERPOLATE2D (<Axe_virt >, < Axe_ X>, < Axe_ Y>)
Types accepts
<Axe_virt> : tPeripheral
<Axe_ X>, <Axe_ Y> : : tPeripheral
Description
Cette fonction dmarre une interpolation 2 dimensions.
<Axe_virt> : Nom de l'axe virtuel
<Axe_ X>, <Axe_ Y> : Noms des axes
INTERPOLATE3D
Syntaxe
INTERPOLATE3D (<Axe_virt >, < Axe_ X>, < Axe_ Y>, < Axe_ Z>)
Types accepts
<Axe_virt> : tPeripheral
<Axe_ X>, <Axe_ Y>, <Axe_ Z> : tPeripheral
Description
Cette fonction dmarre une interpolation 3 dimensions.
<Axe_virt> : Nom de l'axe virtuel
<Axe_ X>, <Axe_ Y>, <Axe_ Z> : Noms des axes
INTP
Partie en
tire
Syntaxe
<Q> := INTP (<Expression>)
Type accept
<Expression> : REAL
Description
Cette fonction restitue la partie entire de <Expression>.
Remarque
Cette fonction restitue une valeur relle.
Voir aussi
FRAC
IOFAULT_S
Syntaxe
<Q> := IOFAULT_S (0)
Types accepts
398
<Q> : BOOL
Description
Cette fonction indique si les entres / sorties sont en surcharges
Remarque
L'tat du flag est remis 0 aprs l'excution de l'instruction
JMP
Effectuer un saut
Syntaxe
JMP Etiquette
Description
La fonction JMP permet de faire un saut une tiquette.
Remarques
Un saut une tiquette droute l'excution du programme aprs l'tiquette spcifie.
Les sauts et les tiquettes ne sont pas disponibles en ST.
En FBD, un saut est reprsent pat le symbole ">>" suivi par le nom de l'tiquette de destination.
Le flux en entre du symbole ">>" doit tre connect une variable boolenne qui conditionne le
branchement.
Le saut n'est excut que si le flux en entre est TRUE.
En LD, le symbole ">>", suivi par le nom d'une tiquette, finit une chelle.
Le saut est excut si le flux est TRUE.
En IL, les instructions JMP, JMPC, JMPCN et JMPNC spcifient des oprations de saut.
La destination du saut est l'oprande de l'instruction.
Attention
Les sauts en arrire peuvent crer des boucles infinies et bloquer le cycle.
Exemple FDB
(* Dans cet exemple, le bloc TON n'est pas appel si bEnable = TRUE *)
Exemple LD
399
Printed Documentation
(* Dans cet exemple, la seconde chelle n'est pas value si IN1 = TRUE
*)
Exemple IL
Les instructions suivantes sont disponibles:
JMP
Branchement inconditionnel
JMPC
JMPCN
Start: LD
JMPC
LD
ST
JMP
IN1
TheRest
IN2
Q2
TheEnd
(*
(*
(*
(*
TheRest: LD IN3
ST Q3
TheEnd:
Voir aussi
RETURN
JMPC
Voir JMP
JMPCN
Voir JMP
LD
Voir Assignation
LDN
Voir Assignation
LE - Comparaison (langage IL)
Voir Infrieur ou gal
LEFT
Syntaxe
<Q> := LEFT (<IN>, <NBC>)
400
Types accepts
<IN> : STRING
<NBC> : UINT
<Q> : STRING
Description
Cette fonction retourne les <NBC> caractres de gauche d'une chane.
<IN> est la chane d'o les caractres sont extraire
<NBC> est le nombre de caractres extraire
<Q> est la chane contenant les <NBC> premiers caractres de <IN>.
Remarques
En LD, le flux d'entre (EN) conditionne l'opration, et le flux est inchang en sortie.
En IL, la premire entre doit tre charge dans le rsultat courant avant l'appel de la fonction.
La seconde entre est l'oprande de la fonction.
Exemple ST
Q := LEFT (IN, NBC);
Exemple FBD
Exemple LD
(* La fonction est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD
IN
LEFT NBC
ST
Q
Voir aussi
+
MLEN
DELETE
INSERT
FIND
REPLACE
RIGHT
MID
LEN
401
Printed Documentation
Syntaxe
<NBC> := LEN (<IN>)
Types accepts
<IN> : STRING
<NBC> : INT
Description
Cette fonction retourne le nombre de caractres d'une chane.
<IN> est la chane de caractres
<NBC> est le nombre de caractres dans la chane. 0 si la chane est vide
Langage ST
NBC := LEN(IN);
Langage FBD
Langage LD
(* La fonction est appele si EN = TRUE *)
(* ENO est gal EN *)
Langage IL
Op1: LEN IN
ST NBC
Voir aussi
+
FIND
DELETE
INSERT
REPLACE
LEFT
RIGHT
MID
LIMIT
Syntaxe
<Q> := LIMIT (<IMIN>, <IN>, <IMAX>)
Types accepts
<Q>, <IMIN>, <IN>, <IMAX> : ANY_NUM
402
Description
Cette function permet de borner une valeur entire entre deux limites.
<IMIN> est la borne infrieure
<IN> est la valeur d'entre
<IMAX> est la borne suprieure
<Q> est la valeur de retour : IMIN si IN < IMIN; IMAX si IN > IMAX; IN dans les autres cas
Remarques
En LD, le flux d'entre (EN) conditionne l'opration, et le flux est inchang en sortie.
En IL, la premire entre doit tre charge dans le rsultat courant avant l'appel de la fonction.
Les autres entres sont les oprandes de la fonction, spars par une virgule.
Exemple ST
Q := LIMIT (IMIN, IN, IMAX);
Exemple FDB
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD
IMIN
LIMIT IN, IMAX
ST
Q
Voir aussi
MIN
MAX
MOD
403
Printed Documentation
ODD
LN
Logarithme de base e
Syntaxe
<Q> := LN (<IN>)
Types accepts
(<IN>) : REAL
(<Q>) : REAL
Description
Cette fonction restitue le logarithme naturel (base e) de <IN>.
L'argument <IN> doit tre une expression numrique valide.
La valeur retourne est de type rel.
Remarque
En langage IL, la valeur d'entre doit tre charge dans le rsultant courant avant l'appel de la
fonction.
Exemple ST
Q :=LN (IN) ;
Exemple FBD
Exemple LD
(*La fonction est excute seulement si EN est TRUE*)
(*ENO a la mme valeur que EN*)
Exemple IL
Op1: LD IN
LN
ST Q
Voir aussi
EXP
LOADCAM
Syntaxe
LOADCAM (<Esclave>,<Matre>,<Source>, <Ncame>, <Absolu>, <Reference>, <Mono-coup>,
<Rversible>, <DirectionPositive>, <GainMatre>, <GainEsclave>, <Ncame suivante>, <Ncame
prcdente>)
Types accepts
404
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<Ncame> : UINT
<Absolu> : BOOL
<Reference> : tCam
<Mono-coup> : BOOL
<Rversible> : BOOL
<DirectionPositive> : USINT
<GainMatre> : REAL
<GainEsclave> : REAL
<Ncame suivante> : UINT
<Ncame prcdente> : UINT
Description
Cette fonction charge une came en mmoire
<Esclave> : Nom de l'axe esclave o est effectue la came
<Matre> : Nom de l'axe matre
<Source> permet de slectionner la source du <Matre>
<Ncame> : numro de came utilisateur (1 127)
<Absolu> : 1 indique came absolue.
<Reference> : Nom de la came
<Mono-coup> : 1 cette came n'est pas reboucle sur elle-mme
<Rversible> : Indique si l' <Esclave> doit suivre le <Maitre> dans les deux sens.
Rentrez la valeur 0 pour une came non rversible : si le matre se dplace l'inverse de
son sens normal donn par <DirectionPositive>, l'esclave s'arrte ; il repartira lorsque le
matre reprendra son sens normal et atteindra la position matre laquelle l'esclave s'tait
arrt.
Rentrez la valeur 1 pour une came rversible : l'esclave suit son profil de came quel que
soit le sens d'avance du matre.
0 : sens Indiffrent : embraye dans n'importe quel sens, en inversant la came pour suivre
l'esclave. Si on inverse le sens, le matre ET l'esclave sont inverss.
Ce mode permet galement d'embrayer n'importe position d'une came absolue.
1 : sens Ngatif :
Pour une came relative : le sens des positions matre est pris dans le sens d'un STTIM sur
le matre. Les points esclaves sont dans le sens d'un STTIP sur l'esclave
Pour une came absolue : le sens des positions matre et esclaves sont dans le sens d'un
STTIP sur les axes respectifs
On embraye la came que lorsque l'on rentre dans le dernier lment
2 : sens Positif :
Pour une came relative : le sens des positions matre est pris dans le sens d'un STTIP sur
le matre. Les points esclaves sont dans le sens d'un STTIP sur l
esclave
Pour une came absolue : le sens des positions matre et esclaves sont dans le sens d'
un
STTIP sur les axes respectifs
On embraye la came que lorsque l'on rentre dans le dernier lment
Syntaxe
405
Printed Documentation
Rentrez la valeur 0 pour une came non rversible : si le matre se dplace l'inverse de
son sens normal donn par <DirectionPositive>, l'esclave s'arrte ; il repartira lorsque le
matre reprendra son sens normal et atteindra la position matre laquelle l'esclave s'tait
arrt.
Rentrez la valeur 1 pour une came rversible : l'esclave suit son profil de came quel que
soit le sens d'avance du matre.
0 : sens Indiffrent : embraye dans n'importe quel sens, en inversant la came pour suivre
l'esclave. Si on inverse le sens, le matre ET l'esclave sont inverss.
Ce mode permet galement d'embrayer n'importe position d'une came absolue.
1 : sens Ngatif :
Pour une came relative : le sens des positions matre est pris dans le sens d'un STTIM sur
le matre. Les points esclaves sont dans le sens d'un STTIP sur l'esclave
Pour une came absolue : le sens des positions matre et esclaves sont dans le sens d'un
STTIP sur les axes respectifs
On embraye la came que lorsque l'on rentre dans le dernier lment
2 : sens Positif :
Pour une came relative : le sens des positions matre est pris dans le sens d'un STTIP sur
le matre. Les points esclaves sont dans le sens d'un STTIP sur l'esclave
Pour une came absolue : le sens des positions matre et esclaves sont dans le sens d'un
STTIP sur les axes respectifs
On embraye la came que lorsque l'on rentre dans le dernier lment
406
LOADCAMPOINT
Syntaxe
407
Printed Documentation
Syntaxe
LOCK (0)
Description
Cette fonction permet de forcer le squenceur n'excuter que le tche o se trouve le lock, les
autres tches sont suspendus jusqu' l'appel de l'instruction UNLOCK, l'arrt de la tche ou du
squenceur.
Logarithme de base 10
LOG
Syntaxe
<Q> := LOG (<IN>)
Types accepts
<Q>, <IN> :REAL
Description
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD IN
LOG
ST Q
Voir aussi
ABS
TRUNC
POW
408
SQRT
LT - Comparaison (langage IL)
Voir Infrieur
MASTEROFFSET
Syntaxe
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<Offset> : REAL
<Acclration> : REAL
Description
Cette instruction dcale dynamiquement la position du matre.
<Esclave>, <Matre> : Nom de l'axe
<Source> permet de slectionner la source du <Matre>
<Offset> : Valeur de l'offset appliquer
<Acclration> Acclration utilise pour appliquer l'offset.
Remarque
Le dcalage est appliqu directement si aucun mouvement n'est en cours ou si l'axe n'est pas
embray.
Cette fonction est principalement utilise dans une came absolue.
Voir aussi
MASTEROFFSET_S
MASTEROFFSET_S
Syntaxe
<Q> := MASTEROFFSET_S (<Esclave>, <Matre>, <Source>)
Unit
<Q> : Distance dans l'unit utilisateur (Ex : mm, degr,...)
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<Q> : REAL
Description
409
Printed Documentation
Syntaxe
<Q> := MAX (<IN1>, <IN2>)
Units accepts
<IN1>, <IN2>, <Q> : ANY_NUM
Description
Cette fonction retourne le maximum de deux valeurs numriques:
Si IN1> IN2 alors Q = IN1 sinon Q = IN2
Remarques
En LD, le flux d'entre conditionne l'opration, et le flux est inchang en sortie.
En langage LD et FBD, plusieurs fonctions MAX sont disponibles suivant le type de donne.
En IL, le premier paramtre doit tre charg dans le rsultat courant avant l'appel de la fonction.
Le second paramtre est l'argument de la fonction.
Exemple ST
Q := MAX (IN1, IN2);
Exemple FBD
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD IN1
MAX IN2
ST Q
410
Voir aussi
MIN
LIMIT
MOD
ODD
MERGE
Dfinit l'enchanement
Syntaxe
MERGE (<Axe>, <MergeOn>)
Types accepts
<Axe> : tPeripheral
<MergeOn> : UINT
Description
Cette instruction est utilise pour activer ou dsactiver l'enchanement des mouvements
conscutifs.
<Axe> : Nom de l'axe
<MergeOn> "1" permet d'activer le MERGE et "0" arrte le MERGE.
L'instruction MERGE agit lors de l'entre dans la partie dclration d'un mouvement.
Lorsque le MERGE est actif et qu'un autre mouvement peut tre raccord, la dclration n'est pas
ralise et le raccord est alors effectu.
Remarque
MERGE(Axe_X,1);
TRAJA(Axe_X,1000.0,500.0,1000.0,1000.0); (* Mouvements enchans sans *)
TRAJA(Axe_X,1500.0,200.0,1000.0,1000.0); (* passage par une vitesse nulle
*)
411
Printed Documentation
MERGE(Axe_X,0);
TRAJA(Axe_X,1800.0,700.0,1000.0,1000.0); (* passage par une vitesse nulle
la position 1500 *)
MID
Motion Studio ne met pas en application la fonction MID.
MIN
Syntaxe
<Q> := MIN (<IN1>, <IN2>)
Units accepts
<IN1>, <IN2>, <Q> : ANY_NUM
Description
Cette fonction retourne le maximum de deux valeurs numriques:
Si IN1< IN2 alors Q = IN1 sinon Q = IN2
Remarques
En LD, le flux d'entre conditionne l'opration, et le flux est inchang en sortie.
En langage LD et FBD, plusieurs fonctions MIN sont disponibles suivant le type de donne.
En IL, le premier paramtre doit tre charg dans le rsultat courant avant l'appel de la fonction.
Le second paramtre est l'argument de la fonction.
Exemple ST
Q := MIN (IN1, IN2);
Exemple FBD
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD IN1
MIN IN2
ST Q
Voir aussi
MAX
LIMIT
412
MOD
ODD
Division (langage IL)
MOD
Syntaxe
<Q> = MOD (<IN1>, <IN2>)
Types accepts
MOTORPOWER_S
Syntaxe
<EtatPuissance> := MOTORPOWER_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<EtatAxe> : BOOL
Description
Cette fonction est utilise pour lire l'tat de la puissance directement sur le moteur.
Remarque
Cette fonction peut tre utilise tout moment pour voir si le moteur est aliment en puissance.
Exemple ST
Puissance := MOTORPOWER_S(Axe_x) ;
MOVA
Mouvement absolu
Syntaxe
MOVA (<Axe>, <Distance>)
Unit
<Distance> : unit utilisateur (Ex : mm, degr,
413
Printed Documentation
Types accepts
<Axe> : tPeripheral
<Distance> : REAL
Description
Cette instruction permet de dplacer l'axe une position absolue.
L'excution de l'instruction provoque le basculement vers la tche suivante.
La tche attend la fin du mouvement (condition MOVE_S=0) avant d'excuter la prochaine
instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe> : Nom de l'axe
Exemple ST
MOVA (Axe_X, 1200.0);
Voir aussi
MOVR
STTA
STTR
STTIP
STTIM
MOVE_S
MOVE
Voir Assignation
MOVE_S
Etat du mouv
ement
Syntaxe
<Q> := MOVE_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction indique si l'axe est en mouvement (trajectoire simple ou mouvement synchronis).
<Axe> : Nom de l'axe
Si l'axe est en mode non asservi (AXIS OFF), l'instruction MOVE_S = 0.
Si l'axe est en mode asservi, MOVE_S est gale 0 si les 4 points suivants sont vrais :
Le mouvement de positionnement (STTA, TRAJ
thorique termine).
Dans le cas d'un axe esclave li par une synchronisation (arbre lectrique, mouvement
synchronis, mouvement came) : le lien doit avoir t coup.
414
) est vide.
Mouvement relatif
Syntaxe
MOVR (<Axe>, <Distance>)
Unit
<Distance> : unit utilisateur (Ex : mm, degr,
Types accepts
<Axe> : tPeripheral
<Distance> : REAL
Description
Cette instruction permet de dplacer l'axe une position relative.
L'excution de l'instruction provoque le basculement vers la tche suivante.
La tche attend la fin du mouvement (condition MOVE_S=0) avant d'excuter la prochaine
instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe> : Nom de l'axe
Exemple
MOVR (Axe_X, 1200.0);
Voir aussi
MOVA
STTA
STTR
STTIP
STTIM
MOVE_S
MOVS
Mouvement synchronis
Syntaxe
MOVS( <Esclave>,<Matre>,<Source>, <DistanceMatre>, <DistanceEsclave>,
<DistanceAcclration>, <DistanceDclration>)
Units
<DistanceMatre>, <DistanceEsclave> : unit utilisateur (Ex : mm, degr, )
<DistanceAcclration>, <DistanceDclration> : unit utilisateur (Ex : mm, degr,
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<DistanceMatre>, <DistanceEsclave>, <DistanceAcclration>, <DistanceDclration> : REAL
Description
415
Printed Documentation
Cette instruction sont utilise pour lier un axe esclave un axe matre pendant une certaine
distance de l'axe matre avec des phases d'acclration et de dclration sur l'axe esclave.
Si le buffer est plein, la tche se bloque jusqu' ce qu'une place se libre dans le buffer.
<Esclave>,<Matre> : Nom de l'axe
<Source> permet de slectionner la source du <Matre>
Les <DistanceAccllration> et <DistanceDclration> sont exprimes en distance sur l'axe
matre et peuvent tre nulles.
Exemple ST
(* Coupe au vol *)
ORDER(Axe_X,0); (* initialise le n+1 du prochain mouvement envoy dans
le buffer *)
MOVS(Axe_X, Axe_Y, SRC_AXE, 0.8, 0.4, 0.8, 0.0); (* Acclration
mouvement 1 *)
MOVS(Axe_X, Axe_Y, SRC_AXE, 0.2, 0.2, 0.0, 0.0); (* Phase synchro
mouvement 2 *)
MOVS(Axe_X, Axe_Y, SRC_AXE, 0.8, 0.4, 0.0, 0.8); (* Dclration
mouvement 3 *)
MOVS(Axe_X, Axe_Y, SRC_AXE, 0.8, 0.2, -1.0, 0.5); (* Retour mouvement 4
*)
WAIT (ORDER_S(Axe_X)>=2); (* Attente fin excution du mouvement 2 *)
OUT(Couteau,1); (*Activation du couteau *)
WAIT (ORDER_S(Axe_X)>=3); (*Attente fin excution du mouvement 3 *)
OUT(Couteau,0); (*Arrt du couteau *)
Voir aussi
CAM
CAMBOX
GEARBOX
MUL
Voir Multiplication
MULTITASKARRAY
Syntaxe
MULTITASKARRAY (<Mode>)
Types accepts
<Mode> : USINT
Description
Cette fonction permet de modifier le mode d'accs aux donnes d'un tableau :
Contacter le support technique pour utiliser cette fonction.
MUX
Motion Studio ne met pas en application la fonction MUX.
NE - Comparaison (langage IL)
Voir Diffrent
NEXTTASK
416
Syntaxe
NEXTTASK (0)
Description
Cette Instruction permet de basculer immdiatement vers la tche suivante.
NEG
Voir Ngation
NOT
Oprateur complment
Syntaxe
<Q> := NOT <IN>
Types accepts
<IN> : ANY_BIT
Description
Cette fonction effectue une inversion logique de l'entre.
Remarque
"NOT" est dfini par la norme IEC61131-3.
Exemple ST
Q := IN;
Exemple FBD
(* utilisation du bloc "NOT" *)
Exemple LD
(* Contact invers: Q = IN1 AND NOT IN2 *)
Exemple IL
417
Printed Documentation
Oprateur OU
Syntaxe
<Q> := <IN1> OR <IN2>
Types accepts
<IN1> : ANY_BIT
<IN2> : ANY_BIT
<Q> : ANY_BIT
Description
Cette fonction effectue un OU binaire entre deux expressions et retourne une valeur du type de
l'oprande.
<IN1> et <IN2> doivent tre du mme type.
Remarque
"OR" est dfini par la norme IEC61131-3.
Exemple ST
Q := IN1 OR IN2;
Q := IN1 OR IN2 OR IN3;
Exemple FBD
Exemple LD
418
(* contacts en parallle *)
Exemple IL
Op1: LD IN1
OR IN2
ST Q
(* Q = IN1 OR IN2 *)
Op2: LD IN1
ORN IN2
ST Q
(* Q = IN1 OR (NOT IN2) *)
Voir aussi
AND
XOR
NOT
ORDER
mouvement
Numro d'ordre du
Syntaxe
ORDER (<Axe>, <Expression> )
Types accepts
<Axe> : tPeripheral
<Expression> : UDINT
Description
Cette instruction fixe le numro d'ordre du prochain mouvement <Expression> + 1.
<Axe> : Nom de l'axe
Remarque
Cette instruction peut tre utilise avec la fonction ORDER_S.
A l'initialisation, un ORDER (0) est effectu
Exemple ST
ORDER (Axe_X, 0);
MOVS (Axe_X, Axe_Y, SRC_AXE, 50.0, 100.0, 10.0, 10.0) ;
NumMouv := ORDER_S(Axe_X); (* 'Rsultat : NumMouv=1 *)
Voir aussi
ORDER_S
ORDER_S
Syntaxe
<Q> := ORDER_S (<Axe>)
Types accepts
419
Printed Documentation
<Axe> : tPeripheral
<Q> : UDINT
Description
Cette instruction lit le numro d'ordre du mouvement en cours d'excution.
<Axe> : Nom de l'axe
Remarque
Cette instruction peut tre utilise avec la fonction ORDER.
Exemple ST
ORDER (Axe_X, 0);
MOVS (Axe_X, Axe_Y,SRC_AXE, 50.0,100.0,10.0,10.0) ;
NumMouv := ORDER_S(Axe_X); (* 'Rsultat : NumMouv=1 *)
Voir aussi
ORDER
dernier
u
Numromouvement
d'ordre d
ORDER_T
Syntaxe
<Q> := ORDER_T (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : UDINT
Description
Cette fonction retourne le numro d'ordre du dernier mouvement dpos dans le buffer de
mouvement.
<Axe> : Nom de l'axe
Voir aussi
ORDER_S
Oprateur OU avec l'entre 2 inverse
ORN
Voir OR avec l'entre 2 inverse
OUTP
Syntaxe
OUTP (<Sortie>, <Expression>)
Types accepts
<Sortie> : tIObitOut
<Expression> : BOOL
Description
Cette fonction charge l'tat logique une sortie TOR.
<Sortie> : Nom d'un sortie de type BOOL
420
Remarque
L'utilisation de cette fonction se fait avec une tche avec gestion des E/S en direct
Exemple ST
OUTP (Sortie_MPC_1, 1) ;
Voir aussi
INP
INPB
INPW
OUTB
OUTW
Lecture de l'tat de la sortie physique
OUTP_S
Syntaxe
<Q> := OUTP_S (<Sortie>)
Types accepts
<Sortie> : tIObitOut
<Q> : BOOL
Description
Cette fonction lit l'tat d'une sortie TOR.
< Sortie > : Nom d'une sortie de type BOOL
Remarque
L'utilisation de cette fonction se fait avec une tche avec gestion des E/S en direct
Exemple ST
Etat_Sortie_MPC_1 := OUTP_S(Sortie _MPC_1) ;
Voir aussi
OUTB
OUTW
OUTB
Syntaxe
OUTB (<Sorties>, <Expression>)
Types accepts
<Sorties> : tIObyteOut
<Expression> : BYTE
Description
Cette fonction charge les tats logiques un bloc de 8 sorties TOR.
<Sorties> : Nom d'un bloc de sorties de type BYTE
Remarque
421
Printed Documentation
L'utilisation de cette fonction se fait avec une tche avec gestion des E/S en direct
Exemple ST
OUTB (Sortie_MPC_1a8, 32) ;
Voir aussi
INP
INPB
INPW
OUTP
OUTW
Lecture de l'tat des sorties physiques
OUTB_S
Syntaxe
<Q> := OUTB_S (<Sorties>)
Types accepts
<Sorties> : tIObyteOut
<Q> : BYTE
Description
Cette fonction lit l'tat d'un bloc de 8 sorties TOR.
<Sorties> : Nom d'un bloc de sorties de type BYTE
Remarque
L
utilisation
stion
des E/S
deen
cette
direct
fonction se fait avec une tche avec
Exemple ST
Etat_Sorties_MPC_1a8 := OUTB_S(Sorties_MPC_1a8) ;
Voir aussi
OUTP
OUTW
OUTW
Syntaxe
OUTB (<Sorties>, <Expression>)
Types accepts
<Sorties> : tIOwordOut
<Expression> : WORD
Description
Cette fonction charge les tats logiques un bloc de 16 sorties TOR.
<Sorties> : Nom d'un bloc de sorties de type WORD
Remarque
L'utilisation de cette fonction se fait avec une tche avec gestion des E/S en direct
422
Exemple ST
OUTB (Sortie_MPC_1a16, 2756) ;
Voir aussi
INP
INPB
INPW
OUTP
OUTB
Lecture de l'tat des sorties physiques
OUTW_S
Syntaxe
<Q> := INPW (<Sorties>)
Types accepts
<Sorties> : tIOwordOut
<Q> : WORD
Description
Cette fonction lit l'tat d'un bloc de 16 sorties TOR.
<Sorties> : Nom d'un bloc de sorties de type WORD
Remarque
L'utilisation de cette fonction se fait avec une tche avec gestion des E/S en direct
Exemple ST
Etat_Sorties_MPC_1a16 := OUTW_S( Sorties_MPC_1a16) ;
Voir aussi
OUTP_S
OUTB_S
POS
Position atteindre
Syntaxe
POS(<Axe>, <Expression>)
Unit
<Expression> : unit utilisateur (Ex : mm, degr,
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette fonction fixe la position atteindre dans l'unit choisie.
Cette fonction est utilise pour changer la position finale en cours de mouvement.
La position peut tre modifie tout moment.
Le signe indique le sens dans lequel on doit atteindre la position
423
Printed Documentation
(*
(*
(*
(*
Dpart de l'axe *)
Attente Cellule *)
Arrt 50 mm aprs le capteur *)
Attente arrt de l'axe *)
Voir aussi
ACC
DEC
VEL
POS_S
Position Relle
Syntaxe
<Expression> := POS_S(<Axe>)
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette fonction retourne la position relle de l'axe.
On peut ainsi obtenir l'image en temps rel de la position de l'axe.
<Axe> : Nom de l'axe
Exemple
STTA (Axe_X, 100.0);
(* Dpart de l'axe *)
WAIT (POS_S(Axe_X)>50.0)); (* Attente que la position soit > 50 *)
OUTP (Verin,1) ;
Voir aussi
VEL_S
POS_T
Position atteindre
Syntaxe
<Expression> := POS_T(<Axe>)
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
424
Syntaxe
<Expression> := POSAUX_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette fonction retourne la position auxiliaire de l'axe.
On peut ainsi obtenir l'image en temps rel de la position auxiliaire de l'axe.
<Axe> : Nom de l'axe
Voir
POS_S
POSERROR_S
Syntaxe
<Q> := POSERROR_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : USINT
Description
Cette fonction indique qu'un mouvement n'tait pas gnrable (ex diminution de pente de
dclration pendant la dclration, position d'arrt dpass pour un POS
).
Le gnrateur de trajectoire n'a pu respecter le mouvement demand.
<Axe> : Nom de l'axe
R
Syntaxe
<Q> := R (<Reset>)
Types accepts
425
Printed Documentation
<Reset> : BOOL
<Q> : BOOL
Description
Cette fonction permet de forcer une variable boolenne FALSE.
Remarques
Les oprateurs S et R sont disponibles en IL.
En LD, ils sont reprsents par les bobinages (S) et (R).
En FBD, vous pouvez galement utiliser les bobinages (S) et (R), mais les blocs RS et SR sont
galement disponibles.
Les oprations S et R n'ont pas d'quivalence directe en ST.
Exemple ST
Non disponible
Exemple FBD
Utilisez les blocs fonctionnels RS et SR
Exemple LD
(* exemple d'utilisation d'un bobinage "R" *)
Exemple IL
Op1: LD Reset
R Q
(* Q est forc FALSE si RESET = TRUE *)
(* aucune action si RESET = FALSE *)
Voir aussi
S
RS
SR
R_TRIG
Syntaxe
R_TRIG (<CLK>)
R_TRIG.Q
Types accepts
<CLK> : BOOL
<Q> : BOOL
Description
426
Exemple ST
(* R_TRIG1 est une instance dclare du bloc R_TRIG *)
R_TRIG1(CLK:=IN_BOOL);
Q_BOOL:=R_TRIG1.Q;
Exemple FBD
Exemple LD
Exemple IL
(* F_TRIG est une instance dclare du bloc F_TRIG *)
Op1: CAL R_TRIG1 (CLK:=IN_BOOL)
LD R_TRIG1.Q
ST Q_BOOL
Voir aussi
F_TRIG
RAMOK_S
Syntaxe
<Q> := RAMOK_S (0)
Types accepts
<Q> : USINT
Description
Cette fonction indique l'tat de la mmoire BBM (RAM) au dmarrage du MPC :
0 : indique que la configuration tait incorrecte au dmarrage (donc si on est maintenant en
train d'excuter les tches, elle a du tre recharge).
1 : indique que la configuration en BBM tait correcte au dmarrage (par contre il peut y
avoir des priphriques qui ne sont pas prsents sur le bus Ethercat).
2 : indique que la configuration a t restaure.
Voir aussi
427
Printed Documentation
RAMTOFLASH
CLEARFLASH
RAMTOFLASH
Syntaxe
RAMTOFLASH (0)
Description
Cette fonction copie le contenue de la mmoire BBM (RAM) dans la mmoire FLASH du MPC
Voir aussi
CLEARFLASH
FLASHOK_S
READCAM
Syntaxe
<TableauCame> := READCAM (<Came>)
Types accepts
<Came> : tCam
<TableauCame> : tCamTable
Description
Cette fonction charge une came dans un tableau de came, ce qui permet de la modifier.
<Came> : Nom de la came
<TableauCame> :Tableau de came
Voir aussi
WRITECAM
REAL
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
REALTOFIX
Syntaxe
<Q> := REALTOFIX (<IN>, <PREC>, <INV>)
Type accepts
<IN> : REAL
<PREC> : USINT
<INV> : BOOL
Description
Cette fonction convertit un rel en nombre virgule fixe (UDINT) avec la prcision indique.
<PREC> est la prcision d'un nombre dcimal.
428
<INV> TRUE, permet d'inverss le poids fort (16bits) et le poids faible (16bits) du rsultat de
REALTOFIX
Langage ST
Valeur := REALTOFIX (1.23, 2, 0); (* Valeur = 123 *)
REG_S
Etat de la capture
Syntaxe
<Q> := REG_S (<Numro>)
Limite
<Numro> : entre 0 et 127
Types accepts
<Numro> : UINT
<Q> : Real
Description
Cette fonction indique si une capture de position a t effectue.
La valeur retourne n'est vraie qu'une fois par capture.
REG_S est remis automatiquement 0 lorsqu'il est lu.
Sur une relance d'une autre capture et si REG_S vaut 1 alors REG1_S est mis 0.
Exemple ST
(* Capture position relle du moteur sur front montant de l'entre 4 du
MPC lorsque l'axe est entre 10 et 20. *)
CAPTURE (1, Axe_X, SRC_AXE, Mpc_4, 1, W_NONE , 10.0, 20.0);
WAIT (REG_S(1) = 1);
(* Attente d'une capture *)
Position:= REGPOS_S(1); (* Position = valeur de la position lors de la
capture *)
Voir aussi
CAPTURE
CAPTURECANCEL
CAPTUREIMD
CAPTUREEVENT
REGPOS_S
REGPOS_S
capture
Valeur de la
Syntaxe
<Q> := REGPOS_S (<Numro>)
Limite
<Numro> : entre 0 et 127
Types accepts
<Numro> : UINT
<Q> : BOOL
Description
Cette fonction retourne la dernire position capture pour ce registre par l'excution de l'instruction
CAPTURE.
429
Printed Documentation
Exemple ST
(* Capture position relle du moteur sur front montant de l'entre 4 du
MPC lorsque l'axe est entre 10 et 20. *)
CAPTURE (1, Axe_X, SRC_AXE, Mpc_4, 1, W_NONE , 10.0, 20.0);
WAIT (REG_S(1) = 1);
(* Attente d'une capture *)
Position:= REGPOS_S(1); (* Position = valeur de la position lors de la
capture *)
Voir aussi
CAPTURE
CAPTURECANCEL
CAPTUREIMD
CAPTUREEVENT
REG_S
REPEAT
Boucle REPEAT
Syntaxe
REPEAT
<instructions>
UNTIL <expression>
END_REPEAT;
Types accepts
<expression> : BOOL
Description
Les instructions entre "REPEAT" et "UNTIL" sont excuts jusqu' ce que la valeur de l'expression
boolenne soit TRUE.
La condition est value aprs l'excution des noncs.
Les instructions sont excutes au moins une fois.
Remarques
Les instructions de boucle peuvent bloquer le cycle en une boucle infinie.
Exemple ST
iPos := 0;
REPEAT
MyArray[iPos] := 0;
iNbCleared := iNbCleared + 1;
iPos := iPos + 1;
UNTIL iPos = iMax
END_REPEAT;
Exemple FBD
Non disponible
Exemple LD
Non disponible
Exemple IL
430
Non disponible
Voir aussi
IF
WHILE
FOR
CASE
EXIT
REPLACE
Motion Studio ne met pas en application la fonction REPLACE.
RESTART
Redmarrage du systme
Syntaxe
RESTART (<Type>)
Type accept
<Type> : USINT
Description
Cette fonction permet de redmarrer le systme.
<Type> : "0" redmarre le MPC comme un redmarrage lectrique, "1" provoque l'arrt des
tches, la r-initialisation d'Ethercat et le redmarrage des tches.
Retourne la raison du dernier dmarrage
RESTART_S
Syntaxe
<Q> := RESTART (0)
Type accept
<Q> : USINT
Description
Cette fonction retourne la raison du dernier redmarrage.
RET
Voir RETURN
RETC
Voir RETURN
RETCN
Voir RETURN
RETURN
431
Printed Documentation
Syntaxe
RETURN
Description
Cette instruction "RETURN" indique un saut la fin du programme.
En FBD et en LD, le symbole "<RET>" est disponible. Le saut est conditionn par le flux boolen
gauche.
En IL, les instructions RET, RETC et RETCN peuvent tre utilises.
Quand il est utilis dans une action d'tape SFC, l'instruction RETURN correspond un saut vers
la fin du bloc d'action.
Exemple ST
IF NOT bEnable THEN
RETURN;
END_IF;
(* le reste du programme est ignor si bEnabled = FALSE... *)
Exemple FBD
(* Dans cet exemple, le bloc TON n'est pas valu si bIgnore = TRUE *)
Exemple LD
(* La seconde chelle n'est pas value si ENABLE = FALSE *)
Exemple IL
Instructions disponibles:
RET Saut inconditionnel
RETC Saut si le rsultat courant est TRUE
RETCN Saut si le rsultat courant est FALSE
Start: LD
IN1
RETC
LD
IN2
ST .Q2
RET
LD
IN3
ST
Q3
(*
(*
(*
(*
(*
432
Exemple LD
(* La fonction est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD
IN
RIGHT NBC
ST
Q
Voir aussi
+
MLEN
DELETE
INSERT
FIND
REPLACE
LEFT
MID
ROL
433
Printed Documentation
Syntaxe
<Q> := ROL ( <IN>, <NBR> )
Types accepts
<IN>, <Q> : ANY_BIT
<NBR> : UNIT
Description
Cette fonction permet de faire une rotation gauche les bits d'une variable de type ANY_BIT.
Remarques
En langage LD et FBD, plusieurs fonctions ROL sont disponibles suivant le type de donne.
En LD, le flux d'entre conditionne l'opration, et le flux est inchang en sortie.
En IL, le premier paramtre doit tre charg dans le rsultat courant avant l'appel de la fonction. Le
second paramtre est l'argument de la fonction.
Exemple ST
Q := ROL (IN, NBR);
Exemple FBD
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD IN
ROL NBR
ST Q
Voir aussi
ROR
SHL
SHR
ROR
434
Syntaxe
<Q> := ROR (<IN>, <NBR>)
Types accepts
<IN>, <Q> : ANY_BIT
<NBR> : UNIT
Description
Cette fonction permet de faire une rotation droite les bits d'une variable de type ANY_BIT.
Remarques
En langage LD et FBD, plusieurs fonctions ROR sont disponibles suivant le type de donne.
En LD, le flux d'entre conditionne l'opration, et le flux est inchang en sortie.
En IL, le premier paramtre doit tre charg dans le rsultat courant avant l'appel de la fonction. Le
second paramtre est l'argument de la fonction.
Exemple ST
Q := ROR (IN, NBR);
Exemple FBD
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD IN
ROR NBR
ST Q
Voir aussi
ROL
SHL
SHR
RS
Syntaxe
435
Printed Documentation
RESET
Q
prec
Exemple ST
(* MyRS est une instance dclare du bloc RS *)
MyRS (SET, RESET1);
Q := MyRS.Q;
Exemple FBD
ExempleLD
Exemple IL
(* MyRS est une instance dclare du bloc RS *)
Op1: CAL MyRS(SET, RESET1)
LD MyRS.Q
ST Q
Voir aussi
R(eset)
S(et)
SR
RUN
436
Syntaxe
RUN (<Tche >)
Type accept
< Tche > : tGroup
Description
Cette fonction est utilise pour lancer une tche stoppe (ex : tche dclare en dmarrage
manuel).
Cette fonction redmarre une tche suspendue
< Tche > : Nom de la tche
Remarque
Cette fonction n'a pas d'effets sur une tche dj lance.
Exemple ST
Wait (Inp(Puissance)=1) ;
RUN (Couteau) ;
Wait (Inp(Puissance)=0) ;
HALT (Couteau) ;
Voir aussi
CONTINUE
HALT
SUSPEND
S
Syntaxe
<Q> := S (<Set>)
Types accepts
<Set> : BOOL
<Q> : BOOL
Description
Cette fonction permet de forcer une variable boolenne TRUE.
Remarques
Les oprateurs S et R sont disponibles en IL.
En LD, ils sont reprsents par les bobinages (S) et (R).
En FBD, vous pouvez galement utiliser les bobinages (S) et (R), mais les blocs RS et SR sont
galement disponibles.
Les oprations S et R n'ont pas d'quivalence directe en ST.
437
Printed Documentation
Exemple ST
Non disponible
Exemple FBD
Utilisez les blocs fonctionnels RS et SR
Exemple LD
(* exemple d'utilisation d'un bobinage "S" *)
Exemple IL
Op1: LD Set
S Q
(* Q est forc TRUE si SET = TRUE *)
(* aucune action si SET = FALSE *)
Voir aussi
R
RS
SR
SECURITY
Syntaxe
SECURITY (<Axe>, <WatchDog>)
Type accept
<Axe>, <WatchDog> : UINT
Description
Cette fonction permet de dfinir le comportement des actions de scurits lors d"erreurs sur le
MPC.
<Axe> = TRUE active les scurits des axes : c'est--dire que les axes passent en mode non
asservis sur les dfauts suivants
<WatchDog> = TRUE active les scurits WatchDog du MPC ; c'est--dire que le chien de garde
s'ouvre sur les dfauts suivants :
1 dfaut variateur
438
Remarques
Le redmarrage du MPC provoque l'ouverture du chien de garde.
Le rarmement du chien de garde se fait par la fonction WATCHDOGON.
L'erreur de poursuite d'un axe n'ouvre pas sa sortie DRIVE_READY.
Le redmarrage du MPC ou un plantage interne passe toutes les E/S "0".
SECURITYFEMAX
Syntaxe
SECURITYFEMAX (<Axe>, <Droff>)
Types accepts
<Axe> : tPeripheral
<Droff> : UINT
Description
Cette fonction permet de la gestion Drive Ready d'un axe lors d'un dfaut d'erreur de poursuite
(E12).
<Axe> : Nom de l'axe
<Droff> : mettre 1 pour activer la gestion du dfaut, 0 pour la dsactiver
Remarque
Par dfaut la gestion de l'erreur de poursuite est active.
SEL
Motion Studio ne met pas en application la fonction SEL.
SPEED
Syntaxe
SPEED (<Axe>, <Expression>)
Unit
<Expression> en unit utilisateur
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette instruction force la consigne de vitesse.
<Axe> : Nom de l'axe
<Expression> contient la valeur appliquer.
Exemple ST
SPEED (Axe_X, 2300.00); (* Vitesse de 2300 tr/mn *)
Voir aussi
TORQUE
TORQUE_S
439
Printed Documentation
CURRENT
CURRENT_S
SPEED_S
SPEED_S
Syntaxe
<Q> := SPEED_S (<Axe>)
Unit
<Q> en unit utilisateur
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la vitesse courante.
<Axe> : Nom de l'axe
Voir aussi
TORQUE
TORQUE_S
CURRENT
CURRENT_S
SPEED
SETBITB
Modifie
d'une
variable
un bit
BYTE
Syntaxe
<Cible> := SETBITB (<Source>, <Numro>, <Expression>)
Limite
<Numro> doit tre entre 0 et 7
Types accepts
<Cible> : BYTE
<Source> : BYTE
<Numro> : USINT
<Expression> : BOOL
Description
Cette fonction modifie un bit d'une variable BYTE.
SETBITD
Syntaxe
<Cible> := SETBITD (<Source>, <Numro>, <Expression>)
Limite
<Numro> doit tre entre 0 et 31
440
Types accepts
<Cible> : DWORD
<Source> : DWORD
<Numro> : USINT
<Expression> : BOOL
Description
Cette fonction modifie un bit d'une variable DWORD.
Modifie un bit d'une variable WORD
SETBITW
Syntaxe
Type accept
<Axe> : tPeripheral
<Mode> : tBcleMode
<Ini_Val> : tModeInitVal
Description
Cette fonction permet de modifier le mode de fonctionnement d'un axe.
<Axe> : Nom de l'axe
<Mode> : Mode de fonctionnement de l'axe
<Ini_Val> : Choix de transition entre les diffrents modes
Voir aussi
GETMODE
SETINP
Syntaxe
SETINP (<Input>>, <Value>)
441
Printed Documentation
Type accept
<Input> : tIObitIn
<Value> : BOOL
Description
Cette fonction force l'tat d'une entre interne du MPC
<Input> : Entre modifier
<Value> : Valeur
Voir aussi
CAMBOX
CAMBOX_S
CAMBOXOUT
CAMBOXSEG
STARTCAMBOX
STOPCAMBOX
SETTASKEVENTLIST - Associe une liste d'vnement
Syntaxe
SETTASKEVENTLIST (<Tache>)
Type accept
< Tche > : tGroup
Description
Cette fonction permet d'associer une liste d'vnement utilisateur une tche.
<Tache> : Nom de la tche
Voir aussi
GETLASTSYSEVENT
GETSYSTEMEVENT
GETUSEREVENTPARAM
SIGNAL
SGN
Signe
Syntaxe
<Signe> := SGN (<Expression>)
Type accept
<Expression>, <Signe> : REAL
Description
Cette fonction retourne un rel gal -1 pour les nombres ngatifs, 1 pour les nombres positifs et 0
pour les nombres nuls.
Exemple
Signe :=SGN (-10.0) ; (* Rsultat : Singe = -1 *)
SHL
442
gauche
Dcalage des bits
Syntaxe
<Q> := SHL ( <IN>, <NBR> )
Types accepts
<IN>, <Q> : ANY_BIT
<NBR> : UNIT
Description
Cette fonction permet de dcaler gauche les bits d'une variable de type ANY_BIT.
Remarques
En langage LD et FBD, plusieurs fonctions SHL sont disponibles suivant le type de donne.
En LD, le flux d'entre conditionne l'opration, et le flux est inchang en sortie.
En IL, le premier paramtre doit tre charg dans le rsultat courant avant l'appel de la fonction. Le
second paramtre est l'argument de la fonction.
Exemple ST
Q := SHL (IN, NBR);
Exemple FBD
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD IN
SHL NBR
ST Q
Voir aussi
ROL
ROR
SHR
SHR
Dca
lage
des bits droite
Syntaxe
443
Printed Documentation
Remarques
En langage LD et FBD, plusieurs fonctions SHR sont disponibles suivant le type de donne.
En LD, le flux d'entre conditionne l'opration, et le flux est inchang en sortie.
En IL, le premier paramtre doit tre charg dans le rsultat courant avant l'appel de la fonction. Le
second paramtre est l'argument de la fonction.
Exemple ST
Q := SHR (IN, NBR);
Exemple FBD
Exemple LD
(* L'opration est excute si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD IN
SHT NBR
ST Q
Voir aussi
ROL
ROR
SHL
SIGNAL
Gnration d'vnement
Syntaxe
SIGNAL (<Evnement>, <Paramtre>)
444
Type accept
<Evnement> : UINT
<Paramtre> : UDINT
Description
Cette instruction gnre un vnement pour les tches vnementielles utilisateurs.
<Evnement> est le numro de la tche vnementiel dclencher.
<Paramtre> est un paramtre qui pourra tre rcupr dans les tches vnementielles.
Voir aussi
GETLASTSYSEVENT
GETSYSTEMEVENT
GETUSEREVENTPARAM
SETTASKEVENTLIST
SIN
Sinus
Syntaxe
<Q> := SIN (<IN>)
Unit
<IN> est exprime en radians
Types accepts
<IN> : REAL
<Q>: REAL
Description
Cette fonction restitue le sinus de <IN>.
L'argument <IN> doit tre une expression numrique valide.
La fonction SIN prend un angle et restitue le rapport de deux cts d'un triangle rectangle.
Le rapport est la longueur du ct oppos l'angle divis par la longueur de l'hypotnuse.
Remarques
En langage LD, la fonction Cosinus inverse s'appelle : SIN_REAL
En langage FBS, la fonction Cosinus inverse s'appelle : SIN_REAL_FBD
En langage IL, l'entre (IN) doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
Q := SIN (IN);
Exemple FBD
Exemple LD
445
Printed Documentation
Exemple IL
Op1: LD IN
SIN
ST Q
Voir aussi
ACOS
ASIN
ATAN
COS
TAN
SINT
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
SLAVEOFFSET
Syntaxe
SLAVEOFFSET (<Esclave>, <Offset>, <Acclration>)
Units
<Offset> : Distance dans l'unit utilisateur (Ex : mm, degr,...)
<Acclration> : Acclration dans l'unit utilisateur (Ex : mm/s, degr/s,...)
Types accepts
<Esclave> : tPeripheral
<Offset> : REAL
<Acclration> : REAL
Description
Cette instruction dcale dynamiquement la position de l'esclave.
<Esclave> : Nom de l'axe
<Offset> : Valeur de l'offset appliquer
<Acclration> acclration utilise pour appliquer l'offset (dans l'unit du matre).
Remarque
Le dcalage est appliqu directement si aucun mouvement synchro n'est en cours ou si l'axe n'est
pas asservi.
Si les mouvements se terminent et qu'il n'y a plus de mouvement en cours, le SLAVEOFFSET_S
prend immdiatement la valeur de SLAVEOFFSET. L'axe n'effectue donc pas la totalit du
recalage
446
Un AXIS OFF ne remet pas zro le slaveoffset, la valeur courante est conserve.
SLAVEOFFSET est utilisable en et hors synchro
Voir aussi
SLAVEOFFSET_S
Valeur courante de l'offset esclave
SLAVEOFFSET_S
Syntaxe
<Q> := SLAVEOFFSET_S (<Esclave>)
Unit
<Q> : Distance dans l'unit utilisateur (Ex : mm, degr,
Type accept
<Esclave> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la valeur courante de l'offset esclave.
<Esclave> : Nom de l'axe
Remarque
Lorsque la valeur courante est gale la valeur <Offset> de la fonction SLAVEOFFSET, le
dcalage est alors termin.
Voir aussi
SLAVEOFFSET
Rend le smaphore
SPOST
Syntaxe
SPOT (<NumSema>)
Types accepts
< NumSema > : UINT
Description
Raci
ne
carre
Syntaxe
<Q> := SQRT (<IN>)
Type accept
<IN>, <Q> : REAL
Description
447
Printed Documentation
Exemple LD
(* La fonction est appele si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD
IN
SQRT
ST
Q
Voir aussi
ABS
TRUNC
LOG
POW
Bascule SET prioritaire
SR
Syntaxe
<Q> := SR (<SET>, <RESET>)
Type accept
<SET>, <RESET>, <Q> : BOOL
Description
RESET
Q
prec
448
Exemple ST
(* MySR est une instance dclare du bloc SR *)
MySR (SET, RESET1);
Q := MySR.Q;
Exemple FBD
ExempleLD
Exemple IL
(* MySR est une instance dclare du bloc SR *)
Op1: CAL MySR(SET, RESET1)
LD MySR.Q
ST Q
Voir aussi
R(eset)
S(et)
RS
SSTOP
Syntaxe
SSTOP (<Axe>)
Type accept
<Axe> : tPeripheral
Description
Cette fonction stoppe <Axe> avec la dclration courante.
La fonction n'est pas bloquante pour la tche.
<Axe> : Nom de l'axe
Si <Axe> est un axe matre li avec la fonction CAM, GEARBOX ou MOVS, alors <Axe> et son
esclave sont stopps mais le lien n'est pas rompu.
Si <Axe> est un axe esclave li avec la fonction CAM, GEARBOX ou MOVS, alors <Axe> s'arrte
449
Printed Documentation
Syntaxe
STARTCAM (<Ncame>)
Limite
<Ncame> de 1 128
Type accept
<Ncame> : UINT
Description
Cette instruction lance l'excution d'une came qui a pralablement t charg par un LOADCAM ou
LOADCAMI.
Voir aussi
LOADCAM
CAM_S
STARTCAMBOX
Syntaxe
STARTCAMBOX (<NumCamBox>)
Type accept
450
<NumCamBox> : USINT
Description
Cette fonction lance une bote contact prcdemment dfinie.
<NumCamBox> : Numro de bote (0..31)
Remarques
Les sorties ne sont pas forcment rafrachies une fois sorti de cette fonction (cela dpend de
l'change de process)
Voir aussi
CAMBOX
CAMBOX_S
CAMBOXOUT
CAMBOXSEG
SETINP
STOPCAMBOX
STARTCOUNTER
Syntaxe
STARTCOUNTER (<NumCounter>)
Type accept
<NumCounter> : USINT
Description
Cette fonction dmarre un compteur.
<NumCounter> : N de compteur (0 63)
Voir aussi
COUNTER
COUNTER_S
COUNTEREVENT
COUNTERSET
STOPCOUNTER
STATUS_S
Syntaxe
<Etat> := STATUS_S (<Nom>)
Type accept
<Nom> : tGroup
<Etat> : tTaskStatus
Description
Cette fonction retourne l'tat d'une tche
451
Printed Documentation
Exemple
Run (Percage);
Wait (Status_s (Percage) = TSTOP);
STN
Voir Assignation
STOP
Syntaxe
STOP (<Axe>)
Type accept
<Axe> : tPeripheral
Description
Cette fonction stoppe <Axe> avec la dclration courante.
La fonction est bloquante pour la tche.
<Axe> : Nom de l'axe
Si <Axe> est un axe matre li avec la fonction CAM, GEARBOX ou MOVS, alors <Axe> et son
esclave sont stopps mais le lien n'est pas rompu.
Si <Axe> est un axe esclave li avec la fonction CAM, GEARBOX ou MOVS, alors <Axe> s'arrte
et il n'est plus li avec le matre.
L'instruction STOP vide le buffer de mouvement et stoppe l'axe en utilisant la dclration
courante.
Remarques
La fonction bloque la tche tant que le buffer de mouvement est plein.
A la fin de la dclration retire tous les mouvements en attente. Si un mouvement est envoy
aprs un STOP et avant que le mouvement soit termin, ce mouvement sera ignor, sauf s'il s'agit
d'un STOP/SSTOP qui va modifier la pente de dclration et prendre en compte la nouvelle
pente.
Exemple ST
STOP (Axe_X);
Voir aussi
STTA
STTR
STTI
CAM
GEARBOX
MOVS
STOPCAMBOX
452
Syntaxe
STOPCAMBOX (<NumCamBox>, <ResetOutput>)
Type accept
<NumCamBox> : USINT
<ResetOuput> : BOOL
Description
Cette fonction Stoppe une boite came.
<NumCamBox> : Numro de bote (0..31)
<ResetOutput> : Remet les sortie zro avant d'arrter la boite contact
Voir aussi
CAMBOX
CAMBOX_S
CAMBOXOUT
CAMBOXSEG
SETINP
STARTCAMBOX
STOPCOUNTER
Syntaxe
STOPCOUNTER (<NumCounter>)
Type accept
<NumCounter> : USINT
Description
Cette fonction arrte un compteur.
<NumCounter> : N de compteur (0 63)
Voir aussi
COUNTER
COUNTER_S
COUNTEREVENT
COUNTERSET
STARTCOUNTER
STOPS
Syntaxe
STOPS (<Esclave>, <Pos. Esclave>)
Unit
<Pos. Esclave> : unit utilisateur (Ex : mm, degr,
Type accept
453
Printed Documentation
<Esclave> : tPeripheral
<Pos. Esclave> : REAL
Description
Cette fonction permet l'axe esclave de dclrer pour atteindre la position <Pos.esclave>
<Esclave> : Nom de l'axe
Remarque
L'appel de l'instruction STOPS remet le flag STOPS_S zro.
Exemple ST
TRIGGERI (FinDeSynchro,1); (* Attend un front montant sur l'entre
FinDeSynchro *)
STOPS (105.0);
(* Dclration jusqu' la position 105 *)
STOPS_S
Erreur
tion
STOPS
d'excution de la fonc
Syntaxe
<Q> := STOPS_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Q> : BOOL
Description
Cette fonction permet de savoir si un STOPS a pu s'excuter correctement :
<Esclave> : Nom de l'axe
STOPS_S = 1 si :
La position esclave demand par l'instruction STOPS n'est pas ralisable (ex : la position
esclave demande par STOPS est dj dpasse.)
Sinon retourne 0
Remarque
Il est remis zro aprs chaque lecture.
Exemple
STOPS (Axe_X, 105.0);
WAIT (MOVE_S (Axe_Y) =0);
If (STOPS_S (Axe_X) =1) Then
Defaut: = 1;
End_If;
STRYWAIT
Syntaxe
<Etat> := STRYWAIT (<NumSema>)
Types accepts
< NumSema > : UINT
<Etat> : BOOL
454
Description
Cette fonction tente de prendre le smaphore <NumSema> :
S'il est disponible alors il est pris et l'excution continue et la fonction retourne TRUE.
S'il est dj pris par cette tche : la demande est silencieusement ignore (le smaphore
reste pris par cette tche), la fonction retourne TRUE
Exemple ST
While (not STRYWAIT(5)) do
(* anime sur l'afficheur pour montrer l'attente*)
Display(1) ;
Delay 10 ;
Display(2) ;
Delay 10 ;
End_while ;
MavarCritique := 23 ;
SPOST(5) ;
STTA
Syntaxe
STTA (<Axe>, <Distance>)
Unit
<Distance> : unit utilisateur (Ex : mm, degr,
Types accepts
<Axe> : tPeripheral
<Distance> : REAL
Description
Cette fonction permet de lancer un mouvement une position absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe> : Nom de l'axe
Exemple ST
STTA (Axe_X, 1200.0);
WAIT (MOVE_S (Axe_X) = 0);
Voir aussi
STTR
MOVA
MOVR
STTIP
STTIM
MOVE_S
STTC2D
455
Printed Documentation
Syntaxe
STTL2D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, < Centre_ X>, < Centre_Y>, <Sens>, <
Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y > : REAL
< Centre_ X>, < Centre_Y> : REAL
< Sens> : BOOL
< Absolu > : BOOL
Description
Cette fonction permet de lancer un mouvement d'interpolation circulaire une position absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe_virt> : Nom de l'axe virtuel
STTC3D
Syntaxe
STTL3D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, < Distance_ Z>, < Centre_ X>, <
Centre_Y>, < Centre_Z>, <Sens>, < Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y >, < Distance_ Z> : REAL
< Centre_ X>, < Centre_Y>, < Centre_Z> : REAL
< Sens> : BOOL
< Absolu > : BOOL
Description
Cette fonction permet de lancer un mouvement d'interpolation circulaire une position absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe_virt> : Nom de l'axe virtuel
STTH3D
Syntaxe
STTH3D (<Axe_virt >, < Centre_ X>, < Centre_Y>, < Pas>, <Angle>, <Sens>, < Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Centre_ X>, < Centre_Y> : REAL
< Pas >, <Angle> :REAL
< Sens> : BOOL
< Absolu > : BOOL
Description
Cette fonction permet de lancer un mouvement d'interpolation hlicodale.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe_virt> : Nom de l'axe virtuel
STTH
456
Syntaxe
STTH (<Axe>, <Type>)
Types accepts
<Axe> : tPeripheral
<Type> : SINT
Description
La Prise d'origine permet au systme de dterminer l'origine de mesure de l'axe, celle-ci tant
perdue chaque coupure d'alimentation.
La prise d'origine machine (P.O.M) permet de rfrencer la position moteur par rapport une
position de la mcanique.
Diffrents types de POM sont disponibles : immdiat, sur capteur, avec dgagement.
Un cycle de POM force le compteur de position moteur une valeur "Zro Programme".
<Axe> : Nom de l'axe
<Type> :
1 : Sur TOP Z
Le moteur n'effectue aucun dplacement mais sa position est re-calcule par rapport au
Top Z moteur et la valeur "Zro Programme".
On obtient une position se situant entre +/- tour ou rfrence +/- tour moteur.
457
Printed Documentation
458
459
Printed Documentation
Remarque
La fonction STTH n'est pas bloquante.
Un home prend en compte :
460
HOME_S
HOMEAUX
HOMEAUXCANCEL
HOMEAUX_S
STTHAUX
Syntaxe
SSTHAUX(<Axe>, <Type>)
Types accepts
<Axe> : tPeripheral
<Type> : SINT
Description
Cette fonction permet de faire une prise d'origine sur l'auxiliaire d'un axe
<Axe> : Nom de l'axe
<Type> :
2 : Sur capteur (la fonction attend un front montant sur le capteur HOME)
3 : Sur capteur et Top Z (la fonction attend un niveau haut sur le capteur HOME et un top Z
sur le codeur auxiliaire)
Remarque
La fonction HOMEAUX n'est pas bloquante.
Exemple ST
STTHAUX (Axe_X,0); (*Prise d'origine immdiate sur l'auxiliaire*)
Voir aussi
HOME
HOMECANCEL
HOME_S
HOMEAUXCANCEL
HOMEAUX_S
STTIM
Syntaxe
STTIM (<Axe>)
Types accepts
<Axe> : tPeripheral
Description
Cette fonction permet de lancer un mouvement en sens infini moins.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
461
Printed Documentation
Syntaxe
STTIP (<Axe>)
Types accepts
<Axe> : tPeripheral
Description
Cette fonction permet de lancer un mouvement en sens infini plus.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe> : Nom de l'axe
Exemple ST
STTIP (Axe_X) ;
WAIT (INP (Arret)) = 0);
STOP (Axe_X) ;
Voir aussi
STTA
STTR
MOVA
MOVR
STTIM
MOVE_S
STTL2D
Syntaxe
STTL2D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, < Absolu>)
Types accepts
462
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y > : REAL
< Absolu > : BOOL
Description
Cette fonction permet de lancer un mouvement d'interpolation linaire une position absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe_virt> : Nom de l'axe virtuel
STTL3D
Syntaxe
STTL3D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, < Distance_ Z>, < Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y >, < Distance_ Z> : REAL
< Absolu > : BOOL
Description
Cette fonction permet de lancer un mouvement d'interpolation linaire une position absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe_virt> : Nom de l'axe virtuel
STTR
Syntaxe
STTR (<Axe>, <Distance>)
Unit
<Distance> : unit utilisateur (Ex : mm, degr,
Types accepts
<Axe> : tPeripheral
<Distance> : REAL
Description
Cette fonction permet de lancer un mouvement une position relative.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.
<Axe> : Nom de l'axe
Exemple ST
STTR (Axe_X, 1200.0) ;
WAIT (MOVE_S (Axe_X) = 0);
Voir aussi
STTA
MOVA
MOVR
STTIP
463
Printed Documentation
STTIM
MOVE_S
SUSPEND
Syntaxe
SUSPEND (<Tche >)
Type accept
< Tche > : tGroup
Description
Cette fonction suspend une tche en cours d'excution.
Remarques
Cette fonction n'a pas d'effets sur les tches stoppes.
Les fonctions bloquantes continue de s'excuter pendant un SUSPEND (DELAY, MOVA
< Tche > : Nom de la tche suspendre
).
Exemple ST
Wait (Inp(Puissance)=0);
SUSPEND (Couteau);
Wait (Inp(Puissance)=1);
RUN (Couteau);
Voir aussi
RUN
CONTINUE
HALT
Soustraction (langage IL)
SUB
Voir Soustraction
SWAIT
Prend le smaphore
Syntaxe
SWAIT (<NumSema>)
Types accepts
< NumSema > : UINT
Description
Cette fonction prend le smaphore <NumSema> :
S'il est dj pris par cette tche : la demande est silencieusement ignore (le smaphore
reste pris par cette tche)
S'il n'est pas disponible alors la tche est mise en attente jusqu' ce qu'il soit disponible
Exemple ST
SWAIT(5) ;
464
MavarCritique := 23 ;
SPOST(5) ;
TAN
Tangente
Syntaxe
<Q> := TAN (<IN>)
Unit
<IN> est exprime en radians
Types accepts
<IN> : REAL
<Q>: REAL
Description
Cette fonction restitue la tangente de <IN>.
L'argument <IN> doit tre une expression numrique valide.
La fonction TAN prend un angle et restitue le rapport de deux cts d'un triangle rectangle.
Le rapport est la longueur du ct oppos d'un angle divise par la longueur du ct adjacent
l'angle.
Remarques
En langage LD, la fonction Cosinus inverse s'appelle : TAN_REAL
En langage FBS, la fonction Cosinus inverse s'appelle : TAN_REAL_FBD
En langage IL, l'entre (IN) doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
Q := TAN (IN);
Exemple FBD
Exemple LD
(* La fonction est excute seulement si EN est TRUE *)
(* ENO a la mme valeur que EN *)
Exemple IL
Op1: LD IN
TAN
ST Q
Voir aussi
ACOS
ASIN
ATAN
465
Printed Documentation
COS
SIN
THEN
Voir IF
TIMEH
Syntaxe
<Q> := TIMEH (0)
Type accept
<Q> : UDINT
Description
Cette fonction retourne le nombre de ms coul depuis le dmarrage au-del de 49 jours (32 bits
de poids forts).
Voir aussi
TIMEL
TIMEL
Syntaxe
<Q> := TIMEL (0)
Limite
<Q> : 32 bits soit 1193h soit 49.71j max
Type accept
<Q> : UDINT
Description
Cette fonction retourne le nombre de ms coul depuis le dmarrage (32 bits de poids faibles).
Voir aussi
TIMEH
TIMER
Syntaxe
<ETAT_TEMPO> := TIMER (<TEMPO>)
Types accepts
<ETAT_TEMPO>: BOOL
<TEMPO> : UDINT
Description
L'instruction TIMER est utilise pour tablir des attentes actives. Elle indique si une temporisation
charge par LOADTIMER est coule.
466
Remarques
Le temps entre le chargement et le test de la temporisation ne doit pas dpasser 2^31, ce qui
correspond environ 25 jours.
Exemple ST
Tempo := LOADTIMER (3000) ; (* Chargement d'une temporisation de 3s *)
BOUCLE :
IF (TIMER (Tempo) = FALSE) THEN
GOTO BOUCLE ; (* Attente de la fin de la temporisation *)
END_IF ;
Voir aussi
LOADTIMER
TO
Voir FOR
TOF
Temporisateur l'enclenchement
Syntaxe
TOF (<IN>, <PT>)
<Q>:= TOF.Q
<ET>:= TOF.ET
Types accepts
<IN> : BOOL
<PT> : TIME
<Q> : BOOL
<ET> : TIME
Description
Cette fonction permet de raliser une temporisation retard au dclenchement.
La temporisation commence sur un front descendant de <IN>.
Elle s'arrte quand le temps coul est gal au temps programm <PT>.
Un front montant de <IN> remet la temporisation 0.
Le signal de sortie <Q> passe "1" quand <IN> passe "1", et repasse "0" quand le temps
programm est coul.
La variable de sortie <ET> contient le valeur de le temporisation. Elle va crotre jusqu' la valeur
temps programm <PT> tant que la commande <IN> est "0" et est remise "0" sur front montant
de <IN>.
Remarque
En LD, le flux d'entre est la commande IN. Le flux en sortie est le signal Q.
467
Printed Documentation
Exemple ST
(* MyTimer est une instance dclare du bloc TOF *)
MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;
Exemple FBD
Exemple LD
Exemple IL
(* MyTimer est une instance dclare du bloc TOF *)
Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET
Voir aussi
TON
TP
TON
Temporisateur l'enclenchement
Syntaxe
TON (<IN>, <PT>)
<Q>:= TON.Q
<ET>:= TON.ET
Types accepts
<IN> : BOOL
<PT> : TIME
<Q> : BOOL
<ET> : TIME
Description
Cette fonction permet de raliser une temporisation retard au dclenchement.
La temporisation commence sur un front montant de <IN>.
Elle s'arrte quand le temps coul est gal au temps programm <PT>.
Un front descendant de <IN> remet la temporisation 0.
Le signal de sortie <Q> passe "1" quand le temps programm est coul, et repasse "0" quand
la commande <IN> retombe.
La variable de sortie <ET> contient le valeur de le temporisation. Elle va crotre jusqu' la valeur
temps programm <PT> tant que la commande <IN> est "0" et est remise "0" sur front montant
468
de <IN>.
Remarques
Le changement de valeur de <PT> est pris en compte que sur front montant de <IN>.
En LD, le flux d'entre est la commande IN. Le flux en sortie est le signal Q.
Exemple ST
(* MyTimer est une instance dclare du bloc TON *)
MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;
Exemple FBD
Exemple LD
Exemple IL
(* MyTimer est une instance dclare du bloc TON *)
Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET
Voir aussi
TOF
TP
TORQUE
Syntaxe
TORQUE (<Axe>, <Expression>)
Unit
<Expression> en N.m
469
Printed Documentation
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette instruction force la consigne de couple.
<Axe> : Nom de l'axe
<Expression> contient la valeur appliquer.
Exemple ST
TORQUE (Axe_X, 5.20); (* Couple de 5.2 N.m *)
Voir aussi
TORQUE_S
CURRENT
CURRENT_S
SPEED
SPEED_S
TORQUE_S - Retourne le couple
Syntaxe
<Q> := TORQUE_S (<Axe>)
Unit
<Q> en N.m
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne le couple courant.
<Axe> : Nom de l'axe
Voir aussi
TORQUE
CURRENT
CURRENT_S
SPEED
SPEED_S
TP
Syntaxe
TON (<IN>, <PT>)
<Q>:= TON.Q
<ET>:= TON.ET
Types accepts
470
Temporisateur d'impulsions
<IN> : BOOL
<PT> : TIME
<Q> : BOOL
<ET> : TIME
Description
Permet de raliser un bloc fonction monostable.
La temporisation dmarre sur un front montant de <IN>.
Elle s'arrte quand le temps programm est coul.
Un front descendant de <IN> remet la temporisation 0, seulement aprs le temps programm.
Toutes les impulsions de l'entre <IN> pendant le temps programm sont ignores.
Le signal de sortie <Q> est "1" tant que la temporisation est active.
La variable de sortie <ET> contient le valeur de le temporisation.
Aprs que la temporisation soit coule, la variable de sortie <ET> reste la valeur temps
programm <PT> tant que la commande <IN> est "1".
Remarques
Le changement de valeur de <PT> est pris en compte que sur front montant de <IN>.
En LD, le flux d'entre est la commande IN. Le flux en sortie est le signal Q.
Exemple ST
(* MyTimer est une instance dclare du bloc TP *)
MyTimer (IN, PT);
Q := MyTimer.Q;
ET := MyTimer.ET;
Exemple FBD
Exemple LD
Exemple IL
(* MyTimer est une instance dclare du bloc TP *)
Op1: CAL MyTimer (IN, PT)
LD MyTimer.Q
ST Q
LD MyTimer.ET
ST ET
471
Printed Documentation
Voir aussi
TON
TOFF
TRAJA
Trajectoire absolue
Syntaxe
TRAJA (<Axe>, <Distance>, <Vitesse>, <Acceleration>, <Deceleration>)
Unit
<Distance> : unit utilisateur (Ex : mm, degr,...)
<Vitesse> : unit utilisateur (Ex : mm/s, degr/s,...)
<Acceleration>, <Deceleration> : unit utilisateur/s (Ex : mm/s, degr/s,
Types accepts
<Axe> : tPeripheral
<Distance>, <Vitesse>, <Acceleration>, <Deceleration> : REAL
Description
Cette fonction permet de lancer une trajectoire complexe une position absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe> : Nom de l'axe
Exemple ST
MERGE (Axe_X,1);
(* Passage en petite
vitesse *)
TRAJA (Axe_X, 1000.0, Vrapide, 100.0, 100.0); (* la position 1000 *)
TRAJA (Axe_X, 1500.0, Vlente, 100.0, 100.0); (* sans arrt de l'axe *)
MERGE (Axe_X, 0);
Voir aussi
TRAJR
STTA
STTR
MOVA
MOVR
STTIP
STTIM
MOVE_S
TRAJC2D
Syntaxe
STTL2D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, < Centre_ X>, < Centre_Y, <Sens>,
<Vitesse>, < Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y > : REAL
< Centre_ X>, < Centre_Y> : REAL
472
<Vitesse> : REAL
< Sens> : BOOL
< Absolu > : BOOL
Description
Cette fonction permet de lancer une trajectoire complexe d'interpolation circulaire une position
absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe_virt> : Nom de l'axe virtuel
TRAJC3D
Syntaxe
STTL3D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, < Distance_ Z>, < Centre_ X>, <
Centre_Y>, < Centre_Z>,<Sens>, <Vitesse>, < Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y >, < Distance_ Z> : REAL
< Centre_ X>, < Centre_Y>, < Centre_Z> : REAL
<Vitesse> : REAL
< Sens> : BOOL
< Absolu > : BOOL
Description
Cette fonction permet de lancer une trajectoire complexe d'interpolation circulaire une position
absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe_virt> : Nom de l'
axe virtuel
TRAJH3D
Syntaxe
STTL3D (<Axe_virt >, < Centre_ X>, < Centre_Y>, < Pas>, <Angle>, <Sens>, <Vitesse>, <
Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Centre_ X>, < Centre_Y> : REAL
< Pas >, <Angle> :REAL
<Vitesse> : REAL
< Sens> : BOOL
< Absolu > : BOOL
Description
Cette fonction permet de lancer une trajectoire complexe d'interpolation hlicodale.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe_virt> : Nom de l'axe virtuel
TRAJIM
Syntaxe
TRAJIM (<Axe>>, <Vitesse>, <Acclration>,)
Unit
473
Printed Documentation
Syntaxe
TRAJIP (<Axe>>, <Vitesse>, <Acclration>,)
Unit
<Vitesse> : unit utilisateur (Ex : mm/s, degr/s,...)
<Acclration> : unit utilisateur (Ex : mm/s, degr/s,...)
Types accepts
<Axe> : tPeripheral
<Vitesse>, <Acclration> : REAL
Description
Cette fonction permet de lancer un mouvement en sens plus.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe> : Nom de l'axe
Exemple ST
TRAJIP (Axe_X, 50.0, 250.0);
WAIT (INP (Arret)) = 0);
STOP (Axe_X);
Voir aussi
TRAJA
TRAJR
TRAJIM
TRAJL2D
474
Syntaxe
STTL2D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, <Vitesse>, < Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y > : REAL
<Vitesse> : REAL
< Absolu > : BOOL
Description
Cette fonction permet de lancer une trajectoire complexe d'interpolation linaire une position
absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe_virt> : Nom de l'axe virtuel
TRAJL3D
Syntaxe
STTL3D (<Axe_virt >, < Distance_ X>, < Distance_ Y>, < Distance_ Z>, <Vitesse>, < Absolu>)
Types accepts
<Axe_virt> : tPeripheral
< Distance_ X >, < Distance_ Y >, < Distance_ Z> : REAL
<Vitesse> : REAL
< Absolu > : BOOL
Description
Cette fonction permet de lancer une trajectoire complexe d'interpolation linaire une position
absolue.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe_virt> : Nom de l'axe virtuel
TRAJR
Trajectoire relative
Syntaxe
TRAJR (<Axe>, <Distance>, <Vitesse>, <Acceleration>, <Deceleration>)
Unit
<Distance> : unit utilisateur (Ex : mm, degr,...)
<Vitesse> : unit utilisateur (Ex : mm/s, degr/s,...)
<Acceleration>, <Deceleration> : unit utilisateur/s (Ex : mm/s, degr/s,...)
Types accepts
<Axe> : tPeripheral
<Distance>, <Acceleration>, <Deceleration> : REAL
Description
Cette fonction permet de lancer une trajectoire complexe une position relative.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe> : Nom de l'axe
Exemple ST
475
Printed Documentation
MERGE (Axe_X,1);
(* Passage en petite
vitesse *)
TRAJA (Axe_X, 1000.0, Vrapide, 100.0, 100.0); (* la position 1000 *)
TRAJR (Axe_X, 500.0, Vlente, 100.0, 100.0);
(* sans arrt de l'axe *)
MERGE (Axe_X, 0);
Voir aussi
TRAJA
STTA
STTR
MOVA
MOVR
STTIP
STTIM
MOVE_S
TRIGGERAXIS_S
d'un
Etattrigger
Syntaxe
<Q> := TRIGGERAXIS_S (<Axe>)
Type accept
<Axe> : tPeripheral
<Q> : BYTE
Description
Cette fonction retourne l'tat d'un trigger d'un axe :
<Axe> : Nom de l'axe
Retourne 1, si un mouvement dclench est en attente de dclenchement sur cet axe.
Retourne 0, si un mouvement n'est en attente de dclenchement.
TRIGGERAXISSET
Syntaxe
TRIGGERAXISSET (<Axe>)
Type accept
<Axe> : tPeripheral
Description
Cette fonction permet de forcer le dclenchement d'un mouvement dclench immdiatement.
Cette instruction est utilise dans une autre tche que celle contenant l'instruction TRIGGERx.
<Axe> : Nom de l'axe
TRIGGERF
Syntaxe
TRIGGERF (<RefEntre>, <Front>, <Axe>, <Source>, <Min>, <Max>, <Interieur>)
Types accepts
<RefEntre> : tIObitIn
<Front> : USINT
476
<Axe> : tPeripheral
<Source> : tSrcPos
<Mini> : REAL
<Maxi> : REAL
<Interieur> : BOOL
Description
Cette fonction permet de lancer un mouvement dans une position fentre d'un axe et un
changement d'tat d'une entre.
<RefEntre> : Rfrence de l'entre de type BIT dclare dans l'diteur E/S.
<Front> : 1 pour front montant ou 0 pour front descendant.
<Axe> : Nom de l'axe
<Source> : permet de slectionner la source du TRIGGERF.
<Intrieur> est utilis pour indiquer si le dclenchement s'effectue l'intrieur ou l'extrieur de la
fentre.
Remarques
Hors modulo : si Min > Max, le TRIGGERF ne sera jamais dclench
En modulo : si Min > Max, le dclenchement s'effectue l'extrieur de la fentre.
Exemple ST
(* Dplacement de l'axe X sur front montant de l'entre 4 du MPC lorsque
l'axe Y est entre 10 et 20 *)
TRIGGERF (Mpc_4, 1, Axe_Y, SRC_AXE, 10.0, 20.0, 1);
MOVR (Axe_X, 100.0);
Voir aussi
TRAGGERI
TRIGGERP
TRIGGERAXIS_S
TRIGGERAXISSET
TRIGGERI
Syntaxe
TRIGGERI (<RefEntre>, <Front >)
Types accepts
<RefEntre> : tIObitIn
<Front> : USINT
Description
Cette fonction permet de lancer un mouvement sur un changement d'tat d'une entre.
<RefEntre> : Rfrence de l'entre de type BIT dclare dans l'diteur E/S.
<Front> : 1 pour front montant ou 0 pour front descendant.
Exemple ST
(* Dplacement de l'axe X sur front montant de l'entre 4 du MPC *)
TRIGGERF (Mpc_4, 1);
MOVR (Axe_X, 100.0);
Voir aussi
TRAGGERF
477
Printed Documentation
TRIGGERP
TRIGGERP
Syntaxe
TRIGGERP (<Axe>, <Source>, <Position>, <Sens>)
Types accepts
<Axe> : tPeripheral
<Source> : tSrcPos
<Position> : REAL
<Sens> : tMoveDirection
Description
Cette fonction permet de lancer un mouvement sur dtection d'une position d'axe.
<Axe> : Nom de l'axe
<Source> : permet de slectionner la source du TRIGGERP.
<Position> est la position pour lancer le trigger.
<Sens> est utilis pour indiquer le sens de dclenchement :
S_ALL si aucun
Exemple ST
(* Dplacement de l'axe X partir de la position Y= 10 en sens positif
*)
TRIGGERP (Axe_Y, SRC_AXE, 10.0, S_POS);
MOVR (Axe_X, 100.0);
Voir aussi
TRAGGERI
TRIGGERF
TRIGGERRESET
Syntaxe
TRIGGERRESET (0)
Description
Cette fonction permet de retirer le trigger mmoris dans une tache
Exemple ST
TriggerI (mon_io,1) ;
TriggerReset (0) ;
Stta (mon_axe,1.0) ;
(* Lance le mouvement immdiatement *)
TRUE
Valeur constante du type BOOL
TRUNC
478
Syntaxe
<Q> := TRUNC (<IN>)
Types accepts
<IN> : REAL
<Q> : ANY_INT
Description
Cette fonction tronque la partie dcimale d'un nombre.
Remarques
En LD, l'opration n'est excute que si le flux d'entre (EN) est "1".
Le flux est inchang en sortie (ENO).
En IL, la valeur d'entre doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
Q := TRUNC (IN);
Exemple FBD
Exemple LD
(* La fonction est appele si EN = TRUE *)
(* ENO est gal EN *)
Exemple IL
Op1: LD
IN
TRUNC
ST
Q
Voir aussi
ABS
LOG
POW
SQRT
TYPE
Voir les sections de dclaration et les types redfinis.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
479
Printed Documentation
Les mots-clef TYPE et END_TYPE ne doivent pas tre insr dans des blocs VAR..END_VAR,
mais dans les fichiers de dclaration de type au niveau du projet.
UDINT
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
UINT
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
UNLOCK
Dbloque le squenceur
Syntaxe
UNLOCK (0)
Description
Cette fonction permet d'arrter l'effet de la fonction LOCK
UNTIL
Voir REPEAT
USINT
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
UDINTWSWAP
Inversion de mots
Syntaxe
<Q> := UDINTSWAP (<IN>)
Type accept
<IN>, <Q> : UDINT
Description
Cette fonction permet d'inverser les mots de 16 bits d'un mot de 32 bits (ABCD => CDAB)
VAR
Voir les sections de dclaration.
Notes
480
Vitesse
Syntaxe
VEL(<Axe>, <Expression>)
Unit
<Expression> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s,...)
Limite
<Expression> doit tre suprieur ou gal 0
481
Printed Documentation
Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette instruction modifie la vitesse courante.
<Axe> : Nom de l'axe
<Expression> contient la valeur appliquer.
Remarque
La vitesse courante peut tre modifie tout moment.
Exemple ST
VEL (Axe_X, 500.0); (* Vitesse de 500 units/s *)
Voir aussi
VEL_S
VEL_T
VELP
ACC
DEC
VEL_S
Vitesse
Syntaxe
<Q> := VEL_S (<Axe>)
Unit
<Q> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s,...)
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la vitesse courante.
<Axe> : Nom de l'axe
Voir aussi
VEL
VEL_T
VELP
VEL_T
Syntaxe
<Q> = VEL_T (<Axe>)
Unit
482
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la consigne actuelle de vitesse pour cet axe.
<Axe> : Nom de l'axe
Exemple ST
VEL(Axe_X, 500.0); (* Vitesse de 500 units/s *)
ConsigneVitesse := VEL_T(Axe_X) ; (* ConsigneVitesse = 500 *)
Voir aussi
VEL
VEL_S
VELP
ACC_T
DEC_T
VELAUX_S
Vitesse
Syntaxe
<Q> := VELAUX_S (<Axe>)
Unit
<Q> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s,...)
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la vitesse courante de l'auxiliaire.
<Axe> : Nom de l'axe
Voir aussi
VEL_S
VELP
Vitesse en pourcentage
Syntaxe
VELP(<Axe>,<Expression>)
Limite
<Expression> doit tre suprieur ou gal 0
Types accepts
483
Printed Documentation
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette fonction ajuste la vitesse courante en pourcentage du paramtre de vitesse par dfaut dfinie
dans le profil de l'axe.
<Axe> : Nom de l'axe
<Expression> contient le pourcentage appliquer.
Remarques
La valeur de vitesse peut tre entre dans l'cran "Profil de vitesse" lors de la configuration Motion
de l'axe et peut tre modifi une tche.
Exemple ST
VELP(Axe_X, 10.0); (* 10% de la vitesse dfinie dans le profil de vitesse
*)
Voir aussi :
VEL
VEL_S
VELT
ACCP
DECP
VELT_S
Syntaxe
<Q> := VELT_S (<Axe>)
Unit
<Q> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s,...)
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la vitesse thorique courante.
<Axe> : Nom de l'axe
Voir aussi
VEL
VEL_T
VELP
VELT_S
Syntaxe
<Q> := VELT_S (<Axe>)
484
Unit
<Q> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s,...)
Type accept
<Axe> : tPeripheral
<Q> : REAL
Description
Cette fonction retourne la vitesse thorique courante.
<Axe> : Nom de l'axe
Voir aussi
VEL
VEL_T
VELP
VERSION
Syntaxe
<Q> = VERSION (0)
Type accept
<Q> : UDINT
Description
Cette fonction retourne la version OS du MPC.
WAIT
Syntaxe
WAIT <Condition>
Description
Cette fonction permet au systme d'attendre que la condition soit vraie.
L'excution de cette instruction provoque le basculement vers la tche suivante.
Remarques
L'instruction WAIT, les instructions suivantes ne sont pas excutes tant que <Condition> se rvle
fausse.
Cette instruction fournit une attente passive pour une condition.
485
Printed Documentation
Exemple
WHILE (INP(Capteur) = FALSE) DO (* Attente active *)
END WHILE;
Ce programme peut tre remplac par :
WAIT(INP(Capteur) = TRUE); (* Attente passive *)
WATCHDOGOFF
Ouvre le chien de
garde
Syntaxe
WATCHDOGOFF (0)
Description
Cette fonction permet l'utilisateur d'ouvrir le relais de chien de garde.
Remarques
L'tat du chien de garde la mise sous tension est OFF. Il doit donc tre mis ON en dbut de
programme.
La fonction SECURITY peut modifier son comportement.
WATCHDOGON
Syntaxe
WATCHDOGON (0)
Description
Cette fonction permet l'utilisateur de fermer le relais de chien de garde.
Remarques
L'tat du chien de garde la mise sous tension est OFF. Il doit donc tre mis ON en dbut de
programme.
La fonction SECURITY peut modifier son comportement.
WATCHDOG_S
Syntaxe
486
WDTASKRAZ
Syntaxe
WDTASKRAZ (<Tache>)
Type accept
< Tche > : tGroup
Description
Cette fonction remet "0" le nombre de dclenchement du chien de garde d'une tche.
<Tache> : Nom de la tche
WDTASK_S
Syntaxe
<Q> := WDTASK_S (<Tache>)
Type accept
< Tche > : tGroup
Description
BOUCLE WHILE
Syntaxe
WHILE <expression> DO
<instructions>
END_WHILE
Type accept
<expression> : BOOL
Description
Les instructions entre "DO" et "END_WHILE" sont excuts tant que la valeur de l'expression
boolenne est TRUE.
La condition est value avant l'excution des instructions.
Si la condition est FALSE lors de la premire valuation, les instructions ne sont pas excutes.
Attention
Les instructions de boucle peuvent bloquer le cycle en une boucle infinie.
Exemple ST
487
Printed Documentation
iPos := 0;
WHILE iPos < iMax DO
MyArray[iPos] := 0;
iNbCleared := iNbCleared + 1;
END_WHILE;
Exemple FBD
Non disponible
Exemple LD
Non disponible
Exemple IL
Non disponible
Voir aussi
IF
REPEAT
FOR
CASE
EXIT
WORD
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
WRITECAM
Syntaxe
WRITECAM (<Came>, <TableauCame>)
Types accepts
<Came> : tCam
<TableauCame> : tCamTable
Description
Cette fonction enregistre un tableau de came dans un fichier de came, ce qui permet de la stocker
dans la CF-CARD.
<Came> : Nom de la came
<TableauCame> :Tableau de came
Remarque
Certaine CF-CARD ne permettent pas un stockage en tout scurits, dans ce cas le stockage
choue et une erreur interne est dclench.
Voir aussi
READCAM
XOR
488
Oprateur OU exclusif
Syntaxe
<Q> := <IN1> XOR <IN2>
Types accepts
<IN1> : ANY_BIT
<IN2> : ANY_BIT
<Q> : ANY_BIT
Description
Cette fonction effectue un OU exclusif binaire entre deux expressions et retourne une valeur du
type de l'oprande.
<IN1> et <IN2> doivent tre du mme type.
Remarque
"XOR" est dfini par la norme IEC61131-3.
Exemple ST
Q := IN1 XOR IN2;
Q := IN1 XOR IN2 XOR IN3;
Exemple FBD
Exemple LD
(* contacts en parallle *)
Exemple IL
Op1: LD
XOR
ST
Op2: LD
XORN
ST
IN1
IN2
Q
(* Q = IN1 OR IN2 *)
IN1
IN2
Q
(* Q = IN1 OR (NOT IN2) *)
Voir aussi
AND
OR
NOT
489
Printed Documentation
XORN
Voir XOR avec l'entre 2 inverse
490
Annexes
Les erreurs
Les erreurs de compilation
C10006
Les donnes du type 'REAL' ne sont pas supportes.
Le type de donnes "REAL" n'est pas support par le matriel actif. Pour une liste de types de
donnes supports Le logiciel Motion Studio voir la norme IEC 1131-3. Veuillez consulter votre
documentation matriel pour une liste de types de donnes supports par votre matriel.
C10007
Les donnes du type 'DATE' ne sont pas supportes.
Le type de donnes "DATE" n'est pas support par le matriel actif. Pour une liste de types de
donnes supports Le logiciel Motion Studio voir la norme IEC 1131-3. Veuillez consulter votre
documentation matriel pour une liste de types de donnes supports par votre matriel.
C10009
Les donnes du type 'STRING' ne sont pas supportes.
Le type de donnes "STRING" n'est pas support par le matriel actif. Pour une liste de types de
donnes supports Le logiciel Motion Studio voir la norme IEC 1131-3. Veuillez consulter votre
documentation matriel pour une liste de types de donnes supports par votre matriel.
C10008
Les donnes du type 'TIME_OF_DAY ' ne sont pas supportes.
Le type de donnes "TIME_OF_DAY" n'est pas support par le matriel actif. Pour une liste de
types de donnes supports Le logiciel Motion Studio voir la norme IEC 1131-3. Veuillez consulter
votre documentation matriel pour une liste de types de donnes supports par votre matriel.
C10010
Les donnes du type 'DATE_Inst_AND_TIME' ne sont pas supportes.
Le type de donnes "DATE_Inst_AND_TIME" n'est pas support par le matriel actif. Pour une liste
de types de donnes supports Le logiciel Motion Studio voir la norme IEC 1131-3. Veuillez
consulter votre documentation matriel pour une liste de types de donnes supports par votre
matriel.
C10012
Les donnes du type 'TIME ' ne sont pas supportes.
Le type de donnes "TIME" n'est pas support par le matriel actif. Pour une liste de types de
donnes supports Le logiciel Motion Studio voir la norme IEC 1131-3. Veuillez consulter votre
documentation matriel pour une liste de types de donnes supports par votre matriel.
C10017
491
Printed Documentation
Les sections 'VAR_ENTRE ', 'VAR_OUTPUT 'et 'VAR_IN_OUT 'ne sont pas soutenues dans les
programmes.
Les sections VAR_ENTRE, VAR_OUTPUT et VAR_IN_OUT dans les programmes ne sont pas
supports. Pour plus d'informations sur les types variables supports voir la norme IEC 1131-3.
C10019
Les variables directement reprsentes ne sont pas supportes dans ce POU.
Soit l'unit de gestion de programme est une fonction ou un bloc de fonction ou un fichier avec des
dfinitions de variables symboliques globales. Les variables directement reprsentes ne sont pas
autorises dans les fonctions ou les blocs de fonction. Si vous voulez accder une variable
directement reprsente d'un bloc de fonction, dclarer la variable avec un nom symbolique dans la
section de VAR_GLOBAL d'un programme et employer ce nom symbolique dans une dclaration
dans la section de VAR_EXTERNAL du bloc de fonction. Les fonctions ne peuvent pas accder
des variables directement reprsentes.
Les variables globales directement reprsentes de ressource doivent tre dclares dans un
fichier spcifique.
C10021
La constante ne doit pas tre ngative.
Une constante ngative a t trouve o un oprande non sign tait attendu. Veuillez changer la
valeur de la constante ou le type variable (si possible).
C10024
La constante est hors limite.
La constante la position donne n'est pas dans les limites du type de donnes associ.
C10025
Des paramtres d'IN/OUT doivent toujours tre fournis avec des paramtres effectifs.
Un paramtre formel d'in/out a t dclar dans un bloc de fonction, mais pas fourni avec un
paramtre effectif dans une instruction CAL d'une instance. Les paramtres d'In/out sont des
rfrences et doivent tre fournis avec un paramtre effectif.
C10026
Adresse non soutenue.
L'adresse la position donne n'est pas soutenue par le matriel actif. Veuillez consulter votre
documentation matriel pour une liste d'adresses supporte par le matriel.
C10028
Des paramtres InOut du type struct ne sont pas supports.
Les paramtres In/out structurs ne sont pas supports. Veuillez dfinir un paramtre d'entre et
un paramtre de sortie de ce type.
C10031
492
Annexes
EXAMPLE
Presence : STRUCT
Name : STRING;
493
Printed Documentation
494
Annexes
Pour le longueur de chane support par Le logiciel Motion Studio voir la norme IEC 1131-3.
Cependant, le fabricant du matriel peut limiter la longueur maximum d'une chane en changeant la
valeur de paramtre "MaxStringLength" dans la section [ MODULE ] de description matriel.
C10055
Cette variable ne peut tre initialise.
Soit une initialisation de variable directement reprsente a t trouve soit le matriel ne supporte
pas les initialisations variables. L'initialisation des variables directement reprsentes n'est pas
supporte par Le logiciel MS. L'initialisation des variables symboliques peut tre interdit par le
fabricant en changeant la valeur du paramtre "InitVariables" dans la section [ MODULE ] du fichier
de description matriel par 0. Veuillez consulter votre documentation matriel pour savoir, si
l'initialisation des variables est supportes par votre matriel.
C10057
Type de donne non support.
Le type de donnes la position donne n'est pas support. Pour une liste de types de donnes
supports par Le logiciel Motion Studio consulter la norme IEC 1131-3. Pour une liste de types de
donnes soutenus par votre matriel, consultez svp votre documentation matriel.
C10060
LD/ST d'instances de bloc de fonction ne sont pas autoriss.
Une instruction LD ou ST avec une instance de bloc de fonction comme oprande a t trouve.
Ceci n'est pas autoris.
C10063
Une erreur s'est produite pendant l'ouverture d'une fichier.
C10064
Erreur de compilation No.%1. Veuillez entrer en contact avec votre fabricant.
Une erreur interne de compilateur s'est produite. Veuillez entrer en contact avec votre fabricant.
C10067
Les dclarations de structure ne sont pas supportes.
Une dclaration de structure a t dtecte, mais n'est pas supporte par le matriel. Les
dclarations de structure sont supportes par Le logiciel Motion Studio. Le fabricant du matriel
peut cependant interdire les dclarations de structure en plaant la valeur 0 de le champs
"StructAllowed" dans la section [MODULE] du fichier de description du matriel. Veuillez consulter
votre documentation matriel pour savoir si les dclarations de structure sont supportes par votre
matriel.
C10068
Les dclarations de tableau ne sont pas supportes.
495
Printed Documentation
Une dclaration tableau a t dtecte, mais n'est pas supporte par le matriel. Les dclarations
de tableau sont supportes par Le logiciel Motion Studio. Le fabricant du matriel peut cependant
interdire les dclarations de tableau en plaant la valeur 0 de le champs "ArrayAllowed" dans la
section [MODULE] du fichier de description du matriel. Veuillez consulter votre documentation
matriel pour savoir si les dclarations de tableau sont supportes par votre matriel.
C10069
Les dclarations de type de donnes numres ne sont pas supportes.
Une dclaration de type de donnes numres a t dtecte, mais n'est pas supporte par le
matriel. Les dclarations de type de donnes numres sont supportes par Le logiciel Motion
Studio. Le fabricant du matriel peut cependant interdire les dclarations de type de donnes
numres en plaant la valeur 0 de le champs "EnumAllowed" dans la section [MODULE] du
fichier de description du matriel. Veuillez consulter votre documentation matriel pour savoir si les
dclarations de type de donnes numres sont supportes par votre matriel.
C10075
Index de tableau invalide. Il doit compris entre -32767 et 32767.
Un index de tableau est hors limite de la zone supporte [-32767, 32767].
C10078
Type de variable globale ou directement reprsent non valide.
Une variable directement reprsente d'un type complexe ou d'un type dfini par utilisateur a t
dclare. Ceci n'est pas support. Les variables globale du type structur ne sont pas galement
supportes.
C10083
Seul les variables directement reprsentes sont autorises dans ce POU.
Des variables globales de ressource sont spares dans le sorte de fichiers. Les fichiers qui
contiennent seulement les variables symboliques et les fichiers qui contiennent les variables
directement reprsentes. Dans ces fichiers, les variables symboliques et directement
reprsentes ne doivent pas tre mlang.
C10084
Les structures globales ne sont pas supportes.
Veuillez dclarer cette variable dans une section locale et employez les paramtres d'entre et de
sortie, si la valeur est change par une fonction ou un bloc de fonction. La dclaration du type pour
la structure dsire doit tre fait au niveau de projet.
Exemple:
(*La structure suivante doit tre dclare comme type global de projet *)
TYPE
DayOfWeek : STRUCT
Name : STRING;
DayNumber : UINT;
END_STRUCT;
496
Annexes
END_TYPE
FUNCTION_BLOCK AdjustDayName
VAR_ENTRE
DayIn : DayOfWeek;
END_VAR
VAR_OUTPUT
DayOut : DayOfWeek;
END_VAR
LD DayIn
ST DayOut
LD DayIn.DayNumber
EQ 1
LD
MONDAY
ST DayOut.Name
LD DayIn.DayNumber
EQ 2
LD
TUESDAY
ST DayOut.Name
END_FUNCTION_BLOCK
PROGRAM main
VAR
Day : DayOfWeek;
DayNumber : UINT;
END_VAR
LD DayNumber
ST Day.DayNumber
CAL AdjustDayName(DayIn := Day | Day := DayOut)
END_PROGRAM
C10092
chec d'attribution de mmoire.
C10108
La constante du type TEMPS est hors limite.
Pour les limites des constantes TEMPS supportes par Le logiciel Motion Studio voyez la norme
IEC 1131-3.
C10109
Type de donnes non valide pour cette opration. Le type entier ou rel est attendu.
497
Printed Documentation
L'opration la position donne est seulement supporte par les oprandes entier et rel.
C10100
Expression non valide pour le paramtre.
Une expression non valide a t passe comme un paramtre effectif dans un appel de fonction ou
d'instance de bloc de fonction.
C10110
Les fonctions intgres ne sont pas supportes.
Un appel de fonction a t pass comme un paramtre effectif dans l'appel d'une fonction ou d'une
instance de bloc de fonction. Ceci n'est pas support. Veuillez enregistrer la valeur de retour de la
fonction dans une variable et passez cette variable comme un paramtre effectif l'unit de gestion
de programme appele.
C10112
Conflit de type.
Soit le rsultat actuel est incompatible avec le type de donnes attendu, soit le type d'un paramtre
effectif est incompatible avec le type du paramtre formel respectif.
C10113
Opration non supporte pour ce type de donnes.
Le type de donnes d'un oprande n'est pas autoris pour l'opration la position donne. Pour
plus d'informations sur les types de donnes autoris pour cette opration voir la norme IEC 611313 et IEC 1131-3.
C10114
Les expressions des paramtres ne sont pas supports pour cette opration.
Une expression a t employe comme paramtre effectif. Ceci n'est pas support. Veuillez
stocker le rsultat de l'expression dans une variable et passez cette variable la fonction ou au
bloc de fonction appele.
C10115
L'attribut RETAIN pour des instances de FB est interdit.
Les instances de bloc de fonction RETAIN ne sont pas supportes. Veuillez enlever l'attribut ou
dplacez la dclaration de l'instance hors de cette section.
C11001
Ne peut pas dterminer clairement le type de constante -> prendre %1.
Le type d'une constante numrique n'a pas pu tre dtermin clairement. Dans ce cas,
habituellement, le plus grand type soutenu de la classe de type de donnes prvue (ANY_INT,
ANY_REAL, ANY_BIT) est prsum.
C11007
498
Annexes
499
Printed Documentation
priodes (.). Le prfixe de taille peut tre vide. Pour ses prfix de location et de taille valides
consultez votre documentation matriel.
L10027
Description matriel invalide: %1..
Le fichier de description matriel pour ce nom de priphrique n'a pas t trouv.
conseil:
Rinstallez Le logiciel Motion Studio. Si ceci n'limine pas votre erreur, consultez votre
documentation matriel ou rfrez-vous votre fournisseur.
L10029
Erreur de configuration matriel.
Une erreur s'est produite pendant la lecture des informations du firmware. Veuillez vrifier si le
fichier de configuration matriel est correct ou si la DLL indique par le firmware est install dans
votre rpertoire Le logiciel Motion Studio.
ATTENTION: Ce fichier ne devrait tre modifi que par le fabricant.
L10030
Type de variable invalide: %1.
Une variable reprsente direct d'un type complexe (tableau, structure, chane) a t trouve. Ceci
n'est pas support par le matriel.
L10031
Initialisations des variables reprsentes directement non autorises
Une initialisation d'une variable reprsente directement a t trouve. Ceci n'est pas support par
le matriel. Veuillez enlever l'initialisation.
L10032
Adresse <AddressDescription> invalide dans ce contexte.
L'adresse avec la description indique est une adresse valide mais non autorise dans ce contexte
(Tche, POU, ressource, configuration).
L10033
L'attribut RETAIN non support pour les variables reprsentes directement.
Une variable reprsente directement avec l'attribut RETAIN a t trouve. Celui-ci n'est pas
support par le matriel. Veuillez dplacer la dclaration de variable dans une autre section ou
enlevez l'attribut de la section.
L10034
L'attribut CONST non support pour les variables reprsentes directement.
500
Annexes
Une variable reprsente directement avec l'attribut CONST a t trouve. Celui-ci n'est pas
support par le matriel. Veuillez dplacer la dclaration de variable dans une autre section ou
enlevez l'attribut de la section.
L10035
Limite d'instance pour le bloc de function <FunctionBlockName> atteinte.
Le nombre maximum d'instances pour le bloc de fonction indiqu a dj t dpass. Le nombre
maximum d'instances d'un bloc de fonction progiciels est dpendante du matriel et peut tre
chang par le fabricant du matriel en configurant ou changeant l'entre "MaxInstances" dans la
section de spcifications du bloc de fonction dans le fichier de description du matriel. Veuillez
consulter la documentation de votre matriel, pour connatre le nombre maximum d'instances d'un
bloc de fonction progiciels.
L10036
Description d'image processus non valide. Veuillez contacter votre fabricant.
La description de l'image processus dans le fichier de configuration matriel est non valide. Veuillez
vrifier si les tailles pour les sections d'entre, de sortie, de marqueur sont correctes et si toutes les
entres de taille sont de la mme unit. Elles devraient tre indiques soit en bits ou en octets.
ATTENTION: Ce fichier ne devrait tre modifi que par le fabricant.
L10063
Une erreur s'est produite pendant l'ouverture du fichier : %1.
L10105
Erreur interne pendant le chargement de la fonction ou DLL: <DLL/Function-Name>.
Le DLL ou la fonction indiqu n'a pas pu tre charg. Soit votre rpertoire Motion Studio ne contient
pas de DLL avec le nom indiqu, soit vous n'avez pas la bonne version de DLL. Veuillez rinstaller
votre systme ou consultez votre description matriel.
L10106
l'optimisation choisie a besoin d'un compilateur de code natif. Veuillez choisir une autre optimisation
ou installez un compilateur de code natif.
L'optimisation de "vitesse seule" est active mais aucun compilateur de code natif n'est dfini pour
ce matriel. L'optimisation de '"vitesse seule" est autorise que si un compilateur de code natif est
install. Si vous n'avez pas un compilateur de code inactif, veuillez choisir une autre optimisation
dans le dialogue "Caractristiques de l'diteur de ressource". Pour le compilateur de code natif
pour votre matriel veuillez vous rfrer votre fabricant.
L12001
Conflit de type. Le type d'une variable externe ne correspond pas celui d'une variable globale de
mme nom.
Une variable globale avec le mme nom que la variable externe a t trouve, mais les types entre
la variable globale et externe sont diffrents.
501
Printed Documentation
Conseil:
Assurez-vous que le nom variable externe est orthographi correctement.
Assurez-vous que le type de la variable externe est orthographi correctement.
Assurez-vous que la variable globale est la variable demande.
Changez le type de la variable externe ou globale
L12002
Accs en lecture cette variable non autoris: <Variable name>.
Un accs en lecture une variable qui est en criture seul a t tent.
Conseil:
Assurez-vous que le nom variable indiqu est orthographi correctement.
La variable indique est une constante. L'accs en criture une variable constante n'est pas
autoris. Vrifiez si l'attribut CONSTANT peut tre enlev de la variable.
La variable indique est une source de sortie. L'accs en lecture cette source de sortie n'est pas
autoris
L12003
502
Annexes
503
Printed Documentation
Un caractre non support a t utilis. Voir galement Table 1: Dfinition du jeu de caractres
S1002
Fin de fichier termin par un commentaire.
La fin d'un fichier a t atteinte avant qu'un commentaire ouvert ait t cltur. Veuillez clturer le
commentaire avant d'appeler la vrification de syntaxe.
S1003
Mot-cl rserv.
Un mot-cl rserv a t utilis comme identifiant.
S1004
Valeur non valide pour l'heure.
La valeur numrique pour l'unit de d'heure de TIME_OF_DAY ou DATE_Inst_AND_TIME littral
doit tre un nombre entier entre [0, 23 ].
S1005
Valeur non valide pour les minutes.
La valeur numrique pour l'unit de minute de TIME_OF_DAY ou DATE_Inst_AND_TIME littral
doit tre un nombre entier entre [0, 59 ].
S1006
Valeur non valide pour les secondes.
La valeur numrique pour l'unit de seconde de TIME_OF_DAY ou DATE_Inst_AND_TIME littral
doit tre un nombre de point fixe entre [0, 60 ].
S1008
Valeur non valide pour les mois.
La valeur numrique pour l'unit de mois de TIME_OF_DAY ou DATE_Inst_AND_TIME littral doit
tre un nombre entier entre [1, 12 ].
S1009
Limite non valide pour les jours.
La valeur numrique pour l'unit de jour de TIME_OF_DAY ou DATE_Inst_AND_TIME littral doit
tre un nombre entier entre [1, 31 ], donnant le jour du mois. C--d. si le mois a moins de 31 jours,
la valeur maximum du jour est la plus grande valeur valide du mois.
S1010
Exposant trop grand.
504
Annexes
La valeur numrique pour l'exposant d'un rel littrale doit tre un nombre entier dans la gamme [ 37, 38 ] et pour un LREAL littrale un INT dans la gamme [ - 307, 308 ].
S1011
Adresse direct Incorrecte.
La valeur numrique pour un champ indiqu dans l'adresse hirarchique d'une variable reprsente
direct est nombre entier dpendant du matriel, mais ne doit pas excder 4294967295. Veuillez
consulter votre documentation matriel pour dterminer la valeur maximum pour chaque champ
dans la hirarchie d'adresse.
S1012
Saisie non valide du jour.
La valeur numrique de l'unit de jour de TIME littral doit tre un nombre de point fixe entre [0,
255].
S1013
Saisie non valide de l'heure.
La valeur numrique de l'unit d'heure de TIME littral doit tre un nombre de point fixe entre [0,
24] si l'heure n'est pas l'unit la plus significative de la dure littrale. Un dbordement est
seulement autoris si l'unit d'heure est l'unit la plus significative de TEMPS littrale.
Exemple:
T#25h_15m est autoris.
T#1d_25h_15m n'est pas autoris. La reprsentation correcte de cette dure littrale est:
T#2d_1h_15m.
S1014
Saisie non valide des minutes.
La valeur numrique de l'unit de minute de TIME littral doit tre un nombre de point fixe entre [0,
60] si les minutes n'est pas l'unit la plus significative de la dure littrale. Un dbordement est
seulement autoris si l'unit de minute est l'unit la plus significative de TEMPS littrale.
Exemple:
T#75m est autoris.
T#5h_75m n'est pas autoris. La reprsentation correcte de cette dure littrale est: T#6h_15m.
S1015
Saisie non valide des secondes.
La valeur numrique de l'unit des secondes de TIME littral doit tre un nombre de point fixe entre
[0, 60] si les secondes n'est pas l'unit la plus significative de la dure littrale. Un dbordement est
seulement autoris si l'unit de seconde est l'unit la plus significative de TEMPS littrale.
Exemple:
T#75s est autoris.
505
Printed Documentation
T#5m_75s n'est pas autoris. La reprsentation correcte de cette dure littrale est: T#6m_15s.
S1016
Saisie non valide des millisecondesy.
La valeur numrique de l'unit des millisecondes de TIME littral doit tre un nombre de point fixe
entre [0, 1000] si les millisecondes n'est pas l'unit la plus significative de la dure littrale. Un
dbordement est seulement autoris si l'unit de milliseconde est l'unit la plus significative de
TEMPS littrale.
Exemple:
T#1200s est autoris.
T#1s_1200ms n'est pas autoris. La reprsentation correcte de cette dure littrale est:
T#2s_200ms.
S1017
Adresse direct trop complexe.
Le nombre maximum des champs indiqus dans la hirarchie d'adresse d'une variable reprsente
direct est dpendante du matriel mais ne doit pas excder 8. Veuillez consulter votre
documentation matriel pour dterminer la profondeur maximum de la hirarchie d'adresse.
S1018
Constante du type entier trop grande/petite.
La valeur d'une constante doit tre dans la gamme des valeurs reprsentables pour son type. Le
type d'une constante de type entier dpend du type de la variable dont la constante a t assigne
mais ne doit pas excder la gamme INT/ULINT (entier sur 8 octets/entier non sign).
S1019
Constante de type entier trop grande/petite (ne s'adapte pas dans 32bits)
La valeur numrique de la constante indique excde la gamme des valeurs du type DINT/UDINT.
S1020
Valeur numrique trop grande/petite.
La valeur d'une constante doit tre dans la gamme des valeurs reprsentables pour son type. Le
type d'une constante de nombre entier sign dpend du type de la variable dont la constante a t
assigne mais ne doit pas excder la gamme LINT (entier sur 8 octets).
S1021
Erreur durant l'excution d'une fonction virgule flottante de la librairie mathmatique.
S1022
Constante de type chane invalide.
506
Annexes
La constante de type chane contient un caractre non valide. Une chane de caractres littrale est
une squence de zro n caractres termins par un caractre de terminaison (`). Tous les
caractres valides sont imprimables sauf `$'. La combinaison de trois caractres commenant par
dollar ($) suivi de deux chiffres hexadcimaux est interprt comme une reprsentation
hexadcimale d'un code de caractre huit bits voir la table Dfinition des chanes de caractres
littrales.
En plus, les combinaisons de 2 caractres commenant par le signe du dollar seront interprtes
comme la table suivante combinaisons de deux caractres dans des chanes de caractres quand
elles se produisent dans des chanes de caractres.
S1023
Nombre invalide (ex: constante numrique).
La constante numrique contient un caractre non valide. Voir la table de valeur numrique littrale
pour des exemples de valeurs numriques valides.
S1024
Constante invalide.
La constante de donne contient des caractres non valides.
Pour une liste de reprsentations constantes valides voir le Tableau 53: Mthode d'invocation des
blocs de fonctions pour le langage IL.
S1025
Adresse direct invalide.
Une variable directement reprsente contient les caractres non valides.
La reprsentation directe d'une variable sera dclare par la concatnation du signe "%", d'un
prfixe de location, d'un prfixe facultatif de taille et d'un ou plusieurs nombres entiers non signs
spars par des priodes (.)
Le fabricant indiquera la correspondance entre la reprsentation directe de la variable et
l'emplacement physique ou logique de l'adressage objet en mmoire, entre ou sortie. Quand une
reprsentation directe est prolonge avec les champs de nombre entier additionnels spars par
des priodes, elle sera interprte comme adresse physique ou logique hirarchique avec le
champ extrme gauche reprsentant le niveau le plus lev de la hirarchie, avec des niveaux
successivement plus bas apparaissant vers la droite. Par exemple, la variable %IW2.5.7.1 peut
reprsenter le premier "canal" (mot) du septime "module" dans le cinquime "module" du
deuxime "bus d'I/O" d'un systme de contrle programmable.
L'utilisation des variables directement reprsentes est seulement autorise dans les programmes.
Le nombre maximum des niveaux d'adressage hirarchique est dpendante du matriel et ne doit
pas excder 8.
Veuillez consulter votre documentation matriel pour dterminer les niveaux maximum de
l'adressage hirarchique.
S1026
Identifiant invalide (nom, variable, paramtre,...)
Un identifiant contient un ou plus caractres non valides.
507
Printed Documentation
Un identifiant est une chane de lettres, chiffres, et de caractres "_" qui commenceront soit par une
lettre ou un caractre "_". Les lettres peuvent tre en majuscules ou minuscules. On ne laisse pas
le multiple principal ou le multiple inclus souligne.
Les espaces dans l'identifiant ne sont pas autoriss.
S1027
Fin de fichier trouv dans l'en tte du fichier.
Une erreur s'est produite durant la lecture de l'en-tte du fichier. Vous pouvez corriger cette erreur,
en ouvrant le dossier avec un diteur de texte et en enlevant toutes les lignes prcdant les motscl PROGRAM, FUNCTION ou FUNCTION_BLOCK. Si cette erreur se produit plus souvent,
veuillez contacter votre fabricant.
S1028
Cette identifiant est trop long (> 64 caractres).
La longueur d'un identifiant est plus grand que la longueur maximum supporte. Dans cette
implmentation, seul les identifiants infrieur ou gale 64 caractres sont supports.
S1029
Ce mot (identifiant, constante littrale, chane, commentaire) est trop long (> 1024 caractres).
Un mot (identifiant, constante littrale, chane, commentaire) excde les 1024 caractre. Dans cette
implmentation, d'excution seulement jusqu' 1024 caractres sont soutenus.
S1030
Trop d'identifiant.
Le nombre maximum d'identifiants a t dpass. Le nombre d'identifiants maximum support est
65535.
S1031
Utilisation non autoris d'EN. Autoris comme identifiant pour variable boolenne dans une section
d'entre.
Une variable avec de le nom "EN" a t dclare dans la mauvaise section de variable ou avec un
type incorrect.
Le nom "EN" (enable) est rserv aux variables d'entre boolenne.
Si la valeur d'EN est FAUSSE quand la fonction ou le bloc fonction est appele, les oprations
dfinies par la fonction/bloc de fonction ne seront pas excutes. Si un paramtre de sortie boolen
ENON a t dfini alors la valeur du ENON est aussi remise FAUX.
Si la valeur d'EN est VRAIE quand la fonction ou le bloc de fonction est appele les oprations
dfinies par la fonction/bloc de fonction sont excutes. Ces oprations peuvent inclure l'affectation
d'une valeur boolenne de sortie boolen ENO, si ce paramtre a aussi t dfini.
S1032
508
Annexes
Utilisation non autoris d'ENO. Autoris comme identifiant pour variable boolenne dans une
section de sortie.
Une variable avec le nom "ENO" a t dclare dans la mauvaise section de variable ou avec un
type incorrect.
Le nom "ENO" (Enable Out) est rserv aux variables de sortie boolennes. Les variables "ENO"
ncessitent une variable d'entre boolenne "EN".
Si la valeur d'EN est FAUSSE quand la fonction ou le bloc fonction est appele, les opration
dfinis par la fonction/bloc de fonction ne seront pas excutes et le paramtre de sortie boolen
ENON est remis FAUX.
Si la valeur d'EN est VRAIE quand la fonction ou le bloc de fonction est appele les oprations
dfinies par la fonction/bloc de fonction sont excutes. Ces oprations peuvent inclure l'affectation
d'une valeur boolenne de sortie boolen ENO.
S3000
Bloc de fonction non dclar.
Un CAL une instance de bloc de fonction inconnue a t trouve.
Une instance de bloc de fonction doit tre dclar avant d'tre utilis.
Conseil
Assurez-vous que l'instance du bloc de fonction demand est dclare dans une des sections de
dclaration de variable.
Assurez-vous que le nom de l'instance du bloc de fonction est orthographi correctement.
S3001
Fonction non prsente.
Un appel une fonction inconnue a t trouv.
Une fonction doit tre dclare avant d'tre utilise. Les paramtres qu'une fonction emploie
doivent tre indiqus dans une dclaration, ou prototype, avant que la fonction puisse tre utilise.
Conseils
Assurez-vous que le fichier contenant la dclaration ou le prototype de la fonction est dans la zone
projet ou que la fonction fait partie du firmware.
Assurez-vous que le nom de la fonction est orthographi correctement.
S3002
Paramtre incorrecte.
Le paramtre demand n'a pas t trouv dans la liste de paramtre formel du bloc de fonction.
Conseils
Assurez-vous que le nom du paramtre est orthographi correctement.
Assurez-vous que la liste de paramtre de dfinition du bloc fonction contient un paramtre avec le
nom utilis dans la tche.
509
Printed Documentation
S3003
Saut d'tiquette non prsent.
Une instruction JMP une tiquette inconnue a t trouve.
Une tiquette doit tre dfinie dans la zone d'instruction d'un programme dans laquelle elle est
employe.
Conseils
Assurez-vous que l'tiquette est dfinie dans le mme programme.
Assurez-vous que le nom de l'tiquette est orthographi correctement.
S3004
Attribution multiple de variable/nom..
L'identifiant donne a t dfinie plusieurs fois.
Conseils
Assurez-vous que l'identifiant n'a pas t dfinie deux fois dans la mme programme
Assurez-vous que l'identifiant n'a pas t employe dans une dclaration de type utilisateur, une
dclaration de type global ou comme fonction, bloc de fonction ou nom de programme
S3005
Ce n'est pas une instance de bloc de fonction.
Une variable avec le nom utilis dans un CALL a t trouve mais n'est pas une instance de bloc
de fonction.
Conseils
Assurez-vous que l'identifiant est orthographie correctement.
Assurez-vous qu'une instance de bloc de fonction avec le nom indiqu a t dclar dans la zone
d'unit programme ou dans la zone globale.
S3006
Ce n'est pas une variable de structure ou une instance de bloc de fonction.
Un accs un membre d'une variable de structure ou de bloc de fonction a t tent, mais la
variable indique par l'identifiant n'est pas un bloc de fonction ou une structure.
Conseils
Assurez-vous que l'identifiant est orthographie correctement.
Assurez-vous que la variable avec le nom donn est une structure ou un bloc de fonction.
S3007
Ce n'est pas une Fonction
Un identifiant utilis comme nom de fonction a t dfinie mais n'est pas un nom de fonction.
510
Annexes
Conseils
Assurez-vous que l'identifiant est orthographie correctement.
Assurez-vous que l'identifiant est le nom de la fonction et pas celui d'un bloc de fonction
Assurez-vous qu' la position demande il s'agit d'une utilisation de fonction et non d'un appelle
d'instance de bloc de fonction
S3008
Aucun lment de structure or paramtre de bloc.
Un accs un membre d'une structure ou une variable de bloc de fonction a t essay, mais le
membre indiqu par l'identifiant n'est pas un paramtre du bloc de fonction ou une instance de la
structure.
Conseils
Assurez-vous que l'identifiant est orthographie correctement.
Assurez-vous que le bon identifiant ou la bonne instance de bloc de fonction est employ.
Si la variable consulte est une instance de bloc de fonction assurez-vous que le bloc de fonction a
un paramtre avec le nom donn par l'identifiant.
Si la variable consulte est une instance de structure, assurez-vous que la structure a un membre
avec le nom donn par l'identifiant.
S3009
Aucun saut d'tiquette.
L'identifiant utilis dans le JMP/JMPC/JMPCN la position donne a t trouve mais n'est pas un
nom d'tiquette.
Conseils
Assurez-vous que l'identifiant est orthographie correctement.
Assurez-vous que l'identifiant utilise aprs le JMP/JMPC/JMPCN est un nom d'tiquette.
S3010
Nom de type ou bloc de fonction attendu.
Un nom de type ou de bloc de fonction a t attendu. L'identifiant a t trouve dans la zone
courante mais n'est pas nom de type ni un nom de bloc de fonction.
Conseils
Vrifiez si le nom est orthographi correctement.
Assurez vous que l'identifiant n'est pas un nom de variable (par exemple un nom de bloc de
fonction).
S3011
L'identifiant n'est pas une variable or nom de type.
Une variable ou instance de bloc de fonction a t attendu. L'identifiant a t trouv dans le zone
courante mais n'est pas une variable ni une instance de bloc de fonction.
Conseils
511
Printed Documentation
512
Annexes
S3020
Type d'oprande incompatible.
Cette erreur se produit si une combinaison illgale des types de temps et de donnes de date est
utiliss pour les paramtres d'entre d'une opration SUB. Pour la combinaison autorises des
types de donnes d'entre et de sortie pour cette opration voir le tableau 30 "Fonctions de type de
donnes de temps" dans la nome IEC 1131-3.
Exemple:
VAR
TimeVar : TIME;
DateVar : DATE;
END_VAR
LD DateVar
SUB TimeVar (* Erreur: SUB n'est pas dfinie pour la combinaison de paramtres d'entre *)
ST DateVar
S3022
Type d'oprande invalide pour cette opration.
Type d'oprande non valide pour l'opration la position indique. Une oprande de type TIME ou
ANYNUM est attendue.
S3023
Type d'oprande invalide pour cette opration.
Type d'oprande non valide pour l'opration la position indique. Une oprande de type TIME,
TIME_OF_DAY, DATE_Inst_AND_TIME ou ANYNUM est attendue.
S3024
Type d'oprande invalide pour cette opration.
Type d'oprande non valide pour l'opration la position indique. Une oprande de type ANYBIT
est attendue.
S3025
Rsultat boolen exig.
Type de rsultat incompatible. Le rsultat devrait tre du type BOOL
S3026
Identifiant non dclar.
Cette erreur se produit, si l'identifiant la position donne, n'a pas t dfinie dans le domaine
valide pour l'unit compile de gestion du programme.
Exemple:
513
Printed Documentation
TYPE
Colours : (red, yellow, blue) := red;
END_TYPE
VAR
Colour : Colours := green; (* Erreur: green a t dclar en tant qu'numration de constante *)
END_VAR
LD IntVar (* Erreur: IntVar n'a pas t dclar. *)
ADD 5
ST IntVar
S3028
Comparaison non dfinie pour le type de donnes du rsultat actuel.
La comparaison sur la position donne n'est pas dfinie pour le type du rsultat actuel. C.--d. le
type du paramtre effectif est incompatible avec le type du premier paramtre formel. Pour plus
d'information voir Le tableau 28 "Fonctions de comparaison standard" dans la norme IEC 1131-3.
Exemple:
TYPE
Day_of_Week : STRUCT
Name : String;
DayNon : INT(1..7);
END_STRUCT;
END_TYPE
VAR
DayVar1 : Day_of_Week;
DayVar2 : Day_of_Week;
BoolVar : BOOL;
END_VAR
LD DayVar1
GT DayVar2 (* Erreur: comparaisons sur des variables structures n'est pas autorises *)
ST boolVar
S3030
Comparaison non dfinie pour ce type.
On ne permet pas
Le type de l'oprande la position donne pour des comparaisons n'est pas autoris. C.--d. le
type du paramtre effectif est incompatible avec le type du paramtre formel. Pour plus
d'information voir tableau 28 " Fonctions de comparaison standard" dans la norme IEC 1131-3.
Exemple:
TYPE
Day_of_Week : STRUCT
Name : String;
DayNon : INT(1..7);
END_STRUCT;
END_TYPE
VAR
514
Annexes
DayVar1 : Day_of_Week;
DayVar2 : Day_of_Week;
BoolVar : BOOL;
END_VAR
LD DayVar1
GT DayVar2 (* Erreur: comparaisons sur des variables structures n'est pas autorises *)
ST boolVar
S3032
Les dclarations autorfrences (c.--d.,rcursif) ne sont pas autoriss.
Une rcursion a dtect. Une fonction ne peut s'appeler priodiquement, ni directement ni
indirectement (c.--d. en appelant une autre fonction, qui appelle une des fonctions dans la
hirarchie appelante). Les blocs fonction et les programmes ne peuvent dclarer des instances
d'eux-mmes, ni directement ni indirectement (c.--d. en appelant un exemple d'un autre bloc
fonction qui dclare un type d'instance d'un bloc fonction dans la hirarchie appelante).
S3033
L'oprande du type TIME est attendu.
Une constante ou une variable de type TIME a t attendu et l'oprande la position donne est
d'un autre type.
Exemple:
VAR
StartTime : TIME_OF_DAY;
StopTime : TIME_OF_DAY;
RunTime : TIME := T#10s;
END_VAR
LD StartTime
ADD 10000 (* Erreur: l'oprande doit tre du type TIME *)
ST StopTime
LD StartTime
ADD RunTime (* Correcte *)
ST Stop Time
S3034
Chane trop longue pour la variable.
Une chane littrale a t assigne une variable chane mais la chane littrale ne s'adapte pas
dans la variable chane. C.--d. la longueur de la chane littrale est plus grande que la longueur
assigne la variable chane.
S3035
Type d'oprande non autoris pour cette fonction ! Oprande numrique ou oprande du type de
date ou heure attendu.
L'opration la position donne n'est pas dfinie pour le type du rsultat actuel (c.--d. le premier
paramtre effectif).
515
Printed Documentation
Exemple:
VAR
BitMake: WORD;
END_VAR
LD BitMask (* Erreur: l'oprande doit tre du type TIME, ANY_DATE ou ANY_NUM *)
SUB 3
ST BitMask
S3036
La constante de nombre entier est hors limite.
La constante de nombre entier la position donne n'est pas dans la limite du type de donnes
associ.
Exemple:
VAR
Range1 : UINT(-1..1000); (* Erreur: Disparit de signe. Les valeurs pour UINT ne doivent pas tre
ngatives *)
Range2 : INT(-1..36000); (* Erreur : Dbordement : la limite suprieure est plus grande que la
valeur maximum du type INT *)
END_VAR
S3037
La limite infrieure du sous domaine ne doit pas tre plus grande que la limite suprieure.
La valeur de la limite suprieure dans la dclaration du sous domaine sur la position indique est
infrieure la valeur de la limite infrieure. Les valeurs infrieurs et suprieur d'un sous domaine
sont du type entier et la limite suprieure doit tre plus grande que la limite infrieure.
S3038
L'initialisation est hors des limites du sous domaine (le type de donnes est un type de sous
domaine).
Une variable d'un type sous domaine a t initialise avec une valeur qui est hors des limites de ce
sous domaine. La dclaration d'un sous domaine indique que la valeur de n'importe quel lment
de donn de ce type peut seulement prendre des valeurs entre la limite suprieure et infrieure
indiques.
S3039
L'index est hors limite.
Un accs une variable d'un type tableau a t essay avec un index dont la valeur est hors de la
gamme indique dans le type ou la dclaration variable.
S3040
Type de donnes non valide. ANY_NUM attendu.
516
Annexes
L'opration la position donne n'est pas dfinie pour le type du rsultat actuel (c.--d. le premier
paramtre effectif).
Exemple:
VAR
BitMake: WORD;
END_VAR
LD BitMask (* Erreur: l'oprande doit tre du type TIME, ANY_DATE ou ANY_NUM *)
NEG
ST BitMask
S3041
Type EN/ENON non autoris. Doit tre du type boolen. Ne doit pas tre RETAIN.
Une variable d'entre avec un nom EN or une variable de sortie avec le nom EN a t dclare
avec un type illgal ou avec le qualificateur RETAIN.
L'identifiant "EN" est rserve pour des variables d'entre du type BOOL
L'identifiant "ENO" est rserv pour des variables de sortie du type BOOL. Cette variable ne doit
pas tre dclare avec le qualificateur RETAIN.
S3042
EN manquant. Utilisation de ENON autoris seulement en combinaison de EN.
Une variable de sortie avec le nom "ENO" a t dfinie mais aucune variable d'entre avec le nom
"EN" n'a t trouve. La variable de sortie "ENO" peut seulement tre employ en combinaison
avec "EN".
S3044
Donnes manquantes. Vous avez besoin d'un chargement ou d'une expression.
Le rsultat actuel est non dfini. Une instruction LD ou une expression doit prcder l'instruction sur
la position actuelle. Cette erreur se produit par suite de l'erreur S5010 de syntaxe d'erreur. Veuillez
dplacer l'instruction hors de la parenthse.
S3046
Les noms de type ne peuvent pas tre employ en tant que noms d'instance.
Un nom de type ou le nom d'une unit de gestion de programme a t employ dans une
dclaration comme nom de variable. Unit de gestion de programme et les type dfinis au niveau
du projet sont connus dans toutes les zones du projet et leurs noms ne peuvent pas tre employs
comme identifiant pour des variables locales.
Exemple:
FUNCTION Power
(* function block declarations *)
(* statements *)
517
Printed Documentation
END_FUNCTION
PROGRAM main
VAR
Power : REAL; (* Erreur: Power n'est pas autoris comme nom de variable, parce qu'elle a
t dj employe comme nom de fonction *)
END_VAR
(* Code *)
END_PROGRAM
S4000
'AT%': La dclaration simultane de plusieurs variables directes n'est pas autoris.
Une liste d'identifiants a t utilis dans une dclaration variable localise. Les reprsentations
directes peuvent seulement tre associes un identifiant simple.
Exemple:
La dclaration suivante n'est pas autorise:
VAR
dirVar1, dirVar2, dirVar3 : at%I0.0;
END_VAR
S4001
Trop de variables (identifiants). Le maximum d'identifiants est 60.
Trop d'identifiants dans le liste d'identifiant d'une dclaration de variable. Seul les listes
d'identifiants avec un maximum de 60 identifiants sont supportes.
S4003
Tableau trop grand.
Le nombre d'lment d'une dimension dans une dclaration de tableau dpasse le nombre
maximum d'lments support par le logiciel Motion Studio. Le nombre maximum d'lment est
dtermin par le type d'index du tableau.
S4005
La limite suprieur doit tre plus grande ou gale la limite infrieur.
La valeur de l'index de limite suprieure de la dclaration de tableau la position indique est
infrieure la valeur de l'index de mme dimension. L'index de limite suprieure d'une dimension
doit tre plus grand ou gal que l'index associ de limite infrieure.
S4006
Erreur de syntaxe. [ conseil : Dans certains cas, l'erreur relle est localise dans une ligne
prcdente ( '; 'manquant etc...) ].
S4007
518
Annexes
519
Printed Documentation
MonInt3 : int;
END_TYPE
S4011
Valide seulement dans les programmes et dans les sections VAR et VAR_GLOBAL.
Une variable directement reprsente a t dclare dans une unit d'organisation de programme
ou une zone de dclaration de variable dans laquelle elle n'est pas soutenue. Les dclarations de
variables localises sont autorises seulement dans les zones VAR ou VAR_GLOBAL des
programmes.
S4012
Valide seulement dans les programmes, blocs fonctionnels et les fonctions.
Un lment de dclaration de variable (VAR <declarations> END_VAR) a t trouv dans une zone
o elle n'est pas supporte. Les lments de dclaration de variables sont autoriss dans les
programmes, les fonctions et les blocs de fonction.
S4013
Valide seulement dans les programmes, blocs fonctionnels et les fonctions.
Un lment de dclaration d'une variable d'entre (VAR_ENTRE <declarations> END_VAR) a t
trouv dans une zone d'organisation de programme o elle n'est pas supporte.
S4014
Valide seulement dans les programmes et les blocs fonctionnels.
Un lment de dclaration d'une variable d'E/S (VAR_IN_OUT <declarations> END_VAR) a t
trouv dans une zone d'organisation de programme o elle n'est pas supporte.
S4015
Valide seulement dans les programmes et les blocs fonctionnels.
Un lment de dclaration d
t trouv dans une zone d'organisation de programme o elle n'est pas supporte.
S4016
Valide seulement dans les programmes et les blocs fonctionnels.
Un lment de dclaration d'une variable externe (VAR_EXTERNAL <declarations> END_VAR) a
t trouv dans une zone d'organisation de programme o elle n'est pas supporte. Les
dclarations variables externes sont supportes dans les programmes et les blocs fonctionnels.
S4017
Valide seulement dans les programmes.
Un lment de dclaration de variable globale VAR_GLOBAL <declarations> END_VAR) a t
trouv dans une zone d'organisation de programme o elle n'est pas supporte. Les dclarations
variables globales ne sont autoriss que dans les programmes.
520
une variable de s
Annexes
S4018
Valide seulement dans la sections VAR et VAR_GLOBAL.
Un "CONSTANT" a t employ dans une zone de dclaration de variable dans laquelle il n'est pas
soutenu.
S4019
Valide seulement dans les programmes ou dans les blocs fonctionnels et l'intrieur de sections
VAR-, VAR_OUTPUT-, ou VAR_GLOBAL.
Un "RETAIN" a t employ dans une zone de dclaration de variable dans laquelle il n'est pas
soutenu.
S4020
Valide seulement dans les programmes ou dans les blocs fonctionnels et l'intrieur de sections
VAR_INPUT ayant le type 'BOOL' sans Initialisation.
Une variable a t dclare avec un qualificateur de bord dans une partie d'organisation du
programme ou une zone de dclaration de variable dans laquelle elle n'est pas supporte.
S4021
Valide seulement dans les sections VAR_INPUT, VAR_OUTPUT, et VAR_IN_OUT.
Une variable a t dclare avec le qualificatif d'adresse dans une partie d'organisation de
programme ou une zone de dclaration de variable de dclaration dans laquelle elle n'est pas
supporte.
S4022
Valide seulement dans les blocs fonctionnels ou les fonctions et l'intrieur de sections
VAR..END_VAR sans CONSTANT/RETAIN.
Une variable a t dclare avec le qualificateur d'ATTRIBUTS dans une unit d'organisation de
programme ou une zone de dclaration de variable dans laquelle elle n'est pas supporte. Cet
attribut est supporte seulement dans les sections VAR sans CONSTANT ou RETAIN qualificatifs
de FUNCTIONs et de FUNCTION_BLOCKs.
Note : Le mot-cl ATTRIBUTS est support par Le logiciel Motion Studio seulement dans des
versions spciales pour dfinir des attributs additionnels de variables dans la prolongation de la
norme IEC61131-3. Vous ne devriez pas voir ce message dans le logiciel Motion Studio.
S4023
Valide seulement dans les sections TYPE..END_TYPE.
Une dclaration de structure a t trouve dans une zone de dclaration dans laquelle elle n'est
pas supporte. Les dclarations de structure sont seulement supportes dans les lments de
dclaration de TYPE.
S4024
Valide l'extrieur des sections VAR_EXTERNAL.
521
Printed Documentation
Une variable a t dclare dans une section de dclaration EXTERNAL avec une valeur initiale.
Ceci n'est pas autoris. Veuillez assigner la valeur initiale dans la dclaration variable GLOBALE
respective.
Exemple:
VAR_EXTERNAL
A : INT := 5;
END_VAR
VAR_EXTERNAL
A : INT;
END_VAR
VAR_GLOBAL
A : INT := 5
END_VAR
S4033
initialisation multiple.
Un membre d'une variable de structure a t initialis plus d'une fois. Cette erreur se produit quand
une initialisation explicite de structure et une initialisation d'lment sont faites.
Exemple:
L'initialisation suivante n'est pas autoris:
TYPE
StructType : Struct
Membre1 : int := 5;
Membre2 : bool;
END_STRUCT := (Membre1 := 4, Membre2 := true);
END_TYPE
Utilisez une des initialisations suivantes:
TYPE
StructType : Struct
Membre1 : int ;
Membre2 : bool;
END_STRUCT := (Membre := 4, Membre := true);
END_TYPE
ou
TYPE
StructType : Struct
Membre : int := 5;
Membre2 : bool := true;
END_STRUCT;
END_TYPE
522
Annexes
S4034
Nom POU non valide.
Cette erreur se produit quand un mot-cl a t employ comme nom de POU ou si aucun nom n'a
t dfini.
S4035
Type invalide pour une fonction.
Le type de fonction doit tre un type prdfini ou un identifiant. Cette erreur se produit le plus
gnralement, quand un mot-cl, une chane des caractres IEC61131-3 ou un nombre est
employ comme type de fonction ou si aucun type de fonction n'a t dfini.
S4036
Une fonction a besoin d'au moins un paramtre entre VAR_INPUT.
Une fonction a t dfinie sans paramtre d'entre. Dans IEC61131-3, une fonction a besoin au
moins d'un paramtre d'entre.
S5000
Mauvais type de paramtre.
Le type d'un paramtre effectif d'une fonction ou instance de bloc de fonction est incompatible avec
le type du paramtre formel qu'il lui a t assign.
S5001
Tableau attendu. Ce n'est pas un tableau.
Un accs index a t tent une variable qui n'est pas un tableau.
Exemple:
PROGRAM
VAR
x : INT;
y : INT;
END_VAR
LD x[3] (* non autoris si la variable n'est pas un tableau *)
ST y
END_VAR
S5002
Ce FUNCTION_BLOCK est appel par CAL si EN=TRUE..CALC/CALCN sont tous les deux
inadmissibles.
523
Printed Documentation
Une instance de bloc de fonction avec un paramtre d'entre "EN" est t appel par l'intermdiaire
de CALC/CALCN. Ceci n'est pas autoris. Employez l'instruction CAL la place. Le code d'un bloc
de fonction avec un paramtre d'entre "EN" est appel si la valeur de ce paramtre est VRAIE.
S5003
L'instance d'un bloc de fonction ne peut pas tre 'CONSTANT.
Une instance de bloc de fonction a t dfini dans une section de variable avec l'attribut
CONSTANT. Ceci n'est pas permis. Veuillez enlever l'attribut ou dplacez la dclaration d'instance
dans une autre section de variable, qui n'a aucun attribut CONSTANT.
S5004
Les instances de bloc de fonction sont invalides dans les fonctions, structures,et les tableaux.
Une instance de bloc de fonction a t dfini dans une section de variable d'une fonction ou comme
un membre d'une STRUCT ou d'un type ARRAY. IEC61131-3 ne permet pas des dclarations
d'instances de bloc de fonction dans les fonctions. Les instances de bloc de fonction cite comme
membres de STRUCT et types de tableau ne sont pas supportes par Le logiciel Motion Studio.
S5005
L'instance de bloc de fonction comme rsultat de fonction n'est pas support.
L'instance de bloc de fonction comme type de rsultat de fonction n'est pas support dans Le
logiciel Motion Studio.
S5006
L'instance de bloc de fonction comme paramtre n'est pas support.
Les paramtres de type de bloc de fonctions ne sont pas supports dans Le logiciel Motion Studio.
S5008
Est attendu un nombre entier ou un numr. Index de tableau invalide.
Le type variable ou la constante utilise comme index dans un accs variable class est
inadmissible. Un index doit tre du type INT ou du type d'numration.
S5009
Dbut de squence non valide. Le rsultat actuel est vide. Employez le 'LD 'pour initialiser le
rsultat actuel.
Cette erreur se produit quand une squence d'tat commence par une instruction qui utilise le
rsultat courant. La premire instruction est habituellement un charment d'tat. Cette erreur peut
galement se produire, si le rsultat actuel est employ dans la premire instruction aprs un CAL,
un JMP ou une tiquette.
Exemple:
PROGRAM main
VAR
Switch : BOOL;
524
Annexes
END_VAR
ST Switch (* Erreur: Le rsultat courant n'est pas dfini. *)
LD Switch
EQ TRUE
JMPC NextStep
LD TRUE
JMP End (* La valeur charge dans l'tat prcdent sera perdu aprs le JMP *)
NextStep:
LD FALSE
END:
ST Switch (* Erreur: Le rsultat courant n'est pas dfini aprs l'tiquette *)
(* Code *)
END_PROGRAM
S5010
Instruction non valide dans un calcul de parenthses.
L'instruction la position donne n'est pas autorise entre les parenthses. Veuillez remplacer
l'instruction ou dplacez-la hors des parenthses.
Exemple:
FUNCTION_BLOCK Count
VAR_ENTRE
StartValue : DINT;
FReset : BOOL;
END_VAR
VAR_OUTPUT
CurrentCountValue : DINT;
END_VAR
VAR
CountValue : DINT;
END_VAR
LD fReset
EQ TRUE
JMPCN Continue
LD StarValue
ST CountValue
Continue:
LD CountValue
ADD 1
525
Printed Documentation
ST CountValue
ST CurrentCountValue
END_FUNCTION_BLOCK
PROGRAM main
VAR
Counter : Count;
StartValue : DINT;
Result : DINT;
END_VAR
LD 5
ADD (StartValue
ST Counter.StartValue
EQ 1000
ST Counter.fReset
CAL Counter (* Erreur: CAL n'est pas autoris dans des parenthses *)
LD Counter.CurrentCounter (* Erreur: Load in
)
ST Result
END_PROGRAM.
S5011
Tableau d'instance de bloc de fonction non valide.
Les tableaux de bloc de fonction ne sont pas autoriss.
S5012
Type de rsultat et type d'oprande incompatibles.
Le type de rsultat de l'opration prcdente et le type de la variable dans laquelle ce rsultat est
stock sont incompatible.
Exemple:
VAR
X : INT;
END_VAR
LD 65000
ST x (* 65000 n'est pas du type INT *)
S5013
Type de rsultat et type du premier format du paramtre d'entr sont incompatible.
Le type de rsultat de l'opration prcdente et le type du premier paramtre d'entre dans un
appel de fonction ou de bloc de fonction sont incompatibles.
Exemple:
526
Annexes
FUNCTION Fun1
VAR
InVar : INT;
END_VAR
(* Code *)
END_FUNCTION
PROGRAM main
VAR
X : DINT;
END_VAR
LD x
ADD 1000
Fun1 (* Erreur: Type de rsultat de l'opration prcdente est un DINT, le type du premier
paramtre d'entre de Fun1 est un INT *)
ST x
END_PROGRAM
S5014
Mauvais nombre de paramtres.
Trop de paramtre ont t trouve dans l'appelle d'une fonction ou d'un bloc de fonction.
S5015
Type d'adresse directe non valide.
Une variable locale a t dclare avec un type non support. Seul les variables locales du type
ANY_NUM ou ANY_BIT sont supportes
S5016
La variable est en lecture seul. Accs en criture non valide.
Un accs en criture a t tent sur une variable qui est en lecture seule.
S5017
La variable n'est pas une structure.
Une valeur d'initialisation pour une structure a t assigne une variable qui n'est pas du type
structur.
Exemple.
VAR
A : INT := (m1 := 5, m2 := TRUE); (* non autoris *)
END_VAR
S5018
527
Printed Documentation
528
Annexes
Exemple:
FUNCTION_BLOCK Fb1
VAR_ENTRE
InParam1 : int;
InParam2 : int;
InParam3 : bool;
END_VAR
(* Code *)
END_FUNCTION_BLOCK
PROGRAM main
VAR
fbInst : fb1;
END_VAR
(* Code *)
cal fbInst( InParam1 := 1,
InParam1 := 2,
InParam3 := true
)
(* Code *)
END_PROGRAM
S5023
Trop de donnes initialises.
Cette erreur se produit, quand un membre d'une structure ou une instance est initialis deux fois
dans une initialisation explicite de structure.
Exemple:
TYPE
StructType : STRUCT
Member1 : int;
Member2 : int;
Member3 : bool;
END_STRUCT;
END_TYPE
VAR
StructVar : StructType := (Member1 := 1, Member1 := 2, Member3 := FALSE);
END_VAR
S5024
Type non permis pour cette opration.
L'opration sur la position donne n'est pas dfinie pour le type du rsultat actuel. C.--d. le type du
paramtre effectif est incompatible avec le type du premier paramtre formel.
Exemple:
VAR
X : REAL;
529
Printed Documentation
END_VAR
LD 1 (* La constante 1 peut tre converti implicitement en un entier ou un bit *)
LN (* Erreur: LN est seulement dfini pour le type ANY_REAL *)
ST X
S5025
Paramtre non autoris pour cette fonction.
Le type du paramtre effectif est incompatible avec tout les types autoriss pour le paramtre la
position donne.
Exemple:
VAR
X : STRING;
END_VAR
LD
EXAMPLE
530
Annexes
Cette erreur se produit, si le type d'un paramtre effectif n'est pas autoris pour l'opration la
position donne.
Exemple:
VAR
StringVar : STRING;
END_VAR
LD 1
CONCAT
paramtre d'entr *)
EXAMPLE(* Erreur:
ST StringVar
S5029
Appel de bloc de fonction non valide.
Cette erreur se produit, si un appel une instance de bloc de fonction est tent et que cette
instance est un paramtre d'entre d'un appel de bloc de fonction ou de programme.
Example:
FUNCTION_BLOCK Fb1
VAR_ENTRE
InParam1 : int;
InParam2 : int;
InParam3 : bool;
END_VAR
(* Code *)
END_FUNCTION_BLOCK
FUNCTION_BLOCK Fb2
VAR_ENTRE
fbInstEntre : Fb1;
(* other Entre declarations *)
END_VAR
VAR
(* local variable declarations *)
END_VAR
(* Code *)
cal fbInstEntre( InParam1 := 1,
InParam2 := 2,
InParam3 := true
)
(* Code *)
END_PROGRAM
S5030
Variable en criture seul. L'accs en lecture non valide.
Un accs en lecture a t tent sur une variable qui est en criture seule.
S5031
531
Printed Documentation
L'accs par bit est autoris seulement sur des types de donnes bit.
Cette erreur se produit si une slection de bit a t tent sur une variable qui n'est pas du type de
donnes bit ou du type BOOL.
Exeample:
VAR
DintVar : DINT;
BoolVar : BOOL;
END_VAR
LD DintVar.4 (*Erreur : le slection de bit est autoris seulement sur des variables du type
ANY_BIT except BOOL *)
ST BoolVar
S5032
La position du bit est plus grande que le nombre de bit contenue dans la variable slectionne.
Cette erreur se produit, quand la position du bit donn dans un choix de bit est plus grand que le
nombre de bit contenue dans la variable slectionne. Le nombre de bit accessible dans un choix
de bit dpend du type de donnes de la variable. Les positions de bit sont comptes du bit de poids
faible la position 0 au bit de poids fort la position n - 1, o n est le nombre de bit dans le type de
donnes.
Exemple:
VAR
wVar : WORD := 5;
fVar : BOOL := FALSE;
END_VAR
(* Code *)
LD wVar.16 (* La variable slectionne est du type WORD. c..d il a 16 bits avec les positions de
bit
de 0 15. *)
ST fVar
(* Code *)
S5033
Paramtre IN_OUT manquant. Veuillez fournir chaque paramtre formel IN_OUT avec un
paramtre effectif
Cette erreur se produit, si au moins un des paramtres IN_OUT d'un bloc de fonction n'est pas
fourni avec un paramtre effectif, lors de l'appel de l'instance du bloc de fonction respectif. Les
paramtres IN_OUT sont des rfrences et doivent tre fournis avec un paramtre effectif dans
chaque appel d'instance de bloc de fonction.
Exemple:
FUNCTION_BLOCK Fb1
VAR_IN_OUT
InOutParam1 : INT;
InOutParam2 : BOOL;
532
Annexes
END_VAR
(* Code *)
END_FUNCTION_BLOCK
PROGRAM main
VAR
fbInst : fb1;
IntVar1 : INT;
IntVar2 : INT;
END_VAR
(* Code *)
cal fbInst() (* Erreur: aucune des variables de FB1 n'est fourni avec un paramtre effectif *)
cal fbInst( InOutParam1 := IntVar1
) (* Erreur: le paramtre effectif pour la seconde paramtre IN_OUT est manquant *)
cal fbInst ( InOutParam1 := IntVar1,
InOutParam2 := IntVar2
) (*Correct : chaque paramtre formel IN_OUT de FB1 est fourni avec un paramtre effectif *)
(* Code *)
END_PROGRAM
S5034
Paramtre IN_OUT non valide. Les paramtres IN_OUT ne peuvent pas tre des expressions ou
des constantes.
Cette erreur se produit, si un paramtre IN_OUT est fourni avec une expression ou une valeur
constante. Ceci n'est pas autoris parce que les paramtres IN_OUT sont des rfrences.
Exemple:
FUNCTION_BLOCK Fb1
VAR_IN_OUT
InOutParam1 : INT;
InOutParam2 : BOOL;
END_VAR
(* Code *)
END_FUNCTION_BLOCK
PROGRAM main
VAR
fbInst : fb1;
IntVar1 : INT;
IntVar2 : INT;
END_VAR
(* Code *)
cal fbInst( InOutParam1 := IntVar1,
InOutParam2 := 5
) (* Erreur: le paramtre effectif pour le deuxime paramtre IN_OUT est une constante. *)
533
Printed Documentation
534
Annexes
VAR
(* Definitions de variables locales *)
END_VAR
(* Code *)
END_PROGRAM
FUNCTION_BLOCK Fb1
TYPE
StructType : STRUCT
Member1 : BOOL;
Member2 : STRING;
END_STRUCT;
END_TYPE
VAR_EXTERNAL
GlobVar : StructType; (* Non autoris car StructType n'est pas connu de POU *)
(* Other external declarations *)
END_VAR
VAR_ENTRE
InVar : StructType; (* Non autoris car StructType n'est pas connu de POU *)
(* Autre declarations d
entre *)
END_VAR
(* Code *)
END_FUNCTION_BLOCK
S5037
Trop d'indices l'intrieur des crochets [.... ] d'un accs de tableau.
Cette erreur se produit, si un accs un lment de tableau est tent avec plus d'index que de
dimensions fourni dans la dfinition du type de type de donnes d'lments.
Exemple:
PROGRAM main
TYPE
ArrayType : Array[1..5, 1..20] of INT;
(* Autre definitions de type *)
END_TYPE
VAR
ArrayVar : ArrayType;
IntVar : INT;
(* Autre definitions de variables *)
END_VAR
LD ArrayVar[1, 2, 3] (* Erreur: la variable de type tableau a seulement 2 dimensions *)
ST IntVar
(* Code *)
END_PROGRAM
S5038
535
Printed Documentation
Les variables directement reprsentes ne sont pas autorises comme paramtres dans les
prototypes.
Une variable directement reprsente a t dclare dans la section VAR_ENTRE,
VAR_OUTPUT ou VAR_IN_OUT d'une unit de gestion de programme. Ceci n'est pas autoris.
Les variables directement reprsentes ne sont pas autorises dans les fonctions et les blocs de
fonction. Les variables de VAR_ENTRE , VAR_OUTPUT et VAR_IN_OUT ne sont pas
supportes dans les programmes.
Si vous voulez accder une variable directement reprsente d'un bloc de fonction, dclarer la
variable avec un nom symbolique dans la section de VAR_GLOBAL d'un programme et employer
ce nom symbolique dans une dclaration dans la section de VAR_EXTERNAL du bloc de fonction.
Les fonctions ne peuvent pas accder des variables directement reprsentes.
Exemple:
FUNCTION_BLOCK SetOutput
VAR_EXTERNAL
OutputLocation : BOOL;
END_VAR
VAR_ENTRE
Value : BOOL;
END_VAR
LD Value
ST OutputLocation
END_FUNCTION_BLOCK
PROGRAM main
VAR_GLOBAL
OutputLocation AT%Q0.0 : BOOL;
END_VAR
VAR
Switch : SetOutput;
CurrentValue : BOOL;
END_VAR
LD CurrentValue
NOT
CAL Switch(Value := CurrentValue)
END_PROGRAM.
S5039
"&x" est seulement autoris si x est une variable directe.
L'identifiant prcde par l'oprateur & n'est pas un nom d'une variable directement reprsente.
Conseils
Assurez-vous que le nom est orthographi correctement.
Assurez-vous que la variable est une variable directement reprsente
536
Annexes
S5040
Trop peu d'indices l'intrieur des crochets [.... ] d'un accs de tableau
Cette erreur se produit, si un accs un lment de tableau est tent avec moins d'indice que de
dimensions fourni dans la dfinition du type donnes d'lments.
Exemple:
PROGRAM main
TYPE
ArrayType : Array[1..5, 1..10, 1..20] of INT;
(* Other type definitions *)
END_TYPE
VAR
ArrayVar : ArrayType;
IntVar : INT;
(* Autres definitions de variable *)
END_VAR
LD ArrayVar[1, 2] (* Erreur: Les variables du type tableau ont 3 dimensions *)
ST IntVar
(* Code *)
END_PROGRAM
S5041
Les valeurs du type INT24 ou REAL48 sont non valides dans ce contexte.
Opration non support par ce type.
S5042
Les instances de bloc de fonctions ne doivent pas tre 'RETAIN'.
Une instance d'un bloc de fonction a t dfini dans une section variable avec l'attribut RETAIN.
Ceci n'est pas support. Veuillez enlever l'attribut ou dplacez la dclaration de l'instance dans une
autre section de variable, qui a aucun POUR MAINTENIR l'attribut.
S6002
Pas de prototype.
Un type inconnu nom a t employ dans une dclaration variable ou un appel de fonction.
Conseils
Assurez-vous qu'un type, une fonction ou un bloc de fonction avec ce nom soit dclar dans le
contexte du projet actif.
Assurez-vous que le nom du type, de la fonction ou du bloc de fonction est orthographi
correctement.
Re-compilez entirement le projet.
537
Printed Documentation
Veuillez consulter votre documentation matriel si aucune des actions ci-dessus n'limine le
problme.
S6004
Rcursion (c.--d., autorfrencement direct ou indirect) dtecte
Rcursion dtecte. Une fonction ne peut s'appeler priodiquement, ni directement ni indirectement
(c.--d. en appelant une autre fonction, qui appelle une des fonctions dans la hirarchie appelante).
Les blocs de fonction et les programmes ne peuvent dclarer des instances d'eux-mmes, ni
directement ni indirectement (c.--d. en appelant une instance d'un autre bloc de fonction qui
dclare une instance d'un type de bloc de fonction dj utilis dans la hirarchie appelante).
S6005
Trop de types et de blocs de fonction. Pour le nombre maximum de dfinitions de type, veuillez
consulter votre documentation matriel.
Cette erreur se produit, si trop de types, de fonction ou des blocs de fonction ont t employes
dans la hirarchie appelante d'une unit de gestion de programme. Pour le nombre maximum des
types, les fonctions et les blocs de fonction soutenus voir le Tableau D.1 : Implementationdpendance des paramtres.
Les erreurs du MPC
Les erreurs du MPC
Les numros des erreurs dtectes sont affichs sur l'afficheur 7 segments du MPC par ordre
croissant avec rebouclage sur la premire erreur.
Un dfaut commence toujours d'un triple E suivi du code d'erreur puis un tirait et enfin un code
d'information.
Ex : Pour une erreur de temprature moteur E07 et une erreur de poursuite E12 sur un variateur
ayant le numro de noeud 3, on aura :
Dtail
Description
01
N de variateur
Sur tension
02
N de variateur
Sous tension
03
N de variateur
I2t
04
N de variateur
Sur courant
538
Annexes
05
N de variateur
Court circuit
06
N de variateur
Temp IGBT
07
N de variateur
Temp Moteur
08
N de variateur
Retour de position
09
N de variateur
Paramtres
10
N de variateur
Modle de drive
11
N de variateur
DPL(n'existe pas)
12
N de variateur
Erreur de poursuite
13
N de variateur
Flash
14
N de variateur
FPGA
15
N de variateur
Sur vitesse
16
N de variateur
Saturation rsolveur
17
N de variateur
Alimentation 24V
18
N de variateur
19
N de variateur
20
N de variateur
21
N de variateur
Erreur "externe"
Dtail
Description
33
N de noeud
34
N de noeud
Erreur de Version d'OS IMD [Le flashage peut avoir chou cause
d'un boot trop ancien sur l'IMD]
35
N de noeud
36
N de noeud
37
N de noeud
38
N de noeud
39
N de noeud
Dtail
Description
50
51
539
Printed Documentation
52
Impossible d'allouer les buffer pour les masques des segments BBM
Impossible d'allouer les buffer pour les masques des segments BBM
53
54
Erreur interne
540
Trap 1 ethercat
Trap 2 ethercat
Trap 3 ethercat
Trap 4 ethercat
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Trap 1 Motion
24
Trap 2 Motion
Annexes
25
26
27
28
29
Erreur canhost
30
Trap 5 ethercat
31
32
33
34
35
36
Trap LXRT
37
38
39
40
41
42
Flash trap
43
44
45
Garbage trap
46
47
48
49
50
51
52
53
54
55
56
57
58
Pb modbus<=>CAN
59
60
61
62
63
541
Printed Documentation
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
55
(sur le rseau) Adresse d'un priphrique ethercat hors des limites (<=0 ||
>=AXE_MAX)
56
57
542
Annexes
TRAP interne
TRAP coe
10
11
12
13
14
15
16
17
58
59
FB firmware inconnu
Division par 0
erreur inconnue
10
11
12
13
543
Printed Documentation
544
14
15
16
17
18
19
20
21
22
24
25
Trop de WD a grer
26
27
28
N de tche incorrecte
29
Requete incorrecte
30
31
32
33
34
35
36
37
38
39
40
41
42
N d'axe incorrect
43
44
45
46
47
48
49
Trap GEARBOX
50
51
N de came invalide
52
53
Annexes
54
55
direction invalide
56
57
58
59
60
61
62
63
64
65
66
67
68
60
61
62
63
pas de tche
Opcode invalide
10
Extension invalide
11
12
13
14
15
545
Printed Documentation
64
65
67
Erreur MPC
1
Communication
Communication Ethernet
Adresses IP
Il existe deux versions d'adresse IP dans l'utilisation aujourd'hui. Presque tous les rseaux
emploient l'adresse IP version 4 (IPv4), mais un nombre croissant d'ducatif et les rseaux de
recherches ont adopt l'adresse IP version 6 (IPv6). Nous allons prsenter le dtail de l'IPv4 dans
ce chapitre.
Voici un exemple:
11000100 11101001 11111101 01111011
196
233
253
123
196.233.253. 123
HostID
NetID
546
Annexes
Chaque octet dans des chanes d'une adresse IP est en valeur d'un minimum de 0 au maximum
de 255. Le champ complet des adresses IP est de 0.0.0.0 255.255.255.255. Cela reprsente
un total de 4.294.967.296 adresses IP possibles.
Voir aussi :
Classes d'adresses
Masque sous rseau
Les rseaux interdits
Distribution des adresses et connectivit
Classes d'adresses
Il y a 5 classes d'adresse IP, les trois premires classes (A, B et C) sont utilises dans les rseaux
standards.
Classe A :
. 1er octets : pour le rseau (NetID)
. 2,3, 4me octets : pour les ordinateurs (HostID)
. 0XXXXXX1 -----> 01111110
L'adressage est de 1.0.0.1 126.255.255.254
L'adresse IP de classe A autorise prs de 127 rseaux de plus de 16 millions de
machines par rseau
Classe B :
. 1, 2me octet : pour le rseau
. 3, 4me octet : pour les ordinateurs
. 10XXXXXX -----> 10111111
L'adressage est de 128.0.0.1 191.255.255.254
127.0.0.1 : l'adresse pour localhost ( La machine locale )
L'adresse IP de classe B autorise prs de 16575 rseaux de plus de 6500 de
machines par rseau
Classe C :
. 1, 2, 3me octet : pour le rseau
. 4me octet : pour les machines
. 110XXXXX -----> 11011111
L'adressage est de 192.0.0.1 223.255.255.254
547
Printed Documentation
548
Annexes
Adresse IP
1.X.Y.Z 126.X.Y.Z
255.0.0.0
128.X.Y.Z 191.X.Y.Z
255.255.0.0
192.X.Y.Z 223.X.Y.Z
255.255.255.0
Autre notation:
192.168.67.0 est le NetID avec le masque 255.255.255.0 (24 bits).
On peut noter 192.168.67.0/24
Adresse de diffusion (broadcast):
Cette adresse permet une machine d'envoyer un datagramme toutes les
machines d'un rseau. Cette adresse est obtenue en mettant tous les bits de
HostID 1.
Exemple:
200.140.29.255 est une adresse de diffusion sur tout le rseau de
200.140.29.0
150.70.255.255 est une adresse de diffusion sur tout le rseau de
150.70.0.0
Voir aussi :
Adresses IP
Classes d'adresses
Les rseaux interdits
Distribution des adresses et connectivit
Un certain nombre de ces adresses IP sont rserves pour des rseaux locaux
connects l'Internet. Elles ne doivent pas tre utilises sur l'Internet car ces adresses
549
Printed Documentation
sont "non routes", les paquets d'un ordinateur possdant une adresse prive ne seront
pas transmis aux autres ordinateurs.
Adresses Interdites
De
10.0.0.0
10.255.255.255
De
172.16.0.0
172.16.255.255
De
192.168.0.0
192.168.255.255
Il est galement interdit d'attribuer une machine d'un rseau IP, l'adresse du rseau
(ex : X.Y.Z.0) et l'adresse de diffusion (broadcast) (ex : X.Y.Z.255).
Voir aussi :
Adresses IP
Classes d'adresses
Masque sous rseau
Distribution des adresses et connectivit
Distribution des adresses et connectivit
550
L'adresse IP n'est pas toujours ncessaire pour la connexion entre deux ordinateurs.
Le rseau multipoint utilise des adresses IP pour la connexion, le partage de donnes,
ressource, etc.
En gnral, un ordinateur dispose d'une seule interface, mais il peut avoir aussi deux
ou plusieurs interfaces permettent l'interconnexion de plusieurs rseaux.
Un ordinateur uniquement connect l'Internet par un modem RTC (Rseau
tlphonique commut) aura une seule adresse IP, cette adresse est donne par l'ISP
(Internet Service Provider) ou FAI (Fournisseur d'Accs l'Internet)
Annexes
Voir aussi :
Adresses IP
Classes d'adresses
Masque sous rseau
Les rseaux interdits
Communication Srie
Introduction aux communication srie
Le protocole srie libre utilise les fonction COMOPEN et COMCLOSE comme pour le modbus. Ce
protocole utilise :
1 Bit de start
6, 7 ou 8 bits de donnes
1 ou 2 bits de stop
551
Printed Documentation
de l'Internet. Il nest pas possible de mettre un port en coute autrement quavec le modbus TCP,
donc il pas possible dutiliser le TCP libre sur un port en coute.
Liste d'instructions
COMCARIN
Syntaxe
<NbCar> := COMCARIN (<Com>)
Types accepts
<Com> : tHandle
<NbCar>:UDINT
Description
Cette fonction retourne le nombre de caractres dans le buffer de rception
COMCLEARIN
Syntaxe
COMCLEARIN (<Com>)
Types accepts
<Com> : tHandle
Description
Cette fonction vide le buffer de rception.
COMCLEAROUT
le
e
Effac
buffer d'mission
Syntaxe
COMCLEAROUT (<Com>)
Types accepts
<Com> : tHandle
Description
Cette fonction vide le buffer d'mission.
COMCLOSE
Syntaxe
COMCLOSE (<Com>)
Type accept
<Com> : tHandle
Description
Cette instruction permet de fermer le port de communication srie.
<Com> variable du type port communication.
552
Annexes
COMGETCTS
Lit CTS
Syntaxe
COMGETCTS (<Com>)
Types accepts
<Com> : tHandle
Description
Cette fonction retourne l'tat du signal CTS
Remarque
La fonction s'utilise uniquement avec le port SERIAL1 sinon elle provoque une erreur systme.
COMMODBUSCRC
Calcule le CRC
Syntaxe
<CRC> := COMMODBUSCRC (<Adresse>, < Taille >)
Types accepts
< Adresse > : UINT
< Taille > : UINT
< CRC > : UINT
Description
Cette fonction calcule le CRC (16 bits pour Modbus) d'un bloc de donnes
<Adresse> : adresse dans le segment d'change
<Taille> : nombre d'octets sur lequel le calcul s'applique
553
Printed Documentation
<Adresse> : UDINT
<Port> : UINT
<ComTCP> : tHandle
Description
Cette instruction permet d'ouvrir le port de communication Modbus sur bus ETHERNET TCP/IP.
<Adresse> adresse IP du priphrique esclave.
<Port> port IP contacter, mettre 0 par le port par dfaut (port 502)
<ComTCP> variable du type port communication.
COMOUTEMPTY
Syntaxe
<Empty> := COMMOUTEMPTY (<Com>)
Types accepts
<Com> : tHandle
Description
Cette fonction retourne TRUE si aucun caractre en attente d'mission sinon elle retourne FALSE.
COMSETRTS
Positionne RTS
Syntaxe
COMSETRTS (<Com>,<Actif>)
Types accepts
<Com> : tHandle
<Actif> : BOOL
Description
Cette fonction force le signal RTS 0 ou 1.
COMREAD
Syntaxe
<TailleRecue> := COMREAD (<Com>, <Adresse>, < Taille >)
Types accepts
<Com> : tHandle
< Adresse > : UINT
< Taille > : UINT
< TailleRecue > : UDINT
Description
Cette fonction lit des donnes sur une liaison, et est non bloquante.
La fonction dpile le buffer de rception et retourne tout ce qui est disponible sans forcment que le
nombre d'octets demand soit forcment atteint.
<Adresse> : adresse dans le segment d'change des donnes recevoir (correspond la colonne
Adresse dans l'diteur de variables d'changes).
554
Annexes
COMWRITE
Syntaxe
<TailleEnvoie> := COMWRITE (<Com>, <Adresse>, < Taille >)
Types accepts
<Com> : tHandle
< Adresse > : UINT
< Taille > : UINT
< TailleEnvoie > : UDINT
Description
Cette fonction envoie des donnes sur une liaison, et est non bloquante.
<Adresse> : adresse dans le segment d'change des donnes recevoir (correspond la colonne
Adresse dans l'diteur de variables d'changes).
<Taille> : nombre d'octets envoyer
<TailleEnvoie> : nombre d'octets rellement envoys.
Remarque
Si le protocole configur pour le port srie est modbus esclave, alors l'appel cette fonction
dclenche une erreur systme
Si tous les octets ne peuvent pas tre pris en compte, MODBUSERROR positionne 1 le bit
overflow buffer sortie
Lors de la copie des donnes dans le buffer d'envoi du port srie concern, cette fonction prend le
smaphore systme zone d'change
Dans le cas du 485, effectue l'envoi en prenant la ligne en permanence tant que le buffer
d'mission n'est pas vide. Voir restrictions plus haut concernant la vitesse maximale que l'on peut
atteindre
ROUTEIMDADD
Syntaxe
ROUTEIMDADD (<Add>)
Type accept
<Add> : UDINT
Description
Cette fonction change le N de noeud de base dans le routage Modbus/CAN=>IMD sur Ethercat
Communication Modbus
Introduction Modbus RTU/ASCII
555
Printed Documentation
Le protocole ModBus (constructeur Modicon est un protocole de dialogue crant une
structure hirarchise avec un matre et un ou plusieurs esclaves.
Modle OSI :
556
Annexes
Ce matre ritre la question lors d'un change erron et dcrte l'esclave absent aprs une nonrponse dans un temps donn (time out). Il ne peut y avoir sur la ligne qu'un seul quipement en
train d'mettre.
Aucun esclave ne peut lui-mme envoyer un message sans y avoir t invit. Toutes
communications d'esclave esclave ne peuvent exister que si le logiciel du matre a t conu
pour recevoir des donnes et les renvoyer d'un esclave l'autre .
Le matre peut adresser 127 quipements reprs de l'quipement n1 l'quipement n126,
l'quipement 0 tant prdfini.
Si le matre utilise le numro d'quipement 0, une diffusion vers tous les esclaves sera effectus.
L'utilisation de l'quipement 0 n'est autoris qu'en criture.
03
04
06
16
:
:
:
:
** : Ce code fonction est utilis galement pour l'accs au format "mot double" et au format "mot
flottant".
03
04
06
16
:
:
:
:
N
d'esclave
Code
: 0 255
: Indique le type d'change
557
Printed Documentation
fonction
Zone de
donnes
CRC16
Adresse du
priphrique
1 octet
Rponse :
Adresse du
priphrique
1 octet
Code fonction 03
ou 04
1 octet
Adresse du premier
mot
MSB
LSB
Nombre de mots
lire
MSB
LSB
Nombre d'octets
lus
1 octet
Code fonction 03 ou
04
1 octet
MSB
LSB
Adresse du
priphrique
1 octet
Code fonction 06
1 octet
Code fonction 06
1 octet
Adresse du mot
Valeur du mot
MSB
MSB
LSB
LSB
Adresse du mot
Valeur du mot
MSB
MSB
LSB
LSB
Code fonction 10
1 octet
1 octet
Rponse :
Adresse du
priphrique
1 octet
Code fonction 10
1 octet
Adresse du premier
mot
MSB
LSB
Nombre de mots
crire
MSB
Adresse du premier
mot
MSB
LSB
LSB
Nombre de mots
crits
MSB
LSB
REPONSE ERRONEE
Adresse du
priphrique
1 octet
Code fonction
1 octet
Code de rponse
errone
1 octet
CRC
LSB
MSB
Le codage des donnes s'effectue toujours dans l'ordre poids fort-poids faible
sauf pour le CRC o l'ordre est invers !
Introduction Modbus TCP
558
No
d'o
do
1o
Annexes
Le protocole MODBUS sur TCP/IP utilise la messagerie MODBUS pour la couche application et
TCP/IP pour la communication Ethernet.
Modle OSI :
On peut reprsenter l'ensemble des couches ralises pour MODBUS sur TCP selon le
modle suivant :
Couche 3 :
Couche 2b :
Ethernet V2
Couche 2a :
559
Printed Documentation
ADU
PDU
560
Annexes
Le champ d'adresse de l'esclave utilis par le protocole Modbus standard est remplac par un bit
identifiant dans l'en-tte HBAP. Ce bit est appel "Unit Identifier".
Toutes les requtes et rponses de modbus sont conues de telle manire que le destinataire
puisse vrifier qu'un message est fini.
L'information de longueur est diffuse dans l'en-tte de MBAP pour permettre au destinataire
d'identifier les frontires des messages mme si le message a t coup en plusieurs paquets pour
la transmission.
L'en tte MBAP est compos de 7 octets.
longueur
2 Octets
description
Identification des
requtes ou
rponses ModBus
0 = Protocole
ModBus
client
Initialis
par le client
2 Octets
Nombre d'octets du
PDU
1 Octet
N d'esclave (en
gnral 1)
Initialis
par le client
(requte)
Initialis
par le client
Identifiant
2 Octets
Initialis
par le client
serveur
reproduit par le
serveur ds rception
de la requte
reproduit par le
serveur ds rception
de la requte
Initialis par le
serveur (rponse)
reproduit par le
serveur ds rception
de la requte
Modbus Esclave
Modbus Esclave
Introduction
Le protocole MODBUS est un protocole matre/esclave utilis principalement dans le milieu
industriel. Il permet des quipements de supervision (Human Machine Interface, Supervisory
Control And Data Acquisition), de communiquer avec un ou plusieurs quipements industriels
(Programmable Logic Controllers, automates, sondes, etc..).
Ce protocole fonctionne sous forme de requte. Ces messages transitent sur un support physique
qui peut tre une liaison asynchrone RS232, RS422 ou RS485.
Pour distinguer un quipement esclave d'un autre, on attribue un numro d'identification (Unit ID)
chaque quipement. Grce ce numro et dans le cas d'une liaison plusieurs (cas du RS485)
seul l'quipement esclave concern rpondra une requte d'un quipement matre.
Le MPC gre le protocole MODBUS RTU Esclave.
La vitesse de transmission peut aller jusqu' 128000 bauds
Les fonctions de lecture de mots (fonction n3 ou 4) et criture des mots (fonction n6 ou 16) sont
reconnues par le MPC.
Dictionnaire
Le dictionnaire du MPC directement accessible dans le soft Motion Studio partir du menu Aide \
Table Modbus class par ...
Modbus Matre
Modbus Matre
561
Printed Documentation
Introduction
Le protocole MODBUS est un protocole matre/esclave utilis principalement dans le milieu
industriel. Il permet des quipements de supervision (Human Machine Interface, Supervisory
Control And Data Acquisition), de communiquer avec un ou plusieurs quipements industriels
(Programmable Logic Controllers, automates, sondes, etc..).
Ce protocole fonctionne sous forme de requte. Ces messages transitent sur un support physique
qui peut tre une liaison asynchrone RS232, RS422 ou RS485.
Pour distinguer un quipement esclave d'un autre, on attribue un numro d'identification (Unit ID)
chaque quipement. Grce ce numro et dans le cas d'une liaison plusieurs (cas du RS485)
seul l'quipement esclave concern rpondra une requte d'un quipement matre.
Le MPC gre le protocole MODBUS RTU Matre.
La vitesse de transmission peut aller jusqu' 128000 bauds
Les fonctions de lecture de mots (fonction n3 ou 4) et criture des mots (fonction n6 ou 16) sont
utilises par le MPC.
Instructions
Le protocole modbus matre utilise les instruction COMOPEN et COMCLOSE pour grer le port.
Le descripteur de port retourn par COMPEN est alors utilis dans les fonctions de lecture
MODBUSREAD et d'criture MODBUSWRITE.
En utilisant COMOPENTCP, on peut utiliser les fonctions du modbus TCP. Il faut alors utiliser la
fonction STRINGIP_TO_UDINT pour fournir l'adresse IP de destination sous la forme condense
d'un UDINT la fonction COMOPENTCP.
Un mode tendu est galement accessible grce la fonction MODBUSSETEXTENDED. En mode
tendu modbus TCP, dans le protocole modbus, la taille du buffer indique sur 8 bits ne contient
que les 8 bits de poids faible de la taille relle du buffer. De mme cette taille nest vrifie que par
rapport aux 8 bits de poids faible de la taille que le buffer devrait avoir. En mode tendu, le buffer
interne contient 8192 octets. Ceci permet des changes de plus de 256 octets.
Liste d'instruction
MODBUSREAD
Syntaxe
<Retour> := MODBUSREAD (<Com>, <Destination>, <Adresse>, <Segment>, <Taille>)
Type accept
<Com> : tHandle
<Destination> : USINT
<Adresse> : UINT
<Segment> : UINT
<Taille> : UINT
<Etat> : BYTE
Description
Cette instruction permet de lire n mots en Modbus (envoie d'une commande Modbus de type 3 et
attente de la rponse).
<Com> variable du type port communication.
<Destination> : N noeud Modbus de destination
En Modbus srie, il dsigne le numro de noeud Modbus sur le rseau.
En Modbus TCP, il dsigne le numro de noeud Modbus de l'lment adress par la
passerelle.
562
Annexes
<Adresse> : adresse dans la table Modbus de destination (correspond la colonne Adresse dans
l'diteur de variables d'changes).
<Segment> : adresse dans le segment d'change
<Taille> : nombre de mots de 16 bits lire
<Retour> retour de l'instruction :
0 si le port n'est pas ouvert ou invalide
1 si pas de dfaut
Remarques
En cas d'erreur, cette instruction dclenche un vnement systme.
La taille est limite :
125 mots en mode normal (srie ou modbus TCP)
4096 mots en mode tendu (modbus TCP)
MODBUSWRITE
Syntaxe
<Retour> := MODBUSWRITE (<Com>, <Destination>, <Adresse>, <Segment>, <Taille>)
Type accept
<Com> : tHandle
<Destination> : USINT
<Adresse> : UINT
<Segment> : UINT
<Taille> : UINT
<Etat> : BYTE
Description
Cette instruction permet d'crite n mots en Modbus (envoie d'une commande Modbus de type 16 write multiuple registers et attente de la rponse).
<Com> variable du type port communication.
<Destination> : N noeud Modbus de destination
En Modbus srie, il dsigne le numro de noeud Modbus sur le rseau.
En Modbus TCP, il dsigne le numro de noeud Modbus de l'lment adress par la
passerelle.
<Adresse> : adresse dans la table Modbus de destination (correspond la colonne Adresse dans
l'diteur de variables d'changes).
<Segment> : adresse dans le segment d'change
<Taille> : nombre de mots de 16 bits lire
<Retour> retour de l'instruction :
0 si le port n'est pas ouvert ou invalide
1 si pas de dfaut
Remarques
En cas d'erreur, cette instruction dclenche un vnement systme.
La taille est limite :
123 mots en mode normal (srie ou modbus TCP)
4096 mots en mode tendu (modbus TCP)
563
Printed Documentation
<NumCompteur> : USINT
<Q> : UDINT
Description
Cette fonction retourne le nombre de message d'un des compteurs Modbus
<NumCompteur>
10 : nombre total d'accs port COM1
11 : nombre d'accs en lecture port COM1
12 : nombre d'accs en criture port COM1
20 : nombre total d'accs port COM1
21 : nombre d'accs en lecture port COM1
22 : nombre d'accs en criture port COM1
MODBUSERROR
duRetourne
port
l'tat des dfauts
Syntaxe
<EtatCOM> := MODBUSERROR (<Com>)
Type accept
<Com> : tHandle
<EtatCOM> : DWORD
Description
Cette instruction retourne l'tat des dfauts d'un port de communication.
<Com> variable du type port communication.
< EtatCOM > :
Bit 1 1 si timeout
Remarque
Si <Com> n'est pas ouvert ou invalide alors <EtatCOM> = 0, mais cela ne dclenche pas d'erreur
systme.
564
Annexes
Syntaxe
MODBUSERRORRESET (<Com>)
Type accept
<Com> : tHandle
Description
Cette instruction remet zro les bits de dfauts de MODBUSERROR.
<Com> variable du type port communication.
Remarque
Si <Com> n'est pas ouvert ou invalide aucune erreur systme n'est dclench.
MODBUSSETEXTENDED
Syntaxe
MODBUSEXTENDED (<Acces>, <Etat>)
Type accept
<Acces> : USINT
<Etat> : BOOL
Description
Cette fonction permet de passer le Modbus TCP en mode tendue.
<Acces> : 0 pour le Modbus TCP
<Etat> : 0 pour dsactiver le mode tendue et 1 pour l'activer
En mode tendu on ne tient pas compte de la taille du buffer indiqu sur un octet. Ceci permet de
s'affranchir de la limite de 256 octets par trame et permet d'utiliser pleinement le buffer de 8192
octets.
STRINGIP_TO_UDINT
Syntaxe
<Adr_UDINT> := STRINGIP_TO_UDINT (<Adr_STRING>)
Type accept
<Adr_STRING> : STRING
<Adr_UDINT> : UDINT
Description
Cette instruction transforme une chane avec une IP en UDINT.
Communication CANopen
Dfinition
565
Printed Documentation
Introduction CANopen
CAN et CANOpen
Le bus CAN (Controller Area Network) est apparu au milieu des annes 80 pour rpondre
aux besoins de la transmission de donnes dans le secteur automobile. Ce type de bus
permet d'obtenir des taux de transfert levs.
Les spcifications du CAN dfinissent 3 couches parmi le modle OSI : la couche physique,
la couche liaison des donnes et la couche application. La couche physique dfinit le mode
de transmission des donnes en fonction du support de transmission. La couche liaisons
des donnes reprsente le noyau du protocole CAN puisque cette couche est responsable
de la trame envoyer, de l'arbitrage, de la dtection des erreurs, etc ... La dernire couche
est la couche application appele aussi CAL (CAN Application Layer). Celle-ci est donc une
description gnrale du langage pour les rseaux CAN qui offre de nombreux services de
communication.
Le bus CAN est un bus multi-matre. Contrairement aux autre bus de terrain, ce sont les
messages qui sont identifis et non les modules connects. Les lments du rseau sont
autoriss envoyer leurs messages chaque fois que le bus est libre. Les conflits sur le bus
sont rsolus par un niveau de priorit donn aux messages. Le bus CAN met des
messages qui sont diviss en 2032 niveaux de priorits. Tous les lments du rseau ont
les mmes droits et donc cette communication n'est seulement possible que sans bus
matre.
Chaque lment dcide lui-mme lorsqu'il veut envoyer des donnes. Il est cependant
possible de faire envoyer des donnes par un autre lment. Cette demande est effectue
par la trame distante.
CANOpen est une couche
applicative CAL (couche 7 du
modle OSI). CANOpen est
une reprise de la couche
applicative CAL dveloppe
par Philips Medical Systems.
Il reprend les services et
protocoles de gestion de bus
et de messages de la couche
CAL tout en dfinissant le
contenu des messages et en
intgrant la notion de systme
distribu. Un lment matre
du rseau coordonne les lments esclaves.
Le CANopen est, par consquent, une couche application standardise par les
spcifications du CIA (CAN In Automation) : DS-201
-207.
DS
Le gestionnaire du rseau permet une initialisation simplifie du rseau. Le rseau peut tre
tendu avec tous les composants que l'utilisateur dsire.
Les spcifications du CANopen (DS-201
-207) dfinissent les caractristiques
DS
techniques et fonctionnelles que ncessitent un appareil individuel pour tre associ sur le
rseau. Le bus CANopen fait une distinction entre les appareils serveurs et les appareils
clients.
Le CAN Protocol Layer Interaction dcrit la communication sur les diffrentes couches. Sur
la couche application les nuds changent des objets de communication et dapplication.
Ces objets sont accessibles via un index sur 16 bits et un sous-index sur 8 bits. Ces objets
de communication (COB) sont mapps.
566
Le dictionnaire d'objet
Annexes
Un dictionnaire d'objet dfinit, pour chacune des entres/sorties d'un priphrique CANOpen
(appel nud), l'information sur le format de la donne ainsi que sur le moyen d'y accder.
Chaque entre du dictionnaire possde un index unique ainsi qu'une liste de sous-index. On
accde un objet grce au couple [index, sub-index].
Une des principales nouveauts de CANOpen est la notion de dictionnaire d'objets (Object
Dictionary ou OD) dj prsente dans d'autres bus de terrain comme Profibus. Pour chaque
nud CANOpen prsent sur le bus il existe un OD gnralement sous forme de fichier texte
au format EDS (Electronic Data Sheet) permettant de connatre l'ensemble des
entres/sorties d'un nud. Il est possible de crer partir d'un fichier au format EDS un
autre fichier reprsentant une configuration donne d'un nud pour un bus. Ce fichier, trs
similaire l' EDS, est alors appel DCF (Device Configuration File). En faisant une analogie
avec la programmation oriente objet (POO) on peut dire que l' EDS est la classe tandis que
le DCF reprsente une instance de cette classe.
Les OD sont diviss en profiles. Les plus utiliss sont les suivants :
o
Toutes les entres de ces profiles sont dfinies par la CIA (Can In Automation) except pour
le Manufacturer Specific Profile Area qui est libre d'utilisation.
La communication CANopen
Les objets de communication qui transitent sur le bus sont dcrits par
des services et des protocoles.
COB-ID
Les caractristiques diffuses par le CAN sont reues et valus
par tous les appareils connects. Chaque service d'un appareil CAN est paramtr par un
COBID (Communication Object Identifier). Le COBID est un identifiant qui caractrise le
message. C'est ce paramtre qui permet d'indiquer un appareil si le message doit tre
traiter. Pour chaque service (PDO ou SDO), il est ncessaire de spcifier un COBID
l'mission (envoi d'un message) et un COBID la rception (rcupration de message).
Pour le premier SDO serveur, le COBID est fixe est ne peut pas tre modifi distance. De
plus, il est calcul partir du NODE-ID. Le NODE-ID est le paramtre qui caractrise
l'appareil et qui permet d'accder de faon unique l'appareil.
Client/Server, Producer/Consumer, Master/Slave
567
Printed Documentation
Le modle Client/Server
Dans ce modle, le client transmet un message auquel le serveur rpond. Le client
obtient ainsi une confirmation.
Ce modle est utilis pour transmettre des donnes dont la longueur est suprieure
8 octets. En fait la donne originale est segmente et transmise segment par
segment. Llment recevant les segments peut renvoyer une confirmation aprs
avoir reu un ou plusieurs segments. Cette communication est donc du type peer-topeer.
Le modle Master/Slave
Dans ce modle, seul le matre peut commencer une communication et lesclave est
toujours en train dattendre une requte de communication du matre.
Dans les rseaux CAN, ce modle peut tre implant en allouant des identifiants
appropris aux diffrents lments.
Le modle Producer/Consumer
Ce modle dcrit parfaitement les possibilits de broadcast du rseau CAN. En effet,
chaque lment du rseau peut couter les messages qui transitent sur le bus. Cest
aprs avoir reu le message que llment dcide si il laccepte ou non.
Le modle Producer/Consumer permet :
568
Annexes
569
Printed Documentation
PDO CommPar
OBJECT CODE
RECORD
SUB INDEX 0
SUB INDEX 1
SUB INDEX 2
Transmission Type
SUB INDEX 3
Inhibit time
SUB INDEX 4
Reserved
SUB INDEX 5
Event timer
570
DATA TYPE
PDO CommPar
OBJECT CODE
RECORD
SUB INDEX 0
Annexes
SUB INDEX 1
SUB INDEX 2
Transmission Type
Le PDO mapping parameter qui contient les informations relatives aux contenus
des PDO.
Transmit PDO Mapping
DATA TYPE
PDO Mapping
OBJECT CODE
RECORD
SUB INDEX 0
Number of mapped
applications objects in PDO
PDO Mapping
OBJECT CODE
RECORD
SUB INDEX 0
Number of mapped
applications objects in PDO
Nota 1 : avant deffectuer une transmission de type PDO, le numro des PDO ainsi que la
cartographie des objets (mapping) doivent tre transmis aux lments du rseau intresss
pendant la phase de configuration (Device Configuration) cest dire pendant linitialisation.
Ceci seffectue dailleurs travers un message de type SDO.
Nota 2 : la relation Producer-Consumer implique lexistence dun Producer et de zro ou plus
Consumers. Du Producer vers le Consumer cest le Push model qui est un service dit
unconfirmed. Du Consumer vers les Producer cest le Pull model qui est un service dit
confirmed.
Il existe des PDO synchrones et asynchrones (les PDO synchrones sont excuts chaque
transmission du SYNC &endash;voir plus loin- tandis que les asynchrones peuvent tre
excuts nimporte quel moment du moment que la priorit est respecte).
SDO (Service Data Object)
Le systme de message SDO suit larchitecture Client-Server. Les SDO permettent davoir
accs aux entres de lObject Dictionnary. Et comme ces entres peuvent tre de grande
taille les SDO sont amens transfrer plusieurs donnes appeles data sets, elles mmes
contenant de nombreux blocs de donnes ; le Client contrle quelle data set doit tre
transmise via un multiplexer (index et sub-index de lObject Dictionnary).
Cest le Client qui prendra linitiative dun tel transfert et le Server aura accs aux donnes
de lObject Dictionnary.
Le Client comme le Server pourra mettre fin la transmission.
571
Printed Documentation
Il existe deux types de message SDO : Le SSDO (Server-SDO) qui est le SDO par dfaut, et
le CSDO (Client-SDO).
Dans le cas dun message SDO on se positionne par rapport au Server. Ainsi un SDO
Download est la transmission de donnes du Client vers le Server et un SDO Upload
consiste transmettre des donnes dun Server vers le Client.
Nous avons crit prcdemment que le SDO permet de transfrer des donnes de nimporte
quelle taille. Dans ce cas, on dit que le transfert est segment.
Le dtail des objets est:
Server SDO Parameter
DATA TYPE
SDO Parameter
OBJECT CODE
RECORD
SUB INDEX 0
Number of entries
SUB INDEX 1
COBID RX
SUB INDEX 2
COBID TX
SUB INDEX 3
572
Annexes
DATA TYPE
SDO Parameter
OBJECT CODE
RECORD
SUB INDEX 0
Number of entries
SUB INDEX 1
COBID RX
SUB INDEX 2
COBID TX
SUB INDEX 3
La synchronisation
Le SYNC est broadcast priodiquement sur le rseau par le SYNC Producer. Cest
lhorloge de base du rseau. Le temps dune priode est dfini par le paramtre standard
Communication Cycle Period (1006h) qui peut tre configur par un outil de configuration et
envoy lapplication pendant le boot-up. La frquence de cette horloge peut tre
temporairement acclre lorsque certains messages doivent parcourir le rseau avant
mme que le signal SYNC ne soit transmis. Pour garantir laccs de SYNC au rseau ce
message est dot dun haut niveau de priorit (1005h).
Le premier intrt de la synchronisation est que lorsque chaque nud reoit le signal SYNC,
il excute automatiquement son PDO mapping et envoie donc des donnes au contrleur ou
excute une action. Cela permet donc de paramtrer les nuds pour quils effectuent
priodiquement telle ou telle action.
Le second intrt de la synchronisation est quelle permet de synchroniser lhorloge du
nud avec celle du contrleur : cest le rle du Time Stamp (dcrit dans le paragraphe
suivant) qui contient la valeur de lhorloge matre code sur 32 bits.
Le time stamp
Dans la pratique, lobjet Time Stamp reprsente en ms le temps coul depuis le 1er janvier
1984.Cest une squence de 48 bits (6 octets). Le producteur de Time Stamp reoit une
demande et envoie une Data Frame vers les Consommateurs.
573
Printed Documentation
L'implmentation de l'objet Time Stamp n'est pas obligatoire. Il n'est pas implment dans le
MPC.
L'emergency
Lemergency permet un nud denvoyer avec une priorit leve un message contenant
le code derreur correspondant au problme auquel il est confront. La table des codes
derreurs est donne dans la norme DS-301 page 9-38.
Le second contient le registre derreur qui rend compte dune erreur interne. Il
correspond lobjet 1001h.
574
Annexes
Les services NMT sont le MCS (Module Control Services) et lECS (Error Control Service).
Module Control Service (MCS)
Cest grce au MCS que le matre NMT contrle les diffrents tats des esclaves NMT. Le
rle de MCS peut tre appliqu un nud particulier ou tous les nuds simultanment.
On remarquera que le matre NMT contrle son propre tat via un service local et que le
MCS peut tre activ par lapplication locale (sauf dans le cas du Start Remote Mode)
Error Control Service (ECS)
A travers ce service le NMT dtecte les erreurs du rseau CAN.
Les ECS interviennent principalement lors de dfaut dans la priodicit de transmission de
message dun lment du rseau. Il existe deux cas o lECS va jouer son rle :
Le matre NMT tablit une surveillance des nuds du rseau (node guarding
protocol) : si un esclave NMT na pas rpondu dans un laps de temps imparti (node
life time) ou encore si ce mme esclave change sa politique de communication, le
matre en informe sa propre application.
Principe de la surveillance de lesclave par le matre: si le Life Time est support,
lesclave utilise le Life Time prcis dans son Object Dictionnary pour dterminer le
Life Time du nud sur lequel il est connect, et dans le cas dune erreur relative ce
temps il en informe sa propre application. Cette surveillance est gnralement active
lors de la phase du boot-up.
575
Printed Documentation
Le bit de poids fort (7) est appel Toggle bit. Sa valeur doit changer entre deux rponses
conscutives. Lors de la premire rponse il est 0, puis 1, puis 0, ... Si sa valeur est
constante sur deux rponses conscutives, le matre du NMT considrera quil na pas reu
de rponse.
Nota : Il est interdit dutiliser en mme temps le Node Guarding et le Heartbeat. Si le
Heartbeat producer time nest pas gal 0, alors le mcanisme du Heartbeat est utilis.
Le Heartbeat
Le Heartbeat est gnr priodiquement (la priode est le Heartbeat Producer Time) par un
nud sans quil ait reu au pralable une RTR (Remote Transmission Request). Il permet
au nud dindiquer aux autres son tat.
La data est contenue dans un seul octet :
0 : Boot-up
4 : Stopped
4 : Stopped
127 : Pre-Operational
Le rseau
Le gestionnaire de rseau comporte un mode simplifi de dmarrage du rseau. La
configuration du rseau n'est pas ncessaire dans tous les cas. La configuration par dfaut
des paramtres est donc parfois suffisante. Si l'utilisateur dsire optimiser le rseau
576
Annexes
CANopen ou augmenter ses fonctionnalits, il peut alors modifier lui-mme ces paramtres.
Dans les rseaux CANopen, tous les appareils ont les mmes droits et l'change des
donnes est directement rgul entre chaque appareils participants.
Le profil d'un appareil dfinit les paramtres ncessaires pour une communication. Le
contenu de ce profil est spcifi par le constructeur. Les appareils ayant le mme profil sont
directement interchangeables. La plupart des paramtres sont dcrits par le constructeur. Le
profil possde aussi des emplacements vides qui correspondent aux futures extensions de
fonctionnalits des constructeurs.
Dans la plupart des bus matre/esclave, l'efficacit du matre dtermine le comportement de
tout le rseau. De plus, les esclaves ne peuvent pas directement communiquer entre eux.
Toutes ces caractristiques augmentent, donc, le nombre d'erreurs de transmission.
CANopen limine tous ces dsavantages. Le comportement temporel peut tre spcifi
individuellement pour chaque tche respective des appareils participants. Ainsi, le systme
entier de communication n'a pas besoin de plus d'efficacit si seulement certains appareils
participants ncessitent plus de performance. De plus, une tche automatique peut tre
spare pour chacun des appareils participants. Ainsi, les performances disponibles du
contrleur du rseau peuvent tre utilises de manire optimales et peuvent tre
augmentes tout instant par adjonction de nouveaux appareils participants.
Le mapping des variables utilises lors des changes de type PDO permet d'utiliser de
manire optimale la bande passante actuelle du bus. CANopen dtermine les valeurs en
dfaut de tous les paramtres.
La machine d'tat
Quatre tats sont possibles pour un nud :
Start Of Frame
Le bit Start Of Frame (SOF) indique le dbut d'une Data Frame ou d'une Remote Frame.
C'est un unique bit dominant.
Un nud ne peut bien sr dbuter une transmission que si le bus est libre (cf. technique
darbitrage dans le chapitre suivant). Ensuite, tous les autres nuds se synchronisent sur le
SOF du nud ayant commenc une transmission.
Arbitration Field
577
Printed Documentation
Les 4 suivants constituent le Data Length Code (DLC) qui indique le nombre d'octets
du Data Field. 4 bits dominants (0000) correspondent la valeur 0 pour le DLC,
tandis que 1 bit rcessif et 3 bits dominant (1000) correspondent la valeur 8.Il y a
donc 9 valeurs possibles pour le DLC
Data Field
Ce sont les donnes transmises par une Data Frame. Il peut contenir de 0 8 octets, et
chaque octet est transmis avec le bit de poids fort en premier.
CRC field
CRC Field est compos de la squence de CRC sur 15 bits suivi du CRC Delimiter (1 bit
rcessif).
578
Annexes
La squence de CRC (Cyclic Redundancy Code) permet de vrifier l'intgrit des donnes
transmises. Les bits utiliss dans le calcul du CRC sont ceux du SOF, de l'Arbitration Field,
du Control Field et du Data Field.
Le CRC est en fait un polynme calcul de la mme manire par lmetteur et par le
rcepteur de la trame : le message est vu par lalgorithme comme un polynme qui est
divis par X15+X14+X10+X8+X7+X4+X3+1 et le reste de cette division modulo[2] est la
squence CRC transmise avec le message.
Une erreur CRC est dtecte si le rsultat envoy est diffrent du rsultat reu, dans ce cas
le rcepteur du message transmet un message derreur sous forme de Request Frame.
ACK Field
LACK Field est compos de 2 bits, l'ACK Slot et le ACK Delimiter (1 bit rcessif).
End Of Frame
Chaque Data Frame et Remote Frame est termine par une squence de 7 bits rcessifs.
L'arbitrage
Le concept de communication du bus CAN est celui de la diffusion dinformation (broadcast)
: chaque station connecte au rseau coute les trames transmises par les stations
mettrices. Ensuite chaque nud dcide quoi faire du message, sil doit y rpondre ou non,
sil doit agir ou non. Ce concept peut tre schmatis par celui de la radio diffusion
dinformation routire: une fois ltat du trafic connu, un conducteur peut dcider de changer
son trajet, darrter son vhicule, dalerter un autre conducteur, ou de ne rien faire.
Le protocole CAN autorise diffrents nuds accder simultanment au bus. Cest un
procd rapide et fiable darbitrage qui dtermine le nud qui met en premier.
Laccs au bus est donc alatoire car un nud peut mettre nimporte quel moment. Mais
cet accs se fait par priorit ; cette mthode est appele CSMA CD/AMP (Carrier Sense
Multiple Acces with Collision Detection and Arbitration Message Priority).
Afin d'tre traites en temps rel, les donnes doivent tre transmises rapidement. Cela
suppose non seulement une voie physique de transmission pouvant atteindre jusqu' 1
Mbit/s, mais exige galement une assignation rapide du bus dans les cas de conflits, lorsque
plusieurs stations souhaitent transmettre simultanment des messages.
Lors de lchange de donnes sur le bus, une hirarchie est tablie selon le type
dinformation. Par exemple une valeur variant rapidement, comme l'tat d'un capteur ou
l'asservissement d'un moteur, doit tre transmise plus souvent avec un retard moindre que
d'autres valeurs comme la temprature du moteur, qui volue lentement. Sur le rseau CAN,
l'identificateur de chaque message, qui est un mot de 11 bits (version 2.0 A) dans le cadre
de notre application, dtermine sa priorit.
Can Open va donc attribuer chaque change de donnes une priorit dfinie par le COBID qui se positionne en dbut de trame.
Le niveau de priorit est donn par lID sur 7 bits pour la version 2.0 A, ce qui donne 127
niveaux le 128ime tant le niveau 0000000, celui du NMT (Network Management) qui sera
dtaill plus loin.
Les 4 bits du champ COB dfiniront le type de lobjet de communication de la trame.
Le procd d'attribution du bus est bas sur le principe de l' arbitrage bit bit , selon
lequel les nuds en comptition, mettant simultanment sur le bus, comparent bit bit
579
Printed Documentation
l'identificateur de leur message avec celui des messages concurrents. Les stations de
priorit moins leve perdront la comptition face celle qui a la priorit la plus lev.
La couche physique
Le faisceau de bits transitant sur le bus est cod avec la mthode du NRZ (Non Return To
Zero). Pendant la dure totale du bit, le niveau de tension de la ligne est maintenu, cest
dire que pendant toute la dure durant laquelle un bit est gnr, sa valeur reste constante
quelle soit dominante ou rcessive.
Le fait que CAN utilise un protocole de non retour zro (Non-Return-Zero ou NRZ)
implique l'utilisation de bits de remplissage (stuff bit). Ces bits de remplissage sont rajouts
dans les messages CAN afin qu'il n'y ait jamais plus de 5 bits ayant la mme valeur.
Les champs pouvant tre modifis par le bit stuffing sont les suivants :
1. Arbitration Field
2. Control Field
3. Data Field
4. CRC Field
580
Annexes
Il est important de prendre en compte ces bits de remplissage pour pouvoir dterminer
combien de nuds peuvent tre utiliss sur un mme bus en fonction de la frquence des
changes de donnes.
Prsentation
La liaison CANopen du MPC procure ce dernier un accs directe et automatis aux priphriques
spcifiques ce bus de terrain. Pour ce faire des mcanismes ont t mis en place dans le MPC
afin de satisfaire aux exigence de ce moyen de communication. Ainsi, il est possible d'utiliser tout
les protocoles dcrit dans la rubrique "La communication CANopen" et ce de faon transparente.
Un mcanisme permet, en effet de relier directement l'image de process contenant les entres /
sorties avec les modules d'entres / sorties, codeur, automate, robot ou tout autre priphrique
CANopen utilisant PDO. Les informations sont alors changer sans intervention dans le
programme. Les donnes sont accessibles comme des entres / sorties locales.
581
Printed Documentation
Il est galement possible d'interroger tout moment par SDO, un priphrique, afin de lui
communiquer sa nouvelle configuration, par exemple.
Le CANopen est une la couche de protocole ultime, mais il est galement possible d'utiliser des
trames gnriques du CANbus afin de recrer, de faon ponctuelle des fonctions spcifiques.
Caractristiques
Le MPC possde :
Un serveur SDO par dfaut pour le paramtrage de la MPC distance par un superviseur.
Un client SDO pour accder aux variables et aux paramtres des priphriques CANopen
tels que des pupitres, automates et cartes PC.
128 PDOs en mission pour piloter les sorties des modules I/O ou des priphriques
CANopen.
128 PDOs en rception pour recevoir les entres des modules I/O ou des priphriques
CANopen.
Des fonctions daccs direct au bus CAN pour envoyer et recevoir des messages
spcifiques tels que les fonctions NMT et DBT.
Des fonctions de Node Guarding matre pour surveiller les liaisons avec les priphriques
et les priphriques eux mme.
Raccordement
582
Les deux connecteurs X1a et X1b sont identiques et contiennent les mmes signaux. Ils
facilitent la mise en rseau de plusieurs priphriques.
Annexes
Vitesse de
transmission
5000m
20KBauds
2500m
50KBauds
1000m
125KBauds
500m
250KBauds
125m
500KBauds
100m
800KBauds
50m
1MBauds
25m
Diagnostic du bus
LED CAN R et T :
Elles clignotent proportionnellement au dbit sur le bus CAN (son intensit peut donc tre
trs faible ou trs forte)
Outils Message :
L'outils message est capable de capturer les trames CANopen changes entre le MPC et
ses priphrique, pour cela il faut slectionner CANopen dans la liste des message
capturer :
583
Printed Documentation
Outils Hyper-Terminal
Cet outil peut galement tre utile pour analyser le bus CANopen. En effet, parmi les
sources disponible sur le MPC, il est possible d'obtenir des informations statistiques issues
du bus CANopen :
584
Annexes
Dictionnaire CANopen
Le dictionnaire du MPC directement accessible dans le soft Motion Studio partir du menu Aide \
Table CANopen class par ...
Ce dictionnaire rcapitules les paramtres du MPC et ses priphriques accessible via CANopen.
Par ce bus il est galement possible d'accder aux zones d'entre / sorties de l'image de process,
la zone d'change et la BBM :
Index
Dsignation
0x61000x6101
585
Printed Documentation
0x61100x6111
0x7000
0x7100
0x7200
...
0x7E00
0x7F00
0x8000
0x8100
0x8200
...
0x8E00
586
Annexes
0x8F00
0x9000
0x9100
0x9200
...
0x9D00
0x9E00
0x9F00
0xA000
0xA100
0xA200
0xA300
0xA400
La zone d'entres / sorties de l'image de process est gnralement mappe par PDO avec les
modules d'entres sorties.
Liste d'instructions
CANCOUNTER
Syntaxe
<Variable> = CANCOUNTER (<N de compteur>)
Types accepts
<Variable> : UDINT
<N de compteur> : BYTE
Description
CANCOUNTER permet de connatre le nombre message chang par le serveur SDO du MPC.
<N de compteur> :
0 : total
1 : lecture
2 : criture
Remarques
<N de compteur> 0 pour le nombre de message total, 1 pour le nombre de lecture, 2 pour le
nombre d'criture.
Exemple ST
NbMessageSDO := CANCOUNTER(0);
CANERROR
587
Printed Documentation
Syntaxe
<Variable> = CANERROR (0)
Unit
<Variable> : DWORD
Description
Cette fonction permet de dtecter si une erreur s'est produite :
Bit 0 1 si erreur du bus (dclenche la tche vnement systme, si l'erreur n'tait pas
encore positionne)
Retourne le nom
CANERRORCOUNTER
bus CAN
Syntaxe
<Variable> = CANERRORCOUNTER (0)
Unit
<Variable> : UDINT
Limites
<Variable> : de 0 65535
Description
CANERRORCOUNTER permet de connatre le nombre d'erreur qui se sont produites depuis la
dernire initialisation du compteur.
Remarque
D'autre compteurs de dfauts CAN sont disponibles partir de l'hyperterminal.
CANERRORRESET
Remet zro
Syntaxe
CANERRORCOUNTER (0)
Description
CANERRORRESET permet rinitialiser les flags de dfauts de communication CAN.
CANEVENT
Syntaxe
<TrameRecue> := CANEVENT ( 0 )
Types accepts
< TrameRecue > : BOOL
Description
588
Annexes
Cette fonction retourne TRUE si on a reu une trame sur le COBID RX et qu'elle est disponible la
lecture.
Ce flag est remis zro lorsque la trame est lue.
CANGETNMT
Syntaxe
< NMTLocal > = CANGETNMT (0)
Unit
< NMTLocal > : USINT
Description
Cette instruction renvoie l'tat du NMT local :
1 pour PREPARED
2 pour OPERATIONNAL
CANGUARDADD
Syntaxe
CANGUARDADD(<CANperiph>)
Unit
< CANperiph > : tPeripheral
Description
CANGUARDPARAM
Syntaxe
CANGUARDPARAM (<Time>, <Retry>,<COBID>, <State>)
Unit
<Time> : UNIT
<Retry> : USINT
<COBID> : UDINT
<State> : BOOL
Description
CANGUARDPARMAT permet de paramtrer le Node Guarding matre du bus CAN :
<State> : A "1" force vrifier que l'tat du noeud est "dmarr" (par dfaut : TRUE)
589
Printed Documentation
Exemple
CANGUARDPARAM(100,1,16#700,FALSE);
CANGUARDDEL
Syntaxe
CANGUARDDEL(<CANperiph>)
Unit
< CANperiph > : tPeripheral
Description
CANGUARDRESET
Syntaxe
CANGUARDRESET (0)
Description
CANGUARDDEL permet de retirer tous les priphriques de la liste Node Guarding matre du bus
CAN.
CANREAD
CAN
reoit
surune
le COBID
trame en rception
Syntaxe
<TailleRecue> := CANREAD (<Adresse>, < Taille >)
Types accepts
< Adresse > : UINT
< Taille > : UINT
< TailleRecue > : UINT
Description
Cette fonction lit une trame CAN sur le COBID RX.
Seule la dernire trame reue sur ce COBID est disponible, il n'existe pas de buffer de rception et
toute nouvelle trame reue efface la prcdente qu'elle ait t lue ou non.
<Adresse> : adresse dans le segment d'change des donnes recevoir
<Taille> : taille des donnes envoyer, si cette taille est suprieure 8 une erreur est gnre
<TailleRecue> : taille des donnes rellement reues.
Remarque
Le smaphore zone d'change est pris pendant la lecture des donnes ncessaires l'envoi
dans le segment d'change
CANSENDNMT
590
Annexes
Syntaxe
CANSENDNMT( <Periph>, <Commande>)
Unit
<Periph> : tPeripheral
<Commande> : USINT
Description
Cette instruction permet de commander le dmarrage d'un priphrique en CAN (envoi des PDO) :
<Periph> : Priphrique dclar dans le projet
Remarque
Il est possible d'utilis un numro de noeud direct avec la fonction NODECAN(x)
CANSENDSYNCHRO
Syntaxe
CANSENDSYNCHRO (<COBID>)
Types accepts
< COBID > : UDINT
Description
Cette fonction envoie un message de synchro sur le COBID concern.
CANSETUP
Syntaxe
CANSETUP (<COBID_TX>, < COBID_RX >)
Types accepts
< COBID_TX > : UDINT
< COBID_RX > : UDINT
Description
Cette fonction permet de dfinir les COBID utiliser pour le protocole CAN libre.
Lors de ce paramtrage, si un message reu tait prsent, il est perdu.
Si le COBID_RX est gal 0, la rception est dsactive, par contre il est toujours possible
d'mettre.
Si le COBID de rception est identique un COBID dj utilis par le systme, alors le
comportement est indfini (dpend de l'ordre dans lequel ont t enregistrs les diffrents
rcepteurs de ce COBID), aucune erreur n'est gnre dans ce cas.
CANSETUPSYNCHRO
Paramtre l'envoi
591
Printed Documentation
Syntaxe
CANSENDSYNCHRO (<COBID>, <Periode>)
Types accepts
< COBID > : UDINT
< Periode > : UDINT
Description
Cette fonction envoie priodiquement (<Periode> en ms) un message de synchro sur le COBID
concern (par dfaut COBID : 0x80). Si <Periode> ou <COBID> vaut 0, la fonction est dsactive.
Si la fonction est appele alors qu'un message de synchro tait dj paramtr, les paramtres
sont mis jour et le message de synchro suivant en tient compte
CANWRITE
Syntaxe
CANWRITE (<Adresse>, < Taille >)
Types accepts
< Adresse > : UINT
< Taille > : UINT
Description
Cette fonction envoie une trame CAN sur le COBID TX.
Cette fonction n'attend pas que la transmission soit rellement effectue, la transmission peut
prendre plus ou moins de temps en fonction de la charge interne du MPC et surtout l'tat de charge
du bus CANopen.
La transmission peut mme chouer dans le cas o le bus est dconnect par exemple, cette
fonction ne fournira pas l'information.
<Adresse> : adresse dans le segment d'change des donnes envoyer
<Taille> : taille des donnes envoyer, si cette taille est suprieure 8 une erreur est gnre
Remarque
Le smaphore zone d'change est pris pendant la lecture des donnes ncessaires l'envoi
dans le segment d'change
NODECAN
Syntaxe
<Q> := PDOEVENT (<Noeud>)
Unit
<Noeud> : USINT
<Q> : tPeripheral
Description
Cette fonction permet d'utiliser READxxx et WRITExxx sur un priphrique en CAN ayant un N de
noeud quelconque et non dclar dans la configuration.
PDOEVENT
592
Annexes
Syntaxe
<Q> := PDOEVENT (<NumPDO>)
Unit
<NumPDO> : UINT
<Q> : BOOL
Description
Cette fonction indique si un PDO a t reu sur le PDO pass en paramtre, il est remis 0
chaque lecture.
READ
Lecture
able
CANopen
de lad'un
t
priphrique
Syntaxe
<Q> = READ (<Peripherique>, <Index>, <SousIndex>, <Taille>)
Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD ...)
<Index> : UINT
<SousIndex> : USINT
<Taille> : USINT
<Q> : UDINT
Description
Cette fonction retourne une valeur de type UDINT de la table CANopen d'un priphrique
Remarque
Cette fonction est aussi utilisable pour lire un index de la table CANopen du MPC
Voir aussi
READR
WRITE
READPARAM
WRITEPARAM
READPARAM
Syntaxe
<Q> = READPARAM (<Peripherique>, <Parametre>)
Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD ...)
<Parametre> : Nom du paramtre du priphrique
<Q> : UDINT
Description
Cette fonction retourne la valeur de type UDINT d'un paramtre du priphrique
Remarque
593
Printed Documentation
Cette fonction est aussi utilisable pour lire un index de la table CANopen du MPC
Voir aussi
READ
WRITE
READPARAMR
WRITEPARAM
READR
Lecture
table
CANopen
de la d'un priphrique
Syntaxe
<Q> = READR (<Peripherique>, <Index>, <SousIndex>, <Taille>)
Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD ...)
<Index> : UINT
<SousIndex> : USINT
<Taille> : USINT
<Q> : REAL
Description
Cette fonction retourne une valeur de type REAL de la table CANopen d'un priphrique
Remarque
Cette fonction est aussi utilisable pour lire un index de la table CANopen du MPC
Voir aussi
594
Annexes
READ
WRITER
READPARAMR
WRITEPARAMR
PDOTX
Syntaxe
PDOTX (<NumPDO>)
Unit
<NumPDO> : UINT
Description
Cette fonction force la construction et l'mission d'un PDO.
ROUTEIMDADD
Syntaxe
ROUTEIMDADD (<Add>)
Type accept
<Add> : UDINT
Description
Cette fonction change le N de noeud de base dans le routage Modbus/CAN=>IMD sur Ethercat
WRITE
Syntaxe
WRITE (<Peripherique>, <Index>, <SousIndex>, <Taille>, <Data>)
Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD
<Index> : UINT
<SousIndex> : USINT
<Taille> : USINT
<Data> : UDINT
Description
Cette fonction permet d'crire une valeur de type UDINT dans la table CANOpen d'un priphrique
Remarque
Cette fonction est aussi utilisable pour crire dans un index de la table CANOpen du MPC
Voir aussi
WRITER
READ
WRITEPARAM
595
Printed Documentation
WRITEPARAM
WRITEPARAM
Syntaxe
WRITEPARAM (<Peripherique>, <Parametre>, <Data>)
Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD
<Parametre> : Nom du paramtre du priphrique
<Data> : UDINT
Description
Cette fonction permet d'crire une valeur de type UDINT dans un paramtre du priphrique
Remarque
Cette fonction est aussi utilisable pour crire dans un index de la table CANOpen du MPC
Voir aussi
WRITE
WRITER
WRITEPARAMR
READPARAM
WRITEPARAMR
Syntaxe
WRITEPARAMR (<Peripherique>, <Parametre>, <Data>)
Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD
<Parametre> : Nom du paramtre du priphrique
<Data> : REAL
Description
Cette fonction permet d'crire une valeur de type REAL dans un paramtre du priphrique
Remarque
Cette fonction est aussi utilisable pour crie dans un index de la table CANOpen du MPC
Voir aussi
WRITE
WRITER
WRITEPARAM
READPARAMR
WRITER
Syntaxe
596
Annexes
Description
Cette fonction permet d'crire une valeur de type REAL dans la table CANOpen d'un priphrique
Remarque
Cette fonction est aussi utilisable pour crie dans un index de la table CANOpen du MPC
Voir aussi
WRITE
READR
WRITEPARAM
WRITEPARAMR
Exemples
:Word;
ErrCanIO
:Bool;
ErrEthercat
Inhibit
:Bool;
:udint;
END_VAR
VAR_GLOBAL
END_VAR
VAR
IntParam : tIntParam;
RioModule:tPeripheral;
END_VAR
If (InitGetContext(0)=0) Then
ErrEthercat:=1;
ErrCanIO:=1;
597
Printed Documentation
End_If;
(* Initialisation Ethercat *)
If (ErrEtherCAT=1) Then
ErrEtherCAT:=0;
End_If;
;
(* Initialisation CAN*)
If (ErrCanIO=1) Then
(* ---------------- Init sur le MPC -------------------- *)
InitRio(RIO1);
InitRio(RIO2);
InitRio(RIO3);
InitRio(RIO4);
;
(* ---------------- Dmarrage des serveurs -------------------- *)
ErrCanIO:=0;
CANGUARDPARAM(100,1,16#700,FALSE); (* Temps de garde en ms, Nombre
d'essais, COBID d'interrogation et PAS de vrification de l'tat NMT *)
CANGUARDADD(RIO1);
CANGUARDADD(RIO2);
(*CANGUARDADD(RIO3);
CANGUARDADD(RIO4);*)
CANSENDNMT(RIO1,1);
CANSENDNMT(RIO2,1);
CANSENDNMT(RIO3,1);
CANSENDNMT(RIO4,1);
CANSENDNMT(MPC,1);
End_If;
(*Autorisation du dmarrage des autres tches *)
Fault:=0;
INITSETRESULT(0);
598
Annexes
(* Nombre d'essais *)
(*
*)
(************************************************************************
***************)
(*
*)
(* Attention, ce programme utilise le TxPDO 64+NodeID et le RxPDO
64+NodeID
*)
(*
*)
(************************************************************************
***************)
(* Init paramtrage PDO en emission sur MPC *)
ModuleNodeID:=READPARAM(RioModule,_CANIO_NODE_ID);
TxPdoParamIndex:=UDINT_TO_UINT(16#1800+64+ModuleNodeID);
TxPDOCOBID:=16#200+ModuleNodeID;
WRITE(MPC,TxPdoParamIndex,1,32,TxPDOCOBID);
envoyes les sorties *)
WRITE(MPC,TxPdoParamIndex,2,08,254); (* Tx periodique *)
599
Printed Documentation
600
Annexes
601
Printed Documentation
EtherCAT
Ethercat
EtherCat est le nom dune technologie de bus de terrain base sur Ethernet. Soutenue par une
organisation internationale baptise EtherCat Technology Group, compose de plus de 140
socits membres utilisateurs et constructeurs, EtherCat est en cours de standardisation par lIEC
(International Electrotechnical Commission).
Au cours des dix dernires annes, les technologies rseau de type bus de terrain se sont
largement imposes dans le monde des automatismes industriels en tant qualternative au cblage
traditionnel des entres/sorties dautomates programmables. Ces technologies ont permis
lapparition de systmes de contrle-commande tendus. Mais avec lamlioration constante des
performances CPU des automates &endash; et surtout des PC industriels &endash; les bus de
terrain deviennent de vritables goulets dtranglement qui limitent finalement les performances des
systmes automatiss. Le fait que les architectures de contrle soient souvent constitues dun
empilement de diffrents sous-systmes hardware et software, gnralement cycliques, constitue
un facteur aggravant : les temps de rponse peuvent tre entre trois et cinq fois suprieurs au
temps de traitement effectif des automates !
Un cran au-dessus des bus de terrain, cest--dire pour linterconnexion de plusieurs automates
entre eux, Ethernet constitue depuis longtemps dj un choix intressant. La nouveaut est
lintroduction dEthernet au niveau des entres/sorties dportes et pour les systmes de
commande, domaines jusque l rservs aux bus de terrain traditionnels. Les principales
conditions remplir par un bus de communication pour tre utilisable dans ce type dapplications
602
Annexes
sont de possder des capacits temps-rel, laptitude manipuler des paquets de donnes de
tailles faibles, et un cot peu lev.
Ethernet et le temps rel
De nombreuses propositions ont t faites pour amliorer les capacits temps-rel des rseaux
Ethernet. Certaines solutions sont bases sur la dsactivation du protocole daccs au support
CSMA/CD (responsable du non-dterminisme de la norme IEEE 802.3) et sur la mise en oeuvre
dautres mcanismes permettant de faire circuler les donnes sur le rseau dans des tranches de
temps prdtermins (time slots).
Dautres solutions prconisent lintroduction de switches, permettant de segmenter les rseaux en
domaines exempts de collision, et chargs de distribuer les paquets de donnes de faon trs
contrle et prcise dans le temps. Mais si ces solutions savrent efficaces pour le transfert des
donnes, les temps de redirection vers les sorties ou vers les contrleurs, ainsi que les temps de
lecture des entres dpendent en gnral fortement de limplmentation.
Si les trames Ethernet sont utilises de faon individuelle pour chacun des quipements, le taux de
donnes utiles est en principe trs faible. Les trames Ethernet les plus courtes comptent 84 octets
(en comptant le dlai inter-trame).
Si par exemple un contrleur envoie cycliquement 4 octets de donnes et dinformations de statut,
et reoit 4 octets de commandes et de requtes de contrle, 100 % de charge rseau (cest-dire avec des temps de rponse infiniment courts), le taux de donnes utiles sera de 4/84 = 4.7 %.
Avec un temps de rponse moyen de lordre de la dizaine de microsecondes, ce taux chute 1.9
%. Ces limitations touchent tous les systmes utilisant des trames Ethernet ddies pour chacun
des quipements.
Principes de fonctionnement
La technologie EtherCat apporte des rponses ces limitations. Avec elle, les paquets Ethernet ne
sont dsormais plus reus, interprts et stocks au niveau de chaque quipement. les esclaves
EtherCat lisent et crivent les donnes durant le passage de la trame lintrieur du noeud. Et ils
ne lisent que celles qui leur sont spcifiquement adresses. Les trames subissent ainsi des dlais
de lordre de quelques nanosecondes seulement.
Etant donnes que les trames Ethernet contiennent des donnes en provenance et en direction de
nombreux quipements, le taux de donnes utiles peut grimper jusqu 90 % ! Les capacits fullduplex du 100BaseTX peuvent ainsi tre pleinement exploites pour atteindre des dbits effectifs
suprieurs 100Mbps (suprieurs 90 % de 2x100 Mbps).
Le protocole Ethernet tel que dfini dans IEEE 802.3 reste intact jusquau niveau des terminaux
individuels ; aucun sous-bus nest ncessaire. Afin de satisfaire les spcifications des quipements
terminaux lectroniques, seule la couche physique doit tre modifie au niveau du coupleur : la
paire torsade ou la fibre optique doit tre remplace par une couche physique de type E-bus, qui
dlivre un signal LVDS (Low Voltage Differential Signal). Ce type de signal se prtant par ailleurs
bien des transferts sur des distances courtes (jusqu 10m) sur paire torsade ou sur fibre
optique, le block terminal peut ainsi tre tendu de faon relativement conomique.
Le Protocole
Le protocole EtherCat est encapsul dans les trames Ethernet grce un champ Ethertype
spcifique. Celui-ci consiste en une srie de sous-tlgrammes, adressant des zones mmoire
particulires de limage logique du process, pouvant atteindre une taille de 4 GigaOctets. La
squence des donnes est indpendante de lordre dans lequel sont relis physiquement les
terminaux ; ladressage peut ainsi tre effectu dans nimporte quel ordre. Le transfert direct de
trames Ethernet est utilis dans les cas o de trs hautes performances sont requises et lorsque
les composants EtherCat oprent lintrieur dun mme sous-rseau.
603
Printed Documentation
Quoi quil en soit, lutilisation dEtherCat nest pas limite aux sous-rseaux. EtherCat UDP permet
dencapsuler le protocole EtherCat lintrieur de datagrammes UDP/IP. La communication au
travers de plusieurs sous-rseaux devient alors possible, par exemple par lintermdiaire de
routeurs. Dans cette configuration, les performances dpendent des capacits temps rel du
rseau et de limplmentation qui est faite dEthernet.
EtherCat supporte tout type de topologie : en ligne, arborescente ou en toile. La structure en ligne
bien connue des architectures de bus de terrain devient ainsi envisageable avec Ethernet. La
combinaison de structures linaires et de branches savre particulirement pratique pour le
cblage des installations : les interfaces ncessaires sont disponibles sur les coupleurs et aucun
switch supplmentaire nest requis. Nanmoins, il est toujours possible de mettre en oeuvre une
architecture Ethernet commute classique.
Les cbles patch Ethernet standard peuvent transmettre les signaux au choix en mode Ethernet
(100Base-TX) ou en mode E-bus. Larchitecture Fast-Ethernet autorise une longueur de cble de
100 mtres entre deux lments du rseau. Le cble E-bus est quant lui prvu pour des
distances allant jusqu 10 mtres.
Pour ce qui est de lextension du rseau, il est possible de connecter jusqu 65535 lments.
Horloges distribues.
La synchronisation prcise des quipements savre trs importante, notamment dans le cas de
systmes distribus, lorsque plusieurs entits distantes doivent agir de faon simultane. La
mthode de synchronisation la plus performante connue ce jour pour les rseaux distribus
consiste en un alignement des horloges du systme, tel que dcrit dans IEEE 1588.
Contrairement aux systmes de communication dits synchrones , pour lesquels la qualit de la
synchronisation des quipements souffre en cas de dfaut, les systmes synchroniss avec la
mthode dalignement des horloges prsentent une certaine tolrance vis--vis des dlais
engendrs par dventuelles erreurs de communication.
Avec EtherCat, lchange des donnes repose sur un mcanisme purement hardware. Etant donn
que la communication se base, la fois logiquement et physiquement sur une structure en anneau,
lhorloge matre peut dterminer les dlais de propagation ainsi que loffset des horloges esclaves
de faon trs simple et prcise &endash; et vice versa. Les horloges distribues sont ajustes en
fonction de ces valeurs. Il est ainsi possible datteindre une prcision de synchronisme infrieure
une microseconde. La synchronisation externe au rseaux EtherCat, par exemple au travers dune
usine, est, quant elle, base sur le protocole IEEE 1558.
La synchronisation des horloges permet galement dobtenir des informations prcises concernant
les instants dacquisition ou de transfert des donnes. Par exemple, pour calculer une vitesse, un
contrleur de mouvement se base gnralement sur une srie de mesures de position effectues
squentiellement. Plus la frquence dchantillonnage est importante, plus les jitters ont un impact
important sur la prcision de la valeur de vitesse calcule. Grce la synchronisation des
horloges, la mme notion de temps est partage par tous les quipements. Les donnes sont
horodates avec prcision et la vitesse calcule ne dpend plus des jitters du systme.
Quelques chiffres
Grce lintgration hardware au niveau esclave et un accs direct la mmoire de la carte
rseau du matre, le traitement complet du protocole est ralis au niveau hardware. Il est par
consquent totalement indpendant des temps de traitement des piles protocolaires de niveaux
suprieurs, ainsi que des performances CPU ou encore de limplmentation software. EtherCat
permet de balayer 1000 E/S digitales en 30 microsecondes, la fois en lecture et en criture, grce
au mode full duplex intgral. 200 valeurs analogiques ncessitent 50 microsecondes, tandis que
100 axes sont contrls en 100 microsecondes. Durant ce laps de temps, tous les axes reoivent
des valeurs de commande et de contrle, et renvoient leur position ainsi que des informations
concernant leur tat de fonctionnement. La technique des horloges distribues permet de
synchroniser les axes avec une prcision sensiblement infrieure la microseconde.
Lexprience des bus de terrain montre clairement que la disponibilit des installations ainsi que les
temps de recouvrement en cas de panne dpendent fortement des capacits de diagnostic des
604
Annexes
systmes. Seuls les dfauts dtects rapidement et prcisment, puis localiss sans ambigut
peuvent tre corrigs dans les meilleurs dlais. EtherCat possde des fonctionnalits permettant de
reconnatre automatiquement la topologie du rseau et de vrifier la configuration des noeuds. Les
erreurs de bit sont dtectes de faon trs fiable grce des contrles de redondance cycliques
(CRC). Le polynme CRC 32bits assure une distance de hamming de 4. Le protocole, la couche
physique ainsi que la topologie du systme EtherCat permettent outre la dtection et la localisation
des canaux dfectueux, la supervision individuelle de chacun des segments. Lvaluation des
compteurs derreurs associs permet la localisation des portions critiques du rseau. Les sources
derreurs changeantes ou progressives telles que les interfrences lectromagntiques (IEM), les
connecteurs dfectueux ou les cbles endommags sont dtects et localiss, et ce, mme
lorsquils ne remettent pas encore en cause les capacits de cicatrisation du rseau.
Avec la miniaturisation progressive des composants PC, la taille des PC industriels est de plus en
plus dtermine par le nombre de slots utiliss. Grce la bande passante de Fast Ethernet, les
interfaces habituellement situes dans les PC Industriels peuvent tre transfres au niveau de
terminaux EtherCat intelligents. Outre les entres/sorties dcentralises, drives et units de
contrle, dautres systmes plus complexes tels que des bus de terrain, passerelles et autres
interfaces de communication peuvent tre adresses.
Mme dautres quipements Ethernet (sans restriction sur les variantes du protocole) peuvent tre
connects via des terminaux hub dcentraliss. Le PC Industriel central devient ainsi plus petit et
par consquent plus conomique. Une seule interface Ethernet est suffisante pour communiquer
avec lensemble des priphriques.
Profils et ouverture
Le profil dun quipement dcrit les paramtres de lapplication ainsi que le comportement
fonctionnel de lquipement, incluant la machine dtat caractristique de la classe laquelle il
appartient. Pour de nombreuses classes, les technologies de bus de terrain fournissent dj des
profils largement utiliss, par exemple pour les entres/sorties,les systmes dentranement ou
encore les valves. Les utilisateurs se sont familiariss avec ces profils, et connaissent bien les
paramtres ainsi que les outils associs. Cest la raison pour laquelle aucun profil EtherCat na t
dvelopp pour ces classes dquipements. A la place, de simples interfaces pour les profils
existants sont proposes, de quoi faciliter la tche des utilisateurs et des constructeurs lors des
migrations des bus de terrain existants vers EtherCat.
EtherCat et CanOpen
Des profils matriels et applicatifs CanOpen existent dj pour les quipements, allant des modules
dentres/sorties, systmes dentranement, encodeurs, valves proportionnelles, jusquaux profils
dapplications pour le traitement plastique ou les machines textiles par exemple. EtherCat peut
fournir les mmes mcanismes de communication que CanOpen : dictionnaire dobjet (Object
Dictionary), PDO (Process Data Objects) et SDO (Service Data Objects). EtherCat peut ainsi tre
implment avec un minimum defforts sur des quipements CanOpen. Une grande partie des
firmware CanOpen peuvent tre r-utiliss.
Servo-entranement avec EtherCat
Linterface Sercos est reconnue en tant quinterface de communication temps-rel hautes
performances, particulirement dans des applications de contrle de mouvement. Les profils
Sercos pour servo-entranements ainsi que la technologie de communication sont couverts par le
standard IEC 61491. Ces profils peuvent trs facilement tre mapps sur EtherCat. Le canal de
service, et par consquent lensemble des paramtres et fonctions du systme dentranement
dpendent de la mailbox EtherCat. Ici aussi, une attention particulire a t porte sur la
compatibilit avec les protocoles existants. Les donnes le process, sous forme de donnes AT
(Amplifi er Telegram) et MDT (Master Data Telegram), sont transfres par le biais des
mcanismes EtherCat du contrleur esclave. Le mapping est similaire celui de Sercos. La
605
Printed Documentation
machine dtat esclave dEtherCat peut galement tre mappe sur les phases du protocole
Sercos.
La technologie Ethernet temps rel est par consquent disponible pour ce type de profil matriel,
rpandu dans les applications CNC. En option, il est galement possible de transfrer la
commande de position, de vitesse ou de couple. En fonction de limplmentation, il est mme
possible de continuer utiliser les mmes outils de configuration des systmes dentranement.
EtherCat et Ethernet
La technologie EtherCat nest pas seulement compatible avec Ethernet, elle est galement ouverte
: le protocole tolre sur le mme support physique les autres services et protocoles bass sur
Ethernet. Il nexiste aucune restriction concernant le type dquipement Ethernet pouvant tre
connect par le biais dun port switch lintrieur dun segment EtherCat. Le rseau EtherCat est
transparent pour lquipement Ethernet, et les caractristiques temps-rel ne sont pas affectes.
Les quipements EtherCat peuvent par ailleurs se comporter comme des lments Ethernet
standard. Le matre agit comme un switch de niveau 2 qui redirige les trames vers les quipements
correspondants. Toutes les technologies Ethernet peuvent par consquent tre utilises dans
lenvironnement EtherCat : serveur web intgr, e-mail, transferts FTP, etc.
Laccs aux donnes
Un protocole similaire TFTP permet daccder nimporte quelle structure de donnes au niveau
de lquipement. Le chargement de firmware standardiss est par consquent possible, sans tenir
compte du fait que lquipement supporte ou non TCP/IP.
Implmentation
EtherCat utilise des contrleurs Ethernet standard l o des conomies peuvent tre ralises,
cest--dire au niveau du contrleur matre. Etant donn quune seule trame Ethernet doit tre
envoye par cycle, aucun coprocesseur nest ncessaire pour la communication. Cette
caractristique fait dEtherCat une solution Ethernet temps rel ne ncessitant pas lajout dun plugin au niveau du contrleur matre. Le contrleur Ethernet embarqu ou une simple carte NIC sont
suffi sants. Le matre est en gnral implment de faon purement logicielle.
Limplmentation dun matre EtherCat reste simple, surtout dans le cas dapplications petites ou
moyennes parfaitement dfi nies. Par exemple pour un API avec une seule image process : si
celle-ci ne dpasse pas 1488 octets, lenvoi cyclique dune seule trame Ethernet avec le temps de
cycle de lAPI est suffisant. Etant donn que le Header ne change pas, il suffi t dajouter un Header
constant limage du process et transfrer le rsultat au contrleur Ethernet.
Des contrleurs EtherCat de type ASIC ou FPGA sont utiliss au niveau des quipements
esclaves. Ils sont dores et dj disponibles ou en cours de prparation chez un certain nombre de
constructeurs. Par exemple, les contrleurs esclaves dvelopps par Beckhoff possdent une
DPRAM interne et offrent une srie dinterfaces permettant daccder la mmoire de lapplication.
Linterface srie SPI (Serial Peripheral Interface) est destine aux quipements manipulant de
faibles quantits de donnes de process, tels que les modules dentres/sorties analogiques, les
capteurs, les encodeurs ou les drives simples. Linterface dentres/sorties parallles 32 bits peuttre utilise pour connecter jusqu 32 entres/sorties digitales, ou pour de simples capteurs ou
actionneurs manipulant des donnes 32 bits. Linterface microcontrleur 8/16 bits parallle est
souhaitable quant elle dans le cas dquipements plus complexes manipulant de plus grandes
quantits de donnes.
Tlmaintenance
Raccordement
606
Annexes
La tlmaintenance permet via une liaison Internet de contrler distance un MPC l'aide du
logiciel Motion Studio.
Architecture
Les diffrents lments sont connects de la faon suivante :
607
Printed Documentation
Configuration de la Tlmaintenance
CONFIGURATION \ MPC \ ETHERNET TCP \ TELEMAINTENANCE
Le port 6100 doit tre ouvert en TCP sur le PC distant (arrt ou modification des paramtres
du firewall si besoin). De plus dans le cas d'une connexion Internet par rseau local, le port 6100
du routeur doit tre redirig vers le PC distant (voir votre administrateur rseau).
608
Annexes
Arrt de la tlmaintenance :
609
Printed Documentation
Rle
_MPC_REMOTE_CONTROL
430203 (1)
Tlmaintenance
_MPC_REMOTE_STATUS
430204 (1)
Etat
610
Annexes
Rle
_MPC_IP_ADDRESS
430101 (2)
Adresse IP
_MPC_IP_MASK
430103 (2)
Masque
_MPC_IP_GATEWAY
430105 (2)
Passerelle
_MPC_IP_DNS
430107 (2)
DNS
_MPC_REMOTE_IP
430201 (2)
IP Tlmaintenance
Liste d'instructions
REMOTE
Syntaxe
REMOTE (<Cmd>)
Types accepts
<Cmd> : USINT
Description
Cette fonction permet de dmarre/arrter la tlmaintenance :
REMOTE_HOST
Syntaxe
REMOTE_HOST (<HostName>)
Types accepts
<HostName> : STRING
Description
Cette fonction permet de forcer le nom d'hte de la tlmaintenance
REMOTE_S
Syntaxe
<Q> := REMOTE_S (0)
Types accepts
<Q> : USINT
Description
Cette fonction retourne l'tat de la tlmaintenance :
1 : en attente de connexion
2 : en connect au PC distant
611
Printed Documentation
STRINGIP_TO_UDINT
Syntaxe
<Adr_UDINT> := STRINGIP_TO_UDINT (<Adr_STRING>)
Type accept
<Adr_STRING> : STRING
<Adr_UDINT> : UDINT
Description
Cette instruction transforme une chane avec une IP en UDINT.
612
Index
A
A 314
ABS.............................................................. 339
ACC ............................................................. 340
ACC_T ......................................................... 341
Acclration / Vitesse rsultante ................. 286
Accs aux bits d un mot .............................. 321
Accessoires ................................................... 90
ACCP ........................................................... 342
ACOS........................................................... 342
ADC ............................................................. 343
ADD ............................................................. 344
Addition ........................................................ 326
ADDMOV ..................................................... 344
ADDSTOP ................................................... 345
Adresses ip .................................................. 558
Affectation .................................................... 123
Aide en ligne .................................................... 1
Aide F1 ............................................................ 2
Ajout d un axe IMD ........................................ 93
Ajout d un axe virtuel ..................................... 91
Ajout d un module E/S .................................107
Ajout d un profil ............................................ 117
Ajout d un variable globale .......................... 140
Ajouter une E/S un bloc compos CFC....200
Alarmes........................................................ 158
Alimentation E/S ............................................ 19
Alimentation gnrale .................................... 19
AND ............................................................. 345
ANDN........................................................... 346
Applications ................................................... 10
Arbre lectrique ........................................... 269
Arrt d un mouvement .................................266
Arrt d un mouvement d interpolation 2D....287
Arrt d une liaison matre / esclave ............. 283
ASIN ............................................................ 347
Assignation .................................................. 322
ATAN ........................................................... 348
Attente active ............................................... 304
Attente d un tat .......................................... 303
Attente passive ............................................ 304
Auto tuning................................................... 166
Automate ..................................................... 317
Auxiliaire ..............................................113, 259
Axes ............................................................. 108
AXIS............................................................. 349
AXIS_REQUEST_S.....................................350
AXIS_S ........................................................ 350
AXISWAIT.................................................... 351
B
BATERY_S .................................................. 351
Bistable ........................................................ 313
Bloc compos introduction .......................... 199
Botes cames ............................................ 307
BOOL ........................................................... 352
BREAKCAM................................................. 352
BREAKCAM_POS ....................................... 352
Buffer de mouvments ..................................239
613
Printed Documentation
614
ConfigurationMotionAutomateTchesOutils . 36
Console ....................................................... 160
Console de sortie .......................................... 73
Contenu d un projet ...................................... 37
CONTINUET ............................................... 363
Contrle .............................................. 111, 253
Contrle de l axe ......................................... 314
Conversion de type ..................................... 311
COS ............................................................ 364
COUNTER .................................................. 365
COUNTER_S .............................................. 366
COUNTEREVENT ...................................... 366
COUNTERSET ........................................... 367
Cration d un bloc fonctionnel .................... 135
Cration d un programme ........................... 132
Cration d un projet ...................................... 38
Cration d une fonction ............................... 137
Cration d une tche .................................. 130
Crer un bloc compos CFC ...................... 199
CTD ............................................................. 367
CTU ............................................................. 368
CTUD .......................................................... 370
CURRENT .................................................. 371
CURRENT_S .............................................. 372
D
DAC ............................................................ 372
DAC_S ........................................................ 372
DEC ............................................................ 373
DEC_T ........................................................ 374
Dclaration d un axe d interpolation ........... 291
Dclaration d un axe en mode virtuel ......... 260
Dclaration d un matre virtuel .................... 261
Dclaration de tableau ................................ 223
Dclaration de type numr...................... 224
Dclarations de structure ............................ 224
DECP .......................................................... 374
Dfinition du modle gomtrique .............. 292
DELAY ........................................................ 375
DELETE ...................................................... 375
Description .................................................. 183
Description des symboles ............................... 7
Dtection de front........................................ 313
Diagnostic du bus ....................................... 595
DictionnaireCANOpen................................. 597
Diffrent ...................................................... 335
DINT ............................................................ 375
DISABLERECALE ...................................... 375
DISPLAY ..................................................... 376
DIV .............................................................. 376
Division ....................................................... 330
DO ............................................................... 376
Documentation imprime ................................ 5
Donnes techniques ....................................... 8
DWORD ...................................................... 376
E
Ecran initial ................................................... 39
Ecriture d une sortie .................................... 303
Ecriture des sorties ..................................... 303
Editeur CFC ................................................ 175
Editeur CFC introduction ............................ 194
Index
615
Printed Documentation
J
JMP.............................................................. 411
JMPC ........................................................... 412
JMPCN ........................................................ 413
L
L10001 ......................................................... 511
L10004 ......................................................... 511
L10026 ......................................................... 511
L10027 ......................................................... 512
L10029 ......................................................... 512
L10030 ......................................................... 512
L10031 ......................................................... 512
L10032 ......................................................... 512
L10033 ......................................................... 512
L10034 ......................................................... 512
L10035 ......................................................... 513
L10036 ......................................................... 513
L10063 ......................................................... 513
L10105 ......................................................... 513
L10106 ......................................................... 513
L12001 ......................................................... 513
L12002 ......................................................... 514
L12003 ......................................................... 514
L12005 ......................................................... 514
L12006 ......................................................... 514
L12007 ......................................................... 514
L12008 ......................................................... 514
L12996 ......................................................... 515
L12997 ......................................................... 515
L12998 ......................................................... 515
L12999 ......................................................... 515
L13000 ......................................................... 515
L13001 ......................................................... 515
La communication CANopen ....................... 579
La zone de dclaration de variables des
diteurs de code ......................................168
LD ................................................................ 413
LDN.............................................................. 413
LE ................................................................ 413
Lecture d une entre ...................................303
Lecture d une sortie .....................................303
Lecture des entres .....................................303
Lecture des sorties ......................................303
LEFT ............................................................ 413
LEN .............................................................. 414
Les blocs fonctionnels .................................215
Les erreurs du MPC ....................................550
Les fonctions ............................................... 214
Les rpertoires ............................................... 36
LIMIT............................................................ 415
Liste des paramtres d un axe virtuel ........... 92
Liste des paramtres Motion dun axe Virtuel113
Liste des points d arrts ................................ 73
LN ................................................................ 416
LOADCAM ................................................... 417
LOADCAMI .................................................. 418
LOADCAMPOINT ........................................ 419
LOADTIMER ................................................ 419
LOCK ........................................................... 420
LOG ............................................................. 420
616
LT ................................................................ 421
M
Manipulation des chaines de caractres .... 313
MASTEROFFSET ....................................... 421
MASTEROFFSET_S .................................. 422
MAX ............................................................ 422
Menu Affichage ............................................. 49
Menu Aide ..................................................... 55
Menu Communication ................................... 50
Menu Compilation ......................................... 50
Menu Edition ................................................. 48
Menu Fentres .............................................. 53
Menu Objets.................................................. 47
Menu Options................................................ 54
Menu Projet................................................... 40
MERGE ....................................................... 423
Messages.................................................... 159
MID.............................................................. 424
MIN.............................................................. 424
Mise en garde ................................................. 7
Mise en route ................................................ 24
MOD ............................................................ 425
Modbus Esclave.......................................... 573
Modbus Matre ............................................ 573
Modbus RTU ................................................. 92
MODBUSCOUNTER .................................. 575
MODBUSERROR ....................................... 576
MODBUSERRORCOUNTER ..................... 576
MODBUSERRORRESET ........................... 577
MODBUSREAD .......................................... 574
MODBUSSETEXTENDED ......................... 577
MODBUSWRITE......................................... 575
Mode de fonctionnement ............................ 240
Modification d un bloc fonctionnel............... 136
Modification d un programme ..................... 134
Modification d un type de donnes ............. 139
Modification d une fonction ......................... 137
Modification d une tche ............................. 131
Modification d une variable globale ............ 141
Montage ........................................................ 21
Moteur ......................................................... 102
Motion ......................................................... 164
MOTORPOWER_S..................................... 426
Mots clefs de dclaration ............................ 318
Mouvements absolues ................................ 261
Mouvements dclenchs .................... 267, 316
Mouvements infinis ..................................... 265
Mouvements relatifs .................................... 263
Mouvements synchroniss ......................... 269
MOVA ......................................................... 426
MOVE ......................................................... 427
MOVE_S ..................................................... 427
MOVR ......................................................... 427
MOVS ......................................................... 428
MUL ............................................................ 429
Multiplication ............................................... 329
MULTITASKARRAY ................................... 429
MUX ............................................................ 429
N
NE ............................................................... 429
Index
617
Printed Documentation
618
Index
619
Printed Documentation
620