Vous êtes sur la page 1sur 636

Motion Studio

Table des matires


O trouver des informations .................................................................................................................... 1
Introduction .......................................................................................................................................... 1
Aide en ligne ........................................................................................................................................ 1
Aide F1 ................................................................................................................................................. 1
Impression documentation ................................................................................................................... 4
Service et support ................................................................................................................................ 4
Introduction .............................................................................................................................................. 5
Mise en garde ...................................................................................................................................... 5
Description des symboles .................................................................................................................... 5
Historique du manuel ........................................................................................................................... 5
Description du MPC ............................................................................................................................. 5
Gnralits ....................................................................................................................................... 5
Donnes techniques......................................................................................................................... 6
Description du logiciel Motion Studio ................................................................................................... 7
Gnralits ....................................................................................................................................... 7
Applications ...................................................................................................................................... 8
Installation / Mise en oeuvre .................................................................................................................... 9
Dimensions .......................................................................................................................................... 9
Vue de face ...................................................................................................................................... 9
Vue de dessus ................................................................................................................................ 11
Vue de ct .................................................................................................................................... 11
Affectation et brochage des connecteurs .......................................................................................... 13
Interface CANopen ......................................................................................................................... 13
Interface Industriel Ethernet ........................................................................................................... 13
Interface Ethernet TCP/IP .............................................................................................................. 13
Compact Flash et DIPSwitchs ........................................................................................................ 14
Entres logiques............................................................................................................................. 15
Sorties logiques .............................................................................................................................. 16
Alimentation E/S ............................................................................................................................. 17
Alimentation gnrale..................................................................................................................... 17
Interface USB ................................................................................................................................. 18
Interface SERIAL1 et SERIAL2 ...................................................................................................... 18
Montage ............................................................................................................................................. 19
Montage ......................................................................................................................................... 19
Scurits ............................................................................................................................................ 22
Scurits ........................................................................................................................................ 22
Mise en route ..................................................................................................................................... 22
Mise en route .................................................................................................................................. 22
Raccordement de variateur ............................................................................................................ 22
Configuration de l'adresse IP ......................................................................................................... 24

iii

Printed Documentation

Procdure de rglage d'un axe .......................................................................................................... 27


Procdure de rglage d'un axe ...................................................................................................... 27
Logiciel Motion Studio ........................................................................................................................... 29
Installation .......................................................................................................................................... 29
Configuration du systme............................................................................................................... 29
Procdure d'installation du Motion Studio ...................................................................................... 29
Architecture ........................................................................................................................................ 32
Les rpertoires ............................................................................................................................... 32
Contenu d'un projet ........................................................................................................................ 33
Prsentation ....................................................................................................................................... 34
Cration d'un projet ........................................................................................................................ 34
Ecran initial ..................................................................................................................................... 35
Menus et icnes ............................................................................................................................. 36
Navigateur de projet ....................................................................................................................... 53
Console de sortie ........................................................................................................................... 69
Prfrences .................................................................................................................................... 70
Assistant de paramtrage TCP/IP .................................................................................................. 74
Onglet Configuration .......................................................................................................................... 82
Interne ............................................................................................................................................ 82
Periphriques Ethercat ................................................................................................................... 89
Periphriques CANopen............................................................................................................... 103
Onglet Motion ................................................................................................................................... 104
Paramtrage d'un axe IMD .......................................................................................................... 104
Paramtrage d'un axe Virtuel ....................................................................................................... 109
Profils de came ............................................................................................................................. 113
Onglet Automate .............................................................................................................................. 119
L'diteur de variables d'entres/sorties ........................................................................................ 119
Paramtrage des E/S MPC .......................................................................................................... 120
Paramtrage des E/S IMD ........................................................................................................... 120
Paramtrage des E/S CANopen .................................................................................................. 121
Onglet Programmation ..................................................................................................................... 123
Configuration du multitche ......................................................................................................... 123
Configuration des communications .............................................................................................. 124
Les tches .................................................................................................................................... 125
Les programmes .......................................................................................................................... 127
Les blocs fonctionnels .................................................................................................................. 130
Les fonctions ................................................................................................................................ 132
Les types de donnes .................................................................................................................. 133
Les variables ................................................................................................................................ 135
Onglet Outils .................................................................................................................................... 140
Outils MPC ................................................................................................................................... 140
Outils Axe ..................................................................................................................................... 154

iv

Table des matires

Outils CANIO ................................................................................................................................ 161


Les diteurs de code........................................................................................................................ 161
La zone de dclaration de variables des diteurs de code .......................................................... 161
Les diteurs ST et IL .................................................................................................................... 163
L'diteur LD .................................................................................................................................. 165
L'diteur CFC ............................................................................................................................... 167
L'diteur FBD................................................................................................................................ 170
Langage de programmation ................................................................................................................ 173
Introduction ...................................................................................................................................... 173
Les langages .................................................................................................................................... 173
Langage IL ................................................................................................................................... 173
Langage ST .................................................................................................................................. 177
Langage LD .................................................................................................................................. 183
Langage CFC ............................................................................................................................... 185
Langage FBD ............................................................................................................................... 192
Les tches ........................................................................................................................................ 196
Principe des tches ...................................................................................................................... 196
Priorit des tches........................................................................................................................ 201
Gestion des tches....................................................................................................................... 203
Les programmes .............................................................................................................................. 204
Introduction ................................................................................................................................... 204
Les fonctions .................................................................................................................................... 205
Les fonctions ................................................................................................................................ 205
Les blocs fonctionnels...................................................................................................................... 206
Les blocs fonctionnels .................................................................................................................. 206
Les donnes .................................................................................................................................... 207
Introduction ................................................................................................................................... 207
Sections de dclaration ................................................................................................................ 211
Structure d'une ligne de dclaration ............................................................................................. 212
Types de base .............................................................................................................................. 213
Types redfinis ............................................................................................................................. 213
Dclaration de tableau ................................................................................................................. 214
Dclaration de structure ............................................................................................................... 214
Dclaration de type numr ....................................................................................................... 215
Types dfinies par le Motion Studio ............................................................................................. 215
Programmation du contrle de mouvement ........................................................................................ 229
Introduction ...................................................................................................................................... 229
Buffer de mouvements ..................................................................................................................... 229
Attention: ...................................................................................................................................... 230
Mode de fonctionnement ................................................................................................................. 230
Mode de fonctionnement .............................................................................................................. 230
Mode asservi / non asservi .............................................................................................................. 231

Printed Documentation

Passage en mode non asservi ..................................................................................................... 231


Passage en mode asservi ............................................................................................................ 232
Paramtrage d'un axe ...................................................................................................................... 232
Rgulation .................................................................................................................................... 233
Paramtrage d'un axe .................................................................................................................. 233
Unit utilisateur ............................................................................................................................. 234
Profil de vitesse ............................................................................................................................ 235
Prise d'origine ............................................................................................................................... 236
Contrle ........................................................................................................................................ 243
Auxiliaire ....................................................................................................................................... 249
Dclaration d'un axe en mode simulation ........................................................................................ 250
Dclaration d'un axe en mode simulation .................................................................................... 250
Dclaration d'un axe virtuel.............................................................................................................. 251
Dclaration d'un axe virtuel .......................................................................................................... 251
Positionnement ................................................................................................................................ 251
Mouvements absolues ................................................................................................................. 251
Mouvements relatifs ..................................................................................................................... 253
Mouvements infinis....................................................................................................................... 255
Arrt d'un mouvement .................................................................................................................. 256
Mouvements dclenchs ................................................................................................................. 257
Mouvements dclenchs.............................................................................................................. 257
Synchronisation ............................................................................................................................... 259
Arbre lectrique ............................................................................................................................ 259
Mouvements synchroniss ........................................................................................................... 259
Came ............................................................................................................................................ 264
Fonction de compensation / dcompensation ............................................................................. 272
Fonction de superposition de mouvements ................................................................................. 273
Arrt d'une liaison matre / esclave .............................................................................................. 274
Interpolation ..................................................................................................................................... 274
Interpolation 2D et 3D .................................................................................................................. 274
Interpolation tendue.................................................................................................................... 281
Capture ............................................................................................................................................ 289
Capture ......................................................................................................................................... 289
Programmation de l'automate ............................................................................................................. 291
En langage ST ................................................................................................................................. 291
Entres/Sorties logiques .............................................................................................................. 291
Entres/Sorties analogiques ........................................................................................................ 291
Temporisations ............................................................................................................................. 292
Evnements ................................................................................................................................. 292
Compteurs .................................................................................................................................... 294
Botes cames............................................................................................................................. 295
Liste des oprateurs et instructions ..................................................................................................... 299

vi

Table des matires

Par catgorie .................................................................................................................................... 299


Oprations de base ...................................................................................................................... 299
Fonctions standards IEC61131-3 ................................................................................................. 299
Blocs fonctionnels standards IEC61131-3 ................................................................................... 301
Fonctions de gestion des tches.................................................................................................. 302
Fonctions de mouvement SERAD ............................................................................................... 302
Fonctions automates SERAD ...................................................................................................... 305
Mots clefs de dclaration.............................................................................................................. 306
Instructions du langage IL ............................................................................................................ 306
Instructions du langage ST........................................................................................................... 307
Autres ........................................................................................................................................... 308
Liste alphabtique ............................................................................................................................ 309
Accs aux bits d'un mot ............................................................................................................... 309
Assignation de variable ................................................................................................................ 310
Parenthses ................................................................................................................................. 310
Etiquettes

......................................................................
Destination d'une instruction de saut
312

Sauts ............................................................................................................................................ 313


Addition......................................................................................................................................... 314
Soustraction ................................................................................................................................. 315
Multiplication ................................................................................................................................. 316
Division ......................................................................................................................................... 318
Ngation ....................................................................................................................................... 319
Infrieur ........................................................................................................................................ 319
Infrieur ou gal ........................................................................................................................... 321
Egalit........................................................................................................................................... 322
Diffrent ........................................................................................................................................ 323
Suprieur ou gal ......................................................................................................................... 324
Suprieur ...................................................................................................................................... 326
ABS

.................................................................................................
Calcule la valeur absolue
327

ACC

.....................................................................................................................
Acclration
328

.................................................................................................................
Acclration
329

ACC_T
ACCP

Acc en pourcentage ......................................................................................... 329


lration

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

AND .............................................................................................................................................. 333


ANDN
ASIN
ATAN
AXIS

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

AXISWAIT .................................................................................................................................... 339


BATERY_S ................................................................................................................................... 339
BOOL............................................................................................................................................ 339
............................................................
Arrt du mouvement de synchronisation
340

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

Bote cames .......................................................................................................... 342

CAMBOX_S ................................................................................................................................. 343


CAMBOXOUT

....................................................................................
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

CLEARAXISFAULT - Acquitte les dfauts d'un axe .................................................................... 350


CLEARFLASH .............................................................................................................................. 351
........................................................
concatnation de deux chanes de351
caractres

CONCAT

..........................................................................
Continue l'excution d'une tche
351

CONTINUE

............................................................................................................................
Cosinus
352

COS

...........................................................................................
Configure le compteur
353

COUNTER

COUNTER_S ............................................................................................................................... 353


COUNTEREVENT

.........................................................
Associe un vnement au compteur
354

COUNTERSET ............................................................................................................................. 354


CTD

Dcompteur ...................................................................................................................... 355

CTU

Compteur
..........................................................................................................................
356

CTUD

..................................................................................................
Compteur/Dcompteur
357

CURRENT .................................................................................................................................... 359


CURRENT_S ............................................................................................................................... 359

viii

Table des matires

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

DINT ............................................................................................................................................. 363


DISABLERECALE
DISPLAY

.........................................................................
Dsactivation du recalage
363
Afficheur 7 segments
................................................................................................
363

DIV- Division (langage IL) ............................................................................................................ 364


DO ................................................................................................................................................ 364
DWORD........................................................................................................................................ 364
ELSE ............................................................................................................................................ 364
ELSIF............................................................................................................................................ 364
ENABLERECALE

.............................................................
Fonction de recalage automatique 364

ENABLERECALE

.............................................................
Fonction de recalage automatique 365

END_CASE .................................................................................................................................. 365


END_FOR .................................................................................................................................... 365
END_IF ......................................................................................................................................... 366
END_REPEAT ............................................................................................................................. 366
END_TYPE .................................................................................................................................. 366
END_VAR .................................................................................................................................... 366
END_WHILE ................................................................................................................................ 366
ENDCAM
EQ

......................................................................................................
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

FALSE .......................................................................................................................................... 370


FAULTAXIS_S ............................................................................................................................. 370
FE_S
FEMAX_S
FIND
FILTERMASTER

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

FIXTOREAL ................................................................................................................................. 373


FLASHOK_S ................................................................................................................................ 373
FOR
FRAC
GE
GEARBOX

.....................................................................................................................
Boucle FOR
374

.........................................................................................................
Partie fractionnelle
375

.........................................................................................
Suprieur ou gale (langage IL)
375

.....................................................................................................
Arbre lectrique
375

ix

Printed Documentation

GEARBOX2 .................................................................................................................................. 377

................................
Change le rapport 379
de rduction d'un ar

GEARBOXRATIO

..................................................................
Etat du changement de ratio
380

GEARBOXRATIO_S

GETBITB Retourne un bit d'une variable BYTE ....................................................................... 380


GETBITD

..................................................................
Retourne un bit d'une variable DWORD381

GETBITW

....................................................................
Retourne un bit d'une variable WORD 381

.............................
Retourne le dernier
381vnement de la

GETLASTSYSEVENT

GETMODE ................................................................................................................................... 382

.............................
Retourne le premier
382vnement de la

GETSYSTEMEVENT

GETUSEREVENTPARAM - Rcupre le paramtre associ au dernier vnement ................. 383

........................................................................................................
Suprieur (langage IL)
383

GT

.............................................................................................................
Arrte une tche
383

HALT

...............................................................................................................
Prise d'origine
384

HOME
HOME_S

Rsultat de la prise d'origine .................................................................................... 388

.................................................................................
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

IF THEN ELSE ELSIF END_IF .................................................................................................... 393


INIT_S
INITGETCONTEXT
INITSETRESULT
INP

.....................................................................
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

INSERT ........................................................................................................................................ 397


INT ................................................................................................................................................ 397
INTERPOLATE ............................................................................................................................ 397
INTERPOLATE2D ........................................................................................................................ 398
INTERPOLATE3D ........................................................................................................................ 398
INTP

...................................................................................................................
Partie entire
398

IOFAULT_S .................................................................................................................................. 398


JMP

..............................................................................................................
Effectuer un saut
399

JMPC ............................................................................................................................................ 400


JMPCN ......................................................................................................................................... 400
LD ................................................................................................................................................. 400
LDN .............................................................................................................................................. 400

Table des matires

LE - Comparaison (langage IL) .................................................................................................... 400

............................................................................................
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

LOADTIMER ................................................................................................................................ 407

................................................................................
Bloque le squenceur sur la tche
407

LOCK

....................................................................................................
Logarithme de base 10
408

LOG

LT - Comparaison (langage IL) .................................................................................................... 409

............................................
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

MID ............................................................................................................................................... 412


MIN
MOD
MOTORPOWER_S
MOVA

.............................................................................
Retourne le minimum de deux valeurs
412

.......................................................................................................
Division (langage IL)
413

..................................................................
Image de la puissance moteur
413

........................................................................................................
Mouvement absolu
413

MOVE ........................................................................................................................................... 414


MOVE_S

..................................................................................................
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

RAMOK_S .................................................................................................................................... 427


RAMTOFLASH ............................................................................................................................. 428
READCAM

.......................................................................
Charge une came dans un tableau
428

REAL ............................................................................................................................................ 428


REALTOFIX ................................................................................................................................. 428
REG_S
REGPOS_S
REPEAT

Etat de
capture
........................................................................................................
la
429
Valeur de la capture
.............................................................................................
429

........................................................................................................
Boucle REPEAT
430

REPLACE ..................................................................................................................................... 431


RESTART
RESTART_S

......................................................................................
Redmarrage du systme
431
Retourne
la
raison du dernier dmarrage .......................................................... 431

RET .............................................................................................................................................. 431


RETC ............................................................................................................................................ 431
RETCN ......................................................................................................................................... 431
RETURN
RIGHT

......................................................................................
Saut la fin du programme
431
............................................................................................
Partie droite d'une chane
432

ROL

Rotation des bits gauche


...............................................................................................
433

ROR

.................................................................................................
Rotation des bits droite
434

...............................................................................................
Bascule RESET prioritaire
435

RS
RUN
S

..............................................................................................................
Lance une tche
436

Force une variable boolenne TRUE................................................................................. 437

SECURITY

..............................................................................
Dfinit les actions de scurits
438

SECURITYFEMAX ....................................................................................................................... 439


SEL ............................................................................................................................................... 439
SPEED ......................................................................................................................................... 439
SPEED_S ..................................................................................................................................... 440
SETBITB

..........................................................................
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

SETMODE .................................................................................................................................... 441


SETINP

Force
..............................................................................................
l'tat d'une entre
441

SETTASKEVENTLIST - Associe une liste d'vnement ............................................................. 442


SGN

xii

................................................................................................................................
Signe
442

Table des matires

SHL

.............................................................................................
Dcalage des bits gauche
442

SHR

...............................................................................................
Dcalage des bits droite
443

............................................................................................
Gnration d'vnement
444

SIGNAL
SIN

..................................................................................................................................
Sinus
445

SINT ............................................................................................................................................. 446

............................................
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

STARTCOUNTER ........................................................................................................................ 451


STATUS_S

..................................................................................................
Etat dune tche
451

STN .............................................................................................................................................. 452


STOP
STOPCAMBOX

.................................................................................................................
Arrt d'un axe
452
................................................................................
Arrte une bote came
452

STOPCOUNTER .......................................................................................................................... 453


STOPS
STOPS_S
STRYWAIT
STTA

............................................................................
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

STTL2D ........................................................................................................................................ 462


STTL3D ........................................................................................................................................ 463
STTR

...........................................................................................
Lance un mouvement relatif
463

SUSPEND

................................................................................................
Suspend une tche
464

SUB

.................................................................................................
Soustraction (langage IL)
464

SWAIT
TAN

.....................................................................................................
Prend le smaphore
464

..........................................................................................................................
Tangente
465

THEN ............................................................................................................................................ 466


TIMEH

...............................................................
Temps coul depuis le dmarrage du466
MPC

TIMEL

...............................................................
Temps coul depuis le dmarrage du466
MPC

TIMER .......................................................................................................................................... 466

xiii

Printed Documentation

TO................................................................................................................................................. 467
TOF

....................................................................................
Temporisateur l'enclenchement
467

TON

....................................................................................
Temporisateur l'enclenchement
468

TORQUE ...................................................................................................................................... 469


TORQUE_S - Retourne le couple ................................................................................................ 470
TP Temporisateur d'impulsions ................................................................................................ 470

.......................................................................................................
Trajectoire absolue
472

TRAJA

TRAJC2D ..................................................................................................................................... 472


TRAJC3D ..................................................................................................................................... 473
TRAJH3D ..................................................................................................................................... 473
TRAJIM

Lance
moins
................................................................
un mouvement infini en sens
473

TRAJIP

.....................................................................
Lance un mouvement infini en sens plus 474

TRAJL2D ...................................................................................................................................... 474


TRAJL3D ...................................................................................................................................... 475

.......................................................................................................
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

TRUE ............................................................................................................................................ 478


Tronqued'un
dcimale
la partie
nombre .................................................................... 478

TRUNC

TYPE ............................................................................................................................................ 479


UDINT........................................................................................................................................... 480
UINT ............................................................................................................................................. 480
..........................................................................................
Dbloque le squenceur
480

UNLOCK

UNTIL ........................................................................................................................................... 480


USINT ........................................................................................................................................... 480
UDINTWSWAP

...........................................................................................
Inversion de mots
480

VAR .............................................................................................................................................. 480


VAR_EXTERNAL ......................................................................................................................... 481
VAR_GLOBAL.............................................................................................................................. 481
VAR_IN......................................................................................................................................... 481
VAR_IN_OUT ............................................................................................................................... 481
VAR_OUTPUT ............................................................................................................................. 481
VEL
VEL_S

..........................................................................................................................
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

Table des matires

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

WORD .......................................................................................................................................... 488


WRITECAM

Enregistre
ableau
dans une
un t came ................................................................. 488

XOR

.....................................................................................................
Oprateur OU exclusif
488

XORN

...........................................................
Oprateur OU exclusif avec l'entre490
2 inverse

Annexes ............................................................................................................................................... 491


Les erreurs ....................................................................................................................................... 491
Les erreurs de compilation ........................................................................................................... 491
Les erreurs de linkage .................................................................................................................. 499
Les erreurs de syntaxe ................................................................................................................. 503
Les erreurs du MPC ..................................................................................................................... 538
Communication ................................................................................................................................ 546
Communication Ethernet .............................................................................................................. 546
Communication Srie ................................................................................................................... 551
Communication Modbus............................................................................................................... 555
Communication CANopen ............................................................................................................ 565
EtherCAT ......................................................................................................................................... 602
Ethercat ........................................................................................................................................ 602
Tlmaintenance ............................................................................................................................. 606
Raccordement .............................................................................................................................. 606
Configuration de la liaison ............................................................................................................ 607
Etablissement de la liaison ........................................................................................................... 608
Exemple d'cran de paramtrage ................................................................................................ 610
Liste d'instructions ........................................................................................................................ 611
Index .................................................................................................................................................... 613

xv

O trouver des informations


Introduction
Vous pouvez trouver des informations sur le Motion Studio de diffrentes faons (les sections qui
suivent dcrivent ces sources d'information) :

Dans l'aide en ligne

Sur le site Web de SERAD

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.

O trouver des informations

Il est galement possible d'obtenir de l'aide sur une instruction du langage ST / IL en la


slectionnant et en cliquant sur

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

Avant la premire mise en service de l'installation, veuillez lire les informations


suivantes afin d'viter des dommages corporels et/ou matriels.
Le montage, le raccordement, la mise en service et la maintenance de l'appareil ne peuvent
tre raliss que par des personnes qualifies et doivent obir aux normes nationales et
internationales (DIN, VDE, EN, IEC). Le non respect de ces normes peut engendrer de graves
dommages matriels.
De plus, il est indispensable de respecter les instructions de scurit. Des blessures et
dommages corporels peuvent rsulter d'une mconnaissance de ces instructions de
scurit.
En cas d'erreur sur le MPC, l'utilisateur est responsable d'assurer la mise en scurit des
autres dispositifs qui peuvent tre relis.

Description des symboles


Les symboles suivants de mise en garde sont employs dans ce guide d'installation. Ils sont prvus
pour alerter le lecteur aux instructions de sret associes.

Historique du manuel

Version

Date

Commentaire

R1.02

01/09/2008

Mise jour et correction

R1.01

28/05/2007

Ajout compteur, boite cames

R0.59

03/05/2007

Mise jour et correction

R0.54

11/10/2006

Mise jour synchronisation et capture

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

Description du logiciel Motion Studio


Gnralits
Grce son interface intuitive et son langage normalis IEC 61131-3, l'atelier logiciel Motion
Studio offre une convivialit parfaite et permet un dveloppement rapide de votre application.

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.

Installation / Mise en oeuvre


Dimensions
Vue de face

Printed Documentation

10

Installation / Mise en oeuvre

Vue de dessus

Vue de ct

11

Printed Documentation

12

Installation / Mise en oeuvre

Affectation et brochage des connecteurs


Interface CANopen

Interface Industriel Ethernet

Interface Ethernet TCP/IP

13

Printed Documentation

Compact Flash et DIPSwitchs

14

Pour accder au module Compact Flash ou aux DIPSwitchs, retirer les deux vis de fixation
du capot :

Installation / Mise en oeuvre

Pour retirer la Compact Flash 64 Mo, tirer sur le ruban adhsif :

La Compact Flash est fournie par SERAD, tout autre Compact Flash entrane des
dysfonctionnements.

Assignation des DIPSwitchs :

Entres logiques

15

Printed Documentation

Sorties logiques

16

Installation / Mise en oeuvre

Alimentation E/S

Alimentation gnrale

17

Printed Documentation

Interface USB

Interface SERIAL1 et SERIAL2

18

Installation / Mise en oeuvre

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

Installation / Mise en oeuvre

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

Installation / Mise en oeuvre

Raccordement avec des variateurs IMDL

Raccordement des variateurs IMDx au rseau ETHERCAT

23

Printed Documentation

< AJOUTER PHOTO DU BANC 5 AXES


1. Chaque variateur doit avoir une adresse ETHERCAT diffrent
2. Les cbles ETHERCAT doivent tre de catgorie 5E SFTP
3. Les adresses ETHERCAT des variateurs correspondront au numro + 1 prsent sur les
DIPSwitchs au dessus des prises RJ45
Configuration de l'adresse IP
Configuration de l'adresse IP
Aprs avoir cr un nouveau projet, l'adresse IP configure par dfaut dans votre projet
192.168.1.1 et ne correspond pas forcment celle de votre MPC.
Pour tablir la premire connexion et configurer les adresses IP de votre projet et celle du MPC,
dmarre l'assistant de paramtrage TCP/IP

Slectionner la carte rseau reli au rseau du MPC

24

Installation / Mise en oeuvre

Si le pare-feu Windows vous bloque la connexion

Choisir Dbloquer puis redmarrer l'assistant de paramtrage TCP/IP


L'assistant affiche les MPC dtects sur le rseau

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

Slectionner votre MPC puis cliquer sur Suivant


L'assistant affiche la configuration du projet du PC et la configuration du MPC

Cliquer sur Suivant


Choisir entre la configuration du projet du PC ou la configuration du MPC.

Cliquer sur Suivant

26

Installation / Mise en oeuvre

L'assistant affiche le rsultat du test de communication entre le PC et le MPC

Cliquer sur Termin


Forcage de l'adresse IP par DIPSwitchs
Cette procdure permet de forcer l'adresse IP du MPC l'adresse 192.168.1.1 et son masque
l'adresse 255.255.255.0.

Mettre le MPC hors tension


Mettre le DIP2 sur
ON
Mettre le MPC sous tension
Aprs la squence de dmarrage (environ 15s) on doit avoir une animation et un
C sur
l'afficheur 7 segments
Sans teindre le MPC, basculer le DIP2 sur
OFF puis nouveau sur ON
Attendre 5s
Mette le MPC hors tension
Mettre le DIP2 sur
OFF
Mettre le MPC sous tension : son adresse IP est 192.168.1.1 et le marque est
255.255.255.0

Procdure de rglage d'un axe


Procdure de rglage d'un axe
Le paramtrage des axes se fait partir de la librairie moteur disponible dans le logiciel ou partir
d'un autotuning du variateur.

27

Logiciel Motion Studio


Installation
Configuration du systme
Configuration minimale :
PC Pentium III 800 MHz
RAM 128 Mo (Windows 2000) / 256 Mo (Windows XP)
Disque dur (50 Mo disponibles)
Microsoft Windows
2000 ou XP
Lecteur de CD-ROM (16X)
Ecran SVGA 1024x768
Souris ou autre priphrique de pointage
Configuration recommande :
PC Pentium IV ou plus
RAM 256 Mo (Windows 2000) / 512 Mo (Windows XP)
Disque dur (50 Mo disponibles)
Microsoft Windows
2000 ou XP
Lecteur de DVD-ROM
Ecran SVGA 1280x1024
Souris ou autre priphrique de pointage
Cette application ne fonctionne pas sous Unix, Linux, Mac OS, MS-DOS et Microsoft Windows
3.11, 95, 98, Me et NT4.
Procdure d'installation du Motion Studio
Le logiciel Motion Studio est fourni sous forme de CD-ROM avec le systme MPC. Le programme
d'installation cre des rpertoires et copie les fichiers du disque d'installation du Motion Studio sur
votre PC. Le programme d'installation est trs explicatif. Les notions lmentaires sur l'installation
du Motion Studio vous sont donnes dans les tapes suivantes :
Pour installer le Motion Studio

1. Vrifier la configuration requise pour installer le logiciel.


2. Insrer le CD-ROM dans le lecteur appropri.
3. Dans le menu droulant

, 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

dans la bote de dialogue Parcourir .

dans la bote de dialogue Excuter .


7. Slectionner
Le programme d'installation du logiciel Motion Studio dbute.

8. Le dbut de l'installation est marqu par une srie de bote de dialogue guidant
l'utilisateur :

29

Printed Documentation

30

Choix de la langue d'installation

Message d'accueil

Options d'installation

Logiciel Motion Studio

Dmarrage de la copie des fichiers

L'installation des fichiers dbute et est indique par l'volution d'une barre de
progression.

31

Printed Documentation

Fin de la copie des fichiers

L'installation se termine par l'ajout de l'icne du Motion Studio dans le dossier


programme.

Architecture
Les rpertoires

32

Logiciel Motion Studio

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

Un projet cr avec le logiciel Motion Studio s


articule
et de troisautour
sous dun fichier princ
.MPC, dfinit
rpertoires. Le fichier principal, qui possde l'extension
options utilises par le logiciel. Par exemple, pour un projet nomm motion on obtient les
rpertoires suivants :

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

Les valeurs des donnes

La configuration du scope et autres outils

Les commentaires du projet

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

Logiciel Motion Studio

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

Logiciel Motion Studio

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

Logiciel Motion Studio

Fermer
Icne :
Action : Fermer le projet en cours.

Ouvrir partir d'une archive


Icne :
Action : Dcompresser et ouvrir un projet prcdemment archiv.

Archiver le projet
Icne :
Action : Archiver en compressant le projet afin de rduire son encombrement sur le disque.

Envoyer le projet par E-Mail


Icne :
Action : Compresser et envoyer le projet par E-Mail en ouvrant le lecteur d'E-Mail par dfaut.

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

Logiciel Motion Studio

Les rsultats de recherche sont rpartis par fichier. En double cliquant sur une ligne, le fichier
correspondant s'ouvre la ligne concerne.

Envoi des sources du projet PC -> MPC


Icne :
Action : Stocker les sources du projet PC dans le MPC.

Rception des sources du projet MPC -> PC


Icne :
Action : Rcuprer les sources contenues dans le MPC vers le PC.

Vrifier la version du systme


Icne :
Action : Comparer les versions entre le PC et le MPC pour :

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.

Restaurer le projet partir d'une archive


Icne :
Action : Restaurer une archive du projet partir d'une date. Les archives sont cres
automatiquement lors de la sauvegarde du projet.

42

Logiciel Motion Studio

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

Action : Activer l'onglet outils dans le navigateur de projet.


Menu Edition

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

Logiciel Motion Studio

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

Logiciel Motion Studio

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.

Envoyer les variables


Icne :
Action : Envoyer les variables sauvegardes et initialise dans le MPC, les valeurs affectes ces
variables. Ainsi il n'est pas ncessaire de les initialiser dans le programme.

Recevoir les variables


Icne :
Action : Recevoir les variables sauvegardes et conserver une copie de leur valeur sur le PC.

Envoyer les profils de cames


Icne :
Action : Envoyer les variables sauvegardes et initialise dans le MPC, les valeurs affectes ces
variables. Ainsi il n'est pas ncessaire de les initialiser dans le programme.

Recevoir les profils de cames


Icne :
Action : Recevoir les variables sauvegardes et conserver une copie de leur valeur sur le PC.

Envoyer les tches


Icne :
Action : Envoyer la totalit des tches compiles dans le MPC. L'excution des tches est lance
automatiquement ds la fin du transfert.

Effacer les tches


Icne :
Action : Ecraser les tches prsentes dans le MPC.

Run
Icne :
Action : Dmarrer les tches du MPC.

48

Logiciel Motion Studio

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.

Aller la position d'excution sauvegarde


Icne :
Action : Indiquer la dernire ligne/instruction excute avant redmarrage du MPC.

Aller la position d'excution courante


Icne :
Action : Indiquer la ligne/instruction en cours d'excution du MPC.
Menu Fentres

Cascade
Icne :

49

Printed Documentation

Action : Afficher les diffrentes fentres en cascade.

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.

Assistant de paramtrage TCP/IP


Icne :
Action : Configurer l'adresse IP d'un MPC par liaison Ethernet ou Srie.
Voir la rubrique Assistant de paramtrage TCP/IP.

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

Logiciel Motion Studio

Effacement de la mmoire sauvegarde


Icne :
Action : Effacer le contenu de la mmoire sauvegarde (BBM) contenant la configuration et les
variables globales sauvegardes.

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.

Recherche dans l'aide


Icne :
Action : Ouvrir l'aide en ligne du Motion Studio pour une recherche par mot cl.

Site Web SERAD


Action : Ouvrir une fentre de navigateur html sur le site Internet SERAD.

Table CANopen classe par Index


Action : Ouvrir une fentre de navigateur html sur la table CANopen classe par Index.

52

Logiciel Motion Studio

Table CANopen classe par groupe


Action : Ouvrir une fentre de navigateur html sur la table CANopen classe par groupe.

Table Modbus classe par Index


Action : Ouvrir une fentre de navigateur html sur la table Modbus classe par Index

Table Modbus classe par groupe


Action : Ouvrir une fentre de navigateur html sur la table Modbus classe par groupe.
Navigateur de projet
Onglet Configuration
L'onglet Configuration rassemble la configuration du MPC et de ses priphriques, rpartis par
connexion. Le pointeur de souris
clic sur un lment du navigateur.

indique la prsence d'une commande accessible par double

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.

Dplacer vers le haut


Icne :
Action : Dplace l'axe slectionn, au dessus dans la liste.

Dplacer vers le bas


Icne :
Action : Dplace l'axe slectionn, au dessous dans la liste.

Importer partir d'un fichier


Icne :
Action : Importe les donnes de l'axe partir d'un fichier IDPL ou MSS.

54

Logiciel Motion Studio

Choisir le fichier importer en cliquant sur

Slectionnez le type de fichier (IDPL ou MSS) importer


Slectionnez le fichier et cliquez sur Ok.
Cliquez sur

pour importer le fichier

Exporter vers un fichier


Icne :
Action : Exporte les donnes de l'axe partir d'un fichier IDPL ou MSS.

Choisir le fichier exporter en cliquant sur


Slectionnez le fichier et cliquez sur Ok.
Cliquez sur

pour exporter le fichier

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

indique la prsence d'une

Logiciel Motion Studio

En cliquant avec le clic droit de la souris on accde au menu pop-up suivant :

Renommer
Icne :
Action : Renomme l'axe slectionn.

Dplacer vers le haut


Icne :
Action : Dplace l'axe slectionn, au dessus dans la liste.

Dplacer vers le bas


Icne :
Action : Dplace l'axe slectionn, au dessous dans la liste.
Onglet Automate
L'onglet automate donne accs aux paramtrage des entres / sorties. Leur nom, inversion et
filtrage sont ainsi dfinit grce l'diteur d'entres / sorties. Les entres / sorties du MPC, des IMD
et des modules d'entres / sorties CANopen sont accessible sur cet cran. Le pointeur de souris
indique la prsence d'une commande accessible par double clic sur un lment du navigateur.

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

indique la prsence d'une commande accessible par

Logiciel Motion Studio

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

Dplacer vers le haut


Icne :
Action : Dplace l'lment slectionn, au dessus dans la liste.

Dplacer vers le bas


Icne :
Action : Dplace l'lment slectionn, au dessous dans la liste.

Dans le cas des diteurs de variables sauvegardes et d'change, il est galement possible
d'importer et d'exporter les listes de variables.

Importer partir d'un fichier


Icne :
Action : Importe les variables globales partir d'un fichier MSV.

Slectionnez le fichier et cliquez sur Ok.


Cliquez sur

pour importer le fichier

Exporter vers un fichier


Icne :

60

Logiciel Motion Studio

Action : Exporte les variables globales partir d'un fichier MSV.

Choisir le fichier exporter en cliquant sur


Slectionnez le fichier et cliquez sur Ok.
Cliquez sur

pour exporter le fichier

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.

indique la prsence d'une commande accessible par double

Ajouter
Icne :

61

Printed Documentation

Action : Ajouter un axe IMD ou virtuel, un module d'entres / sorties CANopen.

Ajout d'un IMD

Nom : Nom de l'axe ajouter.

Configuration : Nom du fichier de configuration IDPL appliquer

Importer : Permet de slectionner le fichier de configuration appliquer

Crer partir de : Active la cration par copie d'un axe existant. Slectionnez l'axe dans la
liste

Ajout d

62

un Axe virtuel

Logiciel Motion Studio

Nom : Nom de l'axe ajouter.

Ajout d'un module d'entres / sorties CANopen

Nom : Nom du module d'entres / sorties ajouter.

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.

Dplacer vers le haut


Icne :
Action : Dplace l'axe slectionn, au dessus dans la liste.

Dplacer vers le bas


Icne :
Action : Dplace l'axe slectionn, au dessous dans la liste.

Importer partir d'un fichier


Icne :
Action : Importe les donnes de l'axe partir d'un fichier IDPL ou MSS.

Choisir le fichier importer en cliquant sur

64

Logiciel Motion Studio

Slectionnez le type de fichier (IDPL ou MSS) importer


Slectionnez le fichier et cliquez sur Ok.
Cliquez sur

pour importer le fichier

Exporter vers un fichier


Icne :
Action : Exporte les donnes de l'axe partir d'un fichier IDPL ou MSS.

Choisir le fichier exporter en cliquant sur


Slectionnez le fichier et cliquez sur Ok.
Cliquez sur

pour exporter le fichier

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

Validation des axes

Etat
Icne :
Signification : Indique l'tat global de la validation des axes.

Eteint : Tous les axes dont dvalids

Clignotant jaune : Tous les axes ne sont pas valids

Allum jaune : Tous les axes sont valids.

L'tat n'est visualisable qu'en mode

En ligne.

Validation
Icne :
Action : Demande la validation de tous les axes, rel, en simulation ou virtuel prsent dans la
configuration.

66

Logiciel Motion Studio

Dvalidation
Icne :
Action : Demande la dvalidation de tous les axes, rel, en simulation ou virtuel prsent dans la
configuration.
En ligne

Ces commandes ne sont accessibles qu'en mode

Liaison EtherCAT

Etat
Icne :
Signification : Indique l'tat global de la liaison EtherCAT avec les variateurs.

Eteint : La liaison EtherCAT est non initialis ou interrompue.

Allum vert: La liaison EtherCAT est tablie et le rseau est initialis correctement

L'tat n'est visualisable qu'en mode

En ligne.

Init
Icne :
Action : Demande l'initialisation de la liaison EtherCAT et la vrification des axes prsents sur le
rseau.
En ligne

Cette commande n'est accessible qu'en mode

Liaison CANopen

Etat
Icne :
Signification : Indique l'tat global de la liaison CANopen avec les modules d'entres / sorties.

Eteint : La liaison CANopen est non initialis ou arrte.

Clignotant rouge : La liaison est en erreur.

Allum vert : La liaison CANopen est tablie et le bus de terrain est initialis correctement.

L'tat n'est visualisable qu'en mode

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.

En cliquant sur l'afficheur on accde l'cran des alarmes.

Cet cran rpertorie les dfauts dtects sur le MPC.

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 des tches

Etat

Icne :
Signification : Indique l'tat du squenceur qui gre les tches dans le MPC.

68

: Le squenceur est arrt, toutes les tches sont arrtes

Logiciel Motion Studio

: Le squenceur est suspendu. Toutes les tches sont suspendues.


: Le squenceur fonctionne. Les tches dmarres automatiquement fonctionnent.

L'tat n'est visualisable qu'en mode

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

Logiciel Motion Studio

Accessibilit

Langues

Mode

71

Printed Documentation

Editeurs

Texte

Ladder

72

Logiciel Motion Studio

Compilateur

Options

Outils

Oscilloscope

73

Printed Documentation

Assistant de paramtrage TCP/IP


Slection de l'interface rseau
La premire tape consiste slectionner l'interface rseau sur laquelle le MPC est reli. Le MPC
ne peut tre reli que par une interface de type Ethernet.

74

Logiciel Motion Studio

La premire tentative de connexion donne lieu un avertissement du pare-feu de Windows.

Il est ncessaire de dbloquer le programme de faon permanente de faon pouvoir


communiquer avec le MPC.
On passe alors l'auto-dtection du MPC
Auto dtection
La phase d'auto-dtection permet de rechercher tout les MPC disponible sur le rseau local ou est
connect le PC.
Si l'auto-dtection s'est bien droule, la liste des MPC dtects apparat.

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

Logiciel Motion Studio

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

Logiciel Motion Studio

Dans le cas o la liaison srie a t utilise, il est galement possible de :


- Effacer les tches dans le MPC.
- Effacer la mmoire sauvegarde.

79

Printed Documentation

Choisir suivant pour continuer. Si la configuration est identique, on passe directement la


validation de la configuration.
Si la liaison srie est utilise, il faut dsactiver le DIP2 et redmarrer le MPC avant de pouvoir
valider la configuration.

Si les configurations sont diffrentes on doit faire un choix de la configuration.

Choix de la configuration
Il est alors possible de dcider quelle sera la configuration conserve.

80

Logiciel Motion Studio

La configuration est alors modifie dans le PC ou le MPC.


On pourra alors la vrifier en procdant la validation de la configuration.
Dans le cas ou la liaison srie est utilise, il est ncessaire de dsactiver le DIP 2 et redmarrer le
MPC pralablement.

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

Logiciel Motion Studio

Ethernet TCP

83

Printed Documentation

Nom: Nom interne du MPC

Adresse IP: Adresse IP sur le rseau Ethernet TCP/IP

Masque: Masque sur le rseau Ethernet TCP/IP

Passerelle: Passerelle par dfaut sur le rseau Ethernet TCP/IP

Les paramtres de la liaison Ethernet TCP/IP dpendent de l'installation du MPC sur le


rseau ou sur le PC directement. Dans tous les cas, faire appel l'administrateur du rseau
pour dterminer les paramtres adapts et utiliser l'assistant de paramtrage TCP/IP dans
Menu Options | Assistant de paramtrage TCP/IP.

EtherCAT

Node : Noeud interne Ethercat du MPC, ne pas modifier.

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

Node : Numro de noeud utilis par le MPC, sur le rseau CANopen

Vitesse (Kbps) : Vitesse de la liaison CANopen

Logiciel Motion Studio

Timeout (ms) : Limite d'attente des rponses aux requtes SDO

Relance : Nombre de relance des requtes SDO avant chec.

Inversion des doubles mots : Mode de transfert des doubles mots.

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

Prcision : Nombre de chiffres aprs la virgule dans le cas o la conversion des


flottants en virgule fixe est active.

COM1 / Configuration:

COM1

Vitesse (bauds) : Vitesse du port COM 1

Bits : Nombre de bits de donnes sur la trame RS232.

Parit : Mode de fonctionnement du bit de parit de la trame

Stops : Nombre de bits de stop sur la trame RS232.

Protocole : Choix du protocole de communication (Libre, Modbus matre ou


Modbus esclave)

Mode : Mode de fonctionnement de la liaison (RS232 uniquement)

COM1 / Modbus RTU:


o

Node : Numro de noeud utilis sur la liaison en Modbus RTU

Timeout (ms) : Limite d'attente des rponses aux requtes Modbus

Relance : Nombre de relance des requtes Modbus avant chec

Inversion des doubles mots : Mode de transfert des doubles mots.

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

85

Printed Documentation

Prcision : Nombre de chiffres aprs la virgule dans le cas o la


conversion des flottants en virgule fixe est active.

COM2

COM2 / Configuration:
Vitesse (bauds) : Vitesse du port COM 2

Bits : Nombre de bits de donnes sur la trame RS232 ou RS 485

Parit : Mode de fonctionnement du bit de parit de la trame

Stops : Nombre de bits de stop sur la trame RS232 ou RS 485

Protocole : Choix du protocole de communication (Libre, Modbus matre ou


Modbus esclave)

Mode : Mode de fonctionnement de la liaison (RS232 ou RS485)

COM2 / Modbus RTU :

Accessoires

86

Node : Numro de noeud utilis sur la liaison en Modbus RTU

Timeout (ms) : Limite d'attente des rponses aux requtes Modbus

Relance : Nombre de relance des requtes Modbus avant chec

Inversion des doubles mots : Mode de transfert des doubles mots.

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

Prcision : Nombre de chiffres aprs la virgule dans le cas o la


conversion des flottants en virgule fixe est active.

Logiciel Motion Studio

Horloge : Contrle et rglage de l'horloge interne du MPC.

Chien de garde : Visualise et change l'tat du relais de chien de garde du MPC.

Backup : Permet de dfinir le fonctionnement du systme de gestion des donnes


sauvegardes (Paramtres et variables sauvegardes). Par cet outil, on contrle l'tat
de la mmoire sauvegarde et de sa sauvegarde en flash. Il est galement possible de
dfinir une sauvegarde automatique en flash (au dmarrage et / ou sur batterie faible).
Enfin des outils sont disponibles pour sauvegarder manuellement ou pour effacer les
donnes sauvegardes.

Axe virtuel

Ajout d'un axe virtuel


Ajout d'un axe virtuel
1. Dans le navigateur de projet, slectionner l'onglet Configuration.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Dans la fentre Ajout, slectionner Virtuel dans l'arborescence de gauche.

87

Printed Documentation

4. Nommer l'axe virtuel et terminer en cliquant sur Ajouter

Paramtrage d'un axe virtuel


Liste des paramtres d'un axe virtuel
Accessible partir d'un double-clique sur le nom de l'axe virtuel cette fentre permet d'obtenir la
liste complte ces paramtre.

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

Logiciel Motion Studio

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.

Suppression d'un axe virtuel


Suppression d'un axe virtuel
1. Dans le navigateur de projet, slectionner l'onglet Configuration.
2. Afficher l'arborescence des priphriques internes en cliquant sur le + devant Interne .
3. Dans le navigateur de projet, faire un clic gauche sur l'axe virtuel supprimer.
4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Periphriques Ethercat
Ajout d'un axe IMD

Ajout d'un axe IMD


1. Dans le navigateur de projet, slectionner l'onglet Configuration.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Dans la fentre Ajout, slectionner IMD dans l'arborescence de gauche.

4. Nommer l'axe virtuel


5. Configurer l'axe IMD :
a. Soit en important un fichier de paramtre parmi la bibliothque
b. Soit en copiant un axe IMD existant en cochant la case Crer partir
de
6. Terminer en cliquant sur Ajouter

89

Printed Documentation

Paramtrage dun axe IMD

Paramtrage 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 du variateur.

90

Logiciel Motion Studio

Variateur

91

Printed Documentation

Mode : Mode de fonctionnement de la rgulation (Couple, vitesse ou position)

Modle : Modle de variateur IMD connect

Node : Numro de noeud du variateur sur le rseau EtherCAT

Courant nominal (A) : Courant nominal du variateur

Courant Max (A) : Courant maximal du variateur

Tension nominale (V) : Tension nominal du variateur (230v ou 400v)

Simulation : Passage de l'axe en mode "Simulation". Permet de faire fonctionner le MPC


sans l'IMD connect.

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:

Logiciel Motion Studio

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

Consigne : Slection de la source (valeur, entre analogique ou RS232) exprime en


pourcentage du courant maximal du moteur.

Limite acclration : Limitation de la pente de la variation de courant

Limite courant : Limitation du courant en pourcentage du courant maximal du moteur.

Gain intgral : Rgulation

Gain proportionnel : Rgulation

Les limites d'acclration et de courant sont accessibles en mode paramtres avancs.


Boucle de vitesse
Action : Configurer la boucle vitesse du variateur

93

Printed Documentation

Consigne : Slection de la source : valeur, entre analogique, RS232

Limite acclration : Limitation de la pente de vitesse

Limite vitesse : Limitation de la vitesse en pourcentage de la vitesse nominale

Gain intgral : Rgulation

Gain proportionnel : Rgulation

Tableau de correspondance entre le pourcentage de la limite d'acclration et le temps pour passer


de 0 la vitesse nominale du moteur :
Les limites d'acclration et de vitesse sont accessibles en mode paramtres avancs.
Boucle de position
Action : Configurer la boucle de position du variateur.

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

Action : Configurer les entres et sorties analogiques.

94

Logiciel Motion Studio

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.

Offset : Ajoute un offset la valeur relle reue.

Sortie analogique :

Echelle : Permet de choisir la plage du signal de sortie.

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

Logiciel Motion Studio

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).

Rsistance de freinage externe : activer que si une rsistance externe a t connecte au


variateur.

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).

Ton et Priode : permettent de dfinir la dure d'activation de la rsistance de freinage :


Tant que la dure Ton n'est pas dpasse la surtension DCBus peut tre dissip par la
rsistance de freinage aprs le variateur passe en dfaut E01 sur-tension.
: Ces paramtres sont utiliss que si la rsistance de freinage externe est active sinon
des valeurs par dfaut leurs sont attribues.

Temprature
Rglages usines, ne pas les modifier.

Temprature moteur : permet de dfinir le seuil et la dure de dpassement de temprature


moteur pour provoquer le dfaut E07.

Temprature IGBT : permet de dfinir la temprature seuil et la dure de dpassement du


module IGBT pour provoquer le dfaut E06.

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 nominal : Courant nominal du moteur en A.

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.

NB paire de pole : Suivant le type de moteur (faire un autotunning rsolveur).

Vitesse nominal : Vitesse nominal du moteur en tr/mn

Logiciel Motion Studio

Vitesse maximal : Pourcentage de la vitesse nominal utilis dans le boucle de vitesse pour
limiter le vitesse du moteur.

Capteur de temprature

Type : Rglage usine (PTC ou NTC).

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

Offset : calage rsolveur.

NB paire de ple : indique le nombre de paire de ples du rsolveur.

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

Rsolution : Entrer la rsolution en nombre d'incrments (4 incrments par point). Ex : pour


un codeur 500 points rentrer 2000 incrments.

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.

Entre sortie codeur multifonction


Action : Configurer l'entre et la sortie codeur multifonction.

100

Logiciel Motion Studio

Entre codeur multifonction


Action : Permet de paramtrer l'entre codeur

Mode incrmental :

Rsolution : Codeur matre : rentrer la rsolution en nombre d'incrments (4 incrments par


point). Ex : pour un codeur 500 points rentrer 2000 incrments.

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.

Rsolution : Codeur matre : rentrer la rsolution du codeur STEPPER en nombre


d'incrments.

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.

Bit : Nombre de bit composant l'information de la position (de 2 31).

Frquence : Frquence d'horloge (1,5 Mhz maxi)

Rsolution : Codeur matre : entrer la rsolution du codeur, en nombre d'incrments.

Code GRAY: Oui/Non (dpend du type de codeur)

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.

Sortie codeur multifonction


Action : Permet de paramtrer la sortie codeur

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.

Source : Rsolveur, SinCos, Entre multifonction (incrmental, stepper, SSI), Virtuel,


Analogique

Rsolution : la rsolution de la sortie codeur en nombre d'incrments.

Codeur auxiliaire
Action : Configurer le codeur auxiliaire

Suppression d'un axe IMD

Suppression d'un axe IMD


1. Dans le navigateur de projet, slectionner l'onglet Configuration.
2. Afficher l'arborescence des priphriques Ethercat en cliquant sur le + devant
Priphriques EtherCAT .
3. Dans le navigateur de projet, faire un clic gauche sur l'axe IMD supprimer.
4. Dans le navigateur de projet, cliquer sur le bouton Suppression

102

Logiciel Motion Studio

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Periphriques CANopen
Ajout d'un module E/S
1. Dans le navigateur de projet, slectionner l'onglet Configuration.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Dans la fentre Ajout, slectionner E/S CANopen dans l'arborescence de gauche.

4. Nommer le module E/S CANopen et terminer en cliquant sur Ajouter


Paramtrage d'un module E/S
Action : Configurer le module RIO40

Node : Numro de noeud du module Entres / Sorties sur le rseau CANopen.


Suppression d'un module E/S
1. Dans le navigateur de projet, slectionner l'onglet Configuration.
2. Afficher l'arborescence des priphriques CANopen en cliquant sur le + devant
Priphriques CANopen .
3. Dans le navigateur de projet, faire un clic gauche sur le module E/S CANopen
supprimer.

103

Printed Documentation

4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.

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

Logiciel Motion Studio

Rducteur

RIn : Rapport d'entre du rducteur

Rout : Rapport de sortie sortie du rducteur


Pour RIn tour l'entre du rducteur on obtient Rout tour en sortie de rducteur. Le rapport
de rduction du rducteur est donc Rout / Rin

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

Actif : Active le modulo sur l'axe

Valeur : Valeur du modulo de l'axe

Exemple 1 : Axe infini


Moteur en bout de vis bille au pas de 5mm.
Units = mm, Rin = 1, Rout = 1, Distance par tour = 5.000, Modulo non activ
Exemple 2 : Axe infini

105

Printed Documentation

Moteur avec rducteur de 10.


En sortie de rducteur, tourelle 360, Units = degrs, Rin = 10, Rout = 1, Distance par tour =
360.000, modulo activ avec une valeur de 360.000
Profil
Action : Dfinir le profile par dfaut de l'axe. Ce profile est utilis, comme valeur par dfaut dans les
instructions de mouvement (si aucune instruction comme VEL, ACC ou DEC ne vient dfinir une
valeur du profile). L'outil Motion et les instructions qui utilisent des pourcentages utilisent ces valeurs
comme.

Vitesse : Vitesse par dfaut de l'axe

Acclration : Acclration par dfaut de l'axe

Dclration : Dclration par dfaut de l'axe

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.

Utiliser la dclration lors de la dsactivation : Permet de provoquer une dclration


suivant la pente de dclration urgente lors de la dsactivation avant de dsactiver l'axe
afin de tenter de freiner l'axe avant de le dsactiver au lieu de le laisser continuer en
roue
libre .

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

Logiciel Motion Studio

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.

Vitesse : Vitesse applique l'axe pendant les dplacements en prise d'origine.

Zro programme : Position physique de rfrence ou se situe le zro logique.

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.

Fentre de position : Ce paramtre est utilis pour modifier la fentre de positionnement


minimale entre la position relle et la position thorique. Aprs un dplacement, si la
diffrence entre la position relle et la position demande sont infrieurs la fentre de
position,
le
systme
considre
que
la
position
est
atteinte.
: 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

Logiciel Motion Studio

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

Inversion du sens de rotation : Inverse le sens d'volution de la position de l'entre codeur


auxiliaire, par rapport au dplacement physique.

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

Zro programme : Position physique de rfrence ou se situe le zro logique.

Modulo

Actif : Active le modulo sur l'entre codeur auxiliaire

Valeur : Valeur du modulo de l'axe

Paramtrage d'un axe Virtuel


Liste des paramtres Motion d'un axe Virtuel

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

Logiciel Motion Studio

RIn : Rapport d'entre du rducteur

Rout : Rapport de sortie sortie du rducteur


Pour RIn tour l'entre du rducteur on obtient Rout tour en sortie de rducteur. Le rapport
de rduction du rducteur est donc Rout / Rin

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

Actif : Active le modulo sur l'axe

Valeur : Valeur du modulo de l'axe

Exemple 1 : Axe infini


Moteur en bout de vis bille au pas de 5mm.
Units = mm, Rin = 1, Rout = 1, Distance par tour = 5.000, Modulo non activ
Exemple 2 : Axe infini
Moteur avec rducteur de 10.
En sortie de rducteur, tourelle 360, Units = degrs, Rin = 10, Rout = 1, Distance par tour =
360.000, modulo activ avec une valeur de 360.000
Profil
Action : Dfinir le profile par dfaut de l'axe. Ce profile est utilis, comme valeur par dfaut dans les
instructions de mouvement (si aucune instruction comme VEL, ACC ou DEC ne vient dfinir une
valeur du profile). L'outil Motion et les instructions qui utilisent des pourcentages utilisent ces valeurs
comme.

111

Printed Documentation

Vitesse : Vitesse par dfaut de l'axe

Acclration : Acclration par dfaut de l'axe

Dclration : Dclration par dfaut de l'axe

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.

Utiliser la dclration lors de la dsactivation : Permet de provoquer une dclration


suivant la pente de dclration urgente lors de la dsactivation avant de dsactiver l'axe
afin de tenter de freiner l'axe avant de le dsactiver au lieu de le laisser continuer en
roue
libre .

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

Logiciel Motion Studio

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.

Vitesse : Vitesse applique l'axe pendant les dplacements en prise d'origine.

Zro programme : Position physique de rfrence ou se situe le zro logique.


Les types de prise d'origine sont dtaills dans la rubrique Programmation du contrle de
mouvement | Paramtrage de l'axe | Prise d'origine

Profils de came
Ajout d'un profil de came

Ajout d'un profil de came


1. Dans le navigateur de projet, slectionner l'onglet Motion.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Dans la fentre Ajout, slectionner Profil de came dans l'arborescence de gauche.

113

Printed Documentation

4. Nommer le profil de came et terminer en cliquant sur Ajouter


Editeur de profil de came

Prsentation de l'diteur de profil de came


Accessible partir d'un double-clique sur le nom d'une came, cette diteur permet de crer /
modifier les cames lectroniques excuter sur les axes.

114

Logiciel Motion Studio

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

Editeur de came graphique


Cet diteur graphique donne une reprsentation sous forme de courbe du dplacement de l'axe
aux diffrentes positions de la came. Les points de la came sont reprsents par des croix sur le
graphique.

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

Logiciel Motion Studio

2. Un outil de zoom vertical est la disposition de l'utilisateur pour affiner le


positionnement des points sur la came. Cet outil est muni de deux flches permettant
l'agrandissement comme la rduction de l'chelle. Une barre permet le dcalage
vertical de la courbe par rapport l'cran de l'diteur.
3. En permanence, la position sur la courbe est disponible afin de placer prcisment les
points.
4. La zone d'dition graphique permet le placement des points, les dplacements, zoom
de la courbe. En mode Curseur cliquer sur le graphique permet de placer l'origine
de la mesure indique en (3). Ceci permet de mesurer les distances. En mode
Dplacement un carr rouge apparat pour indiquer le point choisir. Cliquer sur le
point pour le dplacer.
5. Un outil de zoom horizontal est la disposition de l'utilisateur pour affiner le
positionnement des points sur la came. Cet outil est muni de deux flches permettant
l'agrandissement comme la rduction de l'chelle. Une barre permet le dcalage
horizontal de la courbe par rapport l'cran de l'diteur.

Onglet Vitesse et acclration


L'onglet Vitesse et acclration donne accs la visualisation de la vitesse et de l'acclration
rsultante de la courbe de position saisie.

Onglet Table ou diteur de came en liste


L'onglet Table donne accs la table des points de la came.

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 Manuel : dX et dY sont libre. Dans ce mode dX et dY dtermine la pente


au point comme tant dY/dX.

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

Description : Information sur le rle de la came.

Nombre : Nombre de point de la came. Minimum 2.

Dbut matre : Origine des positions sur le matre.

Fin matre : Position maximale sur le matre.

Unit : Unit sur l'axe matre, utilis pour la reprsentation graphique.

Dbut esclave : Origine des positions sur l'esclave.

Logiciel Motion Studio

Fin esclave : Position maximale sur l'esclave.

Unit : Unit sur l'axe esclave, utilis pour la reprsentation graphique.

Suppression d'un profil

Suppression d'un profil de came


1. Dans le navigateur de projet, slectionner l'onglet Motion.
2. Afficher l'arborescence des profils de came en cliquant sur le + devant Profils de
came .
3. Dans le navigateur de projet, faire un clic gauche sur le profil de came supprimer.
4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.

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

Priphrique : Nom du priphrique paramtrer (MPC, axe ou module E/S CANopen

Nom : Nom de l'entre, du bloc d'entres, de la sortie ou du bloc de sorties.

Inversion : NON pour travailler en logique positive (tat hardware = tat software), OUI
pour travailler en logique ngative.

Filtr : Indique si l'entre est filtre.

Filtre : 1 si l'entre utilise le filtre n1 ou 2 si l'entre utilise le filtre n2.


Nota : Sur les axes IMD, le filtre n n'est pas gr.

Repli : Valeur de repli de la sortie en cas de rupture de la communication.

Adresse : Adresse dans l'image de process, calcule par le Motion Studio et servant
dclarer les entres sorties dans le fichier IO.POE.

Paramtrage des E/S MPC


Accessible partir d'un double-clique sur MPC, cette fentre permet d'obtenir la liste complte des
paramtres des entres / sorties du MPC. Elle reprend les valeurs d'inversion, filtrage de l'diteur
d'entres / sorties et permet en plus de rgler les valeurs des filtres.

Inversion des entres 1 32 : Inversion des entres en binaire

Filtrage des entres 1 32 : Filtrage des entres en binaire

Slection du filtre des entres 1 32 : Slection du filtre en binaire

Filtre 1 (ms) : Valeur du filtre 1 en ms

Filtre 2 (ms) : Valeur du filtre 2 en ms

Inversion des sorties 1 32 : Inversion des sorties en binaire

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

Logiciel Motion Studio

Inversion des entres 1 32 : Inversion des entres en binaire.

Filtrage des entres 1 32 : Filtrage des entres en binaire.

Slection du filtre des entres 1 32 : Slection du filtre en binaire.

Filtre 1 (ms) : Valeur du filtre 1 en ms.

Fonction entre 1 : Permet d'activer la fonction autorisation variateur (enable).

Inversion des sorties 1 32 : Inversion des sorties en binaire.

Valeur de repli des sorties 1 32 : Valeur affecte aux sorties en cas de rupture de
communication en binaire.

Fonction sortie 1 : Permet d'activer la fonction variateur prt.

Fonction sortie 2 : Permet d'activer la fonction pilotage de frein parking.

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.

Logiciel Motion Studio

Slection du filtre des entres XX XX : Slection du filtre en binaire, par bloc de 32


entres, en fonction du nombre d'entres dclares.

Filtre 1 (ms) : Valeur du filtre 1 en ms

Filtre 2 (ms) : Valeur du filtre 2 en ms

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.

Action du chien de garde :


o

Aucune : Aucune action en cas de dclenchement du chien de garde


d'une tche

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

Avertissement : Un avertissement apparat sur l'afficheur

Evnement systme : Un vnement systme est gnr afin que le


programme gre ce cas.

Puissance rserve pour linux : Pourcentage d'utilisation du processeur rserv pour le


systme d'exploitation

Priode des statistiques : Priode de calcul des statistiques visualisable dans l'outil
performance.

Nombre de banque de variable : Nombre de banque de variable sauvegardes

Taille d'une banque de variable : Taille en octet d'une banque de variables sauvegardes.
Maximum 65283 octets

Activer la sauvegarde de la trace d'excution : permet d'activer l'outil aller la position


d'excution sauvegarde et de connatre la dernire instruction excuter par le MPC
avant redmarrage (Attention l'activation de cette outil dgrade les performances du
MPC).

Configuration des communications


Accessible partir d'un double-clique sur le mot Tches, cette fentre indiquer les paramtres de
bus de terrain.

124

Priorit des communications CAN : Dfini la priorit de la tche de traitement des


messages CANopen dans le systme d'exploitation.

Priorit des communications Modbus : Dfini la priorit de la tche de traitement des


messages Modbus dans le systme d'exploitation.

Priorit des communications Modbus TCP : Dfini la priorit de la tche de traitement des
messages Modbus TCP dans le systme d'exploitation.

Logiciel Motion Studio

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

Nom : Nom de la tche

Type : Type de tche (Cyclique, Timer, Evnement utilisateur ou systme)

Priorit : Priorit de la tche.

Dmarrage :

Automatique : Dmarrage automatique la fin de la tche d'initialisation

Manuel : Dmarrage manuel par l'instruction RUN dans un programme

Initialisation : Dmarrage exclusif avant le dmarrage des autres


programmes

Gestion des entres / sorties :


o

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.

Modification d'une tche

Modification des paramtres d'une tche :


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, double cliquer sur le nom tches .

126

Logiciel Motion Studio

3. Dans la fentre Modification, slectionner la tche modifier a partir de l'arborescence de


gauche.

4. Modifier les paramtres de votre tche et fermer la fentre.

Renommer une tche :


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant tches .
3. Faire un clic droit sur la tche et slectionner Renommer dans le menu contextuel.

Dplacer une tche :


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant tches .
3. 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.
Suppression d'une tche
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant tches .
Vrifier que la tche ne contient plus de programmes.
3. Dans le navigateur de projet, cliquer gauche sur la tche supprimer.
4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Les programmes
Cration d'un programme
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Afficher l'arborescence des types de programme, en cliquant sur le + devant


Programmes .

127

Printed Documentation

4. Slectionner un type de programme partir de la liste.

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

Nom : Nom du programme

Type : Langage utilis pour crire le programme

Logiciel Motion Studio

Actif : Dfinit s'il doit tre ajout la liste des programmes de la tche l'excution.

Tche : Nom de la tche auquel il appartient.

Index : Index dans la liste des programmes de la tche. Permet de dfinir l'ordre
d'excution des programmes dans la tche.

Modification d'un programme

Edition d'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. Double-cliquer sur le programme modifier partir de la liste.

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.

Proprit d'un programme:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, double cliquer sur le nom tches .

129

Printed Documentation

3. Dans la fentre Modification, ouvrir l'arborescence de la tche contenant le programme


modifier partir de l'arborescence de gauche.

4. Ouvrir l'arborescence de la tche contenant le programme


5. Faire un clic droit sur le programme et modifier les proprits du programme
6. Fermer la fentre pour revenir l'diteur.
Suppression d'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 la liste des programmes en cliquant sur le + devant la tche
contenant le programme supprimer.
4. Dans l'arborescence, slectionner le programme supprimer avec un clique gauche.
5. Dans le navigateur de projet, cliquer sur le bouton Suppression

6. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Les blocs fonctionnels
Cration d'un bloc fonctionnel
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Afficher l'arborescence des types de bloc fonctionnel, en cliquant sur le + devant Blocs
fonctionnels .

130

Logiciel Motion Studio

4. Slectionner un type de blocs fonctionnels partir de la liste.

5. Nommer et paramtrer votre nouveau bloc fonctionnel puis terminer en cliquant sur
Ajouter.
Modification d'un bloc fonctionnel

Edition d'un bloc fonctionnel:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des blocs fonctionnels en cliquant sur le + devant blocs
fonctionnels .
3. Double-cliquer sur le bloc fonctionnel modifier partir de la liste.

Renommer un bloc fonctionnel:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des blocs fonctionnels en cliquant sur le + devant blocs
fonctionnels .
3. Puis cliquer droit sur le bloc fonctionnel et slectionner Renommer dans le menu
contextuel.

Dplacer un bloc fonctionnel:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des blocs fonctionnels en cliquant sur le + devant blocs
fonctionnels .
3. Puis cliquer droit sur le bloc fonctionnel et slectionner Dplacer vers le haut ou Dplacer
vers le Bas du menu contextuel pour dplacer la tche.
Suppression d'un bloc fonctionnel

131

Printed Documentation

1. Dans le navigateur de projet, slectionner l'onglet Programmation.


2. Afficher l'arborescence des blocs fonctionnels en cliquant sur le + devant blocs
fonctionnes .
3. Dans l'arborescence, slectionner le bloc fonctionnel supprimer avec un clique gauche.
4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Les fonctions
Cration d'une fonction
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Afficher l'arborescence des types de fonction en cliquant sur le + devant Fonctions .


4. Slectionner un type de fonctions partir de la liste.

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

Edition d'une fonction:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des fonctions en cliquant sur le + devant fonctions .
3. Double-cliquer sur la fonction modifier partir de la liste.

132

Logiciel Motion Studio

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.

Modifier le retour d'une fonction:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des fonctions en cliquant sur le + devant fonctions .
3. Double-cliquer sur la fonction modifier partir de la liste.
4. Dans le coin suprieur gauche de la fentre d'dition de la fonction est affich le type de
retour de la fonction, cliquer sur le bouton Change.
5. Saisir le nouveau type de retour et valider en appuyant sur le bouton OK.
Suppression d'une fonction
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des fonctions en cliquant sur le + devant Fonctions .
3. Dans l'arborescence, slectionner la fonction supprimer avec un clique gauche.
4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Les types de donnes
Ajout d'un fichier de type de donnes
1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

133

Printed Documentation

3. Cliquer sur Dfinition de types :

4. Nommer le nouveau fichier de type puis terminer en cliquant sur Ajouter.


Modification d'un fichier de type de donnes

Edition d'un type de donnes:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des types de fonction en cliquant sur le + devant TypeDefs .
3. Double cliquer sur Usertype.TYP ou au autre fichier de type que vous avez crer,
pour ouvrir l'diteur de type de donnes.

Renommer un fichier de type de donnes:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant Typedefs .
3. Faire un clic droit sur un des fichiers de type de donnes et slectionner Renommer dans
le menu contextuel.

134

Logiciel Motion Studio

Dplacer un fichier de type de donnes:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant Typedefs .
3. Faire un clic droit sur un des fichiers de type de donnes et slectionner Dplacer vers le
haut ou Dplacer vers le Bas du menu contextuel.

Suppression d'un fichier de type de donnes


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant Typedefs .
3. Dans l'arborescence, slectionner le fichier de type de donns supprimer avec un clique
gauche.
4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Les variables
Les variables globales

Ajout d'un variable globale


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Dans le navigateur de projet, cliquer sur le bouton Ajout

3. Cliquer sur Variables globales :

4. Nommer le nouveau fichier de variables globales puis terminer en cliquant sur Ajouter.

135

Printed Documentation

Modification d'un fichier de variable globale

Edition d'un type de donnes:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des types de fonction en cliquant sur le + devant Variables
globales .
3. Double cliquer sur Global.POE ou au autre fichier de variable globale que vous avez
crer, pour ouvrir l'diteur de type de donnes.

Renommer un fichier de type de donnes:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant Variables globales .
3. Faire un clic droit sur un des fichiers de type de donnes et slectionner Renommer dans
le menu contextuel.

Dplacer un fichier de type de donnes:


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant Variables globales .
3. Faire un clic droit sur un des fichiers de type de donnes et slectionner Dplacer vers le
haut ou Dplacer vers le Bas du menu contextuel.

Suppression d'une variable globale


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Afficher l'arborescence des tches en cliquant sur le + devant Variables globales .
3. Dans l'arborescence, slectionner le fichier de type de donns supprimer avec un clique
gauche.

136

Logiciel Motion Studio

4. Dans le navigateur de projet, cliquer sur le bouton Suppression

5. Confirmer la suppression en cliquant sur OK dans la fentre d'avertissement.


Les variables sauvegardes

Ouverture de l'diteur de variables sauvegardes


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Cliquer sur le + devant Variables globales .
3. Double cliquer sur Editeur de variables sauvegardes .

Utilisation de l'diteur de variables sauvegardes

Choisir une banque


Dans le coin suprieur gauche, choisir la banque de mmoire

Ajouter une variable sauvegarde

137

Printed Documentation

Cliquer le sur bouton ajout


L'diteur cr automatique une variable VARxx la fin de la table

Modifier une variable sauvegarde


Cliquer sur une des cellules de la variable

Supprimer une variable sauvegarde


Cliquer sur une des cellules de la variable
Cliquer sur le bouton Supprimer

Vrifier les variables sauvegardes


A la fin de la dclaration des variables, appuyer sur le bouton

Fermeture de l'diteur de variables sauvegardes


Avant de fermer l'diteur de variables sauvegardes, lancer une vrification de votre table en
cliquant sur l'icne
Vrifier le console si des messages d'erreurs apparaissent:

Si des messages d'erreur apparaissent, vous devez corriger toutes les erreurs pour pouvoir
sauvegarder et ferme l'diteur
Les variables d'changes

Ouverture de l'diteur de variables d'change


1. Dans le navigateur de projet, slectionner l'onglet Programmation.
2. Cliquer sur le + devant Variables globales .

138

Logiciel Motion Studio

3. Double cliquer sur Editeur de variables sauvegardes .

Utilisation de l'diteur de variables d'change

Ajouter une variable d'change


Cliquer le sur bouton ajout
L'diteur cr automatique une variable VARxx la fin de la table

Modifier une variable d'change


Cliquer sur une des cellules de la variable

139

Printed Documentation

Supprimer une variable d'change


Cliquer sur une des cellules de la variable
Cliquer sur le bouton Supprimer

Vrifier les variables d'change


A la fin de la dclaration des variables, appuyer sur le bouton

Fermeture de l'diteur de variables d'change


Avant de fermer l'diteur de variables sauvegardes, lancer une vrification de votre table en
cliquant sur l'icne
Vrifier le console si des messages d'erreurs apparaissent:

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

Logiciel Motion Studio

CPU : Donne la temprature du CPU

Batterie : Indique l'tat de batterie de sauvegarde. Si la pile de sauvegarde est indique


comme basse, la premire fois, elle n'est pas suffisamment dcharge pour perdre les
donnes, mais elle doit tre change rapidement.

PFD : Donne des informations sur la dtection des dfauts d'alimentation


o

Status : Etat courant fournit physiquement par le dtecteur de dfaut


secteur.

Dtections : Nombre de dtection de dfaut secteur depuis la mise


sous tension. Si ce chiffre s'incrmente rgulirement, l'alimentation 24
v est insuffisante ou endommage.

Dfaut : Indique qu'un dfaut a t dtect.

Cumul : Cumul du nombre de dfaut dtect. Se chiffre augmente


normalement chaque mise hors tension.

Raz : Remise zro du voyant de dfaut.

Dips : Etat des dip switch de configuration du MPC.

VCore, V3.3, V5 : Etat des tensions d'alimentation du MPC.

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

Logiciel Motion Studio

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

Logiciel Motion Studio

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.

Pour cela, on affiche la position courante en X (temps), Y (amplitude) et le delta mesur.


La ligne de mesure en matrialise par une ligne continue tandis que la ligne de rfrence
est discontinue.

146

Logiciel Motion Studio

Permet dplace la ligne de mesure des temps.


Permet de permuter ligne de mesure et ligne de rfrence des temps.
Permet dplace la ligne de mesure des amplitudes.
Permet de permuter ligne de mesure et ligne de rfrence des amplitudes.

Enregistrement
Icne :
Signification : Enregistre au format HTML les courbes captures et les paramtres associs.

- A gauche, la liste des donnes observer


Chaque canal est paramtrable en cliquant sur la barre de sparation. On a alors la
possibilit de rgler :
- Offset : Dcale la courbe verticalement
- Couleur : Slectionne la couleur de reprsentation de la courbe
- Activation : La case cocher permet d'afficher ou cacher une courbe sans perdre ses
donnes.
- Coefficient : Permet d'amplifier ou de rduire l'chelle de visualisation d'une courbe pour
permettre une comparaison

Pour slectionner la source on ouvre la liste de slection :

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

Logiciel Motion Studio

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.

Pour cela on doit slectionner :


- Une source, slectionne dans la mme liste que les canaux d'acquisition.
- La variation dtecter sur cette source : Front montant ou descendant
- La position temporelle de cet vnement par rapport l'acquisition.
La Position 0 correspond au dbut, si la valeur est diffrente de 0, on peut
observer, pendant le temps dfinit par Position, ce qui s'est pass avant ou
aprs l'vnement.
- Le niveau au del (front montant) ou en de (front descendant) duquel on
dclenchement
Une fois le dclenchement slectionn, on doit enfin dfinir les conditions d'acquisition et de
visualisation.

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 :

Etat : Indique l'tat de l'excution de la tche

Processeur : Cette rubrique regroupe les temps vu par le processeur, sans tenir compte
du fait que les tches sont rgulirement interrompu.

Proc (%) : Pourcentage d'utilisation de la tche sur le processeur

Dure (s) : Dure courant de la tche sur le processeur

Max (s) : Dure maxi pour excuter entirement la tche sur le processeur

Cumul (ms) : Cumule du temps d'excution observ

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

Dure (s) : Dure courante d'excution totale d'un cycle de la tche

Max (s) : Dure maxi observe pour l'excution totale d'un cycle de la tche

Chien de garde : Nombre de fois que le chien de garde de la tche t


dclench par un temps d'excution trop long

Nb Cycles : Nombre de cycle effectus

Manqus : Nombre de cycle manqus, par faute de temps allou suffisant

Logiciel Motion Studio

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

Logiciel Motion Studio

Cet cran rpertorie les dfauts dtects sur le MPC.

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

Logiciel Motion Studio

It : Donne une indication sur l'chauffement du moteur. Si cette valeur augmente


progressivement, le moteur est sous dimensionne. Si cette valeur augmente
rapidement l'arrt, la rgulation et la mcanique doivent tre vrifie avec attention.
En fonctionnement normale, l'It peut monter, mais seulement brivement.

Ballast: Donne une indication sur l'utilisation de la rsistance de freinage. De mme


que pour l'It, en fonctionnement normale, cette valeur peut monter brivement, en
particulier pendant les phases de freinage. Si l'augmentation est progressive la
rsistance est sous dimensionne. Si la rsistance interne est utilise, il faudra rduire
les acclrations ou ajouter une rsistance externe pour vacuer le surplus d'nergie.

IGBT : Donne la temprature du module de puissance.

Position : Position de l'arbre du moteur.

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.

Vitesse : Indique la vitesse du moteur en Tr/min

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

Logiciel Motion Studio

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 :

Le contrle globale en haut


Cette partie regroupe le pilotage de l'asservissement de l'axe et le choix du mode de
fonctionnement de la rgulation (Courant, Vitesse, Position).

L'tat de l'axe au centre


Au centre se trouve les informations en retour de cet axe et de son auxiliaire, a savoir,
la position, la vitesse et l'tat des prises d'origine.
Des boutons de remise zro sont galement prsent pour initialiser les compteurs
de position.

Le pilotage de l'axe en bas


Le pilotage de l'axe prend deux formes diffrentes, suivant que l'axe est en mode
couple ou vitesse d'une part ou en mode position d'autre part.
En mode couple et vitesse

157

Printed Documentation

Le pilotage de l'axe revient excuter sur l'axe le profile ci-dessus en couple ou


vitesse.
Le contrle de l'excution du profile est ralis par les bouton Start et Stop.
En mode Cycle va et vient, l'amplitude est alternativement positive et ngative.
En mode Position

158

Logiciel Motion Studio

Le pilotage en mode position permet de raliser des dplacements, suivant le mode


choisi droite (+Infini, -Infini, ...).
En mode Absolu P1 et Relatif P1, la valeur du champ P1 intervient. En mode cycle, T
permet d'attendre entre chaque mouvement.
Le cycle, P1 est un dplacement relatif de P1. Le cycle P1/P2 permet, en particulier
sur les axes finis, d'excuter des dplacements entre deux positions absolues.
Le mode Prise d'origine lance la prise d'origine, telle qu'elle a t dfinie dans la
configuration de l'axe.
Auto tuning
Accessible, en mode avanc, partir d'un double-clic sur Auto-tuning, cet outil permet d'effectuer
les rglages de base automatiquement sur axe.

159

Printed Documentation

Auto-tuning de la boucle de courant :


Durant cette phase le moteur va effectuer des mouvements trs petits pour calculer la limite
de vibrations puis des mouvements damplitude plus levs (en fonctions de linertie)
Attention : il est possible de faire cette phase dauto-tuning moteur vide ou accoupl mais il
est recommand de faire cette dernire vide si la mcanique est fragile.

Auto-tuning de la boucle de vitesse :


Durant cette phase le moteur va effectuer plusieurs tours vitesse moyenne.
Attention : Laxe doit tre de type infini car le nombre de tour moteur ncessaire pour lautotuning nest pas connu. Pour un rglage optimum, il est ncessaire de raccorder la
mcanique sinon laxe manquera de raideur.

Auto-tuning de la boucle de position :


Durant cette phase le moteur va effectuer plusieurs tours vitesse faible.
Attention : La mcanique peut tre ou ne pas tre raccorde.

Auto-tuning complet :
Permet denchaner les diffrents auto-tuning : du retour position la boucle de position.

Mise en garde sur lauto-tuning :


Pendant lauto-tuning, toutes les scurits sont actives (It etc ...)

160

Logiciel Motion Studio

Pour diminuer/annuler les bruits en dbut et fin de trajectoires, mettre 0 la


compensation dacclration dans la boucle de vitesse (lerreur de poursuite sera alors plus
leve durant les phases dacclrations et dclrations
Pour augmenter la raideur du systme, augmenter le gain proportionnel de la boucle de
vitesse.
Pour augmenter le temps de rponse du systme, augmenter le gain intgral de la boucle de
vitesse.
En cas dinstabilit du systme diminuer/annuler le gain intgral de la boucle de vitesse.
Outils CANIO
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.

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.

Les diteurs de code


La zone de dclaration de variables des diteurs de code
Tous les diteurs de code sont diviss en deux parties :

Une partie suprieure pour la dclaration de variables

Une partie infrieure pour la saisie du code

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

) travers les diff

Logiciel Motion Studio

Action : Couper la slection.

Copier
Action : Copier la slection.

Coller
Action : Coller la slection.

Supprimer
Action : Supprimer la slection.

Chercher

Action : Rechercher un texte.

Remplacer

Action : Remplacer un texte.

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

Menu Pop-up de la zone d'dition


En cliquant avec le clic droit de la souris on accde au menu pop-up suivant :

164

Logiciel Motion Studio

Insrer une variable


Action : Ouvre une fentre avec la liste de variables dclarer dans le POU et permet de
l'insrer dans le code

Insrer une fonction


Action : Ouvre une fentre avec la liste des fonctions disponibles.

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

Menu Pop-up de la zone d'dition


En cliquant avec le clic droit de la souris on accde au menu pop-up suivant :

Ce menu Pop-up peut tre diffrent celui l'objet slectionn.

166

Logiciel Motion Studio

Insrer une variable

Action : Ouvre une fentre avec la liste de variables dclarer dans le POU et permet de
l'insrer dans le code

Insrer une fonction

Action : Ouvre une fentre avec la liste des fonctions disponibles.

Insrer un bloc fonctionnel

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 srie (AND)


Action : Insre un contact en srie avec les lments slectionns

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

Menu Pop-up de la zone d'dition


En cliquant avec le clic droit de la souris on accde au menu pop-up suivant :

168

Logiciel Motion Studio

Ce menu Pop-up peut tre diffrent celui l'objet slectionn.

Couper
Action : Copie la slection.

Copier
Action : Copie la slection.

Supprimer
Action : Supprime la slection.

Chercher/Remplacer

Action : Permet de rechercher du texte

Insrer un bloc

Action : Permet d'insrer un bloc.

Remplacer un bloc

Action : Remplace le bloc slectionn.

Insrer un bloc composant


Action : Permet de crer un bloc composant ou diagramme de niveau infrieur.

Insrer un bloc de texte


Action : Insre un bloc permettant d'ajouter un commentaire.

Zoom +
Action : Permet l'utilisateur d'effectuer un agrandissement de la zone d'affichage.

169

Printed Documentation

Zoom Action : Permet l'utilisateur d'effectuer une diminution de la zone d'affichage.

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

Logiciel Motion Studio

Barre d'outils

Menu Pop-up de la zone d'dition


En cliquant avec le clic droit de la souris on accde au menu pop-up suivant :

Ce menu Pop-up peut tre diffrent celui l'objet slectionn.

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 : Permet de rechercher ou remplacer du texte

Insrer une variable

Action : Ouvre une fentre avec la liste de variables dclarer dans le POU et permet de
l'insrer dans le code

Insrer une fonction

Action : Ouvre une fentre avec la liste des fonctions disponibles.

Insrer un bloc fonctionnel

Action : Ouvre une fentre avec la liste des blocs fonctionnels disponibles.

Insrer un bloc de texte


Action : Insre un bloc permettant d'ajouter un commentaire.

Remplacer le bloc fonctionnel


Action : Remplace le bloc fonctionnel slectionn.

Zoom +
Action : Permettre l'utilisateur d'effectuer un agrandissement de la zone d'affichage.

Zoom Action : Permettre l'utilisateur d'effectuer une diminution de la zone d'affichage.

Voir/Cacher les limites des pages d'impression


Action : Options d'impression

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

(* On charge la valeur 10 dans le registre*)

ADD

25

(* Le contenu du registre est additionn avec 25*)

ST

(* Le rsultat (contenu du registre) est stock


dans la variable A*)

Le registre et la variable A contiennent maintenant la mme valeur : 35. Si la prochaine instruction


ne commence pas par LD, l'instruction suivante utilisera aussi cette valeur. C'est pour cela qu'il est
important de toujours commencer une liste d'instructions par LD.
Pour ce langage, il n'y a pas de diffrences entre les majuscules et les minuscules lors de la saisie
des tiquettes, oprandes et modificateurs.
L'oprande et le contenu actuel du registre doivent obligatoirement contenir le mme type de
donnes. Si l'on doit traiter diffrents types de donnes, il faut au pralable convertir la donne
contenue dans le registre :
Conversion :

LD

10

(* On charge la valeur 10 dans le


registre*)

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

appel de bloc fonctionnel - pas de rsultat


courant utilis

JMP

C, CN

tiquette

saut inconditionnel - pas de rsultat courant


utilis

RET

C, CN

saut la fin du programme

Oprations boolennes et instructions:


NOT

boolen

AND

N, N (, (

boolen

ET entre l'oprande et le rsultat courant

OR

N, N (, (

boolen

OU entre l'oprande et le rsultat courant

XOR

N, N (, (

boolen

OU exclusif entre l'oprande et le rsultat courant

S(et)

boolen

force l'oprande TRUE si le rsultat courant est


TRUE

R(eset)

boolen

force l'oprande FALSE si le rsultat courant


est TRUE

Oprations Mathmatiques:
ADD

numrique

addition entre l'oprande et le rsultat courant

SUB

numrique

soustraction entre l'oprande et le rsultat


courant

MUL

numrique

multiplication entre l'oprande et le rsultat


courant

DIV

numrique

division entre l'oprande et le rsultat courant

Instruction de chargement/Forage:
LD

tout type

charge l'oprande dans le rsultat courant

ST

tout type

stocke le rsultat courant dans l'oprande

Oprateurs logiques:
GT

numrique

compare le rsultat courant et l'oprande

GE

numrique

compare le rsultat courant et l'oprande

EQ

numrique

compare le rsultat courant et l'oprande

NE

numrique

compare le rsultat courant et l'oprande

LE

numrique

compare le rsultat courant et l'oprande

LT

numrique

compare le rsultat courant et l'oprande

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

Le modificateur N est utilis pour inverser bit bit la valeur


d'un oprande.
Exemple : Dans l'exemple, C est 1, si A est 1 et B est 0.
LD A
ANDN B
ST C

boolen

Le modificateur C est utilis pour excuter l'instruction


associe, si la valeur de l'accu est 1 (TRUE).
Exemple :Dans l'exemple, le saut vers START est excut
seulement si A est 1 (TRUE) et B est 1 (TRUE).
LD A
AND B
JMPC START

CN

boolen

Si le modificateur C est combin avec le modificateur


N,l'instruction associe est excute seulement si la valeur de
l'accu est un 0 boolen (FALSE).
Exemple : Dans l'exemple, le saut vers START est excut
seulement si A est 0 (FALSE) et B est 0 (FALSE).
LD A
AND B
JMPCN START

tout type

Le modificateur Parenthse gauche ( est utilis pour


repousser l'valuation de l'oprande, jusqu' ce que
l'oprateur Parenthse droite ) apparaisse. Le nombre
d'oprations Parenthse droite doit tre gal au nombre de
modificateurs Parenthse gauche. Il est possible d'imbriquer
les parenthses.
Exemple :Dans cet exemple, E aura la valeur 1, si C et/ ou D
sont 1, ainsi que si A et B ont aussi la valeur 1.
LD A
AND B
AND( C
OR D
)
ST E
L'exemple peut tre programm de la faon suivante :
LD A
AND B
AND(
LD C
OR D
)
ST E

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

La mise entre parenthses est


utilise pour modifier la
squence d'excution des
oprateurs.
Exemple : Si les oprandes A,
B, C et D ont respectivement
les valeurs 1, 2, 3 et 4, alors
A+B-C*D
donne le rsultat -9 et
(A+B-C)*D
donne le rsultat 0.

FUNCNAME
(liste des
paramtres
rels)

Traitement
de fonction
(appel)

Expression, valeur
littrale, variable,
adresse (tous les
types de donnes)

Le traitement de fonction est


utilis pour excuter des
fonctions

Ngation

Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT, UDINT ou
REAL

Dans le cas de la ngation -,


le systme change le signe de
la valeur de l'oprande.

NOT

Complment

Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD

Exemple : Dans l'exemple,


OUT est -4, si IN1 est 4.
OUT := - IN1 ;
Dans le cas de NOT, le
systme effectue une
inversion de chaque bit de
l'oprande.
Exemple : Dans l'exemple,
OUT est 0011001100, si IN1
est 1100110011.
OUT := NOT IN1 ;

**

Elvation de
puissance

Expression, valeur
littrale, variable,
adresse du type de
donnes REAL (base)
et INT, DINT, UINT,
UDINT ou REAL
(exposant)

Dans le cas de l'lvation


une puissance plus haute **,
la valeur du premier oprande
(base) est augmente de la
valeur du second oprande
(exposant).
Exemple : Dans l'exemple,
OUT est gal 625,0, si IN1
est 5,0 et IN2 4,0.
OUT := IN1 ** IN2 ;

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

Dans le cas de la division /, la


valeur du premier oprande
est divise par la valeur du
deuxime oprande.
Exemple : Dans l'exemple,
OUT est gal 4,0, si IN1 est
20,0 et IN2 5,0.
OUT := IN1 / IN2 ;
Remarque : La fonction
DIVTIME de la bibliothque
obsolte est destine aux
divisions du type de donnes
Time.

MOD

Modulo

Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT ou UDINT

Dans le cas de MOD, la


valeur du premier oprande
est divise par la valeur du
deuxime oprande et le
reste de la division (Modulo)
est sorti comme rsultat.
Exemple : Dans l'exemple
donn,
OUT est 1 si IN1 est 7 et
IN2 2
OUT est 1, si IN1 est 7 et
IN2 -2
OUT est -1, si IN1 est -7 et
IN2 2
OUT est -1, si IN1 est -7 et
IN2 -2
OUT := IN1 MOD IN2 ;

Addition

Expression, valeur
littrale, variable,
adresse du type de
donnes INT, DINT,
UINT, UDINT, REAL
ou TIME

Dans le cas de l'addition +, la


valeur du premier oprande
est ajoute la valeur du
deuxime oprande.
Exemple : Dans l'exemple
OUT est gal 9 si IN1 est 7
et IN2 2.
OUT := IN1 + IN2 ;

<

Comparaison

Expression, valeur

< permet de comparer la

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 "

valeur du premier oprande


celle du deuxime oprande.
Si le premier oprande est
infrieur au deuxime
oprande, le rsultat est un 1
boolen. Si le premier
oprande est suprieur ou
gal au deuxime oprande,
le rsultat est un 0 boolen.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1 est
infrieur 10. Sinon, il est sur
0.
OUT := IN1 < 10;

>

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

> permet de comparer la


valeur du premier oprande
celle du deuxime oprande.
Si le premier oprande est
suprieur au deuxime
oprande, le rsultat est un 1
boolen. Si le premier
oprande est infrieur ou gal
au deuxime oprande, le
rsultat est un 0 boolen.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1 est
suprieur 10 et est sur 0 si
IN1 est infrieur 10.
OUT := IN1 > 10 ;

<=

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

<= permet de comparer la


valeur du premier oprande
celle du deuxime oprande.
Si le premier oprande est
infrieur ou gal au deuxime
oprande, le rsultat est un 1
boolen. Si le premier
oprande est suprieur au
deuxime oprande, le
rsultat est un 0 boolen.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1 est
infrieur ou gal 10. Sinon,
il est sur 0.
OUT := IN1 <= 10 ;

>=

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

>= permet de comparer la


valeur du premier oprande
celle du deuxime oprande.
Si le premier oprande est
suprieur ou gal au
deuxime oprande, le
rsultat est un 1 boolen. Si le
premier oprande est infrieur
au deuxime oprande, le
rsultat est un 0 boolen.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1 est

180

Langage de programmation

suprieur ou gal 10. Sinon,


il est sur 0.
OUT := IN1 >= 10 ;
=

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

& permet d'tablir une liaison


ET logique entre les
oprandes. Pour les types de
donnes BYTE, WORD et
DWORD, le lien est fait par
bit.
Exemple : Dans les exemples,
OUT est sur
1, si IN1, IN2 et IN3 sont sur
1.
OUT := IN1 & IN2 & IN3 ;

AND

ET logique

Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD

AND permet d'tablir une


liaison ET logique
entre les oprandes. Pour les
types de
donnes BYTE, WORD et
DWORD, le lien est
fait par bit.
Exemple : Dans les exemples,
OUT est sur 1, si IN1, IN2 et
IN3 sont sur 1.
OUT := IN1 AND IN2 AND

181

Printed Documentation

IN3 ;
XOR

OU exclusif
logique

10

Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD

XOR permet d'tablir une


liaison OU exclusif logique
entre les oprandes. Pour les
types de donnes BYTE,
WORD et DWORD, le lien est
fait par bit.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1 et IN2
ne sont pas gaux. Si IN1 et
IN2 ont le mme tat (tous
deux 0 ou 1), OUT est sur 0.
OUT := IN1 XOR IN2 ;
Si plus de deux oprandes
sont relis, le rsultat de
l'opration est l'tat 1 pour
un nombre impair d'tats 1 et
l'tat 0 pour un nombre pair
d'tats 1.
Exemple : Dans l'exemple,
OUT est sur 1 si un ou trois
oprandes sont sur 1. OUT
est
sur 0 si zro, deux ou quatre
oprandes sont sur 1.
OUT := IN1 XOR IN2 XOR
IN3 XOR IN4 ;

OR

OU logique

11 (le
plus
bas)

Expression, valeur
littrale, variable,
adresse du type de
donnes BOOL,
BYTE, WORD ou
DWORD

OR permet d'tablir une


liaison OU logique entre les
oprandes. Pour les types de
donnes BYTE, WORD et
DWORD, le lien est fait par
bit.
Exemple : Dans l'exemple,
OUT est sur 1, si IN1, IN2 ou
IN3 est sur 1.
OUT := IN1 OR IN2 OR IN3 ;

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

REPEAT (avec test en fin de boucle)


FOR (numration)
WHILE

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

(1) Normal: la variable associe prend la valeur du flux d'entre.


(2) Invers: la variable associe prend la valeur de l'inverse du flux d'entre.
(3) S(et): la variable associe est force TRUE si le flux d'entre est TRUE. (Aucune action n'est
effectue si le flux d'entre est FALSE).
(4) R(eset): la variable associe est force FALSE si le flux d'entre est TRUE. (Aucune action
n'est effectue si le flux d'entre est FALSE).
(5) Les oprations de saut manoeuvrent le flux de contrle. Avec des sauts, des rseaux peuvent
tre excuts seulement si certaines conditions se tiennent. Des sauts peuvent tre conditionns
par un rsultat de combinaison binaire, ou inconditionnel, c.--d. obligatoire. La cible de saut doit
toujours tre le commencement d'un rseau, indiqu par son tiquette de rseau.
(6) Les RETOUR arrtent l'excution du programme dans le POU courant, et continuent au point
d'o le POU a t appel. Les RETOUR peuvent tre conditionns par un rsultat de connexion
binaire, ou inconditionnel.
Langage CFC
Langage CFC

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

Description d'un bloc compos


Les blocs de compos sont une manire de structurer votre application
La zone de travail de l'diteur CFC est limite une largeur de page. En choisissant le format
papier, vous dterminez le nombre de blocs qui peuvent tre placs horizontalement.
Verticalement, un diagramme de fonction peut se dvelopper l'infini.
Bien qu'en fait vous ne soyez pas limit dans la longueur de votre diagramme CFC, il est facile de
perdre la vue d'ensemble sur un diagramme trop grand. Les blocs composs permettent de
dcompos votre application, cachant des groupes de blocs de logique relatifs l'intrieur de `Bloc
compos' afin d'amliorer la lisibilit de l'application
Les signaux entre les blocs l'intrieur d'un bloc compos ne sont pas visibles l'extrieur. En
dehors du bloc compos, seuls les signaux entrants et sortants sont visibles
Sur l'cran, double-cliquer sur le bloc compos pour voir son contenu. Utiliser 'Voir Niveau
suprieur' ou dans la barre d'outil l'icne correspondant 'Dossier parent' pour retourn l'cran
ou le bloc compos est appel.
Les blocs de compos peuvent tre imbriqus, c.--d. l'intrieur d'un bloc compos vous pouvez
dfinir, ou utiliser, d'autres blocs composs. Le contenu d'un bloc compos peut tre dit, vous
peut ajouter ou supprimer des blocs, refaire les connexions, ajouter, modifier ou supprimer des
connexions entrants ou sortant du bloc compos.
Sur l'cran, les dernires connexions d'entre et de sortie du bloc compos sont plus courtes que
n'importe quel autre connexion, ainsi vous pouvez facilement distinguer un bloc compos d'un
autre blocs.

Crer un bloc compos


Pour crer un nouveau bloc compos vide,
1.

Slectionner "Insertion Bloc compos ..."

2.

Le pointeur de souris change

3.

Cliquer sur la souris l'endroit o vous voulez insrer le nouveau bloc de


composant

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.

Avoir un Block(s) de choisi

2.

Slectionner "Insertion Bloc compos..."

3.

CFC-Editor vous demandera de vrifier si vous voulez convertir les blocs


en bloc compos

4.

Les blocs slectionns seront enlevs du diagramme et remplacs par un


bloc compos. Tous les signaux entre ces blocs seront dplacs avec les
blocs, tous les signaux d'autres blocs seront gards et changs en
signaux d'interface du bloc compos.

Notes:
Actuellement, le processus de retour en groupe de blocs partir d'un bloc compose, n'est pas
support.

Ajouter une E/S un bloc compos


Vous pouvez diter le contenu d'un bloc compos comme n'importe quel autre diagramme de
fonction. Quand vous devez ajouter des entres ou des sorties, vous devez changer l'interface du
bloc compos en consquence. Vous pouvez faire ceci de l'extrieur (Top-Down) ou de l'intrieur
du bloc compos (Bottom-Up).
Top-Down:
1.

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.

Cblez cette dernire E/S

3.

Ds que vous utiliserez ce dernier connecteur, il sera agrandie la taille


normale et un autre connecteur plus court sera ajout l'extrmit.

Bottom-Up:
1.

Double-cliquez sur le bloc compos que vous voulez ajouter un connecteur.

2.

Cblez une connexion d'un bloc l'intrieur du bloc compos


la barre de marge gauche ou droite (selon que vous voulez crer une entre ou une sortie)

3.

Cliquez droit sur le connecteur et ouvrez la boite de dialogue 'proprits... ' par
l'intermdiaire du menu contextuel.

4.

Marquez les objets 'Connecteur CFC' et 'Connecteur de bloc compos' nomme le et


fermez la boite de dialogue en cliquant sur 'OK'.

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

Chaque rseau est compos des lments suivants:


une barre d'alimentation d'entre
une barre d'alimentation de sortie
des boites pouvant tre un oprateur, une fonction ou un bloc fonctionnel
des connexions reliant les barres d'alimentation et les diffrentes boites entre elles.

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 :

Barre d'alimentation droite :

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

2. Tche cyclique (excute en tche de fond)


3. Tche TIMER (excute priodiquement)
4. Tche vnementielle utilisateur (dclenche sur vnement utilisateur)
5. Tche vnementielle systme (1 seule tche et dclenche sur vnement systme)
Tche d'initialisation :
Une tche d'initialisation permet de :
)

Configurer les divers rseaux (Ethercat, CANOpen, Modbus

Paramtrer votre systme et raliser d'autres actions ncessaire au dmarrage ou


reprise de cycle du MPC.

Au dmarrage du MPC, la tche d'initialisation est la premire s'excuter. La fin de celle-ci


dclenche l'excution des autres tches dclares en Automatiques.
En cycle, le dclenchement de la tche d'initialisation par une autre tche, provoque la mise en
attente de toutes les tches jusqu' la fin d'excution de cette dernire.

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.

Avec gestion des entres/sorties par image de process

Nom : nom de la tche


Type : type de la tche -> choisir CYCLIQUE
Priorit : permet de choisir la priorit de la tche
Dmarrage : automatique ou manuel
Process : type de gestion des entres / sorties -> choisir PAR IMAGE DE PROCESS
Le cycle s'excute de manire cyclique :
1. Acquisition des entres : criture dans les variables d'entres de la tche (ensemble des
variables d'entre dclares dans tous les programmes de la tche) de l'tat physique
des entres.

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.

Avec gestion des entres/sorties directe :

Nom : nom de la tche


Type : type de la tche -> choisir CYCLIQUE
Priorit : permet de choisir la priorit de la tche
Dmarrage : automatique ou manuel
Process : type de gestion des entres / sorties -> choisir DIRECTE
Le cycle s'excute de manire cyclique :
Traitement des diffrents programmes de la tche : les programmes cris par l'utilisateur sont
excuts.
L'accs aux E/S se fait directement par des fonctions INP et OUT : la fonction INP lit l'tat de
l'entre physique et la fonction OUT agit directement sur la sortie physique.
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

Nom : nom de la tche


Type : type de la tche -> choisir TIMER
Priorit : permet de choisir la priorit de la tche
Dmarrage : automatique ou manuel
Priode : dure avant redmarrage de la tche
Chien de garde : priode aprs laquelle on dclenche un dfaut si la tche n'a pas termine son
excution.

Tache Evnementielle Utilisateur:


Ce type permet de dclencher une tche sur l'arrive d'un vnement utilisateur

199

Printed Documentation

Nom : nom de la tche


Type : type de la tche -> choisir EVENEMENT UTILISATEUR
Priorit : permet de choisir la priorit de la tche
Dmarrage : automatique, manuel ou initialisation
Evnement : numro d'vnement qui dmarrera la tche
Chien de garde : priode aprs laquelle on dclenche un dfaut si la tche n'a pas termine son
excution.

Tache Evnementielle Systme :


Ce type permet de dclencher une tche sur l'arriv d'un vnement utilisateur ou systme

200

Langage de programmation

Nom : nom de la tche


Type : type de la tche -> choisir EVENEMENT SYSTEME
Priorit : permet de choisir la priorit de la tche
Dmarrage : automatique, manuel ou initialisation
Chien de garde : priode aprs laquelle on dclenche un dfaut si la tche n
excution.

a pas termine so

Priorit des tches


Afin de partager au mieux les ressources de l'application, un squenceur gre les diffrentes
tches dans le noyau temps rel du MPC selon leurs types (cycliques, TIMER), leurs priorits et
leurs tats.
Exemple de partage des ressources du MPC :

201

Printed Documentation

Timer : Ensemble des tches Timer et vnementielles.


Cyclique : Ensemble des tches cycliques.
Interne : Traitement du Motion, driver de communication Ethercat, CANopen, traitement des E/S du
MPC.
Systme : Rseau TCP, Console, FLASH, atelier logiciel Motion Studio.
Les tches sont divises en deux groupes selon leur type:
1. Les tches interruptives : les tches TIMER, vnementielles
2. Les tches cycliques
Dans chaque groupe, une tche a un niveau de priorit : de 1 31 (1 tant la priorit la plus haute).

Les tches de type Timer et Evnementielle :


Les tches vnementielles doivent avoir la priorit la plus leve (1).
Les tches TIMER occupent les priorits intermdiaires de faon tre prioritaire sur les tches
cycliques (de fond) mais aussi laisser la main aux tches vnementielles.
Les tches s'excutent entre elles en commenant de la plus prioritaire la moins.
Ex : 2 tches
T1 priorit 5 avec une priode de 10 ms,
T2 priorit 10 avec une priode de 1 ms

202

Langage de programmation

Les tches cycliques :


Les tches cycliques dpendent des paramtres suivants :
Temps de vieillissement (en ms)
Puissance PC (en %)
Chaque tche cyclique a une priorit dfinie par l'utilisateur.
Cette priorit est convertie en interne: PTx (PTx=1 / Priorit x)
La puissance rserve au systme est convertie en temps rserv au systme.

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

lancement d'une tche qui est l'arrt.

SUSPEND

suspension (pause) d'une tche en cours d'excution

CONTINUE

reprise de l'excution d'une tche suspendue l o elle s'tait arrte

HALT

arrt d'une tche en cours d'excution

STATUS

indique l'tat de la tche

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 :

une fonction standard (SHL, SIN...)

une fonction crite en langage "C" et intgre la cible

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 FBD, CFC et LD


Pour appeler une fonction en FBD et LD, il suffit de l'insrer dans le diagramme et de connecter ses
entres et sa sortie.

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 *)

Les blocs fonctionnels


Les blocs fonctionnels

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 standard de la librairie (RS, TON...)

un bloc intgr au systme cible

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

MyTimer (bTrig, t#2s

LD

MyTimer.Q

ST

TimerOutput

LD

MyTimer.ET

ST

ElapsedTimer

LD

bCond

CALC

MyTimer (bTrig, t#2s)

LD

bCond

CALCN

MyTimer (bTrig, t#2s)

(* appel si bCond = TRUE *)

(* appel si bCond = FALSE *)

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.

Exchange : Cette mmoire contient les variables changs en Modbus ou CANopen.


La dclaration de ces variables se fait partir de l'diteur ci-dessous.

IO : Cette mmoire contient la dclaration des d'entres/sorties du projet.


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;

Dclaration de variable d'E/S pour les tches avec image de process


Les variables d'E/S sont automatiques dclares dans le fichier IO.POE par l'diteur d'E/S sous la
forme suivante:
VAR_GLOBAL
Entree_MPC_1a8 AT %IB0.0: BYTE;
Entree_MPC_9a16 AT %IB1.0: BYTE;
END_VAR
Pour rutiliser ces variables dans une tche avec image de process, il faut les saisir dans la zone
de variable de l'diteur de programme et enlever l'attribut AT ainsi que l'adressage :
VAR_ EXTERNAL

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'

Hirarchie des diffrents types de base:

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.

green. 'Yellow' '

TYPE TrafficLight: (Red, yellow, green):= yellow;END_TYPE


VAR MainRoad: TrafficLight; CrossRoad: TrafficLight;
StopCar: BOOL;
END_VAR
Dans l'lment de l'instruction du POU, les valeurs numres dfinies peuvent tre employ:
Exemple: IL
LD MainRoadEQ redST StopCar
Types dfinies par le Motion Studio
Axe

215

Printed Documentation

tBcleMode
Description
Ce type est une numration des diffrents modes d'utilisation des variateurs:

m_torque : variateur en boucle de courant

m_speed : variateur en boucle de vitesse

m_position : variateur en boucle de position

tEdgeType
Description
Ce type est une numration des diffrents types de front :

t_falling : front descendant

t_rising : front montant

t_all : tous les fronts

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

Passage de Couple Couple : ignor silencieusement


Passage de Vitesse/Position Couple :
Initial_Zero : passage en couple, TORQUE=0 et CURRENT=0
Initial_real : passage en couple, TORQUE=TORQUE_S et CURRENT=CURRENT_S
Initial_theoric : interdit, erreur systme
Initial_ value : passage en couple
Passage de Couple Vitesse :
Initial_Zero : passage en vitesse, SPEED=0
Initial_real : passage en vitesse, SPEED=SPEED_S

216

Langage de programmation

Initial_theoric : interdit, erreur systme


Initial_ value : passage en vitesse

Passage de Vitesse Vitesse : ignor silencieusement


Passage de Position Vitesse:
Initial_Zero : passage en vitesse, SPEED=0
Initial_real : passage en vitesse, SPEED=SPEED_S
Initial_theoric : passage en vitesse, SPEED=vitesse thorique du profil
Initial_ value : passage en vitesse
Passage de Couple/Vitesse Position :
Initial_Zero : interdit, erreur systme
Initial_real : passage en position, POS=POS_S
Initial_theoric : interdit, erreur systme
Initial_value : interdit, erreur systme
Passage de Position Position : ignor silencieusement

tMoveDirection
Description
Ce type est une numration des sens d'un axe:

s_all : les deux sens

s_neg : sens ngatif

s_pos : sens positif

tSrcPos
Description
Ce type est une numration des diffrentes sources de position disponible pour un axe :

SRC_AXE pour la position rel de l'axe

SRC_AUX pour la position auxiliaire de l'axe

SRC_TRC pour la position thorique de l'axe

SRCX_TRC pour la position thorique en X de l'axe d'interpolation

SRCY_TRC pour la position thorique en Y de l'axe d'interpolation

SRCZ_TRC pour la position thorique en Z de l'axe d'

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").

Si on est dj dans le segment (dmarrage de la boite came alors que la source de


position est dj dans le segment), on considre que l'on ENTRE dans le segment cet
instant. Si l'on est l'arrt avec une source de position bruite (rsolveur), le comportement
sera alatoire (le segment sera activ ou non).
<EventIn> vnement utilisateur monter lorsque l'on rentre dans le segment. (0 : aucun
vnement)
<EventInParam> paramtre passer l'vnement
<EventOut> vnement utilisateur monter lorsque l'on sort du segment. (0 : aucun
vnement)
<EventOutParam> paramtre passer l'vnement
<Mode> mode (position ou dure)
Position : sort l'tat du segment (activ ou non)

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 :

<smPosition > : par rapport la position

<smDuration > : par rapport une pulse

tOutTarget
Description
Ce type est une numration utilis pour le choix de la cible dans la dclaration des sorties de
boites cames :

<om_physicaloutbit> : utilis une sortie physique

<om_internalinbit> : utilis une entre virtuelle

Came

tCamTable

219

Printed Documentation

Dclaration
TYPE tCamTable :
STRUCT
Nb :UDINT;
X :

array [0..1023] of REAL;

Y : array [0..1023] of REAL;


Dx : array [0..1023] of REAL;
Dy : array [0..1023] of REAL;
END_STRUCT;
END_TYPE
Description
Ce type de structure permet de dclarer une came partir d'un tableau de point :

<Nb> : le nombre de points dans la came

<X> : la position matre

<Y> : la position esclave

<dX>: la tangente X

<dY>: la tangente Y

Capture

tCapType
Description
Ce type est une numration des diffrents types de capture :

W_NONE pour pas de fentre

W_INT pour fentre interne

W_EXT pour fentre externe

tCapImdIo
Description
Ce type est une numration de diffrentes entres rapides du variateur IMD et IMDL:

IO_3 pour l'entre rapide IMD 3

IO_4 pour l'entre rapide IMD 4

IO_14 pour l'entre rapide IMD 14

IO_15 pour l'entre rapide IMD 15

IO_Z pour le TOP Z de la source

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 :

0 : NULL, aucune donne, non utilis

1:X

2:Y

3:Z

4...9 => invalide (ventuelles autres variables spciales d'entres)

11

20

100...255 => Entre "de calcul" permettant de relier une entre une sortie.

19 => Axe de sortie 1 9


99 => invalide

<Geotype> : type de transformation :

TINVALID gnre une erreur

TROTATESERIAL effectue 3 rotations successives du repre

TROTATEPARALELL effectue 3 rotations du repre par rapport un repre fixe

TTRANSLATE effectue une translation du repre

225

Printed Documentation

TSCALE retourne l'orientation de la direction d'une trajectoire

<Param> : la valeur appliquer la transformation.

tGeoType
Description
Ce type est une numration des diffrents types de transformation gomtrique pour
l'interpolation:

TINVALID gnre une erreur

TROTATESERIAL effectue 3 rotations successives du repre

TROTATEPARALELL effectue 3 rotations du repre par rapport un repre fixe

TTRANSLATE effectue une translation du repre

TSCALE effectue un changement d'chelle

TTANGENTIAL retourne l'orientation de la direction d'une trajectoire

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

: Array [1..10] of REAL;

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

<Geo> : tableau de transformation de type tGeoEntry


<Geo_Reverse> : tableau de transformation inverse de type tGeoEntry

tInterpoLimitType
Description
Ce type est une numration des diffrents modes de suivi de l'interpolation :

TADAPTSPEED pour que l'interpolation suive le plus prcisment possible le profil de


vitesse

TADAPTTRAJ pour privilgi la trajectoire

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

Programmation du contrle de mouvement


Introduction
Le MPC peut grer jusqu' 40 axes.
Les ordres de mouvement sont envoys directement aux variateurs via le bus Ethercat.
Le logiciel Motion Studio contient de nombreuses fonctions volues pour le contrle de
mouvement :

Positionnement rapide et prcis

Arbre lectrique rapport variable

Profil de came avec dphasage dynamique

Registration 10 s avec fentre de dclenchement

Botes contacts

Synchronisation de mouvements

Axes virtuels

Interpolations linaire, circulaire, hlicodale, modles gomtriques

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.

Le choix du mode de fonctionnement d'un variateur se fait dans l'onglet CONFIGURATION

230

Programmation du contrle de mouvement

Liste des fonctions


CURRENT

Force la consigne de courant

CURRENT_S

Retourne le courant actuel

GETMODE

Retourne le mode de fonctionnement d'un axe

SETMODE

Force le mode de fonctionnement d'un axe

POS

Modifie la position atteindre

POS_S

Retourne la position relle

POS_T

Retourne la position atteindre

POSAUX_S

Retourne la position auxiliaire

POSERROR_S

Indique une erreur de mouvement

SPEED

Force la consigne de vitesse

SPEED_S

Retourne la vitesse courante

TORQUE

Force la consigne de couple

TORQUE_S

Retourne le couple actuel

Mode asservi / non asservi


Passage en mode non asservi
Un axe passe en mode non asservi (boucle ouverte) :
A chaque redmarrage du MPC.
A chaque excution de la fonction AXIS (Axe, 0) partir d'une tche.
Sur erreur de poursuite de n'importe quel axe servo (sauf si modification des paramtres de
scurit des axes par la fonction SECURITY).
Sur un forage partir des menus de debug (bouton asservi / dbray ...), du menu
communication (arrt des tches, redmarrage des tches, envoi des tches).
La fonction AXIS_S (Axe) permet de lire l'tat dans lequel se trouve l'axe.
La lecture de AXIS_S doit se faire uniquement quand AXISREQUEST_S est gale 0.
Si une fonction de mouvement est envoye un axe paramtr en boucle ouverte, elle sera
consomme par celle-ci mais le mouvement ne sera pas effectu.
Par exemple :
Tche Process
...
... (* Le MPC a dtect une erreur de poursuite sur un *)

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 *)
...

(* => OUT (EnableDrive)=1 sinon =0 *)

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 *)

WAIT (AXISREQUEST_S (Axe_X) =0); (* Attente fin de demande


d'asservissement *)
If (AXIS_S (Axe_X) =0) Then
FlagDefaut := 1;
Else
FlagDefaut := 0;
End_If;

Paramtrage d'un axe


232

(* Test de l'asservissement *)

Programmation du contrle de mouvement

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 :

Utiliser le fichier de paramtre correspondant au moteur en l'important dans le projet, la


cration de l'axe ou par le menu popup (clic droit) sur l'axe dans l'onglet configuration.
Dans ce cas les paramtres des boucles de vitesse et position devront tre rajust sur la
machine.

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 :

Le gain Kp agit sur la ractivit aux changement sur la boucle de courant

Augmenter le gain Ki amliore le suivi mais peut, par excs, dgrader la stabilit de
la boucle

Diminuer le gain Ki permet de stabiliser la boucle mais le courant demand peut ne


pas tre atteint

Boucle de vitesse :

Le gain Kp agit sur la ractivit aux changement sur boucle de vitesse

233

Printed Documentation

Augmenter le gain Ki amliore le suivi mais peut, par excs, dgrader la stabilit de
la boucle

Diminuer le gain Ki permet de stabiliser la boucle mais la vitesse demand peut ne


pas tre atteinte

Boucle de position :

Le gain Kp agit sur la ractivit aux changement sur boucle de vitesse

Le gain Kv permet d'injecter dans la boucle l'image de la vitesse thorique. Il


permet donc, une fois rgl, d'obtenir une erreur de poursuite nulle vitesse
constante. Un gain trop faible entrane une erreur de poursuite positive (axe en
retard) tandis qu'un gain trop for provoque une erreur de poursuite ngative (axe
en avance).

Le paramtrage de la cinmatique consiste saisir les paramtres Motion de l'axe en fonction de la


mcanique prsente sur la machine. Par la suite, les informations de position seront directement
dans les units de la machine et seront automatiquement converti avant d'tre appliqu sur les
moteurs.
Si par la suite on souhaite rgler un paramtre en temps rel, on peut passer en ligne sur le MPC
et agir dessus.
Il est galement possible de modifier, par programme, les paramtres en utilisant les fonctions
READPARAM et WRITEPARAM l'intrieur d'une tche.
Unit utilisateur
En fonction de l'application, de la mcanique (axe linaire, rotatif), il est d'intressant de pouvoir
affecter chaque axe une unit utilisateur reprsentative : mm, point (point codeur * 4), degrs,
radian, pouce, tour, unit quelconque...
En fait, l'unit est utilise uniquement sur les crans du Motion Studio afin d'y apporter un confort
d'utilisation et de comprhension.
Par exemple, si le choix de l'unit est mm, dans l'cran "Principal" du paramtrage de l'axe dans
l'onglet Motion, la vitesse sera exprime en mm/s, les acclrations et dclrations en mm/s...

Exemple 1 : Axe fini


Moteur en bout de vis bille au pas de 5mm. Units = mm, Rin = 1, Rout = 1, Distance par tour =
5.000, Modulo non activ

234

Programmation du contrle de mouvement

Exemple 2 : Axe infini


Moteur avec rducteur de 10. En sortie de rducteur, tourelle 360, Units = degrs, Rin = 10, Rout
= 1, Distance par tour = 360.000, modulo activ avec une valeur de 360.000

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

Rentrez dans les champs Acclration (paramtre associ _IMD_PROFILE_ACCELERATION)


et Dclration (paramtre associ _IMD_PROFILE_DECELERATION), l'acclration et la
dclration par dfaut en unit/s2.
Si l'on dsire modifier ces phases l'intrieur d'une tche, utilisez les fonctions ACC, DEC, VEL,
ACC%, DEC%, VEL%.
La fonction VEL_S permet de lire la vitesse de l'axe.
Elles sont effectives tout moment : axe en mouvement ou l'arrt.
Les phases d'acclration/dclration peuvent tre linaires ou sinus (paramtre associ
_IMD_GENERATEUR_SINUS).
Dans le cas o le sinus a t choisi, un coefficient permet d'intgrer une portion linaire dans le
sinus.
L'acclration sinus est en cours de dveloppement et non disponible sur cette version.
Par exemple :

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 :

Le type de prise d'origine de l'axe

Le choix de l'entre POM (IMD_HOME_INPUT)

Le zro programme de l'axe (IMD_HOME_ZEROP)

La vitesse de prise d'origine (IMD_HOME_VELOCITY)

L'acclration et la dclration en cours

236

Programmation du contrle de mouvement

Un home sur l'auxiliaire prend en compte :

Le type de prise d'origine de l'auxiliaire

Le choix de l'entre POM (IMD_HOME_INPUT)

Le zro programme de l'auxiliaire (IMD_AUX_ZEROP)

Choix de l'entre utilise pour la POM :

0 : Utilisation de l'entre ddie (E4) de l'IMD

1-32 : Utilisation d'une entre locale du MPC

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 :

Fonctions de prise d'origne :


HOME(Axe,type)
Lance une prise d'origne sur un Axe.
HOMEREQUEST_S(Axe)
Indique l'tat de la demande de prise d'origine

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

Les types pour l

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

Type 1 : sur TOP Z :


Le moteur n'effectue aucun dplacement mais sa position est recalcule par rapport au Top Z
moteur et la valeur de rfrence. On obtient une position se situant entre +/- tour ou rfrence
+/- tour moteur.

Type 2 : Sur capteur, en sens +, sans dgagement


Le variateur lance un mouvement infini en sens + et attend un front montant sur l'entre HOME.
La position est alors force la valeur de rfrence et le moteur s'arrte sur cette position.

238

Programmation du contrle de mouvement

Type 3 : Sur capteur, en sens +, avec dgagement


Si l4entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en sens +
pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens + et attend un front montant sur l'entre
HOME pour forcer la position la valeur de rfrence et le moteur s'arrte cette position.

Type 4 : Sur capteur, en sens -, sans dgagement


Le variateur lance un mouvement infini en sens - et attend un front montant sur l'entre HOME.
La position est alors force la valeur de rfrence et le moteur s'arrte sur cette position.

239

Printed Documentation

Type 5 : Sur capteur, en sens -, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en sens +
pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens - et attend un front montant sur l'entre
HOME pour forcer la position la valeur de rfrence et le moteur s'arrte cette position.

Type 6 : Sur capteur et TOP Z, en sens +, sans dgagement


Le variateur lance un mouvement infini en sens + et attend un front montant sur l'entre HOME puis
le passage par le TOP Z moteur.
La position est alors force la valeur de rfrence et le moteur s'arrte sur cette position.

Type 7 : Sur capteur et TOP Z, en sens +, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en sens pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens + et attend un front montant sur l'entre
HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur de rfrence et le moteur s'arrte sur cette position.

240

Programmation du contrle de mouvement

Type 8 : Sur capteur et TOP Z, en sens -, sans dgagement


Le variateur lance un mouvement infini en sens - et attend un front montant sur l'entre HOME puis
le passage par le TOP Z moteur.
La position est alors force la valeur de rfrence et le moteur s'arrte sur cette position.

Type 9 : Sur capteur et TOP Z, en sens -, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en sens +
pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens - et attend un front montant sur l'entre
HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur de rfrence et le moteur s'arrte sur cette position.

241

Printed Documentation

Type 10 : Initialise la position de l'axe avec la position absolue (seulement en mode


SinCos ou SSI sinon initialisation 0)

Type 11 : Remise 0 de l'erreur de poursuite (utile pour des applications en couple


limit)

Les types pour l'auxiliaire

Type 0 : Immdiate - l'auxiliaire revient sa valeur "Zro Programme"

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)

Type 4 : Initialise la position de l'auxiliaire avec la position absolue (seulement en


mode SinCos ou SSI sinon initialisation 0)

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

Programmation du contrle de mouvement

WRITEPARAMR(AXE_Y, _IMD_HOME_ZEROP, 1.0) ;


VEL(Axe_Y, 5.0);
MOVA(Axe_Y, 1.0); (*va en 1 avec une vitesse de 5*)
HOME(Axe_Y, 3); (*prise d'origine sur capteur avec dgagement, le
dgagement a pour vitesse 1*)
STTA(Axe_Y, 10.0); (*va en 10 avec une vitesse de 5*)
En cas de problme sur un HOME, HOMEAUX, CLEAR, CLEARAUX (erreur de poursuite,
dsasservissement ou tout ce qui peut arrter le mouvement), la fonction est alors annule et
HOME_S=0.
Contrle
Erreur de poursuite maxi
Ds qu'un 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, le systme passe tous les axes servo en mode non
asservi et ouvre le contact de chien de garde (sauf si utilisation de la fonction (SECURITY).
Le rglage de cette valeur est trs importante : une valeur trop petite entrane des arrts
intempestifs sur les axes, une valeur trop grande influe sur la scurit des organes lectriques et
mcaniques.
Rentrez dans le champ Erreur de poursuite maxi du MPC avec la valeur adquate.

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

Ce dfaut doit tre


acquit l'aide de
CLEARAXISFAUL
T
10

11

244

Le frein moteur
est en cours de
dcollage (TOn)

Programmation du contrle de mouvement

(*) La Led "Validation refuse" de l'outil Motion est allume


Pendant que l'axe est asservi il peut arriver l'un ou l'autre des vnements :

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

E1 : quelque soit le mode


AXISREQUEST_S(<Axe>)=1
et AXIS_S(<Axe>)=1

Si le paramtre "Utiliser la dclration


urgente" est actif, la dclration s'effectue

AXISREQUEST_S(<Axe>)=1
et AXIS_S(<Axe>)=0

Temporisation TOff du frein moteur

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.

La fonction "Activation frein moteur" permet de commander le frein parking du moteur, la


sortie correspond l'image de AXIS_S en incluent les temporisations de mise en fonction
et d'arrt (TOn et TOff).

245

Printed Documentation

Fonction Entre E1 : aucune


Pendant Ton :

Tous les mouvements sont ignors

Un AXIS ON est ignor

Un AXIS OFF est pris en compte et ds-asservit laxe (abrge Ton, recolle
le frein et excute TOff)

Pendant TOff :

Tous les mouvements sont ignors,

Un AXIS ON est pris en compte (abrge TOff, dcolle le frein et excute


Ton)

Un AXIS OFF est ignor

Fonction Entre E1 : Validation ou Validation retarde


Pendant Ton :

Tous les mouvements sont ignors

E1 0 est pris en compte et ds-asservit laxe (abrge Ton, recolle le frein


et excute TOff)

Pendant TOff :

Tous les mouvements sont ignors,

Un front montant sur E1 est pris en compte (abrge TOff, dcolle le frein et
excute Ton)

Fonction Entre E1 : Validation + iDPL


Pendant Ton :

246

Tous les mouvements sont ignors

Un AXIS OFF est pris en compte et ds-asservit laxe (abrge Ton, recolle
le frein et excute TOff)

Programmation du contrle de mouvement

Un tat bas sur E1 ds-asservit laxe (abrge Ton, recolle le frein et excute
TOff)

Pendant TOff :

Tous les mouvements sont ignors

Un AXIS ON ou un front montant sur E1 est ignor. (abrge TOff, dcolle le


frein et excute Ton)

Les erreurs suivantes dsactivent immdiatement le variateur SANS passer par la gestion
du frein (la puissance est coupe immdiatement).

E01 : Sur tension

E02 : Sous tension

E03 : It

E04 : Sur courant

E05 : Court-circuit

E15 : Sur vitesse

E16 : Rsolveur satur

Les autre erreurs entranent un AXIS OFF passant par la phase de ds-activation du frein.

247

Printed Documentation

248

Programmation du contrle de mouvement

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.

Dclaration d'un axe en mode simulation


Dclaration d'un axe en mode simulation
Il est possible de configurer des axes en mode simulation. Dans ce mode, le MPC simulera les
mouvements de faon interne et ainsi toute commande envoye sera excute virtuellement.
Ce mode est intressant lors de la phase dveloppement du programme : on peut tester la globalit
de l'application sans avoir les variateurs et moteurs connects.
Pour cela, il faut :
1. Passer en mode hors-ligne
2. Passer en mode avanc partir du menu Options, rubrique Mode.

250

Programmation du contrle de mouvement

3. Ouvrir la liste des priphriques EtherCAT en double-cliquant sur Priphriques EtherCAT


dans l'onglet Configuration

4. Cocher la case Simul pour les axes concerns


5. Sauvegarder le projet
6. Envoyer la configuration

Dclaration d'un axe virtuel


Dclaration d'un axe virtuel
Il est possible de dclarer un matre virtuel afin de synchroniser des axes. Un axe virtuel n'utilise
pas de ressource sur le bus EtherCAT.
Pour dclarer un axe virtuel, voir la rubrique Ajout d'un axe virtuel.

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

STTA (X, 2000.0); (* Start absolu en position 2000 *)


WAIT (POS_S(X) >200.0); (* Attente position 200 *)
OUTP (A1, 1); (* Activation d'une sortie *)
WAIT (POS_S(X) >700.0); (* Attente position 700 *)
OUTP (A1, 0); (* Dsactivation de la sortie *)
WAIT (NOT MOVE_S (X)); (* Attente fin de mouvement *)
Dans cet exemple, pendant le mouvement, on peut changer des sorties car l'excution n'est pas
interrompue.
Si la fonction MERGE est active et que l'on charge plusieurs STTA dans le MPC, les mouvements
seront excuts les uns aprs les autres sans passer par une vitesse nulle.
Si l'axe est modulo, un lancement une position 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
STTA(X, -10.0); (* dplacement dans le sens - d'une distance de 80 *)
WAIT NOT MOVE_S(X);
STTA(X, 350.0); (* dplacement dans le sens + d'une distance de 340 *)
WAIT NOT MOVE_S(X);
STTA(X, 20.0); (* dplacement dans le sens + d'une distance de 30 *)
WAIT NOT MOVE_S(X);

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

Programmation du contrle de mouvement

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

Programmation du contrle de mouvement

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

Syntaxe de la fonction TRAJIP :


TRAJIP (<Axe>, <Vitesse>, <Acclration>)
Par exemple :
TRAJP(X, 1000.0, 100.0);
Cet exemple est quivalent :
VEL(X, 1000.0);
ACC(X, 100.0);
STTIP(X);
La fonction TRAJIP 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);
TRAJIP(X, 200.0, 100.0); (* passage en petite vitesse la position 500
*)

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

Programmation du contrle de mouvement

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 2: STOP, SSTOP, POS, GEARBOXRATIO, STOPS, BREAKCAM


Un trigger sur une fonction du Groupe 2 est pris en compte ds qu'il est charg :

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)

Liste des fonctions


TRIGGERP

Cette fonction indique que le prochain mouvement sera


dclench sur le passage du matre une position.

TRIGGERI

Cette fonction indique que le prochain mouvement sera


dclench sur changement d'tat d'une entre.

TRIGGERF

Cette fonction indique que le prochain mouvement sera


dclench sur changement d'tat d'une entre et dans une
fentre de position.

TRIGGERAXISSET

Force le dmarrage d'un mouvement qui attendait un trigger

TRIGGERAXIS_S

Retourne l'tat d'un trigger sur un axe

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

Programmation du contrle de mouvement

TRIGGERP (Axe_Y, SRC_AXE, 10.0, 1);


MOVR (Axe_X, 100.0);
...

Synchronisation
Arbre lectrique
Introduction
Les fonctions GEARBOX permettent de raliser un arbre lectrique entre un axe matre et un axe
esclave.

Liste des fonctions


GEARBOX

dmarre un arbre lectrique entre un axe matre et un axe esclave.

GEARBOX2

dmarre un arbre lectrique entre un axe matre et un axe esclave.

GEARBOXRATIO

modifie le rapport de rduction d'une liaison arbre lectrique.

GEARBOXRATIO_S

retourne l'tat de changement de ratio sur un axe.

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

Liste des fonctions


MOVS

effectue une synchronisation entre un axe esclave et un matre.

STOPS

arrte la synchronisation suivant une destination absolue sur l'esclave.

STOPS_S

indique si la position esclave donn par la fonction STOPS n'a pu tre


atteinte.

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

Programmation du contrle de mouvement

Phases de changement de vitesse


Vitesse initiale nulle :
Dans l'exemple prcdent la phase 1 est une phase de changement de vitesse avec vitesse initiale
nulle.
MOVS (dM1, dE1, dM1, 0)
Le rapport de vitesse atteint la fin de cette phase est 2*dE1/dM1
Vitesse initiale non nulle et infrieure la vitesse finale :
La phase 3 reprsente ce type de changement de vitesse.
Le rapport de vitesse initial est dE2/dM2 et le rapport final est dE4/dM4 donc : dE3 = dM3 *
(dE2/dM2+dE4/dM4) / 2
MOVS (dM3, dE3, dM3, 0)
Le rapport de vitesse moyen pendant cette phase est dE3/dM3 et est suprieur au rapport de
vitesse initial; on a donc une phase d'acclration.
Vitesse initiale non nulle et suprieure la vitesse finale :
Ce type de changement de vitesse est reprsent en phase 5.
Le rapport de vitesse initial est dE4/dM4 et le rapport final est dE6/dM6 donc :
dE5 = dM5 * (dE4/dM4+dE6/dM6) /2
MOVS (dM5, dE5, dM5, 0)
Le rapport de vitesse moyen pendant cette phase est dE5/dM5 et est infrieur au rapport de vitesse
initial; on a donc une phase de dclration.

Phases de changement de vitesse + Phase plateau


Vitesse initiale nulle :
Dans l'exemple prcdent la phase 1 est une phase de changement de vitesse avec vitesse initiale
nulle.
dE10=dE1+dE2=1/2*dM1*dE2/dM2+dE2
dM10=dM1+dM2
MOVS (dM10, dE10, dM1, 0)
Vitesse initiale non nulle et infrieure la vitesse finale :
La phase 3 reprsente ce type de changement de vitesse.
Le rapport de vitesse initial est dE2/dM2 et le rapport final est dE4/dM4 donc :
dE30=dE3+dE4=dM3*(dE2/dM2+dE4/dM4)/2+dE4
dM30=dM3+dM4
MOVS (dM30, dE30, dM3, 0)
Le rapport de vitesse moyen pendant la phase 3 est dE3/dM3 et est suprieur au rapport de vitesse
initial; on a donc une phase d'acclration.
Vitesse initiale non nulle et suprieure la vitesse finale :
Ce type de changement de vitesse est reprsent en phase 5.
Le rapport de vitesse initial est dE4/dM4 et le rapport final est dE6/dM6 donc :
dE50=dE5+dE6=dM5*(dE4/dM4+dE6/dM6)/2+dE6
dM50=dM5+dM6
MOVS (dM50, dE50, dM5, 0)
Le rapport de vitesse moyen pendant la phase 5 est dE5/dM5 et est infrieur au rapport de vitesse
initial; on a donc une phase de dclration.

Phase plateau

261

Printed Documentation

Les phases 2, 4 et 6 peuvent tre dcrites directement :


MOVS (dM2, dE2, 0, 0)
MOVS (dM4, dE4, 0, 0)
MOVS (dM6, dE6, 0, 0)

Phase plateau + Phase d'arrt


Dans les phases 6 et 7 on ralise une phase plateau suivi d'une phase d'arrt.
dE70=dE6+dE7=dE6+1/2*dM7*dE6/dM6
dM70=dM6+dM7
MOVS (dM70, dE70, 0, dM7)

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

Phases de changement de vitesse + Phase plateau + Phase d'arrt


Dans l'exemple ci-contre on a :

262

Programmation du contrle de mouvement

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

MOVS (dM, dE, dM1, 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

WAIT (ORDER_S (Axe_X) =2);


Coupe (Diametre);
WAIT (ORDER_S (Axe_X) =6);
Coupe (Diametre);
...
Came
Introduction

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.

Came absolue ou relative


Dfinit partir de quel point s'excute le profil de CAME : en absolue la rfrence est 0, en relatif la
rfrence est la position des axes au lancement du profil de came.
Exemple:
Profile de came

Matre

Esclave

10

20

30

30

35

40

30

50

15

Si la position du matre est 20 et celle de l'esclave est 30, avant le dclenchement de la


came, on a les mouvements suivants pour la came absolue :
Came absolue
Matre

264

Esclave

Programmation du contrle de mouvement

20

30

30

35

40

30

50

15

Si la position du matre est 20 et celle de l'esclave est 30, avant le


dclenchement de la came, on a les mouvements suivants pour la came
relative :
Came relative
Matre

Esclave

20

35

30

37

40

60

50

65

60

60

70

45

Came finie ou came infinie


Une came mcanique correspond une came lectronique finie. Dans le tableau
de points, la 1re et la dernire valeur de la position de l'esclave sont confondues.
Le mouvement de l'esclave sera un mouvement linaire d'amplitude finie.
La came lectronique permet galement de crer un mouvement sur l'axe esclave
de type rotatif infini : la position absolue de l'esclave augmente chaque cycle
matre.
Came finie

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.

Programmation d'une came

Editeur graphique
Voir "Editeur de came" dans le chapitre Logiciel Motion Studio

Stockage des cames

Modification d'une came


Pour modifier une came (stocks dans la CF-CARD) il faut la transfrer dans une
variable de type tCamTable, il faut utiliser les fonctions suivantes:

266

Programmation du contrle de mouvement

READCAM

lit une came de la CF-CARD vers un tableau de came

WRITECAM

enregistre un tableau de came dans la CF-CARD.

Le type tCamTable est dfini par la structure suivante :


UDINT Nb ; (*nb de points dans la came, offset IEC : 2*)
REAL
REAL

X [1024]; (*position maitre, offset IEC: 18*)


Y [1024]; (*position esclave: 4126*)

REAL

dX [1024]; (*tangente X: 8234*)

REAL

dY [1024]; (*tangente Y: 12342*)

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.

Chargement d'une came


Pour utiliser une came, il faut la charger en mmoire interne :
LOADCAM

charge une came dans le MPC depuis la CF-CARD.

LOADCAMI

charge une came dans le MPC depuis un tableau de came.

Il est possible d'avoir jusqu' 128 cames charges en mmoire interne


simultanment.
Une came interne contient :
Un nombre de segments de came
Les donnes des segments de came, prtes tre excutes selon les options
passes au LOADCAM
La rfrence sur le matre
La rfrence sur l'esclave
Remarque
Pour une came absolue, les calages absolus qui ont lieu l'embrayage et pendant
le fonctionnement (si ncessaire), agissent sur le MASTEROFFSET_S et le
SLAVEOFFSET_S. Ils utilisent l'acclration dfinie pour le MASTEROFFSET et
le SLAVEOFFSET.
Attention, ce calage est sensible aux fonctions affectant la position de l'axe, par ex
HOME, HOMEAUX, CLEAR, etc
Abso
lue
0

Direction

Indif.

Embrayage

Fin de came
(si monocoup=1)

Dbrayage
(si monocoup=1)

Toujours en dbut de came.

Une fois le
dernier point
de la came
atteint.

Si l'on
revient au
dbut, la
came est

Si le matre va dans le sens


d'un STTIP sur son axe,
l'esclave va dans le sens

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

Toujours en dbut de came.


Si le matre va dans le sens
d'un STTIP sur son axe,
l'esclave va dans le sens
d'un STTIP. Sinon pas
d'embrayage

Toujours en dbut de came.


Si le matre va dans le sens
d'un STTIM sur son axe,
l'esclave va dans le sens
d'un STTIP. Sinon pas
d'embrayage

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.

N'importe o dans la came

Aucun
(ncessite un
arrt
manuel :
STOP /
BREAKCAM)

Si l'on sort
d'un ct ou
l'autre de la
came

Embraye lors du passage


sur le premier lment de la
came

Une fois le
dernier point
de la came
atteint.

Si l'on
ressort au
dbut de
came

Embraye lors du passage


sur le dernier lment de la
came

Une fois le
premier point
de la came
atteint.

Si l'on
ressort la
fin de la
came

Enchainement non rversible de came :


Lorsque l'on dmarre plusieurs cames par plusieurs STARTCAM, on ne peut
revenir que jusqu'au dbut de la came du STARTCAM en cours d'excution
LOADCAM (Esclave,Maitre,SRC_AXE,1,1,Came1,0,1,0,1.0,1.0,0,0);
LOADCAM (Esclave,Maitre,SRC_AXE,2,1,Came2,0,1,0,1.0,1.0,0,0);
LOADCAM (Esclave,Maitre,SRC_AXE,3,1,Came3,0,1,0,1.0,1.0,0,0);
STARTCAM (1);
STARTCAM (2);
STARTCAM (3);
Enchainement rversible de came :
Lorsque l'on dmarre plusieurs cames lies, on peut revenir jusqu'au dbut de la
came (ici dans la came 3, on peut revenir jusque dans la 1)
LOADCAM (Esclave,Maitre,SRC_AXE,1,1,Came1,0,1,0,1.0,1.0,2,0);
LOADCAM (Esclave,Maitre,SRC_AXE,2,1,Came2,0,1,0,1.0,1.0,3,1);
LOADCAM (Esclave,Maitre,SRC_AXE,3,1,Came3,0,1,0,1.0,1.0,0,2);
STARTCAM (1);
Le calcul des profils de came tient compte de :

268

Programmation du contrle de mouvement


des points de la came calcule et de leur type (droite, manuel, auto)
du fait que la came soit mono coup ou non (chane les premiers points avec les
derniers)
des gains matres et esclaves
Le calcul des profils de came ne tient PAS compte de :
les informations came suivante/came prcdente. Un point en mode auto en bout
de came sera systmatiquement pris avec une pente nulle, assurant de facto un
raccord correct entre 2 cames lies par suivant/prcdent, mais n'tant pas
forcment aussi optimis que tous les points dans une seule came.

Lancement d'une came


STARTCAM

dmarre une came.

Exemple 1 : came de 6 points, infinie, non mono-coup


(* Dfinition du tableau dans le tableau de rel TabCam *)
MaCame.X [1] := 0.0;
MaCame.Y [1] := 0.0;
MaCame.dX [1] := 0.0;
MaCame.dY [1] := 0.0;
MaCame.X [2] := 30.0;
MaCame.Y [2] := 20.0;
MaCame.dX [2] := 30.0;
MaCame.dY [2] := 0.0;
MaCame.X [3] := 90.0;
MaCame.Y [3] := 76.0;
MaCame.dX [3] := 90.0;
MaCame.dY [3] := 0.0;
MaCame.X [4] := 270.0;
MaCame.Y [4] := 283.0;
MaCame.dX [4] := 270.0;
MaCame.dY [4] := 0.0;
MaCame.X [5] := 330.0;
MaCame.Y [5] := 338.0;
MaCame.dX [5] := 330.0;
MaCame.dY [5] := 0.0;
MaCame.X [6] := 360.0;
MaCame.Y [6] := 360.0;
MaCame.dX [6] := 360.0;
MaCame.dY [6] := 0.0;
MaCame.Nb := 6;
(* Chargement de la came *)
LOADCAMI (Esclave, Maitre, SRC_AXE, 1, 1, MaCame, 0, 1, 0,
1.0, 1.0, 0, 0);

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
*)
...

Exemple 2 : enchanement de cames


Soit un cycle compos de 3 cames : une came C1 de profil d'entre mono-coup,
une came C2 de profil rptitif non mono-coup, une came C3 de profil de
sortie mono-coup.
La came C1 est enchane C2 et C2 est enchane C3.
...
(* Chargement de la came n1 : 10 points, mono-coup,
enchane sur came n2 *)
LOADCAM (Esclave, Maitre, SRC_AXE, 1, 0, Came1, 1, 1, 1, 1.0,
1.0, 2, 0);
(* Chargement de la came n2 : 76 points, non mono-coup,
enchane sur came n3 *)
LOADCAM (Esclave, Maitre, SRC_AXE, 2, 0, Came2, 0, 1, 0, 1.0,
1.0, 3, 1);
(* Chargement de la came n3 : 6 points, mono-coup *)
LOADCAM (Esclave, Maitre, SRC_AXE, 3, 0, Came3, 1, 1, 0, 1.0,
1.0, 0, 3);
(* Lancement de la came n1 => excution de la came1 puis de
la came2 *)
STARTCAM (1);
WAIT (CAMNUM_S (Esclave)=2); (* Attente excution de la came2
*)
...
WAIT (INP (InfoStop)=1); (* Attente demande d'arrt *)
ENDCAM(Esclave); (* Arrt came2 en fin profil et enchanement
sur came3 *)
...
WAIT (CAM_S (Esclave)=0); (* Attente came 3 termine *)

Etat de la came
Trois fonctions permettent de connatre l'tat courant d'une came :
CAM_S

indique le numro de came et de segment en cours


d'excution.

CAMNUM_S

indique le numro de came en cours d'excution.

CAMSEG_S

indique le numro d'quation de la came en cours


d'excution.

Attention : on peut obtenir un ala si on lit sparment CAMNUM_S et


CAMSEG_S, utiliser dans ce cas CAM_S.

270

Programmation du contrle de mouvement

Arrt d'une came


ENDCAM

arrte le mouvement de l'axe <Esclave> la fin de la came.

BREAKCAM

arrte le mouvement de synchronisation en cours et passe


au suivant sans dsynchronisation.

BREAKCAM_POS

retourne la position de l'axe lors du dernier BREAKCAM ou


STOPS.

Remarque :
Le retour d'une came vers une came boucle transforme cette dernire en came
mono-coup.

Modification de points d'une came


CAMREADPOINT

calcule la position de l'esclave <Position Esclave> dans la


came, correspondant la position du matre <Position
Matre>.

LOADCAMPOINT

modifie un point de came la vole.

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

fonction CAMREADPOINT prend en compte ce dcalage). Le dcalage du matre


peut se faire progressivement par l'application d'un paramtre d'acclration. Le
dcalage est appliqu directement si le mouvement synchro n'est pas en cours ou
si l'axe n'est pas embray.
MASTEROFFSET

dcale dynamiquement la position du matre utilise par la


came absolue

MASTEROFFSET_S

retourne la valeur courante de l'offset matre.

ICORRECTIONA

applique les compensations effectuer pour se situer au


point ad hoc.

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

dcale dynamiquement la position de l'esclave.

SLAVEOFFSET_S

retourne la valeur courante de l'offset esclave.

ICORRECTIONA

applique les compensations effectuer pour se situer au


point ad hoc.

Came dclenche sur entre capture


Il est possible d'excuter des cames synchronises en utilisant les fonctions
TRIGGER
Fonction de compensation / dcompensation
Introduction
Les fonctions de compensation / dcompensation permettent d'effectuer un dphasage dynamique
sur un axe esclave li un axe matre. La liaison entre les deux axes doit tre de type arbre
lectrique (GEARBOX), synchronisation (MOVS) ou came (CAM).
Ce dphasage est un mouvement synchronis, son application dpend donc du mouvement du
matre.

272

Programmation du contrle de mouvement

Liste des fonctions


ICORRECTION

applique un mouvement de correction sur un axe esclave


pendant une distance de l'axe matre.

ICORRECTION_S

retourne l'tat du cycle de compensation.

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).

Liste des fonctions


ADDMOV

Cette fonction permet de superposer sur un axe esclave ses


propres mouvements avec ceux effectu par un axe matre.

ADDSTOP

Cette fonction permet de dtruire les liens de superposition de


mouvements de l'axe esclave.

Exemple
HOME (Axe_Y, 0);

273

Printed Documentation

HOME (Axe_X, 0);


ADDMOV (Axe_X, Axe_Y, SRC_AXE); (* activation du lien de superposition *)
STTIP (Axe_Y); (* lancement axe Y => axe X se dplace galement *)
...
WAIT (INP (StartCycle));
MOVR (Axe_X, StepCycle); (* superposition d'un mouvement de distance StepCycle *)
...
STOP (Axe_X);
ADDSTOP (Axe_X); (* arrt du lien de superposition *)
Arrt d'une liaison matre / esclave
Introduction
Pour arrter une liaison matre / esclave, il faut utiliser les fonctions STOP, SSTOP ou STOPS sur
l'axe esclave.
Les fonctions STOP et SSTOP arrtent l'axe spcifi via la dclration courante alors que STOPS
utilise une pente de dclration calcule automatiquement permettant d'attendre le point d'arrt
voulu.
Toutes ces fonctions vident le buffer des mouvements concernant l'axe esclave.

Liste des fonctions


STOP

arrte l'axe avec la dclration courante.

SSTOP

arrte l'axe avec la dclration courante (non bloquant).

STOPS

arrte l'axe et permet l'axe esclave de dclrer pour atteindre


la position <Pos.esclave>.

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

Programmation du contrle de mouvement

Liste de fonctions
INTERPOLATE2D

dmarre une interpolation 2D.

STTL2D

lance un mouvement linaire en deux dimensions.

TRAJL2D

lance un mouvement linaire pouvant tre enchan en deux


dimensions.

INTERPOLATED3D

dmarre une interpolation 3D.

STTL3D

lance un mouvement linaire en trois dimensions.

TRAJL3D

lance un mouvement linaire pouvant tre enchan en trois


dimensions.

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

dmarre une interpolation 2D.

STTC2D

lance un mouvement circulaire en deux dimensions.

TRAJC2D

lance un mouvement circulaire pouvant tre enchan en deux


dimensions.

INTERPOLATE3D

dmarre une interpolation 3D.

STTC3D

lance un mouvement circulaire en trois dimensions.

TRAJC3D

lance un mouvement circulaire pouvant tre enchan en trois


dimensions.

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

(* Dclaration de mon interpolation Axe_Interpo selon les axes Axe_X et Axe_Y *)


INTERPOLATE2D (Axe_Interpo, Axe_X, Axe_Y);
(* Ralisation d'un cercle *)
MERGE() ;
TRAJC2D(Interpo_2D, CentreX, CentreY, RX, RY, 0, 1) ;
TRAJC2D(Interpo_2D, CentreX, CentreY, -RX, -RY, 0, 1) ;

Interpolation hlicodale

Introduction
Les fonctions STTH3D et TRAJH3D permettent d'effectuer des interpolations hlicodales.

Liste de fonctions
INTERPOLATE3D

dmarre une interpolation 3D.

STTH3D

lance un mouvement circulaire en trois dimensions.

TRAJH3D

lance un mouvement circulaire pouvant tre enchan en trois


dimensions.

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) ;

Acclration / Vitesse rsultante


Comme en positionnement, un mouvement interpol possde une phase d'acclration, vitesse
plateau, dclration. Ces valeurs correspondent des acclrations et vitesse rsultantes des
axes interpols.
L'instruction ACC (<Axe_Interpo>, <Expression>) permet d'affecter une valeur d'acclration
rsultante. Elle est prise en compte tout moment.
L'instruction DEC (<Axe_Interpo>, <Expression>) permet d'affecter une valeur de dclration
rsultante. Elle est prise en compte tout moment.
L'instruction VEL (<Axe_Interpo>, <Expression>) permet d'affecter une valeur de vitesse rsultante.
Elle est prise en compte tout moment.
Si l'instruction MERGE (< Axe_Interpo >,1) est excut et que l'on charge plusieurs TRAJL, TRAJC
dans le buffer de la carte d'axe, la phase d'acclration sera effective jusqu' ce que la vitesse soit
atteinte et ensuite les mouvements tant enchans, on passera d'un mouvement l'autre sans
passer par une vitesse nulle. La phase de dclration s'effectuera sur le ou les derniers
mouvements.
' Attention : sur des pices qui possdent des arcs de cercle et sur lesquelles on travaille en
mouvements enchans (MERGE(Axe_Inter,1), l'acclration relle peut devenir trs importante :
Accl (t) = - (Vi / r) * Cos (Tta i + ((Vi / r) * t))

276

Programmation du contrle de mouvement

Accl. Maxi = - (Vi / r)


Avec Vi = vitesse initiale avant l'arc de cercle en m / s
r = rayon de l'arc en m
Accl en m / s

Accl maxi = - (0.5 / 0.01) = -25 m/s


Arrt d'un mouvement d'interpolation
Pour arrter un mouvement interpol en cours de trajectoire, il faut utiliser l'instruction STOP
(<Axe_Inter >). Les axes s'arrtent en suivant la trajectoire interpole via la pente de dclration
donne par l'instruction ACC (<Axe_Inter>). Le buffer de mouvement est vid : on ne pourra donc
pas faire de reprise de trajectoire.
L'instruction est bloquante pour la tche tant que le mouvement n'est pas termin (condition
MOVE_S(Axe_Inter)=0). 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*)
...
STOP (Axe_Inter);

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

Programmation du contrle de mouvement

STTC2D (Axe_Interpo, 10.0, 10.0, 0.0, 10.0, 0, 0) ; (* Dplacement en


140,20 sens anti-horaire *)
STTL2D (Axe_Interpo, 0.0, 60.0, 0) ; (* Dplacement interpol en 140,80
*)
STTC2D (Axe_Interpo, -20.0, 0.0, -10.0, 0.0, 0, 0) ; (* Dplacement en
120,80 sens anti-horaire *)
STTC2D (Axe_Interpo, -10.0, -10.0, -10.0, 0.0, 1, 0) ; (* Dplacement en
110,70 sens horaire *)
STTL2D (Axe_Interpo, -90.0, 0.0, 0) ; (* Dplacement interpol en 20,70
*)
STTC2D (Axe_Interpo, -10.0, -10.0, 0.0, -10.0, 0, 0) ; (* Dplacement en
10,60 sens anti-horaire *)
STTL2D (Axe_Interpo, 0.0, -40.0, 0) ; (* Dplacement interpol en 10,20
*)
STTC2D (Axe_Interpo, 10.0, -10.0, 10.0, 0.0, 0 ,0) ; (* Dplacement en
20,10 sens anti-horaire *)
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ; (* Attente de la fin des
dplacements *)
OUTP (Depose, 0) ; (* Dsactivation *)
DELAY (ArretDepose) ; (* Tempo *)
STTA (X, 0.0) ; (* Retour origine *)
STTA (Y, 0.0) ;
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ;
Dans cet exemple, les axes X and Y sont utiliss pour dposer un cordon de colle. "Depose" est la
sortie qui commande la dpose de colle. Aprs un mouvement de l'origine vers la premire position
(20,10), la dpose commence en dcrivant la figure. Quand le mouvement rejoint le point de
dpart, la sortie est dsactive et les axes se replacent l'origine.

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)

; (* Vitesse en mode positionnement *)


;
; (* Acclration et dclration *)
;
; (* en mode positionnement *)
;

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

Programmation du contrle de mouvement

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

5. Vel_Limit[] : tableau d'activation des limites de vitesse des diffrents axes


6. Vel_Limit_Value [] : tableau des valeurs de limite de vitesse des diffrents axes
7. Limit_Type [] : TADAPTSPEED pour que l'interpolation suive le plus prcisment possible
le profil de vitesse ou TADAPTTRAJ pour privilgi la trajectoire
8. Geo_Count : nombre de transformation
9. Geo_ReverseCount : nombre de transformation inverse
10. Geo : tableau de transformation de type tGeoEntry
11. Geo_Reverse : tableau de transformation inverse de type tGeoEntry
Les paramtres ncessaires la description des transformations gomtrique sont contenus dans
une structure tGeoEntry :
1. Input : entres de la transformation
2. Output : sorties de la transformation
Les entres et sorties de la transformation peuvent prendre les valeurs suivantes :

0 : NULL, aucune donne, non utilis

1:X

2:Y

3:Z

4...9 => invalide (ventuelles autres variables spciales d'entres

11

20

100...255 => Entre "de calcul" permettant de relier une entre une sortie.

19 => Axe de sortie 1 9


99 => invalide

3. Geotype : type de transformation :

TINVALID gnre une erreur

TROTATESERIAL effectue 3 rotations successives du repre

TROTATEPARALELL effectue 3 rotations du repre par rapport un repre fixe

TTRANSLATE effectue une translation du repre

TSCALE retourne l'orientation de la direction d'une trajectoire

4. Param : la valeur appliquer la transformation.

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

Programmation du contrle de mouvement

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

Programmation du contrle de mouvement

Exemples d'interpolation tendue

Dcoupe avec outil tangentiel

285

Printed Documentation

Modle gomtrique direct :

Modle gomtrique inverse :

286

Programmation du contrle de mouvement

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

Programmation du contrle de mouvement

STTA (Y, 10.0) ;


STTA (OutilTan, 0.0) ;
WAIT ((MOVE_S (X) = 0) And (MOVE_S (Y) = 0) And (MOVE_S (OutilTan) = 0) )
;
(* OUTP (Depose, 1) ; Activation *)
DELAY (MarcheDepose) ; (* Tempo *)
STTL2D (Axe_Interpo, 110.0, 0.0, 0) ; (* Dplacement interpol en 130,10
*)
STTC2D (Axe_Interpo, 10.0, 10.0, 0.0, 10.0, 0, 0) ; (* Dplacement en
140,20 sens anti-horaire *)
STTL2D (Axe_Interpo, 0.0, 60.0, 0) ; (* Dplacement interpol en 140,80
*)
STTC2D (Axe_Interpo, -20.0, 0.0, -10.0, 0.0, 0, 0) ; (* Dplacement en
120,80 sens anti-horaire *)
STTC2D (Axe_Interpo, -10.0, -10.0, -10.0, 0.0, 1, 0) ; (* Dplacement en
110,70 sens horaire *)
STTL2D (Axe_Interpo, -90.0, 0.0, 0) ; (* Dplacement interpol en 20,70
*)
STTC2D (Axe_Interpo, -10.0, -10.0, 0.0, -10.0, 0, 0) ; (* Dplacement en
10,60 sens anti-horaire *)
STTL2D (Axe_Interpo, 0.0, -40.0, 0) ; (* Dplacement interpol en 10,20
*)
STTC2D (Axe_Interpo, 10.0, -10.0, 10.0, 0.0, 0 ,0) ; (* Dplacement en
20,10 sens anti-horaire *)
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ; (* Attente de la fin des
dplacements *)
(* OUTP (Depose, 0) ; Dsactivation *)
DEB_Dscope(2,x,0);
DELAY (ArretDepose) ; (* Tempo *)
;
STTA (X, 0.0) ; (* Retour origine *)
STTA (Y, 0.0) ;
WAIT ( (MOVE_S (X) = 0) And (MOVE_S (Y) = 0) ) ;
HALT (T_PRINC,0) ;

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)

Liste des fonctions


CAPTURE

Lancement de capture de position

CAPTURECANCEL

Annule une capture

CAPTUREIMD

Lancement de capture de position sur un variateur IMD

289

Printed Documentation

CAPTUREEVENT

Associe un vnement la capture

DISABLERECALE

Dsactivation du recalage

ENABLERECALE

Fonction de recalage automatique

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

'tat d'une entre grce

La syntaxe est : IF (<Condition>) THEN <Action1> ELSE <Action2> END_IF


La structure IF
THENELSE est utilise
validation de la <Condition> permet d'excuter l'<Action1>. Dans le cas contraire, c'est l'<Action2>
qui est excut.
Exemple :
IF (Inp(Bouton Depart)=On) THEN (* Test de l'tat de l'entre *)
(* Bouton Depart *)
Out(LedMarche, ON) ; (* Action associe Bouton Depart=On *)
RUN(Cycle) ;
ELSE
Out(LedMarche, OFF) ; (* Action associe Bouton Depart=Off *)
HALT (T_Cycle) ;
END_IF;
Entres/Sorties analogiques
Lecture d'une entre
La fonction ADC est utilise pour lire une entre analogique.
Ecriture d'une sortie
La fonction DAC est utilise pour crire sur une sortie analogique.
Lecture d'une sortie
La fonction DAC_S est utilise pour lire une entre analogique.

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 :

tche vnementielle systme (1 seule par projet)

tche vnementielle utilisateur (nombre non limit)

Tche vnementielle systme


Principe de la tche vnementielle systme
Elle possde une file d'attente. Chaque vnement systme est plac dans cette file d'attente
(FIFO), tant que la file est non vide, la tche vnement systme est dclenche (elle doit donc
vider cette file).

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

Retourne le dernier vnement de la pile systme

GETSYSTEMEVENT

Retourne le premier vnement de la pile systme

Tche vnementielle utilisateur


Principe de la tche vnementielle utilisateur

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.

Mode avec file d'attente

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).

Plusieurs tches peuvent attendre un vnement utilisateur.


Plusieurs tches peuvent attendre le mme vnement utilisateur.
Chaque tche n'attend qu'un seul vnement
Une tche vnement utilisateur non associe une liste d'vnement, ignore les vnements
qu'elle reoit lorsqu'elle est en train de s'excuter.
Une tche vnement utilisateur associe une liste d'vnement, conserve les vnements
qu'elle reoit et se remet prte automatiquement tant que tous les vnements n'ont pas t traits.
Si la tche ne parvient pas traiter tous ses vnements en attente, une erreur systme est
dclenche

Liste des fonctions pouvant gnrer un vnement utilisateur :


SIGNAL

Gnration d'vnement

CAPTUREEVENT

Associe un vnement la capture

CAMBOX

Bote cames

COUNTEREVENT

Associe un vnement au compteur

Liste des fonctions pour grer les tches vnementielles utilisateurs


GETUSEREVENTPARAM

Rcupre le paramtre associ au dernier vnement

SETTASKEVENTLIST

Associe une liste d'vnement

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

Associe un vnement au compteur

COUNTERSET

Initialise le compteur une valeur

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

Etat d'une boite came

CAMBOXOUT

Modifie une sortie de bote cames

CAMBOXSEG

Modifie un segment de bote cames

SETINP

Force l'tat d'une entre

STARTCAMBOX

Excute une bote came

STOPCAMBOX

Arrte une bote came

Les types ncessaires la dclaration des boites cames sont :


tSegmentDef

Permet la dclaration des segments

tOutputDef

Permet la dclaration des sorties

tSegmentMode

Slectionne un mode pour les segments

tOutTarget

Slectionne le type de sortie

Exemple de dclaration de boite cames :

295

Printed Documentation

Dans cet exemple, l'axe <Axe_X> est un axe modulo 360


La boite came s'crit donc de la faon suivant :

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

Liste des oprateurs et instructions


Par catgorie
Oprations de base
Voici les principaux lments de langage pour la manipulation de donnes:
Assignation
Accs aux bits d'un mot
Parenthses
Appel de fonction
Appel de bloc fonctionnel
Voici les principaux lments de langage pour le contrle de l'excution d'un programme:
Etiquettes
Sauts
RETURN
Fonctions standards IEC61131-3
Fonction de conversion de type

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

partie entire (identique l'IMD)

FRAC

partie fractionnelle (identique l'IMD)

NEG

Inverse le signe d'un nombre

SGN

signe d'un nombre

FIXTOREAL

convertit un nombre virgule fixe en rel

REALTOFIX

convertit un rel en nombre virgule fixe

UDINTSWAP

inversion de mots

Voici les fonctions trigonomtriques standard:


SIN

Sinus

COS

Cosinus

TAN

Tangente

ASIN

arc-sinus

ACOS

arc-cosinus

ATAN

arc-tangente

Fonctions de dcalage de bit


Voici les fonctions standard pour la manipulation de registres dcalage :
SHL

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

Inversion boolen (oprateur unaire)

Fonctions de slection

300

Liste des oprateurs et instructions

MIN

minimum de deux valeurs entires

MAX

maximum de deux valeurs entires

LIMIT

limite un entier entre deux bornes

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

longueur courante d'une chane

LEFT

extrait des caractres gauche dans une chane

RIGHT

extrait des caractres droite dans une chane

MID

extrait des caractres dans une chane

CONCAT

concatnation de deux chanes de caractres

INSERT

insre des caractres dans une chane

DELETE

supprime des caractres dans une chane

REPLACE

remplace des caractres dans une chane

FIND

trouve des caractres dans une chane

Blocs fonctionnels standards IEC61131-3


Bistable

RS

Bascule avec RESET prioritaire

SR

Bascule avec SET prioritaire

Dtection de front

R_TRIG

Dtection de front montant

F_TRIG

Dtection de front descendant

Compteur

CTU

Compteur

CTD

Dcompteur

CTUD

Compteur/Dcompteur

301

Printed Documentation

Temporisateur

TON

Temporisateur l'enclenchement

TOF

Temporisateur au dclenchement

TP

Temporisateur d'impulsions

Fonctions de gestion des tches


Gestion des tches
CONTINUET

Continue l'excution d'une tche

HALT

Arrte une tche

GETLASTSYSEVENT

Retourne le dernier vnement de la pile systme

GETSYSTEMEVEN

Retourne le premier lment de la pile systme

INIT_S

Retourne l'tat de la tche d'Initialisation

INITGETCONTEXT

Retourne le contexte de la tche d'Initialisation

INITSETRESULT

Force la valeur de retour de la tche d'Initialisation

NEXTTASK

basculer immdiatement vers la tche suivante

RUN

Lance une tche

SIGNAL

Gnre un vnement

STATUS_S

Etat d'une tche

SUSPEND

Suspend une tche

Fonctions de mouvement SERAD


Controle de l'axe
ACC

Acclration

ACC_T

Retourne la valeur de ACC

ACCP

Acclration en pourcentage

AXIS

Contrle la boucle d'asservissement

AXIS_S

Lit l'tat de la boucle d'asservissement

AXISREQUEST_S

Etat de la demande d'asservissement

BUFMOV_S

Nombre de mouvement dans le buffer

CLEAR

Met zro la position de l'axe

CLEARAUX

Met zro la position de l'auxiliaire

CLEARAXISFAULT

Acquitte les dfauts d'un axe

CURRENT

Force la consigne de courant

CURRENT_S

Retourne le courant actuel

DEC

Dclration

DEC_T

Retourne la valeur de DEC

DECP

Dclration en pourcentage

FE_S

Valeur courante de l'erreur de poursuite

FEMAX_S

Limite d'erreur de poursuite atteinte

GETMODE

Retourne le mode de fonctionnement d'un axe

SETMODE

Force de mode de fonctionnement d'un axe

302

Liste des oprateurs et instructions

HOME

Prise d'origine

HOME_S

Etat de la prise d'origine

HOMEAUX

Prise d'origine sur le codeur auxiliaire

HOMEAUX_S

Etat de la prise d'origine du codeur auxiliaire

HOMEAUXCANCEL

Annule la prise d'origine sur l'auxiliaire

HOMEAUXREQUEST_S

Etat de demande de prise d'origine sur l'auxiliaire

HOMECANCEL

Annule la prise d'origine

HOMEREQUEST_S

Etat de demande de prise d'origine

MERGE

Dfinit l'enchanement

MOVE_S

Etat du mouvement

ORDER

Force le numro d'ordre du prochain mouvement

ORDER_S

Numro d'ordre courant

ORDER_T

Numro d'ordre du dernier mouvement dpos

POS

Modifie la position atteindre

POS_S

Position relle

POS_T

Retourne la position atteindre

POSAUX_S

Position relle de l'auxiliaire

POSERROR_S

Indique une erreur de mouvement

SPEED

Force la consigne de vitesse

SPEED_S

Retourne la vitesse courant

STTH

Prise d'origine non bloquante

STTHAUX

Prise d'origine sur l'auxiliaire non bloquante

TORQUE

Force la consigne de couple

TORQUE_S

Retourne la couple courant

VEL

Vitesse

VEL_T

Retourne la valeur de VEL

VEL_S

Vitesse courante

VELAUX_S

Vitesse courante de l'auxiliaire

VELP

Vitesse en pourcentage

Positionnement
MOVA

Mouvement absolu

MOVR

Mouvement relatif

SSTOP

Arrt d'un axe sans attente

STOP

Arrt d'un axe

STTA

Lance un mouvement absolu

STTIM

Lance un mouvement infini en sens moins

STTIP

Lance un mouvement infini en sens plus

STTR

Lance un mouvement relatif

TRAJA

Trajectoire absolue

TRAJIM

Lance un mouvement infini en sens moins

TRAJIP

Lance un mouvement infini en sens plus

TRAJR

Trajectoire relative

Mouvements dclenchs

303

Printed Documentation

TRIGGERAXIS_S

Retourne l'tat d'un trigger d'un axe

TRIGGERAXISSET

Force le dclenche immdiat d'un mouvement

TRIGGERF

Dclenche le prochain mouvement sur une fentre

TRIGGERI

Dclenche le prochain mouvement sur changement d'tat d'une entre.

TRIGGERP

Dclenche le prochain mouvement sur le passage du matre une


position.

Synchronisation
BREAKCAM

Arrte de la came en cours

BREAKCAM_POS

Retourne la position du matre ou de l'esclave lors du dernier breakcam

CAM_S

Etat de la came

CAMNUM_S

Numro de la came en cours d'excution

CAMREADPOINT

Retourne la position esclave

CAMSEG_S

Numro d'quation de la came en cours d'excution

ENDCAM

Arrt de la came sa fin

FILTERMASTER

Applique un filtrage lors de mouvement synchrone

GEARBOX

Arbre lectrique

GEARBOXRATIO

Modifie le rapport de rduction d'un arbre lectrique

GEARBOXRATIO_S

Retourne le rapport de rduction d'un arbre lectrique

ICORRECTION

Fonction de compensation

ICORRECTION_S

Etat de la compensation

ICORRECTIONA

Fonction de compensation

LOADCAM

Charge une came de la CF-CARD

LOADCAMI

Charge une came de la mmoire

LOADCAMPOINT

Modification de points d'une came

MASTEROFFSET

Offset matre sur une came absolue

MASTEROFFSET_S

Valeur courante du dcalage

MOVS

Mouvement synchronis

READCAM

Lit une came

SLAVEOFFSET

Offset esclave sur une came absolue

SLAVEOFFSET_S

Valeur courante du dcalage

STARTCAM

Lance l'excution d'une came

STOPS

Permet de stopper une synchronisation en cours

STOPS_S

Etat du mouvement synchronis

WRITECAM

Ecrit une came

Interpolation

INTERPOLATE

Dmarre une interpolation

INTERPOLATE2D

Dmarre une interpolation 2D

INTERPOLATE3D

Dmarre une interpolation 3D

STTL2D

Dmarre un mouvement linaire 2D

STTL3D

Dmarre un mouvement linaire 3D

304

Liste des oprateurs et instructions

TRAJL2D

Dmarre une trajectoire linaire 2D

TRAJL3D

Dmarre une trajectoire linaire 3D

STTC2D

Dmarre un mouvement circulaire 2D

STTC3D

Dmarre un mouvement circulaire 3D

TRAJC2D

Dmarre une trajectoire circulaire 2D

TRAJC3D

Dmarre une trajectoire circulaire 3D

STTH3D

Dmarre un mouvement hlicodal

TRAJH3D

Dmarre une trajectoire hlicodale

Capture
CAPTURE

Lancement de capture de position

CAPTURECANCEL

Annule une capture

CAPTUREIMD

Lancement de capture de position sur un variateur IMD

CAPTUREEVENT

Associe un vnement la capture

REG_S

Etat de la capture

REGPOS_S

Position capture

Fonctions automates SERAD


Automate
Entres / sorties logiques
INP

Lecture d'une entre TOR

INPB

Lecture d'un bloc de 8 entres

INPW

Lecture d'un bloc de 16 entres

OUTP

Ecriture d'une sortie

OUTP_S

Lecture d'une sortie TOR

OUTB

Ecriture d'un bloc de 8 sorties

OUTB_S

Lecture d'un bloc de 8 sorties

OUTW

Ecriture d'un bloc de 16 sorties

OUTW_S

Lecture d'un bloc de 16 sorties

Entres / sorties analogiques


ADC

Entres analogiques

DAC

Sorties analogiques

Temporisations
DELAY

Attente passive

WAIT

Attente d'une condition

Evnements
GETLASTSYSEVENT

Retourne le dernier vnement de la pile systme

GETSYSTEMEVENT

Retourne le premier vnement de la pile systme

GETUSEREVENTPARAM

Rcupre le paramtre associ au dernier vnement

SETTASKEVENTLIST

Associe une liste d'vnement

SIGNAL

Gnration d'vnement

305

Printed Documentation

Compteurs
COUNTER

Configuration du compteur

COUNTER_S

Lecture du compteur

COUNTEREVENT

Associe un vnement au compteur

COUNTERSET

Initialise le compteur une valeur

STARTCOUNTER

Dmarre le compteur

STOPCOUNTER

Arrte le compteur

Boites cames
CAMBOX

Bote cames

CAMBOX_S

Etat d'une boite came

CAMBOXOUT

Sortie de bote cames

CAMBOXSEG

Segment de bote cames

SETINP

Force l'tat d'une entre

STARTCAMBOX

Excute une came

STOPCAMBOX

Arrte une bote came

Mots clefs de dclaration


Mots clefs de dclaration

TYPE

Dclaration d'un nouveau type

END_TYPE

Fin de dclaration de type

VAR_EXTERNAL

Dclaration des variables externes

VAR_GLOBAL

Dclaration des variables globales

VAR

Dclaration des variables locales

VAR_IN

Dclaration des variables d'entres

VAR_IN_OUT

Dclaration des variables entres/sorties

VAR_OUTPUT

Dclaration des variables de sorties


Fin de dclaration de variable

END_VAR

Instructions du langage IL
Instructions du langage IL
Instructions de programmation:
Parenthses
CAL <Instance name>

Appel de bloc fonctionnel

CALC <Instance name>


CALCN <Instance
name>

Saut inconditionnel

JMP <Label>
JMPC <Label>
JMPCN <Label>
RET
RETC
RETCN

306

Saut la fin du programme

Liste des oprateurs et instructions

Instructions et oprations boolennes:


NOT
ET

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

Instructions du registre CR:


LD ANY

charge l'oprande

LDN ANY_BIT
stocke le rsultat

ST ANY
STN ANY_BIT
Oprateurs logiques:
GT

Comparaison "suprieur "

GE

Comparaison "suprieur ou gal "

EQ

Egalit

NE

Ingalit

LE

Comparaison "infrieur ou gal "

LT

Comparaison "infrieur "

Instructions du langage ST
Instructions du langage ST
CASE

Slectionne un groupe d'noncs

OF
END_CASE
IF

Excution conditionnelle d'noncs

THEN
ELSE
ELSEIF
END_IF
FOR

Itre des noncs

307

Printed Documentation

TO
BY
DO
END_FOR
REPEAT

Rpte des noncs jusqu' ce que la condition soit vrai

UNTIL
END_REPEAT
WHILE

Rpte des noncs tant que la condition est vrai

END_WHILE
EXIT

Quitte une boucle d'itrations

Autres
Flash, Scurit, Divers
Afficheur
DISPLAY

Afficheur 7 segments

Scurit
WATCHDOGOFF

Ouvre le chien de garde

WATCHDOGON

Ferme le chien de garde

WATCHDOG_S

Retourne l'tat du chien de garde

WDTASKRAZ

Remet 0 le nombre de dclenchement du chien de garde d'une tche

WDTASK_S

Retourne le nombre de dclenchement du chien de garde d'une tche

Horloge
LOADTIMER

Charge un TIMER

TIMEH

Temps coul depuis le dmarrage du MPC

TIMEL

Temps coul depuis le dmarrage du MPC

TIMER

Vrifie si le TIMER est coul

Paramtres
READ

Lecture de la table CANopen d'un priphrique

READPARAM

Lecture de la table CANopen d'un priphrique

READPARAMR

Lecture de la table CANopen d'un priphrique

READR

Lecture de la table CANopen d'un priphrique

SECURITY

Dfinit les actions de scurits

SECURITYFEMAX

Gestion Drive Ready d'un axe

WRITE

Ecriture dans la table CANopen d'un priphrique

WRITEPARAM

Ecriture dans la table CANopen d'un priphrique

WRITEPARAMR

Ecriture dans la table CANopen d'un priphrique

WRITER

Ecriture dans la table CANopen d'un priphrique

308

Liste des oprateurs et instructions

Systme
RESTART

Redmarrage du systme

RESTART_S

Retourne la raison du dernier dmarrage

VERSION

Version de l'Operating System

RAMTOFLASH

Copie-le contenue de la BBM en FLASH

CLEARTOFLASH

Efface la mmoire FLASH

FLASHOK_S

Retourne l'tat de la copie en FLASH

RAMOK_S

Indique l'tat de la BBM

BATERY_S

Indique l'tat de la pile de la BBM

IOFAULT_S

Indique si les entres / sorties sont en surcharges

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

Modifie un bit d'une variable BYTE

SETBITW

Modifie un bit d'une variable WORD

SETBITD

Modifie un bit d'une variable DWORD

GETBITB

Retourne un bit d'une variable BYTE

GETBITW

Retourne un bit d'une variable WORD

GETBITD

Retourne un bit d'une variable DWORD

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) *)

Liste des oprateurs et instructions

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

(* Q = IN1 + (IN2 * IN3) - IN4 *)

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 *)

Liste des oprateurs et instructions

LD
ST

IN2
Q2

(* ces instructions ne sont pas excutes *)


(* si IN1 = TRUE *)

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

Branchement si le rsultat courant = TRUE


Identique JMPNC

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

Liste des oprateurs et instructions

(* 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
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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

<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

Liste des oprateurs et instructions

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

Calcule la valeur absolue

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

(* La fonction est excute seulement si EN est TRUE *)


(* ENO a la mme valeur que EN *)

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

Entres analogiques IMD

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

Cette fonction retourne la tension d'une entre analogique +/- 10 V.


<Axe> : nom de l'axe
<Entre> doit reprsenter le numro de l'entre analogique :

0 correspond l'entre CONSIGNE du variateur (ANA1)

1 correspond l'entre LIMITE du variateur (ANA2)

<Variable> contient la valeur retourne par la fonction.


Exemple ST
VAR
Temperature : REAL;
END_VAR
Temperature:= ADC (Axe_X, 1); (* Temprature est gale la tension sur
l'entre ANA2 du variateur Axe_X *)
Voir aussi
DAC
ADD

Addition (langage IL)

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

Arrt superposition de mouvements

Liste des oprateurs et instructions

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

est dfini par la norme IEC61131


-3.

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

Voir AND avec l'entre 2 inverse


ASIN

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

Liste des oprateurs et instructions

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

Contrle la boucle d'asservissement

Liste des oprateurs et instructions

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

Lit l'tat de la demande d'asservissement

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

Liste des oprateurs et instructions

If (AXIS_S (Axe_X) =0) Then


FlagDefaut := 1;
Else
FlagDefaut := 0;
End_If;

(* 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

Arrt du mouvement de synchronisation

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

Position aprs un BREAKCAM / STOPS

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 :

0 pour la position de l'esclave

1 pour la position du matre

2 pour l'erreur de poursuite

Voir aussi
BREAKCAM
BUFMOV_S
Syntaxe
<Variable> := BUFMOV_S (<Axe>)
Types accepts
<Axe> : tPeripheral
<Variable> : UDINT
Description

340

Nombre de mouvement dans le buffer

Liste des oprateurs et instructions

Cette fonction retourne le nombre de mouvements en attente dans le buffer de l'axe.


Le mouvement en cours d'excution n'est pas comptabilis par cette fonction.
Cette fonction peut tre utilise aprs avoir lanc des mouvements, pour savoir si un mouvement
est fini.
<Axe> : nom de l'axe
Remarque
Dans le cas o le buffer de mouvement se trouve plein, la tche se bloque jusqu' ce qu'une place
soit libre (ce mode de fonctionnement dgrade les performances du MPC).
Exemple ST
STTR(Axe_X, 100.0) ;
STTR(Axe_X, 50.0) ;
STTR(Axe_X, 50.0) ;
WAIT (BUFMOV_S(Axe_X) <2) ; (* Attendre la fin du premier mouvement *)
BY
Voir FOR
BYTE
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
Appel de bloc fonctionnel (langage IL)

CAL
Voir Appel d'un bloc de fonction

Appel de bloc fonctionnel (langage IL)

CALC
Voir Appel d'un bloc de fonction

Appel de bloc fonctionnel (langage IL)

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

Voir CAMNUM_S et CAMSEG_S pour le dtail des valeurs possibles.


Exemple ST
VAR
NumCame : UINT;
NumSegment : UINT;
EtatCame : UDINT;
END_VAR
(* Risque d'ala *)
NumCame:= CAMNUM_S(Axe_X);
...
NumSegment:= CAMSEG_S(Axe_X);
(* Pas d'ala *)
EtatCame:=CAM_S (Axe_X);
...
NumCame:= DWORD_TO_UINT (SHR (UDINT_TO_DWORD (EtatCame) ,16));
...
NumSegment:= UDINT_TO_UINT(EtatCame);
Voir aussi
CAMNUM_S
CAMSEG_S
CAMBOX

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

Liste des oprateurs et instructions

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

Sortie de bote cames

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

CAMBOXSEG (<NumCamBox>, <NumSeg>, <SegmentDef>)


Type accept
<NumCamBox> : USINT
<NumSeg> : USINT
<SegmentDef> : tSegmentDef
Description
Cette fonction modifie un segment de la boite came. NumSeg contient le N de segment
modifier, ses donnes sont prises l'endroit correspondant dans le tableau de dfinition des
segments passs en paramtre.
<NumCamBox> : Numro de bote (0..31)
<NumSeg> : Numro du segment (0..31)
<SegmentDef> : dfinition des segments
Remarques
Il est possible d'ajouter un segment la vole.
La fonction est bloquante jusqu' ce que le segment soit effectivement pris en compte (300s max).
En cas de modification de la sortie concerne, la sortie initiale conserve sa valeur au moment du
changement.
Voir aussi
CAMBOX
CAMBOX_S
CAMBOXOUT
SETINP
STARTCAMBOX
STOPCAMBOX
CAMNUM_S

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

Liste des oprateurs et instructions

La valeur retourne est significative que si CAM_S est 1.


CAMNUM_S retourne la valeur 0 si aucune came n'est lance
Si une came est lance mais n'est pas encore embray ou est en attente de TRIGGER, son
numro sera quand mme retourn par CAMNUM_S.
Exemple ST
VAR
FlagCame1EnCours : BOOL;
FlagCame2EnCours : BOOL;
END_VAR
If (CAMNUM_S(Axe_X)=1) Then
FlagCame1EnCours:= 1; (* Came 1 en cours *)
End_If;
If (CAMNUM_S(Axe_X)=2) Then
FlagCame2EnCours:= 1; (* Came 2 en cours *)
End_If;
Voir aussi
CAM_S
CAMSEG_S
CAMREADPOINT

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

Numro d'quation de la came en cours d

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

Lancement d'une capture de position

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

Liste des oprateurs et instructions

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

Annule une capture

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

Lancement d'une capture de position partir d'une entre rapide IMD

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

Associe un vnement la capture

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

Liste des oprateurs et instructions

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

Cette instruction force la position de l'axe la valeur du paramtre -ZERO_P.


<Axe> : Nom de l'axe
Exemple ST
CLEAR(Axe_X);
Position :=POS_S(Axe_X); (* Rsultat : Position=0.0 *)
CLEARAUX

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

Liste des oprateurs et instructions

CLEARFLASH
Syntaxe
CLEARFLASH (0)
Description
Cette fonction efface le contenue de la mmoire FLASH du MPC
Voir aussi
RAMTOFLASH
FLASHOK_S
CONCAT

concatnation de deux chanes de caractres

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

Continue l'excution d'une tche

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

Liste des oprateurs et instructions

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

Associe un vnement au compteur

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

initialisation, le compteur est charg la valeur "0".

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

<Expression> doit tre suprieur ou gal 0


Types accepts
<Axe> : tPeripheral
<Expression> : REAL
Description
Cette fonction ajuste la dclration courante en pourcentage du paramtre de dclration par
dfaut dfinie dans le profil de l'axe.
<Axe> : Nom de l'axe
<Expression> contient le pourcentage appliquer
Exemple ST
DECP (Axe_X, 10.0); (*10% de la dclration dfinie dans le profil de
vitesse *)
Voir aussi
ACCP
VELP
DEC
DEC_T
DELAY

Attente passive

Syntaxe
DELAY <Dure>

362

Liste des oprateurs et instructions

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

Motion Studio ne met pas en application la fonction DELETE.


DINT
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
Dsactivation du recalage

DISABLERECALE
Syntaxe
DISABLERECALE (<Axe>, <Source> )
Types accepts
<Axe> : tPeripheral
<Source> : tSrcPos
Description

Cette fonction annule le recalage automatique d'un axe sur un capteur.


DISPLAY

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 *)

DIV- Division (langage IL)


Voir Division
DO
Voir FOR et WHILE
DWORD
Voir les types de base
Notes
Ce type de base est dfini par l'IEC61131-3.
ELSE
Voir IF
ELSIF
Voir IF
ENABLERECALE

Fonction de recalage automatique

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

Liste des oprateurs et instructions

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

<Axe> : nom de l'axe


<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>.
<Position> : indique la position laquelle se trouve thoriquement le capteur et que l'on mettra
dans le compteur. Pour une remise zro on indique 0.
<Acceleration> : comme pour la fonction MASTEROFFSET permet une application progressive du
recalage
ENABLERECALE

Fonction de recalage automatique

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

<Axe> : nom de l'axe


<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>.
<Position> : indique la position laquelle se trouve thoriquement le capteur et que l'on mettra
dans le compteur. Pour une remise zro on indique 0.
<Acceleration> : comme pour la fonction MASTEROFFSET permet une application progressive du
recalage
END_CASE
Voir CASE
END_FOR

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

Arrt d'une came

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

Egalit (langage IL)

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

Valeur de l'erreur de poursuite

Liste des oprateurs et instructions

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

Limite d'erreur de poursuite

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

Chercher la position de caractres dans une cha

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

Liste des oprateurs et instructions

INSERT
REPLACE
LEFT
RIGHT
MID
FILTERMASTER

Applique un filtrage lors de mouvem

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

Liste des oprateurs et instructions

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

Suprieur ou gale (langage IL)

Voir Suprieur ou gal


GEARBOX

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.

Le r-embrayage de l'esclave peut tre trs violent !


Si le signe de <Num_Esclave> est positif, l'esclave va dans le mme sens qu'un STTIP
sur son axe.
Le sens d'acclration du matre se fait suivant le signe de <Dn_Matre>.
<Acclration> est un paramtre qui permet de dfinir une phase d'acclration du matre.
Remarque
Le lancement d'un gearbox peut tre dclench (TRIGGER).
L'instruction est non-bloquante sauf si le buffer de mouvement est plein.

376

Liste des oprateurs et instructions

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

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.

Le r-embrayage de l'esclave peut tre trs violent !


Si le signe de <Num_Esclave> est positif, l'esclave va dans le mme sens qu'un STTIP
sur son axe.
Le sens d'acclration du matre se fait suivant le signe de <Dn_Matre>.
<Acclration> est un paramtre qui permet de dfinir une phase d'acclration du matre.
<Direction> permet de dfinir le mode d'utilisation du seuil d'embrayage:
2 : le matre doit avancer de plus de la distance <Seuil_Embrayage> pour dclencher l'arbre
lectrique.
1 : le matre doit reculer de plus de la distance <Seuil_Embrayage> pour dclencher l'arbre
lectrique.
0 : embrayage immdiat.
<Seuil_Embrayage> est la distance parcourir avant d'embrayer l'axe.
Remarque
Le lancement d'un gearbox peut tre dclench (TRIGGER).
L'instruction est non-bloquante sauf si le buffer de mouvement est plein.

378

Liste des oprateurs et instructions

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

Change le rapport de rduction d'u

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> :

Si le GEARBOX est rversible :


Le ratio est pris en compte quelque soit le sens de dplacement du matre.
Si le signe de <Num_Esclave> est positif, l'esclave va dans le mme sens qu'un STTIP sur
son axe.
Si le GEARBOX n'est pas rversible :

Le ratio est pris en compte seulement dans le sens d'avance de matre.


Si le signe de <Num_Esclave> est positif, l'esclave va dans le mme sens qu'un STTIP sur
son axe.

<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

AXIS(esclave)=OFF n'a pas t active.


Le signe de <Num_Esclave> est ignor car il est systmatiquement pris dans le sens d'avance.
Le signe de <Dn_Matre> est ignor.
Une valeur nulle de <Dn_Matre> provoque une erreur LZS.
Exemple ST
WAIT (GEARBOXRATIO_S(Axe_X));
GEARBOXRATIO(Axe_X,1.0,1.0,0.0);
Voir aussi
CAM
CAMBOX
MOVS
STOP
AXIS
GEARBOXRATIO_S

Etat du changement de ratio

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

Retourne un bit d'une variable BYTE

Liste des oprateurs et instructions

<Data> : BYTE
<Num> : USINT
<Q> : BOOL
Description
Cette fonction retourne la valeur d'un bit d'une variable BYTE.
GETBITD

Retourne un bit d'une variable DWORD

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

Retourne un bit d'une variable WORD

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

Retourne le dernier vnement de

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

Retourne le premier vnement de

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

Liste des oprateurs et instructions

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
GETLASTSYSEVENT
GETUSEREVENTPARAM
SETTASKEVENTLIST
SIGNAL
GETUSEREVENTPARAM - Rcupre le paramtre associ au dernier vnement
Syntaxe
<Param> := GETUSEREVENTPARAM ( 0 )
Type accept
<Prama> : UDINT
Description
Cette fonction rcupre le paramtre associ au dernier vnement reu.
<Param> : Paramtre
Voir aussi
GETLASTSYSEVENT
GETSYSTEMEVENT
SETTASKEVENTLIST
SIGNAL
Suprieur (langage IL)

GT
Voir Suprieur
HALT

Arrte une tche

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 : Type de prise d'origine paramtr dans le profil

0 : Immdiate - l'axe revient sa valeur "Zro Programme"

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.

2 : Sur capteur, en sens +, sans dgagement


Le variateur lance un mouvement infini en sens + et attend un front montant sur l'entre
HOME de l'axe.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

Liste des oprateurs et instructions

3 : Sur capteur, en sens +, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens - pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens + et attend un front montant sur
l'entre HOME pour forcer la position la valeur "Zro Programme" et le moteur s'arrte
cette position.

4 : Sur capteur, en sens -, sans dgagement


Le variateur lance un mouvement infini en sens - et attend un front montant sur l'entre
HOME.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

5 : Sur capteur, en sens -, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens + pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens - et attend un front montant sur
l'entre HOME pour forcer la position la valeur "Zro Programme" et le moteur s'arrte
cette position.

385

Printed Documentation

386

6 : Sur capteur et TOP Z, en sens +, sans dgagement


Le variateur lance un mouvement infini en sens + et attend un front montant sur l'entre
HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

7 : Sur capteur et TOP Z, en sens +, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens - pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens + et attend un front montant sur
l'entre HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

Liste des oprateurs et instructions

8 : Sur capteur et TOP Z, en sens -, sans dgagement


Le variateur lance un mouvement infini en sens - et attend un front montant sur l'entre
HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

9 : Sur capteur et TOP Z, en sens -, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens + pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens - et attend un front montant sur
l'entre HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

10 : Initialise la position de l'axe avec la position absolue (seulement en mode SinCos ou


SSI sinon initialisation 0)

11 : Remise 0 de l'erreur de poursuite

Remarque
La fonction HOME est bloquante jusqu' ce que la prise d'origine soit effectue.
Un home prend en compte :

La position de prise d'origine (zro Programme)

La vitesse de prise d'origine (paramtre _IMD_HOME_VELOCITY)

L'acclration et la dclration en cours sur l'axe

Ces mouvements ne modifient pas la vitesse courante de l'axe.


Exemple ST

387

Printed Documentation

HOME(Axe_X,0); (*Prise d'origine immdiate *)


Voir aussi
HOMECANCEL
HOME_S
HOMEAUX
HOMEAUXCANCEL
HOMEAUX_S
HOME_S

Rsultat de la prise d'origine

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

Prise d'origine sur l'auxiliaire

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

Liste des oprateurs et instructions

0 : immdiate - l'auxiliaire revient sa valeur "Zro Programme"

1 : Sur Top Z (la fonction attend le top Z sur l'entre auxiliaire).

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)

4 : Initialise la position de l'auxiliaire avec la position absolue (seulement en mode SinCos


ou SSI sinon initialisation 0)

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

Rsultat de la prise d'origine sur l'auxiliaire

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

Annule la prise d'origine sur l'auxiliaire

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

Etat de la prise d'origine sur


l'auxiliaire

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

Liste des oprateurs et instructions

HOMECANCEL

Annule la prise d'origine

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

Etat de la prise d'origine

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

Liste des oprateurs et instructions

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

Retourne l'tat de la tche d'Initialisation

Liste des oprateurs et instructions

Type accept
<Q> : USINT
Description
Cette fonction retourne l'tat de la tche d'initialisation :

"1" si la tche en cours d'excution

"0" si la tche est arrte

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 :

0 : premire initialisation (appel lors du "RUN" du squenceur global)

1 : r-initialisation (appel par l'utilisateur) (RESTART(1);)

INITSETRESULT

Force la valeur de retour de la tche d

Syntaxe
INITSETRESULT (<EN>)
Type accept
<EN> : USINT
Description
Cette fonction force le rsultat de retour de la tche d'initialisation :

0 : OK

1 : erreur aucun rsultat envoy (valeur par dfaut)

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

Lecture d'une entre TOR

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

Lecture d'un bloc 8 entres

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

Liste des oprateurs et instructions

INP
INPW
INPW

Lecture d'un bloc de 16 entres

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

Liste des oprateurs et instructions

<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

Branchement si le rsultat courant = TRUE

JMPCN

Branchement si le rsultat courant = FALSE

Start: LD
JMPC
LD
ST
JMP

IN1
TheRest
IN2
Q2
TheEnd

(*
(*
(*
(*

Saut "TheRest" si IN1 = TRUE *)


ces instructions ne sont pas excutes *)
si IN1 = TRUE *)
branchement inconditionnel "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

Partie gauche d'une chane

Liste des oprateurs et instructions

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

Longueur d'une chane

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

Borne une valeur entire

Syntaxe
<Q> := LIMIT (<IMIN>, <IN>, <IMAX>)
Types accepts
<Q>, <IMIN>, <IN>, <IMAX> : ANY_NUM

402

Liste des oprateurs et instructions

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

Charge une came

Syntaxe
LOADCAM (<Esclave>,<Matre>,<Source>, <Ncame>, <Absolu>, <Reference>, <Mono-coup>,
<Rversible>, <DirectionPositive>, <GainMatre>, <GainEsclave>, <Ncame suivante>, <Ncame
prcdente>)
Types accepts

404

Liste des oprateurs et instructions

<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.

<DirectionPositive> : Condition d'embrayage.

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

<GainMatre> : gain appliquer aux points matres


<GainEsclave> : gain appliquer aux points esclaves
<Ncame suivante> : Mettre 0 si la came ne doit pas tre enchane sur une autre came sinon le
numro de la came s'enchanera.
<Ncame prcdente> : Mettre 0 si la came n'enchanera pas sur une came prcdente
LOADCAMI

Charge une came

Syntaxe

405

Printed Documentation

LOADCAM (<Esclave>,<Matre>,<Source>, <Ncame>, <Absolu>, <Reference>, <Mono-coup>,


<Rversible>, <DirectionPositive>, <GainMatre>, <GainEsclave>, <Ncame suivante>, <Ncame
prcdente>)
Types accepts
<Esclave> : tPeripheral
<Matre> : tPeripheral
<Source> : tSrcPos
<Ncame> : UINT
<Absolu> : BOOL
<Data> : tCamTable
<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.
<Data> : Came en mmoire(variable)
<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.

<DirectionPositive> : Condition d'embrayage.

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

<GainMatre> : gain appliquer aux points matres


<GainEsclave> : gain appliquer aux points esclaves
<Ncame suivante> : Mettre 0 si la came ne doit pas tre enchane sur une autre came sinon le
numro de la coma s'enchanera.
<Ncame prcdente> : Mettre 0 si la came n'enchanera pas sur une came prcdente

406

Liste des oprateurs et instructions


Modification de points d'une came

LOADCAMPOINT
Syntaxe

LOADCAMPOINT (<Ncame>, <N point>, <X>, <Y>, <dX>, <dY>)


Limite
<Ncame> de 1 127
<N point> de 1 n points de la came
Types accepts
<Ncame>, <N point> : UINT
<X>, <Y>, <dX>, <dY> : REAL
Description
Cette fonction permet de modifier un point d'une came la vole
Voir aussi
LOADCAM
LOADTIMER
Syntaxe
<TEMPO> := LOADTIMER (<DELAI>)
Limite :
<DELAI>: doit tre infrieur 2^31 (environ 25 jours)
Types accepts
<TEMPO> : UDINT
<DELAI>: UDINT
Description
L'instruction LOADTIMER est utilise pour tablir des attentes actives. Elle stocke dans la variable
<TEMPO>, la somme de la variable interne Time + <DELAI>
Remarques
Time est un entier long qui reprsente le millime de secondes coules depuis la dernire mise
sous tension. Cette variable peut donc tre utilise comme base de temps.
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
TIMER
LOCK

Bloque le squenceur sur la tche

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

Cette fonction retourne le logarithme dcimal (base 10) de <IN>


<IN> doit tre une expression numrique.
La valeur retourne est de type rel.
Remarques
En LD, le flux d'entre (EN) conditionne l'opration, et le flux est inchang en sortie.
En IL, l'entre doit tre charge dans le rsultat courant avant l'appel de la fonction.
Exemple ST
Q := LOG (IN);
Exemple FBD

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

(* Q est: LOG (IN) *)

Liste des oprateurs et instructions

SQRT
LT - Comparaison (langage IL)
Voir Infrieur

Dcale dynamiquement la position du mat

MASTEROFFSET
Syntaxe

MASTEROFFSET (<Esclave>, <Matre>, <Source>, <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
<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

Valeur courante de l'offset matre

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

Cette fonction retourne la valeur courante de l'offset matre.


<Esclave>, <Matre> : Nom de l'axe
<Source> :SRC_AXE pour la position rel de l'axe, SRC_AUX pour la position auxiliaire de l'axe et
SRC_TRC pour la position thorique de l'axe
Remarque
Lorsque la valeur courante est gale la valeur <Offset> de la fonction MASTEROFFSET, le
dcalage est alors termin.
Voir aussi
MASTEROFFSET
MAX

Retourne le maximum de deux valeurs

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

Liste des oprateurs et instructions

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

Un merge entre un mouvement rapide et un mouvement "lent" peut entraner un dpassement de la


cte atteindre (le flag POS_ERREUR_S passe alors 1).
sont pris en com
Les instructions de changement de profil de vitesse comme VEL, ACC, DEC
au prochain mouvement
L'instruction POS ne fonctionne pas pendant un MERGE
Exemple ST

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

Retourne le minimum de deux valeurs

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

Liste des oprateurs et instructions

MOD
ODD
Division (langage IL)

MOD
Syntaxe
<Q> = MOD (<IN1>, <IN2>)
Types accepts

<Q>, <IN1>, <IN2> : ANY_INT


Description
Cette fonction permet de diviser la valeur du premier oprande par la valeur du deuxime oprande
et de sortir le reste de la division (modulo) comme rsultat.
Exemple ST
C:= A MOD B;
Exemple IL
Div: LD A
MOD B
ST C

(*C=1 pour A=7 et B=2*)


(*C=(-1) pour A=7 et B=(-2)*)
(*C=(-1) pour A=(-7) et B=2*)
(*C=1 pour A=(-7) et B=(-2)*)
Image de la puissance moteur

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).

L'erreur de poursuite est l'intrieur de la fentre de positionnement (+/- la valeur entre


dans le menu Paramtres / Scurits / Position).

Le buffer de mouvement de positionnement (STTA, TRAJ

Dans le cas d'un axe esclave li par une synchronisation (arbre lectrique, mouvement
synchronis, mouvement came) : le lien doit avoir t coup.

Si l'un de ces points est faux, l'instruction MOVE_S retourne la valeur 1.


Exemple ST

414

) courant est termin (traj

) est vide.

Liste des oprateurs et instructions

STTA (Axe_X, 100.0);


WAIT (MOVE_S (Axe_X) = 0) ; (* Attente que l'axe soit arrt *)
MOVR

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

Multiplication (langage IL)

Voir Multiplication
MULTITASKARRAY

Fonction interne de rglage d'accs

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

Liste des oprateurs et instructions

Syntaxe
NEXTTASK (0)
Description
Cette Instruction permet de basculer immdiatement vers la tche suivante.
NEG

Ngation (langage IL)

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" *)

(* lien avec inversion: Q = IN1 AND NOT IN2 *)

Exemple LD
(* Contact invers: Q = IN1 AND NOT IN2 *)

(* Bobinage invers: Q = NOT (IN1 AND IN2) *)

Exemple IL

417

Printed Documentation

Op1: LDN IN1


OR IN2
ST Q
(* Q = (NOT IN1) OR IN2 *)
Op2: LD IN1
AND IN2
STN Q
(* Q = NOT (IN1 AND IN2) *)
Voir aussi
OR
XOR
AND
OF
Voir CASE
OR

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

Liste des oprateurs et instructions

(* 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

Numro d'ordre courant

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

Ecriture d'une sortie

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

Liste des oprateurs et instructions

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

Ecriture d'un bloc de 8 sorties

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

Ecriture d'un bloc de 16 sorties

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

Liste des oprateurs et instructions

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

La valeur absolue de la position est ramene dans le modulo.


<Axe> : Nom de l
axe
Remarque
L'excution de POS pendant un MOVA, change la position absolue finale
L'excution de POS pendant un MOVR, transforme le mouvement en MOVA
L'excution de POS pendant un STTM ou STTP, transforme le mouvement en MOVA
La mauvaise utilisation de POS peut entraner un dpassement de la cte atteindre (le flag
POS_ERREUR_S passe alors 1).
Exemple ST
STTA(Axe_X, 5000.0);
WAIT (INP(Cellule,1);
POS(Axe_X)=POS_S(Axe_X)+50;
WAIT (NOT (MOVE_S(Axe_X)));

(*
(*
(*
(*

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

Liste des oprateurs et instructions

Cette fonction retourne la position atteindre par le mouvement en cours de l'axe :


Pour une axe modulo, la fonction retourne la position atteindre dans le modulo (ex : POS -5.1
avec modulo de 1.0 => retourne 0.9).
Pour un mouvement MOVA/STTA, la fonction renvoie la position de destination du MOVA.
Pour un mouvement MOVR/STTR, la fonction renvoie la position absolue de destination.
Pour un mouvement STTIM/STTIP, la positon n'est pas mise jour dans POS_T.
Pour un mouvement POS, la position est mise a jour avec la valeur de POS.
Pour un ordre STOP/SSTOP ou dclration urgente, la fonction revoie la position d'arrt du
systme.
Pour les autres instructions de mouvements, la position atteindre n'est pas mise jour.
<Axe> : Nom de l'axe
Voir aussi
POS_S
POSAUX_S

Position relle auxiliaire

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

Indique une erreur de mouvement

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

Force une variable boolenne FALSE

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

Dtection de front montant

Liste des oprateurs et instructions

Le bloc de fonction R_TRIG dtecte l'tat de l'entre de commande CLK.


Le changement d'tat de 0 1 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 montant est
indiqu.

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

Charge une came dans un tableau

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

Liste des oprateurs et instructions

<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

Liste des oprateurs et instructions

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.

"0" suite a une mise sous tension ou RESTART(0).

"1" si redmarrage manuel des tches.

"2" si redmarrage par RESTART(1).

RET
Voir RETURN
RETC
Voir RETURN
RETCN
Voir RETURN
RETURN

Saut la fin du programme

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

(*
(*
(*
(*
(*

saut la fin si IN1 = TRUE *)


instructions non cutes... *)
...si IN1 = TRUE *)
saut inconditionnel *)
instructions jamais xcutes *)

RIGHT Partie droite d'une chane


Syntaxe

432

Liste des oprateurs et instructions

<Q> := RIGHT (<IN>, <NBC>)


Types accepts
<IN> : STRING
<NBC> : UINT
<Q> : STRING
Description
Cette fonction retourne les <NBC> caractres de droite 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 := RIGHT (IN, NBC);
Exemple FBD

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

Rotation des bits gauche

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

Rotation des bits droite

Liste des oprateurs et instructions

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

Bascule RESET prioritaire

Syntaxe

435

Printed Documentation

<Q> := RS (<SET>, <RESET>)


Type accept
<SET>, <RESET>, <Q> : BOOL
Description
Cette fonction ralise une bascule RESET prioritaire
La sortie est inchange si les deux entres sont FALSE.
Quand les deux entres sont TRUE, la sortie est force FALSE (reset prioritaire).
SET

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

Lance une tche

Liste des oprateurs et instructions

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

Force une variable boolenne TRUE

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

Dfinit les actions de scurits

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

Erreur de poursuite sur 1 axe

1 dfaut sur un des variateurs

1 erreur communication Ethercat

1 erreur MPC (IEC, interne, communication..)

<Axe> = FALSE : les axes passent en mode non asservis lorsque :

1 erreur communication Ethercat

1 dfaut sur le variateur concern

<WatchDog> = TRUE active les scurits WatchDog du MPC ; c'est--dire que le chien de garde
s'ouvre sur les dfauts suivants :

Erreur de poursuite sur 1 axe

1 dfaut variateur

1 erreur communication Ethercat

1 erreur MPC (IEC, interne, communication..)

<WatchDog> = FALSE : le watchdog ne s'ouvre pas automatiquement

438

Liste des oprateurs et instructions

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

Modifie un bit d'une variable DWORD

Syntaxe
<Cible> := SETBITD (<Source>, <Numro>, <Expression>)
Limite
<Numro> doit tre entre 0 et 31

440

Liste des oprateurs et instructions

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

<Cible> := SETBITW (<Source>, <Numro>, <Expression>)


Limite
<Numro> doit tre entre 0 et 15
Types accepts
<Cible> : WORD
<Source> : WORD
<Numro> : USINT
<Expression> : BOOL
Description
Cette fonction modifie un bit d'une variable WORD.
SETMODE
Syntaxe
SETMODE (<Axe>, <Mode>, <Ini_Val>)

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

Force l'tat d'une entre

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

Liste des oprateurs et instructions

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

<Q> := SHR ( <IN>, <NBR> )


Types accepts
<IN>, <Q> : ANY_BIT
<NBR> : UNIT
Description
Cette fonction permet de dcaler droite les bits d'une variable de type ANY_BIT.

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

Liste des oprateurs et instructions

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

(* La fonction est excute seulement si EN est TRUE *)


(* ENO a la mme valeur que EN *)

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

Dcale dynamiquement la position de l'esc

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

Liste des oprateurs et instructions

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

Cette fonction rend le smaphore <NumSema>.


La premire tche en attente de ce smaphore est alors dbloque.
Un SPOST sur un smaphore non pris ne retourne pas d'erreur et n'entrane aucune action.
Un SPOST sur un smaphore pris par une autre tche provoque une erreur systme.
SQRT

Raci
ne
carre

Syntaxe
<Q> := SQRT (<IN>)
Type accept
<IN>, <Q> : REAL
Description

447

Printed Documentation

Cette fonction retourne la racine carre de <IN>


Remarques
En LD, le flux en entre (EN) conditionne l'appel de la fonction, et le flux est inchang en sortie.
En IL, l'entre doit tre charg dans le rsultat courant avant l'appel de la fonction.
Exemple ST
Q := SQRT (IN);
Exemple FBD

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

Cette fonction ralise une bascule SET prioritaire.


La sortie est inchange si les deux entres sont FALSE.
Quand les deux entres sont TRUE, la sortie est force TRUE (set prioritaire).
SET

RESET

Q
prec

448

Liste des oprateurs et instructions

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

Arrt d'un axe

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

et il n'est plus li avec le matre.


L'instruction SSTOP vide le buffer de mouvement et stoppe l'axe en utilisant la dclration
courante. Cette instruction n'est pas bloquante et n'attend pas que MOVE_S=0.
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 SSTOP 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
SSTOP (Axe_X);
Voir aussi
STTA
STTR
STTI
CAM
GEARBOX
MOVS
ST
Voir Assignation
STARTCAM

Excute une came

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

Lance une bote cames

Liste des oprateurs et instructions

<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

Etat dune tche

Syntaxe
<Etat> := STATUS_S (<Nom>)
Type accept
<Nom> : tGroup
<Etat> : tTaskStatus
Description
Cette fonction retourne l'tat d'une tche

451

Printed Documentation

<Nom> : Nom d'une tche


Les valeurs de retour possibles <Etat> sont :

TSTOP : La tche est stoppe

TSUSPEND : La tche est suspendue

TRUN : La tche est en cours d'excution

Exemple
Run (Percage);
Wait (Status_s (Percage) = TSTOP);
STN
Voir Assignation
STOP

Arrt d'un axe

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

Arrte une bote came

Liste des oprateurs et instructions

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

Permet d'arrter l'instruction MOVS

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.)

2ime cas : si la vitesse esclave est nulle.

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

Tente de prendre le smaphore

Liste des oprateurs et instructions

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

S'il n'est pas disponible, la fonction retourne FALSE

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

Lance un mouvement absolu

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

Prise d'origine non bloquante

Liste des oprateurs et instructions

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 : Type de prise d'origine paramtr dans le profil

0 : Immdiate - l'axe revient sa valeur "Zro Programme"

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.

2 : Sur capteur, en sens +, sans dgagement


Le variateur lance un mouvement infini en sens + et attend un front montant sur l'entre
HOME de l'axe.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

3 : Sur capteur, en sens +, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens - pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens + et attend un front montant sur
l'entre HOME pour forcer la position la valeur "Zro Programme" et le moteur s'arrte
cette position.

457

Printed Documentation

458

4 : Sur capteur, en sens -, sans dgagement


Le variateur lance un mouvement infini en sens - et attend un front montant sur l'entre
HOME.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

5 : Sur capteur, en sens -, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens + pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens - et attend un front montant sur
l'entre HOME pour forcer la position la valeur "Zro Programme" et le moteur s'arrte
cette position.

Liste des oprateurs et instructions

6 : Sur capteur et TOP Z, en sens +, sans dgagement


Le variateur lance un mouvement infini en sens + et attend un front montant sur l'entre
HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

7 : Sur capteur et TOP Z, en sens +, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens - pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens + et attend un front montant sur
l'entre HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

8 : Sur capteur et TOP Z, en sens -, sans dgagement


Le variateur lance un mouvement infini en sens - et attend un front montant sur l'entre
HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

459

Printed Documentation

9 : Sur capteur et TOP Z, en sens -, avec dgagement


Si l'entre HOME est dj 1 alors le variateur lance en premier un mouvement infini en
sens + pour se dgager du capteur HOME.
Le variateur lance ensuite un mouvement infini en sens - et attend un front montant sur
l'entre HOME puis le passage par le TOP Z moteur.
La position est alors force la valeur "Zro Programme" et le moteur s'arrte sur cette
position.

10 : Initialise la position de l'axe avec la position absolue (seulement en mode SinCos ou


SSI sinon initialisation 0)

11 : Remise 0 de l'erreur de poursuite

Remarque
La fonction STTH n'est pas bloquante.
Un home prend en compte :

La position de prise d'origine (zro Programme)

La vitesse de prise d'origine (paramtre _IMD_HOME_VELOCITY)

L'acclration et la dclration en cours sur l'axe

Ces mouvements ne modifient pas la vitesse courante de l'axe.


Exemple ST
STTH(Axe_X,0); (*Prise d'origine immdiate *)
Voir aussi
HOMECANCEL

460

Liste des oprateurs et instructions

HOME_S
HOMEAUX
HOMEAUXCANCEL
HOMEAUX_S
STTHAUX

Prise d'origine sur l'auxiliaire non bloquante

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> :

0 : immdiate - l'auxiliaire revient sa valeur "Zro Programme"

1 : Sur Top Z (la fonction attend le top Z sur l'entre auxiliaire).

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)

4 : Initialise la position de l'auxiliaire avec la position absolue (seulement en mode SinCos


ou SSI sinon initialisation 0)

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

Lance un mouvement infini en sens moins

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

L'axe utilise les valeurs courantes de vitesse, d'acclration et de dclration.


<Axe> : Nom de l'axe
Exemple ST
STTIM (Axe_X);
WAIT (INP (Arret)) = 0);
STOP (Axe_X);
Voir aussi
STTA
STTR
MOVA
MOVR
STTIP
MOVE_S
STTIP

Lance un mouvement infini en sens plus

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

Liste des oprateurs et instructions

<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

Lance un mouvement relatif

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

Suspend une tche

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 disponible alors il est pris et l'excution continue immdiatement.

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

Liste des oprateurs et instructions

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

Temps coul depuis le dmarrage du MPC

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

Temps coul depuis le dmarrage du MPC

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

<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

Liste des oprateurs et instructions

<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

Lance un mouvement infini en sens moins

Syntaxe
TRAJIM (<Axe>>, <Vitesse>, <Acclration>,)
Unit

473

Printed Documentation

<Vitesse> : unit utilisateur (Ex : mm/s, degr/s,...)


<Acclration> : unit utilisateur/s (Ex : mm/s, degr/s,...)
Types accepts
<Axe> : tPeripheral
<Vitesse>, <Acclration> : REAL
Description
Cette fonction permet de lancer un mouvement en sens moins.
Le systme n'attend pas la fin du mouvement (MOVE_S=0) et excute la prochaine instruction.
<Axe> : Nom de l'axe
Exemple ST
TRAJIM (Axe_X, 50.0, 250.0) ;
WAIT (INP (Arret)) = 0);
STOP (Axe_X) ;
Voir aussi
TRAJA
TRAJR
TRAJIP
TRAJIP

Lance un mouvement infini en sens plus

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

Liste des oprateurs et instructions

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

Active le mouvement dclench

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

Mouvement dclench sur fentre

Syntaxe
TRIGGERF (<RefEntre>, <Front>, <Axe>, <Source>, <Min>, <Max>, <Interieur>)
Types accepts
<RefEntre> : tIObitIn
<Front> : USINT

476

Liste des oprateurs et instructions

<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

Mouvement dclench sur entre

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

Mouvement dclench sur une position

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

S_POS si sens positif

S_NEG si sens ngatif

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

Annule le mouvement dclench

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

Tronque la partie dcimale d'un nombre

Liste des oprateurs et instructions

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

Liste des oprateurs et instructions

Ce mot-clef est rserv aux zones de dclaration des POUs


Il est dfini par l'IEC61131-3.
VAR_EXTERNAL
Voir les sections de dclaration.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
VAR_GLOBAL
Voir les sections de dclaration.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
VAR_IN
Voir les sections de dclaration.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
VAR_IN_OUT
Voir les sections de dclaration.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
VAR_OUTPUT
Voir les sections de dclaration.
Notes
Ce mot-clef est rserv aux zones de dclaration des POUs
Il est dfini par l'IEC61131-3.
VEL

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

Valeur de la consigne de vitesse

Liste des oprateurs et instructions

<Q> en unit utilisateur par s (Ex : mm/s, degr/s, tr/s

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

Retourne la vitesse thorique courante

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

Retourne la vitesse thorique courante

Liste des oprateurs et instructions

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

Version de l'Operating System

Syntaxe
<Q> = VERSION (0)
Type accept
<Q> : UDINT
Description
Cette fonction retourne la version OS du MPC.
WAIT

Attente d'une condition

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

Ferme le chien de garde

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

Retourne l'tat du chien de garde

Liste des oprateurs et instructions

<Q> := WATCHDOG_S (0)


Type accept
<Q> : BOOL
Description
Cette fonction retourne l'tat du chien de garde en cours

Remet 0 le nombre de dclenchement

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

Retourne le nombre de dclenchem

WDTASK_S
Syntaxe
<Q> := WDTASK_S (<Tache>)
Type accept
< Tche > : tGroup
Description

Cette fonction retourne le nombre de dclenchement du chien de garde d'une tche.


<Tache> : Nom de la tche
WHILE

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

Enregistre un tableau dans une came

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

Liste des oprateurs et instructions

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

Oprateur OU exclusif avec l'entre 2 inverse

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

Les variables RETAIN ne sont pas supports par le matriel.


Votre matriel ne supporte pas les variables RETAIN. Veuillez enlever l'attribut. Pour une liste de
types variables supports consultez votre documentation matriel.
C10034
Commande non valide pour ce matriel.
La commande la position donne n'est pas supporte par ce matriel. Pour une liste de
commandes non supportes consultez votre documentation matriel. Pour une liste de commandes
non supportes par le logiciel Motion Studio consultez la norme IEC 1131-3.
C10035
L'oprande/paramtre doit tre du type 'UINT '.
Un paramtre effectif du type UINT est attendu dans un appel de fonction (opration), mais le
paramtre effectif n'est pas de ce type.
Exemple:
VAR
StringVariable : STRING;
Length : INT := 32;
END_VAR
LD

EXAMPLE

LEFT length (* Erreur: Ce parameter doit tre du type UINT *)


ST StringVariable
C10036
Structures et tableau de type complexe de donnes ne sont pas supports par ce matriel.
Un tableur de type structur, un tableau de type tableau, une structure avec un membre structur
ou une structure avec un membre tableau a t dclar. Ceci n'est pas support par le matriel.
Pour plus d'informations sur les types de donns supports par votre matriel, consultez votre
documentation matriel.
Exemple:
TYPE
DayOfWeek : STRUCT
Name : STRING;
DayNumber : UINT;
END_STRUCT;
DayDescriptions : ARRAY[1..100] OF DayOfWeek; (* Erreur: Day of Week est un type complexe de
donn.
Un type de tableau de donn complexe n'est pas support par le matriel. *)

Presence : STRUCT
Name : STRING;

493

Printed Documentation

OursPerDay : ARRAY[1..31] OF UINT; (* Erreur: ARRAY est un type complexe de donn.


Une structure de donn complexe n'est pas support par le matriel *)
END_STRUCT;
C10038
N'a pas pu dtecter le type de la constante.
Le type d'une constante n'a pas pu tre dtermin. Veuillez initialiser une variable du type dsir
avec cette constante et employez la variable au lieu de la constante.
C10043
Le code implment n'est pas autoris.
De code implment a t trouv dans un fichier de dclaration de variable de ressource globale.
Ceci n'est pas autoris. Veuillez dclarer la variable demande dans une autre unit de gestion de
programme en tant que variable externe et dplacez le code dans le fichier respectif.
C10045
Les instances de blocs de fonction ne sont pas autorises dans cette section.
Une dclaration d'instance d'un bloc de fonction a t trouve dans une section o cela n'est pas
autorise. Veuillez dplacer la dclaration dans une autre section, o des instances de bloc de
fonction sont supports.
C10046
'VAR_GLOBAL' n'est pas autoris.
Une section VAR_GLOBAL a t trouve dans une unit de gestion de programme o cette sorte
de section n'est pas soutenue. Veuillez changer le type de section ou dplacez la dclaration
variable dans un fichier, o des variables globales sont supportes.
Selon la norme IEC 61131-3, les sections VAR_GLOBAL sont supportes seulement dans
PROGRAM. Cependant le fabricant du matriel peut limiter la dclaration des variables globales
aux fichiers de variables ressource globaux. C.--d. les variables globales sont autorises
seulement dans les fichiers spcifiques qui contiennent seulement des dclarations variables
globales.
C10047
Seul les variables 'VAR_GLOBAL' sont autorises.
Une section de dclaration de variable, qui n'est pas une section VAR_GLOBAL, a t trouve
dans un fichier pour la dclaration variable globale de ressource. Ceci n'est pas autoris. Veuillez
changer la type de section ou dplacez la dclaration de variable dans un autre fichier, o ce type
de dclarations sont supportes.
C10049
Chane trop longue.
Un chane a t dclare avec des spcifications de longueur, qui excdent la longueur maximum
d'un chane supporte par le matriel.

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

La fonction n'a aucun paramtre d'entre. Est-ce normale ?


Un appel de fonction une fonction qui n'a aucun paramtre a t dtect. Est-ce normal ? Les
fonctions ne contiennent pas d'information interne d'tat et peuvent tre alimenter qu'avec des
paramtres d'entre. Gnralement la valeur de retour est calcule en employant les paramtres
d'entre. Pour ces raisons, une fonction sans paramtres d'entre n'a d'habitude pas de sens.
Veuillez vrifier si la fonction appele un sens.
Les erreurs de linkage
L10001
Variable dclare deux fois : <Variable name>.
La variable avec le nom indiqu a t dclare deux fois.
Conseil:
Si la variable est dclare dans un PROGRAMME POU, vrifiez si une variable globale de
ressource avec le mme nom a t dclare. Si la variable est une variable global de ressource,
vrifiez si une variable globale avec le mme nom a t dclare dans un PROGRAMME POU de
la ressource.
Si un des cas ci-dessus est vrai, changez le nom d'une des variables ou dplacez la dclaration
variable dans le PROGRAMME POU dans une section de VAR_EXTERNAL. Attention : si vous
dplacez la variable dans une section externe, chaque accs la variable externe accde la
variable ressource globale du mme nom.
L10004
Externe non dfini: <Variable name>.
Soit une variable globale avec le nom indiqu n'a pas t trouve,ou un type de bloc de fonction
avec le nom indiqu n'a pas t trouv.
Conseil:
Assurez-vous que le nom variable est orthographi correctement.
Si la variable n'est pas une instance de bloc de fonction, assurez-vous qu'une variable avec ce nom
est dclare dans la section de VAR_GLOBAL du programme d'appel ou dans un fichier avec des
dclarations de variables ressource-globales.
Si la variable est une instance de bloc de fonction, assurez-vous que le bloc de fonction a t
compil avec succs, c.--d. un fichier d'excution pour ce bloc de fonction existe.
L10026
Adresse non supporte: <AddressDescription>.
L'adresse <AddressDescription> n'est pas supporte par le matriel.
Conseil:
Vrifiez si l'adresse est orthographie correctement.
Vrifiez si la syntaxe de la description de l'adresse est correcte. La syntaxe de la description de
l'adresse est dpendante du matriel, mais doit tre une chane constitue du signe "%" suivi d'un
prfixe de location, un prfixe de taille et un ou plusieurs entiers non signs, spars par des

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:

Vrifiez si les spcifications de ressource contiennent un nom valide de module matriel..

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

Accs en criture cette variable non autoris: <Variable name>.


Un accs en criture une variable qui est en lecture 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 d'entre. L'accs en criture cette source d'entre n'est pas
autoris
L12005
Erreur interne du linker no.: <errorno> .Veuillez entrer en contact avec votre fabricant.
L12006
chec d'attribution de mmoire. Pas assez de mmoire pour effectuer l'opration.
L12007
Aucune information d'objet n'a t trouv pour la tche TaskName>. Veuillez tout reconstruire.
Le fichier d'objet (<TaskName>.crd) pour la tche indiqu n'a pas t trouv. Veuillez reconstruire
compltement la ressource.
L12008
Dbordement d'interprteur de pile dans la tche <TaskName>.

502

Annexes

Dbordement de l'interprteur d'appel de pile. Veuillez rduire la profondeur de la hirarchie


appelante de <TaskName>.
L12996
Commande inconnue: <Command>.
Un argument inconnu de ligne de commande a t employ avec ITLINK.
L12997
Type d'objet inconnu: <ObjectKindSpecification>.
Un fichier d'objet invalide a t trouv. Veuillez reconstruire entirement la ressource.
L12998
Type d'objet invalide. Type trouv/demand: <ObjectKind>.
Un fichier d'excution non valide a t trouv. Veuillez reconstruire entirement la ressource.
L12999
Version d'objet invalide a t trouv La version a trouv/prvu d'objet: <ObjectVersion>.
La version de fichier d'objet et la version d'objet compil sont diffrentes. Le fichier d'objet a t
cr avec une version diffrente de compilateur. Veuillez re-compiler entirement la ressource.
L13000
Echec de chargement des informations de la ressource variable globale.
Le fichier d'excution avec l'information globale de ressource n'a pas t trouv. Veuillez
reconstruire entirement la ressource.
L13001
Aucune information d'objet n'a trouv pour le POU <pouname>
Le fichier d'excution (<pouname>.obj) pour le POU indiqu n'a pas t trouv. Veuillez
reconstruire entirement la ressource entire.
Les erreurs de syntaxe
S1000
Les commentaires imbriqus ne sont pas autoriss.
Vous utilisez une version compatible IEC 61131-3. Dans cette version, les commentaires imbriqus
ne sont pas autoriss.
S1001
Caractre invalide.

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

Vrifiez si le nom est orthographi correctement.


Assurez vous que l'identifiant n'est pas un nom de type (par exemple un nom de bloc de fonction).
S3012
Nom de variable ou constante attendu.
Cette erreur se produit, si un identifiant, qui n'est pas un nom variable ou une constante numre,
est employe o un nom de variable ou une constante est prvu.
Exemple:
TYPE
Colours : (red, yellow, blue) := red;
END_TYPE
VAR
Colour : Colours := Colours; (* Erreur: Constante numre attendu.
EnumType est du type nom *)
END_VAR
LD Colours (* Erreur: Constante ou nom de variable attendu. EnumType est du type name *)
ST Colour
S3014
Donn de type numrique tait attendu.
L'oprateur et le type d'oprande sont incompatibles. Un oprande d'un type ANYNUM tait
attendu.
S3017
Valeur de type boolenne tait attendue.
L'oprateur et le type d'oprande sont incompatibles. Un oprande du type BOOL tait attendu.
S3016
Donn de type bit tait attendu.
L'oprateur et le type d'oprande sont incompatibles. Un oprande d'un type d'ANYBIT tait
attendu.
S3018
Donn de type numrique tait attendu.
Type illgal d'oprande. Oprande de type d'ANYNUM attendu.
S3019
Type d'oprande incompatibles.
Le type d'oprande et de rsultat sont incompatible.

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

Les dclarations "Self-referencing" (c.--d., rcursives) sont invalides.


Une rcursivit 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 et les programmes de fonction ne peuvent dclarer des exemples
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 bloc de fonction dans la hirarchie appelante).
S4008
Trop d'attributs 'RETAIN' ou 'CONSTANT'. Vous devez en utiliser qu'un seul.
Trop de qualificateurs utiliss dans une dclaration d'une variable.
S4009
Une structure doit contenir au moins un lment de structure (dclaration variable).
Une structure vide a t dclare. Ceci n'est pas autoris. Une structure doit contenir au moins une
variable membre.
Exemple:
Non autoris:
TYPE
Mastructure : struct end_struct;
END_TYPE
Autoris:
TYPE
Mastructure : STRUCT
M1 : int;
END_STRUCT
END_TYPE
S4010
Les dclarations de type simultanes ne sont pas autorises.
La dclaration de type sur la position indique contient une liste d'identifiants. Ceci n'est pas
autoris. Veuillez crire un identifiant pour chaque nouveau type.
Exemple:
Non autoris:
TYPE
MonInt1, MonInt2, MonInt3 : int;
END_TYPE
Autoris:
TYPE
MonInt1 : int;
MonInt2 : int;

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

est pasdans des parenthses *)


autoris

)
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

La variable n'est pas un tableau.


Une initialisation de tableau a t affecte une variable qui n'est pas du type tableau.
Exemple.
VAR
A : INT := [4]; (* non autoris *)
END_VAR
S5019
Initialisation de valeur et type de variable incompatible.
Le type de la valeur d'initialisation et le type de la variable sont incompatibles.
Exemple:
VAR
X : INT := 65000;
END_VAR
S5020
Trop de valeur d'initialisation.
La valeur d'initialisation pour un type tableau ou variable a plus d'lment que ce qui a t dclar
pour le tableau.
Exemple:
VAR
A : ARRAY [1..5] OF INT := [1, 2, 3, 4, 5, 6]; (* trop de valeurs d'initialisation, la tableau a
seulement 5 lments *)
END_VAR
S5021
Le paramtre formel a t incorrectement dclar.
Le nom d'un paramtre de sortie a t attendu. L'identifiant a t trouve dans la zone courante
mais n'est pas un nom de paramtre de sortie.
Conseils
Vrifiez si le nom est orthographi correctement.
Assurez-vous que l'identifiant n'est pas un paramtre d'entre ou d'E/S.
S5022
Assignations multiples d'un paramtre dans un appel d'instance de bloc fonction
Cette erreur se produit, quand dans un appel d'instance de bloc fonction, un paramtre est initialis
2 fois

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

LEFT 3.0 (* Erreur: le second parameter de LEFT est du type UINT *)


ST X
S5026
Type de paramtre formel non valide.
Le nom d'une entre ou d'un paramtre E/S a t attendu. L'identifiant a t trouve dans la zone
courante mais n'est pas un nom d'entre ni de paramtre de sortie.
Conseils
Vrifiez si le nom est orthographi correctement.
Assurez-vous que l'identifiant n'est pas un paramtre de sortie.
S5027
Types d'oprande incompatibles.
Les oprandes pour l'opration la position donne doivent tre compatibles. C.--d. ils doivent
avoir le mme type ou, si au moins un des paramtres est une constante, un transtypage implicite
identique celui de l'autre oprande doit tre possible.
Example:
VAR
X : REAL;
END_VAR
LD 1 (* La constante 1 peut tre converti implicitement en entier ou bit *)
MAX X (* Erreur: X est du type REAL *)
ST X
S5028
Type de donnes non autoris pour cette opration.

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

cal fbInst( InOutParam1 := IntVar1,


InOutParam2 := (IntVar1
ADD IntVar2)
) (*Erreur: le paramtre effectif pour le deuxime paramtre IN_OUT est une expression. *)
cal fbInst ( InOutParam1 := IntVar1,
InOutParam2 := IntVar2
) (* Correct: Les deux paramtres de FB1 sont fournies avec des variables. *)
(* Code *)
END_PROGRAM
S5035
Type de donnes gnrique ne sont pas autoriss.
Cette erreur se produit, si N'IMPORTE QUEL type de donnes est employ dans une dclaration
de variable ou de paramtre. L'utilisation de types de donnes gnriques est seulement autorise
pour la surcharge de fonction et la conversion de type dans une fonction standard ou les fonctions
fournies par le fabricant.
Exemple:
FUNCTION IntegerToString : STRING
VAR_ENTRE
InVar : ANY_INT; (* Erreur: Des fonctions dfinies pour l'utilisateur ne peuvent pas tre
surcharges *)
END_VAR
(* Code *)
END_FUNCTION
S5036
Les type locaux ne sont pas autoriss dans cette section de variable.
Cette erreur se produit, si un type local dfini par utilisateur est employ dans la dclaration d'un
variable global ou externe ou dans la dclaration d'un paramtre. Les variables globales et
externes aussi bien que les paramtres doivent tre d'un type pr-dfini ou d'un type global. Les
types globaux sont soit dpendants du matriel, soit du firmware ou des types global dfinis dans le
projet utilisateur.
Exemple:
PROGRAM main
TYPE
StructType : STRUCT
Member1 : BOOL;
Member2 : STRING;
END_STRUCT;
(* Other type definitions *)
END_TYPE
VAR_GLOBAL
GlobVar : StructType; (* Non autoris car StructType n'est pas connu du POU *)
(* Autre dfinitions de variables globales *)
END_VAR

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 :

Erreur provenant d'un variateur IMD:


Code

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

Ecriture Memory stick

19

N de variateur

Memory Stick corrompue

20

N de variateur

Memory Stick corrompue

21

N de variateur

Erreur "externe"

Erreur de configuration Ethercat:


Code

Dtail

Description

33

N de noeud

Peripherique inconnu sur le bus ethercat

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

Erreur paramtre Motion IMD

36

N de noeud

Erreur Axe non trouv sur le rseau

37

N de noeud

Erreur une adresse est utilise 2 fois dans la configuration

38

N de noeud

Erreur 2 IMD ont la mme adresse sur leurs DIPs

39

N de noeud

Erreur paramtre Motion Virtual (ddoublage de cette erreur motion


pour pouvoir diffrence une erreur sur un priph physique et une
erreur sur un periph virtuel)

Erreur interne MPC:


Code

Dtail

Description

50

Erreur tches IEC

51

Erreur allocation segment BBM


0

Un segment contenant des variables sauvegardes n'est pas global

Un segment contenant des variables sauvegardes n'est pas global

539

Printed Documentation

52

Erreur Out of BBM memory


0

Plus de place lors de la rservation des segments en BBM (indpendant


des donnes envoyes dans le programme)
Indique que config+ nb de segment en BBM*taille des segments en BBM
dans la config > taille totale BBM

Un des segments mettre en BBM reu contient un N de segment (premier


octet) >= au nombre de segments dclars dans la configuration

2 (ou +) segments reus veulent se loger dans le mme segment de BBM

Trop de segments mettre en BBM trouvs dans le programme reu

Impossible d'allouer les buffer pour les masques des segments BBM

Segment d'echange plus grand que la dfinition

Impossible d'allouer la zone de donne pour le segment d'change

Impossible d'allouer les buffer pour les masques des segments BBM

53

Erreur grave lors de l'initialisation systme (dmarrage) N d'erreur


d'init : voir en haut

54

Erreur interne

540

Dpassement de taille max de trame cyclique. Trop d'axes !

Synchro FIFO trap

Ajout d'un lment motion NULL

Erreur lors de la gestion d'une instruction VEL=

Commande High Level Kernel Ethercat inconnue

Trap 1 ethercat

Trap 2 ethercat

Trap 3 ethercat

Trap 4 ethercat

Fuite mmoire dans une liste

10

Erreur sur routine de calcul de modulo (trop d'itration)

11

Erreur sur routine de calcul de came (trop d'itration)

12

Surcharge, impossible d'executer le timer user

13

Surcharge, impossible d'executer le timer user lent

14

Erreur allocation segments en BBM (trop de segments ???)

15

La tache de communication est crashe ...

16

La tache de motion est crashe ...

17

Pour les tests internes

18

La routine d'ajout de profil a retourn n'importe quoi (modif)

19

La routine d'ajout de profil a retourn n'importe quoi (set)

20

plus de fifo dispo ...

21

trop d'lments ajouter en une priode

22

Erreur sur routine de calcul de came (temps de calcul dpass)

23

Trap 1 Motion

24

Trap 2 Motion

Annexes

25

Erreur d'allocation dans une liste kernel

26

Erreur d'allocation dans une liste user

27

Erreur d'allocation dans une liste ethercat

28

Erreur d'appel de sem_wait

29

Erreur canhost

30

Trap 5 ethercat

31

Erreur plus assez de Ram disponible

32

Thread timerU crash

33

Thread timerUS crash

34

Thread schedule crash

35

Thread commandes lzs

36

Trap LXRT

37

Not implemented dans LZS

38

Dpassement de la taille d'un fichier fixe

39

Incoherence lors de la suavegarde des donnes IEC (masques) en flash

40

Out of memory pour masque IEC

41

Malloc under realtime

42

Flash trap

43

Garbage collector plein

44

Garbage collector corrompu

45

Garbage trap

46

overload ordres LZS

47

un trigger refuse de s'arrter

48

Erreur sur l'initialisation des segfments d'change

49

Trop de notif de breakpoint en cours

50

I/O dfinie incorrectement

51

N d'evenemtn incorrect dans kevent

52

Trop d'evenements systme en attente

53

Action inconnuedans un vnement

54

Trops d'vnements imbriqus

55

Erreur physique l'ouverture

56

Gestion modbus serial TRAP1

57

Requetes CANHost mixes !!

58

Pb modbus<=>CAN

59

Pb notif CAN => User

60

Pb notif CAN => User

61

Plus de canaux dispo

62

Pb notif CAN => User

63

Pb notif CAN => User

541

Printed Documentation

64

Manque de CANREQUEST dispo

65

Problme dans la liste de PDO envoyer lors d'un SYNC

66

Problme dans la liste de PDO in raffraichir lors d'un SYNC

67

Trop de noeuds mettre en nodeguarding

68

Can Host Motion trap 1

69

Plus d'lment de motion (requete kernel)

70

Un fichier est dj ouvert !

71

Rapatriement des donnes live des cames

72

Trop de trigger en attente sur ce moteur

73

plus de trigger pour un PDO

74

plus de trigger pour lancer un mouvement

75

Plus possible d'ajouter d'lmentts en kernel

76

Plus de mmoire LZS dispo

77

Rentrence sur IEC MALLOC

78

Erreur sur le user stub

79

Trame scope non reue !

80

Trame scope non attendue

81

Requete canhost partir de la pile => interdit

82

Erreur init smeaphore motion tool

83

Mode d'init ethercat inconnu

55

Erreur init bus Ethercat


0

Erreur un priphrique n'a pu tre initialis

Erreur l'init d'un paramtre d'un IMD

(sur le rseau) Adresse d'un priphrique ethercat hors des limites (<=0 ||
>=AXE_MAX)

2 MPC trouvs dans la config

Une entre indispensable d'un priphrique n'a pas t trouve dans la


config

(dans la config)Adresse d'un priphrique ethercat hors des limites (<=0 ||


>=AXE_MAX)

Erreur lors d'une allocation mmoire

Erreur lors de l'init des paramtres du MPC

56

57

542

Erreur communication Ethercat


1

Une trame cyclique n'est pas passe

Un esclave n'a pas rpondu

La dernire trame n'est pas partie (pb hard/surcharge)

Une trame cyclique a t tronque

Crash volontaire du bus ethercat

Breakpoint halt on error (debug uniquement)


Erreur interne "Host"

Annexes

Pas de callback CANHOST

Variable IMD inconnue

Accs download large (>4 octets) non implment

Accs upload non implment

TRAP interne

Escalve non valide

Plus de handle canhost dispo

Accs COE large (>4 octets) non implment

TRAP coe

10

Accs CAN, slave inavlide

11

Accs large SDO non implment

12

TRAP coe answer

13

TRAP requete interne

14

TRAP interne pour test

15

N de COBID trop lev

16

Pas assez de messages CAN dispo

17

Pas assez de canaux CAN dispo

58

Problme sur la BBM


0

La mmoire BBM a t efface cause d'une inchorence soft

La mmoire BBM a t efface 2 fois (pb hard ?)

La mmoire BBM n'a pu tre restaure partir de la flash (donnes en flash


invalides)

La mmoire BBM n'a pu tre restaure partir de la flash (DIP4 non


enclench)

La mmoire BBM n'a pu tre restaure partir de la flash (erreur lors de la


restauration)

59

Erreur IEC [Arrte les taches LZS !!!]


1

FB firmware inconnu

Division par 0

N d'in dex d'un tableau incorrect

erreur inconnue

erreur ouverture flash

erreur lecture flash

erreur criture flash

eur fermeture flash

erreur interne LZS

10

Impossible de dbloquer une tche user(systme) par le sequenceur

11

Trop de programme dans LZS

12

Trop de programme dans un groupe

13

N de programme invalide dans une groupe

543

Printed Documentation

544

14

Programme non trouv dans LZS

15

Priorit invalide dans un groupe de programme

16

Type de groupe inconnu

17

Type d'venement de dclenchement inconnu

18

Trop de requetes en entres sur la VM

19

Type de dmarrage inconnu

20

Aucune structure de programme LZS !

21

Out of memory pour dmarrer les tches.

22

Incohrnece structure de donnes LZS

24

Une tche a dlcench son WD

25

Trop de WD a grer

26

Aucun programme dans un groupe

27

Erreur sur une rfrence d'I/O

28

N de tche incorrecte

29

Requete incorrecte

30

Trop de segments globaux dans LZS

31

OOM LZS internal

32

Plus d'une seule tche evenement systme

33

La tche erreur systme a dclench son watchdog

34

Evenement utilisateur invalide

35

Evenement user incorrect

36

Trops d'action pour un vnement utilisateur

37

Liste des lments prsents sur le CAN (Modbus=>can) TRAP !

38

Mapping d'un PDO aboutit un PDO trop grand (>8 octets)

39

Requette NMT invalide

40

Trop de tches preinit

41

N de registre de capture incorrect

42

N d'axe incorrect

43

Plus de capture disponible

44

Erreur l'ajout d'une capture

45

Type de home inconnu

46

Source de capture/trigger inconnue

47

Type de source maitre incorrecte

48

Dnominateur de GEARBOX/GEARBOXRATIO null

49

Trap GEARBOX

50

Erreur sur lecture/criture d'une came en flash

51

N de came invalide

52

Erreur d'allocation mmoire sur une came

53

les gains d'une came sont invalides

Annexes

54

pas assez de points pour la came

55

direction invalide

56

Erreur au dmarrage d'une came

57

la came n'est pas monotonique croissante sur le maitre

58

N de bit incorrect dans une fonction GET/SET BIT x

59

Une came n'a pas t charge !

60

Source de capture/trigger incorrecte !

61

Type d'info pour breakcampos inconnu

62

Aucune tche ! pas possible de dmarrer

63

Plus de trigger dispo

64

Chargement d'une came en cours d'execution !

65

LoadCamI, erreur la description d'une came IEC

66

Ecriture interdite, flash non reconnue

67

Mode invalid pour SetMode

68

Erreur lors de l'initialisation des tches

60

Erreur init paramtres MPC | Sub

61

Erreur grave lors de la pr initialisation systme (dmarrage)!!! Defini


de faon externe : NE PAS MODIFIER
0

Erreur avant l'insertion du kernel/RTAI

IMS_START n'a pas dmarr correctement ou s'est arrt

IMS_PROXY n'a pas dmarr correctement ou s'est arrt

Le checksum des fichiers OS n'est pas correct lors du dmarrage

La mise jour est corrompue

Cette mise jour ne peut tre mise sur l'image en cours

DIP3 activ - demande de rechargement

Plantage pendant l'init step 0

Plantage pendant l'init step 1 (module kernel non trouv !)

62

Crash d'un thread | sub : N d'index du thread

63

Erreur IEC [N'arrte pas les taches LZS !!!]


5

pas de tche

Une tche a dlcench son WD (non fatal)

Cmd la VM LZS invalide

Opcode invalide

Opcode non support

10

Extension invalide

11

Powerflow non disponible

12

Bit ref invalide

13

Erreur la restauration des donnes

14

Rfrence invalide sur un champ de bit

15

Une assertion a choue

545

Printed Documentation

64

La tche d'initialisation LZS a retourne une erreur (donne en Sub)


1

Pas de retour de la tche d'initialisation, voir la fonction INITSETRESULT

65

Warning systme MPC


1

Attention, creux dtects dans l'alimentation 24V.

Attention, battery backup BBM H.S.

Attention, la config BBM a t restaure depuis la flash

Attention, surcharge sur les I/O

67

Erreur MPC
1

Sur temprature CPU

La batterie est H.S.

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.

L'adresse IP d'une machine est appele une adresse logique


Elle est code sur 32 bits soit 4 octets. La notation consiste indiquer chaque octet en
dcimal et les sparer par des points.
Ladresse IP dun ordinateur est compose de deux parties :

La premire partie est appele NetID, correspond ladresse du rseau, aussi


appel identifiant rseau. L'identifiant rseau identifie les systmes qui sont
situs sur le mme rseau physique. NetID doit tre unique au segment local.
La deuxime partie est appele HostID, correspond ladresse de la machine
sur le rseau, aussi appel identifiant machine. L'identifiant machine identifie
un poste de travail, le serveur, le routeur, ou tout autre dispositif de TCP/IP
dans un rseau. Le HostID pour chaque dispositif doit tre unique
l'identifiant de rseau. Un ordinateur reli un rseau de TCP/IP emploie le
NetID et le HostID pour dterminer quels paquets il devrait recevoir ou ignorer
et dterminer quels dispositifs doivent recevoir ses transmissions.

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

L'adresse IP de classe C autorise prs de 2 millions de rseaux de 254 de


machines par rseau
Classe D :
Cette classe d'adresse est rserve pour le multicast : la diffusion vers des
machines d'un mme groupe.
L'adressage est de 224.0.0.0 239.255.255.255
Le multicast est plutt utilis dans les rseaux de recherche. Il n'est pas utilis
dans le rseau normal.
Classe E :
. Rserve pour le futur.
Elles ne devraient pas tre employes sur des rseaux IP. Quelques
organisations de recherche utilisent les adresses de la classe E pour des buts
exprimentaux.
Voir aussi :
Adresses IP
Masque sous rseau
Les rseaux interdits
Distribution des adresses et connectivit
Masque sous-rseau
Le masque de rseau

Pour connatre la partie rseau (NetID) et la partie machine (HostID) de


l'adresse IP, il suffit d'utiliser le "NetMask" ou masque de rseau. Pour obtenir
NetID, il faut effectuer un ET (AND) bit bit entre l'adresse IP et le NetMask.
Pour obtenir l'identifiant machine, il faut effectuer un ET bit bit entre
l'adresse IP et le masque de rseau complment 1.
Exemple:
Une adresse IP de classe C : 192.168.4.211 avec le masque de
rseau 255.255.255.0
11000000101010000000010011010011
Et
11111111111111111111111100000000
__________________________________
11000000101010000000010000000000
192
. 168
. 4
. 0

548

Annexes

L'identifiant rseau est : 192.168.4, on peut galement crire NetID :


192.168.4.0
L'identifiant machine est : 211
Netmask par dfaut:
Classe d'adresse

Adresse IP

Masque par dfaut

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

Les rseaux interdits

Il est galement interdit d'utiliser les adresses IP de 127.0.0.0 127.255.255.255. Ces


adresses sont rserves pour le Loopback. Le message envoy cet adresse ne sera pas
envoy au rseau, il sera retourn l'application par le logiciel de pilote de la carte.
L'adresse IP 127.0.0.1 est utilise pour la machine locale et pour tester si la carte de
rseau est bien installe ainsi quelle fonctionne bien.

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

. Distribution des adresses IP :

Sur l'Internet, l'organisme IANA (Internet Assigned Numbers/Naming Authority) est


charg de la distribution des adresses IP. Cet organisme distribue les adresses IP aux
fournisseurs d'accs Internet.
Lorsque vous ne reliez pas votre rseau interne directement l'Internet, vous pourrez
employer n'importe quelle adresse valide de la classe A, B, ou C. Cependant,
n'importe quel dispositif qui est reli directement l'Internet, doit tre assign une
identifiant rseau par la communaut d'Internet. L'organisation responsable
d'administrer l'attribution des parties d'identifiant rseau pour des dispositifs de rseau
directement relis l'Internet est "Internet Network Information Center (InterNIC)".
Pour la distribution des adresses IP sur le rseau IP :
o Statique : L'administrateur doit assigner manuellement une adresse IP unique
pour chaque poste de travail sur le rseau
o Dynamique : L'adresse est dlivre par le serveur DHCP (Dcrit dans le
chapitre suivant)
. 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

Un ordinateur connect un rseau local et l'Internet par un modem aura deux


adresses IP.
En gnral, un ordinateur dispose d'une seule interface, mais il peut avoir aussi deux
ou plusieurs interfaces permettent l'interconnexion de plusieurs rseaux.

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 :

Un buffer de 1024 octets en mission + 16 octets de FIFO

Un buffer de 1024 octets en rception

Selon la configuration du port srie, les mots mis ont :

1 Bit de start

6, 7 ou 8 bits de donnes

1 ou 2 bits de stop

Un mot reprsente donc de 8 11 bits.


En rception la FIFO fonctionne comme une FIFO part entire, on assure un dbut allant jusqu
16 mots reus par interruption (150s), ce qui permet de tenir sans aucun problme le dbit
maximal possible par les ports srie : 115200 bauds.
En mission, la FIFO fonctionne comme un buffer de stockage supplmentaire de 16 mots. On ne
la remplit que lorsquelle est vide. On assure donc un dbit constant de 66666 bauds maximal (en
8N1). Au-del de cette valeur, on aura des espacements possibles entre les groupes de 16
caractres
Si un des buffers dmission (lors de lappel COMWRITE) ou de rception (lors de la rception de
caractres), est plein les bits correspondant dans MODBUSERROR sont positionns
Pour les fonctions daccs srie, un handle est invalide dclenche une erreur systme.
En ouvrant une connexion TCP par COMOPENTCP, on peut utiliser un protocole TCP libre, avec
les fonctions COMREAD, COMWRITE, COMCARIN et COMOUTEMPTY. Le protocole TCP libre
permet deffectuer une connexion en sortie sur nimporte quel port/adresse, y compris les services

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

Retourne le nombre d'octet

COMCARIN
Syntaxe
<NbCar> := COMCARIN (<Com>)
Types accepts
<Com> : tHandle
<NbCar>:UDINT
Description
Cette fonction retourne le nombre de caractres dans le buffer de rception

Efface 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

Ferme le port de communication


srie

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

COMOPEN - Ouvre un port de communication


Syntaxe
<ComSerie> := COMOPEN (<NumPortSerie>)
Type accept
<NumPortSerie> : USINT
<ComSerie> : tHandle
Description
Cette instruction permet d'ouvrir le port de communication srie.
<NumPortSerie> mettre 1 pour la COM1 ou 2 pour la COM2
<ComSerie> variable du type port communication.

COMOPENTCP - Ouvre un port de communication TCP


Syntaxe
<ComTCP> := COMOPENTCP (<Adresse> <Port>)
Type accept

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.

Retourne TRUE si le buffer d'm

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

Lit des donnes sur une liaison

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

<Taille> : nombre d'octets max lire


<TailleRecue> : nombre d'octets rellement reus.
Remarque
Si le protocole configur pour le port srie est modbus esclave, alors l'appel cette fonction
dclenche une erreur systme
On peut lire au maximum la taille du buffer du port srie (1024 octets), au-del dclenche une
erreur systme

COMWRITE

Envoie des donnes sur une liais

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 :

Principe Matre / Esclave :


Ce type de protocole permet d'interroger depuis le matre, un ou plusieurs esclaves intelligents
Deux types de dialogue sont possibles entre le matre et l'esclave :
Le matre parle un esclave et attend sa rponse.
Le matre parle l'ensemble des esclaves sans attente de rponse.
Le matre gre les changes et lui seul en a l'initiative.

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.

Tableau des requtes pour Matre MODBUS :

03
04
06
16

:
:
:
:

Liste des fonctions MODBUS supportes


Lecture de n mots **
Lecture de n mots d'entres
Ecriture d'un mot
Ecriture de n mots**

** : Ce code fonction est utilis galement pour l'accs au format "mot double" et au format "mot
flottant".

Tableau des requtes pour Esclave MODBUS :

03
04
06
16

:
:
:
:

Liste des fonctions MODBUS supportes


Lecture de n mots **
Lecture de n mots d'entres
Ecriture d'un mot
Ecriture de n mots**

ModBus RTU / ASCII :

Dfinition d'une trame au format RTU :

N
d'esclave
Code

: 0 255
: Indique le type d'change

557

Printed Documentation
fonction
Zone de
donnes
CRC16

: Champ d'informations contenant les paramtres lis la fonction :


adresse mot, valeur de mot, nombre de mots...etc.
: Mot utilis pour dtecter les erreurs de transmission (Cyclic
Redundary Check).

LECTURE DE N MOTS : Code fonction 03 ou 04 (03 ou 04 en Hxa)


Commande :

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

Valeur du premier mot

Code fonction 03 ou
04
1 octet

MSB

LSB

ECRITURE D'UN MOT : Code fonction 06 (06 en Hxa)


Demande :
Adresse du
priphrique
1 octet
Rponse :

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

ECRITURE DE N MOTS : Code fonction 16 (10 en Hxa)


Demande :
Adresse du
priphrique

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 :

Le Numro de port utilis pour les changes est le 502.


L'ensemble des protocoles TCP/IP est ralis selon les spcifications Modicon :
Couche 4 :

TCP -> RFC 793


UDP -> RFC 768

Couche 3 :

ICMP :-> RFC 792


IP -> RFC 791
ARP -> RFC 826

Couche 2b :

Ethernet V2

Couche 2a :

IEEE 802.3 CSMA/CD

Les couches 5 et 6 ne sont pas utilises.


La solution TCP/IP fournit la fonctionnalit suivante :

559

Printed Documentation

Dfinition d'une trame de donnes ModBus standard :

ADU
PDU

: Application Data Unit


: Protocol Data Unit

Dfinition d'une trame de donnes ModBus sur TCP/IP :

Il existe donc quelques diffrences entre le protocole Modbus RTU et le TCP/IP :

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.

Description de l'en-tte MBAP :


Champs
Identifiant
de la
transaction
Identifiant
du
protocole
Longueur

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

Lecture de n mots en Modbus

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

Ecriture de n mots en Modbus

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)

MODBUSCOUNTER - Retourne le nombre de message du Modbus


Syntaxe
<Q> = MODBUSCOUNTER (<NumCompteur>)
Type accept

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 0 1 si erreur UART

Bit 1 1 si timeout

Bit 2 1 si erreur de protocole (modbus TCP)

Bit 3 1 si erreur d'identifiant (modbus TCP)

Remarque
Si <Com> n'est pas ouvert ou invalide alors <EtatCOM> = 0, mais cela ne dclenche pas d'erreur
systme.

MODBUSERRORCOUNTER - Retourne le nombre d'erreur du Modbus


Syntaxe
<Q> = MODBUSERRORCOUNTER (<NumCOM>)
Type accept
<NumCompteur> : USINT
<Q> : UDINT
Description
Cette fonction retourne le nombre de message d'un des compteurs Modbus
<NumCOMt>
10 : nombre d'erreurs sur le port COM1

564

Annexes

20 : nombre d'erreurs sur le port COM2

MODBUSERRORRESET - Reset les bits de dfauts

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

Communication Profile Area

Manufacturer Specific Profile Area

Standardised Device Profile Area

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.

Les transferts de donnes en temps rel sont raliss


laide de PDO (Process Data Object).
La lecture ou lcriture dentres dans lObject Dictionnary
dun lment sont raliss laide de SDO (Service Data
Object).
Les applications telles que la Synchronisation, le Time
Stamp, lEmergency ont des protocoles spciaux.
Le protocole du Network Management (NMT) donne des
services pour lInitialisation, le Contrle dErreurs, et
lEtat dun Nud.

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

De transmettre des messages (modle Push)

De demander des messages (modle Pull)

Annexes

PDO (Process Data Object) et PDO Mapping


Les messages PDO sont utiliss pour manipuler des objets de lObject Dictionnary sans se
rfrencer explicitement leurs identifiants, les types des donnes et la liste des objets
transmettre tant dfinis dans une structure appele PDO mapping.

Dans le schma ci-dessus, le PDO mapping PDO_1 va provoquer la ralisation successives


des applications dcrites par les objets yyyyh, puis zzzzh et enfin xxxxh.
Une communication par PDO ressemble au modle Producer/Consumer. La donne est
transmise sans demande de confirmation et est mise dun nud (Producer) vers un,
plusieurs ou tous les nuds (Consumers).
Le nud Producer envoie un Transmit-PDO qui correspond, pour le nud consommateur,
un Receive-PDO.

Les messages PDO correspondent aux entres de lObject Dictionnary et fourniront


lapplication concerne les donnes ncessaires son fonctionnement.

569

Printed Documentation

Il existe principalement deux types de message PDO:


Ecrire un PDO
Ce service est contenue dans une seule Data Frame.
Lire un PDO
Ce service est contenu dans une Remote Frame. La rponse cette dernire est la
Data Frame correspondante.
Dans les deux cas, le champ de donnes de la trame contient la donne du process
sur 8 octets.

Deux paramtres permettent de dcrire un PDO :

Le PDO communication parameter qui dcrit les possibilits de communication


dun PDO.
Transmit PDO Communication Parameter
DATA TYPE

PDO CommPar

OBJECT CODE

RECORD

SUB INDEX 0

Largest sub-index supported

SUB INDEX 1

COBID used by PDO

SUB INDEX 2

Transmission Type

SUB INDEX 3

Inhibit time

SUB INDEX 4

Reserved

SUB INDEX 5

Event timer

Receive PDO Communication Parameter

570

DATA TYPE

PDO CommPar

OBJECT CODE

RECORD

SUB INDEX 0

Largest sub-index supported

Annexes

SUB INDEX 1

COBID used by PDO

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

SUB INDEX 1-40h

PDO Mapping for the nth


application object to be
mapped

Receive PDO Mapping


DATA TYPE

PDO Mapping

OBJECT CODE

RECORD

SUB INDEX 0

Number of mapped
applications objects in PDO

SUB INDEX 1-40h

PDO Mapping for the nth


application object to be
mapped

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

Node ID of the SDO client

Client SDO Parameter

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

Node ID of the SDO server

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.

Les 8 bits de data dans la trame sont rpartis de la manire suivante :

Les deux premiers octets contiennent le code derreur cit ci dessus.

Le second contient le registre derreur qui rend compte dune erreur interne. Il
correspond lobjet 1001h.

Les 5 derniers constituent le champ derreur spcifique au constructeur.

Le network management (NMT)


Le NMT est un nud dit orient et suit la structure matre esclave.
A travers les services du NMT il est possible dinitialiser un nud, de le dmarrer, de faire
un reset, de le stopper, de lactiver, de le contrler. Tous les nuds sont considrs comme
des esclaves du NMT et un tel esclave est uniquement identifi sur le rseau par son NodeId, qui est une valeur comprise entre 1 et 127. Le principe du NMT demande ce que un
lment du rseau remplisse les fonctions de matre NMT.

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.

Le mcanisme de heartbeat consiste pour un lment de transmettre de faon


cyclique un message de prsence gnr par un Heartbeat Producer. Un ou
plusieurs lments connects au rseau reoivent ce message et si sa priodicit
change par rapport celle du Heartbeat Producer alors lapplication locale en est
informe.

nota : limplmentation du Heartbeat OU du Node Guarding est obligatoire.


Dtaillons maintenant plus prcisment les mcanismes de Heartbeat et de node guarding.
Seul le node guarding est implment dans le MPC.
Le node guarding
Le Node Guarding est la surveillance des nuds du rseau. Le matre du NMT (Network
Management) envoie une RTR (Remote Transmission Request) intervalles rguliers (cette
priode est appele le Guard Time) et le nud concern doit rpondre dans un laps de
temps imparti (cest le Node Life Time gal au Guard Time multipli par le Life Time Factor).
La valeur du Life Time est 0 par dfaut (cest a dire quil nest pas utilis).

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

Si un nud na pas reu de message de Heartbeat pendant un certain temps (appel


Heartbeat Consumer Time), un vnement Heartbeat sera gnr.

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 :

initialisation: utilisation du message Boot-up pour communiquer avec l'lment


matre du rseau ;
o pr-oprationnel : seuls les messages SDO sont permis ;
o oprationnel : les messages SDO et PDO sont permis ;
o stopp : seule la communication l'lment matre est permise.

Structure d'une trame CAN

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

L'Arbitration Field est constitu du COB, de l'identifier (ID) et du bit RTR.


Le COB-ID permet d'identifier le message et est utilis lors de larbitrage. LID comporte ici 7
bits puisque nous utilisons la version 2.0A du protocole de communication sur le bus CAN.
Le bit RTR (Remote Transmission Request) caractrise les Remote Frames. Il est dominant
dans les Data Frames et rcessif dans les Remote Frames (ces dernires seront dtailles
dans le chapitre suivant).
Control Field

Le Control Field est compos de 6 bits :

Les 2 premiers sont des bits rservs.

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).

Un nud en train de transmettre envoie un bit rcessif pour le ACK Slot.

Un nud ayant reu correctement un message en informe le transmetteur en


envoyant un bit dominant pendant le ACK Slot : il acquitte le message.

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.

Configuration du rseau CANopen


Le rseau CAN OPEN est constitu de diffrents lments, tous pouvant tre matre et esclaves.
Ils sont identifis dans le rseau par un numro arbitraire, que l'on appelle le Node-ID. Ce
paramtre doit tre unique : 2 lments distincts du rseau ne peuvent pas avoir le mme Node-ID.
Ce Node-ID est trs important, c'est la vritable carte d'identit du priphrique sur le rseau CAN
Open.
Le principe de cblage est le suivant :

Principe de cblage d'un rseau Can Open


Important : Pensez aux rsistances de terminaison chaque extrmit du rseau.
Pour le MPC, la rsistance est valide si le DIP 1 est mis On. Dans le cas contraire, la rsistance
est dvalide.
Sur les autres produits, se reporter la notice du constructeur.
CANopen sur MPC

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.

Les distances maximales utiliser suivant la vitesse sont les suivantes :

Annexes

Vitesse de
transmission

Longueur maximale du bus


10KBauds

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

Image interne CANopen des entres (image


de process)
0x6100/0x00 : Accs 8 bits l'octet 0 de
l'image de process
0x6100/0x01 : Accs 8 bits l'octet 1 de
l'image de process
0x6100/0x02 : Accs 8 bits l'octet 2 de
l'image de process
0x6100/0x03 : Accs 8 bits l'octet 3 de
l'image de process
...

585

Printed Documentation

0x6100/0x00 : Accs 16 bits aux octets 0 et 1


de l'image de process
0x6100/0x00 : Accs 16 bits aux octets 1 et 2
de l'image de process
...
0x6100/0x00 : Accs 32 bits aux octets 0,1,2
et 3 de l'image de process

0x61100x6111

Image interne CANopen des sorties (image de


process)
0x6100/0x00 : Accs 8 bits l'octet 0 de
l'image de process
0x6100/0x01 : Accs 8 bits l'octet 1 de
l'image de process
0x6100/0x02 : Accs 8 bits l'octet 2 de
l'image de process
0x6100/0x03 : Accs 8 bits l'octet 3 de
l'image de process
...
0x6100/0x00 : Accs 16 bits aux octets 0 et 1
de l'image de process
0x6100/0x00 : Accs 16 bits aux octets 1 et 2
de l'image de process
...
0x6100/0x00 : Accs 32 bits aux octets 0,1,2
et 3 de l'image de process

0x7000

BBM Bloc 0 / 8bits / Accs standard


0x7000/0x00 : Octet 0
0x7000/0x01 : Octet 1
..
0x7001/0x00 : Octet 256
...

0x7100

BBM Bloc 1 / 8bits / Accs standard

0x7200

BBM Bloc 2 / 8bits / Accs standard

...
0x7E00

BBM Bloc 14 / 8bits / Accs standard

0x7F00

BBM Bloc 15 / 8bits / Accs standard

0x8000

BBM Bloc 0 / 16bits / Accs standard

0x8100

BBM Bloc 1 / 16bits / Accs standard

0x8200

BBM Bloc 2 / 16bits / Accs standard

...
0x8E00

586

BBM Bloc 14 / 16bits / Accs standard

Annexes

0x8F00

BBM Bloc 15 / 16bits / Accs standard

0x9000

BBM Bloc 0 / 32bits / Accs standard

0x9100

BBM Bloc 1 / 32bits / Accs standard

0x9200

BBM Bloc 2 / 32bits / Accs standard

...
0x9D00

BBM Bloc 13 / 32bits / Accs standard

0x9E00

BBM Bloc 0 / 32bits / Accs selon le


paramtre "Inversion"

0x9F00

BBM Bloc 0 / 32bits / Accs selon les


paramtres "Inversion" et "conversion"

0xA000

Segment d'change / 8 Bits / Accs standard

0xA100

Segment d'change / 16 Bits / Accs standard

0xA200

Segment d'change / 32 Bits / Accs standard

0xA300

Segment d'change / 32 Bits / Accs selon le


paramtre "Inversion"

0xA400

Segment d'change / 32 Bits / Accs selon les


paramtres "Inversion" et "conversion"

La zone d'entres / sorties de l'image de process est gnralement mappe par PDO avec les
modules d'entres sorties.
Liste d'instructions

Compteur du serveur SDO du MPC

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

Dtection des erreurs

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)

Bit 1 1 si le temps de rponse du SDO est coul

Bit 2 1 si erreur de Node Guarding

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

Indique si une trame

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

Retourne l'tat du NMT local

Syntaxe
< NMTLocal > = CANGETNMT (0)
Unit
< NMTLocal > : USINT
Description
Cette instruction renvoie l'tat du NMT local :

1 pour PREPARED

2 pour OPERATIONNAL

Ajoute un priphrique au Node Gua

CANGUARDADD
Syntaxe
CANGUARDADD(<CANperiph>)
Unit
< CANperiph > : tPeripheral
Description

CANGUARDADD permet d'ajouter un priphrique surveiller au Node Guarding.


Exemple
CANGUARDADD(RIO1) ;

CANGUARDPARAM

Paramtre le Node Guarding matre

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 :

<Time> : priode du Node Guarding en ms

<Retry> : nombre d'essais

<COBID> : COBID de base d'interrogation (par dfaut : 0x700)

<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);

Retire un priphrique au Node Guar

CANGUARDDEL
Syntaxe
CANGUARDDEL(<CANperiph>)
Unit
< CANperiph > : tPeripheral
Description

CANGUARDDEL permet de retirer un priphrique de la liste Node Guarding.


Exemple
CANGUARDDEL(RIO1) ;

Retire tous les priphrique

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

Envoie une commande NMT

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

MPC : auto dmarre le NMT en local

IMD : aucune action

Module CAN dclar dans la configuration, envoie un NMT vers ce priphrique

Remarque
Il est possible d'utilis un numro de noeud direct avec la fonction NODECAN(x)

CANSENDSYNCHRO

Envoie un message de synchro

Syntaxe
CANSENDSYNCHRO (<COBID>)
Types accepts
< COBID > : UDINT
Description
Cette fonction envoie un message de synchro sur le COBID concern.

CANSETUP

Dfinit les COBID d'

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

envoie une trame CAN sur le COBI

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

Lecture de la table CANopen d'un

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

READPARAMR Lecture de la table CANopen d'un priphrique


Syntaxe
<Q> = READPARAMR (<Peripherique>, <Parametre>)
Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD ...)
<Parametre> : Nom du paramtre du priphrique
<Q> : REAL
Description
Cette fonction retourne la valeur de type REAL d'un paramtre du priphrique
Remarque
Cette fonction est aussi utilisable pour lire un index de la table CANopen du MPC
Voir aussi
READR
WRITER
READPARAM
WRITEPARAMR

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

Ecriture dans la table CANopen d'un p

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

Ecriture dans la table CANope

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

Ecriture dans la table CANop

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

Ecriture de la table CANopen d'un prip

Annexes

WRITER (<Peripherique>, <Index>, <SousIndex>, <Taille>, <Data>)


Types accepts
<Peripherique> : Nom de priphrique (MPC, IMD
<Index> : UINT
<SousIndex> : USINT
<Taille> : USINT
<Data> : REAL

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

Initialisation de module RIO


Tache d'initialisation du MPC
Cette tche initialise les diffrents priphriques et bus du MPC.
Pour initialiser les modules RIO, cette tche fait appelle la fonction InitRio().
PROGRAM P_INIT
VAR_EXTERNAL
Fault

: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;

(* Forcage de l'initialisation EtherCAT *)


(* Forcage de l'initialisation CANOPEN IO *)

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);

(*NMT start sur IMD*)

CANSENDNMT(RIO2,1);

(*NMT start sur IMD*)

CANSENDNMT(RIO3,1);

(*NMT start sur IMD*)

CANSENDNMT(RIO4,1);

(*NMT start sur IMD*)

CANSENDNMT(MPC,1);

(*NMT start en local*)

End_If;
(*Autorisation du dmarrage des autres tches *)
Fault:=0;
INITSETRESULT(0);

Fonction d'initialisation du RIO


FUNCTION INITRIO : BOOL
VAR_INPUT
RioModule:tPeripheral;
END_VAR
VAR
ModuleNodeID:udint; (* Node ID du module *)
TxPdoParamIndex:uint; (* Index des parametres du PDO d'emission *)
TxPDOCOBID:udint; (* COBID du TxPDO *)
TxPdoMappingIndex:uint; (* Index du mapping du PDO d'emission *)
OutRefreshTime:uint := 50; (* Frequence de rafraichissement des
sorties : 10 ms *)

598

Annexes

Adr:udint; (* Adresse CANopen de zone correspondante en image de


process *)
RxPdoParamIndex:uint; (* Index des parametres du PDO de reception *)
RxPDOCOBID:udint; (* COBID du RxPDO *)
RxPdoMappingIndex:uint; (* Index du mapping du PDO de reception *)
GuardTime:uint := 100; (* Periode du node guarding *)
LifeTimeFactor:uint := 3;

(* Nombre d'essais *)

InRefreshTime:uint := 50; (* Frequence de rafraichissement des


entres : 10 ms *)
InputInvert:Dword; (* Inversion des entres *)
Invert:Byte; (* Inversion d'un bloc de 8 entres *)
Filter1Period:usint; (* Filter 1 *)
Filter2Period:usint; (* Filter 2 *)
FilterEnable:DWord; (* Activation des filtres *)
Enable:Byte;
FilterNum:DWord; (* Numro du filtre *)
Num:Byte;
OutputInvert:Dword; (* Inversion des sorties *)
OutputRetreat:Dword; (* Repli des sorties *)
Retreat:Byte; (* Repli d'un bloc de 8 sorties *)
END_VAR
(************************************************************************
***************)
(*
*)
(*

Initialisation du module RIO 40


*)

(*
*)
(************************************************************************
***************)
(*
*)
(* 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 *)

(* COBID sur lequel sont

WRITE(MPC,TxPdoParamIndex,2,08,254); (* Tx periodique *)

599

Printed Documentation

WRITE(MPC,TxPdoParamIndex,3,16,0); (* Pas d'inhibit *)


WRITE(MPC,TxPdoParamIndex,5,16,UINT_TO_UDINT(OutRefreshTime)); (* Periode
d'mission en ms *)
;
(* Init mapping PDO en emission sur MPC *)
TxPdoMappingIndex:=UDINT_TO_UINT(16#1A00+64+ModuleNodeID);
WRITE(MPC,TxPdoMappingIndex,0,32,1); (* 1 element *)
Adr:=READPARAM(RioModule,_CANIO_OUTPUT_ADDRESS); (* Lecture de l'adresse
en image de process *)
Adr:=((Adr-512)+16#611000)*256+16#10; (* Conversion de l'adresse en
Index/Sub CANopen *)
WRITE(MPC,TxPdoMappingIndex,1,32,Adr); (* Ecriture du mapping du TxPDO *)
;
(* Init paramtrage PDO en reception sur MPC *)
RxPdoParamIndex:=UDINT_TO_UINT(16#1400+64+ModuleNodeID);
RxPDOCOBID:=16#180+ModuleNodeID;
WRITE(MPC,RxPdoParamIndex,1,32,RxPDOCOBID); (* COBID sur lequel sont
reues les entres *)
WRITE(MPC,RxPdoParamIndex,2,08,254); (* Periodique immediat *)
;
(* Init mapping PDO en reception sur MPC *)
RxPdoMappingIndex:=UDINT_TO_UINT(16#1600+64+ModuleNodeID);
WRITE(MPC,RxPdoMappingIndex,0,32,1); (* 1 element *)
Adr:=READPARAM(RioModule,_CANIO_INPUT_ADDRESS); (* Lecture de l'adresse
en image de process *)
Adr:=((Adr-512)+16#610000)*256+16#20; (* Conversion de l'adresse en
Index/Sub CANopen *)
WRITE(MPC,RxPdoMappingIndex,1,32,Adr); (* Ecriture du mapping du RxPDO *)
;
(* Initialisation du Node Guarding du RIO *)
WRITE(RioModule,16#100C,0,16,UINT_TO_UDINT(GuardTime)); (* Temps de garde
en ms *)
WRITE(RioModule,16#100D,0,8,UINT_TO_UDINT(LifeTimeFactor)); (* Nombre
d'essais *)
;
(* Initialisation du TxPDO du RIO *)
WRITE(RioModule,16#1800,2,8,254); (* Transmission type 254 *)
WRITE(RioModule,16#1800,3,16,UINT_TO_UDINT(InRefreshTime)); (* Inhibit
time des entres *)
;
(* Initialisation des inversions du RIO *)
InputInvert:=UDINT_TO_DWORD(READPARAM(RioModule,_CANIO_INPUTS_INVERT_1));
Invert:=DWORD_TO_BYTE(InputInvert);
WRITE(RioModule,16#6002,1,8,BYTE_TO_UDINT(Invert)); (* Inversion entres
1 8 *)
InputInvert:=SHR(InputInvert,8);
Invert:=DWORD_TO_BYTE(InputInvert);

600

Annexes

WRITE(RioModule,16#6002,2,8,BYTE_TO_UDINT(Invert)); (* Inversion entres


9 16 *)
InputInvert:=SHR(InputInvert,8);
Invert:=DWORD_TO_BYTE(InputInvert);
WRITE(RioModule,16#6002,3,8,BYTE_TO_UDINT(Invert)); (* Inversion entres
17 24 *)
;
(* Initialisation des filtres du RIO *)
Filter1Period:=UDINT_TO_USINT(READPARAM(RioModule,_CANIO_FILTER_PERIOD));
Filter2Period:=UDINT_TO_USINT(READPARAM(RioModule,_CANIO_FILTER_2_PERIOD)
);
WRITE(RioModule,16#2000,1,8,USINT_TO_UDINT(Filter1Period)); (* Filtre 1
*)
WRITE(RioModule,16#2000,2,8,USINT_TO_UDINT(Filter2Period)); (* Filtre 2
*)
;
(* Initialisation du filtrage du RIO *)
FilterEnable:=UDINT_TO_DWORD(READPARAM(RioModule,_CANIO_FILTER_ENABLE_1))
;
Enable:=DWORD_TO_BYTE(FilterEnable);
WRITE(RioModule,16#6003,1,8,BYTE_TO_UDINT(Enable)); (* Filtres entres 1
8 *)
FilterEnable:=SHR(FilterEnable,8);
Enable:=DWORD_TO_BYTE(FilterEnable);
WRITE(RioModule,16#6003,2,8,BYTE_TO_UDINT(Enable)); (* Filtres entres 9
16 *)
FilterEnable:=SHR(FilterEnable,8);
Enable:=DWORD_TO_BYTE(FilterEnable);
WRITE(RioModule,16#6003,3,8,BYTE_TO_UDINT(Enable)); (* Filtres entres 17
24 *)
;
(* Initialisation des numro de filtres du RIO *)
FilterNum:=UDINT_TO_DWORD(READPARAM(RioModule,_CANIO_FILTER_NUM_1));
Num:=DWORD_TO_BYTE(FilterNum);
WRITE(RioModule,16#2100,1,8,BYTE_TO_UDINT(Num)); (* Numro du filtre des
entres 1 8 *)
FilterNum:=SHR(FilterNum,8);
Num:=DWORD_TO_BYTE(FilterNum);
WRITE(RioModule,16#2100,2,8,BYTE_TO_UDINT(Num)); (* Numro du filtre des
entres 9 16 *)
FilterNum:=SHR(FilterNum,8);
Num:=DWORD_TO_BYTE(FilterNum);
WRITE(RioModule,16#2100,3,8,BYTE_TO_UDINT(Num)); (* Numro du filtre des
entres 17 24 *)
;
(* Initialisation des inversions du RIO sorties *)
OutputInvert:=UDINT_TO_DWORD(READPARAM(RioModule,_CANIO_OUTPUTS_INVERT_1)
);
Invert:=DWORD_TO_BYTE(OutputInvert);

601

Printed Documentation

WRITE(RioModule,16#6202,1,8,BYTE_TO_UDINT(Invert)); (* Inversion sorties


1 8 *)
WRITE(RioModule,16#6200,1,8,BYTE_TO_UDINT(Invert)); (* Valeur sorties 1
8 *)
OutputInvert:=SHR(OutputInvert,8);
Invert:=DWORD_TO_BYTE(OutputInvert);
WRITE(RioModule,16#6202,2,8,BYTE_TO_UDINT(Invert)); (* Inversion sorties
9 16 *)
WRITE(RioModule,16#6200,2,8,BYTE_TO_UDINT(Invert)); (* Valeur sorties 9
16 *)
;
(* Initialisation des valeurs de replis des sorties *)
OutputRetreat:=UDINT_TO_DWORD(READPARAM(RioModule,_CANIO_OUTPUTS_RETREAT_
1));
Retreat:=DWORD_TO_BYTE(OutputRetreat);
WRITE(RioModule,16#6206,1,8,16#FFFFFFFF); (* Activation replis sorties 1
8 *)
WRITE(RioModule,16#6207,1,8,BYTE_TO_UDINT(Retreat)); (* Replis sorties 1
8 *)
OutputRetreat:=SHR(OutputRetreat,8);
Retreat:=DWORD_TO_BYTE(OutputRetreat);
WRITE(RioModule,16#6206,2,8,16#FFFFFFFF); (* Activation replis sorties 9
16 *)
WRITE(RioModule,16#6207,2,8,BYTE_TO_UDINT(Retreat)); (* Replis sorties 9
16 *)
InitRIO:=True;
;
END_FUNCTION

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 :

Le MPC se connecte au PC distant via le port 6100


Liaison entre le MPC et son accs Internet
Type : Ethernet TCP/IP
Liaison entre le PC distant et son accs Internet
Type : Accs Internet local (Modem RTC, ADSL ...)
Accs Internet par rseau local (Routeur)
Pour les 2 types d'accs, il faut que le port 6100 soit ouvert sur le PC distant (arrt ou
modification des paramtres du firewall).
Dans le cas d'un accs par rseau local, il faut rediriger le port 6100 du routeur vers le PC
distant (voir avec votre administrateur rseau).
Configuration de la liaison
Configuration de l'Ethernet TCP
CONFIGURATION \ MPC \ ETHERNET TCP \ ETHERNET TCP

607

Printed Documentation

Nom : nom donn au MPC (facultatif)


Adresse IP : adresse IP du MPC ( remplir pour accder au MPC en connexion direct)
Masque : masque de sous-rseau ( remplir pour utiliser la tlmaintenance)
Passerelle : adresse IP de la passerelle du rseau sur lequel est connect le MPC (
remplir pour utiliser la tlmaintenance)
DNS : adresse du serveur DNS ( remplir pour utiliser la tlmaintenance via un serveur
DNS)

Configuration de la Tlmaintenance
CONFIGURATION \ MPC \ ETHERNET TCP \ TELEMAINTENANCE

IP Tlmaintenance : adresse IP du PC distant ou routeur (obligatoire, cette adresse devra


tre fourni ou rempli par l'utilisateur final via un pupitre).
Utilise l'entre 32 : activation de la tlmaintenance par l'entre 32

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).

Il est possible de visualiser l'adresse IP du PC distant en dmarrant l'assistant de


tlmaintenance do logiciel Motion Studio
Etablissement de la liaison
Le dmarrage de la tlmaintenance ncessite 2 personnes : La 1re personne sur le site du MPC
doit pouvoir modifier la configuration de la tlmaintenance (adresse IP de tlmaintenance) et
dmarrer la connexion via un pupitre, la seconde personne sur le site du PC distant devra tre
capable de fournir l'adresse de tlmaintenance.
Une fois la connexion tablie, la personne sur le site du MPC n'est plus ncessaire.
Activation de la Tlmaintenance cot MPC

Demande de tlmaintenance sur le MPC :

Soit par l'excution de l'instruction Remote (1)


Soir par la modification du paramtre _MPC_REMOTE_CONTROL via le bus CANopen ou
Modbus.
Soit par un front montant sur l'entre 32 du MPC (si le paramtre Utilise l'entre 32 est activ)
Affichage cyclique des lettres H L P sur l'afficheur 7 segment de MPC.
Si au bout de 10 mn, il n'y a pas eu de connexion avec le PC distant, la demande de
tlmaintenance s'arrte et l'affichage de HLP disparat.
Activation de la Tlmaintenance cot PC distant

608

Annexes

Dmarrer l'assistance de tlmaintenance en cliquant sur tlmaintenance dans le menu

Options ( partir de la version 0.59) ou l'icne


du logiciel Motion Studio.
Slectionner l'interface (carte rseau, modem) utilis pour la connexion avec le MPC :

Dmarrer la connexion de PC distant en cliquant sur START


Le PC distant attend la connexion du MPC

Le MPC se connecte au PC distant

Dmarrer la communication entre le Motion Studio et le MPC en cliquant sur Connecter


dans le menu Communication ou sur l'icne
du logiciel Motion Studio.
Affichage permanent d'un H sur l'afficheur 7 segment de MPC.

En mode tlmaintenance, il est possible de recharger le systme d'exploitation,


redmarrer le MPC, sans perte de connexion.
Arrt de la Tlmaintenance

Arrt de la tlmaintenance :

Soit par l'excution de l'instruction Remote (0).

609

Printed Documentation

Soir par la modification du paramtre _MPC_REMOTE_CONTROL via le bus CANopen ou


Modbus.
Soit par un front descendant sur l'entre 32 du MPC (si le paramtre Utilise l'entre 32 est
activ)
Exemple d'cran de paramtrage
Ecran de commande de la tlmaintenance :

A partir de cet cran, on peut accder l'cran de configuration de la tlmaintenance.


Le bouton dmarrer (_MPC_REMOTE_CONTROL) permet de dmarrer ou arrter la
tlmaintenance, il correspond l'instruction REMOTE (x).
L'tat de la connexion est renvoy par le paramtre _MPC_REMOTE_STATUS, il correspond
l'tat de l'instruction REMOTE_S (0).
Nom du paramtre

Adr. Modbus - taille

Rle

_MPC_REMOTE_CONTROL

430203 (1)

Tlmaintenance

_MPC_REMOTE_STATUS

430204 (1)

Etat

Ecran de configuration de la tlmaintenance :

610

Annexes

Cet cran permet de modifier tous les paramtres ncessaires la tlmaintenance.


Nom du paramtre

Adr. Modbus - taille

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 :

Forcer <Cmd> 0 pour arrter la tlmaintenance

Forcer <Cmd> 1 pour dmarrer 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 :

0 : pas de tlmaintenance en cours

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

BUFMOV_S ................................................ 353


BY ............................................................... 353
BYTE ........................................................... 353
C
C10006 ....................................................... 503
C10007 ....................................................... 503
C10008 ....................................................... 503
C10009 ....................................................... 503
C10010 ....................................................... 503
C10012 ....................................................... 503
C10017 ....................................................... 503
C10019 ....................................................... 504
C10021 ....................................................... 504
C10024 ....................................................... 504
C10025 ....................................................... 504
C10026 ....................................................... 504
C10028 ....................................................... 504
C10031 ....................................................... 504
C10034 ....................................................... 505
C10035 ....................................................... 505
C10036 ....................................................... 505
C10038 ....................................................... 506
C10043 ....................................................... 506
C10045 ....................................................... 506
C10046 ....................................................... 506
C10047 ....................................................... 506
C10049 ....................................................... 506
C10055 ....................................................... 507
C10057 ....................................................... 507
C10060 ....................................................... 507
C10063 ....................................................... 507
C10064 ....................................................... 507
C10067 ....................................................... 507
C10068 ....................................................... 507
C10069 ....................................................... 508
C10075 ....................................................... 508
C10078 ....................................................... 508
C10083 ....................................................... 508
C10084 ....................................................... 508
C10092 ....................................................... 509
C10100 ....................................................... 510
C10108 ....................................................... 509
C10109 ....................................................... 509
C10110 ....................................................... 510
C10112 ....................................................... 510
C10113 ....................................................... 510
C10114 ....................................................... 510
C10115 ....................................................... 510
C11001 ....................................................... 510
C11007 ....................................................... 510
CAL ............................................................. 353
CALC .......................................................... 353
CALCN ........................................................ 353
CAM_S ........................................................ 354
CAMBOX .................................................... 354
CAMBOX_S ................................................ 355
CAMBOXOUT ............................................. 355
CAMBOXSEG ............................................. 356

613

Printed Documentation

Came ........................................................... 274


CAMNUM_S ................................................ 357
CAMREADPOINT........................................ 357
CAMSEG_S ................................................. 358
CANCOUNTER ........................................... 599
CANERROR ................................................ 599
CANERRORCOUNTER .............................. 600
CANERRORRESET ....................................600
CANEVENT ................................................. 600
CANGETNMT .............................................. 601
CANGUARDADD ........................................ 601
CANGUARDDEL ......................................... 602
CANGUARDPARAM ...................................601
CANGUARDRESET ....................................602
CANopen .................................................88, 93
CANREAD ................................................... 602
CANSENDNMT ........................................... 602
CANSENDSYNCHRO .................................603
CANSETUP ................................................. 603
CANSETUPSYNCHRO ............................... 603
CANWRITE.................................................. 604
Capture ........................................301, 317, 358
CAPTURECANCEL .....................................359
CAPTUREEVENT ....................................... 360
CAPTUREIMD ............................................. 360
Caractristiques ........................................... 594
CASE ........................................................... 361
CLEAR ......................................................... 362
CLEARAUX ................................................. 362
CLEARAXISFAULT .....................................363
CLEARFLASH ............................................. 363
Codeur auxiliaire .......................................... 106
COM1 ............................................................ 89
COM2 ............................................................ 90
COMCARIN ................................................. 564
COMCLEARIN ............................................. 564
COMCLEAROUT ......................................... 564
COMCLOSE ................................................ 564
COMGETCTS .............................................. 565
Commandes rapides ..................................... 69
COMMODBUSCRC .....................................565
COMOPEN .................................................. 565
COMOPENTCP ........................................... 565
COMOUTEMPTY ........................................ 566
Compact Flash .............................................. 16
Compteurs ...........................................306, 313
COMREAD .................................................. 566
COMSETRTS .............................................. 566
COMWRITE ................................................. 567
CONCAT...................................................... 363
Configuration ................................................. 92
Configuration de la liaison ........................... 619
Configuration des communications ............. 129
Configuration des programmes ................... 133
Configuration des tches ............................. 130
Configuration du multitche ......................... 128
Configuration du rseau CANopen ............. 593
Configuration du systme .............................. 33
Configuration EtherCAT ................................ 94
Configuration MPC ........................................ 86

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

Editeur de dclaration introduction .............. 216


Editeur de variables d change ................... 144
Editeur de variables sauvegardes ............. 142
Editeur FBD ................................................. 178
Editeur FBD introduction ............................. 201
Editeur IL Introduction .................................184
Editeur LD .................................................... 173
Editeur LD introduction ................................ 192
Editeur ST .................................................... 170
Editeur ST introduction ................................ 187
Egalit .......................................................... 334
ELSE............................................................ 376
ELSIF...THEN .............................................. 376
ENABLERECALE ........................................ 377
END_CASE ................................................. 378
END_FOR.................................................... 378
END_IF ........................................................ 378
END_REPEAT ............................................. 378
END_TYPE .................................................. 378
END_VAR .................................................... 378
END_WHILE ................................................ 378
ENDCAM ..................................................... 378
Entre sortie codeur multifonction ............... 104
Entres / Sorties ..........................146, 162, 168
Entres / Sorties analogiques...................... 163
Entres logiques ............................................ 17
Entres/sorties analogiques .......................... 98
EQ................................................................ 379
Etablissement de la liaison .......................... 620
EtherCAT ...............................................88, 614
Ethernet TCP ................................................. 87
Etiquettes ..................................................... 324
Evnements ................................................. 304
Exemple d cran de paramtrage ............... 622
Exemples d interpolation 2D........................ 287
Exemples d interpolation tendue ............... 296
EXIT ............................................................. 379
EXP.............................................................. 380
EXPT ........................................................... 380
F
F_TRIG ........................................................ 381
FALSE ......................................................... 382
FAULTAXIS_S ............................................. 382
FE_S ............................................................ 383
FEMAX_S .................................................... 383
FILTERMASTER ......................................... 385
FIND ............................................................ 384
FIXTOREAL ................................................. 385
Flash Scurit Divers ..................................320
FLASHOK_S ............................................... 386
Fonction de compensation / dcompensation282
Fonction de superposition de mouvements.283
FOR ............................................................. 386
Forcage de l adresse IP par DIPSwitchs....... 31
FRAC - Partie fractionnelle .......................... 387
G
GE................................................................ 387
GEARBOX ................................................... 387
GEARBOX2 ................................................. 389
GEARBOXRATIO ........................................ 391

GEARBOXRATIO_S ................................... 392


Gnralits.................................................. 7, 9
Gestion des tches ..................................... 212
GETBITB ..................................................... 393
GETBITD .................................................... 393
GETBITW .................................................... 393
GETLASTSYSEVENT ................................ 394
GETMODE .................................................. 394
GETSYSTEMEVEN .................................... 395
GETUSEREVENTPARAM .......................... 395
GT ............................................................... 396
H
HALT ........................................................... 396
Historique du manuel ...................................... 7
HOME ......................................................... 396
HOME_S ..................................................... 400
HOMEAUX .................................................. 401
HOMEAUX_S ............................................. 401
HOMEAUXCANCEL ................................... 402
HOMEAUXREQUEST_S ............................ 402
HOMECANCEL........................................... 403
HOMEREQUEST_S ................................... 403
Hyper-Terminal ........................................... 147
I
ICORRECTION ........................................... 404
ICORRECTION_S ...................................... 405
ICORRECTIONA ........................................ 405
IF 406
Infrieur ....................................................... 332
Infrieur ou gal .......................................... 333
Informations ................................................ 156
INIT_S ......................................................... 407
INITGETCONTEXT..................................... 407
Initialisation de module RIO ........................ 609
INITSETRESULT ........................................ 408
INP .............................................................. 408
INPB ............................................................ 409
INPW ........................................................... 409
INSERT ....................................................... 410
Instructions du langage IL ........................... 318
Instructions du langage ST ......................... 319
INT .............................................................. 410
Interface CANopen ....................................... 15
Interface Ethernet TCP/IP ............................. 15
Interface Industriel Ethernet .......................... 15
Interface SERIAL1 et SERIAL2 .................... 20
Interface USB................................................ 20
INTERPOLATE ........................................... 410
INTERPOLATE2D ...................................... 410
INTERPOLATE3D ...................................... 410
Interpolation ................................................ 316
Interpolation circulaire 2D ........................... 285
Interpolation hlicodalde ............................ 285
Interpolation linaire 2D .............................. 284
INTP ............................................................ 411
Introduction ............... 57, 60, 61, 213, 239, 567
Introduction aide ............................................. 1
Introduction CANopen ................................ 578
Introduction Modbus TCP ........................... 570
IOFAULT_S ................................................ 411

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

NEG ............................................................. 429


Ngation ...................................................... 331
NEXTTASK .................................................. 429
NODECAN ................................................... 604
NOT ............................................................. 429
O
OF ................................................................ 430
Onglet Outils .................................................. 65
Onglet Programmation .................................. 62
Onglet vitesse et acclration ..................... 121
Oprations boolennes ............................... 312
Oprations de base .....................................311
Oprations de comparaison ........................ 313
Oprations mathmatiques ......................... 311
OR ............................................................... 430
ORDER - Numro d ordre du mouvement ..431
ORDER_S - Numro d ordre courant .......... 432
ORDER_T.................................................... 432
ORN ............................................................. 433
Oscilloscope ................................................ 149
OUTB ........................................................... 434
OUTB_S ...................................................... 434
OUTP ........................................................... 433
OUTP_S ...................................................... 433
OUTW .......................................................... 435
OUTW_S ..................................................... 435
P
Paramtrage d un axe .................................244
Paramtrage d un module E/S .................... 107
Paramtrage d un profil ............................... 118
Paramtrage des E/S CANIO ...................... 126
Paramtrage des E/S IMD........................... 125
Paramtrage des E/S MPC ......................... 124
Paramtres .................................................. 122
Parenthses ................................................ 323
Passage en mode asservi ........................... 242
Passage en mode non asservi .................... 241
PDOEVENT ................................................. 604
PDOTX ........................................................ 607
Performances .............................................. 155
POS ............................................................. 436
POS_S ......................................................... 436
POS_T ......................................................... 437
POSAUX_S ................................................. 437
POSERROR_S ............................................ 438
Positionnement ............................................ 315
Premire connexion au MPC......................... 28
Prsentation ................................................ 593
Principal ...............................................108, 114
Principe du multitches ............................... 205
Priorit des tches ....................................... 210
Prise d origine ..............................110, 116, 247
Procdure d installation du Motion Studio ..... 33
Procdure de rglage d un axe ..................... 32
Profil.....................................................110, 115
Profil de vitesse ........................................... 246
R
R- Reset langage IL.....................................438
R_TRIG........................................................ 439

Raccordement..................................... 594, 618


Raccordement avec des variateurs IMDL .... 26
Raccordement avec variateurs IMD ............. 24
Raccordement des variateurs IMDx au
rseau ETHERCAT ................................... 28
RAMOK_S .................................................. 440
RAMTOFLASH ........................................... 440
READ .......................................................... 605
READCAM .................................................. 440
READPARAM ............................................. 605
READPARAMR........................................... 606
READR ....................................................... 606
REAL ........................................................... 441
REALTOFIX ................................................ 441
REG_S ........................................................ 441
Registres ..................................................... 312
REGPOS_S ................................................ 442
Rgulation ............................................. 96, 243
REMOTE..................................................... 623
REMOTE_HOST......................................... 623
REMOTE_S ................................................ 623
REPEAT ...................................................... 442
REPLACE ................................................... 443
Rsolveur / Sincos ...................................... 103
RESTART ................................................... 443
RESTART_S ............................................... 444
RET ............................................................. 444
RETC .......................................................... 444
RETCN ........................................................ 444
RETURN ..................................................... 444
RIGHT ......................................................... 445
ROL ............................................................. 446
ROR ............................................................ 447
ROUTEIMDADD ................................. 567, 607
RS ............................................................... 448
RUN ............................................................ 449
S
S - langage IL.............................................. 450
S1000 .......................................................... 515
S1001 .......................................................... 515
S1002 .......................................................... 516
S1003 .......................................................... 516
S1004 .......................................................... 516
S1005 .......................................................... 516
S1006 .......................................................... 516
S1008 .......................................................... 516
S1009 .......................................................... 516
S1010 .......................................................... 516
S1011 .......................................................... 517
S1012 .......................................................... 517
S1013 .......................................................... 517
S1014 .......................................................... 517
S1015 .......................................................... 517
S1016 .......................................................... 518
S1017 .......................................................... 518
S1018 .......................................................... 518
S1019 .......................................................... 518
S1020 .......................................................... 518
S1021 .......................................................... 518
S1022 .......................................................... 518

617

Printed Documentation

S1023 .......................................................... 519


S1024 .......................................................... 519
S1025 .......................................................... 519
S1026 .......................................................... 519
S1027 .......................................................... 520
S1028 .......................................................... 520
S1029 .......................................................... 520
S1030 .......................................................... 520
S1031 .......................................................... 520
S1032 .......................................................... 520
S3000 .......................................................... 521
S3001 .......................................................... 521
S3002 .......................................................... 521
S3003 .......................................................... 522
S3004 .......................................................... 522
S3005 .......................................................... 522
S3006 .......................................................... 522
S3007 .......................................................... 522
S3008 .......................................................... 523
S3009 .......................................................... 523
S3010 .......................................................... 523
S3011 .......................................................... 523
S3012 .......................................................... 524
S3014 .......................................................... 524
S3016 .......................................................... 524
S3017 .......................................................... 524
S3018 .......................................................... 524
S3019 .......................................................... 524
S3020 .......................................................... 525
S3022 .......................................................... 525
S3023 .......................................................... 525
S3024 .......................................................... 525
S3025 .......................................................... 525
S3026 .......................................................... 525
S3028 .......................................................... 526
S3030 .......................................................... 526
S3032 .......................................................... 527
S3033 .......................................................... 527
S3034 .......................................................... 527
S3035 .......................................................... 527
S3036 .......................................................... 528
S3037 .......................................................... 528
S3038 .......................................................... 528
S3039 .......................................................... 528
S3040 .......................................................... 528
S3041 .......................................................... 529
S3042 .......................................................... 529
S3044 .......................................................... 529
S3046 .......................................................... 529
S4000 .......................................................... 530
S4001 .......................................................... 530
S4003 .......................................................... 530
S4005 .......................................................... 530
S4006 .......................................................... 530
S4007 .......................................................... 530
S4008 .......................................................... 531
S4009 .......................................................... 531
S4010 .......................................................... 531
S4011 .......................................................... 532
S4012 .......................................................... 532

618

S4013 .......................................................... 532


S4014 .......................................................... 532
S4015 .......................................................... 532
S4016 .......................................................... 532
S4017 .......................................................... 532
S4018 .......................................................... 533
S4019 .......................................................... 533
S4020 .......................................................... 533
S4021 .......................................................... 533
S4022 .......................................................... 533
S4023 .......................................................... 533
S4024 .......................................................... 533
S4033 .......................................................... 534
S4034 .......................................................... 535
S4035 .......................................................... 535
S4036 .......................................................... 535
S5000 .......................................................... 535
S5001 .......................................................... 535
S5002 .......................................................... 535
S5003 .......................................................... 536
S5004 .......................................................... 536
S5005 .......................................................... 536
S5006 .......................................................... 536
S5008 .......................................................... 536
S5009 .......................................................... 536
S5010 .......................................................... 537
S5011 .......................................................... 538
S5012 .......................................................... 538
S5013 .......................................................... 538
S5014 .......................................................... 539
S5015 .......................................................... 539
S5016 .......................................................... 539
S5017 .......................................................... 539
S5018 .......................................................... 539
S5019 .......................................................... 540
S5020 .......................................................... 540
S5021 .......................................................... 540
S5022 .......................................................... 540
S5023 .......................................................... 541
S5024 .......................................................... 541
S5025 .......................................................... 542
S5026 .......................................................... 542
S5027 .......................................................... 542
S5028 .......................................................... 542
S5029 .......................................................... 543
S5030 .......................................................... 543
S5031 .......................................................... 543
S5032 .......................................................... 544
S5033 .......................................................... 544
S5034 .......................................................... 545
S5035 .......................................................... 546
S5036 .......................................................... 546
S5037 .......................................................... 547
S5038 .......................................................... 547
S5039 .......................................................... 548
S5040 .......................................................... 549
S5041 .......................................................... 549
S5042 .......................................................... 549
S6002 .......................................................... 549
S6004 .......................................................... 550

Index

S6005 .......................................................... 550


Sauts............................................................ 325
Sections de dclaration ............................... 220
Scurit.......................................................... 99
Scurits ........................................................ 24
SECURITY................................................... 451
SECURITYFEMAX ...................................... 451
SEL .............................................................. 452
Slections .................................................... 313
Service de support........................................... 6
SETBITB ...................................................... 453
SETBITD...................................................... 453
SETBITW ..................................................... 453
SETINP ........................................................ 454
SETMODE ................................................... 454
SETTASKEVENTLIST.................................455
SGN ............................................................. 455
SHL .............................................................. 455
SHR ............................................................. 456
SIGNAL........................................................ 457
SIN ............................................................... 457
SINT............................................................. 458
SLAVEOFFSET ........................................... 459
SLAVEOFFSET_S ...................................... 459
Sorties logiques ............................................. 18
Soustraction ................................................. 327
SPEED......................................................... 452
SPEED_S .................................................... 452
SPOST......................................................... 460
SQRT ........................................................... 460
SR ................................................................ 461
SSTOP......................................................... 462
ST ................................................................ 463
STARTCAM ................................................. 463
STARTCAMBOX ......................................... 463
STARTCOUNTER ....................................... 464
STATUS_S .................................................. 464
STN.............................................................. 464
STOP ........................................................... 464
STOPCAMBOX ........................................... 465
STOPCOUNTER ......................................... 466
STOPS......................................................... 466
STOPS_S .................................................... 466
STRINGIP_TO_UDINT........................577, 624
Structure d une ligne de dclaration ............ 221
STRYWAIT .................................................. 467
STTA............................................................ 468
STTC2D ....................................................... 468
STTC3D ....................................................... 468
STTH ........................................................... 469
STTH3D ....................................................... 469
STTHAUX .................................................... 473
STTIM .......................................................... 474
STTIP........................................................... 474
STTL2D ....................................................... 475
STTL3D ....................................................... 475
STTR ........................................................... 476
SUB ............................................................. 477
Suprieur ..................................................... 338
Suprieur ou gal ........................................ 337

Suppresion d un bloc fonctionnel................ 136


Suppresion d une fonction .......................... 138
Suppresion d une tche .............................. 132
Suppression d un axe IMD ......................... 106
Suppression d un axe virtuel ........................ 93
Suppression d un module E/S .................... 107
Suppression d un profil ............................... 123
Suppression d un programme .................... 135
Suppression d un type de donnes ............ 140
Suppression d une variable globale............ 141
SUSPEND................................................... 476
SWAIT ......................................................... 477
Synchronisation .......................................... 316
T
Table ........................................................... 121
Tableau de bord .................................. 145, 161
TAN ............................................................. 477
tBcleMode ................................................... 225
tCam ........................................................... 234
tCamTable .................................................. 229
tCapImdIo ................................................... 229
tCapType .................................................... 229
tEdgeType................................................... 225
Temporisateurs ........................................... 314
Test d un tat .............................................. 303
tFilterMaster ................................................ 225
tGeoEntry .................................................... 234
tGeoType .................................................... 235
tGroup ......................................................... 237
tHandle ........................................................ 230
THEN .......................................................... 478
TIMEH ......................................................... 478
TIMEL ......................................................... 479
TIMER ......................................................... 479
tInterpolateParam ....................................... 235
tInterpoLimitType ........................................ 236
tIntParam .................................................... 236
tIObitIn ........................................................ 230
tIObitOut ...................................................... 230
tIObyteIn ..................................................... 231
tIObyteOut................................................... 231
tIOwordIn .................................................... 232
tIOwordOut.................................................. 233
tModeInitVal ................................................ 225
tMoveDirection ............................................ 226
TO ............................................................... 479
TOF ............................................................. 479
TON ............................................................ 481
TORQUE..................................................... 482
TORQUE_S ................................................ 483
tOutputDef................................................... 228
tOutTarget ................................................... 229
TP................................................................ 483
tPeripheral................................................... 236
TRAJA ......................................................... 484
TRAJC2D .................................................... 485
TRAJC3D .................................................... 485
TRAJH3D .................................................... 486
TRAJIM ....................................................... 486
TRAJIP ........................................................ 487

619

Printed Documentation

TRAJL2D ..................................................... 487


TRAJL3D ..................................................... 488
TRAJR ......................................................... 488
tRealParam .................................................. 236
TRIGGERAXIS_S ........................................ 489
TRIGGERAXISSET .....................................489
TRIGGERF .................................................. 489
TRIGGERI ................................................... 490
TRIGGERP .................................................. 490
TRIGGERRESET ........................................ 491
TRUE ........................................................... 491
TRUNC ........................................................ 491
tSegmentDef ................................................ 227
tSegmentMode ............................................ 228
tSrcPos ........................................................ 226
tTaskStatus .................................................. 237
TYPE ........................................................... 492
Type driv de donn ..................................223
Types de donn lmentaire ....................... 222
U
UDINT .......................................................... 492
UDINTWSWAP ............................................ 493
UINT ............................................................ 492
Unit utilisateur ............................................ 245
UNLOCK ...................................................... 493
UNTIL .......................................................... 493
USINT .......................................................... 493
V
VAR ............................................................. 493
VAR_EXTERNAL ........................................ 493
VAR_GLOBAL ............................................. 493

620

VAR_IN ....................................................... 494


VAR_IN_OUT ............................................. 494
VAR_OUTPUT ............................................ 494
Variateur ....................................................... 95
VEL ............................................................. 494
VEL_S ......................................................... 495
VEL_T ......................................................... 495
VELAUX_S ................................................. 496
VELP ........................................................... 496
VELT_S ....................................................... 497
VERSION .................................................... 498
Vue de ct ................................................... 13
Vue de dessus .............................................. 13
Vue de face ................................................... 11
W
WAIT ........................................................... 498
WATCHDOG_S .......................................... 499
WATCHDOGOFF ....................................... 499
WATCHDOGON ......................................... 499
WDTASK_S ................................................ 500
WDTASKRAZ ............................................. 499
WHILE ......................................................... 500
WORD ......................................................... 501
WRITE ........................................................ 607
WRITECAM ................................................ 501
WRITEPARAM............................................ 608
WRITEPARAMR ......................................... 608
WRITER ...................................................... 608
X
XOR ............................................................ 501
XORN .......................................................... 502

Vous aimerez peut-être aussi