Vous êtes sur la page 1sur 398

NUM

MANUEL DE PROGRAMMATION DE LA FONCTION AUTOMATISME LANGAGE LADDER


0100938846/8

11 - 97

fr-938846/8

Malgr tout le soin apport llaboration de ce document, NUM ne peut garantir lexactitude de toutes les informations quil contient et ne peut tre tenu responsable, ni des erreurs quil pourrait comporter, ni des dommages qui pourraient rsulter de son utilisation ou de son application. Les produits matriels, logiciels et services prsents dans ce document sont tout moment susceptibles dvolutions quant leurs caractristiques de prsentation, fonctionnement ou utilisation. Leur description ne peut en aucun cas revtir un aspect contractuel. Les exemples de programmation sont dcrits dans ce manuel titre didactique. Leur utilisation dans des programmes dapplications industrielles ncessite des adaptations spcifiques selon lautomatisme concern et en fonction du niveau de scurit demand.

Copyright NUM 1997. Toute reproduction de cet ouvrage est interdite. Toute copie ou reproduction, mme partielle, par quelque procd que ce soit, photographie, magntique ou autre, de mme que toute transcription totale ou partielle lisible sur machine lectronique est interdite.

Copyright NUM 1997 logiciel NUM 1020/1040/1060. Ce logiciel est la proprit de NUM. Chaque vente dun exemplaire mmoris de ce logiciel confre lacqureur une licence non exclusive strictement limite lutilisation du dit exemplaire. Toute copie ou autre forme de duplication de ce produit est interdite.

fr-938846/8

Table des matires

1 Prsentation de la fonction automatisme


1.1 1.2 Gnralits Fonction automatisme Gnralits Structure dune application Structure dun module ladder Squences lmentaires Elments communs tous les types de squence La squence tableau de constantes La squence chane de caractres La squence rseau Principe des changes Variable % - Mnmonique Variable % Mnmonique Variables internes banalises sauvegardes Variables internes banalises non sauvegardes Variables E/S borniers %I et %Q Famille interface E/S CN %R et %W Variables mots communs %S Variables locales %Y - Pointeurs Zone dchange Notation utilise Label - commentaire Etape Elments littraux des squences rseaux Complment sur les lments littraux Elments communs tous les types de squence La squence rseau Appel dune fonction Contrle des paramtres Conversion dune chane ASCII en entier sign sur 32 bits Conversion dune chane ASCII en entier sign sur 32 bits Transcodage BCD > binaire Transcodage binaire > BCD Eclatement BIT > octet Lecture des paramtres stocks dans la pile Copie dun ou plusieurs octets

1-1 1-3 1-6 2-1 2-3 2-13 2-15 2-15 2-15 2-16 2-16 3-1 3-5 3-6 3-6 3-8 3-8 3-8 3-9 3-29 3-68 3-70 3-72 4-1 4-3 4-3 4-3 4-3 4-5 5-1

2 Structure d'une application


2.1 2.2 2.3 2.4 2.5 2.6 2.7

3 Variables
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11

4 Elments littraux du langage ladder


4.1 4.2 4.3 4.4 4.5

5 Programmation ladder
5.1 5.2 5.3 5.4

5-3 5-7 5-26 5-26 6-1

6 Fonctions d'usage gnral


6.1 6.2 6.3 6.4 6.5 6.6 6.7

6-3 6-4 6-5 6-6 6-7 6-8 6-9

fr-938846/8

6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 6.23 6.24 6.25 6.26 6.27 6.28 6.29 6.30 6.31 6.32 6.33 6.34 6.35 6.36 6.37 6.38

Copie dun ou plusieurs mot Copie dun ou plusieurs long mots Fixe la priode de lauto-test Conversion dune valeur entire signe en chane ASCII Conversion dune valeur entire non signe en chane ASCII Concatnation OCTet > bit Simulation du clavier du pupitre Recherche circulaire optimale Recherche de la valeur dun octet Recherche de la valeur dun mot Recherche de la valeur dun long mot Retour au module ou au rseau appelant Saut un label du module sans retour Saut un label du module avec retour Smaphore Ecriture dun ou plusieurs octets Ecriture dun ou plusieurs mots Ecriture dun ou plusieurs long mots Appel de modules %SP Formatage dune chane de caractres Racine carre entire Analyse dune chane ASCII Comparaison dune chane de caractres Copie dune chane de caractres Calcul de la longueur dune chane Echange des octets dun mot Echange des quatre octets dun long mot Correction dynamique dun outil Lecture de n variables E42000 Ecriture de n variables E42000 Initialisation de la base associe aux variables % Introduction Dbut dune section critique Fin dune section critique Mise en sommeil temporaire dune tche %TF Dpart dune tche %TF Arrt dune tche %TF Introduction Fonctions affectes au mode transparent Mode transparent pupitre

6-10 6-11 6-11 6-12 6-12 6-13 6-15 6-15 6-16 6-16 6-17 6-18 6-19 6-19 6-20 6-20 6-21 6-22 6-22 6-24 6-25 6-25 6-26 6-27 6-27 6-28 6-29 6-30 6-31 6-32 6-33 7-1 7-3 7-3 7-3 7-3 7-4 7-4 8-1 8-3 8-7 8-18

7 Gestion des tches


7.1 7.2 7.3 7.4 7.5 7.6

8 Mode transparent
8.1 8.2 8.3

fr-938846/7

Table des matires

9 Entres/sorties analogiques
9.1 9.2 9.3 9.4 9.5 10.1 10.2 10.3 Gnralits Configuration des cartes E/S analogiques Ecriture dune sortie analogique Lecture dune entre analogique Redirection dune carte analogique Gnralites Lecture explicite dune carte entre Ecriture explicite dune carte sortie Gnralits Principe daffectation des lignes Association entres interruptions/ groupes daxes Configuration dune entre interruption Lecture dune entre interruption Association tche %TH avec une entre IT Gnralites Initialisation d'une ligne Emission dun tampon Rception d'un tampon Lecture de ltat dune ligne srie Contrle du pilote de ligne srie Standards de transmission Prsentation de la fonction timer Mode de fonctionnement Association tche %TH avec un timer Prsentation de la fonction dateur Lecture de la date courante Lecture de la date courante avec jour de la semaine Prsentation des changes Objets accessibles par requte UNITE Requtes UNITE traites par la fonction CN Programmation de la fonction demandeur Echanges avec une station distante Gnralits Appel dun module excutable Identification dun module excutable Programmation en langage C

9-1 9-3 9-3 9-5 9-6 9-7 10-1 10-3 10-3 10-4 11-1 11-3 11-5 11-5 11-6 11-8 11-9 12-1 12-3 12-4 12-6 12-7 12-10 12-11 12-12 13-1 13-1 13-1 13-1 14-1 14-1 14-1 14-2 15-1 15-3 15-7 15-16 15-29 15-34 16-1 16-3 16-3 16-4 16-5

10 Lecture/Ecriture explicites des cartes Entres/Sorties

11 Entres interruptions
11.1 11.2 11.3 11.4 11.5 11.6

12 Lignes sries
12.1 12.2 12.3 12.4 12.5 12.6 12.7

13 Fonction timer
13.1 13.2 13.3

14 Fonction dateur
14.1 14.2 14.3

15 Echanges par protocole


15.1 15.2 15.3 15.4 15.5

16 Programmation en langage C
16.1 16.2 16.3 16.4

fr-938846/7

17 Axes automates
17.1 17.2 Prsentation Principe de programmation Programmation et mise au point avec PLCTOOL Mise au point sur la CN Liste des dfauts matriel Liste des dfauts de configuration Liste des dfauts de programmation Liste par thmes Liste par classement alphanumrique

17-1 17-1 17-1 18-1

18 Mise au point des programmes


18.1 18.2

18-3 18-3 19-1 19-1 19-1 19-1 A-1 A-3 A-6 I-1

19 Dfauts et diagnostic
19.1 19.2 19.3

A Listes des fonctions


A.1 A.2

Index

fr-938846/6

Tableau des mises jour

Tableau des mises jour

Date
11 - 97

Indice
8

Pages modifies
Page de garde, 2, 3, 7, 10 Ch. 2 : 13 Ch. 3 : 1 4, 17, 27, 34, 37 78 Ch. 5 : 13 Ch. 8 : 3, 6 Ch. 9 : 3 Ch. 12 : 5 Ch. 15 : 8, 25 Ch. 17 : 1 Index : 1 4 Agences Questionnaire

Pages ajoutes

Pages supprimes

79 82

EVOLUTIONS DE LA DOCUMENTATION Date


07 - 92 10 - 92

Indice
0 1

Nature des volutions


Conforme au logiciel NUM 1060 - Indice D. Cration du document. Conforme au logiciel NUM 1060 - Indice D Corrections diverses La variable %R1.B devient %R0.W La variable %Rg1F.B devient %Rg1E.W La variable %Rg7E.W devient %Rg7C.L Adjonction des variables %R2.7, %R2.6, %W3.7, %W3.6 Supression des variables %W15.B et %W16.B Adjonction des fonctions call(), goto(), R_E42000(), W_E42000() Modification des tableaux de caractres en mode transparent Modes opratoires de l'utilitaire 7 Listes des fonctions en annexe.

04 - 93

Conforme au logiciel NUM1060 - Indice E. Corrections diverses. Adjonction des variables : - mots communs %S, - locales %Y, - %Qrc3B.1 autorisation accs CN, - %R2.5 E_INTERV Etat intervention, - %W5.6 INIB_E33 Autorisation d'criture des cartes Entres/Sorties par programme pice

fr-938846/8

Date
04 - 93

Indice
2

Nature des volutions


- %W4.4 PRESPUIS Prsence puissance sur moteur, - %W15.B MSG1 Numro de message afficher ligne 1 - %W16.B MSG2 Numro de message afficher ligne 2, - %W2C.W Liste de bits - Incrments de JOG interdits, - %W30.L Liste de bits - Modes interdits, - %Rg01.0 E_RAZ1 E_RAZ8 Raz en cours sur groupe Ng - %Rg01.4 E_DGURG1 E_DGURG8 Dgagement d'urgence sur groupe Ng, - %Wg01.4 C_DGURG1 C_DGURG8 Demande de dgagement d'urgence sur groupe Ng Contact de test 1 d'une liste de bits. Contact de test 0 d'une liste de bits. Contact de test sur front montant. Contact de test sur front descendant. Actions conditionnelles en zone test. Affectations numriques multiples sur bobines T et F. Appel d'un sous programme avec variables locales %Y - Fonction spy() Initialisation de la base associe aux variables %Y - Fonction y_init(). Initialisation graphique - Fonction inig(). Emission d'une requte vers un serveur distant - Fonction neto(). Lecture d'une requte venant d'un serveur distant - Fonction neti(). Configuration du service mots communs - Fonction setcomw(). Rponse la requte STATUS - Fonction netst_ad() Fonction de programmation en C de la bibliothque NUM (NUM.OBJ). Archivage du logiciel sous UT7. Conforme au logiciel NUM1060 - Indice F. Corrections diverses et complments d'informations Prise en compte du module UCSII (Temps CPU, Restrictions matrielles, .. etc ...) Mnmonique sur 12 caractres. Suppression de %R3.5, E_STOP. Adjonction des variables : - %R19.B ,ID_ICB_CN, Identificateur pupitre ou CN actif - %W2.0, KB_INIT, Initialisation clavier - %W4.6, INIBUTIL, Verrouillage des utilitaires - %W5.6, devient SK_DISPL, Affichage de la fentre cartouche - %W5.7, SC_SAVE, Mise en veille de l'cran CN - %Rg01.5, NO_POS1 NO_POS8, Axe en attente de position - %Wg00.6, C_FAST1 CFAST8, Commande de vitesse rapide en cours de cycle - %W900.0, INIB_E33, Autorisation d'criture des cartes sorties par programmation pice Adressage indirect ou par pointeur (Variable %Y) Compteur, CTU_n, CTD_n Temporisation, TOF_n, TON_n, TP_n Cartes 32-24 I/O et 64-48 I/O Suppression de la fonction message() Donne non sollicite : - $1, message non bloquant, - $11, message bloquant. Lignes sries - Prise en compte des standard RS232, RS485, RS422.

02-94

fr-938846/7

Tableau des mises jour

Date
08 - 94

Indice
4

Nature des volutions


Conforme au logiciel NUM1060 - Indice G. Corrections diverses. Adjonction des variables : - %R2.1, E_MNAUTO, Fonctionnalit N/M AUTO - %W2.1, C_NMAUTO, Fonctionnalit N/M AUTO - %W34.0 %W37.7, DISC_TRQx, Validation du couple sur l'axe x, - %W38.0, DISC_SDP, Validation rfrence vitesse des axes QVN, - %R950.B %R976.W, Consommation moniteur et tches %TS, - %W97a.L, Type et numro de tche en animation ladder, - %W97e.B, Numro du composant animer. Prise en compte des nouvelles gravures sur les cartes 32 entres et 32 sorties. Consommation moniteur et tches %TS sous UT7. Animation des grilles ladder sous UT7 Conforme au logiciel NUM1060 - Indice H Corrections diverses. Doublement du chien de garde Adjonction des variables: - %R2.4, STATETRACE, tat recul / retour sur trajectoire, - %R14.0, SC_USED, validation cran en configuration PCNC, - %R22.0 R22.3, STOPBR1 STOPBR4, demande d'arrt des broches 1 4, - %W39.0, BACKWARD, demande de recul sur trajectoire, - %W39.1, FORWARD, demande de retour sur trajectoire, - %W39.2, INITPOS, rappel automatique la suite d'une intervention. Raz des variables sauvegardes. Conforme au logiciel NUM 1020/1040/1060, indice J Corrections diverses Adjonctions de fonctions d'usage gnral: - transcodage BCD --> binaire -;transcodage binaire --> BCD Adjonction pupitre compact dans chapitre 3 Adjonction segment 235 Adjonction des variables : - %R12.4 %R12.7, Bx_arr, Broche l'arrt - %R12.0 %R12.3, Bx_ROT, Rotation broche correcte - %R24.L,AXBLKx, Axes blocables - %W3A.L, STOPAXx, Arrt d'avance par axe Conforme au logiciel NUM 1020/1040/1060, indice K Corrections diverses Adjonctions des variables : - %R14.1, E_BAT, Etat batteries - %W2.2, C_INDG, Commutation groupes communs/groupes indpendants - %W2.3, CHG_OPDC, Oprateurs dynamiques - %W22.4 %W22.7, VERBRb, Puissance ou non sur broche b - %Rg00.0, E_PROG1 E_PROG8, Programme en cours du groupe d'axes CN g - %Rg00.5, E_INTER1 E_INTER8, Etat interventionsur groupe d'axes CN g - %Rg00.6, E_SLASH1 E_SLASH8, Saut de bloc valid sur groupe d'axes CN g - %Rg00.7, E_M011 E_M018, Arrt optionnel valid sur groupes d'axes CN g - %Rg01.1, E_ARUS1 E_ARUS8, Sortie arrt usinage du groupe d'axes CN g

04 - 95

11 - 95

07 - 96

fr-938846/7

Date
07 - 96

Indice
7

Nature des volutions


- %Rg01.3, E_RAX1 E_RAX8, Rappel d'axes sur groupe d'axes CN g - %Rg01.7, E_OPER1 E_OPER8, Signale un arrt programm provoqu par M00 ou M01 valid - %Rg06.B, MODCOUR1 MODCOUR8, Mode en cours sur groupe d'axes CN g - %Wg01.1, C_ARUS1 C_ARUS8, Demande d'arrt usinage du groupe d'axes CN g - %Wg01.3, C_RAX1 C_RAX8, Slection du rappel d'axes sur groupe d'axes CN g - %Wg01.6, C_SLASH1 C_SLASH8, Validation du saut de bloc sur groupe d'axes CN g - %Wg01.7, C_M011 C_M018, Validation de l'arrt programm optionnel (M01) sur groupe d'axes g - %WE00.B %WE1F.B, RDUC_TRQ0 RDUC_TRQ31, Rduction de courant Adjonction dans la fonction dateur de DTGET Adjonction dans le chapitre mise au point des programmes, commande de l'unit centrale, des messages au dassemblage du code client. Corrections diverses - %Wg03.B, Mode groupe indpendant - Zone d'change AP CN lie la fonction AN96 "1050"

11 - 97

10

fr-938846/8

Prliminaires

Structure de la documentation produits NUM 1020/1040/1060


Documents utilisateur
Ces documents sont destins lexploitation de la commande numrique.
NUM NUM

NUM

NUM

MANUEL OPERATEUR M/W

MANUEL OPERATEUR T/G

MANUEL DE PROGRAMMATION M

MANUEL DE PROGRAMMATION T

938821

938822

938819

938820

Documents intgrateur
Ces documents sont destins la mise en oeuvre de la commande numrique sur une machine.

NUM 1060

NUM 1020 / 1040

NUM

NUM

MANUEL D'INSTALLATION ET DE MISE EN UVRE

MANUEL D'INSTALLATION ET DE MISE EN UVRE

MANUEL DES PARAMETRES

MANUEL DE PROGRAMMATION DE LA FONCTION AUTOMATISME LANGAGE LADDER 938846

938816

938938

938818

Documents spcifiques de programmation

NUM

NUM

PLCTOOL - OUTIL DE PROGRAMMATION LANGAGE LADDER

SETTOOL - OUTIL D'INTEGRATION DES PARAMETRES

938859

938924

fr-938846/6

11

Rpertoire des utilitaires des produits NUM 1020/1040/1060


Les produits NUM disposent dune srie dutilitaires permettant lintgration et lexploitation du systme. Ces utilitaires peuvent tre prsents de base dans le systme ou optionnels. Suivant la fonction assure par chaque utilitaire, sa mise en uvre est dcrite dans le manuel dintgration ou dexploitation appropri. Le tableau ci-aprs fournit la liste des utilitaires et le chapitre de la documentation qui traite de leur utilisation : Utilitaire UT0 UT2 UT3 UT5 UT7 Intitul gestion des utilitaires calibration daxes macros rsidentes Manuel manuels oprateur Chapitre 8 Domaine dapplication NUM 1020/1040/1060 NUM 1020/1040 NUM 1060 NUM 1020/1040/1060 NUM 1020/1040/1060 NUM 1020/1040/1060 programmation en langage ladder NUM 1020/1040/1060 NUM 1020/1040 NUM 1060 NUM 1060

manuel dinstallation et mise 10 en uvre (1020/1040 ou 1060) 11 manuels oprateur 8 12 16

intgration des paramtres manuel des paramtres mise au point de programmes verrouillage des options calibration inter axes manuel de programmation de la fonction automatisme langage ladder manuels oprateur

UT12 UT20 UT22

manuel d'installation et mise 11 en uvre (1020/1040 ou 1060) 12 8

intgration des paramtres manuel SET_TOOL axes

REMARQUE:

L'utilitaire 22 n'est plus utilis partir du logiciel CN indice K et le logiciel SET_TOOL indice E.

12

fr-938846/7

Prliminaires

Manuel de programmation de la fonction automatisme


Programmation de la fonction automatisme en langage LADDER. Traitement des fonctions d'automatismes mettant en oeuvre capteurs et actionneurs implants sur la machine. Traitement des informations d'interface avec la fonction CN.

Prsentation et caractristiques de la fonction automatisme et de l'unit centrale . - Synoptiques du systme et des cartes mises en oeuvre.
CHAPITRE 1

PRESENTATION DE LA FONCTION AUTOMATISME

CHAPITRE 2

Principe de fonctionnement et d'organisation d'une application automate. - Les tches systme. - Les tches utilisateur. - La structure d'une application. - Les modules.

STRUCTURE D'UNE APPLICATION

CHAPITRE 3

VARIABLES

Dtail des variables mises en oeuvre. - Les variables internes. - Les variables Entres/sorties borniers. - Les variables de configuration et de diagnostic. - Les variables d'interface avec la CN. - Les variables mots communs. - Les variables locales.

fr-938846/6

13

CHAPITRE 4

Information sur les lments du langage ladder. - Les lments littraux. - Les oprateurs. - Exemples de calculs.

ELEMENTS LITTERAUX DU LANGAGE LADDER

CHAPITRE 5

Information sur la programmation ladder. - Les lments communs. - Etapes grafcet. - La squence rseau. - Conseils de programmation.

PROGRAMMATION LADDER

Fonctions d'usage gnral utilises en langage ladder. Syntaxe. Fonctionnement.


CHAPITRE 6

FONCTIONS D'USAGE GENERAL

Principes et fonctions lis la gestion des tches.

CHAPITRE 7

GESTION DES TACHES

14

fr-938846/6

Prliminaires

Principe et fonctions lis la programmation du mode transparent.

CHAPITRE 8

MODE TRANSPARENT

Principe et fonctions lis la programmation des Entres/Sorties analogiques.

CHAPITRE 9 ENTREES/SORTIES ANNALOGIQUES

Principe et fonctions lis la lecture et l'criture immdiate des cartes entres sorties.
CHAPITRE 10 LECTURE ECRITURE EXPLICITES DES CARTES ENTREES/SORTIES

Principe et fonctions lis la programmation des entres interruptions.

CHAPITRE 11 ENTREES INTERRUPTIONS

fr-938846/6

15

Principe et fonctions lis la programmation des lignes sries.

CHAPITRE 12

LIGNES SERIES

Principe et fonctions lis la programmation de la fonction timer.

CHAPITRE 13

FONCTION TIMER

Principe et fonctions lis la programmation du dateur.

CHAPITRE 14

FONCTION DATEUR

Principes et fonctions lis la programmation des changes par protocole.

CHAPITRE 15

ECHANGES PAR PROTOCOLE

16

fr-938846/6

Prliminaires

Fonctions traitant de l'appel de module en langage C.

CHAPITRE 16

PROGRAMMATION EN LANGAGE C

Principes et applications lis la programmation des axes automates.

CHAPITRE 17

AXES AUTOMATES

Outils de cration et de mise au point des programmes. - Modes opratoires.


CHAPITRE 18

MISE AU POINT DES PROGRAMMES

Niveaux de contrle de l'unit centrale et liste des dfauts.

CHAPITRE 19

DEFAUTS ET DIAGNOSTIC

fr-938846/6

17

Liste des fonctions ladder. - Classement par thme. - Classement alphanumrique.


ANNEXE A

LISTES DES FONCTIONS

18

fr-938846/6

Prliminaires

Utilisation du manuel de programmation de la fonction automatisme


Modes opratoires
Le manuel comporte des modes opratoires (en particulier dans le chapitre 18). Les actions raliser sont prsentes sous la forme suivante : Rinitialiser le systme.

La partie droite indique les touches actionner qui peuvent se prsenter sous deux formes : Touches carres : correspondent des touches du pupitre.
UTIL

Touches rectangulaires : correspondent des touches logicielles qui apparaissent dans le cartouche en bas de lcran et sont actionnes par les touches de fonction (F2 F11) situes sous lcran.

Index
L'index figure en fin de volume et permet d'accder des renseignements ponctuels par des mots cls.

Agences
La liste des agences NUM figure en fin de volume.

Questionnaire
Afin de nous aider amliorer la qualit de notre documentation, nous vous demandons de bien vouloir nous retourner le questionnaire figurant en fin de volume.

fr-938846/6

19

20

fr-938846/6

Prsentation de la fonction automatisme

1 Prsentation de la fonction automatisme

1.1 Gnralits 1.2 Fonction automatisme

1-3 1-6

fr-938846/6

1-1

1-2

fr-938846/3

Prsentation de la fonction automatisme

1.1

Gnralits

La CN NUM 1060 est un systme multiprocesseur multimatre dans lequel la fonction automatisme assure la charnire avec la MOCN. La fonction automatisme assure le traitement des fonctions qui mettent en oeuvre, tant les capteurs et actionneurs implants sur la MOCN, que les informations boolennes ou numriques dinterface avec la fonction CN. Ses possibilits, daccs lcran de la CN et de simulation du pupitre, lui confrent une grande souplesse dutilisation permettant au constructeur de machines outils une personnalisation du systme 1060 son ergonomie. La fonction automatisme est implante dans l'unit centrale. L'unit centrale est compose d'une ou plusieur carte et assure les fonctions CN, graphique, automatisme ainsi que la mmoire. L'unit centrale se compose : Fonctions NUM 1060 srie I NUM 1060 srie II multicarte NUM 1060 srie II monocarte CN Proc CN Proc graphique UCSII Graphique Proc graphique Proc graphique UCSII Automatisme Proc machine Proc machine UCSII Mmoire Carte mmoire Carte mmoire UCSII

Le transfert dinformation, sur bit ou sur octet, avec les cartes ENTREES/SORTIES, est assur par le bus srie. Les changes dinformations dans le systme sont de deux types : - communication par zone dchanges, - communication par protocole.

fr-938846/3

1-3

BUS SYSTEME

INTERFACE

INTERFACE RAM
ZONE D'ECHANGE

INTERFACE

BUS LOCAL 32 bits

BUS LOCAL 32 bits

UC 32 bits 68020 REPROM


AXE 1 AXE 2 AXE 3 AXE 4

MEMOIRE LOCALE RAM

UC 32 bits 68020

MEMOIRE LOCALE RAM

ENTREES SORTIES SPECIFIQUES CARTES MEMOIRE GLOBALE PROCESSEURS (Fonctions CN et graphique) COUPLEUR SPECIFIQUE (Mapway, Ethway, IT/Lignes sries, E/S analogiques)

MAITRE BUS SERIE PROCESSEUR MACHINE (Fonction automatisme)

CARTES 4 AXES COMPTAGES

BUS SERIE

PUPITRE MACHINE (1 4) Avec extension 32E/24S

CARTES 32 ENTREES

CARTES 32 SORTIES

CARTES 32 ENTREES 24 SORTIES

CARTES 32 - 24 I/O

CARTES 64 - 48 I/O

JUSQU'A 1024 ENTREES 1024 SORTIES

Figure 1.1 - Synoptique dorganisation gnrale d'une UC multiprocesseurs

1-4

fr-938846/6

Prsentation de la fonction automatisme

1
BUS SYSTEME

INTERFACE

INTERFACE

BUS LOCAL 32 bits

RAM UC 32 bits 68020


AXE 1 AXE 2 AXE 3 AXE 4

Coprocesseur 68882

REPROM

ZONE D'ECHANGE

MAITRE BUS SERIE COUPLEURS SPECIFIQUES Mapway, Ethway UCSII Mmoire Fonctions CN, graphique, automatisme

CARTES 4 AXES COMPTAGES

BUS SERIE

PUPITRE MACHINE (1 ou 2) Avec extension 32E/24S

CARTES 32 ENTREES

CARTES 32 SORTIES

CARTES 32 ENTREES 24 SORTIES

CARTES 32 - 24 I/O

CARTES 64 - 48 I/O

JUSQU'A 192 ENTREES 144 SORTIES

Figure 1.2 - Synoptique dorganisation gnrale d'une UC monocarte (UCSII)

fr-938846/3

1-5

1.2

Fonction automatisme

La gestion de la fonction automatisme est assur par un moniteur charg dun certain nombre de tches de base telles quinitialisation, affectation des entres/sorties sur les diffrents racks, change des entres/sorties, chien de garde ..etc.. A ce traitement systmatique effectu par le moniteur, vient sajouter le traitement programme dit Programme utilisateur. Le droulement du programme seffectue sous le contrle du moniteur de gestion. Le droulement du programme est rythm par lhorloge temps rel (HTR) dont la priodicit est de 20 ms. La zone mmoire rserve la programmation de la fonction automatisme est structure comme suit: - 30 Ko de mmoire RAM statique sauvegarde, - 32 Ko de mmoire RAM dynamique initialise la mise sous tension, - 180 Ko de mmoire RAM dynamique occupe par le programme utilisateur sur les processeurs machine V1 1Mo, - 2,5 Mo de mmoire RAM dynamique occupe par le programme utilisateur sur les processeurs machine V1 4Mo, - 3,5 Mo de mmoire RAM dynamique occupe par le programme utilisateur sur les processeurs machine V2 4Mo, - 64 ko de mmoire RAM dynamique occupe par le programme utilisateur sur les modules UCSII. La fonction automatisme permet: - Un accs direct aux CNA, - Un accs indirect en lecture et en criture aux CAN et aux Entres/Sorties. Cet accs se fait en espace mmoire virtuelle (toutes les 20 ms). Nb dEntres / Sorties 1024E / 1024S 192E / 144S Nb de rack maximum 1 principal 6 dextension 1 principal

NUM 1060 srie I NUM 1060 srie II

La configuration des entres / sorties est fige la mise sous tension. Le temps de rafrachissement demande 2 ms. La mise en oeuvre de la fonction automatisme ncessite loutil de programmation sur micro-ordinateur PLCTOOL. Il permet : - la programmation en langage ladder, - la compilation, - le transfert des programmes vers l'unit centrale, - la mise au point des programmes chargs. Associ au compilateur MCC68K de MICROTEC RESEARCH, PLCTOOL permet galement la saisie, la compilation, le transfert et la mise au point de programmes crits en langage C. Le chargement/dchargement des programmes se fait par lintermdiaire dune des lignes sries du systme.

1-6

fr-938846/6

Prsentation de la fonction automatisme

1
BUS SYSTEME

INTERFACE BUS ACCES BUS IT MAITRE SYS IT ESCLAVE

RAM PRIVEE DYNAMIQUE 1 4 Mo

RAM SAUVEGARDEE 32 Ko

p 68020

BUS INTERNE

CAN (4 ENTREES 0 + 10V SUR 8 BITS) INTERRUPTION EXTERIEUR (4 ENTREES)

CNA (2 SORTIES -10 /+10 V 12 BITS + SIGNE)

REFERENCE EXTERNE 10V

MFP NUM ACIA TIMER A HTR

MFP CLIENT ACIA TIMER ENTREE TIMER SORTIE

MAITRE BUS SERIE

CONNECTEUR "IT EXT"

CONNECTEUR "CAN / CNA-TIMER"

CONNECTEUR "SERIE-TTL"

CONNECTEUR "RS232C"

BUS SERIE

Figure 1.3 - Synoptique du processeur machine

fr-938846/6

1-7

BUS SYSTEME

MAITRE BUS SYSTEME

REPROM 2 8 Mo

RAM CLIENT 128/512 ko Dont 64 ko de programme automate

RAM DYNAMIQUE 1 4Mo

RAM STATIQUE SAUVEGARDEE 128/512 ko

p 68020

BUS INTERNE

INTERRUPTION EXTERIEUR (1 ENTREE)

CAN (2 ENTREES 0 + 10V SUR 8 BITS)

CNA (1 SORTIE -10 /+10 V 8 BITS + SIGNE)

REFERENCE EXTERNE 10V

INTERFACE LIAISON SERIE RS232

COPROCESSEUR 68882

INTERFACE PUPITRE GRAPHIQUE

MAITRE BUS SERIE

CONNECTEUR "E/S ANALOG"

CONNECTEUR CONNECTEURS "LIAISON VIDEO" "COMM1" ET 'COMM2'

BUS SERIE

Figure 1.4 - Synoptique de la carte UCSII

1-8

fr-938846/3

Structure d'une application

2 Structure d'une application

2.1 Gnralits
2.1.1 2.1.1.1 2.1.1.2 2.1.1.3 2.1.1.4 2.1.2 2.1.2.1 2.1.2.2 2.1.2.3 2.1.2.4 2.1.3 2.1.3.1 2.1.3.2

2-3 Tches systme 2-3 Tche systme initialisation 2-3 Tche systme rafrachissement E/S CN 2-3 Tche systme rafrachissement E/S borniers 2-5 Tche systme serveur UNITE 2-5 Tche utilisateur 2-5 Tche linitialisation 2-5 Tche priodique 2-5 Tche de fond 2-6 Tches temps rels 2-9 Traitement des dbordements 2-10 Systmes 1060 srie I et srie II - multicarte 2-10 Systmes 1060 srie II - UCSII 2-11 2-13 2-15 2-15 2-15 2-15 2-15 2-15 2-16 2-16 2-16 2-16 2-16

2.2 2.3 2.4 2.5

Structure dune application Structure dun module ladder - Squences lmentaires Elments communs tous les types de squence La squence tableau de constantes
2.5.1 2.5.2 2.5.3 Prsentation Utilisation dun tableau Initialisation dun tableau Prsentation Utilisation dune chane Initialisation dune chane

2.6 La squence chane de caractres


2.6.1 2.6.2 2.6.3

2.7 La squence rseau

fr-938846/3

2-1

2-2

fr-938846/3

Structure d'une application

2.1

Gnralits

Deux types de tches cohabitent dans la fonction automatisme : - les tches systme dclenches par le moniteur et non programmables par lutilisateur, - les tches utilisateur programmables par lutilisateur.

2.1.1
2.1.1.1

Tches systme
Tche systme initialisation

Traitement excut Lors dune initialisation le systme excute : - auto-test des ressources de l'unit centrale, - vrification de lintgrit du code systme en mmoire globale, - transfert du code systme de la mmoire globale vers la mmoire de travail, - vrification de lintgrit du code utilisateur en mmoire globale, - transfert du code utilisateur de la mmoire globale vers la mmoire de travail, - scrutation des cartes E/S prsente sur le bus srie : . mise jour du status et de lidentificateur de chaque carte E/S, . lecture des entres de chaque carte E/S et mise jour de la zone image %I, - lancement de la tche utilisateur %INI. Occurrence Linitialisation de la fonction automatisme seffectue : - la mise sous tension de la CN, - lors de lappui sur le bouton RaZ en face avant de la carte alimentation. 2.1.1.2 Tche systme rafrachissement E/S CN

Traitement excut Cette tche traite les changes systmatiques avec la fonction CN : - lecture des entres CN (Variables %R. crites par la fonction CN), - criture des sorties CN (Variables %W. lues par la fonction CN). Occurrence Cette tche sexcute chaque cycle HTR (Horloge Temps Rel).

fr-938846/3

2-3

TACHE INITIALISATION %INI

Tche excute une seule fois l'initialisation de la fonction automatisme

OCCURENCE HTR 20 ms

TACHE SYSTEME

- Initialisation - Rafraichissement des E/S CN - Rafraichissement des E/S bornier

5 ms

TACHE PERIODIQUE %TS0

CHOIX DU SEGMENT

%TS1 %TS4

CHOIX DE LA TACHE DE FOND

TACHE DE FOND %TF0 %TF15

PROGRAMME

MONITEUR DE GESTION

Figure 2.1 - Droulement dune application

2-4

fr-938846/3

RESERVE 2 ms

13 ms

TACHE PERIODIQUE

1060 srie II - UCSII(P99 : de 4 18 ms)

Structure d'une application

2.1.1.3

Tche systme rafrachissement E/S borniers

Traitement excut Cette tche effectue le rafrachissement des E/S borniers : - lecture des entres borniers %I., - criture des sorties borniers %Q., - mise jour des variables de diagnostic cartes E/S borniers. 2.1.1.4 Tche systme serveur UNITE

Traitement excut Cette tche traite les requtes UNITE destines au serveur de la fonction automatisme. Service rendu par le serveur UNITE Le serveur de la fonction automatisme traite principalement les requtes UNITE suivantes : - lecture/Ecriture variables (%I, %Q, %R, %W, %M, %V), - chargement et dchargement des fichiers de la fonction automatisme ( %TS0, %SP30, .. etc ..), - STOP de la fonction automatisme (arrt des tches utilisateur), - INIT de la fonction automatisme (initialisation de l'unit centrale), - RUN de la fonction automatisme (dmarrage des tches utilisateur).

2.1.2
2.1.2.1

Tche utilisateur
Tche linitialisation

La tche %INI est appele par le systme linitialisation de la fonction automatisme avant toutes les autres tches utilisateur. Cette tche permet La configuration des cartes E/S sur borniers.

ATTENTION

Le systme prend en compte la configuration des cartes E/S au retour de %INI. Une modification ultrieure de la configuration nest donc pas prise en compte.
2.1.2.2 Tche priodique

Les tches priodiques sont %TS0 %TSn (Avec n tournant de 1 5 chaque cycle HTR). La priode dexcution de %TS0 est gale un cycle HTR soit 20 ms. La priode dexcution de %TS1, %TS2, %TS3, %TS4 est gale cinq cycle HTR soit 100 ms (Le cinquime cycle HTR est utilis par la tche systme %TS5). Les tches %TS ne sont pas interruptibles : - loccurrence de la HTR (1060 srie I et srie II multicarte), - sur l'IT fixe par le paramtre P99 (1060 srie II - UCSII).

fr-938846/3

2-5

2.1.2.3

Tche de fond

Ces tches (%TF0 %TF15) permettent deffectuer des traitements non prioritaires sans pnaliser les tches priodiques %TS. Elles permettent aussi lutilisation de fonctions bloquantes. Les tches %TF ont une priorit infrieure celle des tches %TS et %TH. Les tches %TF ont les particularits suivantes : - une tche est excute sur une demande explicite par la fonction tfstart (..), - une tche ne sera excute que sil reste du temps de cycle aprs lexcution des tches priodiques, - une tche n'est excute quune fois par cycle HTR, - une tche dsarme par la fonction tfstop (..) est excute en totalit. Les tches %TF sont interruptibles : - loccurrence de la HTR (1060 srie I et srie II multicarte), - sur l'IT fixe par le paramtre P99 (1060 srie II - UCSII).
SUSPENDUE

EN EXECUTION

NON PRETE

PRETE

EN ATTENTE

Figure 2.2 - Etats dune tche %TF

2-6

fr-938846/3

Structure d'une application

Fonctionnement des tches de fond NON PRETE > PRETE A linitialisation du systme les tches %TF sont dans ltat NON PRETE. Lappel de la fonction tfstart(n) fait passer %TFn ltat PRETE. EN ATTENTE ou PRETE ou EN EXECUTION > NON PRETE Lappel de la fonction tfstop(n) fait passer la tche %TFn dans ltat NON PRETE. PRETE > EN EXECUTION Dans ltat PRETE une tche %TF est excute ds quaucune tche nest EN EXECUTION et quaucune tche %TF de priorit suprieure ne se trouve dans ltat PRETE . A lintrieur des tches %TF la hirarchie des priorits est fixe par le numro : priorit %TF0 > priorit %TF1 > .... > priorit %TF15 EN EXECUTION > SUSPENDUE La tche %TF est suspendue pour permettre lexcution dune tche %TS ou %TH. Les tches %TF ne sont pas premptibles entre elles. SUSPENDUE > EN EXECUTION Aucune des tches %TS ou %TH nest en cours dexcution: la tche %TF suspendue est nouveau excute. EN EXECUTION > EN ATTENTE La tche %TF a fait un appel la fonction whtr(..) ou elle se termine (fin du code atteinte).

REMARQUE : La fonction whtr(..), programme dans une tche de fond, interrompt la tche pendant son excution et permet ainsi dexcuter dautres tches %TF ltat PRETE.
EN ATTENTE > PRETE La tche tait en attente depuis un certain nombre de cycle HTR par la fonction whtr(..) et le nombre de cycle HTR est coul. La tche tait termine, loccurrence de la HTR la replace dans ltat PRETE.

fr-938846/3

2-7

OCCURENCE HTR (20 ms)

TACHE SYSTEMATIQUE

1060 srie II - UCSII(P99 : de 4 18 ms)

%TS0 (tfstart(5))

%TS1 (tfstart(2))

%TS2 (tfstart(1))

%TS3 (tfstart(0))

%TS4

%TF2 whtr()

FIN DE %TF2

%TF1 whtr()

FIN DE %TF0

%TF5 whtr()

FIN DE %TF5 %TF0 %TF1

FIN DE %TF1

Figure 2.3 - Traitement des tches %TS et %TF

2-8

fr-938846/3

Structure d'une application

2.1.2.4

Tches temps rels

Les tches (%TH0 %TH15) permettent de prendre en compte des vnements prioritaires dont le traitement ne peut attendre loccurrence de la HTR. Les tches %TH ont une priorit suprieure celle des tches %TS et %TF. Une tche %TH active ne peut interrompre une tche %TH en cours. A lintrieur des tches %TH la hirarchie des priorits est fixe par le numro : priorit %TH0 > priorit %TH1 > .... > priorit %TH15. Fonctionnement des tche %TH Le programmeur associe une tche %TH une interruption lectronique grce aux fonctions suivantes : thiti(..) thtimer(..) interruption palpeur. interruption timer.

A loccurrence de linterruption, le systme lance lexcution de la tche %TH associe. Si plusieurs tches %TH sont actives au cours du mme cycle HTR, le cumul de temps de traitement de chaque routine dinterruption ne doit pas excder 4 ms. Si le temps de traitement est suprieur l'unit centrale sera mise en dfaut Dpassement temps de calcul.

Activation %THn %THn1

MONITEUR

%TSn (Programme client)

%THn

%THn1

%TFn

t > 4ms 1 cycle HTR (20 ms)

Mise en dfaut "Dpassement temps de calcul"

fr-938846/3

2-9

2.1.3

Traitement des dbordements

Les anomalies de fonctionnement du programme utilisateur sont signales par : - lincrmentation du compteur de dpassement HTR %R97C.W, - La mise en REPLI_SUR_DEFAUT de l'unit centrale dans les cas critiques. La mise en vidence de ce type danomalies ncessite une reprise du programme utilisateur. 2.1.3.1 Systmes 1060 srie I et srie II multicarte

Etant rythm par loccurrence de la HTR toutes les 20 ms, le traitement des tches %TS doit normalement tre effectu avant lapparition de celle-ci. Dbordements successifs Un lger dpassement de loccurrence de la HTR est tolr dans le traitement des tches %TS. A chaque dpassement le systme incrmente le compteur de dpassement HTR %R97C.W. Le systme autorise trois dbordements successifs maximum. Le quatrime dbordement provoque lincrmentation du compteur de dpassement %R97C.W et la mise en REPLI_SUR_DEFAUT de l'unit centrale.
JUSQU'A TROIS DEBORDEMENTS SUCESSIFS
MONITEUR 5 ms

Dbordement Programme client (%TSn)


MONITEUR 5 ms

%R97C.W est incrment Occurence HTR PLUS DE TROIS DEBORDEMENTS SUCESSIFS 1


MONI TEUR

Occurence HTR 2 Programme client


MONI TEUR

3 Programme client
MONI TEUR

4 Programme client

Programme client

MONI TEUR

Occurence HTR

Occurence HTR

Occurence HTR

Occurence HTR

%R97C.W est incrment

%R97C.W est incrment

%R97C.W est incrment

Occurence HTR Mise en REPLI_SUR_DEFAUT

REMARQUE

Un programme utilisateur peut ne pas crer de dbordement en fonctionnant vide (par exemple sans usiner de pice), mais en charge des dbordements peuvent se produire par suite des taches hard CN (traitement des asservissements,....) ou des IT (lignes srie....) qui se rajoutent dans l'intervalle entre deux HTR.

Boucle dans un programme L'excution ininterrompue de %TSn pendant plus de 40 ms provoque la mise en REPLI_SUR_DEFAUT avec lerreur ERR_DEPASSEMENT_HTR.
40 ms
MONITEUR 5 ms

%TS0 ou %TSn (Boucle dans le programme)

Occurence HTR

Occurence HTR

Occurence HTR Mise en REPLI_SUR_DEFAUT

2 - 10

fr-938846/6

Structure d'une application

2.1.3.2

Systmes 1060 srie II - UCSII

Fonctionnement normal Etant rythm par loccurrence de la HTR toutes les 20 ms, le programme utilisateur est nanmoins limit une dure fixe par le paramtre P99 (Voir manuel des paramtres). Le paramtre P99 est un multiple de 2 ms et doit tre compris entre 4 et 18 ms. Le traitement des tches %TS doit normalement tre effectu avant lapparition de l'IT P99.
20 ms P99 ms
MONITEUR < 5 ms

Programme client (%TSn + %TFn)

MONITEUR < 5 ms

Occurence HTR

IT P99

Occurence HTR

Dbordements successifs Un lger dpassement de l'IT P99 est tolr dans le traitement des tches %TS. A chaque dpassement le systme incrmente le compteur de dpassement HTR %R97C.W. Si l'occurrence de la HTR arrive alors que les %TS ne sont pas acheves, le moniteur est relanc immdiatement. Le systme autorise trois dbordements successifs maximum. Le quatrime dbordement provoque lincrmentation du compteur de dpassement %R97C.W et la mise en REPLI_SUR_DEFAUT de l'unit centrale.
HTR 2
MONI TEUR

HTR

HTR

1
MONI TEUR

3
MONI TEUR

4
MONI TEUR

Programme client

Programme client

Programme client

Programme client

Occurence HTR

IT P99 %R97C.W est incrment

IT P99 %R97C.W est incrment

IT P99 %R97C.W est incrment

IT P99 Mise en REPLI_SUR_DEFAUT

HTR

HTR 2

HTR

1
MONI TEUR

3
MONI TEUR

4
MONI TEUR

Programme client

MONI TEUR

Programme client

Programme client

Programme client

Occurence HTR

IT P99

IT P99

IT P99 %R97C.W est incrment

IT P99 Mise en REPLI_SUR_DEFAUT

%R97C.W est incrment

%R97C.W est incrment

REMARQUE

Un programme utilisateur peut ne pas crer de dbordement en fonctionnant vide (par exemple sans usiner de pice), mais en charge des dbordements peuvent se produire par suite des taches hard CN (traitement des asservissements,....) ou des IT (lignes srie....) qui se rajoutent dans l'intervalle entre deux HTR ou entre la HTR et l'IT P99.

fr-938846/6

2 - 11

Boucle dans un programme L'excution ininterrompue de %TSn pendant 2 x P99 ms provoque la mise en REPLI_SUR_DEFAUT avec lerreur ERR_DEPASSEMENT_HTR.
HTR

MONITEUR < 5 ms

%TS0 ou %TSn (Boucle dans le programme)

Occurence HTR

IT P99

IT P99 Mise en REPLI_SUR_DEFAUT

Non traitement du moniteur La non excution du moniteur pendant 2 x P99 ms provoque la mise en REPLI_SUR_DEFAUT avec lerreur ERR_DEPASSEMENT_HTR.
HTR HTR

MONITEUR < 5 ms

Programme client

MONITEUR < 5 ms

Programme client

Occurence HTR

IT P99

IT P99

IT P99 Mise en REPLI_SUR_DEFAUT

2 - 12

fr-938846/3

Structure d'une application

2.2

Structure dune application

Une application se compose dun ensemble de modules, cres sous loutil de programmation PLCTOOL, qui sont chargs sur la CN dans le but de piloter linstallation. Dtail des modules Modules tche ladder Les modules tche ladder sont associs : - la tche %INI, - aux tches %TS0 %TS4, - aux tches %TF0 %TF15, - aux tches %TH0 %TH15. Ces modules sont appels par le gestionnaire de tches du systme. Ils ne peuvent pas tre appels explicitement. Lutilisateur gre ventuellement ces modules tche grce aux fonctions de gestion des tches (Voir chapitre 7). Les modules tche ladder sont des fichiers du type *.XLA. Modules sous-programme ladder Les modules sous-programme ladder sont nots %SP0 %SP255. Ils peuvent tre appels lintrieur dun module tche ou dun autre module sous-programme grce la fonction sp(..) ou spy(..). Un sous-programme automate crit en ladder et appel partir d'un module C par la fonction SP, ne doit comporter AUCUN appel une fonction (hormis les fonctions goto 0 et call 0). Les modules sous-programme ladder sont des fichiers du type *.XLA. Les modules excutables Ces modules excutables sont issus de la chane de compilation (MCC68K) en langage C. Ils peuvent tre appels lintrieur dun module tche ladder ou dun module sous-programme ladder grce la fonction exec(..). Toutes les tche peuvent tre programmes en langage C. Si une mme tche est crite en langage C et en ladder, cest le code C qui sera excut par la fonction automatisme. Les modules excutables sont des fichiers du type *.XCX. Particularit pour l'initialisation d'un module C (.XCX) Implantation du code de la mmoire globale en mmoire locale AP, Excution dans le "main()" des directives suivantes: - Import(), - Export(), - Initialisation possible de certains types de variables : variables globales C du module XCX, variables non initialises (sauvegardes) du ladder. Rsolution des imports/exports (on ne peut pas utiliser des variables importes dans le "main()"), Initialisation des variables ladder initialises, Excution du module %INI, Lancement du cycle normal de l'automate.

REMARQUE:

Sur un Stop/Dpart de l'automate (sans INIT), seules les trois dernires phases sont excutes Les variables sauvegardes sont %M, %C, %CQ; les variables initialises sont %I, %Q, %R, %T, %TQ, %V. Les variables %W dites "impulsionnelles" sont remises zro par le bouton RAZ ou coupure secteur.
fr-938846/8

2 - 13

TACHE INITIALISATION I %INI

Occurence HTR (20 ms)

TACHE SYSTEME

GESTIONNAIRE DE TACHES

TACHE %TS0

TACHE HARD %TH0 %TH15

EVENEMENT EXTERIEUR

TACHES %TS1 %TS4

SOUS PROGRAMMES

%SP0 %SP255

16 TACHES DE FOND %TF0 %TF15

TACHES PERIODIQUES

TACHES INTERRUPTIONS

Figure 2.4 - Structure dune application

2 - 14

fr-938846/5

PROGRAMME UTILISATEUR

PROGRAMME UTILISATEUR

Structure d'une application

2.3

Structure dun module ladder - Squences lmentaires

Un module ladder se compose dune succession de squences lmentaires. Le nombre de squence dans un module est limit 100 et la taille dun module est limite 16 kO. La squence est lunit de saisie et de compilation. Il existe trois types de squences lmentaires : - la squence qui permet la saisie dun tableau de constantes numriques, - la squence qui permet la saisie dune ou plusieurs chanes de caractres, - la squence qui permet la saisie dun rseau de contacts et bobines.

2.4

Elments communs tous les types de squence

Chaque type de squence est compos en partie des lments communs suivant : - len-tte de squence, - ltape grafcet.

2.5
2.5.1

La squence tableau de constantes


Prsentation

Ce type de squence contient un tableau de donnes qui sera trait par une fonction qui exploite les buffers. Cette squence se compose : - dun label et dun commentaire facultatif, - dune tape grafcet facultative, - dune variable %Vxx.L ou %Yxx.L associe qui va contenir ladresse de dbut du tableau, - dune suite de valeurs numriques ou chaque valeur occupe un long mot. Chaque tableau peut contenir jusqu 500 valeurs. Le nombre de tableaux que peut contenir un module est limit par la taille maximum du module et le nombre de squence doit tre infrieur 100.

2.5.2

Utilisation dun tableau

Laccs se fait par lintermdiaire de ladresse de dbut du tableau contenue dans une variable %Vxx.L ou %Yxx.L et grce aux fonctions du type cpyb(..), cpyw(..), cpyl(..), print(..), .. etc ... On peut accder directement aux valeurs d'un tableau par les pointeurs (Ex : %Yxx -> n.L)

2.5.3

Initialisation dun tableau

Linitialisation dun tableau est ralise quand le moniteur charge la variable %Vxx.L ou %Yxx.L avec ladresse de dbut de tableau. Une squence tableau doit donc avoir t excute une fois par le systme avant de pouvoir tre utilise dans le programme par une squence rseau.

fr-938846/3

2 - 15

2.6
2.6.1

La squence chane de caractres


Prsentation

Ce type de squence contient des chanes de caractres qui seront traites principalement par les fonctions daffichages lcran de la CN. Cette squence se compose : - dun label et dun commentaire facultatif, - dune tape grafcet facultative, - de la dfinition dune 32 chanes de caractres. La dfinition dune chane de caractres se compose : - dune variable %Vxx.L ou %Yxx.L associe qui va contenir ladresse de dbut de la chane, - dune suite de 120 caractres alphanumrique maximum. Le nombre de squences chanes que peut contenir un module est limit par la taille maximum du module et le nombre de squences doit tre infrieur 100. Le compilateur ajoute automatiquement un octet nul la fin dune chane.

2.6.2

Utilisation dune chane

On ne peut pas accder directement aux caractres dune chane. Laccs se fait par lintermdiaire de ladresse de dbut de la chane contenu dansune variable %Vxx.L ou %Yxx.L et grce aux fonctions du type printf(..), scano (..), scanu (..), .. etc ... On peut accder directement aux caractres d'une chane par les pointeurs (Ex : %Yxx -> n.B)

2.6.3

Initialisation dune chane

Linitialisation dune chane est ralise quand le moniteur charge la variable %Vxx.L ou %Yxx.L avec ladresse de dbut de la chane. Une squence chane doit donc avoir t excute une fois par le systme avant de pouvoir tre utilise dans le programme par une squence rseau. On peut associer une mme variable %Vxx.L ou %Yxx.L avec des chanes diffrentes et situes dans des squences diffrentes. Dans ce cas la variable % contient ladresse de la chane situe dans la squence chane qui a t excute en dernier.

2.7

La squence rseau

Ce type de squence est lentit de base du programme dautomatisme. La squence rseau est compos de contacts, de drivations et de bobines. Un rseau de contacts est compos : - dun label et dun commentaire facultatif, - dune tape grafcet facultative, - dune zone de test de six lignes de six contacts (36 cellules), - dune zone daction de six lignes dune bobine (Six cellules).

2 - 16

fr-938846/3

Variables

3 Variables

3.1 Principe des changes 3.2 Variable % - Mnmonique 3.3 Variable %


3.3.1 3.3.2 3.3.3 3.3.4 3.3.4.1 Champ symbole Champ numro logique Champ taille Champ indexation Indexation avec la variable Bit Champ de coercition

3-5 3-6 3-6 3-6 3-6 3-7 3-7 3-7 3-8 3-8 3-8 3-8 3-9 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-11 3-11 3-11 3-12 3-12 3-12 3-13 3-14 3-14 3-15 3-15 3-16 3-17 3-17 3-17 3-18 3-19 3-20 3-22 3-24 3-25

3.4 Mnmonique
3.4.1

3.5 Variables internes banalises sauvegardes 3.6 Variables internes banalises non sauvegardes 3.7 Variables E/S borniers %I et %Q
3.7.1 3.7.1.1 3.7.1.2 3.7.2 3.7.2.1 3.7.2.2 3.7.3 3.7.3.1 3.7.3.2 3.7.3.3 3.7.3.4 3.7.4 3.7.4.1 3.7.4.2 3.7.4.3 3.7.4.4 3.7.4.5 3.7.5 3.7.5.1 3.7.5.2 3.7.6 3.7.6.1 3.7.6.2 3.7.7 3.7.8 3.7.9 3.7.10 3.7.11 3.7.12 Structure des variables en lecture %Irc Partie diagnostic carte Partie image des entres Structure des variables en criture %Qrc Partie configuration carte Partie image des sorties Variables de diagnostic carte Identificateur carte %Irc3E.W Status carte %Irc3C.W Compteur dfaut dialogue %Irc3A.W Status bus %Irc39.B Variables de configuration carte Identificateur carte %Qrc3E.W Option adresse logique gographique %Qrc3D.B Priorit carte %Qrc3C.B Chien de garde %Qrc3B.0 Autorisation accs CN %Qrc3B.1 Organisation physique des variables %I et %Q Organisation physique des variables %I et %Q du rack N r Organisation physique des variables %I et %Q des diffrents racks Identificateur des cartes et racks Identificateurs des cartes Identificateurs des racks Partie image de la carte 32 entres TOR Partie image de la carte 32 sorties TOR Partie image des cartes 32E 24S TOR et 32-24 I/O Partie image de la carte 64-48 I/O Partie image du pupitre machine Partie image du pupitre machine avec carte dextension

fr-938846/8

3-1

3.7.13 Partie image du pupitre compact 3.7.13.1 Image du pupitre compact dans la zone d'change 3.7.13.2 Image du pupitre compact 3.7.13.3 Image du cartouche JOG 3.7.13.4 Image des voyants des touches personnalisables

3-27 3-27 3-27 3-27 3-28 3-29 3-29 3-29 3-29 3-30 3-31 3-32 3-32 3-33 3-34 3-34 3-35 3-36 3-36 3-37 3-38 3-38 3-39 3-40 3-41 3-41 3-42 3-42 3-42 3-43 3-43 3-44 3-44 3-45 3-45 3-48 3-49 3-50 3-50

3.8 Famille interface E/S CN %R et %W


3.8.1 3.8.1.1 3.8.1.2 3.8.1.3 3.8.1.4 3.8.1.5 3.8.1.6 3.8.1.7 3.8.1.8 3.8.1.9 3.8.1.10 3.8.1.11 3.8.1.12 3.8.1.13 3.8.2 3.8.2.1 3.8.2.2 3.8.2.3 3.8.2.4 3.8.2.5 3.8.2.6 3.8.2.7 3.8.2.8 3.8.2.9 3.8.2.10 3.8.2.11 3.8.2.12 3.8.2.13 3.8.2.14 3.8.2.15 3.8.2.16 3.8.2.17 3.8.2.18 Entres venant de la CN %R0 %R7F. Caractres clavier : %R0.W Etat Machine : %R2.W Etat CN : %R4.W Axes en mouvements : %R6.L Axes initialiss (POM faite) : %RA.L Paramtres Externes E10000 E10031 : %RE.L Etat des Broches : %R12.W Type dincrment de JOG : %R15.B Mode en cours : %R16.B Variables diverses Vitesse de broche : %R1C.W %R22.W Axe blocable : %R24.L Mot d'tat variateur "1050" Sortie vers la CN %W0 %W7F Commandes Impulsionnelles : %W2.W Commandes Maintenues : %W4.W Commandes JOG Positif : %W6.L Commandes JOG Ngatif : %WA.L Paramtres Externes E20000 E20031 : %WE.L Valeur de lincrment de JOG : %W13.B Mode demand : %W14.B Affichage de message : %W15.B et W16.B Slection du groupe daxes : %W17.B Numro de programme demand : %W18.W Affectation manivelle : %W1A.B %W1D.B Potentiomtre de broche : %W1E.B %W21.B Commandes Broches : %W22.W Consigne de vitesse de broche : %W24.W %W2A.W Incrments de JOG interdits : %W2C.W Modes interdits : %W30.L Validation du couple pour les axes QVN : %W34.L Validation Rfrence vitesse pour les axes QVN : %W38.0

3-2

fr-938846/8

Variables

3.8.2.19 Recul ou retour sur trajectoire 3.8.2.20 Arrt d'avance par axe (le rang du bit donne l'adresse physique de l'axe) : %W3A.L 3.8.2.21 Rduction de courant : %WE00.B WE1F.B "D.I.S.C." et "1050" 3.8.2.22 Mot de commande variateur "1050" 3.8.3 Entres venant des groupes daxes 3.8.3.1 Etat Groupe : %Rg00.W 3.8.3.2 Numro du cycle dusinage en cours : %Rg02.B 3.8.3.3 Etat Fonction G : %Rg03.B 3.8.3.4 Fonction M code sans compte rendu : %Rg04.W 3.8.3.5 Fonction M code avec compte rendu : %Rg1E.W 3.8.3.6 Fonctions M dcodes : %Rg20.L 3.8.3.7 Fonctions M dcodes (Etat des broches) : %Rg24.W 3.8.3.8 Blocage - dblocage daxes 3.8.3.9 Numro doutil : %Rg7C.L 3.8.4 Sortie vers les groupes daxes 3.8.4.1 Commandes Groupe : %Wg00.W 3.8.4.2 Valeur du potentiomtre davance : %Wg02.B 3.8.4.3 Mode groupe indpendant : %Wg03.B 3.8.5 Dfauts et diagnostic systme 3.8.5.1 Dfaut systme ou de configuration 3.8.5.2 Diagnostic systme 3.8.6 Choix du module animer 3.8.7 Autorisation d'criture des cartes sorties %W900.0 3.8.8 Gestion dfaut systme 3.8.9 Paramtres externes E30xxx, E40xxx et E42xxx 3.8.9.1 Paramtres externes E30xxx 3.8.9.2 Paramtres externes E40xxx 3.8.9.3 Paramtres E42xxx 3.8.10 Organisation physique des variables %R et %W

3-51 3-51 3-51 3-52 3-53 3-53 3-54 3-54 3-55 3-55 3-56 3-58 3-59 3-59 3-61 3-61 3-62 3-62 3-63 3-63 3-63 3-64 3-65 3-65 3-65 3-65 3-66 3-66 3-67 3-68 3-68 3-68 3-69 3-70 3-70 3-70 3-71

3.9 Variables mots communs %S


3.9.1 3.9.2 3.9.3 Actualisation des variables Configuration des mots communs Organisation des variables mots communs %S Gnralits Adressage indirect - Pointeurs Exemples d'utilisation des pointeurs

3.10 Variables locales %Y - Pointeurs


3.10.1 3.10.2 3.10.3

fr-938846/8

3-3

3.11 Zone dchange


3.11.1 3.11.2 3.11.3 3.11.4 3.11.4.1 3.11.4.2 3.11.5 3.11.6 Entres venant de la CN Zone d'change CN - automate "1050" Sorties vers la CN Zone d'change automate - CN "1050" Modulation de couple Mot de commande variateur Entres venant des groupes daxes Sorties vers les groupes daxes

3-72 3-72 3-74 3-75 3-79 3-79 3-79 3-80 3-81

3-4

fr-938846/8

Variables

3.1

Principe des changes

Les changes entre la fonction automatisme et la fonction CN seffectuent par lintermdiaire dune zone mmoire accessible au deux fonctions appele zone dchange. Les changes avec les cartes Entres/Sorties TOR sont traits directement par la fonction automatisme.

REMARQUE : Les termes Entres/Sorties sont dfinis par rapport la fonction automatisme. Une entre est une variable lue par la fonction automatisme. Une sortie est une variable crite par la fonction automatisme.

ENTREES FONCTION AUTOMATISME

Fonction CN
Ecriture %R Lecture %R

Fonction automatisme

Lecture %Irc

- Automatisme - Pupitre machine - Moniteur - Programme utilisateur

- Logiciel CN - Programme pices - etc . . . .


Lecture %W

ZONE D'ECHANGE

Ecriture %Qrc

Ecriture %W

SORTIES FONCTION AUTOMATISME

Figure 3.1 - Principe des changes

fr-938846/6

3-5

3.2

Variable % - Mnmonique

Une variable possde deux types de reprsentation : - une reprsentation qui commence toujours par le caractre %. Cette reprsentation permet au compilateur de dterminer ladresse physique de la variable, - une reprsentation utilisateur facultative appele aussi mnmonique. Cette reprsentation ne peut pas commencer par le caractre %. Lutilisateur peut associer un mnmonique et une variable % dans une table de symboles (Voir manuel PLCTOOL Outil de programmation).

3.3

Variable %

Ce type de variable commence toujours par le caractre % suivi des champs : - Symbole, - Numro logique, - Taille, - Indexation.
Symbole Numro logique Taille Indexation

%
3.3.1 Champ symbole
Ce champ est obligatoire. Ce champ indique la famille de la variable Valeur champ %M %V %I %Q %R %W %S %Y Dfinition Pour les variables internes banalises sauvegardes Pour les variables internes banalises non sauvegardes Pour les variables en lecture de linterface E/S borniers Pour les variables en criture de linterface E/S borniers Pour les variables en lecture de linterface E/S CN Pour les variables en criture de linterface E/S CN Pour les variables mots communs Pour les variables locales

3.3.2

Champ numro logique

Ce champ est obligatoire. Ce champ permet de dsigner un objet lintrieur dune famille. Le numro logique est cod en hexadcimal sur 4 chiffres maximum. Le numro logique reprsente ladresse logique en OCTETS depuis le premier lment de la famille.

3-6

fr-938846/6

Variables

Exemples %M9 pointe loctet N 9 dans la famille des variables internes %M. %MA pointe loctet N 10 dans la famille des variables internes %M.

3.3.3

Champ taille
Dfinition Dsigne le bit n (de 0 7) de loctet (le bit 0 est le bit de poids faible, le bit 7 est le bit de poids fort) Dsigne lentier sign sur 8 bits Dsigne lentier sign sur 16 bits (poids fort ladresse n, poids faible ladresse n+1) Dsigne lentier sign sur 32 bits (poids fort ladresse n, poids faible ladresse n+3) Dsigne ladresse de la variable. Une adresse est code sur 32 bits

Ce champ commence par un point (.) suivi par un des caractres alphanumriques suivants : Valeur champ .n .B .W .L .&

3.3.4

Champ indexation

Ce champ est facultatif. Lindex est mis entre crochets [ ] aprs le champ taille. Lindex est une variable %M de taille .W (Ex : %M34.L[%M5.W]). La valeur de lindex est ajoute au numro logique de la variable de base pour trouver ladresse de la variable indexe. Exemple Si Alors: %M2.W = 4 %M8.L[%M2.W] dsigne %MC.L .

ATTENTION

Lindexation est interdite avec une variable .&.


Exemple %M34.&[%M4.W] est Interdit. 3.3.4.1 Indexation avec la variable Bit

Lindexation des variables bit agit sur ladresse de loctet mais ne modifie pas lemplacement du bit lintrieur de loctet. Exemple Si Alors %M2.W = 4 %M8.7[%M2.W] dsigne %MC.7 .

fr-938846/6

3-7

3.4

Mnmonique

Un mnmonique est une combinaison de 12 caractres maximum choisis parmi : - les 26 lettres majuscules ( A, B, C .... Z), - les 26 lettres minuscules (a, b, c, .... z), - les 10 chiffres (0, 1, 2, .... 9), - le soulign ( _ ). Un mnmonique doit commencer par une lettre (le soulign est exclu). Le compilateur ne fait pas la diffrence entre majuscule et minuscule. Lutilisateur doit associer un mnmonique avec une variable %. Ces associations sont sauvegardes dans les fichiers de symboles (*.XSY) de PLCTOOL.

3.4.1

Champ de coercition

Lors de lutilisation dun mnmonique, il est possible de spcifier des variables de taille diffrente de celles indiques lors de lassociation mnmonique/variable %. La coercition est indique aprs le mnmonique par un point (.) suivi du symbole de la nouvelle taille. Exemple Si le mnmomique Mot_tat est associ la variable %M3.B, Alors : le mnmomique Mot_tat.0 reprsente %M3.0 le mnmomique Mot_tat.7 reprsente %M3.7 le mnmomique Mot_tat.W reprsente %M3.W le mnmomique Mot_tat.L reprsente %M3.L

3.5

Variables internes banalises sauvegardes

Ce sont les variables de %M0 %M77FF (soit 30 koctets). Les variables %M sont sauvegardes pendant une coupure secteur.

3.6

Variables internes banalises non sauvegardes

Ce sont les variables %V0 %V7FFF (soit 32 koctets). Ces variables %V ne sont pas sauvegardes pendant une coupure secteur ou sur une INIT de l'unit centrale. Elle sont remises zro linitialisation de l'unit centrale.

3-8

fr-938846/6

Variables

3.7

Variables E/S borniers %I et %Q

Ce type de variable est associ aux lments suivant : - cartes 32 entres TOR, - cartes 32 sorties TOR, - cartes 32 entres 24 sorties TOR, - cartes 32-24 I/O, - carte 64-48 I/O, - pupitre machine, - carte dextension 32 entres 24 sorties TOR du pupitre machine. Chaque carte E/S TOR borniers se compose : - dun bloc de 64 octets de variables %I en lecture, - dun bloc de 64 octets de variables %Q en criture. Les cartes E/S sont adresses logiquement (Voir 3.7.4) sur 4 digits. Par dfaut (sans configuration), on : @ logique = @ gographique
N de rack N de carte (de 0 6) (de 1 C) @ logique (de 0 3F)

I %Q r
Type dquipement Rack principal 19" Rack principal 12" Rack dextension 12 cartes Rack dextension 2 cartes Pupitre machine Exemple %I3500 %Q352F Numro de rack 0 0 16 16 0

c
Numro de carte 5C 58 1C 1 et 2 14

Le numro de carte c et le numro de rack r sont lis au type dquipement. Se reporter au Manuel dinstallation et de mise en oeuvre pour ladressage des racks.

Reprsente loctet 0 en lecture de la carte 5 situe dans le rack 3. Reprsente loctet 0x2F en criture de la carte 5 situe dans le rack 3.

REMARQUE : Un adressage logique est galement possible (Voir 3.7.4).

fr-938846/6

3-9

3.7.1

Structure des variables en lecture %Irc

Le poste des variables en lecture %Irc (pour les carte 0 C) est divis en deux parties : - la partie diagnostic de la carte, - la partie image de la carte. 3.7.1.1 Partie diagnostic carte

Cette partie regroupe des variables de diagnostic qui sont lues par lutilisateur. Les informations sont situes aux adresses logiques hautes (%Irc3F,%Irc3E, .. etc ...). La structure est identique pour tous les types de cartes. 3.7.1.2 Partie image des entres

Cette partie regroupe les images des entres de la carte. Les images des entres sont situes aux adresses logiques basses (%Irc00, %Irc01, ... etc ... ). La structure dpend du type de la carte.

3.7.2

Structure des variables en criture %Qrc

Le poste des variables en criture %Qrc (pour les cartes 0 C) est divis en deux parties : - la partie configuration de la carte, - la partie image de la carte. 3.7.2.1 Partie configuration carte

Cette partie regroupe des variables de configuration qui sont crites par lutilisateur. Les informations sont situes aux adresses logiques hautes (%Qrc3F, %Qrc3E, .. etc ... ). La configuration des cartes E/S borniers doit tre programme dans la tche initialisation %INI. Le moniteur prend en compte la configuration la fin de la tche % INI, toute modification ultrieure de la configuration ne sera donc pas prise en compte par le moniteur. La structure est la mme pour tous les types de cartes. 3.7.2.2 Partie image des sorties

Cette partie regroupe les images des sorties de la carte. Les images des sorties sont situes aux adresses logiques basses (%Qrc00 , %Qrc01, .. etc ...). La structure dpend du type de la carte. Se reporter aux paragraphes suivants pour la structure de chaque carte.

3.7.3
3.7.3.1

Variables de diagnostic carte


Identificateur carte %Irc3E.W

Ce mot est crit par le moniteur aprs interrogation de la carte. %Irc3E.W == 0x700 indique une absence de carte. Exemple: %I123E.W Contient lidentificateur de la carte 2 du rack 1.

3 - 10

fr-938846/6

Variables

3.7.3.2

Status carte %Irc3C.W

Ce mot renseigne lutilisateur sur ltat interne de la carte. Cette fonctionnalit est disponible uniquement sur les cartes 32E / 24S, 32-24 I/O, 64-48 I/O et les cartes dextensions 32E / 24S du pupitre machine. Le registre %Irc3C.W se dcompose comme suit :
Dfaut interne carte Dfaut court circuit / Alimentation

3
Bit 15 Bit 0

Si aucun dfaut nest dtect, ce registre pour valeur 0x00FF Le contrle du status interne de la carte est effectu priodiquement. Le programmeur peut fixer cette priode par la fonction DIAGIQ(). En cas de dtection de problme, ce registre ne sera plus rafrachi. Lutilisateur doit forcer le registre la valeur 0x00FF pour quil soit de nouveau rafrachi.

REMARQUE : Si il y a dtection dun dfaut interne carte, il y a monte du bit dfaut gnral cartes E/S borniers %R97F.2 (DEFCARTE).
3.7.3.3 Compteur dfaut dialogue %Irc3A.W

Ce mot sincrmente chaque fois quun dfaut liaison ou dfaut carte est dtect lors de linterrogation dune carte. Ce compteur se bloque 0x7FFF. 3.7.3.4 Status bus %Irc39.B

Cet octet renseigne lutilisateur sur ltat de la liaison sur le bus E/S srie : - 0 fonctionnement correct, - 1 pas de trame cho, - 2 erreur check-sum sur trame cho, - 3 pas de trame rponse, - 4 erreur check-sum sur trame rponse, - 5 fibre optique interrompue, - 6 autres erreurs. Les bits de dfaut interne carte recouvrent les bits de dfaut liaison entre et les bits de dfaut liaison sortie (voir dtails pour chaque type de carte supportant cette fonctionnalit). Si des bits de liaison entre sont 1, l'tat des bits de dfaut alimentation correspondant est non significatif. Si des bits de liaison sortie sont 1, l'tat des bits de dfaut court-circuit correspondant est non significatif.

REMARQUE : Si quatre dfauts de transmission conscutifs sur la mme carte se produisent, il y a monte du bit dfaut gnral liaison sur le bus E/S srie %R97F.0 (DEFBUS) et le chien de garde retombe. Si les dfauts de transmission se produisent linitialisation de l'unit centrale, il y a monte du bit dfaut gnral liaison sur le bus E/S srie %R97F.0 (DEFBUS) et le chien de garde nest pas valid.

fr-938846/7

3 - 11

3.7.4
3.7.4.1

Variables de configuration carte


Identificateur carte %Qrc3E.W

Ce mot indique le type de carte que lutilisateur sattend trouver lemplacement de numro de rack r et de numro de carte c.Il doit tre programm dans une tche %INI. Il permet de contrler la conformit de la configuration carte/rack dune application. Ce contrle est effectu par comparaison avec les valeurs lues dans %Irc3E.W.

REMARQUE : Si il y a divergence entre la configuration prvue %Qrc3E.W et la configuration relle %Irc3E.W, alors il y a monte du bit dfaut gnral configuration cartes E/ S borniers %R97F.1 (DEFCONF), les entres/sorties ne sont plus rafrachies et le chien de garde nest pas valid.
%Qrc3E.W est initialis 0x700. Cette valeur indique une absence de configuration de la carte. Dans ce cas le moniteur traite la carte uniquement si elle est prsente dans le rack. Exemple %Q123E.W == Contient lidentificateur de la carte que lon sattend trouver lemplacement 2 du rack 1. Option adresse logique gographique %Qrc3D.B

3.7.4.2

Permet de choisir la carte physique associe avec le poste %Irc et %Qrc. Cette option permet de grer facilement les volutions physiques du systme sans modifier dans le programme les variables dentres/sorties. Si loctet %Qrc3D.B == rc, alors la carte physique associe au poste %Irc et %Qrc est la carte c du rack r. Le chargement de %Qrc3D.B avec rc doit se faire dans la tche %INI, le systme prend en compte %Qrc3D.B uniquement au retour de %INI. Lorsque r nindique pas un rack configur ou c nindique pas une carte configure(Erreur ERR_CONFIG_SBCE), il y a monte du bit dfaut gnral configuration cartes E/S borniers %R97F.1 (DEFCONF), les entres/sorties ne sont plus rafrachies et le chien de garde nest pas valid. Le systme initialise par dfaut loctet %Qrc3D.B la valeur rc (soit adresse logique = adresse gographique). La reconnaissance gographique du bus tant effectu avant la tche %INI, lutilisateur peut exploiter le mot %Irc3E.W (Identificateur carte) dans cette tche. Sil y a utilisation de loption adressage logique (%Qrc3D.B), lidentificateur lu sur le bus sera dplac en consquence dans la table dentres/sorties. Exemple Dans la configuration de base, on a une carte 32E/24S lemplacement 7 dans le rack principal.

Carte 32E/24S rack 0 emplacement 7


Pour cette carte, le programme utilisateur est crit avec les variables %I07xx.x et %Q07xx.x.

3 - 12

fr-938846/6

Variables

Une volution de configuration oblige dplacer la carte du rack 0 emplacement 7 vers le rack dextension 1 emplacement 1.

Carte 32E/24S dplace rack 1 emplacement 1


Pour conserver le programme utilisateur inchang, il faut programmer dans %INI : - %Q073D.B = 0x11 - %Q073E.W = 0x1500 (identificateur carte 32E/24S)

REMARQUE : La programmation de l'identificateur carte est obligatoire.


Dans ce cas, on a : - 0x07xx qui est ladresse logique, - 0x11xx qui est ladresse gographique (@ physique). 3.7.4.3 Priorit carte %Qrc3C.B

Doit tre programme dans la tche %INI. Cet octet permet de fixer une priorit la carte. Il permet dassocier une carte avec une tche systmatique %TS0, %TS1 %TS4 ou %TS5. Cette possibilit permet de diminuer le traitement systmatique chaque HTR. Valeur de loctet 0 1 2 3 4 5 Priodicit de traitement La carte est traite toutes les HTR. La carte est traite toutes les 5 HTR en phase avec %TS1. La carte est traite toutes les 5 HTR en phase avec %TS2. La carte est traite toutes les 5 HTR en phase avec %TS3. La carte est traite toutes les 5 HTR en phase avec %TS4. La carte est traite toutes les 5 HTR dans la tche systme %TS5.

Les entres des cartes de priorit i = 1, 2, 3, 4 sont lues avant lappel de %TSi. Les sorties des cartes de priorit i = 1, 2, 3, 4 sont crites en fin de %TSi. Si loctet priorit nest pas compris entre 0 et 5, la carte nest pas rafrachie priodiquement par le moniteur. Son accs est cependant possible par les fonctions de lecture et criture explicite (Voir 10.2 fonction read_i(...) et 10.3 fonction write_q(...) ). Le systme initialise par dfaut loctet de priorit la valeur 0.

fr-938846/6

3 - 13

3.7.4.4

Chien de garde %Qrc3B.0

Doit tre programm dans la tche %INI. Lorsquil est un, ce bit indique que la sortie %Qrc00.0 de cette carte est une sortie chien de garde. Deux chiens de garde sont autoriss; le moniteur scrute l'ensemble des variables %Qrc3B.0 et slectionne les deux premiers chiens de garde programms dans l'ordre (r,c) croissant. En cas de dfaut dinitialisation des chiens de garde, il y a monte du bit dfaut gnral configuration cartes E/S borniers %R97F.1 (DEFCONF), les entres/sorties ne sont plus rafrachies et les chiens de garde ne sont pas valids. 3.7.4.5 Autorisation accs CN %Qrc3B.1

Valide ou invalide laccs aux cartes sorties (par les paramtres E33xxx) et aux cartes entres (par les paramtres E43xxx) en programmation pice. La variable 0 interdit laccs la carte par programmation pice. La variable 1 autorise laccs la carte par programmation pice. Par dfaut la variable %Qrc3B.1 est positionne 0 par le moniteur.

REMARQUE:

%Qrc3B.1 doit tre programm dans le %INI. Suivant l'tat de la variable %W900.0, l'accs aux sorties est possible ou non par E33xxx.

3 - 14

fr-938846/6

Variables

3.7.5

Organisation physique des variables %I et %Q

Les variables %I et %Q sont organises en blocs mmoire de 64 octets %I suivis de 64 octets %Q correspondant une carte et ainsi de suite jusqu la dernire carte du rack. Les racks sont conscutifs et contigus (du rack 0 au rack 6). 3.7.5.1 Organisation physique des variables %I et %Q du rack N r

Offset 0 %Ir00 %Ir03F %Qr00 %Qr03F %Ir100 %Ir13F %Qr100 %Qr13F FF 64 octets %I carte 0

3F

64 octets %Q carte 0

7F

64 octets %I carte 1

BF

64 octets %Q carte 1

700 %IrE00 %IrE3F %QrE00 %QrE3F %IrF00 %IrF3F %QrF00 %QrF3F 64 octets %I carte E

73F

64 octets %Q carte E

77F

64 octets %I carte F

7BF

64 octets %Q carte F

7FF

fr-938846/6

3 - 15

3.7.5.2

Organisation physique des variables %I et %Q des diffrents racks


Offset 0 Rack 0 7FF Rack 1 FFF Rack 2 17FF Rack 3 1FFF Rack 4 27FF Rack 5 2FFF Rack 6 37FF 16 cartes (64 %I + 64 %Q) = 2k octets 16 cartes (64 %I + 64 %Q) = 2k octets 16 cartes (64 %I + 64 %Q) = 2k octets 16 cartes (64 %I + 64 %Q) = 2k octets 16 cartes (64 %I + 64 %Q) = 2k octets 16 cartes (64 %I + 64 %Q) = 2k octets 16 cartes (64 %I + 64 %Q) = 2k octets

3 - 16

fr-938846/6

Variables

3.7.6
3.7.6.1 Cartes 1060

Identificateur des cartes et racks


Identificateurs des cartes

Type de carte Carte 32 Entres Carte 32 Entres V2 Carte 32 Sorties Carte 32 Sorties V2 Carte 32 Entres 24 Sorties Carte 32-24 I/O Carte 32-24 80 mA Carte 64-48 I/O Carte 64-48 I/O 80 mA Pupitre machine Pupitre machine avec extension Absence de carte Cartes 1020/1040/1050 Type de carte Carte 32 24 I/O 80mA Carte 64-48 I/O 80mA 3.7.6.2 Rack 1060

Valeur de %Irc3E.W et Qrc3E.W 0x0A00 0x0A10 0x0100 0x0110 0x1500 0x0F00 0x0F10 0x0300 0x0310 0x02C0 0x0200 0x0700

Valeur de %Irc3E.W et Qrc3E.W 0x2100 0x2000

Identificateurs des racks

REMARQUE : Les composants matriels racks (alimentation + tlerie + bus) correspondent la carte N 0.
Type de rack Principal Principal Principal Principal Principal Principal Principal Principal Extension 12 Extension 12 Extension 2 Nb de cartes 8 8 8 8 4 4 4 4 12 12 2 Alimentation 130 W 130 W 60 W 60 W 130 W 130 W 60 W 60 W 130 W 60 W Fibre optique Oui Non Oui Non Oui Non Oui Non Valeur de lidentificateur %Ir03E.W 0x0 0x80 0x10 0x90 0x3000 0x3080 0x3010 0x3090 0x1000 0x1010 0x2020

fr-938846/8

3 - 17

Rack 1020/1040 Fibre optique Oui Non Valeur de lidentificateur %Ir03E.W 0x40B0 0x4030

3.7.7

Partie image de la carte 32 entres TOR

Identificateur carte 32 entres %Irc3E.W == 0x0A00. Identificateur carte 32 entres V2 %Irc3E.W == 0x0A10. Type de variable %Irc00 %Irc01 %Irc02 %Irc03 Type dentres Entres TOR de 0 7 Entres TOR de 8 15 Entres TOR de 16 23 Entres TOR de 24 31 Variables %Irc00.0 (Entre 00.0) %Irc00.7 (Entre 00.7) %Irc01.0 (Entre 01.0) %Irc01.7 (Entre 01.7) %Irc02.0 (Entre 02.0) %Irc02.7 (Entre 02.7) %Irc03.0 (Entre 03.0) %Irc03.7 (Entre 03.7)

COM 0 00.0 00.1 00.2 00.3 00.4 00.5 00.6 00.7 01.0 01.1 01.2 01.3 01.4 01.5 01.6 01.7 COM 1 COM 2 02.0 02.1 02.2 02.3 02.4 02.5 02.6 02.7 03.0 03.1 03.2 03.3 03.4 03.5 03.6 03.7 COM 3

De %Irc00.0 %Irc00.7

De %Irc01.0 %Irc01.7

De %Irc02.0 %Irc02.7

De %Irc03.0 %Irc03.7

32 E

3 - 18

fr-938846/6

Variables

3.7.8

Partie image de la carte 32 sorties TOR

Identificateur carte 32 sorties %Irc3E.W == 0x0100. Identificateur carte 32 sorties V2 %Irc3E.W == 0x0110. Type de variable %Qrc00 %Qrc01 %Qrc02 %Qrc03 Type de sorties Sorties TOR 0 7 Sorties TOR 8 15 Sorties TOR 16 23 Sorties TOR 24 31 Variables %Qrc00.0 (Sortie 00.0) %Qrc00.7 (Sortie 00.7) %Qrc01.0 (Sortie 01.0) %Qrc01.7 (Sortie 01.7) %Qrc02.0 (Sortie 02.0) %Qrc02.7 (Sortie 02.7) %Qrc03.0 (Sortie 03.0) %Qrc03.7 (Sortie 03.7)

00.0:WD COM0 00.1 COM1 00.2 00.3 00.4 00.5 00.6 00.7 01.0 01.1 01.2 01.3 01.4 01.5 01.6 01.7 COM2 02.0 02.1 02.2 02.3 02.4 02.5 02.6 02.7 03.0 03.1 03.2 03.3 03.4 03.5 03.6 03.7 COM3

De %Qrc00.0 %Qrc00.7

De %Qrc01.0 %Qrc01.7

De %Qrc02.0 %Qrc02.7

De %Qrc03.0 %Qrc03.7

32 S

fr-938846/6

3 - 19

3.7.9

Partie image des cartes 32E 24S TOR et 32-24 I/O

Identificateur carte 32E 24S %Irc3E.W == 0x1500. Identificateur carte 32-24 I/O %Irc3E.W == 0x0F00. Identificateur carte 32-24 I/O 80 mA %Irc3E.W == 0x0F10. Dtail du registre %Irc3C.W

Dfaut alimentation Dfaut alimentation

1 = 24V prsent 0 = 24V absent

Court-circuit groupe sortie 0 1 = Pas de CC Court-circuit groupe sortie 1 0 = CC Dfaut liaison entre groupe 0 Dfaut liaison entre groupe 1 1 = Dfaut Dfaut liaison sortie groupe 0 0 = OK Dfaut liaison sortie groupe 1

Type de variable %Irc00 %Irc01 %Irc02 %Irc03 %Qrc00 %Qrc01 %Qrc02

Type dentres ou sorties Entres TOR 0 7 Entres TOR 8 15 Entres TOR 16 23 Entres TOR 24 31 Sorties TOR 0 7 Sorties TOR 8 15 Sorties TOR 16 23

3 - 20

fr-938846/6

Variables

24.O

24 S

%Qrc00.0 %Qrc02.7

3
%Qrc00.0 %Qrc02.7
32.I

24 VEE 0VE

32 E

%Irc00.0 %Irc03.7

%Irc00.0 %Irc03.7

32.I / 24.O

32 E / 24 S

Carte 32-24 I/O

Carte 32E/24S

fr-938846/6

3 - 21

3.7.10

Partie image de la carte 64-48 I/O

Identificateur carte 64-48 I/O %Irc3E.W == 0x0300. Identificateur carte 64-48 I/O 80 mA %Irc3E.W == 0x0310. Dtail du registre %Irc3C.W

Dfaut alimentation des entres Dfaut alimentation des entres Dfaut alimentation des entres Dfaut alimentation des entres Court-circuit 0.0 1.7 Court-circuit 2.0 3.7 Court-circuit 4.0 5.7

1 = 24V prsent 0 = 24V absent

1 = Pas de CC 0 = CC

Dfaut liaison entres 0.0 1.7 Dfaut liaison entres 2.0 3.7 Dfaut liaison entres 4.0 5.7 Dfaut liaison entres 6.0 7.7 Dfaut liaison sorties 0.0 1.7 Dfaut liaison sorties 2.0 3.7 Dfaut liaison sorties 4.0 5.7

1 = Dfaut 0 = OK

Type de variable %Irc00 %Irc01 %Irc02 %Irc03 %Irc04 %Irc05 %Irc06 %Irc07 %Qrc00 %Qrc01 %Qrc02 %Qrc03 %Qrc04 %Qrc05

Type dentres ou sorties Entres TOR 0 7 Entres TOR 8 15 Entres TOR 16 23 Entres TOR 24 31 Entres TOR 32 39 Entres TOR 40 47 Entres TOR 48 55 Entres TOR 56 63 Sorties TOR 0 7 Sorties TOR 8 15 Sorties TOR 16 23 Sorties TOR 24 31 Sorties TOR 32 39 Sorties TOR 40 47

3 - 22

fr-938846/6

Variables

48.O

%Qrc03.0 %Qrc05.7 2me module de relayage

%Qrc00.0 %Qrc02.7 er 1 module de relayage

3
64.I

me

%Irc04.0 %Irc07.7 module d'interface

%Irc00.0 %Irc03.7 er 1 module d'interface

64.I / 48.O

Carte 64-48 I/O

fr-938846/6

3 - 23

3.7.11

Partie image du pupitre machine


Type dentres ou sorties Entres TOR 0 7 Entres TOR 8 15 Entres TOR 16 23 Entres TOR 24 31 Entres TOR 32 39 Entre analogique 0 Entre analogique 1 Sorties TOR 0 7 Sorties TOR 8 15 Sorties TOR 16 23 Variables %Irc00.0 (Entre 0) %Irc00.7 (Entre 7) %Irc01.0 (Entre 8) %Irc01.7 (Entre 15) %Irc02.0 (Entre 16) %Irc02.7 (Entre 23) %Irc03.0 (Entre 24) %Irc03.7 (Entre 31) %Irc04.0 (Entre 32) %Irc04.7 (Entre 39)

Identificateur carte %Irc3E.W == 0x2C0 Type de variable %Irc00 %Irc01 %Irc02 %Irc03 %Irc04 %Irc20.W %Irc22.W %Qrc00 %Qrc01 %Qrc02

%Qrc00.0 (Sortie 0) %Qrc00.7 (Sortie 7) %Qrc01.0 (Sortie 8) %Qrc01.7 (Sortie 15) %Qrc02.0 (Sortie 16) %Qrc02.7 (Sortie 23)

%Qrc01.7 (led_man5) %Irc01.7 (maniv_5)

%Qrc01.6 (led_man4) %Irc01.6 (maniv_4)

%Qrc00.7 (led_manz) %Irc03.7 (maniv_z)

%Qrc00.6 (led_many) %Irc03.6 (maniv_y)

%Qrc00.5 (led_manx) %Irc03.5 (maniv_x)

%Qrc01.0 (led_1) %Irc02.0 (jog_1)

%Qrc01.1 %Qrc01.2 %Qrc01.3 %Qrc01.4 %Qrc01.5 (led_10) (led_100) (led_1000) (led_10000) (led_ill) %Irc02.1 (jog_10) %Irc02.4 %Irc02.5 %Irc02.2 %Irc02.3 (jog_100) (jog_1000) (jog_10000) (jog_ill)

%Qrc00.4 (led_sdb) %Irc03.4 (sdb)

%Qrc00.3 (led_m01) %Irc03.3 (m01)

%Qrc00.2 (led_rax) %Irc03.2 (rapax)

%Irc00.2 (manip1h) %Irc00.1 (manip0g) %Irc00.0 (manip0d)

%Irc01.0 (manip4h)

%Irc00.4 (manip2h) %Irc00.6 (manip3d)

%Irc00.7 (manip3g) %Irc01.1 (manip4b)

%Irc00.3 (manip1b)

%Irc00.5 (manip2b)

CYCLE START

CYCLE STOP

%Irc22.W (potavpup)

%Irc20.W %Irc01.3 %Irc01.5 %Irc01.4 (potbrpup) (mode0) (mode2) (mode1)

%Irc04.0 %Irc04.1 (fct_2) (fct_1)

%Irc04.2 (fct_3)

%Irc04.3 %Irc04.4 %Irc04.5 %Irc04.6 (fct_4) (fct_5) (fct_6) (fct_7)

%Irc04.7 (fct_8)

%Irc01.2 (rapmanpu)

%Irc03.0 (arus) %Qrc00.0 (led_arus)

%Irc03.1 (dcy) %Qrc00.1 (led_dcy)

%Qrc02.0 %Qrc02.1 %Qrc02.2 %Qrc02.3 %Qrc02.4 %Qrc02.5 %Qrc02.6 %Qrc02.7 (led_fct1) (led_fct2) (led_fct3) (led_fct4) (led_fct5) (led_fct6) (led_fct7) (led_fct8)

3 - 24

fr-938846/6

Variables

3.7.12

Partie image du pupitre machine avec carte dextension

Identificateur carte %Irc3E.W == 0x200. Dtail du registre %Irc3C.W

Dfaut alimentation Dfaut alimentation

1 = 24V prsent 0 = 24V absent

Court-circuit groupe sortie 0 1 = Pas de CC Court-circuit groupe sortie 1 0 = CC Dfaut liaison entre groupe 0 Dfaut liaison entre groupe 1 1 = Dfaut Dfaut liaison sortie groupe 0 0 = OK Dfaut liaison sortie groupe 1 Type de variable %Irc00 %Irc01 %Irc02 %Irc03 %Irc04 %Irc10 %Irc11 %Irc12 %Irc13 %Irc20.W %Irc22.W %Qrc00 %Qrc01 %Qrc02 %Qrc10 %Qrc11 %Qrc12 Type dentres ou sorties Entres TOR 0 7 Entres TOR 8 15 Entres TOR 16 23 Entres TOR 24 31 Entres TOR 32 39 Entres TOR 40 47 Entres TOR 48 55 Entres TOR 56 63 Entres TOR 64 71 Entre analogique 0 Entre analogique 1 Sorties TOR 0 7 Sorties TOR 8 15 Sorties TOR 16 23 Sorties TOR 24 31 Sorties TOR 32 39 Sorties TOR 40 47 Variables %Irc00.0 (Entre 0) %Irc00.7 (Entre 7) %Irc01.0 (Entre 8) %Irc01.7 (Entre 15) %Irc02.0 (Entre 16) %Irc02.7 (Entre 23) %Irc03.0 (Entre 24) %Irc03.7 (Entre 31) %Irc04.0 (Entre 32) %Irc04.7 (Entre 39) %Irc10.0 (Entre 40) %Irc10.7 (Entre 47) %Irc11.0 (Entre 48) %Irc11.7 (Entre 55) %Irc12.0 (Entre 56) %Irc12.7 (Entre 63) %Irc13.0 (Entre 64) %Irc13.7 (Entre 71)

%Qrc00.0 (Sortie 0) %Qrc00.7 (Sortie 7) %Qrc01.0 (Sortie 8) %Qrc01.7 (Sortie 15) %Qrc02.0 (Sortie 16) %Qrc02.7 (Sortie 23) %Qrc10.0 (Sortie 24) %Qrc10.7 (Sortie 31) %Qrc11.0 (Sortie 32) %Qrc11.7 (Sortie 39) %Qrc12.0 (Sortie 40) %Qrc12.7 (Sortie 47)

REMARQUE

Pour raliser le test des lampes de sorties du pupitre, il ne faut pas l'effectuer en une seule opration. Dans le programme automate, tester d'abord la moiti des lampes, puis ensuite la seconde moiti.

fr-938846/6

3 - 25

Extension 24 sorties (Variables --> broches)


24 VS.0 %Qrc10.0 %Qrc10.1 %Qrc10.2 %Qrc10.3 %Qrc10.4 %Qrc10.5 COMMUN %Qrc10.6 COMMUN %Qrc10.7 %Qrc11.0 %Qrc11.1 %Qrc11.2 %Qrc11.3 %Qrc11.4 COMMUN %Qrc11.5 %Qrc11.6 %Qrc11.7 %Qrc12.0 %Qrc12.1 %Qrc12.2 %Qrc12.3 %Qrc12.4 %Qrc12.5 %Qrc12.6 %Qrc12.7 24 VS.1 COMMUN
19 37 18 36 17 35 16 34 33 14 32 13 31 12 30 28 9 8 5 7 4 25 24 20 21 22 23 1 2 3

Extension 32 entres (Variables --> broches)


%Irc10.0 %Irc10.1 %Irc10.2 %Irc10.3 %Irc10.4 %Irc10.5 %Irc10.6 %Irc10.7 COMMUN %Irc11.1 %Irc11.1 %Irc11.2 %Irc11.3 %Irc11.4 %Irc11.5 %Irc11.6 %Irc11.7 COMMUN %Irc12.0 %Irc12.1 %Irc12.2 %Irc12.3 %Irc12.4 %Irc12.5 %Irc12.6 %Irc12.7 COMMUN %Irc13.0 %Irc13.1 %Irc13.2 %Irc13.3 %Irc13.4 %Irc13.5 %Irc13.6 %Irc13.7 COMMUN 24 VE
1 20 2 21 3 22 4 23 5 24 6 25 7 26 8 27 9 28 29 11 30 12 31 13 32 14 33 15 34 16 35 17 36 18 37 19 10

3 - 26

fr-938846/6

Variables

3.7.13
3.7.13.1

Partie image du pupitre compact


Image du pupitre compact dans la zone d'change Type d'entres ou sorties Slection des axes par le cartouche JOG Touches manipulateurs +, - et rapide Touches Arus et Cycle Touches personnalisables 1 6 Touches personnalisables shiftes 1 6 Entre analogique potentiomtre Voyants Arus et Cycle Voyants des touches personnalisables 1 6 Voyants des touches personnalisables shiftes 1 6 Variables %I100.0 %I100.5 %I101.0 %I101.2 %I103.0 (Arus) et %I103.1 (Cycle) %I104.0 (touche 1) %I104.5 (touche 6) %I105.0 (touche 1) %I105.5 (touche 6) %Q100.0 (Arus) et %Q100.1 (Cycle) %Q102.0 (voyant 1) %Q102.5 (voyant 6) %Q103.0 (voyant 1) %Q103.5 (voyant 6)

Type de variable %I100.B %I101.B %I103.B %I104.B %I105.B %I122.W %Q100.B %Q102.B %Q103.B

3.7.13.2

Image du pupitre compact


Touche seule %I104.0 %I104.1 %I104.2 %I104.3 %I104.4 %I104.5 %I122.W
END

ESC G 7 4 1
%

? M 8 5 2 0
E

/ 9 6 3 .

Touche shifte %I105.0 %I105.1 %I105.2 %I105.3 %I105.4 %I105.5

INSER

DEL

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

F11

F12

%I101.0 %I101.2 %I101.1

%Q100.1

%Q100.0

%I103.0

%I103.1

3.7.13.3

Image du cartouche JOG

Le pupitre compact dispose de cartouches spcifiques dont le nouveau cartouche JOG qui permet de slectionner l'axe pilot par les manipulateurs :

%I100.0 %I100.1 %I100.2

%I100.3 %I100.4 %I100.5

MANIV

../..

Ce cartouche est accessible par les touches :

puis

JOG

(F7).

fr-938846/8

3 - 27

Les axes dont les noms figurent dans les touches du cartouche sont les axes dfinis par le paramtre machine P9 (Voir manuel des paramtres), ils apparaissent dans l'ordre de dfinition. 3.7.13.4 Image des voyants des touches personnalisables

Les fonctions actives par les touches personnalisables sont indiques par un voyant de la fentre Status :

%Q103.0 %Q103.1 %Q103.2 %Q103.3 %Q103.4 %Q103.5

SFCT 1 2 3 4 5 6 FCT 1 2 3 4 5 6
%Q102.5 %Q102.4 %Q102.3 %Q102.2 %Q102.1 %Q102.0

Les voyants du bas reprsentent les voyants des touches personnalisables seules, les voyants du haut reprsentent les voyants des touches personnalisables shiftes.

3 - 28

fr-938846/6

Variables

3.8
3.8.1
3.8.1.1 Variable %R0.W

Famille interface E/S CN %R et %W


Entres venant de la CN %R0 %R7F.
Caractres clavier : %R0.W Mnmonique CARCLAV Description Reoit le caractre frapp au clavier au rythme de %TS5 soit un caractre toutes les 5 HTR (Voir 8.1.2).

3.8.1.2 Variable %R2.7

Etat Machine : %R2.W Mnmonique E_M01 Description Arrt programm optionnel valid Image du champ M01 de la fentre status CN. Signale la prise en compte des arrts programms optionnels dans un programme pice. Inversion du bit par appui sur la touche M01 du pupitre ou aprs lecture de C_M01 = 1. Saut de bloc valid Image du champ / de la fentre status CN. Signale la prise en compte des sauts de blocs dans un programme pice. Inversion du bit par appui sur la touche / du pupitre ou aprs lecture de C_SLASH = 1. Etat intervention Aprs un ARUS, le passage ltat INTERV se fait sur le premier appui sur la touche RAPPEL DAXE du pupitre machine. Mise 1 aprs lecture par la CN de C_RAX = 1. Mise 0 aprs lecture par la CN de C_RAX = 0. Etat recul / retour sur trajectoire La mise 1 met la CN en recul ou en retour La mise 0 annule cet tat. Fonctionnalit N/M AUTO La mise 1 du bit signale que la fonctionnalit N/M (2/3, 3/5, .. etc ...) est active. Image du voyant oprateur Signale un arrt programme provoqu par M00 ou un M01 valid. Mise 1 sur un M00 ou un M01. Mise 0 par touche CYCLE du pupitre machine (C_CYCLE = 1). CN en dfaut Image du champ CN?? de la fentre status CN. Signale un dfaut machine ou un dfaut de programmation pice. Le numro de dfaut machine se lit dans ERRMACH. Mise 1 sur apparition dun dfaut machine (Erreurs E30 E33, E36, E40 E71) ou un dfaut de programmation pice. Mise 0 par touche RAZ du pupitre, C_RAZ = 1. Dgagement durgence gnral Signale lexcution dun programme de dgagement durgence. Mise 1 aprs lecture par le CN de C_DGURG = 1 et si le programme de dgagement durgence est valid. Mise 0 sur dtection dun M00 ou un M02.

%R2.6

E_SLASH

%R2.5

E_INTERV

%R2.4

S_RECUL

%R2.1 %R3.7

E_NMAUTO E_OPER

%R3.6

E_DEFCN

%R3.4

E_DGURG

fr-938846/6

3 - 29

Variable %R3.3

Mnmonique E_RAX

Description Rappel daxe gnral Dans le mode INTERV et en fin de RNS, signale que le rappel daxe est valid. Mise 1 aprs lecture par la CN de C_RAX = 1. Mise 0 aprs lecture par la CN de C_RAX = 0. Cycle en cours Mise 1 par touche CYCLE du pupitre machine (C_CYCLE = 1). Mise 0 par touche RAZ du pupitre, C_RAZ = 1 ou en fin dexcution de programme (M02). Sortie arrt dusinage Signale ltat INTERV du systme (arrt du programme en cours dexcution et validation des manipulateurs daxes. Mise 1 par touche ARUS du pupitre machine (C_ARUS = 1). Mise 0 par touche CYCLE du pupitre machine (C_CYCLE = 0). Remise zro CN en cours Bit impulsionnnel dune dure de 100 ms qui signale une initialisation du systme. Pendant la dure de cette impulsion, les donnes venant de la fonction automatisme ne sont pas prises en compte. Mise 1 par touche RAZ du pupitre, sur demande de RAZ de la fonction automatisme (C_RAZ = 1), en fin dexcution dun programme pice (M02) ou la mise sous tension de la CN. Cette variable est mise 0 aprs 100 ms.

%R3.2

E_CYCLE

%R3.1

E_ARUS

%R3.0

E_RAZ

3.8.1.3 Variable %R5.7

Etat CN : %R4.W Mnmonique E_TRANSP Description Mode transparent Permet la fonction automatisme laccs lcran de la CN pour y visualiser des informations (table de donnes, .. etc ...). La CN peut tre en cours dusinage. Mise 1 par validation de la page cran MODE TRANSPARENT. Mise 0 par abandon de la page cran MODE TRANSPARENT. Mode passant prt Indique que la CN est prte fonctionner en mode passant, ou que lusinage effectuer command par la fonction automatisme, se fait en mode passant lecteur. Dans le second cas PROGDEM doit tre charg la valeur -2 (0xFFFE). Mise 1 aprs CHOIX DU PROGRAMME COURANT et programmation au clavier de PPR ou PPL suivi de ENTER. Mise 0 aprs CHOIX DU PROGRAMME COURANT et programmation au clavier de -PPR ou -PPL suivi de ENTER. Programme en cours Signale quun programme pice est en cours dexcution dans les modes CONT, SEQU, IMD et RAP. Mise 1 par une premire impulsion sur la touche CYCLE du pupitre machine (C_CYCLE = 1). Mise 0 par dtection dun M00 (Arrt programm), M01 (Arrt programm optionnel), M02 (Fin de programme), par touche RAZ du pupitre, C_RAZ = 1 ou la mise sous tension.

%R5.5

E_PPP

%R5.1

E_PROG

3 - 30

fr-938846/6

Variables

Variable %R5.0

Mnmonique E_CNPRET

Description CN prte Signale que la puissance peut tre mise sur la machine. Mise 1 la mise sous tension et par touche RAZ du pupitre, C_RAZ = 1. Mise 0 aprs dtection dune trop grande erreur de poursuite sur un axe ou dfaut salissure ou de complmentarit des voies du gnrateur dimpulsions dtect sur un axe.

3.8.1.4 Variable %R6.7 %R6.0

Axes en mouvements : %R6.L Mnmonique AXMVT31 AXMVT24 Description axe N31 en mouvement axe N24 en mouvement Signale les axes 24 31 en mouvement pendant lexcution dun bloc dans un programme pice ou en IMD. Mise 1 en dbut dexcution du bloc. Mise 0 en fin dexcution du bloc sil comporte un M00 ou un M01, en fin dexcution du bloc en IMD, avant deffectuer un blocage daxes, touche RAZ du pupitre, C_RAZ = 1. axe N23 en mouvement axe N 16 en mouvement Signale les axes 16 23 en mouvement pendant lexcution dun bloc dans un programme pice ou en IMD. Mise 1 en dbut dexcution du bloc. Mise 0 en fin dexcution du bloc sil comporte un M00 ou un M01, en fin dexcution du bloc en IMD, avant deffectuer un blocage daxes, touche RAZ du pupitre, C_RAZ = 1. axe N15 en mouvement axe N8 en mouvement Signale les axes 8 15 en mouvement pendant lexcution dun bloc dans un programme pice ou en IMD. Mise 1 en dbut dexcution du bloc. Mise 0 en fin dexcution du bloc sil comporte un M00 ou un M01, en fin dexcution du bloc en IMD, avant deffectuer un blocage daxes, touche RAZ du pupitre, C_RAZ = 1. axe N7 en mouvement axe N0 en mouvement Signale les axes 0 7 en mouvement pendant lexcution dun bloc dans un programme pice ou en IMD. Mise 1 en dbut dexcution du bloc. Mise 0 en fin dexcution du bloc sil comporte un M00 ou un M01, en fin dexcution du bloc en IMD, avant deffectuer un blocage daxes, touche RAZ du pupitre, C_RAZ = 1.

%R7.7 %R7.0

AXMVT23 AXMVT16

%R8.7 %R8.0

AXMVT15 AXMVT8

%R9.7 %R9.0

AXMVT7 AXMVT0

fr-938846/6

3 - 31

3.8.1.5 Variable %RA.7 %RA.0

Axes initialiss (POM faite) : %RA.L Mnmonique AXINI31 AXINI24 Description axe N31 initialis axe N24 initialis. Signale les axes dont la prise dorigine (POM) a t faite. Mise 0 quand la prise dorigine est effectu sur laxe correspondant Mise 1 linitialisation du systme (POM non faite) axe N23 initialis axe N16 initialis. Signale les axes dont la prise dorigine (POM) a t faite. Mise 0 quand la prise dorigine est effectu sur laxe correspondant Mise 1 linitialisation du systme (POM non faite) axe N15 initialis axe N8 initialis. Signale les axes dont la prise dorigine (POM) a t faite. Mise 0 quand la prise dorigine est effectu sur laxe correspondant Mise 1 linitialisation du systme (POM non faite) axe N7 initialis axe N0 initialis. Signale les axes dont la prise dorigine (POM) a t faite. Mise 0 quand la prise dorigine est effectu sur laxe correspondant Mise 1 linitialisation du systme (POM non faite)

%RB.7 %RB.0

AXINI23 AXINI16

%RC.7 %RC.0

AXINI15 AXINI8

%RD.7 %RD.0

AXINI7 AXINI0

3.8.1.6

Paramtres Externes E10000 E10031 : %RE.L

Les paramtres externes E100xx sont lus par le programme utilisateur. La gestion de ces paramtres est assure par le programme pice qui peut les lire et les crire. Ils permettent dchanger des informations boolennes entre les programmes pice et le programme utilisateur. Variable %R11.0 %R11.1 %R11.2 %R11.3 %R11.4 %R11.5 %R11.6 %R11.7 %R10.0 %R10.1 %R10.2 %R10.3 %R10.4 %R10.5 %R10.6 %R10.7 Mnmonique E10000 E10001 E10002 E10003 E10004 E10005 E10006 E10007 E10008 E10009 E10010 E10011 E10012 E10013 E10014 E10015 Variable %RF.0 %RF.1 %RF.2 %RF.3 %RF.4 %RF.5 %Rf.6 %RF.7 %RE.0 %RE.1 %RE.2 %RE.3 %RE.4 %RE.5 %RE.6 %RE.7 Mnmonique E10016 E10017 E10018 E10019 E10020 E10021 E10022 E10023 E10024 E10025 E10026 E10027 E10028 E10029 E10030 E10031

3 - 32

fr-938846/6

Variables

3.8.1.7 Variable %R12.7 %R12.6 %R12.5 %R12.4 %R12.3

Etat des Broches : %R12.W Mnmonique B4_ARR B3_ARR B2_ARR B1_ARR B4_ROT Description Bit 1 indique que la broche N4 est l'arrt , c'est dire que sa vitesse de rotation est infrieure au paramtre E90343 (Voir manuel de programmation) Bit 1 indique que la broche N3 est l'arrt , c'est dire que sa vitesse de rotation est infrieure au paramtre E90342 (Voir manuel de programmation) Bit 1 indique que la broche N2 est l'arrt , c'est dire que sa vitesse de rotation est infrieure au paramtre E90341 (Voir manuel de programmation) Bit 1 indique que la broche N1 est l'arrt , c'est dire que sa vitesse de rotation est infrieure au paramtre E90340 (Voir manuel de programmation) Bit 1 indique que la rotation de la broche N4 est correcte , c'est dire que sa vitesse de rotation est comprise dans la fourchettede tolrance de vitesse donne par le paramtre E90353 (Voir manuel de programmation) Bit 1 indique que la rotation de la broche N3 est correcte , c'est dire que sa vitesse de rotation est comprise dans la fourchettede tolrance de vitesse donne par le paramtre E90352 (Voir manuel de programmation) Bit 1 indique que la rotation de la broche N2 est correcte , c'est dire que sa vitesse de rotation est comprise dans la fourchettede tolrance de vitesse donne par le paramtre E90351 (Voir manuel de programmation) Bit 1 indique que la rotation de la broche N1 est correcte , c'est dire que sa vitesse de rotation est comprise dans la fourchettede tolrance de vitesse donne par le paramtre E90350 (Voir manuel de programmation) Broche N4 en position Sur une demande dindexation ou de synchronisation de broche, signale que la broche N4 est en position ou synchronise. Mise 1 lorsque la position demande est atteinte. Mise 0 lorsque la position est quitte, sur des oscillations et fonction M19 rvoque. Broche N3 en position Sur une demande dindexation ou de synchronisation de broche, signale que la broche N3 est en position ou synchronise. Mise 1 lorsque la position demande est atteinte. Mise 0 lorsque la position est quitte, sur des oscillations et fonction M19 rvoque. Broche N2 en position Sur une demande dindexation ou de synchronisation de broche, signale que la broche N2 est en position ou synchronise. Mise 1 lorsque la position demande est atteinte. Mise 0 lorsque la position est quitte, sur des oscillations et fonction M19 rvoque. Broche N1 en position Sur une demande dindexation ou de synchronisation de broche, signale que la broche N1 est en position ou synchronise. Mise 1 lorsque la position demande est atteinte. Mise 0 lorsque la position est quitte, sur des oscillations et fonction M19 rvoque.

%R12.2

B3_ROT

%R12.1

B2_ROT

%R12.0

B1_ROT

%R13.3

POSBR4

%R13.2

POSBR3

%R13.1

POSBR2

%R13.0

POSBR1

fr-938846/6

3 - 33

3.8.1.8 Variable %R15.B

Type dincrment de JOG : %R15.B Mnmonique E_INCJOG Description Incrment de JOG en cours La valeur de la variable est limage de lincrment de JOG en cours : 0x0A Dplacement manuel au pas de 10-6 pouce 0x09 Dplacement manuel au pas de 10-2 m ou 10-5 pouce 0x00 Dplacement manuel au pas de 10-1 m ou 10-4 pouce 0x01 Dplacement manuel au pas de 1m ou 10-3 pouce 0x02 Dplacement manuel au pas de 10 m ou 10-2 pouce 0x03 Dplacement manuel au pas de 100 m ou 10-1 pouce 0x04 Dplacement manuel au pas de 1000 m ou 1 pouce 0x05 Dplacement manuel au pas de 10000 m ou 1 pouce 0x06 Dplacement manuel en continu 0x08 Dplacement manuel par manivelle Le choix de la valeur de lincrment en m ou en pouce dpend de la valeur de la variable C_UNIT.

3.8.1.9 Variable %R16.B

Mode en cours : %R16.B Mnmonique MODCOUR Description Mode en cours La valeur de la variable est limage du mode CN en cours : 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0D 0x0F 0x10 Mode Continu CONT Mode Squentiel SEQ Mode Immdiat IMD Mode Rapide RAP Mode Recherche de Numro de Squence RNS Mode Modification MODIF Mode Test TEST Mode Manuel MANU Mode Prise dOrigine Mesure POM Mode Prise de Rfrence PREF Mode Rglages Outils REGOUT Absence de mode Mode Chargement CHARG Mode Dchargement DECHG Mode spcifiant groupes indpendnts

3 - 34

fr-938846/8

Variables

3.8.1.10 Variable %R14.1

Variables diverses Mnmonique E_BAT Description Etat des batteries E_BAT = 0 batteries OK E_BAT = 1 batteries changer. Validation cran en configuration PCNC La mise 1 indique que l'cran est utilis par une application utilisateur (mode transparent bloqu). La mise 0 indique que l'cran est utilis par l'application CN NUM (mode transparent possible) Numro de la page visualise Cette variable est limage de la page visualise lcran de la CN : 0x01 0x03 0x04 0x05 0x06 0x07 0x08 0x19 0x1A 0x09 0x0A 0x15 0x17 0x0E 0x11 0x1B Page liste LISTE Page programme PROG. Page informations INFO Page variables programmes L/@ Pages point courant AXES Page corrections doutils OUTILS Page programmation graphique PROCAM Page chargement en cours dusinage Page dchargement en cours dusinage Page entres/sortiesE/S Page des utilitaires UTIL Page des dcalages PREF Page du mode modif Page du mode chargement Page du mode dchargement Mode transparent appel directement par PUTKEY

%R14.0

SC_USED

%R17.B

PGVISU

%R18.B

ERRMACH

Numro derreur machine Cette variable permet la lecture en dcimal du numro derreur machine dtecte par le systme (Erreurs 18, 30 33, 35, 36, 39 71, 210 241, 245, 300 331).

%R19.B

ID_KB_CN

%R1A.W

PROGCOUR

REMARQUE Se reporter au manuel oprateur pour la liste des erreurs machine. Identificateur pupitre actif ou CN active. En configuration multi pupitre, donne le numro du pupitre actif (de 0 7). En configuration multi CN, donne le numro de la CN active (de 0 4). Numro du programme courant Permet la lecture du numro de programme courant. La valeur 0XFFFF (-1) indique labsence de programme courant. La valeur 0xFFFE (-2) indique la slection du mode passant.

fr-938846/7

3 - 35

3.8.1.11 Variable %R1C.W

Vitesse de broche : %R1C.W %R22.W Mnmonique VITBR1 Description Vitesse Broche 1 Permet la lecture de la valeur code en hexadcimal de la rfrence du variateur de broche 1 dans la gamme de vitesse programme. Labsence des fonctions M3 et M4 dans le programme pice force la valeur de la variable 0. Vitesse Broche 2 Permet la lecture de la valeur code en hexadcimal de la rfrence du variateur de broche 2 dans la gamme de vitesse programme. Labsence des fonctions M3 et M4 dans le programme pice force la valeur de la variable 0. Vitesse Broche 3 Permet la lecture de la valeur code en hexadcimal de la rfrence du variateur de broche 3 dans la gamme de vitesse programme. Labsence des fonctions M3 et M4 dans le programme pice force la valeur de la variable 0. Vitesse Broche 4 Permet la lecture de la valeur code en hexadcimal de la rfrence du variateur de broche 4 dans la gamme de vitesse programme. Labsence des fonctions M3 et M4 dans le programme pice force la valeur de la variable 0.

%R1E.W

VITBR2

%R20.W

VITBR3

%R22.W

VITBR4

3.8.1.12 Variable %R24.7 %R24.0

Axe blocable : %R24.L Mnmonique AXBLK31 AXBLK24 Description Axe N 31 axe N 24 La mise 1 dclare l'axe blocable La mise 0 dclare l'axe non blocable La RAZ remet les axes conformes au paramtre machine P8 Axe N 23 axe N 16 La mise 1 dclare l'axe blocable La mise 0 dclare l'axe non blocable La RAZ remet les axes conformes au paramtre machine P8 Axe N 15 axe N 8 La mise 1 dclare l'axe blocable La mise 0 dclare l'axe non blocable La RAZ remet les axes conformes au paramtre machine P8 Axe N 7 axe N 0 La mise 1 dclare l'axe blocable La mise 0 dclare l'axe non blocable La RAZ remet les axes conformes au paramtre machine P8

%R25.7 %R25.0

AXBLK23 AXBLK16

%R26.7 %R26.0

AXBLK15 AXBLK8

%R27.7 %R27.0

AXBLK7 AXBLK0

3 - 36

fr-938846/6

Variables

3.8.1.13

Mot d'tat variateur "1050"

Pour le variateur numrique d'adresse xx (xx compris entre 00 et 31), le mot d'tat se prsente sous la forme :
CCGM Gamma Position El OK

%REyy.B Mot d'tat variateur @xx %REzz.B

%REyy.2 %REyy.1 %REyy.0

Autocal In

Run OK

Torque OK

Drive Status

Speed OK

Power Rs

Drive Enable

Leam Status

%REzz.7 %REzz.6 %REzz.5 %REzz.4 %REzz.3 %REzz.2 %REzz.1 %REzz.0

Bit %REzz.0 %REzz.1 %REzz.2 %REzz.3 %REzz.4 %REzz.5 %REzz.6 %REzz.7 %REyy.0 %REyy.1 %REyy.2

Signification Learn Status Drive Enable Power Rs Speed OK Drive Status Torque OK Run OK Autocalibration In Position OK Gamma El CCGM

Valeurs Rserv 0 : variateur non valid 1 : variateur valid 0 : tension bus non prsente 1 : tension bus prsente 0 : vitesse non atteinte 1 : vitesse atteinte 0 : arrt variateur 1 : dpart variateur 0 : seuil de couple non atteint 1 : seuil de couple atteint 0 : moteur l'arrt 1 : moteur en mouvement 0 : autocalibration acheve 1 : autocalibration en cours 0 : position non atteinte 1 : position atteinte 0 : gamme de vitesse basse 1 : gamme de vitesse haute 0 : gamme de vitesse mcanique non demande 1 : gamme de vitesse mcanique demande

fr-938846/8

3 - 37

3.8.2
3.8.2.1 Variable %W2.3 %W2.2

Sortie vers la CN %W0 %W7F


Commandes Impulsionnelles : %W2.W Mnmonique CHG_OPDC C_INDG Description Si CHG_OPDC est gal 1, il y aura rechargement des oprateurs dynamiques en C sur une RAZ CN gnrale. Commutations groupes communs/groupes indpendants C'est une information maintenue. La dtection d'un changement d'tat de C_INDG se fait uniquement sur une RAZ commune demande par l'automate. C_INDG = 0 : groupes communs C_INDG = 1 : groupes indpendants. Fonctionnalit N/M AUTO La mise 1 valide la fonctionnalit N/M (2/3, 3/5, ... etc ..) AUTO Cette commande est effective lorsque la commande C_CYCLE retombe. Initialisation clavier La mise 1 autorise la reconnaissance de la configuration des claviers et des CN interconnects.La reconnaissance doit tre effectue chaque modification de la configuration. Aprs la reconnaissance, le clavier N1 est affect la CN N1. Validation de larrt programm optionnel (M01) Une impulsion valide ou invalide larrt programm optionnel suivant ltat prcdent. Validation du saut de bloc Une impulsion valide ou invalide le saut de bloc suivant ltat prcdent. Annulation de l'erreur de poursuite sans RAZ Demande dgagement durgence Cette demande est prise en compte dans les modes CONT, SEQ, RAP. Le bloc en cours est interrompu et le systme se branche sur le dernier programme de dgagement durgence dclar dans le programme pice par la fonction G75. Si aucun programme de dgagement durgence nest dfini, cette information est traite de la mme faon que C_ARUS. Slection du rappel daxe. Cette demande est prise en compte lorsque E_ARUS = 1 et que tous les manipulateurs daxes sont relchs. Cest une commande de type bistable. Une premire impulsion positionne E_INTERV 1 et valide les manipulateurs d'axes dans les deux sens. Si au moins un axe a t dplac dans le mode INTERV, une seconde impulsion positionne E_RAX 1 et autorise un seul sens de dplacement des manipulateurs d'axes pour ramener le mobile dans la position initiale. Demande dexcution dun DEPART CYCLE. Permet lexcution des modes CONT, SEQ, IMD, RAP, RNS, TEST, CHARG, DECHARG. La commande de C_CYCLE doit tre impulsionnelle pour viter dans les modes CONT et RAP une reprise de lusinage aprs la dtection dun M02 ou dune RAZ. Demande arrt dusinage Cette demande est prise en compte dans les modes CONT, SEQ, IMD, RAP et JOG incrmental. Une premire impulsion provoque larrt dusinage. Relance de lusinage par CYCLE. Cette commande n'a pas d'action sur les groupes automate.

%W2.1

C_NMAUTO

%W2.0

KB_INIT

%W3.7

C_M01

%W3.6 %W3.5 %W3.4

C_SLASH C_RAZER C_DGURG

%W3.3

C_RAX

%W3.2

C_CYCLE

%W3.1

C_ARUS

3 - 38

fr-938846/8

Variables

Variable %W3.0

Mnmonique C_RAZ

Description Demande de remise zro. Provoque galement une RAZ des axes automate en cas d'erreur machine. Prise en compte sil ny a pas de dplacement sur les axes.

REMARQUES Pour le traitement de C_ARUS, C_CYCLE et C_RAX, se reporter au manuel oprateur. Pour le traitement de C_DGURG, se reporter au manuel de programmation.
3.8.2.2 Variable %W4.7 Commandes Maintenues : %W4.W Mnmonique VREDUIT Description Demande de passage vitesse rduite La mise 1 force les vitesses de dplacements rduites paramtres dans les mots N3 et N4 de P31 (Voir manuel des paramtres). Vrouillage des utilitaires La mise 1 interdit l'accs aux utilitaires. La mise 0 autorise l'accs aux utilitaires. Unit des cotes affiches (mtrique ou inch). La mise 1 autorise lintroduction des cotes et la visualisation en pouce. La mise 0 autorise lintroduction des cotes et la visualisation dans le systme mtrique. Prsence puissance sur moteur La mise 0 indique la CN une coupure de la puissance sur les moteurs des axes synchroniss (aprs un dfaut de synchronisation). La mise 1 indique la CN que la puissance a t rtablie et autorise la synchronisation des axes. Non arrt en fin bloc Autorise le lancement dun CYCLE dans les modes CONT, SEQ, IMD, RAP et autorise lenchanement des blocs dans les modes CONT et RAP. La mise 0 de cette variable provoque la retombe du cycle en fin dexcution du bloc en cours.

%W4.6

INIBUTIL

%W4.5

C_UNIT

%W4.4

PRESPUIS

%W4.3

NARFIB

Slection de lavance rapide en manuel 1 et 2 Autorisent la slection des vitesses davance rapide dans les modes MANU et POM ou multiplient les incrments des manivelles. Les vitesses sont modulables par le potentiomtre des avances VITMAN1 VITMAN2 VITESSE INCREMENT (Paramtre P31) MANIVELLE 0 0 JOG normal Ui x 1 0 1 JOG lent Ui x 100 1 0 JOG rapide Ui x 10 1 1 JOG rapide Ui x 10 Avec Ui Unit interne du systme fixe par paramtre machine. %W4.0 AUTAV Autorisation des avances gnral sur tous les groupes daxes Autorise les mouvements dans tous les modes avec dplacement. Le champ SECU de la fentre status CN signale ltat 0 de cette information. %W5.7 SC_SAVE Mise en veille de l'cran CN La mise 1 autorise la mise en veille de l'cran aprs 5 min d'inutilisation du clavier. La mise 0 invalide la mise en veille de l'cran et ractive imdiatement l'cran.

%W4.2 %W4.1

VITMAN2 VITMAN1

fr-938846/8

3 - 39

Variable %W5.6

Mnmonique SK_DISPL

Description Affichage de la fentre cartouche La mise 1 invalide l'affichage de la fentre cartouche. La mise 0 valide l'affichage de la fentre cartouche. REMARQUE L'invalidation de l'affichage n'invalide pas l'utilisation des touches logicielles. Inhibition du clavier La mise 1 inhibe le clavier alphanumrique et les touches de fonction pour le cartouche de base qui ne sont plus traits par la CN. Les codes des touches sont toutefois transmis la fonction automatisme par CARCLAV. Entres impulsionnelles au pupitre Invalidation des touches RAZ, ARUS, CYCLE, M01, / et de la touche logiciel JAUGE La mise 1 invalide les touches sur le pupitre CN et permet la slection par la fonction automatisme. Autorisation de chargement des correcteurs dynamique La mise 1 autorise le chargement des corrections dynamiques par la fonction automatisme et invalide le chargement par le pupitre. Slection des JOG au pupitre La mise 1 invalide la slection du type de JOG par le pupitre CN et autorise la slection par la fonction automatisme. Slection des modes au pupitre La mise 1 invalide la slection des modes par le pupitre CN et autorise la slection des modes par la fonction automatisme. Le mode est slectionn par l'automate, le n du mode tant cod dans %Wg03.b, les codes des modes tant identiques ceux de %W14.b pour les modes communs. %W5.1=0. Hors IHM les modes peuvent tre choisis au pupitre, le mode tant affect au groupe slectionn par %W17.b. Pupitre CN absent La mise 1 dclare le pupitre CN absent. Toutes les fonctions du pupitre CN sont invalides et peuvent tre simules par la fonction automatisme.

%W5.5

INIBCLAV

%W5.4

IMPULS

%W5.3

CORDYN

%W5.2

JOGPUP

%W5.1

MODPUP

%W5.0

PUPABS

3.8.2.3 Variable %W6.7 %W6.0 %W7.7 %W7.0 %W8.7 %W8.0 %W9.7 %W9.0

Commandes JOG Positif : %W6.L Mnmonique JOGPOS31 JOGPOS24 JOGPOS23 JOGPOS16 JOGPOS15 JOGPOS8 JOGPOS7 JOGPOS0 Description Jog positif sur laxe N 31 Jog positif sur laxe N 24 Jog positif sur laxe N 23 Jog positif sur laxe N 16 Jog positif sur laxe N 15 Jog positif sur laxe N 8 Jog positif sur laxe N 7 Jog positif sur laxe N 0

3 - 40

fr-938846/8

Variables

3.8.2.4 Variable %WA.7 %WA.0 %WB.7 %WB.0 %WC.7 %WC.0 %WD.7 %WD.0 3.8.2.5

Commandes JOG Ngatif : %WA.L Mnmonique JOGNEG31 JOGNEG24 JOGNEG23 JOGNEG16 JOGNEG15 JOGNEG8 JOGNEG7 JOGNEG0 Description Jog ngatif sur laxe N 31 Jog ngatif sur laxe N 24 Jog ngatif sur laxe N 23 Jog ngatif sur laxe N 16 Jog ngatif sur laxe N 15 Jog ngatif sur laxe N 8 Jog ngatif sur laxe N 7 Jog ngatif sur laxe N 0

Paramtres Externes E20000 E20031 : %WE.L

Les paramtres externes E200xx sont crits par le programme utilisateur. La gestion de ces paramtres est assure par le programme pice qui peut les lire. Ils permettent dchanger des informations boolennes entre le programme utilisateur et le programme pice. Variable %W11.0 %W11.1 %W11.2 %W11.3 %W11.4 %W11.5 %W11.6 %W11.7 %W10.0 %W10.1 %W10.2 %W10.3 %W10.4 %W10.5 %W10.6 %W10.7 Mnmonique E20000 E20001 E20002 E20003 E20004 E20005 E20006 E20007 E20008 E20009 E20010 E20011 E20012 E20013 E20014 E20015 Variable %WF.0 %WF.1 %WF.2 %WF.3 %WF.4 %WF.5 %WF.6 %WF.7 %WE.0 %WE.1 %WE.2 %WE.3 %WE.4 %WE.5 %WE.6 %WE.7 Mnmonique E20016 E20017 E20018 E20019 E20020 E20021 E20022 E20023 E20024 E20025 E20026 E20027 E20028 E20029 E20030 E20031

fr-938846/8

3 - 41

3.8.2.6 Variable %W13.B

Valeur de lincrment de JOG : %W13.B Mnmonique C_INCJOG Description Commande de lincrment du JOG La valeur de la variable correspond lincrment de JOG demand : 0x0A 0x09 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x08 Dplacement manuel au pas de 10-6 pouce Dplacement manuel au pas de 10-2 m ou 10-5 pouce Dplacement manuel au pas de 10-1 m ou 10-4 pouce Dplacement manuel au pas de 1 m ou 10-3 pouce Dplacement manuel au pas de 10 m ou 10-2 pouce Dplacement manuel au pas de 100 m ou 10-1 pouce Dplacement manuel au pas de 1000 m ou 1 pouce Dplacement manuel au pas de 10000 m ou 1 pouce Dplacement manuel en continu Dplacement manuel par manivelle

Le choix de la valeur de lincrment en m ou en pouce dpend de la valeur de la variable C_UNIT. 3.8.2.7 Variable %W14.B Mode demand : %W14.B Mnmonique MODEDEM Description Mode demand La valeur de la variable correspond au mode CN demand : 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0D 0x0F 3.8.2.8 Variable %W15.B Mode Continu CONT Mode Squentiel SEQ Mode Immdiat IMD Mode Rapide RAP Mode Recherche de Numro de Squence RNS Mode Modification MODIF Mode Test TEST Mode Manuel MANU Mode Prise dOrigine Mesure POM Mode Prise de Rfrence PREF Mode Rglages Outils REGOUT Absence de mode Mode Chargement CHARG Mode Dchargement DECHG

Affichage de message : %W15.B et W16.B Mnmonique MSG1 Description Numro du message afficher ligne 1. Le message est affich sur la ligne 1 de la page Messages de diagnostic. Le message correspondant au numro doit figurer dans le programme pice %9999.9. Numro du message afficher ligne 2. Le message est affich sur la ligne 2 de la page Messages de diagnostic. Le message correspondant au numro doit figurer dans le programme pice %9999.9.

%W16.B

MSG2

3 - 42

fr-938846/8

Variables

Le programme %9999.9 doit tre structur de la faon suivante : %9999.9 N0 N1 $ MESSAGE NUMERO 1 $ SUITE MESSAGE NUMERO 1 N2 $ MESSAGE NUMERO 2 $ SUITE MESSAGE NUMERO 2 $ SUITE MESSAGE NUMERO 2 Nx $ MESSAGE NUMERO X O : - les numro de bloc (N..) correspondent aux numros des messages afficher, - le caractre $ doit prcder les messages, - une ligne de message comporte au maximum 35 caractres, - les blocs non numrots sont affichs comme suite aux messages. 3.8.2.9 Variable %W17.B Slection du groupe daxes : %W17.B Mnmonique SELECGR Description Slection du groupe daxes Permet daffecter la visualisation, toutes les informations qui se rapportent un groupe daxes (programme pice, variable programme, .. etc ...). Les donnes introduites au clavier CN en IMD sont affectes au groupe daxes slectionn. 0 1 2 3 4 5 6 7 Slection du groupe daxes 1 Slection du groupe daxes 2 Slection du groupe daxes 3 Slection du groupe daxes 4 Slection du groupe daxes 5 Slection du groupe daxes 6 Slection du groupe daxes 7 Slection du groupe daxes 8

REMARQUE daxes.
3.8.2.10 Variable %W18.W

Utilis uniquement pour les machine outils multi-groupes

Numro de programme demand : %W18.W Mnmonique PROGDEM Description Numro du programme demand Permet de charger le numro de programme demand comme programme courant ou de demander un usinage en mode passant lecteur. Le numro de programme ou la demande dusinage en mode passant est pris en compte par le systme sur le front montant de linformation C_RAZ = 1 0 de 1 0x270F (9999) -2 (0xFFFE) Pas de demande de numro de programme par la fonction automatisme Numro de programme spcifi par la fonction automatisme Usinage en mode passant lecteur demand par la fonction automatisme

fr-938846/8

3 - 43

REMARQUE

Le programme demand doit tre prsent en mmoire CN pour tre charg comme programme courant. Si il nest pas prsent, le systme invalide lancien programme courant et le message PAS DE PROGRAMME COURANT apparat sur la page PROG..
Affectation manivelle : %W1A.B %W1D.B

3.8.2.11 Variable %W1A.B

Mnmonique AFMAN1

Description Affectation manivelle N1 Reoit ladresse physique dun axe dplacer. Se reporter au manuel dinstallation et de mise en oeuvre pour laffectation des adresses physiques des axes. Affectation manivelle N2 Identique AFMAN1 pour la manivelle N2. Affectation manivelle N3 Identique AFMAN1 pour la manivelle N3. Affectation manivelle N4 Identique AFMAN1 pour la manivelle N4.

%W1B.B %W1C.B %W1D.B

AFMAN2 AFMAN3 AFMAN4

ATTENTION

Les variables AFMAN1, AFMAN2, AFMAN3 et AFMAN4 doivent contenir ladresse physique dun axe mesur. Laffectation de la manivelle un axe doit prcder le dplacement manuel par manivelle. Les commandes de JOG, JOGPOSn et JOGNEGn (avec n de 0 31), doivent tre valides pour l'axe concern.
3.8.2.12 Variable %W1E.B Potentiomtre de broche : %W1E.B %W21.B Mnmonique POTBR1 Description Potentiomtre broche N1 Valeur code en hexadcimal correspondant la valeur dentre du CAN. Valeur code en hexadcimal 0x0 0xFF %W1F.B %W20.B %W21.B POTBR2 POTBR3 POTBR4 Valeur dentre du CAN (Fonction anai(..)) 0 Volt 10 Volt Pourcentage de vitesse de broche 50% 100%

Potentiomtre broche N2 Identique POTBR1 pour la broche N2. Potentiomtre broche N3 Identique POTBR1 pour la broche N3. Potentiomtre broche N4 Identique POTBR1 pour la broche N4.

3 - 44

fr-938846/8

Variables

3.8.2.13 Variable %W22.7

Commandes Broches : %W22.W Mnmonique VERBR4 Description Prsence puissance sur la broche 4 VERBR4 = 0 : signale la CN que la puissance de la broche 4 est mise, VERBR4 = 1 : signale la CN le verrouillage manuel ou le blocage dela broche 4. Prsence puissance sur la broche 3 Identique VERBR4 pour la broche 3 Prsence puissance sur la broche 2 Identique VERBR4 pour la broche 2 Prsence puissance sur la broche 1 Identique VERBR4 pour la broche 1 Demande d'arrt de la broche N 4 par la fonction automate Commande maintenue, tant que le bit est 1 la broche est arrte La mise 0 de ce bit autorise de nouveau la rotation de la broche. Demande d'arrt de la broche N 3 par la fonction automate Identique STOPBR4 pour la broche 3 Demande d'arrt de la broche N 2 par la fonction automate Identique STOPBR4 pour la broche 2 Demande d'arrt de la broche N 1 par la fonction automate Identique STOPBR4 pour la broche 1 Commande broche N4 La mise 1 autorise le pilotage de la broche par la fonction automatisme. La consigne est transmise la carte daxes par C_VITBR4. Commande broche N3 La mise 1 autorise le pilotage de la broche par la fonction automatisme. La consigne est transmise la carte daxes par C_VITBR3. Commande broche N2 La mise 1 autorise le pilotage de la broche par la fonction automatisme. La consigne est transmise la carte daxes par C_VITBR2. Commande broche N1 La mise 1 autorise le pilotage de la broche par la fonction automatisme. La consigne est transmise la carte daxes par C_VITBR1.

%W22.6 %W22.5 %W22.4 %W22.3

VERBR3 VERBR2 VERBR1 STOPBR4

%W22.2 %W22.1 %W22.0 %W23.3

STOPBR3 STOPBR2 STOPBR1 COMBR4

%W23.2

COMBR3

%W23.1

COMBR2

%W23.0

COMBR1

3.8.2.14 Variable %W24.W

Consigne de vitesse de broche : %W24.W %W2A.W Mnmonique C_VITBR1 Description Consigne vitesse broche N1 Permet denvoyer la valeur code de la rfrence du variateur de broche en binaire sur 14 bits avec signe. Le bit 15 de C_VITBR1 donne le signe de la consigne. Consigne vitesse broche N2 Identique C_VITBR1 pour la broche 2. Consigne vitesse broche N3 Identique C_VITBR1 pour la broche 3. Consigne vitesse broche N4 Identique C_VITBR1 pour la broche 4.

%W26.W %W28.W %W2A.W

C_VITBR2 C_VITBR3 C_VITBR4

fr-938846/8

3 - 45

POTENTIOMETRE DE BROCHE
FONCTION CN POTBRb Valeur du potentiomtre broche b M03_g et M04_g Sens de rotation des broches du groupe g VITBRb Vitesse de la broche b Ajout du bit de signe OU FONCTION AUTOMATISME Fonction anai() Valeur signe sur 16 bits

Calcul de la rfrence variateur

C A N

8 bits ou 12 bits + signe

Fonction anao() Valeur signe sur 16 bits

C N A

8 bits + signe ou 12 bits + signe

10 Volts
Ajout du bit de signe C_VITBRb Consigne de la broche b

COMBRb Commande de la broche b

0 = Fonction CN 1 = Fonction automatisme

CNA

MESURE

CARTE AXE BROCHE CN

10Volts OU

VARIATEUR DE BROCHE

+ b = numro de broche (1 4) g = numro de groupe (1 8)

Mes

DT

Figure 3.2 - Organisation dune broche

3 - 46

fr-938846/8

Variables

Programmation d'une broche affecte au groupe d'axes g

Dans le programme - Lire le numro de broche (b) affecte au groupe g : . M61_g = 1 : pas de broche affecte . M64_g = 1 : broche 1 . M65_g = 1 : broche 2 . M62_g = 1 : broche 3 . M63_g = 1 : broche 4

Broche pilote par carte d'axes ? OUI

NON

Conditions requises - Broche Paramtre (voir manuel des paramtres) - Adresse de la broche cble (Voir manuel d'installation) . @24 : broche 1 @25 : broche 2 . @26 : broche 3 @27 : broche 4

Broche non mesure pilote par CNA du processeur machine, d'une carte 8E/8S analogiques ou d'UCSII

NON

CNA carte d'axes pilote par fonction CN ? OUI

Dans le programme - Slectionner la commande de la broche b : COMBRb = 1 - Lire la fonction auxiliaire du groupe (M3 ou M4) donnant le sens de rotation de la broche : . M04_g = 1 : trigonomtrique . M03_g = 1 : antitrigonomtrique - Ajouter le bit de signe fonction du sens de rotation la vitesse de broche : VITBRb Signe - Charger la valeur obtenue dans la consigne de broche : C_VITBRb

Dans le programme - Slectionner la commande de la broche b par la CN : COMBRb = 0

Dans le programme - Lire la fonction auxiliaire du groupe (M3 ou M4) donnant le sens de rotation de la broche : . M04_g = 1 : trigonomtrique . M03_g = 1 : antitrigonomtrique - Lire VITBRb et coder la vitesse en fonction du CNA - Envoyer au CNA le signe correspondant au sens de rotation et la valeur code de la vitesse

FIN

Figure 3.3 - Programmation dune broche

fr-938846/8

3 - 47

3.8.2.15 Variable %W2C.1

Incrments de JOG interdits : %W2C.W Mnmonique NJGMANIV Description Interdit la slection manivelle Invalide la touche logiciel MANIV du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 0,001 mm Invalide la touche logiciel .001 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 0,01 mm Invalide la touche logiciel .01 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 0,1 mm Invalide la touche logiciel .1 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 1 mm Invalide la touche logiciel 1 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 10 mm Invalide la touche logiciel 10 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 100 mm Invalide la touche logiciel 100 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 1000 mm Invalide la touche logiciel 1000 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection de lincrment 10000 mm Invalide la touche logiciel 10000 du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du JOG illimit Invalide la touche logiciel ILL du cartouche JOG. La mise 1 invalide la touche. La mise 0 valide la touche.

%W2C.0

NJG0001

%W2D.7

NJG001

%W2D.6

NJG01

%W2D.5

NJG1

%W2D.4

NJG10

%W2D.3

NJG100

%W2D.2

NJG1000

%W2D.1

NJG10000

%W2D.0

NJGILLIM

3 - 48

fr-938846/8

Variables

3.8.2.16 Variable %W30.7

Modes interdits : %W30.L Mnmonique I_POM Description Interdit la slection du mode prise dorigine mesure Invalide la touche logiciel POM du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode prise de rfrences Invalide la touche logiciel PREF du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode rglage automatique doutils Invalide la touche logiciel REGOUT du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode chargement Invalide la touche logiciel CHARG du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode dchargement Invalide la touche logiciel DCHG du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode continu Invalide la touche logiciel CONT du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode squentiel Invalide la touche logiciel SEQ du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode introduction manuelle de donnes Invalide la touche logiciel IMD du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode rapide Invalide la touche logiciel RAP du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode recherche de numro de squence Invalide la touche logiciel RNS du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode modification Invalide la touche logiciel MODIF du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche.

%W30.6

I_PREF

%W30.5

I_REGOUT

%W30.2

I_CHARG

%W30.0

I_DCHG

%W31.7

I_CONT

%W31.6

I_SEQ

%W31.5

I_IMD

%W31.4

I_RAPID

%W31.3

I_RNS

%W31.2

I_MODIF

fr-938846/8

3 - 49

Variable %W31.1

Mnmonique I_TEST

Description Interdit la slection du mode test Invalide la touche logiciel TEST du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche. Interdit la slection du mode Manuel Invalide la touche logiciel MANU du cartouche MODE. La mise 1 invalide la touche. La mise 0 valide la touche.

%W31.0

I_JOG

3.8.2.17

Validation du couple pour les axes QVN : %W34.L

Les bits de %W34.L sont initialiss 0. Variable %W34.7 %W34.0 Mnmonique Description DISC_TRQ31 Validation du couple sur l'axe QVN N 31 DISC_TRQ24 Validation du couple sur l'axe QVN N24 Mise 1 valide le couple. Mise 0 invalide le couple. DISC_TRQ23 Validation du couple sur l'axe QVN N 23 DISC_TRQ16 Validation du couple sur l'axe QVN N 16 Mise 1 valide le couple. Mise 0 invalide le couple. DISC_TRQ15 Validation du couple sur l'axe QVN N 15 DISC_TRQ8 Validation du couple sur l'axe QVN N 8 Mise 1 valide le couple. Mise 0 invalide le couple. DISC_TRQ7 Validation du couple sur l'axe QVN N 7 DISC_TRQ0 Validation du couple sur l'axe QVN N 0 Mise 1 valide le couple. Mise 0 invalide le couple. Validation Rfrence vitesse pour les axes QVN : %W38.0 Mnmonique DISC_SDP Description Validation rfrence vitesse des axes QVN La mise 1 autorise le fonctionnement normal des axes QVN. La mise 0 provoque une annulation brutale de la rfrence vitesse des axes QVN et donc un freinage au couple maximum.

%W35.7 %W35.0

%W36.7 %W36.0

%W37.7 %W37.0

3.8.2.18 Variable %W38.0

Si les rfrences vitesse sont invalides, elles sont forces la valeur nulle. A la mise sous tension, les rfrences vitesse sont invalides. Dans le cas de dtection d'une erreur CN provoquant la retombe de E_CNPRET, l'invalidation des rfrence vitesse est force pour les axes QVN. l'annulation de l'erreur sur une RAZ rend de nouveau effective la validation ou l'invalidation des rfrences vitesse par la fonction automatisme.

REMARQUE

Il est recommand sur un arrt d'urgence d'invalider DISC_SDP et d'activer un arrt des avances pour ne pas gnrer une erreur de poursuite trop grande.

3 - 50

fr-938846/8

Variables

3.8.2.19 Variable %W39.2

Recul ou retour sur trajectoire Mnmonique RAP_AUTO Description Rappel automatique la suite d'une intervention La mise 1 active le rappel, La mise 0 l'annule. Demande de retour sur trajectoire la position d'interruption La mise 1 active la demande, La mise 0 annule la demande de retour. Demande de recul sur trajectoire La mise 1 active la demande, La mise 0 annule la demande de recul.

%W39.1

B_RETOUR

%W39.0

B_RECUL

3.8.2.20 Variable %W3A.7 %W3A.0

Arrt d'avance par axe (le rang du bit donne l'adresse physique de l'axe) : %W3A.L Mnmonique STOPAX31 STOPAX24 Description axe N 31 axe N 24 Dans le mode d'usinage ou en mode JOG, la mise 1 d'un bit qui adresse un des axes en mouvement, provoque l'arrt en vitesse des axes du groupe auquel il appartient. En mode d'usinage, si cet axe ne se dplace pas dans le bloc en cours d'excution mais est programm dans le bloc suivant, alors une demande d'arrt en fin de bloc est provoque et l'excution des mouvements en dbut du bloc suivant reste suspendue tant qu'un axe programm dans ce bloc a son arrt maintenu 1. En nmauto, l'action sur les manipulateurs ou la manivelle est ignore tant que le bit correspondant l'axe directement pilot est 1. axe N 23 axe N 16 Idem ci-dessus axe N 15 axe N 8 Idem ci-dessus axe N 7 axe N 0 Idem ci-dessus

%W3B.7 %W3B.0 %W3C.7 %W3C.0 %W3D.7 %W3D.0 3.8.2.21

STOPAX23 STOPAX16 STOPAX15 STOPAX8 STOPAX7 STOPAX0

Rduction de courant : %WE00.B WE1F.B "D.I.S.C." et "1050"

La fonction rduction de courant permet de rduire le courant pour les axes et broches numriques en fonction de la valeur du byte respectif. Variable %WE1F.B %WE00.B Mnmonique Description RDUC_TRQ31 axe N 31 axe N 0 RDUC_TRQ0

Soit Imaximal le courant maximal compte tenu de la limitation statique et de la valeur de l'octet : - si est ngatif ou nul ($00, $80 $FF), pas de rduction de courant, - si est positif ($01 $7F), le courant maximal autoris est : Imaximal = Imax_stat x [(127 - ) / 127]. La rduction dynamique de courant impose un variateur numrique mitre est transmise aux variateurs numriques esclaves associs. Dans le cas d'un fonctionnement en configuration anti-jeu, la rduction dynamique impose un variateur numrique matre est sans effet sur les courants de prcharge du matre et de l'esclave.

fr-938846/8

3 - 51

3.8.2.22

Mot de commande variateur "1050"

Pour le variateur numrique d'adresse xx (xx compris entre 00 et 31), le mot de commande se prsente sous la forme :
Halt Learning Synch Autocal Oscillat Phasing Indexing Request Request Request Request Request Request Request
%WEyy.7 %WEyy.6 %WEyy.5 %WEyy.4 %WEyy.3 %WEyy.2 %WEyy.1

%WEyy.B Torque Enable Mot de commande variateur @xx %WEzz.B

Spindle El Conf
%WEzz.7

Ref Enable

%WEzz.1 %WEzz.0

Bit %WEzz.0 %WEzz.1 %WEzz.7 %WEyy.1 %WEyy.2 %WEyy.3 %WEyy.4 %WEyy.5 %WEyy.6 %WEyy.7

Signification Torque Enable Reference Enable Spindle Electrical Configuration Indexing Request Phasing Request Oscillation Request Autocalibration Request Synchronization Request Learning Request Halt Request

Valeurs 0 : validation couple non demande 1 : validation couple demande 0 : rfrence non valide 1 : rfrence valide 0 : gamme basse 1 : gamme haute 0 : indexation non demande 1 : indexation demande 0 : calage capteur non demand 1 : calage capteur demand 0 : oscillation non demande 1 : oscillation demande 0 : autocalibration non demande 1 : autocalibration demande Rserv Rserv 0 : arrt non demand 1 : arrt demand

3 - 52

fr-938846/8

Variables

3.8.3

Entres venant des groupes daxes

Les entres venant des groupes daxes sont groupes dans 8 postes de 128 octets ; ce sont les variables %Rg00 %Rg7F o g vaut de 1 8 pour les groupes de 1 8. 3.8.3.1 Etat Groupe : %Rg00.W

REMARQUE

L'ensemble de ces variables s'applique aux groupes d'axes CN indpendants. Seules les variables E_RAZ1 E_RAZ8, E_CYCL1 E_CYCL8, E_DEGURG1 E_DEGURG8, NO_POS1 NO_POS8 et E_DEF1 E_DEF8 s'appliquent aux groupes d'axes automates (Voir chapitre 17).
Mnmonique Description (Groupe 1 8) E_M011 E_M018 E_SLASH1 E_SLASH8 E_INTER1 E_INTER8 E_PROG1 E_PROG8 E_OPER1 E_OPER8 E_DEF1 E_DEF8 Arrt programm optionnel valid sur le groupe d'axes CN indpendants Ng. Signale la prise en compte des arrts programms optionnels dans un programme pice. Saut de bloc valid sur le groupe d'axes CN indpendants Ng. Signale la prise en compte des sauts de blocs dans un programme pice. Etat intervention sur le groupe d'axes CN indpendants Ng. Programme en cours du groupe d'axes CN indpendants Ng. Signale qu'un programme pice est en cours d'excution dans les modes CONT, SEQ, RAP, RNS, TEST, IMD. Signale un arrt programm provoqupar un M00 ou un M01valid. Dfaut sur groupe Ng Indique locurence dune erreur de programmation ou labsence de programme pice sur le groupe. La mise 1 indique que le groupe est en dfaut. Axe en attente de position Lorsqu'un positionnement prcis est demand par programmation (Fonctions G09, M00, M02 ou M10), en IMD ou en mode JOG chaque arrt des mouvements, l'information NO_POSg est transmise pendant que l'axe est en attente de position. La mise 1 indique que l'axe est en attente de position.

Variable %Rg00.7

%Rg00.6 %Rg00.5 %Rg00.0

%Rg01.7 %Rg01.6

%Rg01.5

NO_POS1 NO_POS8

%Rg01.4

E_DGURG1 Dgagement durgence en cours sur groupe Ng E_DGURG8 Signale lexcution dun programme de dgagement durgence. Mise 1 aprs lecture par le CN de C_DGURGg = 1 et si le programme de dgagement durgence est valid. Mise 0 sur dtection dun M00 ou un M02. E_RAX1 E_RAX8 E_CYCL1 E_CYCL8 Rappel d'axes sur le groupe d'axes CN indpendants Ng. Signale que le rappel d'axe est valid. Cycle en cours sur le groupe Ng Indique que le groupe est en train dexcuter un bloc de programme pice. Mise 0 la CN attend linformation C_CYCLEg = 1 pour excuter le programme pice ou le bloc suivant. Mise 1 indique quun bloc est en cours dexcution.

%Rg01.3 %Rg01.2

fr-938846/8

3 - 53

Variable %Rg01.1

Mnmonique Description (Groupe 1 8) E_ARUS1 E_ARUS8 E_RAZ1 E_RAZ8 Sortie d'arrt usinage du groupe d'axes CN indpendants Ng. Signale l'tat intervention du systme (arrt du programme en cours d'excution et validation des manipulateurs d'axes). RAZ en cours sur groupe Ng Bit impulsionnnel dune dure de 100 ms qui signale une RAZ sur le groupe. Pendant la dure de cette impulsion, les donnes venant de la fonction automatisme ne sont pas prises en compte. Mise 1 par touche RAZ du pupitre, sur demande de RAZ de la fonction automatisme C_RAZg = 1, en fin dexcution dun programme pice (M02) ou la mise sous tension de la CN. Cette variable est mise 0 aprs 100 ms.

%Rg01.0

%Rg06.B

MODCOUR1 Mode en cours sur le groupe d'axes CN indpendant Ng. MODCOUR8 La valeur de la variable est l'image du mode CN en cours sur le groupe d'axes CN indpendants Ng. Numro du cycle dusinage en cours : %Rg02.B Mnmonique Description (Groupe 1 8) NUMCYC1 NUMCYC8 Numro du cycle dusinage en cours sur groupe Ng Permet de lire le numro de sous programme du cycle dusinage de %10000 %10255.(0 pour %10000 0xFF pour %10255).

3.8.3.2 Variable %Rg02.B

3.8.3.3 Variable %Rg03.1

Etat Fonction G : %Rg03.B Mnmonique Description (Groupe 1 8) FILET1 FILET8 Filetage sur groupe Ng Signale lexcution dun cycle de filetage G31 (Filetage au grain) G33 (Filetage) ou G38 (Filetage enchan), G84K (Taraudage rigide). Mise 1 par lexcution de la fonction G31, G33 , G38 ou G84. Mise 0 par rvocation de la fonction. Avance rapide (G00) sur groupe Ng Signale lexcution de la fonction G0 dans le bloc en cours du programme pice. Mise 1 par lexcution de la fonction G0. Mise 0 par la rvocation de la fonction G0.

%Rg03.0

RAPID1 RAPID8

3 - 54

fr-938846/8

Variables

3.8.3.4 Variable %Rg04.W

Fonction M code sans compte rendu : %Rg04.W Mnmonique Description (Groupe 1 8) MSSCR1 MSSCR8 Fonction M code sans compte rendu venant du groupe Ng. Cette variable permet la lecture des fonctions auxiliaires M codes sans compte rendu la vole de M200 M899 (EX.M210 envoie la fonction automatisme MSSCRg == 210). Ces fonctions sont considres par le systme comme des fonctions Avant, Modale. La poursuite du programme pice se fait sans attente dacquittement. Exploites dans les programmes pice, elle sont accessibles en lecture par la fonction automatisme et ncessitent un dcodage dans le programme utilisateur. Une seule fonction M code modale est autorise dans lcriture dun bloc en programmation pice. Il est possible de programmer dans le mme bloc en programmation pice une fonction code modale et une non modale. Le dcodage des fonctions M doit imprativement tre effectu dans la tche squentielle TS0.

Fonction M code "A la vole" MSSCRg

Figure 3.4 - Fonctions auxiliaires M codes la vole 3.8.3.5 Variable %Rg1E.W Fonction M code avec compte rendu : %Rg1E.W Mnmonique Description (Groupe 1 8) MCODCR1 MCODCR8 Fonction M code avec compte rendu venant du groupe Ng Cette variable permet la lecture des fonctions auxiliaires M codes avec compte rendu jusqu M199 (Ex. M92 envoie la fonction automatisme %MCODCRg == 92). Ces fonctions sont considres par le systme comme des fonction Aprs, non modale. Cest la fonction automatisme qui doit grer leur ventuelle modalit. Exploites dans les programmes pice, elle sont accessibles en lecture par la fonction automatisme et ncessitent un dcodage dans le programme utilisateur. Une seule fonction M code Non modale est autorise dans lcriture dun bloc en programmation pice. Il est possible de programmer dans le mme bloc en programmation pice une fonction code modale et une non modale. Le dcodage des fonctions M doit imprativement tre effectu dans la tche squentielle TS0.

fr-938846/8

3 - 55

Fonction M code groupe g MCODCRg

Compte rendu groupe g CRMg

1 cycle automate

Attente CRMg

1 cycle automate MCODCRg = 0

Suite du programme

MCODCRg = code fonction

Figure 3.5 - Fonctions auxiliaires M codes avec compte rendu

REMARQUE
3.8.3.6

Si CRM1 CRM8 est maintenu 1, la suite du programme pice est entreprise aprs un cycle automate.
Fonctions M dcodes : %Rg20.L

Ces fonctions, exploites dans les programmes pice sont accessibles en lecture par la fonction automatisme. Ce sont des fonctions dfinies et connues par le systme (par ex : blocage axes, gamme de broche, ... etc ..). La fonction automatisme lit la fonction sur un bit (%Rg2n.i) affect une fonction M dcode. Il faut distinguer les fonctions "avant" et "aprs" :

Sortie fonction M AVANT

Dplacement AXES

Dplacement AXES

Sortie fonction M APRES

Les fonctions modales Une fonction modale reste mmorise et valide pendant lexcution de plusieurs blocs de programme pice jusqu la condition de rvocation. Exemple (sur le groupe 1) N100 M3 M40 S1000 N110 X100 N120 M5 Sortie M3 et M40 vers la fonction automatisme soit %R122.0 =1 et %R121.0 =1. Dplacement sur X. La fonction automatisme voit toujours %R122.0 =1 et %R121.0 =1. Sortie M5 vers la fonction automatisme et rvocation de M3 soit %R122.2 = 1 et %R122.0 = 0.

3 - 56

fr-938846/8

Variables

Les fonctions non modales Une fonction non modale nest valide que pendant lexcution dun bloc de programme pice. Exemple (sur le groupe 1) N100 X100 Z200 M6 N110 X50 Sortie M6 vers la fonction automatisme soit %R122.3 = 1. M6 est acquitt par le CRM1 au bloc prcdent soit %R122.3 = 0.

ATTENTION

Toutes les fonctions auxiliaires dcodes sont des fonctions avec compte rendu (CRM1 CRM8) Ltat de CRM1 CRM8 conditionne la poursuite ou lattente de lexcution du bloc de programme pice La fonction automatisme doit grer CRM1 CRM8, pour les fonctions programmes et pour les fonctions rvoques, ou initialises (sur RAZ ou INIT).

Fonction M modale

Fonction M non modale

Compte rendu groupe g CRMg

1 cycle automate Bloc n

Attente CRMg

Suite du programme Bloc n + 1

Figure 3.6 - Traitement des fonctions auxiliaires M dcodes

REMARQUE

Si CRM1 CRM8 est maintenu 1, la suite du programme pice est entreprise aprs un cycle automate.

fr-938846/8

3 - 57

Variable Mnmonique (Groupe 1 8)

Dfinition

Rvocation par
M997, M998, M2

Avant
X

type de fonction Aprs Modale Non modale


X

%Rg20.7 M999_1 M999_8 Masquage par programmation des modes IMD, MODIF, et appel de sous-programmes par la fonction automatisme %Rg20.6 M998_1 M998_8 Dmasquage par programmation des modes IMD, MODIF, et appel de sous-programmes par la fonction automatisme %Rg20.5 M997_1 M997_8 Forage de lenchanement des blocs %Rg20.3 %Rg20.2 %Rg20.1 %Rg20.0 %Rg21.7 %Rg21.5 %Rg21.4 %Rg21.3 %Rg21.2 %Rg21.1 %Rg21.0 %Rg22.7 %Rg22.6 %Rg22.5 %Rg22.4 %Rg22.3 %Rg22.2 %Rg22.1 %Rg22.0 %Rg23.7 %Rg23.2 %Rg23.1 %Rg23.0 M49_1 M49_8 Potentiomtre davance et de broche forcs 100%

M999, M997

M998, M999, M2 M48, M2 M49 M10 M11 C_CYCLE = 1 Ces fonctions se rvoquent entre elles, M2

X X X X X X X X X X X X X X X X X X X X X X X X

X X X X X X X X X X X X X X X X X X X X X X

M48_1 M48_8* Validation des potentiomtres de broche et davance M11_1 M10_1 M12_1 M45_1 M44_1 M43_1 M42_1 M41_1 M40_1 M19_1 M08_1 M07_1 M06_1 M04_1 M03_1 M61_1 M02_1 M01_1 M00_1 M11_8 Dblocage daxes M10_8 Blocage daxes M12_8 Arrt dusinage programm M45_8 Gammes de broches M44_8 M43_8 M42_8 M41_8 M40_8 M19_8 Arrt broche indexe M08_8 Arrosage N1 M07_8 Arrosage N2 M06_8 Changement doutil M04_8 Rotation broche sens trigonomtri que M03_8 Rotation broche sens anti-trigo nomtrique M61_8 Invalidation de la broche courante dans un groupe M02_8 Fin de programme pice M01_8 Arrt programm optionnel M00_8 Arrt programm

M0,M2,M3,M4, ARUS M7, M8 M9, M2 M9, M2 CRM1 CRM8 M3, M4 M3, M5, M19, M0, M2 M4, M5, M19, M0, M2 M64, M65, M62, M63 RAZ C_CYCLE = 1 C_CYCLE = 1

M09_1 M09_8* Arrt des arrosages

M05_1 M05_8* Arrt broche

(*)

Fonction initialise la mise sous tension, par une RAZ ou par la fonction M02. Fonctions M dcodes (Etat des broches) : %Rg24.W Dfinition Rvocation par Avant type de fonction Aprs Modale Non modale
X X X X

3.8.3.7

Variable Mnmonique (Groupe 1 8)


%Rg24.3 %Rg24.2 %Rg24.1 %Rg24.0 M63_1 M62_1 M65_1 M64_1

M63_8 Rfrence broche aiguille sur broche 4. M62_8 Rfrence broche aiguille sur broche 3. M65_8 Rfrence broche aiguille sur broche 2. M64_8 Rfrence broche aiguille sur broche 1.

M61, M62, M64, M65 M61, M63, M64, M65 M61, M62, M63, M64 M61, M62, M63, M65

X X X X

3 - 58

fr-938846/8

Variables

Variable Mnmonique (Groupe 1 8)


%Rg25.3 %Rg25.2 %Rg25.1 %Rg25.0 M69_1 M68_1 M67_1 M66_1

Dfinition

Rvocation par
M66, M67, M68, M02 M66, M67, M69, M02 M66, M68, M69, M02 M67, M68, M69, M02

Avant
X X X X

type de fonction Aprs Modale Non modale


X X X X

M69_8 Mesure broche 4 exploitable M68_8 Mesure broche 3 exploitable M67_8 Mesure broche 2 exploitable M66_8 Mesure broche 1 exploitable

3.8.3.8

Blocage - dblocage daxes

Les axes sont blocables par la fonction auxiliaire M10 et dblocable par la fonction auxiliaire M11. La liste des axes blocables est dfinie par le paramtre machine P8 (Voir manuel des paramtres). Si la fonction M10 est prsente (blocage daxes sil ny pas de mouvement) le systme dtecte le changement dtat des variables AXMVTaxe (avec axe de 0 31) sur les axes blocables.

Mouvement sur l'axe t

Compte rendu groupe g CRMg

Axe t dbloqu Axe t bloqu

Axe t en mouvement AXMVTt

1 cycle automate (20 ms)

Attente CRMg Blocs m n Dplacement de l'axe t

1 cycle automate (20 ms)

Attente CRMg Bloc n + 1 Axe t l'arrt

Bloc m - 1 Axe t l'arrt

Figure 3.7 - Principe du blocage/dblocage daxe

REMARQUE
3.8.3.9 Variable %Rg7C.L

Si au bloc n + 1 laxe t est toujours en mouvement, la variable AXMVTt (avec axe de 0 31) reste mont et il y a enchanement des blocs.
Numro doutil : %Rg7C.L Mnmonique Description (Groupe 1 8) OUTIL1 OUTIL8 Numro doutil demand par le groupe Ng. Permet la lecture des numro doutils (valeur dcimale de 0 65535). Les fonctions T sont considres par le systme comme des fonctions Avant Modale sans attente de compte rendu.

fr-938846/8

3 - 59

Fonction T groupe g OUTILg 1 cycle automate Suite du programme

Figure 3.8 - Traitement des fonctions T

Paramtre E

NON

"M" code la vole ? OUI MSSCRg = code de la fonction

Sortie "S" la vole Interpolation linaire ou circulaire

NON

"M" code aprs ? OUI MCODCRg = code de la fonction

NON

"T" ? OUI OUTILg = valeur de la nouvelle fonction

NON

"G09"? OUI Attente annulation de l'cart de poursuite

Attente 1 cycle automate

Attente CRMg = 1

Attente 1 cycle automate NON

NON

"G04" OUI Temporisation programme OUI "M" dcodes aprs ? OUI Sortie des nouvelles fonctions avec rvocation de leurs fonctions contradictoires Attente 1 cycle automate

MCODCRg = 0

"M" dcodes avant ? OUI Sortie des nouvelles fonctions avec rvocation de leurs fonctions contradictoires Attente 1 cycle automate

Attente 1 cycle automate

NON

C_FMEXTg = 1 ? NON Attente C_FMEXTg = 1

Attente CRMg = 1

Rvocation des fonctions non modales

Attente CRMg = 1

Rvocation des fonctions non modales

Figure 3.9 - Principe dexcution des fonctions programmes dans un bloc de programme pice

3 - 60

fr-938846/8

Variables

3.8.4

Sortie vers les groupes daxes

Les sorties vers les groupes daxes sont groupes dans 8 postes de 128 octets: Concerne les variables %Wg00 %Wg7F o g vaut de 1 8 pour les groupes de 1 8. 3.8.4.1 Commandes Groupe : %Wg00.W

REMARQUE

Les variables C_ MODE1 C _MODE8 sont valides uniquement pour les groupes axes automates (Voir chapitre 17). Les variables C_ARUS1 C_ARUS8, C_RAX1 C_RAX8, C_SLASH1 C_SLASH8 et C_M011 C_M018 sont valides uniquement pour les groupes d'axes CN.
Mnmonique Description (Groupe 1 8) C_MODE1 C_MODE8 Commande mode CONT et SEQU sur groupe daxes automates Ng Mise 0, le mode continu est valid partir du bloc suivant. Mise 1, le mode squentiel est valid pour le bloc en cours dexcution. Cette information na de sens que si le groupe est valide. Commande maintenue de vitesse rapide en cours de cycle Cette commande doit tre utilise en cours de cycle (C_CYCLEg = 1). La mise 1 autorise un dplacement vitesse la plus rapide possible. La mise 0 entrane un dplacement vitesse de travail. Compte rendu des fonctions M du groupe Ng A ltat 0, entrane une attente du systme et le non traitement des fonctions suivantes dans le bloc en cours dexcution. A ltat 1, autorise la poursuite des traitements. Appel dun sous-programme sur groupe Ng En cours dexcution dun programme pice, la mise 1 entrane le branchement un sous-programme %9999.g (Avec g numro de groupe). Le maintien de lappel ou un nouvel appel de sous-programme est ignor durant lexcution du sous-programme. En fin dexcution du sous-programme, aucun compte-rendu nest mis par le systme. Cest le sous-programme qui doit transmettre la fonction automatisme un compte-rendu pour lannulation de lappel (Fonction M, paramtre externe,...) Si un seul groupe d'axes CN est dclar, c'est le programme %9999 qui est appel (soit %9999.0). Arrt bute fin de bloc sur groupe Ng La mise 1 provoque un arrt des mouvements sur le groupe daxes, lenchanement au bloc suivant ou un saut un autre bloc. La fonction G10, associe ses arguments, doit tre prsente dans le programme pice. Validation du groupe Ng La mise 1 valide lutilisation du groupe daxes La validation ou linvalidation ne sont effectives que sur une RAZ ou un M02.

Variable %Wg00.7

%Wg00.6

C_FAST1 C_FAST8

%Wg00.5

CRM1 CRM8

%Wg00.4

APPSS1 APPSS8

%Wg00.3

ARBUT1 ARBUT8

%Wg00.2

VALID1 VALID8

%Wg00.1

C_FMEXT1 Commande fin de mouvement extrieur sur gr. Ng C_FMEXT8 La mise 0 interdit la retombe du CYCLE dans les modes SEQU et IMD ou lenchanement sur le bloc suivant dans les modes CONT et RAP. La mise 1 entrane la poursuite normale dans lexcution du mode. Cette variable est teste en fin dexcution de chaque bloc.

fr-938846/8

3 - 61

Variable %Wg00.0

Mnmonique Description (Groupe 1 8) C_AUTAV1 Autorisation des avances sur le groupe Ng C_AUTAV8 Cette variable est active si lautorisation davance gnrale AUTAV = 1..La mise 0 provoque larrt des mouvements sur le groupe daxes dans tous les modes avec dplacement. La reprise des mouvements se fait lorsque C_AUTAVg = 1. C_M011 C_M018 Validation de l'arrt programm optionnel (M01) sur le groupe d'axes CN indpendants Ng. Une impulsion valide ou invalide l'arrt programm optionnel suivant l'tat prcdent. Validation du saut de bloc sur le groupe d'axes CN indpendants Ng. Une impulsion valide ou invalide le saut de bloc suivant l'tat prcdent.

%Wg01.7

%Wg01.6 %Wg01.4

C_SLASH1 C_SLASH8

C_DGURG1 Demande de dgagement durgence sur le groupe Ng C_DGURG8 Cette demande est prise en compte dans les modes CONT et SEQ. Le bloc en cours est interrompu et le systme se branche sur le dernier programme de dgagement durgence dclar dans le programme pice par la fonction G75. Si aucun programme de dgagement durgence nest dfini, cette information est traite de la mme faon que C_ARUS. C_RAX1 C_RAX8 C_CYCL1 C_CYCL8 Slection du rappel d'axes sur groupe d'axes CN indpendants Ng. Cette demande est prise en compte dans les modes CONT, SEQ,RAP. Demande dpart cycle sur groupe daxes automate Ng ou groupe indpendant Permet lexcution des modes CONT et SEQ pour les groupes daxes automate.La commande de C_CYCLEg doit tre impulsionnelle pour viter dans les modes CONT une reprise de lusinage aprs la dtection dun M02 ou dune RAZ. Cette information nest prise en compte que si le groupe est valide. Demande d'arrt d'usinage du groupe d'axes CN indpendants Ng. Cette demande est prise en compte dans les modes CONT, SEQ, RAP, RNS, TEST, IMD. Demande RAZ sur groupe daxes automate Ng ou groupe indpendant Prise en compte sil ny a pas de dplacement sur les axes. Cest pendant la RAZ sur un groupe quest prise en compte linformation VALIDg et quest dtect la prsence du programme pice affect au groupe automate.

%Wg01.3 %Wg01.2

%Wg01.1

C_ARUS1 C_ARUS8 C_RAZ1 C_RAZ8

%Wg01.0

3.8.4.2 Variable %Wg02.B

Valeur du potentiomtre davance : %Wg02.B Mnmonique Description (Groupe 1 8) POTAV1 POTAV8 Potentiomtre davance sur groupe Ng Valeur code en hexadcimal correspondant la valeur dentre du CAN Valeur code Valeur dentre du CAN Pourcentage vitesse en hexadcimal (Fonction anai(.)) davance 0x0 0 Volt 0% 0xFF 10 Volt 120%

3.8.4.3 Variable %Wg03.B

Mode groupe indpendant : %Wg03.B Mnmonique Description (Groupe 1 8) MOD-GR1 MOD-GR8


fr-938846/8

Mode demand sur le groupe indpendant

3 - 62

Variables

3.8.5
3.8.5.1

Dfauts et diagnostic systme


Dfaut systme ou de configuration

Les variables suivantes renseignent lutilisateur sur les dfauts systme ou de configuration. Variable %R97C.W %R97F.2 %R97F.1 %R97F.0 Mnmonique DEFHTR DEFCARTE DEFCONF DEFBUS Description Compteur des dfauts dpassement temps calcul (ou HTR) (*) Bit dfaut gnral cartes E/S borniers (**) Bit dfaut gnral configuration cartes E/S borniers (**) Bit dfaut gnral liaison sur le bus E/S srie (**)

(*) (**)
3.8.5.2

Ce compteur est incrment par le systme chaque dtection dun dpassement, il est mis ZERO par le programme utilisateur. Ces bits sont mis UN par le systme chaque dtection dun dfaut.
Diagnostic systme

Les variables suivantes donnent la consommation (En % du temps) du moniteur et de chaque tche automate. Variable %R950.B %R951.B %R952.B %R953.B %R954.B %R955.B %R956.W %R958.B %R959.B %R95A.B %R95B.B %R95C.B %R95D.B %R95E.W %R960.B %R961.B %R962.B %R963.B %R964.B %R965.B %R966.W %R968.B %R969.B %R96A.B Mnmonique Sys_avr1 Sys_max1 Ts0_avr1 Ts0_max1 Ts1_avr Ts1_max Overrun1 Sys_avr2 Sys_max2 Ts0_avr2 Ts0_max2 Ts2_avr Ts2_max Overrun2 Sys_avr3 Sys_max3 Ts0_avr3 Ts0_max3 Ts3_avr Ts3_max Overrun3 Sys_avr4 Sys_max4 Ts0_avr4 Description Temps moyen d'occupation du moniteur sur le cycle %TS1 Temps maximum d'occupation du moniteur sur le cycle %TS1 Temps moyen d'occupation de la tche %TS0 sur le cycle %TS1 Temps maximum d'occupation de la tche %TS0 sur le cycle %TS1 Temps moyen d'occupation de la tche %TS1 Temps maximum d'occupation de la tche %TS1 Dpassement temps de calcul sur le cycle %TS1 Temps moyen d'occupation du moniteur sur le cycle %TS2 Temps maximum d'occupation du moniteur sur le cycle %TS2 Temps moyen d'occupation de la tche %TS0 sur le cycle %TS2 Temps maximum d'occupation de la tche %TS0 sur le cycle %TS2 Temps moyen d'occupation de la tche %TS2 Temps maximum d'occupation de la tche %TS2 Dpassement temps de calcul sur le cycle %TS2 Temps moyen d'occupation du moniteur sur le cycle %TS3 Temps maximum d'occupation du moniteur sur le cycle %TS3 Temps moyen d'occupation de la tche %TS0 sur le cycle %TS3 Temps maximum d'occupation de la tche %TS0 sur le cycle %TS3 Temps moyen d'occupation de la tche %TS3 Temps maximum d'occupation de la tche %TS3 Dpassement temps de calcul sur le cycle %TS3 Temps moyen d'occupation du moniteur sur le cycle %TS4 Temps maximum d'occupation du moniteur sur le cycle %TS4 Temps moyen d'occupation de la tche %TS0 sur le cycle %TS4

fr-938846/8

3 - 63

Variable %R96B.B %R96C.B %R96D.B %R96E.W %R970.B %R971.B %R972.B %R973.B %R974.B %R975.B %R976.W

Mnmonique Ts0_max4 Ts4_avr Ts4_max Overrun4 Sys_avr5 Sys_max5 Ts0_avr5 Ts0_max5 Ts5_avr Ts5_max Overrun5

Description Temps maximum d'occupation de la tche %TS0 sur le cycle %TS4 Temps moyen d'occupation de la tche %TS4 Temps maximum d'occupation de la tche %TS4 Dpassement temps de calcul sur le cycle %TS4 Temps moyen d'occupation du moniteur sur le cycle %TS5 Temps maximum d'occupation du moniteur sur le cycle %TS5 Temps moyen d'occupation de la tche %TS0 sur le cycle %TS5 Temps maximum d'occupation de la tche %TS0 sur le cycle %TS5 Temps moyen d'occupation de la tche %TS5 Temps maximum d'occupation de la tche %TS5 Dpassement temps de calcul sur le cycle %TS5

3.8.6
Variable %W97A.L

Choix du module animer


Mnmonique Description Type et Numro de tche %W97A.L donne le type et le numro de tche du module animer.
G P fort G P faible p p fort p p faible

Bit 31

Bit 0

Type de tches

Numro de tches 0 255

Les valeurs codes pour le type de tche sont : 1 pour une tche %TS, 2 pour une tche %TF, 3 pour une tche %SP 4 pour une tche %TH 5 pour une tche %INI %W97E.B Numro du composant % W97E.B donne le numro du composant animer dans le module.

Si ces deux variables sont cohrentes, le composant du module spcifi est ouvert et anim.Dans le cas contraire, la liste de tous les modules chargs sur l'automate est propose. Exemple %W97A.L = 0x00300F0 %W97E.B = 2 Le composant N 2 du module SP240 sera ouvert et anim.

3 - 64

fr-938846/8

Variables

3.8.7
Variable %W900.0

Autorisation d'criture des cartes sorties %W900.0


Mnmonique INIB_E33 Description Autorisation dcriture par programmation pice des cartes sorties. Les variables %Qrc3B.1 doivent avoir t pralablement programmes dans %INI. La mise 1 interdit lcriture, par paramtres E33xxx, des variables %Qrc dans un programme pice ou par oprateurs dynamiques. La mise 0 autorise lcriture.

3.8.8

Gestion dfaut systme

Ces variables permettent de contrler les actions du moniteur lorsquil y a dtection de dfauts systme ou de configuration. Les variables de gestion des dfauts systmes seront traites ultrieurement.

3.8.9

Paramtres externes E30xxx, E40xxx et E42xxx ! ATTENTION

Les paramtres E30xxx et E40xxx ne sont pas sauvegards. Ils sont initialiss la mise sous tension. Les paramtres E42xxx sont sauvegards.
3.8.9.1 Paramtres externes E30xxx

128 mots de 32 bits sont adresss par E30000 E30127. Les paramtres E300xx sont lus et crits par et pendant lexcution du programme pice. Ils transmettent des valeurs numriques signes significatives qui sont lues par le programme utilisateur. Mnmonique E30000 E30031 E30032 E30063 E30064 E30095 E30096 E30127 P.Fort %RA00 %RA7C %RB00 %RB7C %RC00 %RC7C %RD00 %RD7C P.Faible %RA03 %RA7F %RB03 %RB7F %RC03 %RC7F %RD03 %RD7F

%RA01 %RA7D %RB01 %RB7D %RC01 %RC7D %RD01 %RD7D

%RA02 %RA7E %RB02 %RB7E %RC02 %RC7E %RD02 %RD7E

fr-938846/8

3 - 65

3.8.9.2

Paramtres externes E40xxx

128 mots de 32 bits sont adresss par E40000 E40127. Les paramtres E400xx sont crits par le programme utilisateur. Il permettent dintroduire dans le programme pice des valeurs numriques signes qui peuvent tre des cotes atteindre, des dcalages, .. etc .... Mnmonique E40000 E40031 E40032 E40063 E40064 E40095 E40096 E40127 3.8.9.3 Paramtres E42xxx P.Fort %WA00 %WA7C %WB00 %WB7C %WC00 %WC7C %WD00 %WD7C P.Faible %WA03 %WA7F %WB03 %WB7F %WC03 %WC7F %WD03 %WD7F

%WA01 %WA7D %WB01 %WB7D %WC01 %WC7D %WD01 %WD7D

%WA02 %WA7E %WB02 %WB7E %WC02 %WC7E %WD02 %WD7E

128 mots adresss de E42000 E42127. Ces paramtres peuvent tre lus et crits par le programme utilisateur (Fonctions R_E42000 (..) et W_E42000 (..) et par le programme pice. Ils sont accessibles en lecture et criture par oprateurs dynamiques.

REMARQUE : Il ny a pas de garantie de cohrence des changes au niveau du systme (Une lecture par la fonction automatisme peut par exemple tre interrompue par une criture de la fonction CN) Il appartient donc lutilisateur de mettre en place un mcanisme de contrle des changes.

3 - 66

fr-938846/8

Variables

3.8.10

Organisation physique des variables %R et %W

Les variables %R et %W sont organises en blocs de 128 octets %R suivi par 128 octets %W puis nouveau 128 octets %R et ainsi de suite jusqu la fin de la famille. Variables rserves non affectes Les variables en entre %RE00 %RE7F et %RF00 %RF7F sont rserves mais non affectes. Les variables en sortie %WE20 %WE7F et %WF00 %WF7F sont rserves mais non affectes. Tableau rcapitulatif Organisation physique des variables %R et %W (total 4 koctets) Variables %R0 %R7F %W0 %W7F %R100 %R17F %W100 %W17F %Rg00 %Rg7F %Wg00 %Wg7F %R800 %R87F %W800 %W87F %R900 %R97F %W900 %W97F %RA00 %RA7F %WA00 %WA7F %RB00 %RB7F %WB00 %WB7F %RC00 %RC7F %WC00 %WC7F %RD00 %RD7F %WD00 %WD7F %WE00 %WE1F %WF20 %WF7F %RF00 %RF7F Dsignation 128 octets en entre venant de la CN 128 octets en sortie vers la CN 128 octets en entre venant du groupe daxes 1 128 octets en sortie vers le groupe daxes 1 6 groupes de 128 octets en entre venant des groupes daxes 2 7 6 groupes de 128 octets en sortie vers les groupes daxes 2 7 128 octets en entre venant du groupe daxes 8 128 octets en sortie vers le groupe daxes 8 128 octets en entre (dfauts internes) 128 octets en sorties (dfauts internes) 128 octets en entre paramtres E30000 E30031 128 octets en sortie paramtres E40000 E40031 128 octets en entre paramtres E30032 E30063 128 octets en sortie paramtres E40032 E40063 128 octets en entre paramtres E30064 E30095 128 octets en sortie paramtres E40064 E40095 128 octets en entre paramtres E30096 E30127 128 octets en sortie paramtres E40096 E40127 32 octets en sortie vers la CN, rduction de courant. rserves non affectes rserves non affectes

fr-938846/8

3 - 67

3.9

Variables mots communs %S

Connect aux rseaux MAPWAY ou ETHWAY, la commande numrique offre une ouverture au service mots communs des automates de la gamme TSX de Telemecanique. Lensemble des mots communs constitue une base de donnes distribue entre les stations dun mme rseau, chaque station pouvant tre indiffremment un automate TSX ou une commande numrique. Les stations participant au service mots communs se partagent une mmoire commune de 256 mots de 16 bits. Chaque station dispose selon la configuration, de 4 64 mots communs (accessible en criture) de la mmoire commune. Les mots affects aux autres stations ne lui sont accessibles quen lecture.

3.9.1

Actualisation des variables

Lactualisation des variables %S est faite automatiquement par le systme au rythme de la tche squentielle %TS0 et sans intervention du programme utilisateur. En dbut de %TS0, la fonction automatisme va lire dans linterface associe au processeur rseau, lensemble des mots communs ayant volus dans les autres stations. En fin de %TS0, la fonction automatisme crit dans linterface associe au processeur rseau, les mots communs de sa station. Le coupleur rseau compare ces valeurs aux valeurs prcdemment mises. Il nmettra une trame que si une des valeurs au moins volue ou aprs 30 cycle HTR sil na pas mis depuis.

3.9.2

Configuration des mots communs

La configuration consiste : - dfinir le numro de rseau et de station dans le paramtre machine P100 (Voir manuel des paramtres), - programmer dans la tche %INI lactivit de la station et le nombre de mots communs par station par lappel de la fonction setcomw(..).

3 - 68

fr-938846/8

Variables

3.9.3

Organisation des variables mots communs %S

Les variables %S sont organises en 64 blocs de 128 octets indpendamment de la configuration des mots communs. Le numro dune variable %S est cod sur quatre digits hexadcimaux. Les deux digits de poids faible indiquent le numro de loctet dans la station (de 0x0 0x7F) et les deux digits de poids fort indiquent le numro de la station (de 0x0 0x3F). Ainsi %S21F.B reprsente loctet 31 de la station 2. Bloc Station 0 Station 1 Stations 2 61 Station 62 (0x3E) Station 63 (0x3F) Diagnostic Variables De %S0 %S7F De %S100 %S17F De %S3E00 %S3E7F De %S3F00 %S3F6F De %S3F70 %S3F7F Taille 128 octets 128 octets 59 blocs de 128 octets 128 octets 112 octets 16 octets

Les variables %S3F70.B %S3F77.B contiennent les bits indicateurs de rafrachissement des stations : Variables %S3F70.0 %S3F70.7 %S3F71.0 %S3F71.7 %S3F72.0 %S3F72.7 %S3F73.0 %S3F73.7 %S3F74.0 %S3F74.7 %S3F75.0 %S3F75.7 %S3F76.0 %S3F76.7 %S3F77.0 %S3F77.7 Description Indicateurs de rafrachissement des stations 0 7 Indicateurs de rafrachissement des stations 8 15 Indicateurs de rafrachissement des stations 16 23 Indicateurs de rafrachissement des stations 24 31 Indicateurs de rafrachissement des stations 32 39 Indicateurs de rafrachissement des stations 40 47 Indicateurs de rafrachissement des stations 48 55 Indicateurs de rafrachissement des stations 56 63

Ces bits sont mis 1 par le systme lors du rafrachissement des variables %S de la station correspondante. Leurs mises 0 pour contrler le bon fonctionnement des changes est la charge du programmeur. Loctet %S3F79.B contient lorsque le service mots communs est actif le numro de sa propre station. Le mot %S3F7E.W est rserv au service aprs vente NUM.

REMARQUE : Si le service mots communs nest pas actif, les variables %S peuvent tre utilises comme des variables banalises non sauvegardes.

fr-938846/8

3 - 69

3.10
3.10.1

Variables locales %Y - Pointeurs


Gnralits

Le programmeur dispose dune base du microprocesseur. Cette base est associe aux variables %Y. Les variables %Y sont utilises de deux faons : - comme variables locales associes un module %SP. Dans ce cas, la base est initialise par le systme lors de lappel dun module %SP par la fonction spy(..). Ces variables %Y sont cres dans la pile lors de lappel du module %SP et sont dtruites au retour lappelant. Leur nombre est de 128 octets (de %Y0.B %Y7F.B). Leur utilisation permet dcrire des modules portables et rentrants - comme variable pouvant remplacer nimporte quelles variables globales (%M; %V, %I, %Q, %R et %W). Dans ce cas le programmeur doit faire pointer la base sur le dbut de la zone vise avec la fonction y_init(..). Les variables %Y permettent daccder un champ De 32767 octets (de %Y0.B %Y7FFF.B). Elles sont utiles par exemple, lorsquun mme traitement doit tre effectu sur des blocs de variables diffrents. De plus, les variables %Y autorise l'adressage indirect ou adressage par pointeur.

REMARQUES Les variables %Y ne sont pas indispensables la programmation et leur utilisation est rserve aux programmeurs expriments. Les variables %Y ne sont pas visualisables sur lcran de la CN et sur loutil de programmation PLCTOOL. Les variables %Y ne sont pas accessibles par requte UNITE. Lorsque lon utilise la fonction y_init(..), on perd la visibilit des ventuelles variables locales du modules.
3.10.2 Adressage indirect - Pointeurs

L'adressage indirect par pointeur est autoris partout ou une variable simple peut tre employe l'exception des index.

ATTENTION

Avant d'utiliser un adressage par pointeur %Yi -> , il faut : que les variables %Y soient dfinies, c'est dire que l'on se trouve dans un %SP appel avec la fonction spy( ) ou que le registre de base des variables %Y ait t dfini par la fonction y_init( ), que le pointeur %Yi.L soit charg avec une adresse valide.
Une variable pointe peut tre associe un mnmonique (Voir Manuel PLCTOOL - Outil de programmation langage ladder). Il est conseill, afin d'optimiser la vitesse, d'utiliser des numros multiples de 4 pour les pointeurs (Ex : %Y0 ->, %Y4 ->, %Y8 ->, %YC ->, .. etc ..). Syntaxe <pointeur> -> <post dplacement> . <taille>

3 - 70

fr-938846/8

Variables

Element du langage <pointeur> <post dplacement> <taille>

Se compose de %Y0 %Y7C 0 ff .0 .7, .B, .W ou .L

Remarque Variable %Y de taille .L (la taille est omise) Valeur imdiate (en hexadcimal) Pour accder une variable sur bit, octet, mot ou long mot

Exemple %Y4 -> 0.5 %Y7c -> ff.B L'adresse de la variable pointe est gale l'adresse contenue dans le pointeur + le post dplacement 0. L'adresse de la variable pointe est gale l'adresse contenue dans le pointeur + le post dplacement 0xff.

3.10.3

Exemples d'utilisation des pointeurs

Traitement d'une chane de caractres %V500.L = "ABCDEF" %Y8.L = %V500.L %Y8 -> 0.B == "A" %Y8 -> 5.B == "F" %Y8.L += 1 %Y8 -> 0.B == "B" // %V500.L contient l'adresse de dbut de la chane ABCDEF // Initialisation du pointeur avec l'adresse dbut de la chane // Accs au premier caractre de la chane // Accs au sixime caractre de la chane // Incrment du pointeur // Accs au deuxime caractre de la chane

Gestion de quatre pupitre machine

REMARQUE : Le programme d'exemple PUPITREP disponible sous PLCTOOL illustre l'utilisation des pointeurs.
Dans un %TS spy(0, %IrcOO.&, %Qrc00.&) Dans %SP0 // %Y0.L contient l'adresse de la premire entre %Irc00 // %Y4.L contient l'adresse de la premire sortie %Qrc00 %Y0 -> 2.0 <==> %Irc2.0 Jog_1 %Y0 -> 2.1 <==> %Irc2.1 Jog_10 %Y0 -> 2.2 <==> %Irc2.2 Jog_100 %Y0 -> 20.W <==> %Irc20.W Potentiomtre de broche %Y0 -> 22.W <==> %Irc22.W Potentiomtre d'avance %Y4 -> 0.0 <==> %Qrc0.0 Led_arus %Y4 -> 0.1 <==> %Qrc0.1 Led_dcy %Y4 -> 1.0 <==> %Qrc1.0 Led_1 %Y4 -> 1.1 <==> %Qrc1.1 Led_10 // Appel de %SP0 (Avec rc == numro du pupitre de 1 4)

fr-938846/8

3 - 71

3.11
3.11.1

Zone dchange
Entres venant de la CN
CAR CLAV %R0.B CAR CLAV %R1.B E_ E_ S_ E_M01 SLASH INTERV RECUL
%R2.7 %R2.6 %R2.5 %R2.4 %R2.3 %R2.2

%R0.W Caractres clavier E_NM AUTO


%R2.1 %R2.0

%R2.B %R2.W Etat machine %R3.B

E_ OPER
%R3.7

E_ DEFCN
%R3.6 %R3.5

E_ E_ DGURG E_RAX CYCLE E_ARUS E_RAZ


%R3.4 %R3.3 %R3.2 %R3.1 %R3.0

%R4.B
%R4.7 %R4.6 %R4.5 %R4.4 %R4.3 %R4.2 %R4.1 %R4.0

E_TR ANSP
%R5.7

E_DEF MAP
%R5.6

E_PPP
%R5.5 %R5.4 %R5.3 %R5.2

E_ PROG
%R5.1

E_CN PRET
%R5.0

%R4.W Etat CN %R5.B

AXMVT 31
%R6.7

AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT 30 29 28 27 26 25 24


%R6.6 %R6.5 %R6.4 %R6.3 %R6.2 %R6.1 %R6.0

%R6.B

AXMVT 23
%R7.7

AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT 22 21 20 19 18 17 16 %R7.B


%R7.6 %R7.5 %R7.4 %R7.3 %R7.2 %R7.1 %R7.0

AXMVT 15
%R8.7

AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT 14 13 12 11 10 9 8 %R8.B


%R8.6 %R8.5 %R8.4 %R8.3 %R8.2 %R8.1 %R8.0

%R6.L Axes en mouvement

AXMVT 7
%R9.7

AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT AXMVT 6 5 4 3 2 1 0


%R9.6 %R9.5 %R9.4 %R9.3 %R9.2 %R9.1 %R9.0

%R9.B

AXINI 31
%RA.7

AXINI 30
%RA.6

AXINI 29
%RA.5

AXINI 28
%RA.4

AXINI 27
%RA.3

AXINI 26
%RA.2

AXINI 25
%RA.1

AXINI 24
%RA.0

%RA.B

AXINI 23
%RB.7

AXINI 22
%RB.6

AXINI 21
%RB.5

AXINI 20
%RB.4

AXINI 19
%RB.3

AXINI 18
%RB.2

AXINI 17
%RB.1

AXINI 16
%RB.0

%RB.B %RA.L Axes initialiss (POM faite) %RC.B

AXINI 15
%RC.7

AXINI 14
%RC.6

AXINI 13
%RC.5

AXINI 12
%RC.4

AXINI 11
%RC.3

AXINI 10
%RC.2

AXINI 9
%RC.1

AXINI 8
%RC.0

AXINI 7
%RD.7

AXINI 6
%RD.6

AXINI 5
%RD.5

AXINI 4
%RD.4

AXINI 3
%RD.3

AXINI 2
%RD.2

AXINI 1
%RD.1

AXINI 0
%RD.0

%RD.B

31
%RE.7

30
%RE.6

29
%RE.5

28
%RE.4

27
%RE.3

26
%RE.2

25
%RE.1

24
%RE.0

%RE.B

23
%RF.7

22
%RF.6

21
%RF.5

20
%RF.4

19
%RF.3

18
%RF.2

17
%RF.1

16
%RF.0

%RF.B %RE.L Paramtres externes E100xx %R10.B

15
%R10.7

14
%R10.6

13

12

11
%R10.3

10
%R10.2

9
%R10.1

8
%R10.0

%R10.5 %R10.4

7
%R11.7

6
%R11.6

3
%R11.3

2
%R11.2

1
%R11.1

0
%R11.0

%R11.B

%R11.5 %R11.4

3 - 72

fr-938846/8

Variables

B4_ARR B3_ARR B2_ARR B1_ARR B4_ROT B3_ROT B2_R0T B1_ROT


%R12.7 %R12.6 %R12.5 %R12.4 %R12.3 %R12.2 %R12.1 %R12.0

%R12.B %R12.W Etat des broches %R13.B

POS BR4
%R13.7 %R13.6 %R13.5 %R13.4 %R13.3

POS BR3
%R13.2

POS BR2
%R13.1

POS BR1
%R13.0

E_BAT
%R14.7 %R14.6 %R14.5 %R14.4 %R14.3 %R14.2 %R14.1

SC_ USED
%R14.0

%R14.B PCNC

E _INCJOG %R15.B Type d'incrment de JOG MODCOUR %R16.B Mode en cours PGVISU %R17.B Numro de page visualis ERRMACH %R18.B Numro d'erreur machine ID_KB_CN %R19.B Identificateur pupitre actif ou CN active PROGCOUR

%R1A.B %R1A.W Numro de programme courant

PROGCOUR %R1B.B VITBR1 %R1C.B %R1C.W Vitesse de broche 1 VITBR1 %R1D.B VITBR2

%R1E.B %R1E.W Vitesse de broche 2

VITBR2 %R1F.B VITBR3 %R20.B %R20.W Vitesse de broche 3 VITBR3 %R21.B

VITBR4 %R22.B %R22.W Vitesse de broche 4 VITBR4 %R23.B

fr-938846/8

3 - 73

31
%R24.7

30
%R24.6

29

28

AXBLK 27
%R24.3

26
%R24.2

25
%R24.1

24
%R24.0

%R24.B

%R24.5 %R24.4

23
%R25.7

22
%R25.6

21

20

AXBLK 19
%R25.3

18
%R25.2

17
%R25.1

16
%R25.0

%R25.B %R24.L Axes blocables %R26.B

%R25.5 %R25.4

15
%R26.7

14
%R26.6

13

12

AXBLK 11
%R26.3

10
%R26.2

9
%R26.1

8
%R26.0

%R26.5 %R26.4

AXBLK 7
%R27.7

6
%R27.6

3
%R27.3

2
%R27.2

1
%R27.1

0
%R27.0

%R27.B

%R27.5 %R27.4

3.11.2

Zone d'change CN - automate "1050"

Pour le variateur numrique d'adresse xx (xx compris entre 00 et 31), le mot d'tat se prsente sous la forme :
CCGM Gamma Position El OK

%REyy.B Mot d'tat variateur @xx %REzz.B

%REyy.2 %REyy.1 %REyy.0

Autocal In

Run OK

Torque OK

Drive Status

Speed OK

Power Rs

Drive Enable

Leam Status

%REzz.7 %REzz.6 %REzz.5 %REzz.4 %REzz.3 %REzz.2 %REzz.1 %REzz.0

Valeurs de yy et zz en fonction de l'adresse du variateur xx : xx yy zz xx yy zz xx yy zz 00 20 21 11 36 37 22 4C 4D 01 22 23 12 38 39 23 4E 4F 02 24 25 13 3A 3B 24 50 51 03 26 27 14 3C 3D 25 52 53 04 28 29 15 3E 3F 26 54 55 05 2A 2B 16 40 41 27 56 57 06 2C 2D 17 42 43 28 58 59 07 2E 2F 18 44 45 29 5A 5B 08 30 31 19 46 47 30 5C 5D 09 32 33 20 48 49 31 5E 5F 10 34 35 21 4A 4B

3 - 74

fr-938846/8

Variables

3.11.3

Sorties vers la CN
CHG_ OPDC C_ INDG
%W2.2

C_NM AUTO
%W2.1

KB_ INIT
%W2.0

%W2.B %W2.W Commandes impulsionnelles %W3.B

%W2.7

%W2.6

%W2.5

%W2.4

%W2.3

C_ C_M01 SLASH
%W3.7 %W3.6

C_ C_ RAZER DGURG
%W3.5 %W3.4

C_ RAX
%W3.3

C_ CYCLE
%W3.2

C_ ARUS
%W3.1

C_ RAZ
%W3.0

V REDUIT
%W4.7

INIB UTIL
%W4.6

C_ UNIT
%W4.5

PRES PUIS
%W4.4

NAR FIB
%W4.3

VIT MAN2
%W4.2

VIT MAN1
%W4.1

AUT AV
%W4.0

%W4.B %W4.W Commandes maintenues %W5.B

SC_ SAVE
%W5.7

SK_ DISPL
%W5.6

INIB CLAV
%W5.5

IM PULS
%W5.4

COR DYN
%W5.3

JOG PUP
%W5.2

MOD PUP
%W5.1

PUP ABS
%W5.0

JOG POS31
%W6.7

JOG POS30
%W6.6

JOG POS29
%W6.5

JOG POS28
%W6.4

JOG JOG POS27 POS26


%W6.3 %W6.2

JOG POS25
%W6.1

JOG POS24 %W6.B


%W6.0

JOG POS23
%W7.7

JOG POS22
%W7.6

JOG POS21
%W7.5

JOG POS20
%W7.4

JOG JOG POS19 POS18


%W7.3 %W7.2

JOG POS17
%W7.1

JOG %W7.B POS16


%W7.0

%W6.L Commandes de JOG positif

JOG POS15
%W8.7

JOG POS14
%W8.6

JOG POS13
%W8.5

JOG POS12
%W8.4

JOG JOG POS11 POS10


%W8.3 %W8.2

JOG POS9
%W8.1

JOG %W8.B POS8


%W8.0

JOG POS7
% W9.7

JOG POS6
%W9.6

JOG POS5
%W9.5

JOG POS4
%W9.4

JOG POS3
%W9.3

JOG POS2
%W9.2

JOG POS1
%W9.1

JOG POS0 %W9.B


%W9.0

JOG JOG NEG31 NEG30


%WA.7 %WA.6

JOG JOG JOG JOG NEG29 NEG28 NEG27 NEG26


%WA.5 %WA.4 %WA.3 %WA.2

JOG NEG25
%WA.1

JOG NEG24 %WA.B


%WA.0

JOG JOG NEG23 NEG22


%WB.7 %WB.6

JOG JOG JOG JOG NEG21 NEG20 NEG19 NEG18


%WB.5 %WB.4 %WB.3 %WB.2

JOG NEG17
%WB.1

JOG NEG16 %WB.B


%WB.0

%WA.L Commandes de JOG ngatif

JOG JOG NEG15 NEG14


%RC.7 %WC.6

JOG JOG JOG JOG NEG13 NEG12 NEG11 NEG10


%WC.5 %WC.4 %WC.3 %WC.2

JOG NEG9
%WC.1

JOG NEG8 %WC.B


%WC.0

JOG NEG7
%WD.7

JOG NEG6
%WD.6

JOG NEG5
%WD.5

JOG NEG4
%WD.4

JOG NEG3
%WD.3

JOG NEG2
%WD.2

JOG NEG1
%WD.1

JOG NEG0 %WD.B


%WD.0

fr-938846/8

3 - 75

31
%WE.7

30
%WE.6

29
%WE.5

28
%WE.4

27
%WE.3

26
%WE.2

25
%WE.1

24
%WE.0

%WE.B

23
%WF.7

22
%WF.6

21
%WF.5

20
%WF.4

19
%WF.3

18
%WF.2

17
%WF.1

16
%WF.0

%WF.B %WE.L Paramtres externes E200xx %W10.B

15

14

13

12

11
%W10.3

10
%W10.2

9
%W10.1

8
%W10.0

%W10.7 %W10.6

%W10.5 %W10.4

3
%W11.3

2
%W11.2

1
%W11.1

0
%W11.0

%W11.B

%W11.7 %W11.6

%W11.5 %W11.4

C INC JOG %W13.B Incrment de JOG MODE DEM %W14.B Mode demand

MSG1 %W15.B Numro de message ligne 1 MSG2 %W16.B Numro de message ligne 2

SELECGR %W17.B Slection du groupe d'axes PROGDEM %W18.B %W18.W Numro de programme demand PROGDEM %W19.B AFMAN1 %W1A.B Affectation manivelle N1 AFMAN2 %W1B.B Affectation manivelle N2 AFMAN3 %W1C.B Affectation manivelle N3 AFMAN4 %W1D.B Affectation manivelle N4 POTBR1 %W1E.B Potentiomtre broche N1 POTBR2 %W1F.B Potentiomtre broche N2 POTBR3 %W20.B Potentiomtre broche N3 POTBR4 %W21.B Potentiomtre broche N4

3 - 76

fr-938846/8

Variables

VER BR4
%W22.7

VER BR3

VER BR2

VER BR1

STOP BR4 COM BR4

STOP BR3
%W22.2

STOP BR2 COM BR2

STOP BR1 COM BR1

%W22.B %W22.W Commande de broche %W23.B %W24.B %W24.W Consigne vitesse broche N1

%W22.6 %W22.5

%W22.4 %W22.3

%W22.1 %W22.0

COM BR3
%W23.2

%W23.7

%W23.6 %W23.5

%W23.4 %W23.3

%W23.1 %W23.0

C _VITBR1

C_VITBR1 %W25.B C_VITBR2 %W26.B %W26.W Consigne vitesse broche N2 C_ VITBR2 %W27.B C_ VITBR3 %W28.B C_ VITBR3 %W29.B C_ VITBR4 %W2A.B %W2A.W Consigne vitesse broche N4 C_ VITBR4 %W2B.B NJG MANIV
%W2C.7 %W2C.6 %W2C.5 %W2C.4 %W2C.3 %W2C.2

%W28.W Consigne vitesse broche N3

NJG 0001 NJG ILLIM I_ DCHG

%W2C.B %W2C.W JOG interdits %W2D.B

%W2C.1 %W2C.0

NJG 001
%W2D.7

NJG 01 I_ PREF I_ SEQ

NJG 1 I_REG OUT

NJG 10

NJG 100

NJG 1000 I_ CHARG

NJG 10000

%W2D.6 %W2D.5 %W2D.4 %W2D.3 %W2D.2

%W2D.1 %W2D.0

I_ POM
%W30.7

%W30.B

%W30.6 %W30.5

%W30.4 %W30.3

%W30.2

%W30.1 %W30.0

I_ CONT
%W31.7

I_ IMD

I_ RAPID

I_ RNS

I_ MODIF
%W31.2

I_ TEST

I_ JOG

%W31.6 %W31.5

%W31.4 %W31.3

%W31.1 %W31.0

%W31.B %W30.L Modes interdits %W32.B

%W32.7

%W32.6 %W32.5

%W32.4 %W32.3

%W32.2

%W32.1 %W32.0

%W33.7

%W33.6 %W33.5

%W33.4 %W33.3

%W33.2

%W33.1 %W33.0

%W33.B

fr-938846/8

3 - 77

DISC_ TQR31 DISC_ TQR23 DISC_ TQR15 DISC_ TQR7

DISC_ TQR30 DISC_ TQR22 DISC_ TQR14 DISC_ TQR6

DISC_ TQR29 DISC_ TQR21 DISC_ TQR13 DISC_ TQR5

DISC_ TQR28 DISC_ TQR20 DISC_ TQR12 DISC_ TQR4

DISC_ DISC_ TQR27 TQR26


%W34.3 %W34.2

DISC_ TQR25
%W34.1

DISC_ TQR24 %W34.B


%W34.0

%W34.7 %W34.6

%W34.5 %W34.4

DISC_ DISC_ TQR19 TQR18


%W35.3 %W35.2

DISC_ TQR17
%W35.1

DISC_ TQR16 %W35.B


%W35.0

%W35.7 %W35.6

%W35.5 %W35.4

%W34.L Validation couple

DISC_ DISC_ TQR11 TQR10


%W36.3 %W36.2

DISC_ TQR9
%W36.1

DISC_ TQR8 %W36.B


%W36.0

%W36.7 %W36.6

%W36.5 %W36.4

DISC_ TQR3
%W37.3

DISC_ TQR2
%W37.2

DISC_ TQR1
%W37.1

DISC_ TQR0 %W37.B


%W37.0

%W37.7 %W37.6

%W37.5 %W37.4

DISC_ SDP %W38.B


%W38.7 %W38.6 %W38.5 %W38.4 %W38.3 %W38.2 %W38.1 %W38.0

RAP_ B_ B_ AUTO RETOUR RECUL %W39.B


%W39.7 %W39.6 %W39.5 %W39.4 %W39.3 %W39.2 %W39.1 %W39.0

31
%W3A.7

30

29

STOPAX 28 27
%W3A.3

26

25

24
%W3A.0

%W3A.B

%W3A.6 %W3A.5 %W3A.4

%W3A.2 %W3A.1

23
%W3B.7

22

21

STOPAX 20 19
%W3B.3

18

17

16
%W3B.0

%W3B.B %W3A.L Arrt d'avance par axe %W3C.B

%W3B.6 %W3B.5 %R25.4

%W3B.2 %W3B.1

15
%W3C.7

14

13

STOPAX 12 11
%W3C.3

10

8
%W3C.0

%W3C.6 %W3C.5 %W3C.4

%W3C.2 %W3C.1

7
%W3D.7

STOPAX 3
%W3D.3

0
%W3D.0

%W3D.B

%W3D.6 %W3D.5 %W3D.4

%W3D.2 %W3D.1

3 - 78

fr-938846/8

Variables

3.11.4
3.11.4.1

Zone d'change automate - CN "1050"


Modulation de couple

Il est possible de rduire dynamiquement le courant maximal par l'automate, slectivement pour chaque variateur numrique.

RDUC _ TRQ00

%WE00.B

3
Rduction dynamique du courant

RDUC _ TRQ31

%WE1F.B

3.11.4.2

Mot de commande variateur

Pour le variateur numrique d'adresse xx (xx compris entre 00 et 31), le mot de commande se prsente sous la forme :
Halt Learning Synch Autocal Oscillat Phasing Indexing Request Request Request Request Request Request Request
%WEyy.7 %WEyy.6 %WEyy.5 %WEyy.4 %WEyy.3 %WEyy.2 %WEyy.1

%WEyy.B Torque Enable Mot de commande variateur @xx %WEzz.B

Spindle El Conf
%WEzz.7

Ref Enable

%WEzz.1 %WEzz.0

Valeurs de yy et zz en fonction de l'adresse du variateur xx : xx yy zz xx yy zz xx yy zz 00 20 21 11 36 37 22 4C 4D 01 22 23 12 38 39 23 4E 4F 02 24 25 13 3A 3B 24 50 51 03 26 27 14 3C 3D 25 52 53 04 28 29 15 3E 3F 26 54 55 05 2A 2B 16 40 41 27 56 57 06 2C 2D 17 42 43 28 58 59 07 2E 2F 18 44 45 29 5A 5B 08 30 31 19 46 47 30 5C 5D 09 32 33 20 48 49 31 5E 5F 10 34 35 21 4A 4B

fr-938846/8

3 - 79

3.11.5

Entres venant des groupes daxes


Dans cette grille, "g" prend la valeur du numro de groupe (De 1 8) E_ M01g E_ E_ SLASHg INTERg E_ DEFg N_ POSg E_DG URGg E_ RAXg E_ CYCLg E_ ARUSg E_ PROGg %Rg00.B E_ RAZg %Rg00.W Etat groupe 1 8 %Rg01.B %Rg02.B N du cycle d'usinage en cours sur groupes 1 8 FILETg RAPIDg %Rg03.B Etat Fonction G sur groupes 1 8

%Rg00.7 %Rg00.6 %Rg00.5 %Rg00.4 %Rg00.3 %Rg00.2 %Rg00.1 %Rg00.0

E_ OPERg

%Rg01.7 %Rg01.6 %Rg01.5 %Rg01.4 %Rg01.3 %Rg01.2 %Rg01.1 %Rg01.0

NUMCYC1 NUMCYC8

%Rg03.7 %Rg03.6 %Rg03.5 %Rg03.4 %Rg03.3 %Rg03.2 %Rg03.1 %Rg03.0

MSSCR1 MSSCR8 %Rg04.B MSSCR1 MSSCR8 %Rg05.B MODCOUR1 MODCOUR8 %Rg06.B Mode en cours sur groupes 1 8 %Rg04.W Fonction M code sans compte rendu "A la vole" sur groupes 1 8

%Rg07.B MCODCR1 MCODCR8 %Rg1E.B MCODCR1 MCODCR8 %Rg1F.B %Rg1E.W Fonction M code avec compte rendu groupes 1 8

M999

M998

M997

M49

M48

M11

M10

%Rg20.B

%Rg20.7 %Rg20.6 %Rg20.5 %Rg20.4 %Rg20.3 %Rg20.2 %Rg20.1 %Rg20.0

M12

M45

M44

M43

M42

M41

M40

%Rg21.B %Rg20.L Fonctions M dcodes groupes 1 8 %Rg22.B

%Rg21.7 %Rg21.6 %Rg21.5 %Rg21.4 %Rg21.3 %Rg21.2 %Rg21.1 %Rg21.0

M19

M09

M08

M07

M06

M05

M04

M03

%Rg22.7 %Rg22.6 %Rg22.5 %Rg22.4%Rg22.3

%Rg22.2 %Rg22.1 %Rg22.0

M61
%Rg23.7 %Rg23.6 %Rg23.5 %Rg23.4%Rg23.3

M02

M01

M00

%Rg23.B

%Rg23.2 %Rg23.1 %Rg23.0

3 - 80

fr-938846/8

Variables

M63

M62

M65

M64

%Rg24.B %Rg24.W Fonctions M dcodes groupes 1 8 (Etat des broches)

%Rg24.7 %Rg24.6 %Rg24.5 %Rg24.4 %Rg24.3 %Rg24.2 %Rg24.1 %Rg24.0

M69 OUTIL1 OUTIL8

M68

M67

M66

%Rg25.B

%Rg25.7 %Rg25.6 %Rg25.5 %Rg25.4 %Rg25.3 %Rg25.2 %Rg25.1 %Rg25.0

%Rg7C.B OUTIL1 OUTIL8 %Rg7D.B OUTIL1 OUTIL8 %Rg7E.B OUTIL1 OUTIL8 %Rg7F.B %Rg7C.L Numro d'outil demand par le groupes 1 8

3.11.6

Sorties vers les groupes daxes


Dans cette grille, "g" prend la valeur du numro de groupe (De 1 8) C_ C_ CRMg APPSSg ARBUTg VALIDg FMEXTg AUTAVg
%Wg00.2 %Wg00.1 %Wg00.0

*C_ C_ MODEg FASTg

% Wg00.B %Wg00.W Commande groupes 1 8 %Wg01.B

%Wg00.7 %Wg00.6 %Wg00.5 %Wg00.4 %Wg00.3

**C_ **C_ M01g SLASHg

C_DG URGg

**C_ RAXg

**C_ C_ CYCLg ARUSg

C_ RAZg

%Wg01.7 %Wg01.6 %Wg01.5 %Wg01.4 %Wg01.3 %Wg01.2 %Wg01.1 %Wg01.0

POTAV1 POTAV8 %Wg02.B Potentiomtre d'avance sur groupes 1 8 * Valide uniquement pour les groupes d'axes automates ** Valide uniquement pour les groupes d'axes CN

MOD-GR1 MOD-GR8 %Wg03.B Mode groupe indpendant 1 8

fr-938846/8

3 - 81

3 - 82

fr-938846/8

Elments littraux du langage ladder

4 Elments littraux du langage ladder

4.1 4.2 4.3 4.4

Notation utilise Label - commentaire Etape Elments littraux des squences rseaux
4.4.1 4.4.2 4.4.3 Entits littrales autorises en zone test dun rseau Entits littrales autorises en zone action dun rseau Grammaire des lments littraux Priorit des oprateurs Priorit des oprateurs unaires Priorit des oprateurs binaires et comparaison Oprateurs de comparaisons Oprateurs >> et << Oprateurs daffectation Oprateurs = Oprateurs combins += -= &= ^= |= Ordre dvaluation des expressions Entiers immdiats Promotion des variables - Format des calculs internes Dbordement - Changement de signe Exemples dentits littrales Longueur maximum dune entit littrale Nombre maximum doprandes dans une expression numrique

4-3 4-3 4-3 4-3 4-3 4-4 4-4 4-5 4-5 4-5 4-5 4-6 4-6 4-6 4-6 4-6 4-7 4-7 4-7 4-9 4-9 4-10 4-10

4.5 Complment sur les lments littraux


4.5.1 4.5.1.1 4.5.1.2 4.5.2 4.5.3 4.5.4 4.5.4.1 4.5.4.2 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.5.10 4.5.11

fr-938846/5

4-1

4-2

fr-938846/5

Elments littraux du langage ladder

4.1

Notation utilise
Fonction Entre crochet signifie 0 ou 1 occurrence de ce quils entourent Entourent les lments non terminaux du langage Les accolades signifient au plus n occurences de ce quils entourent

La notation utilise pour dcrire les lments littraux du langage est la suivante : Caractres [] <> {}n

REMARQUE : Un lment non entour entre < et > est un symbole terminal, un mot cl ou un sparateur.

4.2

Label - commentaire
Se compose de <lettre> ou <chiffre> ou _ <caractre> ou <blanc> Remarque Limit 8 caractres Limit 64 caractres

Elment du langage <label> <commentaire>

4.3
<tape>

Etape
Se compose de <variable_tape> <numro_tape> <variable_tape> <numro_tape> Remarque Variable %M, %V ou %Y de taille .W Entier positif sur 16 bits

Elment du langage

4.4
4.4.1

Elments littraux des squences rseaux


Entits littrales autorises en zone test dun rseau
Se compose de Remarque Variable % .0 .7 Exemple : %V3.0 <expression_numrique> <oprateur_comparaison> <expression_numrique> <variable_numrique> <oprateur_affectation> <expression_numrique> [<variable_numrique> <oprateur_affectation> ] <fonction>

Elment du langage <variable_bit> <comparaison> <affectation_numrique> <appel_fonction>

REMARQUE : Lvaluation de <variable_bit> et <comparaison> fournit un rsultat boolen [1 ou 0].

fr-938846/5

4-3

4.4.2

Entits littrales autorises en zone action dun rseau


Se compose de Variable % .0 .7 <variable_numrique> <oprateur_affectation> <expression_numrique> [<variable_numrique> <oprateur_affectation> ] <fonction> goto( <label> ) call( <label> ) return( [<expression_numrique>] ) Remarque Exemple :%V3.0

Elment du langage <variable_bit> <affectation_numrique> <appel_fonction> <goto_label> <call_label> <return>

Saut au label (interne au module) sans retour possible Saut au label (interne au module) avec retour Retour au module appelant ou au call( <label>)

4.4.3
<fonction>

Grammaire des lments littraux


Se compose de <nom_fonction> ( ) ou <nom_fonction> ( <expression_numrique> ) ou <nom_fonction> ( { <expression_numrique>, }6 <expression_numrique> ) Exemple :printf(...) <numrique_sign> { <oprateur_binaire> <numrique_sign> }n [ <oprateur_unaire> ] <numrique_non_sign> <variable_numrique> ou <entier_immdiat> ou ( <expression_numrique> ) <chiffre> { <chiffre> }9 ou 0x <chiffre_hexa> { <chiffre_hexa> }7 0, 1, 2, 3, 4, 5, 6, 7, 8 ou 9 <chiffre>, a, b, c, d, e, f, A, B, C, D, E ou F Variable % .B ou .W ou .L ou .& == != >= <= > < ~ Pour la dtermination de n (Voir 4.5). Remarque

Elment du langage

<nom_fonction> <expression_numrique>

<numrique_sign> <numrique_non_sign>

<entier_immdiat> <chiffre> <chiffre_hexa> <variable_numrique> <oprateur_comparaison>

base dix base seize

<oprateur_unaire>

Exemple : %V3.L Egal Non gal Suprieur ou gal (comparaison signe) Infrieur ou gal (comparaison signe) Suprieur (comparaison signe) Infrieur (comparaison signe) Ngation de loprande qui suit Inversion bit bit de loprande qui suit

4-4

fr-938846/5

Elments littraux du langage ladder

Elment du langage <oprateur_binaire>

Se compose de * / + << >> & ^ | = += -= &= ^= |=

Remarque Multiplication (signe) Division (signe) Addition Soustraction Dcalage arithmtique vers la gauche Dcalage arithmtique vers la droite ET bit bit OU EXCLUSIF bit bit OU bit bit Affectation simple Addition et affectation Soustraction et affectation ET bit bit et affectation OU EXCLUSIF bit bit et affectation OU bit bit et affectation

<oprateur_affectation>

4.5
4.5.1
4.5.1.1

Complment sur les lments littraux


Priorit des oprateurs
Priorit des oprateurs unaires

La priorit des oprateurs unaires est suprieure celle des oprateurs binaires. Priorit Plus prioritaire Oprateur [] .& ~ Dsignation Indexation Oprateur adresse de Ngation Inversion bit bit

Moins prioritaire 4.5.1.2

Priorit des oprateurs binaires et comparaison

La priorit des oprateurs binaires et comparaison est suprieure celle des oprateurs daffectation. Priorit Plus prioritaire P0 P1 P2 P3 P4 P5 Moins prioritaire P6 Oprateur * / + >> << & ^ | == != >= <= > < Dsignation Multiplication Division Addition Soustraction Dcalage arithmtique droite Dcalage arithmtique gauche ET bit bit OU EXCLUSIF bit bit OU bit bit Oprateurs de comparaison

fr-938846/5

4-5

4.5.2

Oprateurs de comparaisons

Les comparaisons sont des comparaisons signes cest dire que le bit de poids fort de la variable est considr comme un bit de signe. (Les variables ayant le bit de signe 1 sont infrieures aux variables ayant le bit de signe 0).

4.5.3

Oprateurs >> et <<


>> Dcalage arithmtique droite de N modulo 64 bits

Le bit de signe est maintenu

<< Dcalage arithmtique gauche de N modulo 64 bits

0
Remplissage par 0

REMARQUES: Permet de faire des divisions par des puissances de 2 plus rapidement que loprateur / (Var_1 / 2n == Var_1 >> n). Permet de faire des multiplications par des puissances de 2 plus rapidement que loprateur * (Var_1 * 2n == Var_1 << n).
4.5.4 Oprateurs daffectation

Les oprateurs daffectation ont la plus faible priorit. Laffectation est donc effectue en dernier. 4.5.4.1 Oprateurs =

Laffectation simple permet le chargement de la variable gauche avec le rsultat de lexpression numrique ou de la fonction droite de loprateur daffectation = . 4.5.4.2 Oprateurs combins += -= &= ^= |=

Ces oprateurs combinent une opration entre la variable gauche et le rsultat de lexpression droite suivie dune affectation du rsultat final dans la variable gauche. Exemples Var_1 += <expression_numrique> est quivalent : Var_1 = Var_1 + <expression_numrique> Var_1 -= <expression_numrique> est quivalent : Var_1 = Var_1 - <expression_numrique> Var_1 &= <expression_numrique> est quivalent : Var_1 = Var_1 & <expression_numrique> Var_1 ^= <expression_numrique> est quivalent : Var_1 = Var_1 ^ <expression_numrique> Var_1 |= <expression_numrique> est quivalent : Var_1 = Var_1 | <expression_numrique> Les oprateurs combins sont conseills car ils permettent une gnration de codes optimise en vitesse et en taille.

4-6

fr-938846/5

Elments littraux du langage ladder

4.5.5

Ordre dvaluation des expressions

Dans une expression les oprations de plus forte priorit sont excutes avant les oprations de priorit infrieure. Les oprations de mme priorit sont excutes de gauche droite. Les parenthses permettent de modifier lordre dvaluation des expressions en forant lvaluation en premier de lexpression quelles entourent.

4.5.6

Entiers immdiats

Les entiers immdiats sont limits 32 bits. Le systme considre les entiers comme signs , le bit 31 tant le bit de signe. Un entier immdiat doit donc tre compris entre: Nature Entier ngatif en dcimal Entier ngatif en hexadcimal Entier positif en dcimal Entier positif en hexadcimal Valeur de -2147483648 -1 de 0x80000000 0xFFFFFFFF de 0 2147483647 de 0x0 0x7FFFFFFF

4.5.7

Promotion des variables - Format des calculs internes

Le systme considre toutes les variables comme signes. Variable sur octet Le bit 7 indique le signe. -128 valeur dun octet + 127 Variable sur mot Le bit 15 indique le signe. -32768 valeur dun mot + 32767. Variable sur long mot Le bit 31 indique le signe. -2147483648 (-231) valeur dun long mot +2147483647 (231 - 1 ). Fonctionnement Lorsque une variable est utilise dans un calcul, elle est dabord charge dans un registre du microprocesseur. Si la variable charge tait un octet , le systme propage alors le bit 7 du registre sur les bits 8 31. Si la variable charge tait un mot , le systme propage alors le bit 15 du registre sur les bits 16 31. Les calculs sont ensuite effectus avec les registres de 32 bits et gnrent un rsultat sur 32 bits. Ce rsultat est alors charg dans la variable destination : - si la variable destination est un long mot alors les 32 bits du registre rsultat lui sont affects, - si la variable destination est un mot alors les 16 bits de poids faible du registre rsultat lui sont affects, - si la variable destination est un octet alors les 8 bits de poids faible du registre rsultat lui sont affects.

fr-938846/5

4-7

Pige viter Les comparaisons entre variables (Octets et mots signs) et valeurs imdiates sont une source d'erreur frquente. Exemple Var.B == 128.

Var.B 1 0 0 0 0 0 0 0 == 128 Propagation du Bit 7 du registre 0xFF 0xFF 0xFF 0x80 Registre D0 (Sur 32 bits) Registre D1 (Sur 32 bits) D0 ! = D1
L'galit entre la variable Var.B et la valeur imdiate 128 n'est jamais ralise. L'galit peut tre ralise en utilisant un masque et en crivant : Var.B & 0xFF == 128.
Var.B 1 0 0 0 0 0 0 0 & 0xFF 1 1 1 1 1 1 1 1 == 128 Propagation du Bit 7 du registre 0xFF 0xFF 0xFF 0x80 Registre D0 (Sur 32 bits) Registre D1 (Sur 32 bits) D0 & D1 -> D0 Registre D0 (Sur 32 bits) Registre D1 (Sur 32 bits) D0 = = D1 Valeur immdiate

Valeur immdiate

0x00

0x00

0x00

0x80

0x00

0x00

0x00

0xFF

0x00

0x00

0x00

0x80

0x00

0x00

0x00

0x80

4-8

fr-938846/5

Elments littraux du langage ladder

4.5.8

Dbordement - Changement de signe

Le systme neffectue pas de contrle de dbordement. Cest donc au programmeur de prendre les prcautions ncessaires. Exemple de changement de signe %M100.B et %M101.B sont deux variables sur octet qui valent toutes les deux 0x7F (soit +127). Laffectation :%Var.xx = %M100.B + %M101.B donne :

%M100.B (0x7F) + %M101.B (0x7F) == Var.xx

0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1

Propagation du Bit 7 du registre 0x00 0x00 Propagation du Bit 7 du registre 0x00 0x00 0x00 0x7F Registre D1 (Sur 32 bits) D0 + D1 -> D0 Rsultat D0 (Sur 32 bits) 0x00 0x7F Registre D0 (Sur 32 bits)

0x00

0x00

0x00

0xFE

Var.B est charge avec 0xFE. Le bit 7 (Signe) tant 1, Var.B== -2 (Rsultat incorrect) 1 1 1 1 1 1 1 0

Var.W est charge avec 0x00FE. Le bit 15 (Signe) tant 0, Var.W == 254 (Rsultat correct) Var.L est charge avec 0x000000FE. Le bit 31 (Signe) tant 0, Var.L == 254 (Rsultat correct) 0x00

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0

0x00

0x00

0xFE

4.5.9

Exemples dentits littrales

Comparaisons - %M5.B + %V33.L == %M10.W - (Var_1 << 4 ^ 0x3) << %M10.B >= -( (Var_6 & 0xF5) + ( Var_3 & %M5.W)) - %I900.W & 1 << %V100.B != 0 // Test du bit N %V100.B de %I900.W (Voir 5.2.7.4). Affectations numriques - %M5.B = %M33.L - %M10.W - Var_1 = -%M10.B + ~( 0xF5 - (Var_3 << %M5.W)) - Reste = Dividende - Dividende/Diviseur*Diviseur // calcul du reste dune division entire

fr-938846/5

4-9

Appels fonction valides - Var_1.L = printf( CHAINE_1, %M45.W << 4, %M100.L, (Var_4 & 0x33) + %M200.W); - printf( %M250.L, %M45.W << 4, %M100.L, (Var_4 & 0x33) + %M200.W);

4.5.10

Longueur maximum dune entit littrale

La longueur maximum dune entit littrale est LGM_LITTERAL (soit 120 caractres).

4.5.11

Nombre maximum doprandes dans une expression numrique

Indpendamment de la longueur maximum de lexpression, le nombre maximum doprandes autoriss dans une expression numrique est limit par un autre critre: le nombre maximum de stockage NBM_DATA_REG (soit 5). Ce dpassement est signal lors de la compilation par le message Erreur Nb maximum data register. Exemple Lexpression numrique : Var_1 | Var_2 ^ Var_3 >> 8 + Var_4 * Var_5 qui gnre la pile post fixe ci-dessous est refuse par le compilateur car le nombre maximum de stockage est dpass. Var_1 Var_2 Var_3 8 Var_4 Var_5 * + >> ^ | 1 stockage 2 stockage 3 stockage 4 stockage 5 stockage 6 stockage * Erreur, plus de 5 niveaux de stockage 5 stockage 4 stockage 3 stockage 2 stockage 1 stockage

Dans ce cas particulier une rorganisation de lexpression permet de raliser le calcul, en effet lexpression quivalente : Var_3 >> Var_5 * Var_4 + 8 ^ Var_2 | Var_1 qui gnre la pile post fixe ci-dessous est accepte par le compilateur. Var_3 Var_5 Var_4 * 8 + >> Var_2 ^ Var_1 | 1 stockage 2 stockage 3 stockage 2 stockage 3 stockage 2 stockage 1 stockage 2 stockage 1 stockage 2 stockage 1 stockage

4 - 10

fr-938846/5

Programmation ladder

5 Programmation ladder

5.1 Elments communs tous les types de squence


5.1.1 5.1.2 5.1.2.1 5.1.2.2 5.1.2.3 5.1.2.4 En-tte de squence Etape grafcet Prsentation Traitement des tapes grafcet par le systme Activation/dactivation des tapes grafcet Exemples de programmation Prsentation Structure de la zone de test Prsentation Les contacts Les actions conditionnelles dans la zone test Temporisations Compteurs/dcompteurs Les drivations Excution dune zone test Structure de la zone action Prsentation Excution dune zone action Rgle de construction dun rseau Exemple de squences rseau Conseils de programmation Optimisation des rseaux Liste de bits en zone test Affectations numriques multiples Test des bits d'un octet, mot ou long mot

5-3 5-3 5-3 5-3 5-3 5-4 5-4 5-7 5-7 5-7 5-7 5-7 5-9 5-10 5-12 5-14 5-14 5-15 5-15 5-16 5-18 5-18 5-21 5-21 5-22 5-24 5-25 5-26 5-26

5.2 La squence rseau


5.2.1 5.2.2 5.2.2.1 5.2.2.2 5.2.2.3 5.2.2.4 5.2.2.5 5.2.2.6 5.2.2.7 5.2.3 5.2.3.1 5.2.4 5.2.5 5.2.6 5.2.7 5.2.7.1 5.2.7.2 5.2.7.3 5.2.7.4

5.3 Appel dune fonction 5.4 Contrle des paramtres

fr-938846/3

5-1

5-2

fr-938846/3

Programmation ladder

5.1
5.1.1

Elments communs tous les types de squence


En-tte de squence

Les squences de type tableau de constantes, chanes de caractres ou rseau possdent une en-tte commune compose : - dun identificateur de squence facultatif appel label (Voir 4.2) - dun commentaire facultatif (Voir 4.2) - dune tape grafcet facultative (Voir 4.3).

5.1.2

Etape grafcet

Les tapes grafcet permettent daugmenter la vitesse dexcution dun programme. En effet toutes les squences non actives ne sont pas excutes. Elles permettent de spcifier le logiciel suivant une mthodologie grafcet. Si toutes les actions dune tape grafcet ne peuvent tre programmes dans une mme squence, le programmeur peut crire autant de squences quil le souhaite avec la mme tape. 5.1.2.1 Prsentation

Une squence avec tape grafcet possde deux tats : - active lorsque <variable_tape> == <numro_tape>, - inactive lorsque <variable_tape> != <numro_tape>. 5.1.2.2 Traitement des tapes grafcet par le systme

Lorsquune squence avec tape grafcet est active alors le systme lexcute comme une squence sans tape. Lorsquune squence avec tape grafcet nest pas active alors le systme ne lexcute pas.

%M2.W == 5 ? (Test systme)

NON

OUI Label commentaire %M2.W 5

fr-938846/3

5-3

5.1.2.3

Activation/dactivation des tapes grafcet

Lactivation (dsactivation) des squences avec tapes se fait par programmation en chargeant la variable <variable_tape> avec lentier correspondant (aux) squence(s) activer. 5.1.2.4 Exemples de programmation

Spcification selon la mthodologie grafcet

Etape 0 %M1.W == 0

Attente en A

Dpart cycle si DCY et SECURITE

Etape 1 %M1.W == 1

Mouvement A --> B

Bute B atteinte

Etape 2 %M1.W == 2

Mouvement B --> C

Bute C atteinte

Etape 3 %M1.W == 3

Mouvement C --> A

Bute A atteinte

5-4

fr-938846/3

Programmation ladder

fr-938846/3

5-5

5-6

fr-938846/3

Programmation ladder

5.2
5.2.1

La squence rseau
Prsentation

Un rseau de contacts est compos : - dun label facultatif et dun commentaire facultatif, - dune tape grafcet facultative, - dune zone de test, - dune zone daction.

5.2.2
5.2.2.1

Structure de la zone de test


Prsentation

La zone test occupe la partie gauche du rseau. La zone test permet de saisir des quations logiques. Une quation logique est une combinaison de contacts en parallle ou en srie. Un contact est un boolen rsultat : - du test dune ou plusieurs variables sur bit, - du test du front montant ou descendant du fil dentre, - dune comparaison entre deux expressions numriques, La zone test est compose de 6 fils sur chacun desquels on peut brancher 6 contacts. Ltat du fil la sortie dun contact dpend de ltat du fil lentre du contact et du rsultat du test. Si ce rsultat est FAUX alors le fil correspondant est mis ZERO. Sinon ltat du fil nest pas chang. Des actions conditionnelles sont autorises dans la zone test. Ces actions sont conditionnes par ltat du fil dentre et ne modifie pas le fil de sortie. Il est possible de mettre des fils en drivation. Une drivation est symbolise par une barre verticale. 5.2.2.2 Les contacts

Il y a cinq types de contacts : Type de contact <variable bit> {,<variable bit>}7 ] [ <variable bit> {,<variable bit>}7 ] / [ <variable bit> R_T Description Testent ltat UN dune liste de variable sur bit. SI tous les bits sont UN alors fil de sortie == fil dentre. SINON mise ZERO du fil de sortie. Testent ltat ZERO dune liste de variable sur bit. SI tous les bits sont ZERO alors fil de sortie == fil dentre. SINON mise ZERO du fil de sortie. Dtecte le front montant du fil dentre (RISING TRIG) Permet de mmoriser ltat du fil dentre. SI le fil dentre est UN et <variable bit> ZERO alors mise UN du fil de sortie. SINON mise ZERO du fil de sortie. <variable bit> = fil dentre (Mmorisation du fil dentre).

fr-938846/3

5-7

Type de contact <variable bit> F_T

Description Dtecte le front descendant du fil dentre (FALLING TRIG) Permet de mmoriser ltat du fil dentre. SI le fil dentre est ZERO et <variable bit> UN alors mise UN du fil de sortie. SINON mise ZERO du fil de sortie. <variable bit> = fil dentre (Mmorisation du fil dentre). Permet la comparaison de deux expressions numriques. SI la comparaison numrique est VRAI alors fil de sortie == fil dentre. SINON mise ZERO du fil de sortie.

<comparaison_numrique> [ > ]

Fonctionnement de la cellule R_T (Rising trig) Fil Mmoire Fil entre R_T sortie Si (Entre == 1 et Mmoire == 0) alors Sortie = 1 Sinon Sortie = 0 Mmoire = Entre Fonctionnement de la cellule F_T (Falling trig) Fil Mmoire Fil entre F_T sortie Si (Entre == 0 et Mmoire == 1) alors Sortie = 1 Sinon Sortie = 0 Mmoire = Entre

5-8

fr-938846/3

Programmation ladder

Exemple

5.2.2.3

Les actions conditionnelles dans la zone test

Il y a deux types dactions : Type daction <affectation_numrique> {;<affectation_numrique>}7 <appel_fonction> T <affectation_numrique> {;<affectation_numrique>}7 <appel_fonction> F Description Action excute si le fil dentre est UN. Les actions possible sont : - <affectation_numrique> Ex :%M10.B = %V34+3 - <appel_fonction> ex :setb(%M100.&,0,100) Action excute si le fil dentre est ZERO. Les actions possible sont : - <affectation_numrique> Ex :%M10.B = %V34+3 - <appel_fonction> ex :setb(%M100.&,0,100)

fr-938846/3

5-9

Exemple

5.2.2.4

Temporisations

Trois types de blocs fonction temporisation sont disponibles : - les temporisations de dclenchement TOF_n, - les temporisations d'enclenchement TON_n, - les temporisations d'impulsions TP_n. 128 temporisations (Tous types confondus) sont disponibles. Les variables %T0.L %T7F.L contiennent la valeur courante de la temporisation en ms. Seule la taille .L est autorise en programmation et en lecture par UNITE. Les variables %TQ0.7 %TQ7F.7 sont l'image de la sortie temporisation (Q). Seul le bit .7 est autoris en programmation et en lecture par UNITE. Type de temporisation TOF_n(<seuil>) Description Temporisation de dclenchement (Avec n de 00 7F) La mise 1 de E positionne la sortie Q 1 pour une dure indtermin. La mise 0 de E positionne la sortie Q 0 aprs la temporisation. L'argument seuil est une expression numrique qui s'exprime en ms Temporisation d'enclenchement (Avec n de 00 7F) La mise 1 de E positionne la sortie Q 1 en fin de temporisation.Q retombe ds que E = 0. L'argument seuil est une expression numrique qui s'exprime en ms Temporisation d'impulsion (Avec n de 00 7F) La mise 1 de E positionne la sortie Q 1 pendant la temporisation.Q retombe aprs la temporisation. L'argument seuil est une expression numrique qui s'exprime en ms

TON_n(<seuil>)

E
TP_n(<seuil>)
E

5 - 10

fr-938846/7

Programmation ladder

Temporisation de dclenchement TOF_n


1

Seuil

Seuil

Q %TQxx.7 Seuil

%Txx.L

5
Temporisation d'enclenchement TON_n
1

0 Seuil

Seuil

Q %TQxx.7 Seuil

%Txx.L

Temporisation d'impulsion TP_n


1

Seuil

Q %TQxx.7 Seuil

%Txx.L

fr-938846/3

5 - 11

Exemple

5.2.2.5

Compteurs/dcompteurs

Deux types de blocs fonction compteur/dcompteur sont disponibles : - les compteurs CTU_n, - les dcompteur CTD_n. 128 compteurs/dcompteurs sont disponibles. Les variables %C0.L %C7F.L contiennent la valeur courante du compteur/dcompteur. Seule la taille .L est autorise en programmation et en lecture par UNITE. Les variables %CQ0.7 %CQ7F.7 sont l'image de la sortie compteur/dcompteur (Q). Seul le bit .7 est autoris en programmation et en lecture par UNITE.

REMARQUE:

Les compteurs/dcompteurs sont rinitialiss uniquement sur une RAZ des variables sauvegardes.
Description Compteur (Avec n de 00 7F) La mise 1 de E positionne la sortie Q 1 ds que le seuil est atteint. La mise 0 de E positionne la sortie Q 0. C dfinit les lments compter. L'argument seuil est une expression numrique. Dcompteur (Avec n de 00 7F) La mise 1 de E positionne la sortie Q 1 ds que le seuil est atteint. La mise 0 de E positionne la sortie Q 0. C dfinit les lments dcompter. L'argument seuil est une expression numrique.

Type de compteur/dcompteur CTU_n(<seuil>) E Q


C

CTD_n(<seuil>) E Q

5 - 12

fr-938846/7

Programmation ladder

Compteurs
1

Q %CQxx.7 Seuil

%Cxx.L

Dcompteurs

Q %CQxx.7 Seuil

%Cxx.L

fr-938846/8

5 - 13

Exemple

5.2.2.6

Les drivations

Il est possible de mettre en drivation des fils adjacents. Une drivation est matrialise par une barre verticale aprs un contact ou un fil. 5.2.2.7 Excution dune zone test

A lintrieur de la zone test la scrutation se fait de haut en bas et de gauche droite. Sur un fil la propagation du potentiel se fait de gauche droite mais jamais de droite gauche (contrairement un schma lectrique o la propagation se fait dans les deux sens). Sur une drivation la propagation se fait de bas en haut et de haut en bas.

5 - 14

fr-938846/3

Programmation ladder

5.2.3
5.2.3.1

Structure de la zone action


Prsentation

La zone action est situe droite du rseau. Elle permet le dclenchement conditionnel d actions suivants les rsultats logiques de la zone test. Six actions conditionnes par les six fils de la zone test peuvent tre dclenches dans une squence. Il y a six types dactions possibles. Les actions Les six fils permettent de dclencher six actions parmi les suivantes: Type de daction <variable_bit> ( ) <variable_bit> ( / ) <variable_bit> ( S ) <variable_bit> ( R ) Description Positionnement du bit ltat logique du fil. Positionnement du bit ltat logique inverse du fil. SI fil VRAI alors mise un du bit. SINON passage action suivante. SI fil VRAI alors mise zro du bit. SINON passage action suivante.

<affectation_numrique> {;<affectation_numrique>}7 <appel_fonction> SI fil VRAI alors excution : goto(<label>) call(<label>) return(...) - dune ou plusieurs affectations numriques ex: %M10.B = %V34+3 ( T ) - dun appel fonction ex: setb (%M100.&,0,100) - dun saut un label interne au module ex: goto (FIN) - dun appel un label interne au module ex: call (COPIE) - dun return au module ou au call appelant ex: return (%M10.B) SINON passage action suivante. <affectation_numrique> {;<affectation_numrique>}7 <appel_fonction> SI fil FAUX alors excution: goto(<label>) call(<label>) return(...) - dune ou plusieurs affectations numriques ex: %M10.B = %V34+3 ( F ) - dun appel fonction ex: setb (%M100.&,0,100) - dun saut un label interne au module ex: goto (FIN) - dun appel un label interne au module ex: call (COPIE) - dun return au module ou au call appelant ex: return (%M10.B) SINON passage action suivante.

REMARQUE : lappel un sous programme externe au module (ex %SP30) se fait par la fonction sp(.....).

fr-938846/3

5 - 15

5.2.4

Excution dune zone action

Lexcution de la zone action se fait aprs lexcution de la zone test et de haut en bas (du fil 0 au fil 5).

ATTENTION

Une action est toujours excute aprs la zone test. Le changement dtat dune variable, dans la zone action, ne sera vu que dans la squence suivante.
Ordre de scrutation dun rseau LADDER

Composant prcdent

%Mxx.W

Non Oui

Composant suivant

5 - 16

fr-938846/3

Programmation ladder

Pige li la scrutation Dans l'exemple ci-dessous, le systme effectue la lecture de la comparaison numrique Var_3 == 100 avant l'criture de Var_3 = 100 en zone action et si les conditions de la premire ligne de contacts sont ralises. Il y aura donc un dcalage d'un cycle automate entre l'criture de Var_3 = 100 et l'ventuelle ralisation de la deuxime ligne de contacts.

Il est donc important de contrler que l'ordre de scrutation n'a pas d'incidence sur le droulement d'un programme dont les traitements doivent tre excuts sur le mme cycle automate.

fr-938846/3

5 - 17

5.2.5

Rgle de construction dun rseau

Pour tre valide un rseau doit respecter les rgles suivantes : - la zone test dun rseau ne doit pas tre vide, - un contact ou un fil doit tre reli cot gauche et cot droit par un contact, un fil ou une drivation, - une drivation ou un ensemble de drivation contigu doit tre relie en haut et en bas au moins un contact ou un fil. De plus elle doit tre connecte au moins une alimentation en courant, cest dire un contact ou un fil venant de sa gauche et au moins une sortie de courant cest dire un contact ou un fil partant vers la droite, - la zone action dun rseau ne doit pas tre vide, - une bobine doit tre connecte sur sa gauche par un contact, un fil ou une drivation,

5.2.6

Exemple de squences rseau

Rseau valide

5 - 18

fr-938846/3

Programmation ladder

Rseau invalide - Drivation sans alimentation

Rseau invalide - Drivation sans sortie

fr-938846/3

5 - 19

Recherche d'outils dans un magasin

La squence ci-dessus dtermine le sens de rotation et le nombre de pas pour aller chercher loutil lemplacement Arrive en partant de lemplacement Dpart dans un magasin doutils rotatif comportant un nombre demplacement gal Nb_case. La valeur absolue de Rotation indique le nombre de pas de la rotation, le signe de Rotation indique le sens. La squence ci-dessous utilise la fonction qcktool() pour rsoudre ce problme.

5 - 20

fr-938846/3

Programmation ladder

5.2.7
5.2.7.1

Conseils de programmation
Optimisation des rseaux

Pour obtenir un rseau optimis en taille de code et en vitesse il faut minimiser : - le nombre de contacts, - le nombre de drivations (Barres verticales). Rseau non optimis

Rseau optimis - 48 octets de moins que le rseau non optimis

fr-938846/3

5 - 21

5.2.7.2

Liste de bits en zone test

Les listes de bits permettent d'optimiser les rseaux en taille et en vitesse. L'organigrame ci-dessous donne le principe de traitement d'une liste de bits par le systme. Ds qu'un bit n'est pas vrai, le systme saute les tests des bits suivants.

Non

Bit N 1 Vrai

Oui

Non

Bit N 2 Vrai

Oui

Bit N n Vrai

Oui

Non

Fil sortie = 0

5 - 22

fr-938846/5

Programmation ladder

Rseau non optimis

Rseau optimis - 20 octets de moins que le rseau non optimis

fr-938846/3

5 - 23

5.2.7.3

Affectations numriques multiples

Les affectations numriques multiples permettent d'optimiser les rseaux en taille et en vitesse. Rseau non optimis

Rseau optimis - 12 octets de moins que le rseau non optimis

5 - 24

fr-938846/3

Programmation ladder

5.2.7.4

Test des bits d'un octet, mot ou long mot

Ces squences permettent de tester tous les bits de la variable %I900.W. Squence 1 - Initialisation de l'index %V100.B

Squence 2 - Test de chaque bit de %I900.W Dcalage arithmtique de la valeur 1 vers la gauche d'une valeur contenue dans %V100.B puis ET logique avec %I900.W (Si %V100.B == 0, test du bit 0 de %I900.W, si %V100.B == 1, test du bit 1 de %I900.W, .. etc ..).Rsultat diffrent de 0. La bobine TRUE est active si le bit test est gal 1. La bobine FASE est active si le bit test est gal 0.

fr-938846/3

5 - 25

Squence 3 - Incrmentation de l'index %V100.B et retour dans la boucle si %V100.B < 16

5.3

Appel dune fonction

Le langage ladder permet lappel de fonctions. La syntaxe est la suivante : [<variable_numrique> <oprateur_affectation> ] <nom_fonction> ( [<expression_numrique>] { ,<expression_numrique>}6 ) Laffectation numrique gauche du nom de la fonction est facultative. Elle permet de rcuprer le code retourn par la fonction lorsque le programmeur le juge utile. Exemples dappels de fonctions : %M100.L = atoi(%M20.L) bit(%M20.&, M30.&, 8); cpyb(%V100.&, %V100.& + %M10.B, %V110.W + 10) // %M100.L reoit le rsultat de la conversion // Ici le code retourn est perdu // Ici le code retourn est perdu

5.4

Contrle des paramtres

Le nombre de paramtres passs est contrl la compilation. La valeur des paramtres passs ne peut tre contrle la compilation. Le moniteur effectue certains contrles lors de lappel de la fonction, avant son excution.

5 - 26

fr-938846/3

6 Fonctions d'usage gnral

6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 6.23 6.24 6.25 6.26

Conversion dune chane ASCII en entier sign sur 32 bits Conversion dune chane ASCII en entier sign sur 32 bits Transcodage BCD > binaire Transcodage binaire > BCD Eclatement BIT > octet Lecture des paramtres stocks dans la pile Copie dun ou plusieurs octets Copie dun ou plusieurs mots Copie dun ou plusieurs long mots Fixe la priode de lauto-test Conversion dune valeur entire signe en chane ASCII Conversion dune valeur entire non signe en chane ASCII Concatnation OCTet > bit Simulation du clavier du pupitre Recherche circulaire optimale Recherche de la valeur dun octet Recherche de la valeur dun mot Recherche de la valeur dun long mot Retour au module ou au rseau appelant Saut un label du module sans retour Saut un label du module avec retour Smaphore Ecriture dun ou plusieurs octets Ecriture dun ou plusieurs mots Ecriture dun ou plusieurs long mots Appel de modules %SP
6.26.1 6.26.2

atoi atoj bcd_bin bin_bcd bit cpyarg cpyb cpyw cpyl diagiq itoa itostr oct putkey qcktool rchb rchw rchl return goto call sema setb setw setl

6-3 6-4 6-5 6-6 6-7 6-8 6-9 6-10 6-11 6-11 6-12 6-12 6-13 6-15 6-15 6-16 6-16 6-17 6-18 6-19 6-19 6-20 6-20 6-21 6-22 6-22 6-22 6-23 6-24 6-25 6-25 6-26 6-27 6-27 6-28 6-29

Appel dun module %SP sp Appel dun module %SP avec variables spy locales %Y

6.27 6.28 6.29 6.30 6.31 6.32 6.33 6.34

Formatage dune chane de caractres Racine carre entire Analyse dune chane ASCII Comparaison dune chane de caractres Copie dune chane de caractres Calcul de la longueur dune chane Echange des octets dun mot Echange des quatre octets dun long mot

sprintf sqrt sscanf strcmp strcpy strlen swapw swapl

fr-938846/7

6-1

6.35 6.36 6.37 6.38

Correction dynamique dun outil Lecture de n variables E42000 Ecriture de n variables E42000 Initialisation de la base associe aux variables %Y

tooldyn R_E42000 W_E42000 y_init

6-30 6-31 6-32 6-33

6-2

fr-938846/7

Fonctions d'usage gnral

6.1

Conversion dune chane ASCII en entier sign sur 32 bits

atoi

Syntaxe de linstruction atoi( &source )

&source :

Adresse de la chane ASCII convertir.

Retourne un entier sign sur 32 bits rsultat de la conversion de la chane ASCII. Fonctionnement La fonction atoi() prend les chiffres dcimaux en partant de la gauche. Les blancs et les caractres de tabulation en tte sont ignors. Un signe ventuel (+ ou -) peut tre plac , permettant dobtenir un rsultat sign. La conversion sarrte la dtection dun octet NUL ou dun caractre autre quun chiffre dcimal. En cas de dbordement, la fonction atoi retourne la valeur positive maximum dun entier sign sur 32 bits soit 0x7FFFFFFF. Code retourn Si OK Entier sign sur 32 bits rsultat de la conversion. Si dfaut 0x7FFFFFFF : La conversion a dbord du champ dun entier sign sur 32 bits.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - fin de chane hors zone autorise.

fr-938846/7

6-3

6.2

Conversion dune chane ASCII en entier sign sur 32 bits

atoj

Syntaxe de linstruction atoj(&&fin, &source )

&&fin : &source :

Adresse du long mot (%M ou %V) qui va recevoir ladresse du caractre sur lequel sest arrt la conversion. Adresse de la chane ASCII convertir.

Retourne un entier sign sur 32 bits rsultat de la conversion de la chane ASCII. Fonctionnement La conversion sarrte la dtection dun octet NUL ou dun caractre autre quun chiffre dcimal. Fonctionnement identique la fonction atoi(). La fonction atoj() crit dans le long mot ladresse &&fin ladresse du caractre sur lequel sest arrte la conversion ou zro si fin de la chane atteinte. En cas de dbordement, atoj () retourne la valeur positive maximum dun entier sign sur 32 bits soit 0x7FFFFFFF. Le long mot dadresse &&fin reoit : - 0 si la conversion sest arrte sur un octet NUL de fin de chane, - ladresse du caractre (non NUL) sur lequel sest arrte la conversion, - -1 si dbordement. Code retourn Si OK Entier sign sur 32 bits rsultat de la conversion. Si dfaut 0x7FFFFFFF : La conversion a dbord du champ dun entier sign sur 32 bits.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - paramtre "&&fin" incorrect, - fin de chane hors zone autorise.

6-4

fr-938846/7

Fonctions d'usage gnral

6.3

Transcodage BCD > binaire

bcd_bin

Syntaxe de l'instruction bcd_bin (codage_BCD)

Codage : Fonctionnement

Oprande ou expression numrique cod en BCD.

L'oprande , considr comme sign , est tendu sur 32 bits avant d'tre plac sur la pile. Le transcodage ne peut s'effectuer que sur un oprande dont chaque quartet ne dpasse pas la valeur 9 (codage en BCD). Si une erreur est dtecte , la fonction retourne - 1. Exemple: %V0.L=bcd_bin(%V4.L) %V4.L contient la valeur 12345678 code en BCD , Reprsentation mmoire de %V4.L : 0001-0010-0011-0100-0101-0110-0111-1000 1 12345678 = = 0xBC614E Reprsentation mmoire de %V0.L : 0000-0000-1011-1100-0110-0001-0100-1110 0 0 B C 6 1 4 E 2 3 4 5 6 7 8

ATTENTION

Lorsque l'oprande BCD est sur 8 ou 16 bits , afin de ne pas propager le bit de signe si le dernier quartet est > 8 , il faut masquer le paramtre avec la valeur 0xFF ou 0xFFFF. ex : bcd_bin(%V0.B & 0xFF) ; bcd_bin(%V0.W & 0xFFFF)
Code retourn Si OK Rsultat du transcodage Si dfaut - 1 : oprande non cod en BCD - un des quartets > 9

fr-938846/7

6-5

6.4

Transcodage binaire > BCD

bin_bcd

Syntaxe de linstruction bin_bcd(codage_binaire)

Codage_binaire : Fonctionnement

Oprande ou expression numrique cod en binaire.

L'oprande considr comme sign peut tre de taille 8 , 16 ou 32 bits. Il est tendu sur 32 bits avant d'tre plac sur la pile. Le transcodage ne peut s'effectuer que sur un oprande compris entre 0 et 99999999. Dans le cas contraire , le transcodage est erron et la fonction retourne -1. Exemples : %V0.W=bin_bcd(1234) 1234==0x4D2 reprsentation en mmoire : 0000-0100-1101-0010 0 %V0.W reprsentation mmoire 4 D 2

0001-0010-0011-0100 1 2 3 4

%V0.L=bin_bcd(12345678) 12345678==0xBC614E reprsentation en mmoire 0000-0000-1011-1100-0110-0001-0100-1110 0 %V0.L reprsentation en mmoire 0 B C 6 1 4 E

0001-0010-0011-0100-0101-0110-0111-1000 1 2 3 4 5 6 7 8

Code retourn Si OK Rsultat du transcodage Si dfaut - 1 : oprande non compris entre 0 et 99999999

6-6

fr-938846/7

Fonctions d'usage gnral

6.5

Eclatement BIT > octet

bit

Syntaxe de linstruction bit(&dest, &source, n )

&dest : &source : n:

Adresse du premier octet destination. Adresse du premier octet clater. Nombre d'octets clater.

Eclatement de n octets en partant du bit 0 de ladresse &source dans les bits de poids fort de 8xn octets dbutant ladresse &dest. Fonctionnement Le bit 0 de loctet ladresse &source est recopi dans le bit 7 de loctet ladresse &dest; les 7 autres bits sont mis 0. Le bit 1 de loctet ladresse &source est recopi dans le bit 7 de loctet ladresse &dest + 1; les 7 autres bits sont mis 0. Le bit 0 de loctet ladresse &source + 1 est recopi dans le bit 7 de loctet ladresse &dest + 8; les 7 autres bits sont mis 0. Jusqu lclatement de n octets

REMARQUE : La fonction oct() effectue lopration inverse (Voir 6.13)


Exemple bit(%M30.&,%M20.&, 1)

%M20.B

1 Bit 7

1 Bit 0 1 Bit 7 0 Bit 7 1 Bit 7 1 Bit 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit 0 0 Bit 0 0 Bit 0 0 Bit 0

%M30.B %M31.B %M32.B

%M37.B

fr-938846/7

6-7

Code retourn Si OK Non significatif Si dfaut -1 : n ngatif Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - paramtre "&dest" incorrect, - "&source+n" hors zone autorise - "&dest+n" hors zone autorise.

6.6

Lecture des paramtres stocks dans la pile

cpyarg

Syntaxe de linstruction cpyarg( &dest, n )

&dest : n:

Adresse dun bloc mmoire dans lequel le systme recopie les arguments. Nombre darguments recopier (6 maximum).

Copie partir de ladresse &dest n arguments stocks au sommet de la pile lors de lappel du module par sp(). Fonctionnement Chaque argument occupe 32 bits. La fonction cpyarg() doit tre appel au dbut du module %SP avant que la pile ne soit modifie par un appel un label interne au module ( call(<label>) ). Si le nombre darguments n demand est suprieur au nombre darguments m passs lors de lappel, le systme ne gnre pas derreur mais bien videmment seuls les m premiers arguments seront significatifs. Code retourn Si OK non significatif. Si dfaut -1 : n ngatif, nul ou suprieur au nombre maximum autoris. Erreur de programmation provoquant la mise endfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - "&dest+n" hors zone autorise.

6-8

fr-938846/7

Fonctions d'usage gnral

6.7

Copie dun ou plusieurs octets

cpyb

syntaxe de linstruction cpyb( &dest, &source, n)

&dest : &source : n:

Adresse de la destination. adresse de la source. Nombre doctets copier.

Copie n octets de la source vers la destination. Sens du transfert Pour permettre le transfert de zone mmoire ayant une intersection commune, le sens de la copie est fonction des adresses &dest et &source : - Si &dest < &source alors la copie est faite du dbut vers la fin (adresses croissantes), - Si &dest > &source alors la copie est faite de la fin vers le dbut (adresses dcroissantes). Exemple cpyb(%M20.&, %M120.&, 3) %M120.B
Bit 7 Bit 0

%M121.B
Bit 7 Bit 0

%M122.B
Bit 7 Bit 0

%M20.B
Bit 7 Bit 0

%M21.B
Bit 7 Bit 0

%M22.B
Bit 7 Bit 0

Code retourn Si OK 0 Si dfaut -1 : n ngatif ou nul.

fr-938846/7

6-9

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - paramtre "&dest" incorrect, - "&source+n" hors zone autorise, - "&dest+n" hors zone autorise.

6.8

Copie dun ou plusieurs mots

cpyw

Syntaxe de linstruction cpyw( &dest, &source, n)

&dest : &source : n:

Adresse de la destination. Adresse de la source. Nombre de mots copier.

Copie n mots de la source vers la destination. Sens du transfert Se reporter au paragraphe 6.5. Code retourn Si OK 0 Si dfaut -1 : n ngatif ou nul. Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - paramtre "&dest" incorrect, - "&source+n" hors zone autorise, - "&dest+n" hors zone autotise.

6 - 10

fr-938846/7

Fonctions d'usage gnral

6.9

Copie dun ou plusieurs long mots

cpyl

Syntaxe de linstruction cpyl( &dest, &source, n)

&dest : &source : n:

Adresse de la destination. Adresse de la source. Nombre de longs mots copier.

Copie n longs mots de la source vers la destination. Sens du transfert Se reporter au paragraphe 6.5. Code retourn Si OK 0 Si dfaut -1 : n ngatif ou nul Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - paramtre "&dest" incorrect, - "&source+n" hors zone autorise, - "&dest+n" hors zone autotise.

6.10

Fixe la priode de lauto-test

diagiq

Syntaxe de linstruction diagiq( priode )

priode :

Priode de lauto-test (en dixime de seconde).

Le systme lit priodiquement le statu interne des cartes connectes sur le bus srie (%I, %Q) et rafrachit le mot de diagnostic %Irc3C.W. Par dfaut la priode est de 400 millisecondes. La fonction diagiq() permet de supprimer lauto-test ou modifier la priode par dfaut. Le paramtre priode doit tre ZERO pour supprimer lauto-test ou compris entre 1 (0,1 seconde) et 10 ( 1 seconde). On notera quune priode petite est une charge supplmentaire pour le CPU. diagiq() doit tre appel dans la tche %INI.

fr-938846/7

6 - 11

Code retourn Si OK 0 Si dfaut -1 : Priode non valide (non compris entre 0 et 10) (la priode par dfaut reste valide).

6.11

Conversion dune valeur entire signe en chane ASCII

itoa

Syntaxe de linstruction itoa( i, &dest )

i: &dest :

Valeur entire convertir (la valeur est considre signe). Adresse de la chane ASCII_ZERO qui recevra les caractres ASCII.

Conversion dune valeur entire signe dans la base 10. Les caractres ASCII rsultat sont placs dans la chane dadresse &dest. La chane est termine par un octet NUL. Code retourn Si OK Nombre de caractres placs dans la chane sans compter loctet terminal NUL. Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - fin de chane hors zone autorise.

6.12

Conversion dune valeur entire non signe en chane ASCII

itostr

Syntaxe de linstruction itostr( u, &dest, base )

u: &dest : base :

Valeur entire convertir (la valeur est considre non signe). Adresse de la chane qui recevra les caractres ASCII. Base de la conversion.

Conversion dune valeur entire non signe dans la base spcifie. Les caractres ASCII rsultats sont placs dans la chane dadresse &dest. La chane est termine par un octet NUL. La base doit tre comprise entre 2 et 36 sinon la base 10 est prise.

6 - 12

fr-938846/7

Fonctions d'usage gnral

Code retourn Si OK Nombre de caractres placs dans la chane sans compter loctet terminal NUL. Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - fin de chane hors zone autorise.

6.13

Concatnation OCTet > bit

oct

Syntaxe de linstruction oct(&dest, &source, n )

&dest : &source: n:

Adresse du premier octet destination. Adresse du premier octet concatner. Nombre d'octets destination concatner.

Concatnation des bits de poids fort de 8 x n octets depuis &source sur les n octets dbutant &dest. Fonctionnement Le bit 7 de loctet ladresse &source est recopi dans le bit 0 de loctet ladresse &dest. Le bit 7 de loctet ladresse &source + 1 est recopi dans le bit 1 de loctet ladresse &dest. ..... Le bit 7 de loctet ladresse &source + 8 est recopi dans le bit 0 de loctet ladresse &dest + 1. ..... Le bit 7 de loctet ladresse &source + (n - 1) x 8 est recopi dans le bit 0 de loctet ladresse &dest +(n - 1). ..... Le bit 7 de loctet ladresse &source + (n - 1) x 8 + 7 est recopi dans le bit 7 de loctet ladresse &dest + (n - 1).

fr-938846/7

6 - 13

Exemple : oct(%M30.&, %M20.&, 2)

%M20.B %M21.B

1 Bit 7 0 Bit 7

%M27.B

1 Bit 7 1 Bit 7

1 Bit 0

%M30.B

%M2E.B %M2F.B

1 Bit 7 1 Bit 7 1 Bit 7 1

x
Bit 0

%M31.B

Code retourn Si OK 0 Si dfaut -1 : n ngatif ou nul Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - paramtre "&dest" incorrect, - "&source+n" hors zone autorise, - "&dest+n" hors zone autorise.

6 - 14

fr-938846/7

Fonctions d'usage gnral

6.14

Simulation du clavier du pupitre

putkey

Syntaxe de linstruction putkey( code_touche )

Code_touche :

Code ASCII dune touche pupitre.

Simulation du clavier du pupitre par la fonction automatisme. Fonctionnement La fonction putkey() est valide si le pupitre est absent (%W5.0 = 1). Pour s'assurer qu'un code simul est pris en compte par la CN, aprs mission du code, attendre que le compte rendu repasse 0. Le code a t pris en compte par la CN mais il n'y a pas moyen de s'assurer que le code va tre trait. Aussi, il est recommand de temporiser un nouvel appel de putkey() de 100 ms au minimum.

REMARQUE : La valeur 0xAF dans l'argument "Code_touche" permet un appel direct du mode transparent.
Code retourn Si OK 0 Si dfaut -1 : 1: Clavier pupitre non invalid. Buffer satur, ritrer lappel de putkey(..)

6.15

Recherche circulaire optimale

qcktool

Syntaxe de linstruction qcktool(origine, destination, n )

origine: destination: n:

Numro de la case origine (Voir Remarque). Numro de la case destination (Voir Remarque). Nombre de cases du magasin doutils.

La fonction qcktool() dtermine le nombre de cases et le sens de rotation permettant daller le plus rapidement de la case origine la case destination dans un magasin doutils circulaire.

REMARQUE : les cases sont numrotes en partant du numro zro (de 0 n-1).

fr-938846/7

6 - 15

Code retourn Si OK Si > 0: Si < 0: Si = 0: Si = n Le sens positif (numros croissants) est le plus court. Indique le nombre de pas. Le sens ngatif (numros dcroissants) est le plus court. La valeur absolue indique le nombre de pas. Aucun dplacement faire le magasin est dj sur la position destination. Hors magasin

6.16

Recherche de la valeur dun octet

rchb

Syntaxe de linstruction rchb( &source, b, pas, n )

&source : b: pas : n:

Adresse de dbut de la recherche. Valeur de loctet chercher. Valeur du pas de la recherche en octets. Nombre maximum de pas de la recherche.

Recherche, avec un pas, la premire occurrence de loctet b, en partant de ladresse &source. Le pas peut tre positif ou ngatif : Pas positif: Pas ngatif: Code retourn Si valeur trouve Nombre positif gal au nombre de pas effectus jusqu la premire occurrence. Pas positif: Pas ngatif: Si valeur non trouve -1 : Valeur non trouve. Code retour = (adresse occurrence - &source) / pas Code retour = (&source - adresse occurrence) / (-pas) Dans ce cas la recherche seffectue vers les adresses croissantes. Dans ce cas la recherche seffectue vers les adresses dcroissantes.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre"&source" incorrect, - "&source+pas*n"hors zone autorise.

6 - 16

fr-938846/7

Fonctions d'usage gnral

6.17

Recherche de la valeur dun mot

rchw

Syntaxe de linstruction rchw( &source, w, pas, n )

&source: w: pas : n:

Adresse de dbut de la recherche. Valeur du mot chercher. Valeur du pas de la recherche en octets. Nombre maximum de pas de la recherche.

Recherche, avec un pas, la premire occurrence du mot w, en partant de ladresse &source. Le pas peut tre positif ou ngatif : Pas positif: Pas ngatif: Code retourn Si valeur trouve Nombre positif gal au nombre de pas effectus jusqu la premire occurrence . Pas positif: Pas ngatif: Si valeur non trouve -1 : valeur non trouve. Code retour = (adresse occurrence - &source) / pas Code retour = (&source - adresse occurrence) / (-pas) Dans ce cas la recherche seffectue vers les adresses croissantes. Dans ce cas la recherche seffectue vers les adresses dcroissantes.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - "&source+pas*n" hors zone autorise.

6.18

Recherche de la valeur dun long mot

rchl

Syntaxe de linstruction rchl( &source, l, pas, n )

&source: l: pas : n:

Adresse de dbut de la recherche. Valeur du long mot chercher. Valeur du pas de la recherche en octets. Nombre maximum de pas de la recherche.

Recherche, avec un pas, la premire occurrence du long mot l, en partant de ladresse &source.

fr-938846/7

6 - 17

Le pas peut tre positif ou ngatif : Pas positif: pas ngatif: Code retourn Si valeur trouve Nombre positif gal au nombre de pas effectus jusqu la premire occurrence . Pas positif: Pas ngatif: Si valeur non trouve -1 : valeur non trouve. Code retour = (adresse occurrence - &source) / pas Code retour = (&source - adresse occurrence) / (-pas) Dans ce cas la recherche seffectue vers les adresses croissantes. Dans ce cas la recherche seffectue vers les adresses dcroissantes.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - "&souce+pas*n" hors zone autorise.

6.19

Retour au module ou au rseau appelant

return

Syntaxe de linstruction return ( [expression_numrique] )

expression_numrique: Fonctionnement

Valeur retourne vers le module appelant.

Effectue le retour : - au module appelant dans le cas dun appel inter-module de la forme <variable> = sp(.....). Dans ce cas <variable> permet de rcuprer la valeur de lexpression numrique, - au rseau de contacts appelant dans le cas dun appel intra-module de le forme call(<label>). Dans ce cas lventuelle valeur retourne ne peut tre rcupre.

ATTENTION

Cette fonction ne peut pas tre appele dans la zone test.


Code retourn Aucun code nest retourn dans le module lui mme.

REMARQUE : Une affectation de la forme %M20.B = return(Var_1+3) na pas de sens.

6 - 18

fr-938846/7

Fonctions d'usage gnral

6.20

Saut un label du module sans retour

goto

Syntaxe de linstruction goto (<label>)

Label: Fonctionnement

Label de la squence appele.

Saut une squence sans retour.

ATTENTION

Cette fonction ne peut pas tre appele dans la zone test.


Code retourn Aucun code nest retourn.

6.21

Saut un label du module avec retour

call

Syntaxe de linstruction call (<label>)

Label: Fonctionnement

Label de la squence appele.

Saut une squence avec retour la bobine suivant le Call(), sur le premier return () rencontr.

ATTENTION

Cette fonction ne peut pas tre appele dans la zone test.


Code retourn Aucun code nest retourn.

fr-938846/7

6 - 19

6.22

Smaphore

sema
sema (&smaphore)

Syntaxe de linstruction

&smaphore:

Adresse de loctet de smaphore.

Utilise une instruction non interruptible du type Test and Set pour mettre 0x80 (-128) loctet ladresse &smaphore. Cette fonction doit tre utilise lorsque des tches diffrentes doivent partager une mme ressource (par exemple : le clavier, lcran, .. etc ..). Code retourn Etat du smaphore 0: 1: Le smaphore tait libre. Le smaphore est dj pris.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&smaphore" incorrect.

6.23

Ecriture dun ou plusieurs octets

setb

Syntaxe de linstruction setb(&dest, b, n )

&dest: b: n:

Adresse de la destination. Valeur de loctet crire. Nombre doctets crire.

Ecrit n octets la valeur b depuis ladresse &dest. Exemple dutilisation setb(%M120.&, %V100.B & 0x7f, 3)
%V100.B & 0x7F %M120.B
Bit 7 Bit 0

%M121.B
Bit 7 Bit 0

%M122.B
Bit 7 Bit 0

6 - 20

fr-938846/7

Fonctions d'usage gnral

Code retourn Si OK Non significatif Si dfaut -1 : n ngatif ou nul Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - "&dest+n" hors zone autorise.

6.24

Ecriture dun ou plusieurs mots

setw
6

Syntaxe de linstruction setw(&dest, w, n )

&dest : w: n:

Adresse de la destination. Valeur du mot crire. Nombre de mots crire

Ecrit n mots la valeur w depuis ladresse &dest. Code retourn Si OK Non significatif Si dfaut -1 : n ngatif ou nul Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - "&dest+n" hors zone autorise.

fr-938846/7

6 - 21

6.25

Ecriture dun ou plusieurs long mots

setl

Syntaxe de linstruction setl(&dest, l, n )

&dest: l: n:

Adresse de la destination. Valeur du mot crire. Nombre de mots crire

Ecrit n longs mots la valeur l depuis ladresse &dest. Code retourn Si OK Non significatif Si dfaut -1 : n ngatif ou nul Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - "&dest+n" hors zone autorise.

6.26
6.26.1

Appel de modules %SP


Appel dun module %SP

sp

Syntaxe de linstruction sp( n_module {, argn }6 ... )

n_module : argn :

Numro du module %SP appeler . Argument ventuel.

Appel de module %SP (%SP0 ... %SP255) avec passage ventuel darguments dans la pile. Fonctionnement Le numro du module doit tre compris entre 0 (appel de %SP0) et 255 (appel de %SP255). Les arguments sont tendus sur 32 bits et placs sur la pile. Lappel est alors effectu. Le nombre total darguments (n_module inclus) ne doit pas dpasser NBM_PARAM (soit 7). Lappel de la fonction cpyarg() au dbut du module appel permet de rcuprer les arguments passs dans la pile.

6 - 22

fr-938846/7

Fonctions d'usage gnral

Code retourn Si OK Valeur retourne par le module %SP appel grce la fonction return(<expression_numrique>). Non significatif si le module appel na pas retourn de valeur. Exemple dutilisation de sp(), cpyarg() , return() Echange darguments lors de lappel dun module %SP. Module appelant (%TS , %TF ou %SP) : %M100.W = sp(33, 10, %M20.B + %M30.B);Les arguments 10 et (%M20.B + %M30.B) sont tendus sur 32 bits et placs sur la pile. Lappel de %SP33 est alors effectu. Module appel %SP33 : cpyarg(M200.&, 2); return( %V100.W+25 ); Recommandation Le passage dargument permet dviter un couplage des modules par des variables communes. Cest une rgle de programmation suivre car elle permet lcriture de modules indpendants facilitant ainsi leur rutilisation dans une autre application. Recopie de deux paramtres de lappel partir de %M200.%M200.L reoit 10 et %M204.L reoit le rsultat de lexpression (%M20.B + %M30.B). Retour lappelant. %M100.W reoit la valeur de lexpression %V100.W + 25.

6.26.2

Appel dun module %SP avec variables locales %Y

spy

Syntaxe de linstruction spy ( n_module {, argn }6 ... )

n_module : argn :

Numro du module %SP appeler . Argument ventuel.

Appel de module %SP (%SP0 %SP255) avec cration de 128 variables locales %Y et passage ventuel darguments dans la pile. Fonctionnement Le numro du module doit tre compris entre 0 (appel de %SP0) et 255 (appel de %SP255). Il y a cration dans la pile, de 128 variables locales %Y. Ces variables sont dtruites lors du retour lappelant. Les arguments, sauf n_module qui nest pas empil, sont tendus sur 32 bits et placs sur la pile. Le nombre total darguments (n_module inclus) ne doit pas dpasser NBM_PARAM (soit 7). Lutilisation de spy(..) et des variables %Y permet dcrire des modules %SP portables et rentrants.

REMARQUE : Le programme d'exemple L_E_VAR.MCH disponible sous PLCTOOL illustre l'instruction spy().

fr-938846/7

6 - 23

Organisation des variables %Y disponibles dans le module %SP appel : %Y0.L %Y4.L %Y14.L %Y18.B %Y7f.B Code retourn Si OK Valeur retourne par le module %SP appel grce la fonction return(<expression_numrique>). Non significatif si le module appel na pas retourn de valeur. Exemple dutilisation de spy(..) et return(..) Echange darguments lors de lappel dun module %SP. Module appelant (%TS , %TF ou %SP) : %M100.W = spy(33, 10, %M20.B + %M30.B); Cration de 128 variables locales %Y dans la pile. Les arguments 10 et (%M20.B + %M30.B) sont tendus sur 32 bits et placs sur la pile. Lappel de %SP33 est alors effectu. Module appel %SP33 : return(%Y10.W + 25) %Y0.L contient 10 %Y4.L contient le rsultat de lexpression (%M20.B + %M30.B). Retour lappelant, les variables locales sont dtruites, %M100.W reoit le rsultat de lexpression (%Y10.W + 25) Contient le premier argument sil existe sinon la valeur est indtermine. Contient le deuxime argument sil existe sinon la valeur est indtermine. Contient le dernier argument sil existe sinon la valeur est indtermine. Suite des variables locale. Dernire variable locale.

6.27

Formatage dune chane de caractres

sprintf

Syntaxe de linstruction sprintf( &dest, &format {, argn }5 )

&dest : &format : argn :

Adresse de la chane destination. Adresse de la chane format. Argument ventuel.

Formate la chane ladresse &format et recopie ladresse &dest. Un octet NUL est ajout en fin de &dest. La fonction sprintf() supporte les spcifications de conversion du langage C norme ANSI. Fonctionnement La fonction sprintf() est quivalent printf() mais la chane formate, au lieu dtre transmise lcran, est copie partir de ladresse &dest. Spcification des formats de conversion se reporter la fonction printf().

6 - 24

fr-938846/7

Fonctions d'usage gnral

Code retourn Si OK Nombre de caractres crits dans &dest sans compter loctet terminal NUL. Si dfaut -1 : Chane format contenant des formats non valides.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - paramtre "&formt" incorrect, - fin de chane hors zone autorise.

6.28

Racine carre entire

sqrt
sqrt( n )

Syntaxe de linstruction

n:

Entier positif.

Retourne la racine carre entire de n. Le temps de calcul est infrieur 60 microseconde. Code retourn Si OK Nombre entier positif le plus proche de la racine carre de n.

6.29

Analyse dune chane ASCII

sscanf

syntaxe de linstruction sscanf( &chanesource, &chaneformat, {, &argn }5)

&chanesource : &chaneformat : &argn :

Adresse de la chane source. Adresse de la chane format. Adresse des variables renseigner.

Analyse une chane ASCII (termine par NUL) ladresse &chanesource et renseigne les paramtres suivant les spcifications de conversion de la chane format. La fonction sscanf() supporte les spcifications de conversion du langage C norme ANSI.

fr-938846/7

6 - 25

Fonctionnement Chaque argument &argn doit tre une adresse dune variable %M, %V, %Q, %W. Spcification des formats de conversion se reporter la fonction printf() (Voir 8.2.5). Code retourn Si OK Nombre de paramtres qui ont t effectivement renseigns. Si dfaut 0: Lanalyse de chane source infructueuse, chane format contenant des formats non valides.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&chanesource" incorrect, - paramtre "&chaneformat" incorrect, - paramtre "&argn" d'un %d, %E, %C, %f, %G, %g, %i, %n, %o, %P, %u, %X ou %x incorrect, - paramtre "&argn" d'un %s incorrect. - fin de chane hors zone autorise,

6.30

Comparaison dune chane de caractres

strcmp

Syntaxe de linstruction strcmp( &chane1, &chane2 )

&chane1 : &chane2 :

Adresse chane 1. Adresse chane 2.

Compare deux chanes termines par un octet NUL. Code retourn Si OK n == 0 n>0 n<0 Si chane1 == chane2. Si chane1 > chane2 (octet Ni de chane1 > octet Ni de chane2). Si chane1 < chane2 (octet Ni de chane1 < octet Ni de chane2).

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&chane1" incorrect, - paramtre "&chane2" incorrect, - fin de chane hors zone autorise.

6 - 26

fr-938846/7

Fonctions d'usage gnral

6.31

Copie dune chane de caractres

strcpy

Syntaxe de linstruction strcpy( &dest, &source )

&dest : &source :

Adresse destination. Adresse source.

Copie les octets de la chane dbutant ladresse &source dans &dest. La copie sarrte au premier octet NUL de la chane source. Un octet NUL est copi la fin de &dest. Code retourn Si OK Retour du pointeur sur la destination. Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - paramtre "&dest" incorrect, - fin de chane hors zone autorise.

6.32

Calcul de la longueur dune chane

strlen

Syntaxe de linstruction strlen( &chane )

&chane :

Adresse de dbut de la chane.

Calcul la longueur dune chane (nombre doctets avant le premier octet NUL). Code retourn Si OK Longueur de la chane. Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&chane" incorrect, - fin de chane hors zone autorise.

fr-938846/7

6 - 27

6.33

Echange des octets dun mot

swapw

Syntaxe de linstruction swapw( &dest, &source, n )

&dest : &source : n:

Adresse de la destination. Adresse de la source. Nombre de mots copier.

Copie n mots de &source dans &dest en inversant les octets de poids faible et de poids fort de chaque mot. Exemple swapw(%M20.&, %M120.&, 3)
Poids fort Poids faible Poids fort Poids faible

%M120.W

%M20.W

%M122.W

%M22.W

%M124.W

%M24.W

Code retourn Si OK Non significatif. Si dfaut -1 : n ngatif ou nul Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - paramtre "&source" incorrect, - "&dest+n" hors zone autorise, - "&source+n" hors zone autorise.

6 - 28

fr-938846/7

Fonctions d'usage gnral

6.34

Echange des quatre octets dun long mot

swapl

Syntaxe de linstruction swapl( &dest, &source, n )

&dest : &source : n:

Adresse de la destination. Adresse de la source. Nombre de longs mots copier.

Copie n longs mots de &source dans &dest en inversant les 4 octets de chaque mot. Exemple swapl(%M20.&, %M120.&, 3)
G P fort G P faible p p fort p p faible G P fort G P faible p p fort p p faible

%M120.L

%M20.L

G P fort

G P faible

p p fort

p p faible

G P fort

G P faible

p p fort

p p faible

%M124.L

%M24.L

G P fort

G P faible

p p fort

p p faible

G P fort

G P faible

p p fort

p p faible

%M128.L

%M28.L

Code retourn Si OK Non significatif. Si dfaut -1 : n ngatif ou nul Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - paramtre "&source" incorrect, - "&dest+n" hors zone autorise, - "&source+n" hors zone autorise.

fr-938846/7

6 - 29

6.35

Correction dynamique dun outil

tooldyn

Syntaxe de linstruction tooldyn( correction, axe, n_outil)

correction: axe : n_outil :

Valeur de la correction dynamique (entier sign sur 16 bits fonction de l'unit interne du systme (Voir manuel des paramtres)). Type de correction. Numro de loutil (de 0 255).

Ecriture dune correction dynamique dun outil (les corrections dynamiques sont cumules par la CN). Fonctionnement Il est recommand d'espacer le traitement de deux fonctions tooldyn(..) dau moins une HTR. Axe
0 Bit 7 0 Bit 7 1 Bit 7 1 Bit 7 1 Bit 7 1 1 Bit 0 1 Bit 0 1 Bit 0 1 Bit 0 1 Bit 0

0x1 : Incrmentation correction en X (Tour) ou L (Fraiseuse) 0x2 : Incrmentation correction en Z (Tour) ou R (Fraiseuse) 0x81 : RAZ du cumul des corrections en X (Tour) ou L (Fraiseuse) 0x82 : RAZ du cumul des corrections en Z (Tour) ou R (Fraiseuse) 0x83 : RAZ du cumul des corrections en X et Z (Tour) ou L et R (Fraiseuse)

Code retourn Si OK 0 1 Fonction refuse - File sature par une fonction tooldyn(..) mise prcdement et encore en traitement.

6 - 30

fr-938846/7

Fonctions d'usage gnral

6.36

Lecture de n variables E42000

R_E42000

Syntaxe de linstruction R_E42000(&dest, numro, n)

&dest : Numro : n:

Adresse de la destination. Numro de la premire variable E42000 lire (0 ... 127). Nombre doctets lire (1 128).

Permet de lire n octets partir de la variable E42000 + numro dans la zone pointe par &dest. Exemple R_E42000(%V100.&, 120, 3)
E42120 E42121 E42122 %V100.B
Bit 7 Bit 0

%V101.B
Bit 7 Bit 0

%V102.B
Bit 7 Bit 0

Code retourn Si OK 0 Si dfaut -1 : numro > 127 numro+n > 128 Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - "&dest+n" hors zone autorise.

fr-938846/7

6 - 31

6.37

Ecriture de n variables E42000

W_E42000

Syntaxe de linstruction W_E42000(&source, numro, n)

&source : Numro : n:

Adresse de la source. Numro de la premire variable E42000 crire (0 ... 127). Nombre doctets crire (1 128).

Copie n octets de &source vers les variables E42000 + numro. Exemple W_E42000(%M100.&, 0, 3) %M100.B
Bit 7 Bit 0

%M101.B
Bit 7 Bit 0

%M102.B
Bit 7 Bit 0

E42000 E42001 E42002

Code retourn Si OK 0 Si dfaut -1 : numro > 127 numro+n > 128 Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&source" incorrect, - "&source+n" hors zone autorise.

6 - 32

fr-938846/7

Fonctions d'usage gnral

6.38

Initialisation de la base associe aux variables %Y

y_init

Syntaxe de linstruction y_init(&adresse_debut_y)

adresse_debut_y :

Adresse charge dans la base associe aux variables %Y.

Charge la base associe aux variables %Y avec ladresse passe en paramtre. Fonctionnement Les variables %Y peuvent remplacer nimporte quelles variables globales %M, %V, %I, %Q, %R, %W. Le programmeur doit initialiser la base avec la fonction y_init(..) avant dutiliser les variables %Y. Lutilisation de la fonction y_init(..) fait perdre la visibilit des ventuelles variables locales du module %SP. Pour rcuprer la visibilit il faut procder comme suit : Var_1 = %Y0.& y_init(Var_2 + 100) ...... y_init(Var_1) ...... Sauvegarde de la base dans Var_1 (Ex : %V100.L) La base pointe sur une nouvelle zone de variables Utilisation des nouvelles variables %Y Restitution de la base Utilisation des variables %Y locales

REMARQUE:

Le chargement d'une base associe aux variables %Y par la fonction y_init est oprant seulement pendant l'excution de la tche en cours(%TS, %TF, %TH ou %INI). Par exemple: - si les variables %Y sont utilises dans la tche %TS0, il faudra appeler la fonction y_init chaque excution de la tche %TS0. - si les variables %Y sont utilises dans une tche de fond sans fin (tche de fond qui boucle), il suffira de l'appeler une fois en dbut de tche.

Exemple dutilisation de y_init(..) et %Y Traitement des 8 groupes daxes avec %SP0 unique en utilisant les variables %Y. y_init(%R100.&) sp(0) y_init(%R200.&) sp(0) y_init(%R800.&) sp(0) %Y0.B remplace %R100.B Traitement du groupe daxes N1 %Y0.B remplace %R200.B Traitement du groupe daxes N2 %Y0.B remplace %R800.B Traitement du groupe daxes N8 %Y80.B remplace %W800.B %Y80.B remplace %W200.B %Y80.B remplace %W100.B

fr-938846/7

6 - 33

Traitement dune chane. %V100.L = ABCDEF y_init(%V100.L) %Y0.B == A %Y1.B == B %Y5.B == F Code retourn Le code retourn est non significatif. Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&adresse_debut_y" incorrect. %V100.L contient ladresse de dbut de chane. La base y pointe sur le dbut de la chane. %Y0.B correspond au premier caractre de la chane. %Y1.B correspond au deuxime caractre de la chane.

6 - 34

fr-938846/7

7 Gestion des tches

7.1 7.2 7.3 7.4 7.5 7.6

Introduction Dbut dune section critique Fin dune section critique Mise en sommeil temporaire dune tche %TF Dpart dune tche %TF Arrt dune tche %TF

7-3

csbegin csend whtr tfstart tfstop

7-3 7-3 7-3 7-4 7-4

fr-938846/7

7-1

7-2

fr-938846/7

Gestion des tches

7.1 7.2

Introduction Dbut dune section critique

Pour plus d'informations concernant le traitement des tches de fond, se reporter au paragraphe 2.1.2.3.

csbegin

Syntaxe de linstruction csbegin() Description Interdit la premption de la tche appelante par une autre tche %TS, %TH %TF. Code retourn Toujours OK 0

7.3

Fin dune section critique

csend
7
csend()

Syntaxe de linstruction

Description Autorise la premption de la tche appelante par une tche de priorit suprieure. Cette fonction annule les effets de la fonction csbegin(). Code retourn Toujours OK 0

7.4

Mise en sommeil temporaire dune tche %TF

whtr

Syntaxe de linstruction whtr( n )

n: Description

Nombre de HTR pendant lesquels la tche %TF est en ATTENTE.

Fait passer la tche %TF appelante de ltat EN EXECUTION ltat EN ATTENTE pendant n HTR. A la fin de ce dlai la tche %TF passera ltat PRETE. n doit tre compris entre 0 et 255.

fr-938846/7

7-3

Code retourn Si OK 0

7.5

Dpart dune tche %TF

tfstart
tfstart( numero_tf )

Syntaxe de linstruction

numro_tf : Description

Numro de la tache %TF.

Fait passer la tche %TF dans ltat PRETE. Code retourn Si OK 0

7.6

Arrt dune tche %TF

tfstop
tfstop( numero_tf )

Syntaxe de linstruction

numro_tf : Description

Numro de la tache %TF.

Fait passer la tche %TF dans ltat NON PRETE. Code retourn Si OK 0

7-4

fr-938846/7

Mode transparent

8 Mode transparent

8.1 Introduction
8.1.1 8.1.2 8.1.3 8.1.4 Gestion de la visu Variable dchange Envoi de caractres cods vers lcran Caractres cods exploits par %R0.W et putkey() Positionnement du curseur Affichage dun caractre Affichage dune chane sans formatage Affichage dun tampon Affichage dune chane avec formatage Ouverture dune acquisition clavier Ouverture dune acquisition clavier numrique Acquisition dune chane Acquisition et conversion dun nombre dcimal Acquisition et conversion dun nombre hexadcimal Fermeture dune acquisition clavier Positionnement et affichage dune image Init graphique pcur putchar puts print printf scano scanu scans

8-3 8-3 8-4 8-4 8-5 8-7 8-7 8-7 8-8 8-8 8-9 8-12 8-13 8-13

8.2 Fonctions affectes au mode transparent


8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.2.7 8.2.8 8.2.9

scand scanx scanc putimage inig

8-14 8-15 8-16 8-16 8-17 8-18 8-18 8-18 8-18 8-18 8-22 8-22 8-22 8-22 8-23 8-23 8-24 8-24 8-25 8-25 8-26 8-27 8-28 8-28 8-29

8.2.10 8.2.11 8.2.12 8.2.13

8.3 Mode transparent pupitre


8.3.1 8.3.1.1 8.3.1.2 8.3.1.3 8.3.2 8.3.2.1 8.3.2.2 8.3.2.3 8.3.3 8.3.3.1 8.3.3.2 8.3.3.3 8.3.4 8.3.4.1 8.3.4.2 8.3.4.3 8.3.4.4 8.3.4.5 8.3.4.6 Exploitation de lcran du pupitre Dfinition dune fentre Dfinition de lespace alphanumrique Dfinition de lespace graphique Dfinition des instructions Composition dune instruction Principe de notation Liste des instructions Instructions dusage gnral Initialisation soft Slection dune couleur Slection de la fentre Caractres et instructions alphanumriques Caractres alphanumriques Choix du format de police Visualisation des caractres Visualisation du curseur Dplacement du curseur Effacement

fr-938846/6

8-1

8.3.5 8.3.5.1 8.3.5.2 8.3.5.3 8.3.5.4 8.3.5.5 8.3.5.6 8.3.5.7 8.3.5.8 8.3.5.9 8.3.5.10 8.3.5.11 8.3.5.12 8.3.5.13 8.3.5.14 8.3.5.15

Instructions graphiques Dfinition du rfrentiel utilisateur Trac rfrentiel utilisateur Trac Utilisateur Dfinition doutil Animation Non animation Trac cran Dcalage origine cran Transfert point courant Icnes Chane de caractres rfrentiel cran Chane de caractres rfrentiel utilisateur Remplissage zone utilisateur Remplissage zone cran Trac de cartouche

8-29 8-29 8-31 8-32 8-33 8-34 8-34 8-34 8-35 8-35 8-36 8-38 8-38 8-38 8-40 8-40

8-2

fr-938846/6

Mode transparent

8.1

Introduction

Les programmes en mode transparent doivent tre excuts lorsque la variable %R5.7 est 1. Cette variable doit tre utilise dans les conditions darmements du programme. Pour accder la page MODE TRANSPARENT se reporter au MANUEL OPERATEUR.

8.1.1

Gestion de la visu

Le mode transparent libre la fonction CN de la gestion de lcran, et permet la fonction automatisme de disposer de lcran du pupitre pour afficher des caractres alphanumriques ou effectuer des tracs graphiques. Les commandes de gestion du curseur, les caractres alphanumriques et les instructions graphiques sont associs des codes hexadcimaux. Les fonctions de gestion cran/clavier sont valides uniquement dans le mode transparent.

FONCTION GRAPHIQUE

FONCTION AUTOMATISME

FONCTION CN

Logiciel de gestion clavier et visu

Lecture codes touches du clavier(%R0.W)

Programme utilisateur

Simulation du clavier (Fonction putkey)

Logiciel CN

Emission vers la visu (Voir 8.2)

8
VERS VISU ET CLAVIER

TOOL MODE

JOG

M01

F1
! @

F2
#

F3
$

F4
% ^

F5
&

F6
*

F7
(

F8
)

F9
_

F10
+

F11

F12 line INS char


ALL CAPS

HELP line DEL char Pg Up

1 ESC

2 Q

3 W

4 E

5 R

6 T

7 Y

8 U

9 I

0 O

P : ;

=
{ [

+
} ]

home

CTRL

S
x off

"
` > . ` ? / SPACE end

VALID

SHIFT /

< ,

Pg Dn

PUPITRE

Figure 8.1 - Principe du mode transparent

ATTENTION

Le forage du mode transparent ne peut-tre ralis qu'avec les pages du graphique comprenant le cartouche de base. Pour tre sur ce cartouche il faut ajouter l'envoi du code $8D par putkey, ce qui correspond la touche << (que l'on soit en MODE, TOOL ou JOG).

fr-938846/8

8-3

8.1.2

Variable dchange

La variable %R0.W CARCLAV permet la lecture du code des touches mis par le clavier du pupitre au rythme de 1 caractre toutes les 5 HTR et de les exploiter au travers du programme utilisateur.

FONCTION AUTOMATISME

TOOL MODE

JOG

M01

%R0.W

Programme utilisateur

F1
! @

F2
#

F3
$

F4
% ^

F5
&

F6
*

F7
(

F8
)

F9
_

F10
+

F11

F12 line INS char


ALL CAPS

HELP line DEL char Pg Up

1 ESC

2 Q

3 W

4 E

5 R

6 T

7 Y

8 U

9 I

0 O

P : ;

=
{ [

+
} ]

home

CTRL

S
x off

"
` > . ` ? / SPACE end

VALID

SHIFT /

< ,

Pg Dn

CLAVIER

Figure 8.2 - Variable dchange %R0.W La fonction putkey() permet, si le clavier du pupitre est invalid (Variable %W5.0 1), de simuler le clavier du pupitre au travers du programme utilisateur.

FONCTION CN

TOOL MODE

JOG

Logiciel CN

M01

F1
! @

F2
#

F3
$

F4
% ^

F5
&

F6
*

F7
(

F8
)

F9
_

F10
+

F11

F12 line INS char


ALL CAPS

HELP line DEL char Pg Up

1 ESC

2 Q

3 W

4 E

5 R

6 T

7 Y

8 U

9 I

0 O

P : ;

=
{ [

+
} ]

home

CTRL

S
x off

"
` > . ` ? / SPACE end

VALID

SHIFT /

< ,

Pg Dn

CLAVIER

putkey()
%W5.0 = 1

Figure 8.3 - Fonction putkey()

8.1.3

Envoi de caractres cods vers lcran

Les fonctions putchar(), puts(), print(), printf() (Voir 8.2) permettent denvoyer les commandes de gestion du curseur et les caractres alphanumriques vers lcran du pupitre.

8-4

fr-938846/6

Mode transparent

8.1.4

Caractres cods exploits par %R0.W et putkey()

Tous les caractres sont lus dans la variable %R0.W. La fonction putkey() simule la partie dialogue uniquement.

CODE HEXA 0

Ctrl P (DLE)

SP

0,1

CONT

Ctrl A

Ctrl Q (Xon)

F2

MODE

Shift F2

Shift

SEQ

Ctrl B

Ctrl R

F3

Shift F3

Shift

Jauge

10

IMD

Ctrl C

Ctrl S (Xoff)

F4

TOOL

Shift F4

Shift

100

RAP

Ctrl D

Ctrl T

F5

/ (Saut bloc)

Shift F5 Shift F6

Shift

1000

RNS

Ctrl E

Ctrl U

F6

HOME

JOG

Shift HOME Shift END Shift Pg Up Shift Pg Dn Shift Ins/Over Del line RAZCOR R ou Z L ou X INCOR

10 000 MODIF

Ctrl F

Ctrl V

&

F7

END

M01 (Aropt)

Shift F7 Shift F8 Shift F9

ILL

TEST

Ctrl G

Ctrl W

F8

Pg Up

// (Raz)

MANU

Ctrl H

Ctrl X

F9

Pg Dn

NU_CN

MANIV. POM

Ctrl I

Ctrl Y

F10

Ins/Over (] [)

Shift F10 Shift F11

PREF 0.01 REGOUT 0.001

Ctrl J LF

Ctrl Z

F11

Del car

Ctrl K

ESC Ctrl [

F1 s

NU_EDT MACHI NING

Shift NU_EDT Shift VALID CHARG

Ctrl L

Ctrl \

<

F12

VALID PRESET LF

M M

Ctrl M CR Ctrl N

Ctrl ]

HELP PROGRAM EDIT

>

SPLIT

Ctrl O

Appel Mode transparent

DECHARG

Ne correspondent pas des touches du clavier. Les codes sont mis par le gestionnaire de menus.

fr-938846/6

8-5

Pupitre compact

CODE HEXA 0 1 2 3 4 5 6 7 8 9 A B C D E F

Ctrl P Ctrl A Ctrl B Ctrl C Ctrl D Ctrl E Ctrl F Ctrl G Ctrl H Ctrl I Ctrl J LF Ctrl K Ctrl L Ctrl M CR Ctrl N Ctrl O Ctrl Q Ctrl R Ctrl S Ctrl T Ctrl U Ctrl V Ctrl W Ctrl X Ctrl Y Ctrl Z Ctrl [ Ctrl \ Ctrl ] F13 F14 F15 F16 i i i i i i

REMARQUE

Ces codes touches sont accessibles par l'espion automate, mais la simulation de ces codes n'est pas prise en compte.

8-6

fr-938846/8

Mode transparent

8.2

Fonctions affectes au mode transparent


! ATTENTION

Ces fonctions sont valides uniquement en mode transparent. Elles sont programmables uniquement dans une tche %TF. 8.2.1 Positionnement du curseur

pcur

Syntaxe de linstruction pcur( ligne, colonne)

ligne : colonne : Description

Numro de la ligne. Numro de la colonne.

Positionne le curseur sur la ligne et la colonne Code retourn Si OK 0 Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Tentative de positionnement hors cran.

8.2.2

Affichage dun caractre

putchar
putchar( caractre)

Syntaxe de linstruction

caractre : Description

Code ASCII dun caractre.

Envoi dun caractre sur lcran du systme.

REMARQUE:

Si l'conomiseur d'cran est en fonctionnement, la commande putchar est en attente. Pour reprendre l'affichage en mode transparent, il est ncessaire de dsactiver pralablement l'conomiseur par la variable %W5.7

fr-938846/7

8-7

Code retourn Si OK Retourne le caractre crit. Si dfaut -1 : Pas en mode transparent, la tche appelante nest pas une %TF.

8.2.3

Affichage dune chane sans formatage

puts

Syntaxe de linstruction puts(&chane)

&chane : Description

Adresse de la chane ASCII (termine par NUL) afficher.

Emission dune chane sur lcran du systme. Le systme ajoute un 0x0D9C (\n ) la fin de la chane. Code retourn Si OK Retourne le nombre de caractres transmis. Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Dpassement de la taille maxi du tampon (512 octets).

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&chane" incorrect, - fin de chane hors zone autorise.

8.2.4

Affichage dun tampon

print
print(&source, n)

Syntaxe de linstruction

&source: n:

Adresse du tampon mettre. Nombre doctets mettre.

8-8

fr-938846/7

Mode transparent

Description Emission dun tampon doctets sur lcran du systme (le tampon peut contenir des commandes graphiques). Laffichage sarrte suivant la valeur de n. Si n == 0: Si n > 0: Code retourn Si OK Retourne le nombre de caractres transmis. Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. dpassement de la taille maxi du tampon (512 octets). Laffichage sarrte sur le premier octet NUL (NUL non affich). Laffichage sarrte au bout de n octets.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale: Accs une adresse interdite : - paramtre "&source" incorrect, - "&source+n" hors zone autorise.

8.2.5

Affichage dune chane avec formatage

printf
8

Syntaxe de linstruction printf(&format {, argn}6 )

&format : argn :

Adresse de la chane format. Argument ventuel.

Affichage dune chane avec conversion des ventuels arguments (la chane ne doit pas contenir de commande graphique). La fonction printf() supporte les spcifications de conversion du langage C norme ANSI. Fonctionnement La chane format contient des caractres affichables et ventuellement des spcifications pour la conversion des arguments. La fonction printf() analyse les caractres de la chane format. Si le caractre est un caractre affichable, printf() le recopie dans un tampon de travail. Lorsque printf() dtecte le caractre %, elle analyse les caractres suivants qui indiquent la conversion effectuer sur largument correspondant. Les caractres affichables, rsultat de la conversion de largument, sont placs dans le tampon de travail. Lorsque printf() dtecte la fin de la chane format (octet NUL), elle transmet le tampon la tche charge de laffichage sur lcran CN.

fr-938846/7

8-9

Format des spcifications de conversion % [ flags ] [ chiffres ] [ . [ chiffres ] ] [ l ] lettre_conversion

%: [flags] : -: +: espace : #: o Conversion : x ou X conversion : 0: [chiffres] : [ . [ chiffres ] ] :

Indique le dbut dune spcification de conversion. Caractres facultatifs suivants : Indique que le rsultat de la conversion doit tre cadr gauche dans le champ rserv. Indique que le rsultat dune conversion signe doit dbuter par un signe + ou un signe -. Indique que le rsultat dune conversion signe doit dbuter par un espace. Ce flag est ignor si le flag + est prsent. Indique que le rsultat de la conversion doit tre modifi de la faon suivante: Le rsultat doit dbuter par un 0. Le rsultat doit dbuter par 0x ou 0X. Indique que le zro de tte du rsultat doivent tre affichs. Caractres dcimal ASCII facultatifs indiquant la taille minimum du champ utilis pour laffichage du rsultat de la conversion. Caractres dcimal ASCII facultatifs indiquant le nombre minimum de chiffres afficher dans le cas dune conversion d, o, u, x ou X ou le nombre maximum de caractre de la chane afficher dans le cas dune conversion s. Lettre obligatoire indiquant la conversion effectuer sur largument : Largument est affich en dcimal sign. Largument est affich en octal. Largument est affich en hexadcimal en utilisant les lettres abcdef. Largument est affich en hexadcimal en utilisant les lettres ABCDEF. Largument est affich en dcimal non sign. Largument est pris comme le code dun caractre ASCII et affich sans conversion. Largument est un pointeur sur une chane affiche sans conversion. %% permet dafficher le caractre %.

lettre_conversion : d: o: x: X: u: c: s: %:

8 - 10

fr-938846/6

Mode transparent

Exemple 1 Soit les variables suivantes. %V100.L = Outil numro:%5d Type:%2c%2c Temps dutilisation: %M50.W = 255 %M52.B = 0x55 %M54.B = 2 %M55.B = 57 Linstruction printf(%V100.L, %M50.W, %M52.B, 0x57, %M54.B, %M55.B) affichera : Outil numro: Exemple 2 Affichage dune chane simple %V200.L = Voulez-vous connatre lheure ? (O/N) 255 Type: t v Temps dutilisation: 2 heures 57 minutes ( 0x55 code ASCII de t , 0x57 code ASCII de v ) %2d heures %2d minutes

printf(%V200.L) Affichera: Voulez-vous connatre lheure ? (O/N) Affichage dune chane avec format daffichage pour les arguments Si %M10.B = 3; Si %M11.B = 15; %V200.L = Il est %2d heure(s) et %2d minute(s)

printf(%V200.L, %M10.B, %M11.B) affichera: Il est 3 heure(s) et 15 minute(s) Les deux caractres \n provoque un saut la ligne suivante lors de laffichage de la chane (Le compilateur remplace les deux caractres \n par les deux octets 0xd 0xa). Exemple 3 %V200.L = 1 - Lecture \n 2 - Ecriture printf (%V200.L) affichera 1 - Lecture 2 - Ecriture Code retourn Si OK Nombre de caractres transmis pour affichage. Si dfaut -1 : -2 : -3 : Pas en mode transparent, la tche appelante nest pas une %TF. Dpassement de la taille maxi du tampon de formatage (255 octets). Erreur de format dans la chane format.

fr-938846/6

8 - 11

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&format" incorrect, - fin de chane hors zone autorise.

8.2.6

Ouverture dune acquisition clavier

scano

Syntaxe de linstruction scano(&question, largeur)

&question : largeur :

Adresse dune chane de caractres (termine par NUL). Largeur maximum du champ de saisie.

Ouverture dune acquisition clavier. Fonctionnement Le systme affiche la chane pointe par &question en bas de lcran et engage le dialogue la suite de la chane. Si le paramtre &question == 0 aucune chane nest affich La saisie des caractres est sous contrle de lditeur ligne du systme. Lditeur contrle que le nombre de caractres saisis est infrieur largeur. Les commandes de lditeur ligne sont celles, classiques, de lditeur des programmes pices : - dplacement du curseur avant et arrire, dbut et fin de ligne, - insertion et effacement de caractres, - la touche Line Feed clt la saisie.

ATTENTION

Les fonctions daffichages putchar() et printf() sont interdites pendant une acquisition clavier.

Code retourn Si OK 0 Si dfaut: -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Ressource dj prise (une acquisition clavier est dj en cours).

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&question" incorrect, - fin de chane hors zone autorise.

8 - 12

fr-938846/7

Mode transparent

8.2.7

Ouverture dune acquisition clavier numrique

scanu

Syntaxe de linstruction scanu(&question, largeur)

&question : largeur :

Adresse dune chane de caractres (termine par NUL). Largeur maximum du champ de saisie.

Ouverture dune acquisition numrique au clavier. Fonctionnement Le fonctionnement de scanu() est identique scano(), sauf en ce qui concerne lditeur ligne qui interdit la saisie de caractres qui ne sont pas des chiffres dcimaux (0, 1 .... 9).

ATTENTION

Cette fonction ne peut-tre utilise qu'avec la police 12 lignes x 40 colonnes. La saisie s'effectue sur la 11me ligne avec effacement de la ligne immdiatement suprieure.
Code retourn Si OK 0 Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Ressource dj prise (une acquisition clavier est dj en cours).

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&question" incorrect, - fin de chane hors zone autorise.

8.2.8

Acquisition dune chane

scans
scans( &dest )

Syntaxe de linstruction

&dest :

Adresse dune zone mmoire (%M ou %V ) qui va recevoir les caractres frapps au clavier.

Lecture dune acquisition clavier. Cette fonction doit tre appele aprs une fonction douverture de dialogue scano() ou scanu().

fr-938846/7

8 - 13

Fonctionnement Cette fonction permet de rceptionner la chane frappe la fin dun dialogue oprateur. Le systme termine la chane par un octet NUL. Si le dialogue est en cours (la touche Line Feed na pas t frappe) le code 0 est retourn; il faut donc appeler cycliquement scans() jusqu la fin du dialogue. Code retourn Si OK 0: n>0: Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Pas de dialogue en cours. Dialogue en cours Nombre de caractres transfrs dans &dest (le dialogue est termin).

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&dest" incorrect, - fin du champ acquisition hors zone autorise.

8.2.9

Acquisition et conversion dun nombre dcimal

scand

Syntaxe de linstruction scand( &lvariable )

&lvariable :

Adresse dune variable .L (ex : %V100.L ) qui va recevoir le rsultat de la conversion ASCII -> entier sign de la chane entre au clavier.

Lecture et conversion dune valeur dcimale acquise au clavier. Cette fonction doit tre appele aprs une fonction douverture de dialogue scano() ou scanu(). La conversion sarrte sur le premier caractre non dcimal. Si aucun caractres dcimal nest dtect alors &lvariable reoit 0. Fonctionnement Cette fonction permet de rceptionner la valeur dun nombre dcimal la fin dun dialogue oprateur. Si le dialogue est en cours (la touche Line Feed na pas t frappe) le code 0 est retourn; il faut donc appeler cycliquement scand() jusqu la fin du dialogue.

8 - 14

fr-938846/7

Mode transparent

Code retourn Si OK 0: 1: Dialogue en cours Acquisition et conversion termines avec succs. Le rsultat est transfr dans la variable . L pointe par &lvariable (le dialogue est termin). La conversion sarrte sur le premier caractre non dcimal.

Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Pas de dialogue en cours.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&Ivariable" incorrect.

8.2.10

Acquisition et conversion dun nombre hexadcimal

scanx

Syntaxe de linstruction scanx( &lvariable )

&lvariable :

Adresse dune variable .L (ex: %V100.L ) qui va recevoir le rsultat de la conversion ASCII -> entier sign de la chane entre au clavier.

Lecture et conversion dune valeur hexadcimale acquise au clavier. Cette fonction doit tre appele aprs une fonction douverture de dialogue scano() ou scanu(). La conversion sarrte sur le premier caractre non hexadcimal. Si aucun caractres hexadcimal nest dtect alors &lvariable reoit 0. Fonctionnement Cette fonction permet de rceptionner la valeur dun nombre hexadcimal la fin dun dialogue oprateur. Si le dialogue est en cours (la touche Line Feed na pas t frappe) le code 0 est retourn; il faut donc appeler cycliquement scanx() jusqu la fin du dialogue. Code retourn Si OK 0: 1: Dialogue en cours. Acquisition et conversion termines avec succs. Le rsultat est transfr dans la variable .L pointe par &lvariable (le dialogue est termin). La conversion sarrte sur le premier caractre non hexadcimal.

fr-938846/7

8 - 15

Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Pas de dialogue en cours.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&Ivariable" incorrect.

8.2.11

Fermeture dune acquisition clavier

scanc

Syntaxe de linstruction scanc( ) Description Cette fonction annule un dialogue en cours (engag par la fonction scano() ou scanu() ). Code retourn Si OK 0 Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Pas de dialogue en cours.

8.2.12

Positionnement et affichage dune image

putimage

Syntaxe de linstruction putimage(x, y, &image, n)

x: y: &image: n:

Abscisse de dpart. Ordonne de dpart. Adresse dun tampon de commandes graphiques (0x9b...). Nombre doctets mettre.

Emission dun tampon contenant des commandes graphiques avec positionnement pralable du curseur labscisse x, ordonne y. Laffichage sarrte suivant la valeur de n.

8 - 16

fr-938846/7

Mode transparent

Fonctionnement putimage() fonctionne comme print() mais avec positionnement pralable en (x, y). putimage() permet de dupliquer avec des (x,y) diffrents une mme image. Si n == 0 : Si n > 0 : Code retourn Si OK Retourne le nombre de caractres transmis. Si dfaut -1 : -2 : Pas en mode transparent, la tche appelante nest pas une %TF. Dpassement de la taille maxi du tampon (512 octets), tentative de positionnement hors cran. Laffichage sarrte sur le premier octet NUL (NUL non affich). Laffichage sarrte au bout de n octets.

Erreur de programmation provoquant la mise endfaut de l'unit centrale Accs une adresse interdite : - paramtre "&image" incorrect, - "&image+n" hors zone autorise.

8.2.13

Init graphique

inig
inig(..)

Syntaxe de linstruction

Description Permet dinitialiserle graphique et de dfinir le rfrentiel. Lunit de programmation est le pixel. Le rfrentiel est dfinit comme suit : - laxe X des abscisses de 0 502 pixels, - laxe Y des ordonnes de 0 382 pixels.
Y 502 11 Lignes

382

40 Colonnes

fr-938846/7

8 - 17

8.3
8.3.1

Mode transparent pupitre


Exploitation de lcran du pupitre

Lcran, de dfinition 640 x 480 pixels, est divis en quatre fentres. A chaque fentre correspond un canal de communication et un contexte. Le gestionnaire daffichage exploite tous les canaux et assure la sauvegarde des contextes.

REMARQUE : Chaque fentre doit tre considre comme un cran.


8.3.1.1 Dfinition dune fentre

Une fentre est dfinie par sa taille et sa position dans lcran. Chaque fentre dispose dun espace alphanumrique et dun espace graphique qui ont leur propre contexte (couleur, police, .. etc ...). Ces espaces se positionnent dans la zone visualisable de la fentre.

REMARQUES :Les fentres se chevauchent. Les espaces se superposent.


8.3.1.2 Dfinition de lespace alphanumrique

Il permet laffichage des caractres ASCII cods (au pixel prs) en lignes et colonnes et la gestion du curseur

REMARQUE : Laffichage dun caractre alphanumrique crase llment pralablement affich quelque soit lespace de celui-ci.
8.3.1.3 Dfinition de lespace graphique

Il permet laffichage des textes (au pixel prs) et des lments graphiques. Deux rfrentiels (cran et utilisateur) sont disponibles. Le mixage des rfrentiels dans le mme espace est possible.

REMARQUE : Laffichage dun lment dans lespace graphique se superpose llment pralablement affich quelque soit lespace de celui-ci.

8 - 18

fr-938846/6

396

,, ,, ,, ,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, , ,,,,
432 512 638 38 396 432 125

,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,, ,,,,,,,
638 42

,,,,, ,,,,, ,,,,, , ,,,, , ,, ,,,,


Mode transparent

ZONES VISUALISABLES

LIMITES DES FENTRES

Figure 8.4 - Dimensions des fentres

fr-938846/7

8 - 19

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,, ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , ,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,, ,, ,, , ,, ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , ,, ,, , ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,, , ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , ,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , , , , , , , , , , , , , , , , , , , , ,,

COL.39

471 470

A A

COL. 0

16

496 Ligne 0 Ligne 1 Ligne 2 Ligne 3 Ligne 4 Ligne 5 Ligne 6 Ligne 7 Ligne 8 Ligne 9

89 76 40 0 4 Matrice de caractres : 12 X 36 12

Ligne 10

H B

Ligne 11 512 506

36

Hors zone visualisable (En mode texte)

Rfrentiel utilisateur FENETRE PRINCIPALE

43 42 Ligne 0 Ligne 1 13 0

B B
4 08 634

COL. 0

64

128

192

256

320

384

448

512

576

640

Matrice des caractres : 08 X 12 Rfrentiel utilisateur

12

Sparation des touches. Affichable par la commande $9B BC FENETRE CARTOUCHE

Figure 8.5 - Positionnement des espaces Fentres principale et cartouche

8 - 20

fr-938846/6

Mode transparent

471 470

COL. 0

16

COL. 9

A A

Line 0 Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9

89 76 40 0 4

Line 10

H
120

Line 11 126

12 Matrice des caractres : 12 X 36 Hors zone visualisable Rfrentiel utilisateur

36

Figure 8.6 - Positionnement des espaces Fentre paramtrable

fr-938846/6

8 - 21

8.3.2

Dfinition des instructions ! ATTENTION

Toutes les instructions sont exploitables dans la fentre principale, dans la fentre cartouche et dans la fentre paramtrable. Lenvoi des instruction doit obligatoirement tre programm dans une tche %TF.
8.3.2.1 Composition dune instruction

Une instruction se compose du code de la commande suivie ou non dexpressions. Une expression se compose dune suite dexpressions ou darguments. Un argument est un caractre ASCII. Le caractre LF indique la fin des instructions. 8.3.2.2 Principe de notation

Les expressions sont reprsentes en majuscule, et les arguments entre guillemets. Notation XX YY ZZ {XX YY ZZ} |XX YY ZZ| (XX) ... [YY] Valeur par dfaut LF 0 8.3.2.3 Dfinition Ordre des expressions obligatoire Ordre des expressions quelconque Une seule des expressions est ncessaire Expression pouvant tre rpte plusieurs fois Expression optionnelle Pour les expressions optionnelles, valeur prise par dfaut Caractre de fin de commande (code hexadcimal 0x8A) Caractre ASCII 0 (code hexadcimal 0xB0)

Liste des instructions Instruction 0x9BDD 0x9BBD 0x9B2D 0x9BC8 0x9BC9 0x9BCA 0x9BCB 0x9BBD 0x9BDB 0x9BBF 0x9BB0 0x9BD8 Voir 8.3.3.1 8.3.3.2 8.3.3.3 8.3.4.3 8.3.4.3 8.3.4.3 8.3.4.3 8.3.4.3 8.3.4.3 8.3.4.5 8.3.5.1 8.3.5.2

Description de linstruction Initialisation soft Slection dune couleur Slection de la fentre Caractre normal Caractre en surbrillance Caractre non soulign Caractre soulign Slection de la couleur Caractre largi Positionnement quelconque du curseur Dfinition du rfrentiel utilisateur Trac rfrentiel utilisateur

8 - 22

fr-938846/6

Mode transparent

Description de linstruction Trac Utilisateur Dfinition doutil Animation Non animation Trac cran Dcalage origine cran Transfert point courant Icnes Chane de caractres rfrentiel cran Chane de caractres rfrentiel utilisateur Remplissage zone utilisateur Remplissage zone cran Trac de cartouche

Instruction 0x9BB2 0x9BB1 0x9BDF 0x9BE7 0x9BDE 0x9BB6 0x9BB7 0x9BE4 0x9BB4 0x9BA8 0x9B98 0x9BA9 0x9BAA 0x9BAB 0x9BAC 0x9BBC

Voir 8.3.5.3 8.3.5.4 8.3.5.5 8.3.5.6 8.3.5.7 8.3.5.8 8.3.5.9 8.3.5.10 8.3.5.11 8.3.5.12 8.3.5.13 8.3.5.14 8.3.5.15

8.3.3
8.3.3.1

Instructions dusage gnral


Initialisation soft

Linstruction 0x9BDD ralise une initialisation rapide de la visu. Syntaxe de linstruction 0x9BDD

Cette instruction ralise une initialisation dans les espaces alphanumrique et graphique et provoque la suppression du rfrentiel utilisateur. Elle ralise dans l'espace graphique : - effacement de lcran, - effacement des zones de sauvegarde, - coordonne dcimale par dfaut, - couleur blanche par dfaut. Elle ralise dans l'espace alphanumrique : - slection du format A, - couleur par dfaut, - curseur non visible, - curseur sur la premire ligne et premire colonne, - vido normale, - non soulign.

fr-938846/5

8 - 23

8.3.3.2

Slection dune couleur

Linstruction 0x9BBD slectionne une couleur parmi les 16 disponibles. Syntaxe de linstruction 0x9BBD COULEUR

COULEUR Code couleur 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 8.3.3.3 Code HEXA 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF

Code couleur (Voir tableau ci-aprs) Couleur Bleu fonc Rouge Bleu Rose Vert Jaune Cyan Noir Blanc Brun Bleu clair Gris clair Gris fonc Orange Rouge/Blanc Gris clair/Blanc %R 0 100 24 100 0 100 0 0 100 75 50 75 33 100 100/100 75/100 Pourcentage R.V.B %V 0 0 75 50 100 100 100 0 100 24 75 75 33 75 24/100 75/100 %B 50 0 100 100 0 0 100 0 100 0 100 75 33 0 0/100 75/100

Slection de la fentre

Linstruction 0x9B2D permet de slectionner la fentre accessible en programmation. Cette instruction est modale. Syntaxe de linstruction 0x9B2D NUMERO

NUMERO : | 0x1, 0x3, 0x4 |

Valeur par dfaut : 0x1 (Fentre principale). Code HEXA 0x1 0x4 0x3 Type de fentre Fentre principale Fentre cartouche Fentre paramtrable

8 - 24

fr-938846/6

Mode transparent

8.3.4
8.3.4.1

Caractres et instructions alphanumriques


Caractres alphanumriques

Code hexa 0 1 2 3 4 5 6 7

2 ESP !

3 0 1 2 3 4 5 6 7

4 @ A B C D E F G

5 P Q R S T U V W

6 ` a b c d e f g

7 p q r s t u v w

CARACTERE NON CLIGNOTANT

" #

CURSEUR CLIGNOTANT CURSEUR FIXE CURSEUR NON VISIBLE CARACTERE CLIGNOTANT CURSEUR VERS LA DROITE CURSEUR VERS LA GAUCHE CURSEUR VERS LE BAS (LF) CURSEUR VERS LE HAUT HOME CURSEUR EN DEBUT DE LIGNE (CR) EFFACEMENT FIN LIGNE EFFACEMENT FIN PAGE EFFACEMENT FENETRE FORMAT A FORMAT B FORMAT C

$ % & '

9 A B C D E F

) * + , . /

9 : ; < = > ?

I J K L M N O

Y Z [ \ ] ^ _

i j k l m n o

y z { | } ~

REMARQUE : Les caractres cods 0x10 0x18 sont exploitables dans les fentres principale et paramtrable uniquement en format A. Les caractres cods 0x19 et 0x1A sont exploitables dans les fentres principale et paramtrable uniquement en format D.
fr-938846/6

8 - 25

8.3.4.2

Choix du format de police

La slection dun nouveau format entrane : - un effacement du curseur prcdent, - un affichage du nouveau curseur avec ses prcdents attributs (fixe, clignotant, non visible). Format A 0x9D

Fentre principale Fentre cartouche Fentre paramtrable

Taille de la police 12x36 16x24 12x36

Affichage maxi autoris 12 lignes de 40 caractres (dernire ligne hors zone visualisable) 1 ligne de 40 caractres 12 lignes de 10 caractres (dernire ligne hors zone visualisable)

Format B 0x9E

Fentre principale Fentre cartouche Fentre paramtrable

Taille de la police 06x18 08x12 06x18

Affichage maxi autoris 24 lignes de 80 caractres (deux dernires lignes hors zone visualisable) 2 lignes de 80 caractres 24 lignes de 20 caractres (deux dernires lignes hors zone visualisable)

Format C 0x9F

Fentre principale Fentre cartouche Fentre paramtrable

Taille de la police 24x56 09x12 24x56

Affichage maxi autoris 7 lignes de 20 caractres (dernires lignes hors zone visualisable) 2 lignes de 71 caractres 7 lignes de 5 caractres (dernires lignes hors zone visualisable)

8 - 26

fr-938846/6

Mode transparent

Format D (caractre largi) 0x9B DB

Fentre principale Fentre cartouche Fentre paramtrable

Taille de la police 12x18 16x12 12x18

Affichage maxi autoris 24 lignes de 40 caractres (deux dernires lignes hors zone visualisable) 2 lignes de 40 caractres 24 lignes de 10 caractres (deux dernires lignes hors zone visualisable)

8.3.4.3

Visualisation des caractres

Ces instructions sont modales et valables quelque soit le format slectionn. Caractre normal 0x9BC8 Caractre en surbrillance 0x9BC9 Caractre non soulign 0x9BCA Caractre soulign 0x9BCB Slection de la couleur 0x9BBD COULEUR

COULEUR

Code couleur (Voir 8.3.3)

Le clignotement des caractres est assur par les codes couleurs 14 et 15.

fr-938846/6

8 - 27

8.3.4.4

Visualisation du curseur

Slection curseur fixe 0x85 Slection curseur non visible 0x86 8.3.4.5 Dplacement du curseur

Dplacement sur le caractre suivant 0x88 Dplacement sur le caractre prcdent 0x89 Dplacement sur le caractre du dessous 0x8A Dplacement sur le caractre du dessus 0x8B Dplacement en dbut dcran 0x8C Dplacement en dbut de ligne 0x8D Positionnement quelconque du curseur 0x9BBF LIGNE COLONNE Description La LIGNE et la COLONNE sont dfinies par deux codes hexadcimaux LIGNE COLONNE Code position relle + 0x20 = Valeur programmer Code position relle + 0x20 = Valeur programmer

8 - 28

fr-938846/6

Mode transparent

Exemple Positionnement du curseur LIGNE 2 COLONNE 34 LIGNE 2 (3 me ligne) : 0x2 + 0x20 = 0x22 COLONNE 34 (35 me colonne) : 0x22 + 0x20 = 0x42 La commande programmer est : 0x9BBF 0x22 0x42 8.3.4.6 Effacement

Les instructions deffacement sont valables quelque soit lespace et le format. Effacement fin de ligne 0x8E Effacement fin de page 0x8F Effacement fentre 0x9C

8.3.5
8.3.5.1

Instructions graphiques
Dfinition du rfrentiel utilisateur

Linstruction 0x9BB0 permet lutilisateur de dfinir son propre rfrentiel ainsi que les caractristiques de visualisation de celui-ci (couleur, lgende .. etc...).

REMARQUES :Les bornes sont recalcules pour obtenir un facteur de conversion identique sur les deux axes.
Syntaxe de linstruction 0x9BB0 AXE1 AXE2 AXE3 AXE4 { [FORMAT] [TRAIT] [COULEUR] } LF AXE1 : NOM [SIGNE] VALEUR NOM Nom de laxe horizontal et valeur de la borne gauche. Nom de laxe Dfinit par les caractres de A Z en majuscule ou minuscule (en gnral X et Y). SIGNE Signe de la valeur de la borne. Signe algbrique + ou -. Valeur par dfaut : +. VALEUR Valeur de la borne de laxe (Valeur dcimale en pixels).

fr-938846/6

8 - 29

AXE2

Nom de laxe horizontal et valeur de la borne droite.

REMARQUE : De syntaxe identique AXE1, le nom dAXE2 doit tre le mme que celui de la borne gauche dclare.
AXE3 AXE4 Nom de laxe vertical et valeur de la borne basse.

REMARQUE : La syntaxe est identique celle de AXE1.


Nom de laxe vertical et valeur de la borne haute.

REMARQUE : De syntaxe identique AXE1, le nom dAXE4 doit tre le mme que celui de la borne basse dclare.
FORMAT : . VALEUR VALEUR format des nombres dcimaux, laffichage des bornes du rfrentiel. (ex : si format .3 la valeur 10000 devient 10.000 laffichage). Nombre de dcimales. Cette argument sexprime en dcimal. Valeur par dfaut : 0. TRAIT : M | 1, 2, 3, 4, 5 | Caractristique du trait utilis pour le trac des axes. Ne modifie pas le type de trait courant. Valeur par dfaut : 1 (trait continu). Caractre 1 2 3 4 5 COULEUR : C VALEUR VALEUR Type de trait continu pointill tiret mixte plume leve (sans trait) Code hexa 0xB1 0xB2 0xB3 0xB4 0xB5

Couleur des axes. Ne modifie pas la couleur courante. Code couleur (Voir 8.3.3). Sexprime en dcimal ou en hexadcimal. Valeur par dfaut : couleur courante au moment du trac.

Exemples Dfinition dun rfrentiel choisi par la fonction inig(..). 0x9BB0 X0 X502 Y0 Y381 (LF) Y 381

502 0 X

8 - 30

fr-938846/6

Mode transparent

Dfinition dun rfrentiel centr avec chelle 1. 0x9BB0 X-251 X251 Y-191 Y191 (LF)
+191 Y

- 251 0

+251 X

-191

Dfinition dun rfrentiel centr avec chelle 2. 0x9BB0 X-125 X126 Y-95 Y96 (LF)
+96 Y

- 125 0

+126 X

8
-95

8.3.5.2

Trac rfrentiel utilisateur

Linstruction 0x9BD8 permet de visualiser le rfrentiel utilisateur. Les indications de coordonnes sont dfinies par les arguments de linstruction 0x9BB0. Syntaxe de linstruction 0x9BD8

fr-938846/6

8 - 31

8.3.5.3

Trac Utilisateur

Linstruction 0x9BB2 permet de tracer une droite ou un arc de cercle dans le rfrentiel utilisateur. Le trac se fait avec ou sans visualisation de loutil (Voir instruction 0x9BB1, 0x9BDE, 0x9BDF). Syntaxe de linstruction 0x9BB2 { [LINCIR] [DECIHEXA] } { [TRAIT] [PLUME] [X] [Y] [I] [J] } LF

LINCIR : G | 1 2 3 |

Dfinie le type de trac (instruction non modale). Valeur par dfaut : Trac linaire. Caractre 1 2 3 Type de trac Linaire Circulaire sens anti-trigonomtrique Circulaire sens trigonomtrique. Code hexa 0xB1 0xB2 0xB3

DECIHEXA : G | 4 5 |

Type de coordonnes courantes (instruction modale). Caractre 4 5 Type de coordonne Dcimale Hexadcimale Code hexa 0xB4 0xB5

REMARQUE : Cette commande est valable pour le trac rfrentiel cran (9BB6).
TRAIT : M | 1, 2, 3, 4, 5 | PLUME : M | 6 7 10| Caractristique du trait utilis pour le trac (Voir 8.3.5.1). Type de plume courante (instruction modale). Caractre 6 7 10 X : X [VALEUR] Type de plume courante Plume (les couleurs sajoutent) Gomme (la couleur 0 est force) Plume (la couleur demande est force) Code hexa 0xB6 0xB7 0xB1B0

Dplacement sur laxe horizontal. Valeur par dfaut : Pas de dplacement suivant cet axe.

VALEUR

Abscisse du point darrive. Valeur par dfaut : 0.

Y : Y [VALEUR]

Dplacement sur laxe vertical. Valeur par dfaut : Pas de dplacement suivant cet axe.

VALEUR

Ordonne du point darrive. Valeur par dfaut : 0.

I : I [VALEUR] VALEUR

Abscisse courante du centre (Instruction modale). Abscisse du centre. Valeur par dfaut : 0.

8 - 32

fr-938846/6

Mode transparent

J : J [VALEUR] VALEUR

Ordonne courante du centre (instruction modale). Ordonne du centre. Valeur par dfaut : 0.

8.3.5.4

Dfinition doutil

Linstruction 0x9B B1 permet de dfinir loutil utilis en animation. Syntaxe de linstruction 0x9BB1 | RETICULE PASTILLE FRAISE OUTIL | LF

RETICULE : R VALEUR [COULEUR] VALEUR COULEUR : C VALEUR

Dfinition dun outil de forme rticule. Dimension dune branche dans le rfrentiel utilisateur. Sexprime en dcimale. Couleur de loutil (Voir 8.3.3.2). Valeur par dfaut : 8.

PASTILLE : P VALEUR [COULEUR] VALEUR COULEUR : C VALEUR

Dfinition dun outil de forme pastille. Rayon de la pastille dans le rfrentiel utilisateur. Sexprime en dcimal. Couleur de loutil (Voir 8.3.3.2). Valeur par dfaut : 8.

FRAISE : F VALEUR SENS [VALEUR] {[HAUTEUR] [COULEUR]} VALEUR SENS : P , Q , R , S

Dfinition dun outil fraise. Rayon de la fraise dans le rfrentiel utilisateur. Sexprime en dcimal. Sens dorientation de la fraise Caractre P Q R S Sens d'orientation X croissant Y croissant X dcroissant Y dcroissant Code hexa 0xD0 0xD1 0xD2 0xD3

VALEUR

Rayon du tore dans le rfrentiel utilisateur. Sexprime en dcimal. Valeur par dfaut : 0.

HAUTEUR : H VALEUR

Hauteur de la fraise dans le rfrentiel utilisateur. Sexprime en dcimale. Valeur par dfaut : 4 fois le rayon de la fraise.

COULEUR : C VALEUR

Couleur de loutil (Voir 8.3.3.2). Valeur par dfaut : 8.

fr-938846/6

8 - 33

OUTIL : (DEPLACEMENT (XY)...) ... [COULEUR] DEPLACEMENT : [ LEVER XY] BAISSER LEVER : M5 XY : { X Y } X Y BAISSER : M1 XY COULEUR : C VALEUR

Dfinition dun outil type quelconque. Dplacement sans trac. Lever de plume. Coordonnes du premier point de loutil dans le rfrentiel utilisateur. Sexpriment en dcimale. Abscisse du point. Ordonne du point. Baisser de plume. Coordonnes dun point de loutil en dcimale dans le rfrentiel utilisateur. Couleur de loutil (Voir 8.3.3.2). Valeur par dfaut : 0xB8.

8.3.5.5

Animation

Les instructions 0x9BDF ou 0x9BE7 slectionnent le trac utilisateur avec visualisation de loutil. Les caractristiques de visualisation sont dfinies dans la commande 0x9BB1 (Voir 8.3.5.4). Syntaxe de linstruction 0x9BDF ou 0x9BE7 8.3.5.6 Non animation

Linstruction 0x9BDE slectionne le trac utilisateur sans visualisation de loutil. Syntaxe de linstruction 0x9BDE 8.3.5.7 Trac cran

Linstruction 0x9BB6 permet le trac dune droite ou dun arc de cercle dans le rfrentiel cran. Syntaxe de linstruction 0x9BB6 {[LINCIR] [DECIHEXA] } { [TRAIT] [PLUME] [X] [Y] [I] [J] } LF

REMARQUE : La syntaxe est rigoureusement identique la commande 0x9BB2 (Voir 8.3.5.3).

8 - 34

fr-938846/6

Mode transparent

8.3.5.8

Dcalage origine cran

Linstruction 0x9BB7 permet de dcaler lorigine du rfrentiel cran.

REMARQUE : Lautre borne est recalcule de faon ne pas modifier la taille du rfrentiel.
Syntaxe de linstruction 0x9BB7 [DECIHEXA] { [X] [Y] } LF

DECIHEXA

Slection coordonnes en dcimal ou hexadcimal. Ne modifie pas le type de coordonnes courant. Valeur par dfaut : dcimal.

Valeur du dcalage horizontal du rfrentiel cran. Valeur par dfaut : Conserve le prcdent dcalage horizontal.

Valeur du dcalage vertical du rfrentiel cran. Valeur par dfaut : Conserve le prcdent dcalage vertical. Transfert point courant.

Exemple Dcalage du rfrentiel de 100 pixels sur laxe X et de 200 pixels sur laxe Y. 0x9BB7 X100 Y200 (LF) 8.3.5.9 Transfert point courant

Linstruction 0x9BE4 permet de faire concider le point courant du rfrentiel cran avec le point courant du rfrentiel utilisateur. Syntaxe de linstruction 0x9B E4

fr-938846/6

8 - 35

8.3.5.10

Icnes

Linstruction 0x9BB4 permet le trac dune icne (symbole) de dimension constante ou paramtrable, prise dans un repre orient comme le rfrentiel utilisateur et dont lorigine correspond la position courante du trac. Syntaxe de linstruction 0x9BB4 NUMERO [SUITE_PARAM] { [TRAIT] [PLUME] [COULEUR] } LF

NUMERO : N VALEUR

Numro de licne.

REMARQUE : Toutes les valeurs ne sont pas significatives (Voir Figure 8-7).
SUITE_PARAM : (PARAM)... Paramtrage de licne. Le nombre de paramtres est variable et dpend du numro dicne. Lordre dcriture des paramtres est important (P0, P1, P2, ..., Pn). Valeur par dfaut : Table des paramtres en coordonnes cran. PARAM chane : P [VALEUR] VALEUR Chane de paramtre (de P0 Pn). Valeur du paramtre en dcimal dans le rfrentiel utilisateur. Valeur par dfaut : 0. TRAIT : M | 1, 2, 3, 4, 5 | PLUME : M | 6 7 10 | COULEUR : C VALEUR Caractristique du trait utilis pour le trac (Voir 8.3.5.1). Type de plume courante (Voir 8.3.5.3). Couleur de licne (Voir 8.3.3.2). Valeur par dfaut : Couleur courante. Exemple Trac dun cercle de rayon 20 et de couleur rouge. 0x9BB4 N38 P20 M1 M6 C1 (LF)

ATTENTION

Le trac dicones ncessite davoir dfini un rfrentiel utilisateur (Commande 0x9BB0 ou fonction inig(..)).

8 - 36

fr-938846/6

Mode transparent

P0 P1 P0 P2 N1 N2 P0 P3 P3 P3 P2 P1 N6 P0 P0 P0 P1 P1 P2 N11 P0 P0 P1 P0 N17 PD P1 PA P0 N31 P0 P1 PD = PA P0 P1 P2 PD PA P0 N32 P0 P1 P0 N34 N35 N36 P1 P0 N37 P1 P2 P3 P1 PA N33 N18 N19 P1 P1 PD PA N30 PD P0 N12 P1 P0 P2 P1 P2 N13 N14 P2 P1 P0 P0 P0 P1 P2 N7 N8 P0 N9 P1 P0 P2 P3 P1 P1 P1 P2 P0 P1 N3 P2 P0 N4 P1 P0 N5 P2 P2 P1

P0 N10 P1

N16

P1

P0
PD : Point de dpart PA: Point d'arrive

P2

N38

P2 P1

N39

Figure 8.7 - Dfinition des icnes

fr-938846/7

8 - 37

8.3.5.11

Chane de caractres rfrentiel cran

Linstruction 0x9BA8 permet dafficher une chane de caractres alphanumriques au point courant cran. Syntaxe de linstruction 0x9BA8 POLICE CHAINE LF

POLICE

Numro de police. Caractre 0 1 2 3 4 5 6 7 Type de police Police 6 x 18 Police 12 x 18 Police 12 x 36 Police 24 x 56 Police 8 x 12 Police 9 x 12 Police 6 x 12 Police 16 x 24 Code hexa 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7

CHAINE 8.3.5.12

Tous les caractres alphanumriques autoriss dans la police. Chane de caractres rfrentiel utilisateur

Linstruction 0x9B98 permet dafficher une chane de caractres alphanumriques au point courant utilisateur. Syntaxe de linstruction 0x9B98 POLICE CHAINE LF

POLICE CHAINE 8.3.5.13

Numro de police (Voir ). Tous les caractres alphanumriques autoriss dans la police. Remplissage zone utilisateur

Les instructions 0x9BA9 et 0x9BAA permettent de remplir une zone du rfrentiel utilisateur. Le remplissage sarrte si : - la limite de la fentre est atteinte, - la borne du clipping (coupure) est atteinte, - la couleur de remplissage est rencontre. Syntaxe de linstruction 0x9BA9 { [CLIP] [CLIP] [CLIP] [CLIP] [X] [Y] [COUL-CONT] } LF 0x9BAA { [CLIP] [CLIP] [CLIP] [CLIP] [X] [Y] [COUL-CONT] } LF

8 - 38

fr-938846/6

Mode transparent

ATTENTION

Les arguments [CLIP], [X] et [Y] sont affects des signes + et -. Le signe + est cod par le caractre ASCII 0. Le signe - est cod par le caractre ASCII ?.
CLIP : | G D H B | [VALEUR] Slection des bornes de clipping Valeur par dfaut : pas de clipping. Caractre G B H D VALEUR Slection des bornes Gauche Bas Haut Droit Code hexa 0xC7 0xC2 0xC8 0xC4

Valeur de la borne en hexadcimal dans le rfrentiel utilisateur. Valeur par dfaut : 0.

Abscisse dun point compris dans la zone en hexadcimal dans le rfrentiel utilisateur. Valeur par dfaut : abscisse du point courant.

Ordonne dun point compris dans la zone en hexadcimal dans le rfrentiel utilisateur. Valeur par dfaut : ordonne du point courant.

8
Code hexa 0xC3

COUL-CONT | "C" "c"| [VALEUR]

Couleur du contour Caractre C Dfinition Recherche du contour dans les quatre plans (Arrt sur couleur exacte) Recherche du contour dans les plans relatifs la couleur (Arrt sur une composante de la couleur)

0xE3

Valeur par dfaut : couleur courante et C slectionn.

REMARQUE : Les couleurs sont codes sur 4 bits. Une composante de la couleur choisie est une couleur avec les mme bits 1 que la couleur choisie (ex : Si la couleur choisie est Jaune c5 (soit 0101 en binaire), les composantes de la couleur sont noir (soit 0111 en binaire), orange(soit 1101 en binaire) et gris clair/blanc (soit 1111 en binaire)).
Exemple Remplissage dun rectangle rouge 0x9BA9 G09 D0100 B0120 H0120 X050 Y0110 C1

fr-938846/6

8 - 39

8.3.5.14

Remplissage zone cran

Les instructions 0x9BAB et 0x9BAC permettent de remplir une zone du rfrentiel cran. Syntaxe de linstruction 0x9BAB { [CLIP] [CLIP] [CLIP] [CLIP] [X] [Y] [COUL-CONT] } LF 0x9BAC { [CLIP] [CLIP] [CLIP] [CLIP] [X] [Y] [COUL-CONT] } LF

REMARQUE : la syntaxe est rigoureusement identique celle de la commande 9BA9 (Voir 8.3.5.13). Les coordonnes sont dans le rfrentiel cran.
8.3.5.15 Trac de cartouche

Linstruction 0x9BBC permet de sparer verticalement la fentre en 10 zones. Syntaxe de linstruction 0x9BBC LF

REMARQUE : Bien qutant utilisable dans toutes les fentres, cette instruction na de sens que dans la fentre cartouche.

8 - 40

fr-938846/7

Entres/sorties analogiques

9 Entres/sorties analogiques

9.1 9.2 9.3 9.4 9.5

Gnralits Configuration des cartes E/S analogiques Ecriture dune sortie analogique Lecture dune entre analogique Redirection dune carte analogique

9-3

anas anao anai anaa

9-3 9-5 9-6 9-7

fr-938846/3

9-1

9-2

fr-938846/3

Entres/sorties analogiques

9.1

Gnralits

Un maximum de 18 CNA et 20 CAN sont disponibles sur les systme NUM 1060. Les entres/sorties analogiques sont accessibles par le programme utilisateur, par le programme de pice ou les oprateurs dynamiques. Elle sont rparties comme suit : Carte processeur machine 1060 srie I 1060 srie II 1060 srie II 4 CAN - 2 CNA 4 CAN - 2 CNA Carte 8E/8S analogique (2 cartes maxi) 8CAN - 8CNA 8CAN - 8CNA Carte UCSII

2CAN - 1CNA

Les E/S analogiques sont repres gographiquement par le N demplacement de la carte et le N de voie dans la carte. Le codage se fait sur un octet. Les bits 0 3 de loctet codent le N de voie (0 7). Les bits 4 7 codent le N de carte. L'unit centrale est numrote 1. Loi d'volution Les entres et sorties analogiques sont des valeurs signes sur 16 bits. La loi d'volution de ces valeurs est : - pour les valeurs positives : de 0 --> 0x7FFF pour 0+ --> n Volts (Avec n : valeur de la pleine chelle) - pour les valeurs ngatives : de 0xFFFF --> 0x8000 pour 0- --> -n Volts (Avec n : valeur de la pleine chelle) Ceci est vrai quelquesoit la rsolution du CAN ou CNA (8 ou 12 bits). La pleine chelle dpend des caractristiques de la carte utilise (Voir Manuel d'installation et de mise en oeuvre). La prcision dpend du format du CNA ou CAN utilis (8 bits, 8 bits + signe ou 12 bits + signe).

9.2

Configuration des cartes E/S analogiques

anas

Syntaxe de linstruction anas(cv, wconfig )

cv : config : Description

Octet dsignant la carte (la voie est non significative). Configuration code sur 16 bits.

Cette fonction permet la configuration du nombre dentres analogiques utiles (1 ou 8) et du gain de chaque entre (1 ou 10). La priode de rafrachissement interne de chaque entre analogique est de 1,36 ms lorsque les 8 entres sont configures et de 0,170 ms lorsque une seule entre est configure (lentre 0). Cette fonction est facultative. A linitialisation du systme les cartes sont configures en 8 entres avec gain de 1.

REMARQUE : Cette fonction concerne uniquement les Entres/Sorties analogiques des cartes additionnelles.
fr-938846/8

9-3

Dtail de l'argument cv
Emplacement de la carte Bit 7 N de la voie Bit 0

Se reporter au Manuel d'installation et de mise en oeuvre pour dfinir l'emplacement de la carte sur le bus systme. Les valeurs 0 7 correspondent aux numros de voie des huit registres d'entres ou des huit registres de sorties. Format du mot de configuration

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Configuration (1 ou 8 entres) 0 = 1 entre 1 = 8 entres Gain de l'entre analogique 7 0 = gain de 1 1 = gain de 10 Gain de l'entre analogique 6 0 = gain de 1 1 = gain de 10 Gain de l'entre analogique 5 0 = gain de 1 1 = gain de 10 Gain de l'entre analogique 4 0 = gain de 1 1 = gain de 10 Gain de l'entre analogique 3 0 = gain de 1 1 = gain de 10 Gain de l'entre analogique 2 0 = gain de 1 1 = gain de 10 Gain de l'entre analogique 1 0 = gain de 1 1 = gain de 10 Gain de l'entre analogique 0 0 = gain de 1 1 = gain de 10

Code retourn Si OK 0 Si dfaut 1: 2: Carte absente. Paramtre carte rron.

9-4

fr-938846/7

Entres/sorties analogiques

9.3

Ecriture dune sortie analogique

anao

Syntaxe de linstruction anao( cv, woutput )

cv : woutput : Description

Adresse de la sortie code sur un octet. Valeur entire signe sur 16 bits.

Ecriture du CNA Nv de la carte N c. Dtail de l'argument cv


Emplacement de la carte Bit 7 N de la voie Bit 0

Se reporter au Manuel d'installation et de mise en oeuvre pour dfinir l'emplacement de la carte sur le bus systme. Les valeurs 0 7 corespondent aux numros de voie des huit registres d'entres ou des huit registres de sorties. Exemple : Programmation de la vitesse de broche pilote par automate Lire la fonction auxiliaire du groupe (M3 ou M4) donnant le sens de rotation de la broche: - M03_g = 1 : antitrigonomtrique - M04_g = 1 : trigonomtrique Lire le module de la vitesse de broche (VITBRb); la valeur du module varie de 0 (vitesse nulle) 0x7FFF (vitesse maximum). Envoyer au CNA la valeur code signe sur 16 bits, le signe dpendant du cablage du variateur de broche et de la fonction auxiliaire du groupe: - si la valeur est positive ou nulle, ANAO(cv,VITBRb), - si la valeur est strictement ngative, ANAO(cv,~VITBRb). Code retourn Si OK 0 Si dfaut 1: 2: 3: Carte absente. Paramtre carte rron. Paramtre voie erron.

fr-938846/7

9-5

9.4

Lecture dune entre analogique

anai

Syntaxe de linstruction anai( cv, &winput )

cv : &winput :

Adresse de lentre (code sur un octet). Adresse dune variable (%Mxxx. W ou %Vxxx. W ) qui va recevoir la valeur de lentre sur 16 bits signes.

Description Lecture dune entre analogique. Dtail de l'argument cv


Emplacement de la carte Bit 7 N de la voie Bit 0

Se reporter au Manuel d'installation et de mise en oeuvre pour dfinir l'emplacement de la carte sur le bus systme. Les valeurs 0 7 corespondent aux numros de voie des huit registres d'entres ou des huit registres de sorties. Exemple anai(0x37, %V100.&) Code retourn Si OK 0 Si dfaut 1: 2: 3: Carte absente. Paramtre carte rron. Paramtre voie erron. Lecture de lentre N7 de la carte N3. Le rsultat est transfr dans %V100.W.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&winput" incorrect.

9-6

fr-938846/7

Entres/sorties analogiques

9.5

Redirection dune carte analogique

anaa

Syntaxe de linstruction anaa( cv_initial, cv_futur )

cv_initial : cv_futur : Description

Octet codant le N de carte (la voie est non significative). Octet codant le N de carte (la voie est non significative).

Redirection dune carte analogique. Cette fonction, facultative, permet de rediriger les fonctions anas(cv_initial, ..), anao(cv_initial, ...), anai(cv_initial, ..) vers la carte cv_futur.

ATTENTION

Cette fonction est autorise uniquement dans la tche %INI.


Dtail des arguments cv-initial et cv-futur
Emplacement de la carte Bit 7 N de la voie Bit 0

Se reporter au Manuel d'installation et de mise en oeuvre pour dfinir l'emplacement de la carte sur le bus systme. Les valeurs 0 7 corespondent aux numros de voie des huit registres d'entres ou des huit registres de sorties. Code retourn Si OK 0 Si dfaut 1: 2: 4: Carte finale absente Paramtre carte incorrect Fonction appele dans une tche autre qu'un %INI

fr-938846/7

9-7

9-8

fr-938846/3

10 Lecture/Ecriture explicites des cartes Entres/Sorties

10.1 Gnralites 10.2 Lecture explicite dune carte entre 10.3 Ecriture explicite dune carte sortie

10-3

read_i write_q

10-3 10-4

10

fr-938846/3

10 - 1

10 - 2

fr-938846/3

Lecture/Ecriture explicites des cartes Entres/Sorties

10.1

Gnralites

Le programmeur la possibilit daccder immdiatement aux entres/sorties sur le bus srie (SB), sans attendre leur rafrachissement par le moniteur.

REMARQUE : Cette fonctionnalit doit tre rserve aux cas prioritaires car elle est coteuse en temps CPU.

10.2

Lecture explicite dune carte entre

read_i

Syntaxe de linstruction read_i( rcmv, n )

rcmv : n: Fonctionnement

Mot codant, le rack , la carte , le module et la voie. Nombre doctets lire.

Le systme vrifie la cohrence des paramtres rcmv et n. Le systme lit immdiatement la carte rc et met jour la zone image %Ircmv %Ircmv+n. Dtail de l'argument rcmv

Bit 15

Bit 0

N de voie (De 0x0 0xF) N de module (De 0x0 0x3) N de carte (De 0x1 0xC) N de rack (De 0x0 0x6)

10

Exemples read_i(0x6b10, 1) read_i(0x6b10, 2) read_i(0x6b10, 4) Provoque le rafrachissement de %I6b10.B Provoque le rafrachissement de %I6b10.W Provoque le rafrachissement de %I6b10.L

fr-938846/3

10 - 3

Code retourn Si OK 0: Si dfaut 1: 2: 3: -1 : Les variables demandes dpassent les limites de la carte. Il y a nammoins change aprs troncature aux limites autorises dans la carte. Demande daccs une carte absente. Paramtre rcvm en dehors des limites Dfaut dans lchange sur le bus. Lecture OK.

10.3

Ecriture explicite dune carte sortie

write_q

Syntaxe de linstruction write_q( rcmv, n )

rcmv : n: Fonctionnement

Mot codant, le rack, la carte, le module-et la voie. Nombre doctets crire.

Le systme vrifie la cohrence des paramtres rcmv et n. Le systme crit immdiatement la zone image %Qrcmv %Qrcmv+n dans la carte rc. Dtail de l'argument rcmv

Bit 15

Bit 0

N de voie (De 0x0 0xF) N de module (De 0x0 0x3) N de carte (De 0x1 0xC) N de rack (De 0x0 0x6)

ATTENTION

L'instruction provoque une criture rapide des sorties choisies la condition que celles-ci aient t crites prcdemment.

10 - 4

fr-938846/7

Lecture/Ecriture explicites des cartes Entres/Sorties

Exemples: %QB04.B= 0xAA write_q(0xb04, 1) %QB04.W= 0xAAFC write_q(0xb04, 2) %QB04.L= 0xAAFC0000 write_q(0xb04, 8) Code retourn Si OK 0: Si dfaut 1: 2: 3: -1 : Les variables demandes dpassent les limites de la carte. Il y a nammoins change aprs troncature aux limites autorises dans la carte. Demande daccs une carte absente. Paramtre rcvm en dehors des limites Dfaut dans lchange sur le bus. Ecriture OK. Provoque lcriture immdiate de %Qb04.L et %Qb08.L avec 0xAAFC0000 Provoque lcriture immdiate de %Qb04.W avec 0xAAFC provoque lcriture immdiate de %Qb04.B avec 0xAA

10

fr-938846/7

10 - 5

10 - 6

fr-938846/3

11 Entres interruptions

11.1 Gnralits
11.1.1 11.1.2 Prise de cote la vole Interruptions affectes une tche %TH

11-3 11-3 11-3 11-5 11-5 11-6 11-8 11-9

11.2 11.3 11.4 11.5 11.6

Principe daffectation des lignes Association entres interruptions/ groupes daxes Configuration dune entre interruption Lecture dune entre interruption Association tche %TH avec une entre IT

iti_gr itictl itiget thiti

11

fr-938846/3

11 - 1

11 - 2

fr-938846/3

Entres interruptions

11.1

Gnralits
Carte processeur machine Carte IT/Ligne srie (2 cartes maxi) iti4 itiB iti4 itiB Carte UCSII

La fonction automatisme traite les interruptions prioritaires sur les lignes :

1060 srie I 1060 srie II 1060 srie II

iti0 iti3 iti0 iti3

iti0

Les interruptions prioritaires sont associe : - la fonction iti_gr() pour prise de cote la vole, - la fonction thiti() pour drouter les tches priodiques du programme utilisateur et excuter une routine dinterruption programme dans une tche hard %TH.

11.1.1

Prise de cote la vole

Ces interruptions sont prises en compte par la fonction G10 dans le programme pices (Voir Manuel de programmation). Une interruption mise sur une des lignes iti0 itiB est traite par la fonction automatisme. Ds lmission de l IT, le moniteur informe la fonction CN de rafrachir les paramtres externes E70001 E78001 (rfrence de position dun axe dun groupe sur prise de cote au vol). Ces interruptions externes, ddies au palpage, sont paramtrables par la fonction iti-gr(). La gestion des interruptions doit tre programme dans %TS0.

REMARQUES :En multigroupe daxes, si deux interruptions arrivent en mme temps, linterruption affecte la ligne iti0 est la plus prioritaire, linterruption affecte la ligne itiB est la moins prioritaire. Sur une mme ligne, si une interruption affecte au groupe daxes 1 arrive en mme temps quune interruption affecte au groupe daxes 8, cest linterruption affecte au groupe 1 qui sera traite en priorit par le moniteur.
11.1.2 Interruptions affectes une tche %TH

Laffectation dune ligne iti0 itiB une tche hard provoque lexcution de la routine dinterruption programme dans la tche %TH.

11
! ATTENTION Dans le cas ou une tche hard et un palpage sont affects et programms sur la mme ligne, le programme utilisateur est drout aprs la prise de cote effective par le moniteur.

fr-938846/3

11 - 3

PALPEUR

PROCESSEUR MACHINE

FONCTION AUTOMATISME

iti0 itiB
Halt Def

MONITEUR Tche systme Informe la fonction CN de rafrachir les E7 x 001

FONCTION CN

PROGRAMME PIECE %

I T . E X T

G10

C A N / C N A TIMER S E R I E

TTL

PROGRAMME UTILISATEUR TS0

iti_gr(..)
RS 232C

Proc Mach

Figure 11.1 - Traitement pour prise de cote la vole


PROCESSEUR MACHINE

PROGRAMME (Fonction automatisme)

TACHE PERIODIQUES
Halt Def

I T . E X T

IT n

. . %TS0 %TS4 . %TF0 %TF15 . %SP0 %SP255

%TH.x

iti0 itiB
C A N / C N A TIMER S E R I E

IT n1

%TH.y
TTL

RS 232C

Proc Mach

Figure 11.2 - Interruptions affectes une TH

11 - 4

fr-938846/3

Entres interruptions

11.2

Principe daffectation des lignes

NUM 1060 srie I et NUM 1060 srie II (multicarte) Les numro dentres interruptions sont affectes par ordre croissant : - sur la carte processeur machine, - sur la premire carte IT/Lignes sries rencontre dans le rack, - sur la seconde carte IT/Lignes sries rencontre dans le rack. N broches 5V 24VCommun 1 2 9 10 11 3 4 5 12 13 14 6 1 2 5 3 4 5 6 7 5 8 9 5 1 2 5 3 4 5 6 7 5 8 9 5 NUM 1060 srie II (UCSII) Une seule ligne est disponible : N broches 5V 24VCommun 6 1 2 N entre interruption Ligne 0 Type de carte Carte UCSII N entre interruption Ligne 0 Ligne 1 Ligne 2 Ligne 3 Ligne 4 Ligne 5 Ligne 6 Ligne 7 Ligne 8 Ligne 9 Ligne A Ligne B Type de carte Carte processeur machine Carte processeur machine Carte processeur machine Carte processeur machine Premire carte IT/Lignes sries Premire carte IT/Lignes sries Premire carte IT/Lignes sries Premire carte IT/Lignes sries Seconde carte IT/Lignes sries Seconde carte IT/Lignes sries Seconde carte IT/Lignes sries Seconde carte IT/Lignes sries

11.3

Association entres interruptions/ groupes daxes

iti_gr
11

Syntaxe de linstruction iti_gr( n_iti, groupe)

n_iti : groupe :

Numro de lentre interruption (de 0 0xB). Liste de bits indiquant les groupes daxes impliqus dans cette interruption.

Cette fonction permet dassocier une entre IT avec un (des) groupe(s) daxes. Fonctionnement Une interruption sur lentre provoquera la lecture par le moniteur de tous les coupleurs des axes constitutifs des groupes dclars. Le moniteur signale ensuite loccurrence dune lecture daxe la fonction CN et ceci groupe daxe par groupe daxe.

fr-938846/7

11 - 5

Dtail de l'argument groupe


Groupe 8 Groupe 7 Groupe 6 Groupe 5 Groupe 4 Groupe 3 Groupe 2 Groupe 1

Bit 0 = groupe invalid Bit 1 = groupe valid

Bit 7

Bit 0

Code retourn Si OK 0 Si dfaut -1 : n_iti non compris entre 0 et 0xB

11.4

Configuration dune entre interruption

itictl

Syntaxe de linstruction itictl ( n_iti, iti_config )

n_iti : iti_config :

Numro dune entre interruption (De 0 0xB). Valeur code de configuration du composant.

Permet la configuration dune entre interruption. Fonctionnement La configuration du composant, code sur 8 bits, est transmise dans le paramtre iti_config. Aprs dtection du changement dtat, la fonction automatisme attend la stabilit du signal avant de prendre en compte le changement dtat. Les possibilits de choix de filtrage se font indpendamment du front actif. Le temps de filtrage correspond au temps de stabilit avant prise en compte. La dure du filtrage est paramtrable avec les valeurs suivantes : - 0,5 ms, - 1 ms, - 4 ms, - 8 ms, - 1 3 ms en cycle rapide (sans filtrage).

11 - 6

fr-938846/7

Entres interruptions

Exemple Filtrages sur front montant T1 et sur front descendant T2.


Etat de stabilit pendant T1 Etat de stabilit pendant T2 ENTREE T1 SORTIE T2

ENTREE : signal mis par le palpeur SORTIE : signal envoy pour traitement aprs filtrage

Dtail du paramtre iti_config

Bit 7

Bit 0

Validation de l'IT

Filtrage Front descendant Sans filtrage = 0 Avec filtrage = 1

Filtrage Front montant Sans filtrage = 0 Avec filtrage = 1

Front actif Montant = 0 Descendant = 1 Dure du cycle sur front descendant Bit 4 Bit 3 0 0 0,5 ms 0 1 1 ms 1 0 4 ms 1 1 8 ms Code retourn Si OK 0 Dure du cycle sur front montant Bit 1 Bit 0 0 0 0,5 ms 0 1 1 ms 1 0 4 ms 1 1 8 ms

11

fr-938846/7

11 - 7

11.5

Lecture dune entre interruption

itiget

Syntaxe de linstruction itiget( n_iti )

n_iti : Description

Numro dune entre interruption (De 0 0xB).

itiget() retourne le registre dtat de lentre interruption. Ce paramtre est mis jour chaque cycle HTR par le moniteur. Le retard avec ltat rel de la ligne est au maximum de 20 ms Dtail du registre

Bit 7

Bit 0 Mis 1 chaque interruption Etat de l'entre interruption

Lappel de itiget() provoque la mise 0 du bit 0 du registre (mmorisation de loccurrence dune IT). Code retourn Si OK Registre dtat de lentre Si dfaut 0 : n_iti non compris entre 0 et 0xB

11 - 8

fr-938846/7

Entres interruptions

11.6

Association tche %TH avec une entre IT

thiti

Syntaxe de linstruction thiti( numro_th, n_iti )

numro_th : n_iti :

Numro de la tache %TH. Numro de lentre interruption (De 0 0xB).

Permet dassocier la tche %TH avec une entre interruption. Fonctionnement Lorsque lentre IT provoque une interruption lectronique, le systme appelle la tche %TH associe. Code retourn Si OK 0

11

fr-938846/7

11 - 9

11 - 10

fr-938846/3

Lignes sries

12 Lignes sries

12.1 12.2 12.3 12.4 12.5 12.6 12.7

Gnralites Initialisation d'une ligne Emission dun tampon Rception d'un tampon Lecture de ltat dune ligne srie Contrle du pilote de ligne srie Standards de transmission
12.7.1 12.7.1.1 12.7.1.2 12.7.1.3 12.7.2 12.7.2.1 12.7.2.2 12.7.2.3 12.7.3 12.7.4 12.7.4.1 12.7.4.2 Avant logiciel indice F Sans contrle de flux Contrle de flux RTS/CTS Contrle de flux Xon/Xoff Standard RS232 Sans contrle de flux Contrle de flux RTS/CTS Contrle de flux Xon/Xoff Standard RS485 Standard RS422 Sans contrle de flux Contrle de flux Xon/Xoff

12-3

comf comout comin comreg comctl

12-4 12-6 12-7 12-10 12-11 12-12 12-12 12-12 12-12 12-12 12-12 12-12 12-12 12-13 12-13 12-13 12-13 12-13

12

fr-938846/3

12 - 1

12 - 2

fr-938846/8

Lignes sries

12.1

Gnralites
Carte processeur CN DNC - PERIPH Carte processeur machine RS232C - TTL RS232C - TTL Carte IT/Ligne srie (2 cartes maxi) Ligne 1 Ligne 4 Ligne 1 Ligne 4 Carte UCSII

La fonction automatisme pilote 12 lignes sries rparties comme suit :

1060 srie I 1060 srie II 1060 srie II

COMM 1 - COMM 2

Le programme utilisateur peut grer le chargement et le dchargement dinformations avec un priphrique dans le cadre dapplication spcifique. Pour plus de prcision sur linstallation de ces lignes, se reporter au Manuel d'installation et de mise en oeuvre. Principe de numrotation des lignes NUM 1060 srie I et NUM 1060 srie II (Multicarte) Le numro des lignes est fig sur les cartes processeur CN et processeur machine : - N0 pour la ligne TTL du processeur machine, - N1 pour la ligne RS232C du processeur machine, - N2 pour la ligne DNC du processeur CN. - N3 pour la ligne PERIPH. du processeur CN; Ensuite les numros de 4 7 sont affects la premire carte IT/LIGNES SERIES rencontr dans le rack et les numros de 8 0xB sont affects la seconde carte IT/LIGNES SERIES rencontr (Balayage de droite gauche).

5 0

5 2 0 1

6 1

6 3 7

B Carte IT/Lignes sries

7 Processeur machine

Carte Processeur IT/Lignes sries CN

Processeur machine

NUM 1060 srie II


NUM 1060 srie II (UCSII) Le numro des lignes est fig sur la carte UCSII : - N0 pour la ligne COMM 1, - N1 pour la ligne COMM 2,

NUM 1060 srie I

12

fr-938846/3

12 - 3

12.2

Initialisation d'une ligne

comf

Syntaxe de linstruction comf( n_port, vitemi, vitrec, format )

n_port: vitemi: vitrec: format: Fonctionnement

Numro du port de communication (0 0xB). Vitesse dmission. Vitesse de rception. Codage du format de donnes et contrle de flux.

La fonction comf() alloue la ligne la fonction automatisme et configure le port. Une fois initialise, la ligne ne peut plus tre alloue un autre utilisateur (Fonction CN, ... etc ..). L'appel de la fonction comf( n_port, vitemi, vitrec, 0 ) a pour effet de librer la ligne et de la rendre disponible pour un autre utilisateur.

ATTENTION

Dans tous les cas, les vitesses dmission et de rception doivent tre identiques. Dans le cas de l'initialisation d'une ligne de la carte processeur CN (Ligne 2 ou 3), il est ncessaire d'appeler la fonction comf() dans une tche %TF.
Valeur des arguments vitmi et vitrec Les valeurs correspondent des vitesses en bauds. Valeur de vitmi et vitrec 300 600 1200 2400 4800 9600 19200 Vitesse (en bauds) 300 600 1200 2400 4800 9600 19200

12 - 4

fr-938846/3

Lignes sries

Dtail de l'argument format

0
Bit 15

0
Bit 0

Contrle de flux Xon/Xoff = 0 RTS/CTS = 1 Parit impaire = 0 paire = 1 Standard grer Bit 10 Bit 9 0 0 Avant indice F 0 1 RS232 indice F 1 0 RS485 indice F 1 1 RS422 indice F Parit inactive = 0 active = 1 Bit 4 0 1 1 Bit 6 0 0 1 1 Bit 5 0 1 0 1 Bit 3 1 1 start, 1stop 0 1 start, 1,5 stops 1 1 start, 2 stops

Activation du contrle de flux Contrle actif = 0 Contrle inactif = 1

8 bits 7 bits 6 bits 5 bits

REMARQUE : Dans le cas d'une volution future, il est recommand de mettre les bits non significatifs 0.
Code retourn Si OK 0 Si dfaut -1 Argument format incohrent. Ligne dj alloue un autre utilisateur que la fonction automatisme.

12

fr-938846/8

12 - 5

12.3

Emission dun tampon

comout

Syntaxe de linstruction comout(n_port, &buffer, nb)

n_port : &buffer : nb :

Numro du port srie. Adresse du tampon mettre. Nombre doctets mettre (1 nb 255). nb est cod sur un octet non sign.

Permet lmission dun tampon sur une ligne de communication srie n_port. Fonctionnement A lappel de cette fonction, le systme recopie le tampon &buffer, lance l'mission et retourne lappelant. Cette fonction est non bloquante et lmission se poursuit sous IT jusqu la fin du tampon. La fonction comreg() permet de connatre ltat de la transmission en cours. Lappel de comout(n_port, &buffer, 0) provoque labandon dune ventuelle mission en cours. Code retourn Si OK 0 Si dfaut -1 : n_port non valide Ligne non initialise Emission en cours Argument nb suprieur 255 Pas de full duplex avec contrle de flux Xon/Xoff

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&buffer" incorrect, - "&buffer+nb" hors zone autorise.

12 - 6

fr-938846/7

Lignes sries

BUFFER LINEAIRE 256 CARACTERES

BUFFER A EMETTRE

@ %M.n
Emission vers le priphrique Fonction comout()

PERIPHERIQUE

Figure 12.1 - Emission dun tampon

12.4

Rception d'un tampon

comin

Syntaxe de linstruction comin(n_port, &buffer, nb)

n_port : &buffer : nb :

Numro du port srie. adresse du tampon o stocker les caractres reus. Nombre maximum de caractres lire.

Permet la lecture du tampon de rception de la ligne srie n_port. Fonctionnement Le systme gre un tampon de rception en anneau. La fonction comin() permet de lire tout ou partie de ce tampon. Le nombre de caractres recopis est gal au minimum du nombre de caractres demands (nb) et du nombre de caractres prsents dans le buffer en anneau. Si la ligne n'avait pas encore t mise l'coute avec la fonction comctl(), le premier appel de comin() effectue une mise l'coute automatique. Lappel de comin(n_port, &buffer, 0) provoque larrt et linitialisation de la rception.

12

fr-938846/3

12 - 7

Code retourn Si OK n >= 0 Si dfauts -1 : n_port non valide Ligne non initialise. Pas de full duplex avec contrle de flux Xon/Xoff. Nombre de caractres recopis dans &buffer.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&buffer" incorrect, - "&buffer+nb" hors zone autorise.
MONITEUR PROGRAMME UTILISATEUR

BUFFER EN ANNEAU 256 CARACTERES

BUFFER DE RECEPTION

@ %M.n
Emission vers la fonction automatisme Fonction comin()

PERIPHERIQUE
Fonction comin()

BUFFER DE RECEPTION

@ %M.n +1

Figure 12.2 - Rception dun tampon

12 - 8

fr-938846/7

Lignes sries

Rception de caractres d'un priphrique

Initialisation de la ligne faite Oui

Non

Erreur de rception

Nb de caractres = 0 Non

Oui

Arrt rception

Oui

Nb demand <= Nb disponible Non

Copie dans le buffer de Nb demand

Copie dans le buffer en anneau de Nb disponible

Attente de la fonction comin()

Figure 12.3 - Traitement dune rception par le moniteur

12

fr-938846/3

12 - 9

12.5

Lecture de ltat dune ligne srie

comreg

Syntaxe de linstruction comreg(n_port)

n_port : Description

Numro du port srie.

Permet de retourner ltat gnral de la ligne srie n_port.

ATTENTION

Dans le cas de l'initialisation d'une ligne de la carte processeur CN (Ligne 2 ou 3), il est ncessaire d'appeler la fonction comreg() dans une tche %TF.
Code retourn

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Transmission en cours Erreur de transmission Initialisation faite Transmission stoppe (CTS = 1) Rception en cours Non significatif Non significatif Buffer moniteur satur Image de RTS (1 --> inactif) Image de CTS (1 --> inactif) Image de DCD (1 --> inactif) Image de DSR (1 --> inactif) Erreur de format Erreur de parit Erreur de dbordement Caractres disponibles dans le buffer moniteur

12 - 10

fr-938846/3

Lignes sries

12.6

Contrle du pilote de ligne srie

comctl

Syntaxe de linstruction comctl(n_port, config)

n_port : config :

Numro du port srie. Valeur code de configuration.

La fonction comctl( ) permet le contrle du pilote de ligne srie n_port. Fonctionnement Laction dpend du contrle de flux utilis et de ltat de ligne au moment de la demande. Valeur de config Pas de rception en cours et config == 0 Rception en cours et config == 1 Code retourn Si OK 0 Si dfauts -1 : Ligne non initialise. Pas de full duplex avec contrle de flux Xon/Xoff. Demande (config) incohrente avec l'tat en cours. Sans contrle de flux Mise l'coute de la ligne Aucun effet Contrle de flux RTS/CTS Mise l'coute de la ligne et activation du signal RTS Dactivation du signal RTS Contrle de flux Xon/Xoff Mise l'coute de la ligne et mission du caractre Xon Emission du caractre Xoff

12

fr-938846/7

12 - 11

12.7
12.7.1
12.7.1.1

Standards de transmission
Avant logiciel indice F
Sans contrle de flux

Le standard de transmission est dfini dans l'argument format de la fonction comf() (Voir 12.2).

Aucun signal hardware ou software n'est gr en mission comme en rception. Un fonctionnement bidirectionnel simultan (full duplex) est possible. 12.7.1.2 Contrle de flux RTS/CTS

Le signal RTS est gr lors d'une rception afin de stopper ou de relancer les transferts. En mission, RTS reste activ durant toute la transmission du buffer. Un fonctionnement bidirectionnel simultan (full duplex) est impossible.

REMARQUE : Le fait de ne pas tenir compte des signaux de contrle RTS et CTS (Avec un cble reboucl RTS sur CTS) permet un fonctionnement bidirectionnel simultan sans contrle de flux.
12.7.1.3 Contrle de flux Xon/Xoff

En rception, l'change est contrl par l'envoi de caractres de contrle sur le canal mission. Ds l'mission du caractre DC1 (Xon) par la rception, l'entit mettrice est autorise mettre. A l'mission du caractre DC3 (Xoff) par la rception, l'entit mettrice dispose d'un dlai quivalent au temps de transmission de 20 caractres pour suspendre son mission.

12.7.2

Standard RS232

A partir du logiciel indice F. 12.7.2.1 Sans contrle de flux

Aucun signal hardware ou software n'est gr en mission comme en rception. Un fonctionnement bidirectionnel simultan (full duplex) est possible. 12.7.2.2 Contrle de flux RTS/CTS

En rception, le signal RTS est gr afin de contrler la ligne. L'mission ne positionne pas ce signal. Ds l'invalidation de ce signal, l'metteur doit suspendre l'mission de ces donnes. Seul un caractre supplmentaire pourra tre pris en compte aprs invalidation de la ligne RTS. Vu du cot de l'metteur, l'invalidation du signal CTS, l'mission doit tre suspendue. Un fonctionnement bidirectionnel simultan (full duplex) est possible.

12 - 12

fr-938846/3

Lignes sries

12.7.2.3

Contrle de flux Xon/Xoff

En rception, l'change est contrl par l'envoi de caractres de contrle sur le canal mission. Ds l'mission du caractre DC1 (Xon) par la rception, l'entit mettrice est autorise mettre. A l'mission du caractre DC3 (Xoff) par la rception, l'entit mettrice dispose d'un dlai quivalent au temps de transmission de 20 caractres pour suspendre son mission. Un fonctionnement bidirectionnel simultan (full duplex) est impossible.

12.7.3

Standard RS485

A partir du logiciel indice F. Dans le standard RS485, il est impossible de raliser un contrle de flux. Si le standard RS485 est valid dans la fonction comf(), la valeur du bit 0 de l'argument format est non significative. Le signal RTS est actif durant l'mission d'un buffer et inactif lors d'une rception, ceci afin de piloter les botiers d'adaptation RS232/RS485 en mission/rception.

ATTENTION

La gestion du standard RS485 demande un cblage adapt des botiers d'adaptation RS232/RS485. 12.7.4 Standard RS422

A partir du logiciel indice F. Dans ce standard, le signal RTS est activ durant toute l'utilisation de la ligne. 12.7.4.1 Sans contrle de flux

Aucun signal hardware ou software n'est gr en mission comme en rception. Un fonctionnement bidirectionnel simultan (full duplex) est possible. 12.7.4.2 Contrle de flux Xon/Xoff

En rception, l'change est contrl par l'envoi de caractres de contrle sur le canal mission. Ds l'mission du caractre DC1 (Xon) par la rception, l'entit mettrice est autorise mettre. A l'mission du caractre DC3 (Xoff) par la rception, l'entit mettrice dispose d'un dlai quivalent au temps de transmission de 20 caractres pour suspendre son mission.

12

fr-938846/3

12 - 13

12 - 14

fr-938846/3

Fonction timer

13 Fonction timer

13.1

Prsentation de la fonction timer

La fonction timer est disponible uniquement sur les systme NUM 1060 srie I et NUM 1060 srie II multicarte. La fonction automatisme met disposition de lutilisateur deux timers A et B. Les timers A et B sont constitus dun dcompteur 8 bits capable de gnrer une impulsion chaque changement de valeur de son contenu. Le dcompteur est alors immdiatement recharg avec une valeur programme et conserve dans le registre de donne du timer.

13.2
13.2.1

Mode de fonctionnement
Mode dlai

En mode dlai, la frquence de lhorloge interne (2.4576 Mhz) est divise par le prdiviseur programmable qui fournit des impulsions au dcompteur.

HORLOGE INTERNE (2.4576 MHz) Prdiviseur Dcompteur

IT Timer A

13.3

Association tche %TH avec un timer

thtimer

Syntaxe de linstruction thtimer(numero_th, n_timer, n_milliseconde )

numro_th : n_timer : n_milliseconde :

Numro de la tche %TH. Numro du timer (0 ou 1). Dlai en millisecondes.

Permet dassocier une tche %TH avec une interruption gnre par le timer A ou B Fonctionnement Lappel de thtimer() provoque larmement du timer dont le numro est pass dans n_timer avec une valeur gale n_milliseconde. Quand ce dlai est coul, le timer gnre une IT qui est exploite par le systme pour appeler la tche %TH de numro numro_th. Le dlai n_milliseconde est compris entre 0 et 2.147.483.647 millisecondes. La fonction thtimer() est modale cest dire quune fois lappel de thtimer() effectu, la tche %TH sera appele la priode fixe par n_milliseconde. Pour annuler une fonction thtimer() il faut appeler thtimer() avec le paramtre n_milliseconde gal ZERO. Lappel de thtimer() alors que le timer est en cours provoque une RAZ du timer et son chargement avec la nouvelle valeur de n_milliseconde.

13

fr-938846/7

13 - 1

Code retourn Si OK 0 Si dfaut -1 : n_milliseconde < 0 ou > 2.147.483.647

13 - 2

fr-938846/7

Fonction dateur

14 Fonction dateur

14.1

Prsentation de la fonction dateur

La lecture de la date courante est ralis par la fonction tmget(). La date du systme est gre par un dateur sauvegard en mmoire globale. Une page CN permet la mise jour de ce dateur par loprateur.

14.2

Lecture de la date courante

tmget

Syntaxe de linstruction tmget( &date )

&date : Description Permet de lire la date courante. Structure du bloc date N octet octets 0 - 1 octet 2 octet 3 octet 4 octet 5 octet 6 octets 7-8 Code retourn Si OK 0 Si dfaut -1 :

Adresse du bloc mmoire (11 octets) qui va recevoir la structure date.

Type de donne Anne Mois Jour Heure Minutes Secondes Millisecondes

Valeur 0 65535 1 12 1 31 0 23 0 59 0 59 0 999 (Prcision de lordre de 50 ms)

La date na pas t mise jour.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&date" incorrect.

14

fr-938846/7

14 - 1

14.3

Lecture de la date courante avec jour de la semaine

dtget

Syntaxe de linstruction dtget( &date )

&date : Description

Adresse du bloc mmoire ( 11 octets) qui va recevoir la structure date.

Permet de lire la date courante avec le jour de la semaine spcifi. Structure du bloc date N octet octet 0 octet 1 octet 2 octet 3 octet 4 octet 5 octets 6 Code retourn Si OK 0 Si dfaut -1 : La date na pas t mise jour. Type de donne Jour de la semaine Jour Mois Anne Heure Minutes Secondes Valeur 06 1 31 1 12 0 99 0 23 0 59 0 59

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&date" incorrect.

14 - 2

fr-938846/7

Echanges par protocole

15 Echanges par protocole

5.1 Prsentation des changes


15.1.1 15.1.2 15.1.2.1 15.1.2.2 Prsentation du protocole DNC1000 Mcanisme des changes DNC1000 Droulement du traitement dune requte Notion de porte Liste des requtes de type Objet traites par la fonction CN Elments constitutifs des objets Segment status programme Requte READ-OBJECT Requte WRITE-OBJECT Requte DELETE-FILE Requte READ-MEMORY-FREE Requte OPEN-DIRECTORY Requte DIRECTORY Requte CLOSE-DIRECTORY Requte READ-BLOCK Requte WRITE-BLOCK Requte RESERVE-MEMORY Requte LECTURE DE MESSAGES Emission dune requte Lecture dune rponse Rgles de programmation unito uniti

15-3 15-4 15-5 15-5 15-6 15-7 15-7 15-9 15-14 15-16 15-16 15-18 15-19 15-20 15-21 15-22 15-24 15-25 15-26 15-27 15-28 15-29 15-29 15-30 15-32 15-34 15-34 15-36 15-38 15-39 15-40

15

15.2 Objets accessibles par requte UNITE


15.2.1 15.2.2 15.2.3

15.3 Requtes UNITE traites par la fonction CN


15.3.1 15.3.2 15.3.3 15.3.4 15.3.5 15.3.6 15.3.7 15.3.8 15.3.9 15.3.10 15.3.11

15.4 Programmation de la fonction demandeur


15.4.1 15.4.2 15.4.3

15.5 Echanges avec une station distante


15.5.1 15.5.2 15.5.3 15.5.4 15.5.5 Emission dune requte neto Lecture dune rponse neti Exemples dadressage srie 7 Configuration du service mots communs setcomw Rponse la requte STATUS netst_ad

fr-938846/4

15 - 1

15 - 2

fr-938846/4

Echanges par protocole

15.1

Prsentation des changes

Les changes par protocoles permettent la communication : - entre les fonctions automatisme et CN du systme (communication locale DNC1000), - entre la CN NUM1060 et les stations distantes connectes sur les rseaux MAPWAY, ETHWAY et UNI-TELWAY (communication distante). MODELE OSI NORMALISE 7 APPLICATION 6 PRESENTATION 5 SESSION 4 TRANSPORT 3 RESEAU 2 LIAISON 1 PHYSIQUE COMMUNICATION DISTANTE NETO(), NETI() COMMUNICATION INTERNE UNITO(), UNITI()

15

UNI-TE

UNI-TE

ADRESSAGE SERIE 7 TELEMECANIQUE UNI-TELWAY, MAPWAY, ETHWAY RS232, RS485, Coaxe, F/O, Paire torsad

PROTOCOLE ECHANGE INTERNE (RMG) BUS SYSTEME MEMOIRE GLOBALE

REMARQUE : Seul la communication locale DNC1000, les requtes et les fonctions qui lui sont lies sont traits dans ce chapitre. Se reporter au manuel Protocole UNITE pour la communication avec des stations distantes et en fin de ce chapitre pour les fonctions de communication.

fr-938846/4

15 - 3

15.1.1

Prsentation du protocole DNC1000

DNC1000 est une procdure de communication locale entre la fonction automatisme et les autres fonctions du systme. Elle permet la transmission dinformations inaccessibles par la zone dchange. La communication s'effectue entre un demandeur (ou client) et un serveur par requettes UNITE. En gnral la fonction automatisme est le demandeur et la fonction CN le serveur. Le programme pice peut galement initier un change destination de la fonction automatisme (donnes non solicites

FONCTION AUTOMATISME

FONCTION CN

EMISSION D'UNE REQUETE UNITE (Lecture/Ecriture) DEMANDEUR UNITE (CLIENT) RECEPTION D'UNE REPONSE UNITE (Lecture/Ecriture)

SERVEURS UNITE

Figure 15.1 - Echange par protocole

15 - 4

fr-938846/4

Echanges par protocole

15.1.2
15.1.2.1

Mcanisme des changes DNC1000


Droulement du traitement dune requte

15

La fonction automatisme (demandeur) met une requte (Lecture/Ecriture) vers le serveur. Cette requte, place dans un tampon, est stocke en file dattente. Elle est traite ensuite par le serveur qui met un code rponse avec dventuelles donnes. La rponse et les donnes sont rcupres par le programme utilisateur.
PROGRAMME UTILISATEUR (demandeur UNITE) FILE D'ATTENTE DES REQUETE FONCTION CN (serveurs UNITE)
TRAITEMENT DES REQUETES

MONITEUR

EMISSION

REQUETE

ACQUISITION DES REPONSES

RECEPTION

REPONSE

Figure 15.2 - Principe de traitement dune requte

fr-938846/4

15 - 5

15.1.2.2

Notion de porte

Le demandeur doit associer chaque requte avec une porte. Lmission dune requte et la rception de la rponse se font sur la mme porte. Deux types de portes sont accessibles : - 16 portes adresses de 0x30 0x3F permettent au demandeur d'mettre plusieurs requtes en parallle, - 8 portes adresses de 0x10 0x17, associes aux groupes daxes 1 8, qui permettent de recevoir des donnes non sollicits en provenance du programme pice ($1 et $11 dans le programme pice).
PROGRAMME UTILISATEUR (demandeur UNITE) FILE D'ATTENTE DES REQUETES FONCTIONCN (serveurs UNITE)
TRAITEMENT DES REQUETES
Message destination de la fonction automatisme ($1 ou $11 dans le programme pice)

MONITEUR

EMISSION (Porte 0x30) EMISSION (Porte 0x32) EMISSION (Porte 0x33)

REQUETE 1 REQUETE 2 REQUETE PORTE 0x30 3 PORTE 0x32 PORTE 0x33

ACQUISITION DES REPONSES PORTE 0x30 RECEPTION (PORTE 0x30)


REPONSE 1

PORTE 0x32 RECEPTION (PORTE 0x32)


REPONSE 2

PORTE 0x33 RECEPTION (PORTE 0x33)


REPONSE 3

PORTES 0x10 0x17 RECEPTION (PORTE 0x10 0x17)


REQUETE "Non solicite"

Figure 15.3 - Utilisation des portes

15 - 6

fr-938846/4

Echanges par protocole

15.2
15.2.1

Objets accessibles par requte UNITE


Liste des requtes de type Objet traites par la fonction CN N de segment 128 Accessible en Nom Lecture X Ecriture Axes programmes 9 longs mots Dfinition de lobjet Taille

15
Nombre maximum dobjet dans la famille 8 (1 par groupe daxes)

Nom de la famille Rfrence de position des axes Mesure des axes PREF DEC1 DEC3 Limite minimale de lusinage Limite maximale de lusinage Inclinaison des axes Origine machine Courses machines mini Courses machines maxi Correction de rfrences des axes Rfrence de position des axes Position mesure des axes Axes asservis Vitesse de broche mesure

129 130 131 132 133 134 135 136 137 138 139

X X X X X X X X X X X X X X X X X X X X

Axes programmes 9 longs mots Axes programmes 9 longs mots Axes programmes 9 longs mots Axes programmes 9 longs mots Axes programmes 9 longs mots Axes programmes 9 longs mots 1 long mot Axes physiques Axes physiques Axes physiques Axes physiques 1 long mot 1 long mot 1 long mot 1 long mot

8 (1 par groupe daxes) 8 (1 par groupe daxes) 8 (1 par groupe daxes) 8 (1 par groupe daxes) 8 (1 par groupe daxes) 8 (1 par groupe daxes) 32 (1 par axe) 32 (1 par axe) 32 (1 par axe) 32 (1 par axe) 32 (1 par axe)

140

Axes physiques

1 long mot

32 (1 par axe)

141

Axes physiques

1 long mot

32 (1 par axe)

143 144

X X

Prsence daxes Broches

1 long mot 1 long mot

1 (1 bit par axe) 4 (1 par broche)

fr-938846/4

15 - 7

Nom de la famille Position mesure des broches Correcteur doutils Variable H Etat interpolation Axes initialiss Paramtres E80000 Paramtres E81000 Paramtres E82000 Status programme Cotes de fin de bloc Slection du mode Slection du programme pice courant Donnes transmises au programme en cours dexcution Acquittement de messages Configuration ligne IT Validation/rvocation synchro des axes

N de segment 145

Accessible en Nom Lecture X Ecriture Broches

Dfinition de lobjet Taille

Nombre maximum dobjet dans la famille 4 (1 par broche)

1 long mot

146 147 148 149 150 151

X X X X X X

X X

Outils Temps utilisation outils Etat interpolation

7 longs mots 1 long mot 4 longs mots 1 long mot 1 long mot 1 long mot

255 255 8 (1 par groupe d'axes) 1 (1 bit par axe) 51 Nombre dclar dans le param tre machine P58 Nombre dclar dans le param tre machine P58 8 (1 par groupe d'axes) 8 (1 par groupe daxes) 1 1

X X X

Prsence daxes

152

1 long mot

153 157 180 181

X X X X X X

22 octets 11 longs mots 1 mot 1 mot

224

1 long mot

8 (1 par groupe daxes)

226 227 235

X X X

X X X

1 octet 1 octet 1 long mot

8 (1 par groupe d'axes) 8 (1 par ligne) 1 (1 bit par axe)

15 - 8

fr-938846/8

Echanges par protocole

15.2.2

Elments constitutifs des objets

Lunit Ui correspond lunit interne du systme dfinie par paramtre machine. Numro de segment (Valeur Hexa) 128 (0x80) Accessible en Description Valeur ou unit Paramtres correspondants

15

Lecture

Rfrence de position des axes Taille de lobjet : 9 longs mots Adresse du premier objet dans la famille : 0 Axe X Axe Y Axe Z Axe U Axe V Axe W Axe A Axe B Axe C

Ui ou 1/10000

E70000 E78000

129 (0x81)

Lecture

Mesure des axes Taille de lobjet : 9 longs mots Adresse du premier objet dans la famille : 0

-99999999 99999999 Ui

E90000 E90031

130 (0x82)

Lecture/Ecriture PREF Taille de lobjet : 9 longs mots Adresse du premier objet dans la famille : 0 Lecture/Ecriture DEC1 Taille de lobjet : 9 longs mots Adresse du premier objet dans la famille : 0 Lecture/Ecriture DEC3 Taille de lobjet : 9 longs mots Adresse du premier objet dans la famille : 0 Lecture/Ecriture Course dynamique minimum Taille de lobjet : 9 longs mots Adresse du premier objet dans la famille : 0 Lecture/Ecriture Course dynamique maximum Taille de lobjet : 9 longs mots Adresse du premier objet dans la famille : 0

-99999999 99999999 Ui

E60000 E68000

131 (0x83)

-99999999 99999999 Ui

E60001 E68001

132 (0x84)

-99999999 99999999 Ui

E60004 E68004

133 (0x85)

-99999999 99999999 Ui

E60002 E68002

134 (0x86)

-99999999 99999999 Ui

E60003 E68003

fr-938846/4

15 - 9

Numro de segment (Valeur Hexa) 135 (0x87)

Accessible en

Description

Valeur ou unit

Paramtres correspondants

Lecture/Ecriture valeur de langle pour les axes inclins Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Origine machine Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Course statique minimum Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Course statique maximum Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture Corrections courantes dun axe esclave Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Rfrence de position dun axe Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Position mesure dun axe Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Axes asservis Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Vitesse de broche mesure Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Rfrence de position des broches mesures Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0

1/10000

E69001

136 (0x88)

Ui Ou 1/10000

Paramtre P16

137 (0x89)

Ui

Paramtre P17

138 (0x8A)

Ui

Paramtre P17

139 (0x8B)

-99999999 99999999 Ui

E95000 E95031

140 (0x8C)

Lecture

Ui

E70000 E78000

141 (0x8D)

Lecture

Ui

E90000 E90031

143 (0x8F)

Lecture

0 ou 1

E91000 E91031

144 (0x90)

Lecture

Ui

145 (0x91)

Lecture

0 3599999 /10000

E90101 E90104

15 - 10

fr-938846/6

Echanges par protocole

Numro de segment (Valeur Hexa) 146 (0x92)

Accessible en

Description

Valeur ou unit

Paramtres correspondants

15

Lecture/Ecriture Corrections doutils en tournage Taille de lobjet : 7 longs mots Adresse du premier objet dans la famille : 1er long mot - Longueur en X 2me long mot - Longueur en Z 3me long mot - Rayon de pastille 4me long mot - Correction dynamique en X 5me long mot - Correction dynamique en Z 6me long mot - Direction de nez doutil 7me long mot - Type doutil Ui Ui Ui Ui Ui De 0 8 De 1 ou 2 E50001 E50255 E51001 E51255 E52001 E52255 E53001 E53255 E54001 E54255 E55001 E55255 E57001 E57255

146 (0x92)

Lecture/Ecriture Corrections doutils en fraisage Taille de lobjet : 7 longs mots Adresse du premier objet dans la famille : 1 1er long mot - Longueur de loutil 2me long mot - Rayon de bout de fraise 3me long mot - Rayon doutil Ui Ui Ui E50001 E50255 E51001 E51255 E52001 E52255 UiE53001 E53255 E54001 E54255 E57001 E57255 E56001 E56255

4me long mot - Correction dynamique de longueur 5me long mot - Correction dynamique de rayon 6me long mot - non significatif 7me long mot - Type doutil Ui

147 (0x93)

Lecture/Ecriture Paramtres disponibles (H de la table des corrections dynamiques) Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 1

-99999999 99999999

fr-938846/4

15 - 11

Numro de segment (Valeur Hexa) 148 (0x94)

Accessible en

Description

Valeur ou unit

Paramtres correspondants

Lecture

Etat interpolation Taille de lobjet : 4 longs mots Adresse du premier objet dans la famille : 0 1er long mot - Vitesse courante 2me long mot - Distance restant parcourir sur le bloc en cours (Sur trajectoire) 3me long mot - Vitesse programme 4me long mot - Coefficient de modulation de vitesse mm/Ech mm mm/mn mm/tr, V/L 2-16

149 (0x95)

Lecture/Ecriture POM non faite sur un axe Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Paramtre de donnes locales Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Position de rfrence des axes matres (Calibration inter axes) Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Correction des axes esclaves (Calibration inter axes) Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture Status programme (Voir 15.2.3) Taille de lobjet : 22 octets Adresse du premier objet dans la famille : 0 1 long mot : Liste des fonctions G prsentes 1 long mot : Numro du programme en cours dexcution 1 mot : Numro du bloc en cours dexcution 1 mot : Numro derreur programme 1 mot : Numro de bloc en erreur 1 mot : Numro doutil 1 mot : Direction doutil 1 mot : Numro du correcteur doutil 1 mot : Liste des traitements restant excuter

1 ou 0

E91100 E91131

150 (0x96)

-99999999 99999999

E80000 E80050

151 (0x97)

-99999999 99999999 Ui

E81000 E81999

152 (0x98)

-99999999 99999999 Ui

E82000 E82999

153 (0x99)

15 - 12

fr-938846/4

Echanges par protocole

Numro de segment (Valeur Hexa) 157 (0x9D)

Accessible en

Description

Valeur ou unit

Paramtres correspondants

15

Lecture

Cote de fin du bloc Taille de lobjet : 11 longs mots Adresse du premier objet dans la famille : 0 Les 36 premier octets donnent les cotes de fin de bloc (4 octet par axes) pour les axes X, Y, Z, U, V, W, A, B, C Le long mot suivant donne labscisse du centre en interpolation circulaire. Le dernier long mot donne lordonne du centre en interpolation circulaire.

180 (0xB4)

Lecture/Ecriture Slection du mode Taille de lobjet : 1 mot Adresse du premier objet dans la famille : 0 Mode Continu Mode Squentiel Mode immdiat Mode rapide Mode RNS Mode Modification Mode Test Mode Manuel Mode Prise dOrigine Mesure Mode Prise de Rfrence Mode Rglage Automatique dOutils Mode Chargement Mode Dchargement Si le bit de poids fort (bit 15) est positionn 1, la demande de changement de mode reste maintenue. 0x0000 0x0001 0x0002 0x0003 0x0004 0x0005 0x0006 0x0007 0x0008 0x0009 0x000A 0x000D 0x000F

E41000

181 (0xB5)

Lecture/Ecriture Slection du programme courant Taille de lobjet : 1 mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Donnes transmises au programme pice en cours dexcution (Voir 15.3.11) Taille de lobjet : 1 long mot Adresse du premier objet dans la famille : 0 Lecture/Ecriture Acquittement de messages bloquant transmis par le programme pice $11 (Voir 15.3.11) Taille de lobjet : 1 octet Adresse du premier objet dans la famille : 0

1 99999

224 (0xE0)

226 (0xE2)

fr-938846/6

15 - 13

Numro de segment (Valeur Hexa) 227 (0xE3)

Accessible en

Description

Valeur ou unit

Paramtres correspondants

Lecture/Ecriture Configuration des lignes dIT des cartes IT/lignes sries


Bit 7 Bit 0

Validation de l'IT

Filtrage Front descendant Sans filtrage = 0 Avec filtrage = 1

Filtrage Front montant Sans filtrage = 0 Avec filtrage = 1

Dure du cycle sur front montant Dure du cycle sur Bit 1Bit 0 front descendant 0 0 0,5 ms Front actif Bit 4Bit 3 0 1 1 ms Montant = 0 0 0 0,5 ms 1 0 4 ms Descendant = 1 0 1 1 ms 1 1 8 ms 1 0 4 ms 1 1 8 ms

235 (0xEB)

Lecture/Ecriture Validation ou rvocation de la synchronisation des axes Taille de l'objet : 1 long mot (1 bit par axe)

15.2.3

Segment status programme

Direction doutil La valeur de la direction doutil est positionne dans loctet de poids faible si elle est ngative, ou dans loctet de poids fort si elle est positive.

Bit 15

Bit 0

Direction selon l'axe Z+ Direction selon l'axe Y+ Direction selon l'axe X+

Direction selon l'axe XDirection selon l'axe YDirection selon l'axe Z-

15 - 14

fr-938846/6

Echanges par protocole

Dtail de la liste des fonctions G prsentes


G21 G20 G97 G96 G95 G94 G93 G29 G54 G53 G42 G41 G40 G09 G38 G04 G03 G02 G01 G22 G52 G70 G91 G90 G18 G19 G17 G00

15

Bit 31

Bit 24 Bit 23

Bit 16 Bit 15

Bit 8

Bit 7

Bit 0

Liste des traitements restant excuter Le bit de rang le plus lev dsigne la fonction en cours dexcution.

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Fonction G78 Fin de mouvement extrieur (Fmext) Fonctions M codes Fonctions M aprs Fonction G04 Fonction G09 Cercle Droite JOG Arus Fonctions M avant Fonctions T

fr-938846/6

15 - 15

15.3
15.3.1

Requtes UNITE traites par la fonction CN


Requte READ-OBJECT

Description La requte READ OBJECT permet de lire les objets accessibles en lecture du serveur CN (Voir 15.2.2). Format de la requte
Spcifie requte en lecture

CODE REQUETE (1 octet) 0x36 N SEGMENT (1 octet) (Voir 15.2)

CATEGORIE EMETTEUR (1 octet) Non significatif SPECIFIC (1 octet) Non significatif

Identifie la famille laquelle appartient le ou les objets lire Adresse du 1er objet lire dans la famille Nombre d'objets conscutifs lire dans la famille

OBJECT-ADDRESS (1 mot) QUANTITY (1 mot)

Format de la rponse Rponse positive Code rponse positive

CODE REPONSE (1 octet) 0x66 DATA

SPECIFIC (1 octet) Non significatif

Tableau des donnes

Rponse ngative
CODE REPONSE (1 octet) 0xFD

REMARQUE : Si la quantit prcise est telle que la rponse pourrait contenir plus de 128 octets, la requte est refuse (code rponse ngatif).

15 - 16

fr-938846/4

Echanges par protocole

Exemple de lecture du numro de programme courant Requte mise

15
CODE REQUETE 0x36 SEGMENT 0xB5 CATEGORIE EMETTEUR 0x00 SPECIFIC 0x00

OBJECT-ADDRESS 0x0000 QUANTITY 0x0001


Rponse positive avec donnes
CODE REPONSE 0x66 SPECIFIC 0x00

DATA 0x0053 (Programme %83.)

fr-938846/4

15 - 17

15.3.2
Description

Requte WRITE-OBJECT

La requte WRITE OBJECT permet dcrire les valeurs des objets du logiciel CN (Voir 15.2.2). Format de la requte

Spcifie requte en criture

CODE REQUETE (1 octet) 0x37 N SEGMENT (1 octet) (Voir 15.2)

CATEGORIE EMETTEUR (1 octet) Non significatif SPECIFIC (1 octet) Non significatif

Identifie la famille laquelle appartient le ou les objets lire Adresse du 1er objet lire dans la famille Nombre d'objets conscutifs lire dans la famille Tableau des donnes

OBJECT-ADDRESS (1 mot) QUANTITY (1 mot) DATA

format de la rponse Rponse positive

CODE REPONSE (1 octet) 0xFE


Rponse ngative
CODE REPONSE (1 octet) 0xFD

REMARQUE : Si la quantit prcise est telle que la requte contient plus de 128 octets, la requte est refuse (code rponse ngatif).

15 - 18

fr-938846/4

Echanges par protocole

15.3.3

Requte DELETE-FILE

Permet de dtruire un programme pice stock en mmoire RAM de la CN. Format de la requte

15

CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x46 2me octet

CATEGORIE EMETTEUR (1 octet) Non significatif NOM DE FICHIER (1 long mot) 1er octet

3me octet

4me octet

Dtail du champ NOM FICHIER Le champ NOM FICHIER donne le numro du programme pice index par le groupe daxes (N du programme pice x 10 + N du groupe daxes). Format de la rponse Rponse positive

CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) 0x00

COMPLEMENT CODE REPONSE 0x76

fr-938846/5

15 - 19

Rponse ngative CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) Voir tableau ci aprs Code status 0x02 0x05 0x0A Dfinition Manipulation dans zone programme Fichier inexistant CN pas dans ltat RAZ COMPLEMENT CODE REPONSE 0x76

15.3.4

Requte READ-MEMORY-FREE

Permet de connatre le nombre doctets disponible en mmoire RAM de la CN. Format de la requte CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x47 Format de la rponse Rponse positive CATEGORIE EMETTEUR (1 octet) Non significatif

CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) 0x00 2me octet 4me octet

COMPLEMENT CODE REPONSE 0x77 VALUE (1 long mot) 1er octet 3me octet

15 - 20

fr-938846/5

Echanges par protocole

Rponse ngative

15
CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) Voir tableau ci-aprs Code status 0x02 Dfinition Manipulation dans zone programme COMPLEMENT CODE REPONSE 0x77

15.3.5

Requte OPEN-DIRECTORY

Permet de connatre la liste des programme pice prsent en mmoire RAM de la CN. Si la liste est trop longue pour figurer totalement dans la rponse cette requte (Status = 0x00), le complment sera donn par la rponse la requte DIRECTORY (Voir 15.3.6). Si toutefois ce complment ne devait pas tre demand, la requte CLOSE DIRECTORY (Voir 15.3.7) doit tre mise pour clore lopration. Si la liste peut figurer totalement dans la rponse cette requte (Status = 0x0C), lopration est close automatiquement et la requte CLOSE DIRECTORY nest pas ncessaire. Format de la requte CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x48 NOM FICHIER (1 long mot) (Voir REMARQUE) CATEGORIE EMETTEUR (1 Octet) Non significatif

REMARQUES :Le champ NOM FICHIER donne un numro du premier programme pice index par le groupe daxes (N du programme pice x 10 + N du groupe daxes), que lon veut voir figurer dans la rponse. Si ce programme nest pas prsent en mmoire, la liste est donne partir du programme suivant. Si la valeur du champ est 0, la liste est donne partir du premier programme prsent en mmoire.

fr-938846/5

15 - 21

Format de la rponse Rponse positive CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) Voir tableau ci-aprs DATA (Voir REMARQUE) Code status 0x00 0x0F Dfinition OK Il reste des informations transmettre OK Fin de directory (Fermeture automatique) COMPLEMENT CODE REPONSE 0x78

REMARQUE : Dans le champ DATA, chaque programme pice est dcrit par 2 longs mots : le premier donne le numro du programme pice index par le groupe daxes (N du programme pice x 10 + N du groupe daxes), Le second donne la longueur en octet de ce programme pice.
Rponse ngative CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) Voir tableau ci-aprs Code status 0x02 0x09 Dfinition Manipulation dans zone programme Taille du buffer insuffisante pour la rponse COMPLEMENT CODE REPONSE 0x78

15.3.6

Requte DIRECTORY

Permet de connatre le complment de la liste des programmes pice prsent dans la mmoire de la CN la suite dune requte OPEN DIRECTORY. Si la liste est trop longue pour figurer totalement dans la rponse cette requte (Status =0x00), le complment sera donn par la rponse une autre requte DIRECTORY. Si toutefois ce complment ne devait pas tre demand, la requte CLOSE DIRECTORY (Voir 15.3.7) doit tre mise pour clore lopration. Si la liste peut figurer totalement dans la rponse cette requte (Status = 0x0F), lopration est close automatiquement et la requte CLOSE DIRECTORY nest pas ncessaire.

15 - 22

fr-938846/5

Echanges par protocole

Format de la requte

15
CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x49 Format de la rponse Rponse positive CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) Voir tableau ci-aprs DATA (Voir REMARQUE) Code status 0x00 0x0F Dfinition OK Il reste des informations transmettre OK Fin de directory (Fermeture automatique) COMPLEMENT CODE REPONSE 0x79 CATEGORIE EMETTEUR (1 octet) Non significatif

REMARQUE : Dans le champ DATA, chaque programme pice est dcrit par 2 longs mots : le premier donne le numro du programme pice index par le groupe daxes (N du programme pice x 10 + N du groupe daxes), Le second donne la longueur en octet de ce programme pice.
Rponse ngative CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) Voir tableau ci-aprs Code status 0x02 0x09 Dfinition Manipulation dans zone programme Taille du buffer insuffisante pour la rponse COMPLEMENT CODE REPONSE 0x79

fr-938846/5

15 - 23

15.3.7

Requte CLOSE-DIRECTORY

Permet de clore une opration de directory. Format de la requte CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x4A Format de la rponse Rponse positive CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) 0x00 Rponse ngative CODE REPONSE (1 octet) 0xF5 STATUS (1 octet) Voir tableau ci-aprs Code status 0x04 Dfinition Directory dj ferm COMPLEMENT CODE REPONSE 0x7A COMPLEMENT CODE REPONSE 0x7A CATEGORIE EMETTEUR (1 octet) Non significatif

15 - 24

fr-938846/4

Echanges par protocole

15.3.8

Requte READ-BLOCK

Permet de lire un bloc de programme pice. Format de la requte CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x50

15

NUMERO PROGRAMME (1 long mot) (Voir REMARQUE) NUMERO BLOC (1 mot) OFFSET BLOC (1 mot)

REMARQUE : Le champ NUMERO PROGRAMME donne le numro du programme pice index par le groupe daxes (N du programme pice x 10 + N du groupe daxes).
Format de la rponse Rponse positive CODE REPONSE (1 octet) 0xF5 COMPLEMENT CODE REPONSE 0x80

LONGUEUR BLOC (1 mot) DATA (Voir REMARQUE)

REMARQUE : Le champ DATA peut contenir jusqu 119 octets et se termine par (LF).
Rponse ngative

CODE REPONSE (1 octet) 0xF5

COMPLEMENT CODE REPONSE 0x80

Pour cette requte, le code rponse et son complment ne sont pas significatif. C'est le code retourn dans la fonction uniti() (Voir 15.4.2) qui informe sur l'aboutissement de la requte.

fr-938846/8

15 - 25

15.3.9

Requte WRITE-BLOCK

Permet dinsrer, de modifier, ou de supprimer un bloc de programme pice. La rservation pralable dun espace mmoire suprieur lespace utile pour ce programme (Requte RESERVE MEMORY Voir 15.3.10) permet dutiliser une requte hors tat RAZ.

REMARQUE : La requte peut contenir jusqu 132 octets.


Format de la requte CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x51

NUMERO PROGRAMME (1 long mot) Voir REMARQUE 1 NUMERO BLOC (1 mot) OFFSET BLOC (1 mot) LONGUEUR BLOC (1 mot) DATA Voir REMARQUE 2

REMARQUE 1 : Le champ NUMERO PROGRAMME donne le numro du programme pice index par le groupe daxes (( N du programme pice x 10 ) + N du groupe daxes). REMARQUE 2 : Le premier caractre doit tre : + pour une insertion la suite du bloc donn par numro et offset, # pour une modification, - pour une Suppression. Le dernier caractre doit tre LF et le champ doit comporter au plus 119 caractres.
Format des rponses positive ou ngative

CODE REPONSE (1 octet) 0xF5

COMPLEMENT CODE REPONSE 0x81

Pour cette requte, le code rponse et son complment ne sont pas significatif. C'est le code retourn dans la fonction uniti() (Voir 15.4.2) qui informe sur l'aboutissement de la requte.

15 - 26

fr-938846/4

Echanges par protocole

15.3.10

Requte RESERVE-MEMORY

Permet de rserver lespace mmoire dun programme pice dj existant, afin de pouvoir effectuer les modification de ce programme hors tat RAZ. Format de la requte CODE REQUETE (1 octet) 0xF5 COMPLEMENT DE CODE REQUETE (1 octet) 0x52

15

NUMERO PROGRAMME (1 long mot) Voir REMARQUE 1 TAILLE MEMOIRE (1 long mot) Voir REMARQUE 2

REMARQUE 1 :Le champ NUMERO PROGRAMME donne le numro du programme pice index par le groupe daxes (( N du programme pice x 10 ) + N du groupe daxes). REMARQUE 2 :Le champ TAILLE MEMOIRE donne la taille que lon veut rserver pour le programme. Une valeur nulle redonne au programme une taille gale la taille utile.
Format des rponses positive ou ngative

CODE REPONSE (1 octet) 0xF5

COMPLEMENT CODE REPONSE 0x82

Pour cette requte, le code rponse et son complment ne sont pas significatif. C'est le code retourn dans la fonction uniti() (Voir 15.4.2) qui informe sur l'aboutissement de la requte.

fr-938846/4

15 - 27

15.3.11

Requte LECTURE DE MESSAGES

La fonction CN met, de sa propre initiative, cette requte, vers la fonction automatisme, suite linstruction $1 ou $11 dans le programme pice en cours dexcution. Deux type de messages sont transmis par le serveur CN : - les messages non bloquants $1 "Message" LF, - les messages bloquants $11 "Message" LF. La fonction automatisme doit rceptionner le message qui lui est transmis par surveillance sur les portes 0x10 0x17 (Groupes d'axes 1 8) au moyen de la fonction uniti(..). Format de la requte
CODE REQUETE (1 octet) 0xFC OBJECT-ADRESS (1 octet) CATEGORIE (1 octet) 0x06 DATA-LENGTH (1 octet)

Nombre d'octet contenu dans le champ DATA-SPECIFIC Message contenu dans le programme pice

DATA-SPECIFIC

Emission d'un message non bloquant Cette requte nattend pas de rponse de la fonction automatisme. Elle peut par contre tre associe une autre requte linitiative de la fonction automatisme, requte qui constituera un acquittement de la donne non sollicite. Le mcanisme permettant dattendre cet acquittement est dcrit au paragraphe suivant Linstruction Ln = $1 programme dans le programme pice, permet de rcuprer une rponse ventuelle de la fonction automatisme. Mcanisme de l'change Le message $1 "Message" LF est mis une seule fois destination de la fonction automatisme et l'excution du programme pice se poursuit sans attente de compte rendu. La rponse est transmise par une requte en criture WRITE OBJECT avec le segment 224. La valeur de lobjet est mmorise par la fonction CN en attendant son acquisition par le programme pice. Le programme pice rcupre cette valeur par la fonction $1 programme dans une expression paramtre du type Ln = $1. Si aucune valeur n t transmise ou si la dernire valeur transmise dj t acquitte, le programme pice se met en attente dune nouvelle criture du segment 224. En lecture, la CN renvoie la dernire valeur qui lui a t transmise, si elle est toujours mmorise, cest dire si le programme pice ne la pas encore rcupre. Dans le cas contraire, elle renvoie cette valeur complmente 1.

REMARQUE : Toutes tentatives de transfert de message, dun programme pice vers la fonction automatisme, annule la mmorisation sur le groupe d'axes considr de la prcdente criture du segment 224.

15 - 28

fr-938846/4

Echanges par protocole

Emission d'un message bloquant Aprs l'mission d'un message bloquant $11, la fonction CN se met en attente d'un compte rendu d'acquittement de la fonction automatisme. Tant que cette requte en criture ne lui parvient pas, la fonction CN rmet le message toutes les 10 s et le programme pice est mis en attente. Mcanisme de l'change Le message $11 "Message" LF est mis destination de la fonction automatisme et le programme pice est en attente. Le message est ensuite mis toutes les 10 s destination de la fonction automatisme jusqu' envoi d'une requte en criture WRITE OBJECT avec le segment 226 = 1 (acquittement sans libration de la CN). La rponse est transmise par une requte en criture WRITE OBJECT avec le segment 224. La fonction automatisme acquitte le message par l'envoi d'une requte en criture WRITE OBJECT avec le segment 226 = 2 (acquittement et libration de la CN). La libration de la CN permet le passage au bloc suivant et la rcupration de la rponse par la fonction $11 programme dans une expression paramtre du type Ln = $11.

15

15.4
15.4.1

Programmation de la fonction demandeur


Emission dune requte

unito

Syntaxe de linstruction unito( porte_source, &datagramme )

porte_source : &datagramme : Description

Numro de la porte source. Adresse du buffer mettre.

Permet dmettre une requte vers un serveur sur les 16 portes source adresses de 0x30 0x3F. Code retourn Si OK Code 0x00 Si dfaut Code 0x01 0x02 0x03 0x04 0x05 0xFF Message de compte rendu Longueur du buffer trop grande Longueur du buffer nulle File sature - Les 16 buffers sont occups Mauvais numro de porte Option pour cette requte non valide Pas dans une tche de fond
fr-938846/4

Message de compte rendu Emission correcte

15 - 29

Structure du buffer dmission

@ Dbut de buffer Taille du buffer (Non significatif) Taille de la requte (1 mot) Ecrit par le programme utilisateur Requte (Voir 15.3) 128 octets maxi

1 mot

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&datagramme" incorrect, - "&datagramme+taille" hors zone autorise.

15.4.2

Lecture dune rponse

uniti

Syntaxe de linstruction uniti (porte_source, &datagramme )

porte_source : &datagramme : Description

Numro de la porte source. Adresse du bloc mmoire qui va recevoir la requte.

La fonction uniti fonctionne sur les portes 0x30 0x3F et 0x10 0x17. Elle permet : - de recevoir la rponse une requte prcdemment mise par unito() sur la mme porte source, - de recevoir une requte non sollicite mise par le programmes pice dun groupe daxe. Dans ce cas la porte source indique le groupe daxe dont on veut recevoir un message (0x10 0x17).

REMARQUES :Si le code retourn est 0x06 , la fonction uniti() doit tre appele priodiquement jusqu la rception de la requte.

15 - 30

fr-938846/7

Echanges par protocole

Code retourn Si OK Code 0x00 Si dfaut Code 0x04 0x06 0x07 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 Message de compte rendu Mauvais numro de porte Pas de message ce numro de porte Buffer trop petit pour stocker la rponse Numro de programme existant Edition programme en cours Zone programme pice sature Fichier ferm Numro de programme inexistant Fichier ouvert Saturation du buffer PPP Dfaut de len-tte Segment non reconnu Requte criture interdite Quantity nulle ou ngative Objet-adress ngatif Quantity + Objet-adress suprieur au nombre de poste maxi Taille buffer insuffisante Etat CN incompatible avec change Donnes changes incohrentes Indicateur de close automatique Pas dans une tche de fond Message de compte rendu Lecture correcte

15

0x89 0x8A 0x8B 0x8F 0xFF

fr-938846/6

15 - 31

Structure du buffer de rception @ Dbut de buffer Ecrit par le programme utilisateur

Taille du buffer (1 mot) Taille de la requte (1 mot)

Ecrit par le moniteur

Rponse (Voir 15.3) 128 octets maxi

1 mot Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&datagramme" incorrect, - "&datagramme+taille" hors zone autorise.

15.4.3

Rgles de programmation ! ATTENTION

Les fonction unito(), uniti(), neto() et neti() doivent tre programmes dans une tche de fond (%TF0 %TF15).
La taille dune requte ne doit tre ni nulle ni suprieure 128 Octets (Sauf pour les requtes READ_BLOCK et WRITE_BLOCK).

REMARQUE : 16 portes sont accessibles au programme utilisateur ce qui permet chaque cycle HTR dmettre un maximum de 16 requtes.
Lmission successive de plusieurs requtes sur la mme porte, sans acquisition de la rponse, engendre la perte dun ou plusieurs codes rponses. Il est important : - de programmer, sur la mme porte, lmission vers le serveur suivie de la rception de la rponse avant toutes autres missions, - ou dutiliser des portes diffrentes pour chaque commande dmission rception. Cot serveurs, la notion de file dattente peut entraner un dcalage dans la chronologie de traitement de requtes.En effet, la charge sur les diffrents serveurs peut faire que les requtes ne sont pas traites par celui-ci dans lordre dmission. Si on veut assurer une chronologie dans le traitement des requtes, il faut sassurer de la bonne rception de la rponse avant dmettre la requte suivante sur une mme porte.

15 - 32

fr-938846/7

Taille du buffer

Echanges par protocole

PROGRAMME UTILISATEUR (demandeur UNITE)

MONITEUR

FILE D'ATTENTE DES REQUETES

FONCTION CN (serveurs UNITE)

15

REQUETE 1 REQUETE 2 REQUETE 4

SERVEUR A

EMISSION (PORTE 0x30) EMISSION (PORTE 0x31) EMISSION (PORTE 0x32) EMISSION (PORTE 0x33) EMISSION (PORTE 0x34)

1 2 3 4 5

REQUETE 3 REQUETE 5

SERVEUR B

PORTE 0x30 RECEPTION (PORTE 0x30) RECEPTION (PORTE 0x31) RECEPTION (PORTE 0x32) RECEPTION (PORTE 0x33) RECEPTION (PORTE 0x34) 1 PORTE 0x31 3 PORTE 0x32 2 PORTE 0x33 5 PORTE 0x34 4 Ordre d'mission Ordre de rception

Figure 15.4 - Traitement des requtes par les serveurs

fr-938846/4

15 - 33

15.5
15.5.1

Echanges avec une station distante


Emission dune requte

neto

Syntaxe de linstruction neto (porte_source, &datagramme)

porte_source : &datagramme : Description

Numro de la porte source. Adresse du buffer mettre.

Permet dmettre une requte vers une station distante. La requte est mise sur une des 16 portes sources adresses 0x50 0x5F. Fonctionnement Lors de lappel de la fonction neto(..), si la porte source est valide (Comprise entre 0x50 et 0x5F) et si ladressage srie 7 (Rseau, station, porte, module, voie) est valide, le moniteur excute : - lenvoi de la requte au serveur destinataire et le retour lappelant (Code retour OK) si la voie dmission est libre, - le retour lappelant (Code retour SATURATION) si la voie dmission est sature. Si une erreur de programmation est dtecte, retour lappelant avec code retour indiquant lerreur dtecte. Il est possible dchanger simultanment autant de requtes que de portes source disponible. Code retourn Si OK Code 0x00 Si dfaut Code 0x01 0x02 0x03 0x04 0x05 0x08 0xFF Message de compte rendu Longueur du buffer trop grande Longueur du buffer nulle File sature - Les 16 buffers sont occups Mauvais numro de porte Option pour cette requte non valide Numro de ligne non valide Pas dans une tche de fond Message de compte rendu Emission correcte

REMARQUE : Les champs Rseau, Station, Porte, Module et Voie correspondent l'adressage Srie 7 Telemecanique qui dsigne le destinataire de la requte. Se reporter au manuel rseau correspondant.

15 - 34

fr-938846/4

Echanges par protocole

Structure du buffer dmission


@ Dbut de buffer Taille du buffer (Non significatif) Taille de la requte ou de la rponse UNITE (1 mot) Numro de la ligne (1 mot) Rserv (1 octet) Ecrit par le programme utilisateur Station (1 octet) Module (1 octet) Rseau (1 octet) Porte (1 octet) voie (1 octet)

15

Requte ou rponse UNITE (Voir manuel protocole UNITE) 128 octets maxi

1 mot

N ligne UNI-TELWAY MAPWAY - ETHWAY ETHERNET

Carte processeur 1 re carte machine IT/lignes sries 0x20 et 0x21 0x24 0x27

2 me carte IT/lignes sries 0x28 0x2B

Coupleur spcifique 0x30 0x40

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&datagramme" incorrect, - "&datagramme+taille" hors zone autorise.

15.5.2

Lecture dune rponse

neti

Syntaxe de linstruction neti (porte_source, &datagramme )

porte_source : &datagramme :

Numro de la porte source. Adresse du bloc mmoire qui va recevoir la rponse.

fr-938846/7

15 - 35

Description La fonction neti() fonctionne sur les portes 0x50 0x5F. Elle permet : de recevoir la rponse une requte prcdemment mise, sur le rseau, par neto(..), de recevoir une requte non sollicite mise par une station distante.

Fonctionnement Lors de lappel de la fonction neti(..), sil nexiste pas dans la file des requtes reues, de requte ayant une porte source identique la porte paramtre lappel de neti(..), le moniteur excute un retour lappelant avec code retour 0x6, Si la taille rserve pour la rception du datagramme est suffisante il y a transfert de la requte ladresse &datagramme et retour lappelant avec code retour OK 0x0 Si la taille du buffer est insuffisante, retour lappelant avec code retour 0x7. Il est possible dattendre simultanment autant de requtes que de portes source (16 rponses des requtes mise par neto(..) ou non sollicite). Code retourn Si OK Code 0x00 Si dfaut Code 0x04 0x06 0x07 0x08 0xFF Message de compte rendu Mauvais numro de porte Pas de requte reue pour cette porte Buffer trop petit pour stocker la rponse Numro de ligne non valide Pas dans une tche de fond Message de compte rendu OK - Lecture correcte

REMARQUE : Si le code retourn est 0x06, la fonction neti(..) doit tre appele priodiquement jusqu rception de la requte.

15 - 36

fr-938846/4

Echanges par protocole

Structure du buffer de rception


@ Dbut de buffer Ecrit par le programme utilisateur

15
Taille du buffer Taille de la requte ou de la rponse UNITE (1 mot) Numro de la ligne (1 mot) Rserv (1 octet) Rseau (1 octet) Porte (1 octet) voie (1 octet) Taille du buffer

Ecrit par le moniteur

Station (1 octet) Module (1 octet)

Requte ou rponse UNITE (Voir Manuel protocole UNITE) 128 octets maxi

1 mot

REMARQUE : Les champs Rseau, Station, Porte, Module et Voie correspondent l'adressage Srie 7 Telemecanique qui dsigne le destinataire de la requte. Se reporter au manuel rseau correspondant.
N ligne UNI-TELWAY MAPWAY - ETHWAY ETHERNET Carte processeur 1 re carte machine IT/lignes sries 0x20 et 0x21 0x24 0x27 2 me carte IT/lignes sries 0x28 0x2B 0x30 0x40 Coupleur spcifique

REMARQUE

Avec UNI-TELWAY, si la rponseest de 2 octets et le code retour 0xFF, les valeurs du code rponse peuvent tre : - 0x03 : destinataire inaccessible, - 0x04 : NACK buffer du destinataire satur, - 0x0A : Time out.

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&datagramme" incorrect, - "&datagramme+taille" hors zone autorise.

fr-938846/7

15 - 37

15.5.3

Exemples dadressage srie 7


DESTINATION Serveur UNI-TELWAY Esclave N S UNI-TELWAY Maitre UNI-TELWAY Maitre Porte P programme applicatif UNI-TELWAY Esclave N S MAPWAY-ETHWAY Station NS de mon rseau N ligne Rserv. Rseau Station 0x20+L 0 0x20+L 0 0x20+L 0 0 0 0 0xFE 0xFE 0xFE Porte 5 0 P Module Voie 0xFE 0 0 0x64 +S 0 0

SOURCE Demandeur UNI-TELWAY Maitre Ligne N L (16) UNI-TELWAY Esclave Ligne N L (1) UNI-TELWAY Esclave Ligne N L (1) UNI-TELWAY Esclave Ligne N L (1) MAPWAY-ETHWAY (16) MAPWAY-ETHWAY (16) MAPWAY-ETHWAY (1)

0x20+L 0 0x30 0

0 0

0xFE S

5 0

0xFE 0

0x64 +S 0

MAPWAY-ETHWAY 0x30 Station NS du rseau R MAPWAY-ETHWAY 0x30 Porte P programme applicatif Station NS du rseau R

0 0

R R

S S

0 P

0 0

0 0

(1) 1 porte source (0x50 0x5F) autorise par destinataire permettant 1 seul change avec ce destinataire. (16) 16 portes sources (0x50 0x5F) autorises par destinataire permettant 16 changes simultans avec le mme destinataire.

REMARQUE : Seule la fonction serveur pour ETHERNET-MMS est disponible.

15 - 38

fr-938846/4

Echanges par protocole

15.5.4

Configuration du service mots communs

setcomw

Syntaxe de linstruction setcomw(taille, activit)

15

taille : activit :

Nombre doctets attribus chaque station. Activit de la station par rapport au mots communs (0 pour inactive, 1 pour lecturecriture ou 2 pour lecture seule).

Description Permet de configurer le service mots communs. Fonctionnement La fonction setcomw(..) doit tre appele dans la tche %INI. Si cette fonction nest pas appele, le service mots communs nest pas actif. La taille de mots communs doit tre identique sur toutes les stations du rseau. Si la valeur configure sur une station est errone, celle-ci sera ignore par les autres. Les stations devant se partager 256 mots au maximum, le choix de la taille dtermine le nombre maximum de stations pouvant participer au service mots communs. Taille par station 8 octets 16 octets 32 octets 64 octets 128 octets Nombre maxi de stations 64 32 16 8 4 Adresse des stations De 0 0x3F De 0 0x1F De 0 0xF De 0 7 De 0 3

Une station inactive nmet pas de mots communs et ne peut pas lire ceux mis par les autres stations. Une station active en lecture nmet pas de mots communs mais peut lire ceux mis par les autres stations. Une station active en lecture/criture met ses mots communs et peut lire ceux mis par les autres stations. Les stations dclares en lecture/criture doivent avoir les adresses les plus basse sur le rseau. Il est possible de configurer un nombre de mots communs infrieur au maximum autoris par station. Cette possibilit doit tre utilise dans les cas ou il y a peu dinformations transmettre. Le traitement des mots communs par la fonction automatisme sen trouvera amlior. Code retourn Si OK Code 0x00 Message de compte rendu Configuration OK

fr-938846/4

15 - 39

Si dfaut Code 0x01 0x02 0x03 0x04 0x05 Message de compte rendu Paramtre taille incorrect Paramtre activit incorrect Taille incompatible avec ladresse de station (Si activit == 1) Processeur rseau en dfaut Processeur rseau en mode test

15.5.5

Rponse la requte STATUS

netst_ad

Syntaxe de linstruction netst_ad(&adresse_status)

&adresse_status Description

Adresse du premier octet de la zone status utilisateur.

Permet de dfinir ladresse de la zone utilisateur ou se trouve les valeurs spcifique sur ltat de la commande numrique accessible par la requte STATUS (Code 0x31) (Voir manuel du protocole UNITE). Fonctionnement Cette fonction doit tre appele dans la tche %INI. Elle permet de dfinir ladresse partir de laquelle sont mmoriss les 16 octets du champ USER_SPECIFIC.

REMARQUE : Si cette fonction nest pas appele, le champ USER_SPECIFIC nest pas significatif.
Exemple netst_ad(%M100.&) La requte STATUS trouvera les valeurs du champ USER_SPECIFIC ladresse %M100.&. Code retourn Si OK Code 0x00 Message de compte rendu Configuration OK

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&adresse_status" incorrect, - fin du champ status hors zone autorise.

15 - 40

fr-938846/7

Programmation en langage C

16 Programmation en langage C

16.1 16.2 16.3 16.4

Gnralits Appel dun module excutable Identification dun module excutable Programmation en langage C
16.4.1 16.4.2 16.4.3 16.4.4

16-3

exec exechdl

16-3 16-4 16-5 16-5 16-5 16-7 16-7 16-7 16-8 16-8 16-8 16-9 16-9 16-11 16-12 16-13 16-14 16-20 16-21 16-22 16-22 16-23 16-26 16-30

Notion de module Interface entre les modules C Zone dchanges Accs aux variables internes banalises sauvegardes 16.4.5 Accs aux variables internes banalises non sauvegardes 16.4.6 Accs aux entres borniers 16.4.7 Accs aux sorties borniers 16.4.8 Type des donnes standards 16.4.9 Les fonctions de la librairie 16.4.9.1 Fonctions systmes 16.4.9.2 Exploitation des fonctions systmes 16.4.9.3 Fonctions dchanges par protocole 16.4.9.4 Gestion des lignes sries 16.4.9.5 Gestion du mode transparent 16.4.9.6 Programmation des entres/sorties analogiques 16.4.9.7 Lectures/Ecritures explicites 16.4.9.8 Programmation des entres interruptions 16.4.9.9 Gestion des tches de fond 16.4.9.10Fonctions dusage gnral 16.4.9.11Gestion de fichiers 16.4.9.12Gestion de rpertoire

16

fr-938846/7

16 - 1

16 - 2

fr-938846/7

Programmation en langage C

16.1

Gnralits

Lutilisation du langage C pour la programmation de la fonction automatisme prsente les avantages suivants : - criture de programmes structurs, (Emploie de noms de variables explicites, syntaxe du langage, structure de donnes, chanes de caractres, .. etc ...), - utilisation de bibliothques de fonctions (Gestion de chanes de caractres, calcul mathmatique, .. etc ...), - criture de ses propres librairies de fonctions qui peuvent tre utilises pour plusieurs applications. Toutes les tches peuvent tre crites en langage C. Toutes les variables de la zone dchanges sont accessibles en programmation C. Les fonctions exec(..) et exechdl(..) permettent la gestion dexcutables C, issus de la chane de compilation C, partir dun module ladder.

16

ATTENTION

Lors de l'utilisation d'un pointeur, il faut garantir l'initialement correct de celui-ci. Si ce contrle n'est pas effectu, il y a risque de gnrer un dfaut "adresse interdite" Par exemple, il faut tester le compte rendu de la fonction "MALLOC" avant d'utiliser l'adresse renvoye par celle-ci.

16.2

Appel dun module excutable

exec

Syntaxe de linstruction exec(whexec, {arg }6 )

whexec : arg :

Identificateur logique du module excutable appeler. Eventuels arguments (tendus sur 32 bits et passs sur la pile ).

Permet lappel dun excutable issu dune chane de compilation pour langage C. Fonctionnement Les arguments (signs) arg sont tendus sur 32 bits et empils suivant la convention du langage C (le premier argument au sommet de la pile ). whexec nest pas empil. Lidentificateur logique whexec est fourni par la fonction exechdl(). Le systme analyse whexec et appelle le module excutable associ. Code retourn Si OK La valeur retourne par lexcutable C.

fr-938846/7

16 - 3

16.3

Identification dun module excutable

exechdl

Syntaxe de linstruction exechdl(&chane )

&chane :

Adresse dune chane termine par un octet NUL.

Permet la lecture de lidentificateur logique dune fonction dun module excutable issu dune chane de compilation pour langage C. Fonctionnement La chane pointe par &chane contient le nom dune fonction en C. Pour tre reconnu par le moniteur, le nom dune fonction doit tre communiqu depuis un module C par la fonction EXPORT(..) (Voir 16.4.9). La fonction exechdl() doit tre appele dans la tche %INI. Code retourn Si OK whexec > 0 : Si dfaut whexec == 0: Le systme ne connat pas le nom point par &chane. Identificateur logique du module excutable (valeur sur 16 bits). Cet identificateur est utilis pour lappel de lexcutable par la fonction exec().

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "&chane" incorrect, - fin de chane hors zone autorise.

16 - 4

fr-938846/7

Programmation en langage C

16.4
16.4.1

Programmation en langage C
Notion de module

Un module est une entit excutable indpendante. Tous les objets dfinis dans un module (Donnes ou fonctions) sont internes celui-ci et peuvent tre mis la disposition dune entit extrieure (Modules C, modules Ladder ou moniteur). Pour tre valide, un module doit possder une seule fonction main(). Un module est issu de la compilation et de ldition de lien dun ou de plusieurs fichiers sources C. Il est visible et accessible sous PLCTOOL comme un fichier de type *.XCX. Une application peut tre constitue dun ou plusieurs modules C. Le dcoupage des grosses applications en plusieurs modules est fortement conseill.

16

16.4.2

Interface entre les modules C

Les applications crites en C peuvent atteindre des tailles trs importantes (Plusieurs centaines de Koctets). Une modification de lapplication entrane la compilation, ldition des liens et le chargement de tout le module. Le temps ncessaire toutes ces oprations peut rapidement devenir trs long. Pour optimiser les temps de traitement, il est ncessaire de sparer les gros modules en plusieurs petits modules indpendants qui peuvent schanger des informations de tout type (Fonctions, tableaux, structures, variables). Ainsi, dans un module donn, on travail sur les pointeurs des objets transfrer, et on initialise ces pointeurs au moment de la rsolution des liens. Dans les paragraphes suivants, nous utiliserons les termes : - objet import pour les objets utiliss dans un module et dfini dans un autre, - objet export pour un objet dfini dans un module et mis la disposition de tout autre module. Le terme objet regroupe toutes les types de donnes globales : - Structures, - Fonctions, - Variables globales, - tableaux, - .. etc ... Deux fonctions, IMPORT() et EXPORT(), sont disponibles pour traiter les objets imports et exports.

fr-938846/7

16 - 5

Fonctions La fonction IMPORT() permet dexploiter dans un module un objet extrieur. La fonction EXPORT() permet de mettre la disposition des autres modules un objet en vue de son exploitation.

ATTENTION

Un objet ne peut tre import que si un autre module la export. Lutilisateur doit dfinir les objets imports et exports dans la fonction main() de ses modules.
Lorsque le traducteur est appel, le moniteur met jour une table dite des exports et une table dite des imports. Ces deux tables contiennent la liste des symboles et leur adresse respective. Une fois que toutes les fonctions main() de tous les modules ont t appeles, le moniteur peut faire les liens entre objets exports et objets imports. Le nom du symbole sert au moniteur pour lier les objets, on ne pourra, par consquent, utiliser un mme nom pour exporter deux objets diffrents.
Moniteur Table des Exportes
Symbole NOM @Symb Ad1

Module A

Module B

EXPORT ("NOM", Ad1)

Ad2 = Ad1

IMPORT ("NOM", Ad2)

Table des Importes


Symbole NOM @Symb Ad2

NOM : Symbole (Chane de caractres) servant lors de l'importe Ad1 : Adresse de l'objet exporter (Dfini dans le module A) Ad2 : Adresse de l'objet qui sera utilis dans le module B

16 - 6

fr-938846/7

Programmation en langage C

16.4.3

Zone dchanges

Toutes les variables de la zone dchanges (Voir chapitre 3) sont accessibles en programmation C. La zone dchanges est dfinie dans le fichier en-tte NUM.H. Il est ncessaire dinclure en en-tte des fichiers sources qui doivent utiliser la zone dchanges le fichier NUM.H. Le fichier NUM.H est divis en quatre zones qui sont valides par les dfinitions suivantes : - la zone dchanges est valide par #define VariablesLAD, - la zone fonctions du mode transparent est valide par #define EcranCN, - la zone du formalisme grafcet est valide par #define Grafcet, - la zone de gestion de fichiers est valide par #define Gestion_Fichier. Exemple Pour utiliser la zone dchanges #define VariablesLAD #include <NUM.H> Pour utiliser la zone dchanges et les fonctions du mode transparent #define VariablesLAD #define EcranCN #include <NUM.H>

16

16.4.4
Mot cl _MB(a) _MW(a) _ML(a)

Accs aux variables internes banalises sauvegardes


Valeurs 0 < a < 77FF 0 < a < 77FE 0 < a < 77FD Dfinition Octet sign Mot sign Long mot sign

Les variables par octet, mot ou long mot sont accessibles par les mots cls suivants.

On peut aussi accder ladresse dune donne (Equivalent loprateur .& du ladder). Mot cl _pM(a) Valeurs 0 < a < 77FF Dfinition

16.4.5
Mot cl _VB(a) _VW(a) _VL(a)

Accs aux variables internes banalises non sauvegardes


Valeurs 0 < a < 7FFF 0 < a < 7FFE 0 < a < 7FFD Dfinition Octet sign Mot sign Long mot sign

Les variables par octet, mot ou long mot sont accessibles par les mots cls suivants.

On peut aussi accder ladresse dune donne (Equivalent loprateur .& du ladder). Mot cl _pV(a) Valeurs 0 < a < 7FFF Dfinition

fr-938846/7

16 - 7

16.4.6
Mot cl _IB(a,b,c) _IW(a,b,c) _IL(a,b,c)

Accs aux entres borniers


Valeurs Dfinition Octet Mot Long mot

Les variables ne sont accessibles quen lecture et par octet, mot ou long mot.

Pour tous ces mots cls, on a : - a : N du rack de 0 < a < 6 - b : N de carte dans le rack de 0 < b < F - c : Adresse logique lintrieur du poste de 0 < c < 3F

REMARQUE : Pour accder une entre particulire, il faut masquer loctet correspondant
16.4.7
Mot cl _QB(a,b,c) _QW(a,b,c) _QL(a,b,c)

Accs aux sorties borniers


Valeurs Dfinition Octet Mot Long mot

Les variables ne sont accessibles quen criture et par octet, mot ou long mot.

Pour tous ces mots cls, on a : - a : N du rack de 0 < a < 6 - b : N de carte dans le rack de 0 < b < F - c : Adresse logique lintrieur du poste de 0 < c < 3F

REMARQUE : Pour accder une sortie particulire, il faut masquer loctet correspondant
16.4.8 Type des donnes standards
Dfinition Variable non signe sur 4 octets Variable non signe sur 2 octets Variable non signe sur 1 octet Variable signe sur 4 octets Variable signe sur 2 octets Variable signe sur 1 octet (caractre)

Pour plus de clart, le type des donnes standards C a t redfini. Donne standard UINT32 UINT16 UINT8 SINT32 SINT16 SINT8

16 - 8

fr-938846/7

Programmation en langage C

16.4.9

Les fonctions de la librairie

Une application crite en C est gnre sur systme autonome. La librairie de fonctions NUM.OBJ permet davoir accs aux primitives du moniteur. Cette librairie est utilise au moment de ldition des liens. Toutes ces fonctions sont prototypes dans le fichier entte NUM.H 16.4.9.1 Fonctions systmes

16

Exportation dun objet Syntaxe SINT32 EXPORT(SINT8 *symbole, void *ad_symbole)

EXPORT

symbole : ad_symbole :

Chane de caractre Adresse du symbole

Cette fonction rend un objet C visible par tous les autres modules (visibilit globale) ou associe une fonction une tche automate. Compte rendu: - 0 = OK - -1 = tche dj dfinie ou trop de symboles d'exportation. Exemple 1 Cet EXPORT a pour effet dassocier ts01_en_c la tche TS01. main() { EXPORT(TS01,ts01_en_c); } void ts01_en_c() { corps de la fonction } Exemple 2 Cet EXPORT aura pour effet de donner tableau une visibilit globale. SINT16 tableau[100]; main() { EXPORT(ETIQUETTE,tableau); }

fr-938846/7

16 - 9

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*symbole" incorrect, - paramtre "*ad_symbole" incorrect, - fin de chane "symbole" hors zone autorise. Importation dun objet Syntaxe SINT32 IMPORT(SINT8 *symbole, void **ad_symbole)

IMPORT

symbole : ad_symbole :

Chane de caractre Pointeur de pointeur du symbole

Cette fonction permet dutiliser un objet dfini dans un autre module. Un objet import doit tre export pralablement dans un autre module. Compte rendu: - 0 = OK - -1 = appel en dehors de la tche d'initialisation ou trop de symboles d'importation. Exemple void (* fonction_IMPORT)(); main() { IMPORT(ETIQUETTE, &fonction_IMPORT); } void essai() { fonction_IMPORT(); corps de la fonction } Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*symbole" incorrect, - paramtre "**ad_symbole" incorrect, - fin de chane "symbole" hors zone autorise.

16 - 10

fr-938846/7

Programmation en langage C

16.4.9.2

Exploitation des fonctions systmes

Exemple EXPORT dun tableau Dans le fichier EXP.C #include <NUM.H> SINT16 tableau [100]; main() { EXPORT(ETIQUETTE , tableau); } Dans le fichier IMP.C #include <NUM.H> SINT16 *ptab; main() { IMPORT(ETIQUETTE , &ptab); } Exemple EXPORT dune fonction Dans le module 1 #include <NUM.H> SINT16 Affiche(UINT8 quoi , SINT16 combien) { SINT16 i ; for (i = 0 ; i < combien ; i++); { EMIV(quoi) ; } return(i); } main() { EXPORT(FONCT1 , Affiche); }

16

fr-938846/7

16 - 11

Dans le module 2 #include <NUM.H> SINT16 (* FoncImp) (UINT8 , SINT16); /* FoncImp : pointeur sur une fonction ncessitant deux paramtres et qui retourne un SINT16 */ void fonct2() { PCUR(5 , 2); FoncImp(_ , 10); /* Excution de la fonction importe */ } main() { IMPORT(FONCT1 , &FoncImp); /* Initialisation du pointeur sur la fonction extrieure */ } 16.4.9.3 Fonctions dchanges par protocole

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder (Voir chapitre 15).

Lecture dune rponse dun serveur distant Syntaxe UINT8 NETI(UINT8 porte, UINT8 *ad_buffer) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*datagramme" incorrect, - "*datagramme+taille" hors zone autorise. Envoie dune requte UNITE vers un serveur distant Syntaxe UINT8 NETO(UINT8 porte, UINT8 *ad_buffer) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*datagramme" incorrect, - "*datagramme+taille" hors zone autorise.

NETI

NETO

16 - 12

fr-938846/7

Programmation en langage C

Lecture dune rponse en interne Syntaxe UINT8 UNITI(UINT8 porte_source, UINT8 *datagramme) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*datagramme" incorrect, - "*datagramme+taille" hors zone autorise. Envoie dune requte UNITE en interne Syntaxe UINT8 UNITO(UINT8 porte_source, UINT8 *datagramme) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*datagramme" incorrect, - "*datagramme+taille" hors zone autorise. 16.4.9.4 Gestion des lignes sries

UNITI
16

UNITO

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder (Voir chapitre 12).

Contrle du pilote de ligne srie Syntaxe SINT8 COMCTL(UINT8 n_port, UINT8 config)

COMCTL

Slection des vitesses et formats Syntaxe SINT32 COMF(UINT8 n_port, UINT16 vitemi, UINT16 vitrec, UINT16 format)

COMF

fr-938846/7

16 - 13

Lecture du tampon de rception Syntaxe SINT16 COMIN(UINT8 n_port, UINT8 *buffer, UINT16 nb) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*buffer" incorrect, - "*buffer+nb" hors zone autorise. Emission dun tampon Syntaxe SINT8 COMOUT(UINT8 n_port, UINT8 *buffer, UINT16 nb) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*buffer" incorrect, - "*buffer+nb" hors zone autorise. Lecture de ltat dune ligne srie Syntaxe UINT16 COMREG(UINT8 n_port) 16.4.9.5 Gestion du mode transparent

COMIN

COMOUT

COMREG

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder (Voir chapitre 8).

Emission dun caractre vers la visu Syntaxe void EMIV(UINT8 char)

EMIV

char :

Caractre ou code du caractre (Voir 8.3.4.1).

16 - 14

fr-938846/7

Programmation en langage C

Initialisation des caractristiques de lcran graphique Syntaxe void INIG()

INIG
16

Slection de la fentre principale Syntaxe void MAIN_WINDOW()

MAIN_WINDOW

Slection de la fentre paramtrable Syntaxe

STATUS_WINDOW
void STATUS_WINDOW()

Slection de la fentre cartouche Syntaxe void KEY_WINDOW()

KEY_WINDOW

Positionnement du curseur Syntaxe void PCUR(UINT8 ligne, UINT8 col)

PCUR

Trac dun trait Syntaxe void PICO(UINT8 Type_Trait, UINT16 X, UINT16Y)

PICO

fr-938846/7

16 - 15

Type_Trait : Type_trait 0 1 2 3 4 X,Y :

Type de trait pour le trac Type de trait Trait continu Trait pointill Trait tiret Trait mixte Absence de trait Position du point darriv (En pixels).

Trac dune flche Syntaxe void FLEC(UINT8 Code, UINT16 Longueur, UINT16 Largeur)

FLEC

Code : Code 1 2 3 4 Longueur : Largeur :

Orientation de la flche Type de flche Pointe vers la droite Pointe vers la gauche Pointe vers le haut Pointe vers le bas Longueur de la pointe (En pixels). Largeur de la pointe (En pixels).

Trac dun rectangle Syntaxe void RECT(UINT16 Largeur, UINT16 Longueur)

RECT

Largeur : Longueur :

Largeur du rectangle (En pixels). Longueur du rectangle (En pixels).

16 - 16

fr-938846/7

Programmation en langage C

Trac dun cercle Syntaxe void CERC(UINT16 Rayon)

CERC
16

Rayon :

Rayon du cercle (En pixels).

Trac dun losange Syntaxe void LOSA( UINT16 Largueur, UINT16 DemiHauteur, UINT16 HauteurTotale)

LOSA

Trac dun arc de cercle dans le sens antitrigonomtrique Syntaxe

ARCA

void ARCA(UINT8 Type_Trait, UINT16 Xarr, UINT16 Yarr, UINT16 Xcentre, UINT16 Ycentre ) TypeTrait : Xarr, Yarr : Xcentre, Ycentre : Type de trait pour le trac Coordonnes du point darriv (En pixels). Coordonnes du centre (En pixels).

Trac dun arc de cercle dans le sens trigonomtrique Syntaxe

ARCT

void ARCT(UINT8 Type_Trait, UINT16 Xarr, UINT16 Yarr, UINT16 Xcentre, UINT16 Ycentre )

TypeTrait : Xarr, Yarr : Xcentre, Ycentre :

Type de trait pour le trac Coordonnes du point darriv (En pixels). Coordonnes du centre (En pixels).

Trac dun icne de test. Syntaxe

TEST

void TEST(UINT16 DemiBase, UINT16 DemiLargeur, UINT16 DemiHauteur, UINT16 Hauteur)

fr-938846/7

16 - 17

RECT : Rectangle Longueur Dp. Rayon Largeur

CERC : Cercle Dp.

Arr. TEST : Test DemiLargeur DemiBase Dp Demi Hauteur

Arr.

LOSA : Losange / Triangle Largeur Dp

Demi Hauteur

Arr. Arr. FLEC : Flche ARCT Arr. ARCA Dp.

Dp. Y Largeur Dp. Arr. Xarr Arr.

HauteurTotale

Hauteur

Arr.

Longueur

Xcentre Dp. Ycentre Yarr

Centre cercle 0

16 - 18

fr-938846/7

Programmation en langage C

Coloriage avec arrt sur contour Syntaxe void COLOR(UINT8 Couleur, UINT16 X, UINT16 Y)

COLOR
16

Couleur : X, Y :

Code de couleur du contour, de 0 15 (Voir 8.3.3.2). Position de dbut de coloriage (En pixels).

Slection dune couleur Syntaxe void SELCOL(UINT8 Couleur)

SELCOL

Simulation du clavier pupitre Syntaxe SINT32 PUTKEY(UINT8 Code_touche)

PUTKEY

Ouverture dune acquisition clavier Syntaxe SINT32 SCANO(UINT8 *Question, UINT16 Largeur) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*question" incorrect, - fin de chane hors zone autorise. Ouverture dune acquisition clavier numrique Syntaxe SINT32 SCANU(UINT8 *Question, UINT16 Largeur) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*question" incorrect, - fin de chane hors zone autorise.

SCANO

SCANU

fr-938846/7

16 - 19

Acquisition dune chane de caractres Syntaxe SINT32 SCANS(UINT8 *Dest) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*dest" incorrect, - fin du champ acquisition hors zone autorise. Acquisition et conversion dun nombre en dcimal Syntaxe SINT32 SCAND(UINT32 *Lvariable) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*Ivariable" incorrect. Acquisition et conversion dun nombre en hexadcimal Syntaxe SINT32 SCANX(UINT32 *Lvariable) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*Ivariable" incorrect. Fermeture dune acquisition clavier Syntaxe SINT32 SCANC() 16.4.9.6 Programmation des entres/sorties analogiques

SCANS

SCAND

SCANX

SCANC

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder (Voir chapitre 9)

Redirection dune carte analogique Syntaxe SINT32 ANAA(UINT8 Cv_Initial, UINT8 Cv_Final)

ANAA

16 - 20

fr-938846/7

Programmation en langage C

Lecture dune entre analogique Syntaxe SINT32 ANAI(UINT8 cv, SINT16 *winput) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*winput" incorrect. Ecriture dune sortie analogique Syntaxe SINT32 ANAO(UINT8 cv, SINT16 woutput)

ANAI
16

ANAO

Configuration dune carte E/S analogique Syntaxe SINT32 ANAS(UINT8 cv, SINT16 wconfig) 16.4.9.7 Lectures/Ecritures explicites

ANAS

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder (Voir chapitre 10).

Lecture explicite dune carte entre Syntaxe SINT8 READ_I(UINT16 rcmv, UINT8 n)

READ_I

Ecriture explicite dune carte sortie Syntaxe SINT8 WRITE_Q(UINT16 rcmv, UINT8 n)

WRITE_Q

fr-938846/7

16 - 21

16.4.9.8

Programmation des entres interruptions

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder (Voir chapitre 11).

Configuration dune entre interruption Syntaxe SINT32 ITICTL(UINT32 Numro_iti, UINT8 iti_config)

ITICTL

Lecture dune entre interruption Syntaxe UINT8 ITIGET(UINT8 Numro_iti)

ITIGET

Association une entre interruption avec un groupe daxes Syntaxe SINT32 ITI_GR( UINT32 Numro_iti, UINT32 Groupe)

ITI_GR

Association dune tche hard avec une entre interruption Syntaxe SINT32 THITI(UINT32 Numro_Th, UINT32 Numro_iti) 16.4.9.9 Gestion des tches de fond

THITI

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder (Voir chapitre 7).

Dbut dune section critique Syntaxe void CSBEGIN(void)

CSBEGIN

16 - 22

fr-938846/7

Programmation en langage C

Fin dune section critique Syntaxe void CSEND(void)

CSEND
16

Dpart dune tche de fond Syntaxe SINT32 TFSTART(UINT16 Numero_tf)

TFSTART

Arrt dune tche de fond Syntaxe SINT32 TFSTOP(UINT16 Numero_tf)

TFSTOP

Mise en sommeil dun tche de fond pendant n cycle automate Syntaxe void WHTR(UINT16 n) 16.4.9.10 Fonctions dusage gnral

WHTR

Le fonctionnement et les paramtres de ces fonctions sont identiques ceux des fonctions ladder correspondantes (Voir chapitre 6).

Mise jour de la sortie analogique N0 Syntaxe void CNA0(SINT16 valeur)

CNA0

Mise jour de la sortie analogique N1 Syntaxe void CNA1(SINT16 valeur)

CNA1

fr-938846/7

16 - 23

Recherche circulaire optimale Syntaxe

QCKTOOL

SINT32 QCKTOOL(SINT32 origine, SINT32 destination, SINT32 n)

Correction dynamique dun outil Syntaxe

TOOLDYN

SINT32 TOOLDYN(SINT16 correction, UINT8 axe, UINT8 n_outil)

Temporisation de type enclenchement Syntaxe

TEMPO_ENCLENCHEMENT

SINT32 TEMPO_ENCLENCHEMENT(SINT8 Instance, UINT8 Entre, SINT32 Seuil)

Temporisation de type dclenchement Syntaxe

TEMPO_DECLENCHEMENT

SINT32 TEMPO_DECLENCHEMENT(SINT8 Instance, UINT8 Entre, SINT32 Seuil)

Temporisation de type impulsion Syntaxe

TEMPO_IMPULSION

SINT32 TEMPO_IMPULSION(SINT8 Instance, UINT8 Entre, SINT 32 Seuil)

Appel dun sous programme Syntaxe void SP(UINT8 n_module, argn)

SP

16 - 24

fr-938846/7

Programmation en langage C

Semaphore Syntaxe SINT8 SEMA(SINT8*semaphore) Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*semaphore" incorrect, Lecture de n variables E42000 Syntaxe SINT32 R_E42000(SINT8 *dest, UINT32 numero, UINT32 n)

SEMA
16

R_E42000

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*dest" incorrect, - "*dest+n" hors zone autorise. Ecriture de n variables E42000 Syntaxe SINT32 W_E42000(SINT8 *source, UINT32 numero, UINT32 n)

W_E42000

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*source" incorrect, - "*source+n" hors zone autorise. Lecture de la date courante Syntaxe TMGET(*date)

TMGET

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*date" incorrect.

fr-938846/7

16 - 25

Lecture de la date courante et jour de la semaine Syntaxe DTGET(*date)

DTGET

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*date" incorrect. 16.4.9.11 Gestion de fichiers

La mmoire globale est gre comme une unit de disque. Les donnes y sont stockes sous forme de fichiers rangs dans des rpertoires. Il existe trois rpertoires destins recevoir les diffrents types de fichiers : - les fichiers applicatifs LADDER ayant une extension .XLA, - les fichiers applicatifs C ayant une extension .XCX, - les fichiers utilisateur. La programmation en C offre la possibilit de crer ses propres fichiers. Un certain nombre de primitives sont sa disposition pour la gestion de ces fichiers. Les codes derreurs retourns par les primitives (fichiers et rpertoire) sont : Code derreur UF_SYSFAIL UF_DSKFULL UF_ERRNAME UF_NEXIST UF_OPEN UF_NOPEN Description Erreur systme Disque plein Nom de fichier incorrect Fichier inexistant Fichier ouvert Fichier non ouvert

Cration dun fichier dans le rpertoire utilisateur Syntaxe

USER_CREATE_F

SINT32 USER_CREATE_F(SINT8 *pNom_Fichier) Paramtres Entres : Sortie : pNom_Fichier : Le rpertoire ne doit pas tre spcifi car les fichiers utilisateurs sont forcment dans un rpertoire fig. Aucune

16 - 26

fr-938846/7

Programmation en langage C

REMARQUES :Si le nom du fichier existe dj, la fonction retourne le code derreur UF_ERRNAME. Un fichier existant doit pralablement tre effac par la fonction USER_REMOVE_F avant que le nom soit rutilis pour un autre fichier. Aprs excution de la fonction USER_CREATE_F, le nouveau fichier est vide. La fonction USER_CREATE_F nest utilise que pour les fichiers de donnes. La fonction USER_CREATE_F nouvre pas automatiquement le fichier. Il faut utiliser la fonction USER_OPEN_F pour raliser cette ouverture.
Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*pNom_fichier" incorrect.

16

Suppression dun fichier Syntaxe

USER_DELETE_F
SINT32 USER_DELETE_F(SINT8 *pNom_Fichier)

Paramtres Entres : Sortie : pNom_Fichier : Le rpertoire ne doit pas tre spcifi car les fichiers utilisateurs sont forcment dans un rpertoire fig. Aucune

REMARQUE : Si un fichier est toujours ouvert, il ne sera pas effac.


Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*pNom_fichier" incorrect.

Ouverture dun fichier Syntaxe

USER_OPEN_F
SINT32 USER_OPEN_F(UINT32 *pF_Id, SINT8 *pNom_Fichier)

Description Ouvre un fichier identifi par pNom_Fichier. Ce fichier est accessible en lecture et criture. Si lopration se droule normalement, le gestionnaire de fichiers retourne un identificateur pF_Id utilis par les fonctions USER_CLOSE_F, USER_READ_F, USER_WRITE_F et user_seek_f. Paramtres Entres : Sortie : pNom-Fichier : Le rpertoire ne doit pas tre spcifi car les fichiers utilisateurs sont forcment dans un rpertoire fig. pF_Id : Identificateur de fichier si lopration sest bien droul.

fr-938846/7

16 - 27

REMARQUES :La fonction USER_OPEN_F ne vrifie pas le type du fichiers. La fonction USER_OPEN_F positionne le pointeur de fichier sur le 1er octet du fichier.
Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*pF_id" incorrect, - paramtre "*pNom_Fichier" incorrect.

Fermeture dun fichier Syntaxe

USER_CLOSE_F
SINT32 USER_CLOSE_F(UINT32 F_Id)

Description Ferme un fichier pralablement ouvert par la fonction USER_OPEN_F. Paramtres Entres : Sorties : pF_Id : Identificateur de fichier Aucune

REMARQUE : Le nombre de fichier ouvert simultanment tant limit, la fonction USER_CLOSE_F doit tre utilise ds que louverture dun fichier nest plus ncessaire.
Lecture des donnes dun fichier Syntaxe SINT32 USER_READ_F(UINT32 pF_Id, UINT8 *pBuf, UINT32 Nb_Demande, UINT32 *Nb_lus) Paramtres Entres : pF_Id : Identificateur de fichier retourn par user_open_f. pBuf : Buffer de rception des donnes. Nb_Demande : Nombre doctets lire. Nb_Lus : Nombre doctets effectivement lus. Si ce nombre est infrieur au nombre demand, cela signifie que la fin de fichier t atteinte.

USER_READ_F

Sorties :

REMARQUES :Les donnes sont lues partir de la position courante du pointeur de fichier. Le pointeur de fichier est automatiquement repositionn aprs la lecture.
Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*pBuf" incorrect, - "*pBuf+nb_Demandes" hors zone autorise, - paramtre "*nb_lus" incorrect.

16 - 28

fr-938846/7

Programmation en langage C

Ecriture dun fichier Syntaxe

USER_WRITE_F
16

SINT32 USER_WRITE_F(UINT32 pF_Id, UINT8 *pBuf, UINT32 Taille_Buf) Description Ecrit des donnes dans le fichier spcifi par pF_Id. Lcriture commence toujours au niveau du pointeur de fichier. Aprs lcriture, le pointeur est positionn sur le dernier octet du fichier. Paramtres Entres : pF_Id : Identificateur de fichier retourn par la fonction USER_OPEN_F. pBuf : Buffer des donnes crire. Taille_Buf : Taille du buffer. Aucune

Sorties :

REMARQUES :Les donnes sont crites partir de la position courante du pointeur de fichier. Le pointeur de fichier est automatiquement repositionn aprs lcriture.
Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*pBuf" incorrect, - "*pBuf+nb_demandes" hors zone autorise.

Repositionnement du pointeur Syntaxe

USER_SEEK_F

SINT32 USER_SEEK_F(UINT32 pF_Id, UINT32 mode, SINT32 offset, UINT32 *Old_Ptr) Description Repositionne pour le pointeur pour lecture criture dans un fichier spcifi par pF-Id. Paramtres Entres : pF_Id : Identificateur de fichier retourn par la fonction USER_OPEN_F. mode : Position partir de laquelle on fait le dplacement 0 dplacement partir du dbut du fichier. 1 dplacement partir de la position courante. 2 dplacement partir de la fin du fichier. offset : Dplacement sign relatif au mode choisi. Old_Ptr : Valeur initiale du pointeur.

Sortie :

REMARQUES :Le pointeur est diffrent pour chaque fichier. Le pointeur est une variable non sign. Un dplacement en dehors de limites du fichier, gnre une erreur.

fr-938846/7

16 - 29

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*pOld_Ptr" incorrect, 16.4.9.12 Gestion de rpertoire

Seul le rpertoire utilisateur est accessible. Trois primitives permettent de connatre le contenu de ce rpertoire.

Ouverture du rpertoire utilisateur Syntaxe

USER_OPEN_DIR
SINT32 USER_OPEN_DIR()

Paramtres Entres : Sortie : Aucune Aucune

REMARQUE : Un rpertoire est ouvert en lecture seulement.


Fermeture du rpertoire utilisateur Syntaxe SINT32 USER_CLOSE_DIR() Description Ferme le rpertoire utilisateur pralablement ouvert avec la primitive USER_OPEN_DIR. Paramtres Entres : Sorties : Aucune Aucune USER_CLOSE_DIR

Lecture des donnes du rpertoire utilisateur Syntaxe

USER_READ_DIR

SINT32 USER_READ_DIR(UINT8 *pBuf, UINT32*Nb_Demande, UINT32*Nb_lus) Paramtres Entres : Sorties : pBuf : Buffer de rception des donnes. Nb_Demande : Nombre doctets lire. Nb_Lus : Nombre doctets effectivement lus. Si ce nombre est infrieur au nombre demand, cela signifie que la fin du rpertoire t atteinte.

16 - 30

fr-938846/7

Programmation en langage C

Description dun fichier du rpertoire Un fichier du rpertoire est dcrit par 32 octets organiss comme suit : Nombre doctet 8 octets Description Nom du fichier Si Nom_fichier[0] prend les valeurs suivante, alors : 0x00 signifie fin de rpertoire 0x2E signifie Fichier systme 0xE5 signifie Fichier dtruit 0x05 signifie Le nom commence par 0x05 Extension du fichier Attribut du fichier Bit 0 = 1 : Lecture seule Bit 1 = 1 : Fichier cach Bit 2 = 1 : Fichier systme Bit 3 = 1 : Nom du volume (ROOT) Bit 4 = 1 : Fichier rpertoire Bit 5 = 1 : Bit darchive Bit 6 = 1 : Rserv Bit 7 = 1 : Rserv Description Rserv Heure au format INTEL Date au format INTEL Cluster de dpart au format INTEL Taille du fichier au format INTEL

16

3 octets 1 octet

Nombre doctet 10 octets 2 octets 2 octets 2 octets 4 octets

Erreur de programmation provoquant la mise en dfaut de l'unit centrale Accs une adresse interdite : - paramtre "*pBuf" incorrect, - "*pBuf+Nb_Demande" hors zone autorise, - paramtre "Nb_lus" incorrect. Lheure, la date et la taille sont codes au format INTEL cest dire que les octets de poids fort et les octets de poids faible sont inverss par rapport au format MOTOROLA. Au format MOTOROLA, les bits ont la signification suivante :

fr-938846/7

16 - 31

Pour l'heure Heures Minutes

Secondes
Nb d'incrment de 2 secondes

Bit 15

Bit 0

Pour la date Anne Mois

Jour

Bit 15

Bit 0

Pour faciliter le traitement de ces donnes, on peut utiliser les structures suivantes (dfinies dans le fichier den-tte NUM.H) : struct S_HEURE_FICHIER { UINT8 Sec :5; /* Seconde */ UINT8 Min :6; /* Minutes */ UINT8 Heure :5; /* Heures */ }; struct S_DATE_FICHIER { UINT8 Jour :5; /* jour */ UINT8 Mois :4; /* Mois */ UINT8 Annee :7; /* Annes */ }; struct S_ELEMENT_REPERTOIRE { UINT8 Nom_Fichier[8]; UINT8 Extension_Nom[3]; UINT8 Attribut; UINT8 Reserve[10]; UINT16 Heure_Intel; /* Mot au format INTEL */ UINT16 Date_Intel /* Mot au format INTEL */ UINT16 Cluster_Depart; UINT32 Taille_Fichier_Intel; /* Long mot au format INTEL */ };

16 - 32

fr-938846/7

Axes automates

17 Axes automates

17.1

Prsentation

La fonction axes automates permet la fonction automatisme de commander des axes. Ces axes dit axes automates sont pilots par la fonction CN. En fonction du systme 1060, la fonction CN pilote un maximum de : Maximum axe 32 8 Maximum groupe 8 (9 axes par groupe) 3 (9 axes par groupe)

NUM1060 srie I NUM 1060 srie II

17

Les axes automates sont rangs dans les groupes automates au sein desquels ils sont interpolables. Le nombre de groupes daxes (CN et automate) composant le systme est dfini par le paramtre machine P97 (Voir manuel des paramtres). Les fonctions de programmation pice assures par les groupes automates sont identiques celles assures par les groupes daxes CN sauf pour les fonctions M01, M12 et G75 (voir manuel de programmation pice). Les principaux modes de fonctionnement des groupes automates sont les modes Continu et Squentiel (Voir manuel oprateur). Un groupe automate fonctionne dans un de ces modes indpendamment du mode de fonctionnement des autres groupes (CN ou automate). Fonctionnement en mode "JOG" : - lorsqu'un groupe automate est valid par %Wg00.2 puis RAZ (impulsion %Wg01.0) ce groupe peut tre pilot en mode JOG. Il utilise alors son propre potentiomtre %Wg02.b pour moduler les avances.

17.2

Principe de programmation

Les commandes et compte-rendus changs entre la fonction automatisme et la fonction CN transitent par la zone dchange. Ces informations doivent tre traites dans le programme utilisateur.

17.2.1

Informations changes de la fonction automatisme vers la fonction CN

Les informations concernant les groupes daxes automates transmises par la fonction automatisme vers la fonction CN sont : Fonction Demande de dgagement durgence Demande de Dpart cycle Demande de RAZ sur le groupe Choix du mode (continu ou squentiel) Commande maintenue de vitesse rapide sur groupe Compte rendu des fonctions M sur le groupe Appel de sous programme par le processeur machine Signal darrt sur bute Validation du groupe Signal de fin de mouvement extrieur Autorisation des avances sur le groupe Variable %Wg01.4 %Wg01.2 %Wg01.0 %Wg00.7 %Wg00.6 %Wg00.5 %Wg00.4 %Wg00.3 %Wg00.2 %Wg00.1 %Wg00.0 Mnmonique C_DGURG1 C_DGURG8 C_CYCLE1 C_CYCLE8 C_RAZ1 C_RAZ8 C-MODE1 C_MODE8 C_FAST1 C_FAST8 CRM1 CRM8 APPSS1 APPSS8 ARBUT1 ARBUT8 VA1LID1 VALID8 C_FMEXT1 C_FMEXT8 C_AUTAV1 C_AUTAV8

fr-938846/8

17 - 1

17.2.2

Informations changes de la fonction CN vers la fonction automatisme

Les informations concernant les groupes daxes automates transmises par la fonction CN vers la fonction automatisme sont : Fonction Groupe en dfaut Axe en attente de position Dgagement durgence en cours Cycle en cours RAZ en cours Variable %Rg01.6 %Rg01.5 %Rg01.4 %Rg01.2 %Rg01.0 Mnmonique E_DEF1 E_DEF8 NO_POS1 NO_POS8 E_DGURG1 E_DGURG8 E_CYCL1 E_CYCL8 E_RAZ1 E_RAZ8

17 - 2

fr-938846/7

Mise au point des programmes

18 Mise au point des programmes

18.1 Programmation et mise au point avec PLCTOOL 18.2 Mise au point sur la CN
18.2.1 18.2.2 18.2.2.1 18.2.2.2 18.2.2.3 18.2.2.4 18.2.2.5 18.2.3 18.2.4 18.2.4.1 18.2.4.2 18.2.4.3 18.2.4.4 18.2.5 18.2.6 18.2.6.1 18.2.6.2 18.2.6.3 18.2.7 18.2.8 Procdure dAccs lutilitaire Contrle du fonctionnement de l'unit centrale Etat automate Activit des tches de fond Activit des tches hard Commande de l'unit centrale Raz des variables sauvegardes Temps moniteur et tches %TS Gestion des fichiers Formatage du volume Rpertoire de lapplication Suppression de fichier Validation - invalidation de la liaison PLCTOOL Configuration des Entres/Sorties Sauvegarde et Archivage du logiciel Dchargement du logiciel Vrification du dchargement Chargement du logiciel Chargement/dchargement de fichier vers PLCTOOL Animation ladder

18-3 18-3 18-3 18-5 18-6 18-8 18-8 18-8 18-10 18-11 18-13 18-14 18-15 18-16 18-16 18-17 18-20 18-21 18-21 18-21 18-22 18-22

18

fr-938846/7

18 - 1

18 - 2

fr-938846/6

Mise au point des programmes

18.1 18.2

Programmation et mise au point avec PLCTOOL Mise au point sur la CN

Se reporter la documentation PLCTOOL - Outil de programmation langage ladder.

Lutilitaire 7 rsident en mmoire, permet la gestion de lapplication automate et la liaison avec latelier logiciel PLCTOOL pour le chargement / dchargement des fichiers.

18.2.1

Procdure dAccs lutilitaire

Conditions requises Lutilitaire 7 ne ncessite pas de condition particulire daccs. Actions Slectionner le menu des utilitaires Le menu UTILITAIRES CN est affich lcran. Slectionner le menu PROGRAMMES UTILITAIRES PRESENTS Un menu listant les utilitaires prsent en mmoire CN est affich lcran. Choisir ventuellement la langue dans laquelle les programmes utilitaires seront dits. Frapper A pour Anglais. Ou Frapper F pour Franais. Le menu est dit dans la langue choisie. Slectionner lutilitaire 7.

18
&

UTIL

fr-938846/6

18 - 3

Affichage du menu principal GESTION DE LAPPLICATION AUTOMATE.

GESTION DE LAPPLICATION AUTOMATE Fonctionnement de lautomate Temps moniteur et %TS Gestion des fichiers Configuration des E/S Sauvegarde/archivage du logiciel Animation

-- entrer une commande (sortie X OFF) -../.. RACINE

Abandon de la procdure Frapper au clavier la commande. Retour la page AXES.

CTRL

S
X OFF

18 - 4

fr-938846/6

Mise au point des programmes

18.2.2

Contrle du fonctionnement de l'unit centrale

Cette fonction permet de visualiser des informations concernant le fonctionnement de l'unit centrale. Conditions requises Menu GESTION DE LAPPLICATION AUTOMATE lcran. Actions Frapper au clavier F pour Fonctionnement de lautomate. Visualisation du menu FONCTIONNEMENT DE LAUTOMATE.

18

FONCTIONNEMENT DE LAUTOMATE Etat automate : MARCHE (Pas de dfaut) Activite TF : ( 0-7 ) 0 0 0 0 0 0 0 ( 8-15 ) 0 0 0 0 0 0 0 Activite TH : ( 0-7 ) 0 0 0 0 0 0 0 ( 8-15 ) 0 0 0 0 0 0 0 Commandes : Depart / Stop / Init Raz variables sauvegardees
../..

0 0 0 0

RACINE

Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DE LAPPLICATION AUTOMATE.

RACINE

fr-938846/6

18 - 5

18.2.2.1

Etat automate

LEtat automate renseigne en permanence sur ltat de fonctionnement de l'unit centrale. Les messages visualiss dans cette zone sont spcifi dans le tableau ci aprs. Etat automate MARCHE Messages Pas de dfaut Dfaut configuration bus E/S Commentaire Fonction automatisme en fonctionnement correct Cause : Prsence d'une carte non reconnue. Absence d'une carte sur le bus. Divergence entre configuration programme et configuration relle. Programmation du chien de garde incorrecte. Action corrective Vrifier la configuration des entres/sorties (Voir 18.2.5). Controler l'tat de %R97F.B (Voir 3.8.5). Vrifier le %INI dans le programme client (Variables de configuration carte et chien de garde). Cause : Dfaut de liaison sur le bus. Action corrective Controler l'tat du status bus %Rrc39.B (Voir 3.7.3). Vrifier la continuit de l'anneau fibre optique. Contacter le SAV NUM.

Fonctionnement bus E/S incorrect

Etat automate ARRET Messages Dfaut interne moniteur Commentaire Cause : Dfaut interne grave. Action corrective Contacter le SAV NUM. Cause : Dpassement de la HTR (boucle dans programme) Action corrective Reprendre le programme client. Cause : Dfaut interne grave. Action corrective Contacter le SAV NUM.

Dfaut dpassement temps calcul

Dfaut automate non rpertori

18 - 6

fr-938846/6

Mise au point des programmes

Messages Dfaut configuration bus E/S

Commentaire Cause : Prsence d'une carte non reconnue. Absence d'une carte sur le bus. Divergence entre configuration programme et configuration relle. Programmation du chien de garde incorrecte. Action corrective Vrifier la configuration des entres/sorties (Voir 18.2.5). Controler l'tat de %R97F.B (Voir 3.8.5). Vrifier le %INI dans le programme client (Variables de configuration carte et chien de garde). Cause : Dfaut de liaison sur le bus. Action corrective Controler l'tat du status bus %Rrc39.B (Voir 3.7.3). Vrifier la continuit de l'anneau fibre optique. Contacter le SAV NUM. Cause : Nombre d'entres/sorties suprieure aux limites du systme. Action corrective Rduire le nombre de carte entres/sorties dans les limites autorises.

Fonctionnement bus E/S incorrect

18

Excs de carte sur bus E/S

A l'installation du code client Messages Lecture application impossible Commentaire

Cause : Dfaut interne grave. Action corrective Contacter le SAV NUM. Erreurs dans module TSi / TFi / THi / SPi / Cause : code C / ??? Problmes au chargement (module trop grand, pas assez de place en mmoire locale pour charger le module). Action corrective Rduire la taille du module. Augmenter la taille de la mmoire locale. Si ???, contacter le SAV NUM. Module C : double exportation de symboles Cause : Double exportation de symboles dans un module C. Action corrective Vrifier et modifier le module C. Double dfinition du module TSi / TFi / THi / SPi / Cause : code C / ??? Un module de mme nom est prsent deux fois dans l'application. Action corrective L'application client doit tre compose de module de nom diffrent. Mettre en conformit l'application client. Si ???, contacter le SAV NUM.

fr-938846/7

18 - 7

A l'excution du code client Un message sur trois lignes est visualis. Ligne 1 : Ligne 2 : Ligne 3 : Libell du message. Donne la tche mise en cause TSi / THi / TFi / INI Donne le module mis en cause Module : *.*[@ relative par rapport au dbut du module] ou Module : ??? [@ relative par rapport au dbut du mapping moniteur AP].

REMARQUE : Les adresses relatives par rapport au dbut du module ne sont exploitables que pour les modules C (*.XCX). Le fichier *.MAP de l'application C donne ces adresses.
Messages Code client : Dbordement sur division Commentaire Cause : Dbordement signal sur une division Action corrective Vrifier et modifier le module mis en cause. Si ???, contacter le SAV NUM. Cause : Opration sur une adresse interdite. Action corrective Vrifier et modifier le module mis en cause. Si ???, contacter le SAV NUM. Cause : Utilisation de fonctions ou de symboles incohrent dans le programme client. Programme client incohrent Action corrective Vrifier et modifier le module mis en cause. Si ???, contacter le SAV NUM.

Code client : @ relative au moniteur = Adresse interdite

Code client incohrent

18.2.2.2

Activit des tches de fond

Lactivit des tches de fond est visualise par 16 compteurs, associs aux tches %TF0 %TF15. A chaque traitement total ou partiel dune tche de fond, pendant un cycle HTR, le compteur de la tche est incrment de un. Cette fonction permet de visualiser les tches en sommeil, en cours dexcution, le nombre de cycle HTR ncessaire lexcution dune tche, .. etc ... 18.2.2.3 Activit des tches hard

Lactivit des tches hard est visualise par 16 compteurs, associs aux tches %TH0 %TH15. A chaque traitement dune tche hard, son compteur est incrment de un. 18.2.2.4 Commande de l'unit centrale

Les commandes DEPART, STOP et INIT permettent dintervenir sur le fonctionnement de l'unit centrale pendant la mise au point du programme utilisateur.

18 - 8

fr-938846/7

Mise au point des programmes

Conditions requises Menu FONCTIONNEMENT DE LAUTOMATE lcran. Actions Frapper au clavier la commande choisie. (Voir tableau ci-aprs) Opration raliser Mise en marche de l'unit centrale Arrt de l'unit centrale Commande Frapper D pour Dpart Frapper S pour Stop

Initialisation du systme

Frapper I pour Init

Remarque Armement du chien de garde. Droulement du programme utilisateur. Retombe du chien de garde. Arrt du programme utilisateur. Ltat ARRET est spcifi dans la page dcran. Ncessite un arrt de l'unit centrale. Ralise : - leffacement de tous les dfauts, - linitialisation des Entres/Sorties.

18

Au dassemblage du code client (contrle des appels fonctions) Messages Nom de module inconnu Commentaire Cause : Un pointeur mal initialis dans un modole C dtruit une zone de code Action corrective : Localiser le module C et apporter les modifications ncessaires. Cause : Un pointeur mal initialis dans un module C dtruit une zone de code Action corrective : Localiser le module C et apporter les modifications ncessaires.

Erreur dans module INI, TSi, TFi, THi, Code C

A l'activation du contrle des appels fonctions (PLCTOOL) Messages Accs une zone interdite Commentaire Cause : Le paramtre d'adresse d'une fonction ladder ou C pointe dans une zone autre qu'une zone de donnes Action corrective : Editer le module mis en cause et modifier la fonction en dfaut Cause : L'application charge contient plus de 512 zones de donnes non contigu Action corrective : Regrouper les composants chanes et constantes les uns la suite des autres.

Plus de 512 zones autorises

fr-938846/7

18 - 9

18.2.2.5

Raz des variables sauvegardes

Cette fonctionnalit permet une remise zro des variables sauvegardes (%M). Conditions requises Menu FONCTIONNEMENT DE L'AUTOMATE affich l'cran. Actions Frapper au clavier la commande S.

FONCTIONNEMENT DE L'AUTOMATE Etat automate : ARRET (Pas de dfaut) Activite TF : ( 0-7 ) 0 0 0 0 0 0 0 ( 8-15 ) 0 0 0 0 0 0 0 Activite TH : ( 0-7 ) 0 0 0 0 0 0 0 ( 8-15 ) 0 0 0 0 0 0 0 Commandes : Depart / Stop / Init Raz variables sauvegardees
../..

0 0 0 0

RACINE

Frapper au clavier la commande R. Le message Etes-vous sur ? (O/N) est affich l'cran. Valider la Raz par la commande O. ou Annuler la Raz par la commande N. Relancer l'automate per la commande D. Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DE L'APPLICATION AUTOMATE.


RACINE

18 - 10

fr-938846/6

Mise au point des programmes

18.2.3

Temps moniteur et tches %TS

Cette rubrique permet de visualiser le pourcentage du temps occup par le moniteur et les tches %TS chaque cycle automate. On y observe : - le temps moyen occup par le moniteur chaque cycle, - le temps maximum occup par le moniteur , - le temps moyen occup par chaque tche %TS, - le temps maximum occup par chaque tche %TS, - les dpassements de temps de calcul chaque cycle. Conditions requises Menu GESTION DE LAPPLICATION AUTOMATE lcran. Actions Frapper au clavier T pour Temps moniteur et %TS. Visualisation du menu CONSOMMATION MONITEUR + %TS.

18

CONSOMMATION MONITEUR + %TS


Moniteur Moyenne: 0% Max: 0% Dpassement temps de calcul: 0 TS0: Moyenne: 0% Max: 0% TS1: Moyenne: 0% Max: 0% Moniteur TS0: TS2: Moyenne: Moyenne: Moyenne: 0% 0% 0% Max: Max: Max: 0% Dpassement temps de calcul: 0 0% 0%

Moniteur Moyenne: 0% Max: 0% Dpassement temps de calcul: 0 TS0: Moyenne: 0% Max: 0% TS3: Moyenne: 0% Max: 0% Moniteur TS0: TS4: Moyenne: Moyenne: Moyenne: 0% 0% 0% Max: Max: Max: 0% Dpassement temps de calcul: 0 0% 0%

Moniteur Moyenne: 0% Max: 0% Dpassement temps de calcul: 0 TS0: Moyenne: 0% Max: 0% TS5: Moyenne: 0% Max: 0% Commandes: Valider / RaZ Max
../.. RACINE

Le pourcentage est calcul par rapport au temps allou au moniteur et au programme client, soit : - 18 ms en srie I et srie II biprocesseur, bien que la HTR soit de 20 ms car 2 ms sont rserves par le systme (Voir 2.1) - Valeur de P99 en ms en srie II UCSII.

fr-938846/6

18 - 11

Acquisition des mesures Frapper au clavier V pour valider l'acquisition des mesures. Les valeurs de consommations du moniteur et des tches %TS sont mises jour. Arrter les mesures Frapper au clavier I pour inhiber l'acquisition des mesures. Les valeurs de consommations du moniteur et des tches %TS sont remises zro. RAZ des maxima Frapper au clavier R pour une remise zro des maxima Les consommations maximales du moniteur et des tches %TS sont remises zro. Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DE LAPPLICATION AUTOMATE.

RACINE

18 - 12

fr-938846/6

Mise au point des programmes

18.2.4

Gestion des fichiers

Permet la gestion des informations concernant les fichiers chargs dans la fonction automatisme. Conditions requises Menu GESTION DE LAPPLICATION AUTOMATE lcran. Actions Frapper au clavier G pour Gestion des fichiers. Visualisation du menu GESTION DES FICHIERS AUTOMATE.

18

GESTION DES FICHIERS AUTOMATE

Inhibition de la liaison PLCTOOL Repertoire de lapplication Suppression de fichier Formatage du volume AP : 12040 utilises / 173884 libres -- Entrer une commande ( Sortie F11 ) -../.. RACINE

Linformation AP renseigne sur les tailles mmoires utilises et libres (En octets). Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DE LAPPLICATION AUTOMATE.

RACINE

fr-938846/6

18 - 13

18.2.4.1

Formatage du volume

Cette commande permet dinitialiser la mmoire automate et de supprimer tous les fichiers en mmoire. Actions Frapper au clavier F pour Formatage du volume.

Le message Redemarrage systme applic detruite, confirmer : (O) est affich. Confirmer la Suppression de tous les fichiers en mmoire

UTILISATION IMMEDIATE DE MODIF.

ATTENTION ! COUPURE DE LA PUISSANCE OK ? O/N

../..

RACINE

Relancer le systme en acquittant les messages successifs. Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DE LAPPLICATION AUTOMATE.

RACINE

18 - 14

fr-938846/6

Mise au point des programmes

18.2.4.2

Rpertoire de lapplication

Cette page dinformation permet de visualiser tous les fichiers chargs dans les secteurs de l'unit centrale. Actions Frapper au clavier R pour Rpertoire de lapplication. Visualisation du menu REPERTOIRE DE LAPPLICATION.

Non du secteur automate

Type de fichier Taille PLCTOOL du fichier

Date de Heure de chargement chargement

18
REPERTOIRE DE L'APPLICATION TS0 .XLA 1538 Octets 24/9/1992 16/51/50

1 fichiers (1538 octets)


../..

Frapper une touche


RACINE

Nombre de fichier prsent en mmoire


Abandon de la procdure

Taille mmoire totale

Frapper une touche quelconque. Retour au menu GESTION DES FICHIERS AUTOMATE. ou Frapper sur la touche F11. Retour au menu GESTION DE LAPPLICATION AUTOMATE.

RACINE

fr-938846/6

18 - 15

18.2.4.3

Suppression de fichier

Permet la suppression de fichiers prsent en mmoire automate. Actions Frapper au clavier S pour Suppression de fichier. Le message Nom de fichier ? est affich. Frapper le nom du fichier supprimer [Nom du secteur].[Type de fichier]. (Exemple : TS0.XLA) Le message fichier supprim est affich. Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DES FICHIERS AUTOMATE. 18.2.4.4 Validation - invalidation de la liaison PLCTOOL

RACINE

Cette fonction permet de valider ou dinvalider la liaison srie avec le logiciel PLCTOOL pour le chargement/ dchargement de fichier et pour la fonction DEBUG ON LINE. Validation de la ligne La ligne de menu Validation de la liaison PLCTOOL est affiche. Frapper au clavier V pour valider la ligne. La ligne de menu devient Invalidation de la liaison PLCTOOL. Invalidation de la ligne La ligne de menu Invalidation de la liaison PLCTOOL est affiche. Frapper au clavier I pour invalider la ligne. La ligne de menu devient Validation de la liaison PLCTOOL.

18 - 16

fr-938846/6

Mise au point des programmes

18.2.5

Configuration des Entres/Sorties

Le menu de configuration des Entres/Sorties permet de visualiser : - le type de rack prsent dans le systme, - le type de carte prsente dans chaque rack. Conditions requises Menu GESTION DE LAPPLICATION AUTOMATE lcran. Actions Frapper au clavier C pour Configuration des E/S. Visualisation du menu CONFIGURATION DES E/S.

18

CONFIGURATION DES E/S Racks 0(P8) 3(E12) 4(E12) Cartes C B x 9 x 7 6 5 x x x 1 0 C B A 9 x x x x x 3 2 1 0 x x x x x x x x x 3 2 1 0

-- Commandes <R#> ou <C##> ou <F11> --

../..

RACINE

REMARQUE : Le caractre x indique labsence de carte.


Identification du rack Frapper au clavier la commande R [N du rack] (Numro de 0 7). visualisation, en ligne de dialogue, des messages : Ndu rack 0 Identification P8 (Principal 8 emplacements) P4 (Principal 4 emplacements) E12 (Extension 12 emplacements) M2 (Module 2 emplacements) Messages R0 : Rack principal 8 emplacements R0 : Rack principal 4 emplacements Si le rack nexiste pas : Rack absent ! Rx : Rack dextension 12 emplacements Mx : Rack module 2 emplacements Si le rack nexiste pas : Rack absent ! (avec x N du rack)

De 1 6

fr-938846/6

18 - 17

Identification des cartes Frapper au clavier la commande C [N du rack] [N de la carte]. visualisation en ligne de dialogue, des messages : Type de rack P8, P4 et E12 N de carte 0 Messages Alim. 130 W avec fibre optique Alim. 130 W sans fibre optique Alim. 60 W avec fibre optique Alim. 60 W sans fibre optique Carte pupitre de base Carte pupitre extension Cartes 32 sorties relais Carte 32 entres continue Carte 32 entres 24 sorties Carte 64 entres - 48 sorties Carte 32 entres - 24 sorties# Carte absente !

P8 et P4 P8 P4 E12 M2 P8 P4 E12 M2 Abandon de la procdure Frapper sur la touche F11.

De 1 4 De 5 0xC De 5 8 De 1 0xC 1 et 2 De 1 0xC De 1 8 De 1 0xC 1 et 2

RACINE

Retour au menu GESTION DE LAPPLICATION AUTOMATE.

18 - 18

fr-938846/6

Mise au point des programmes

Exemple Identification du rack 0 et des cartes adresses 5, 8 et B qui lquipent Menu GESTION DE LAPPLICATION AUTOMATE lcran. Frapper au clavier C pour Configuration des E/S. Visualisation du menu CONFIGURATION DES E/S.

CONFIGURATION DES E/S Racks 0(P8) 3(E12) 4(E12) Cartes C B x 9 x 7 6 5 x x x 1 0 C B A 9 x x x x x 3 2 1 0 x x x x x x x x x 3 2 1 0

18

-- Commandes <R#> ou <C##> ou <F11> --

../..

RACINE

Frapper au clavier la commande R 0.

Visualisation, en ligne de dialogue, du message R0 : Rack principal 8 emplacements. Frapper au clavier la commande C05. Visualisation en ligne de dialogue, du message Cartes 32 sorties relais. Frapper au clavier la commande C08. Visualisation en ligne de dialogue, du message Carte absente !. Frapper au clavier la commande C0B. Visualisation en ligne de dialogue, du message Carte 32 entres continue.

fr-938846/6

18 - 19

18.2.6

Sauvegarde et Archivage du logiciel

Ce module permet via une ligne srie de l'unit centrale : - darchiver le programme utilisateur sur un priphrique (lecteur de disquettes ou un lecteur/perforateur de bandes), - de vrifier le programme archiv par rapport la source, - de restituer le programme archiv. Conditions requises Vitesse de transmission conforme et paramtres de communications correct sur le priphrique. CN connecte au priphrique (sur une ligne srie de l'unit centrale) Menu GESTION DE LAPPLICATION AUTOMATE lcran. Actions Frapper au clavier A pour Archivage du logiciel. Visualisation du menu ARCHIVAGE DE LAPPLICATION.

ARCHIVAGE DE LAPPLICATION

- Dechargement du logiciel - Chargement du logiciel - Vrification du dechargement

-- Entrer une commande (Sortie F11) -../.. RACINE

Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DE LAPPLICATION AUTOMATE.

RACINE

18 - 20

fr-938846/6

Mise au point des programmes

18.2.6.1 Actions

Dchargement du logiciel

Mettre le priphrique en mode dchargement. Frapper au clavier D pour Dchargement du logiciel. Le message Dchargement en cours est affich. Disparition du message en fin de dchargement. Abandon de la procdure Frapper sur la touche F11. 18.2.6.2 Actions Frapper au clavier V pour Vrification du dchargement. Le message Attente vrification est affich. Mettre le priphrique en mode chargement. Le message Chargement en cours est affich. Disparition du message en fin de chargement. Abandon de la procdure Frapper sur la touche F11. 18.2.6.3 Actions Frapper au clavier C pour Chargement du logiciel. Le message Attente chargement est affich. Mettre le priphrique dans le mode appropri la vrification de la sauvegarde. Le message Vrification en cours est affich. Disparition du message en fin de vrification. Abandon de la procdure Frapper sur la touche F11. Chargement du logiciel Vrification du dchargement

RACINE

18

RACINE

RACINE

fr-938846/6

18 - 21

18.2.7

Chargement/dchargement de fichier vers PLCTOOL

Pour plus de prcision, se reporter au manuel PLCTOOL - Outil de programmation langage ladder. Vrifier ltat du paramtre P112 (Voir Manuel des paramtres). Vrifier que la liaison PLCTOOL est valide (Voir 18.2.4.4). Harmoniser les vitesses de transmission entre la CN et le micro-ordinateur. Installer un cble de liaison entre la ligne srie paramtre et le micro-ordinateur. Lancer la procdure de chargement ou de dchargement partir du logiciel PLCTOOL.

REMARQUE : La procdure de chargement actuelle ne ncessite aucune intervention du cot de la CN.


18.2.8 Animation ladder

L'animation ladder permet la visualisation dynamique des contacts ladder d'un programme automate. On a ainsi une visualisation graphique de l'volution d'un rseau de contact. Conditions requises Menu GESTION DE LAPPLICATION AUTOMATE lcran. Actions Frapper au clavier A pour Animation. Visualisation du Repertoire LADDER.

Repertoire LADDER
Nom TS0 .XLA Taille 2674 Date 08/07/94 Heure 13:28:13

1 Fichier(s), 2674 Octet(s)

QUIT

18 - 22

fr-938846/6

Mise au point des programmes

Slectionner le module animer l'aide des touches de direction puis valider. Visualisation de la grille ladder animer.

A n i m a t i o n

L A D D E R

T S 0 . X L A

0 / 1 6

Symboles :

Label : PRG_MIN Etape cour. : 0

No. etape : 0

Taille : 2674 Commentaire : Programme minimum NO1 Texte : Valeur : %W4.7 %W4.O %W4.3 %W100.1 %W100.O %W200.5

18

FICH. RECH.

OPTION DEC

OFF ECRIT. QUIT

A l'ouverture, le composant visualis est anim. En animation, le champ Var.etap devient Etape cour et permet de visualiser la valeur courante de la variable d'tape. Si cette valeur est gale au N d'tape (composant passant) ou si aucune variable d'tape n' t dfinie, le fond du champ prend la couleur active. Interprtation des couleurs Etat Actif Inactif Indtermin Moniteur couleur Rouge Noir Clignotant Moniteur monochrome Blanc Noir Clignotant

fr-938846/6

18 - 23

Naviguer dans l'application Opration raliser Dplacer le focus sur l'objet suivant Se dplacer dans la grille ladder Visualiser le composant ladder suivant Visualiser le composant ladder prcdent Visualiser le dernier composant ladder Visualiser le premier composant ladder Arrt de l'animation Frapper sur la touche F9. Commandes ou
SHIFT

ou

SHIFT

ou ou
SHIFT

Focus sur la grille ladder puis Focus sur l'ascenseur puis Focus sur l'ascenseur puis Focus sur l'ascenseur puis Focus sur l'ascenseur puis
Pg Dn

ou

ou

Pg Up

End

Home

OFF

L'animation ladder est arrt. Le cartouche permet l'accs une nouvelle touche EFFACER. Initialiser la grille ladder Frapper sur la touche F8. Tous les lments de la grille ladder sont forcs l'tat inactif.
EFFACER

18 - 24

fr-938846/6

Mise au point des programmes

Charger un nouveau module ladder Frapper sur la touche F2. Visualisation du Repertoire LADDER.

FICH

Repertoire LADDER
Nom TS0 .XLA Taille 2674 Date 08/07/94 Heure 13:28:13

18

1 Fichier(s), 2674 Octet(s)

QUIT Slectionner le module animer l'aide des touches de direction puis valider.

REMARQUE : La touche QUIT permet un retour au module ladder prcdent


Visualisation de la grille ladder animer. Animer le module Frapper sur la touche F9. Le module ladder est anim. Dfinir les options Affichage dcimal/hexadcimal Frapper sur la touche F7. Ou Frapper sur la touche F7. Visualisation des valeurs numrique en dcimal ou en hexadcimal.

ON

DEC

HEX

fr-938846/6

18 - 25

Quadrillage des cellules Frapper sur la touche F6. Visualisation d'une nouvelle barre de menu Frapper sur la touche F2. Ou Frapper sur la touche F2. Validation ou invalidation d'un quadrillage au dimension des cellules Rechercher un composant Frapper sur la touche F3. Ouverture de la bote de dialogue Recherche

OPTION

QUADRI. ON

QUADRI. OFF

RECH.

A n i m a t i o n

L A D D E R

% T S 0 . X L A

0 / 1 6

Symboles :

Label : PRG_MIN Etape cour. : 0

No. etape : 0

Taille : 2674 Commentaire : Programme minimum NO1 Texte : Valeur : %W4.7 Recherche Numro de squence : %W4.O %W4.3 %W100.1 %W100.O %W200.5

ANNUL. Saisir le numro du composant atteindre Le composant spcifi est visualis. Annuler la procdure Frapper sur la touche F11.

ANNUL.

18 - 26

fr-938846/6

Mise au point des programmes

Ecrire une variable Frapper sur la touche F10. Ouverture de la bote de dialogue Ecriture ?

ECRIT.

A n i m a t i o n

L A D D E R

% T S 0 . X L A

0 / 1 6

Symboles :

Label : PRG_MIN Etape cour. : 0

No. etape : 0

Taille : 2674 Commentaire : Programme minimum NO1 Texte : Valeur : %W4.7 Ecriture Ecrire : %W4.O %W4.3 %W100.1 %W100.O %W200.5

18

ANNUL. Saisir le nom de la variable et sa valeur.

REMARQUE : Toutes les variables sont accessibles en criture sauf les variables d'entres %Ixx.x.
Annuler la procdure Frapper sur la touche F11. Abandon de la procdure Frapper sur la touche F11. Retour au menu GESTION DE LAPPLICATION AUTOMATE.

ANNUL.

QUIT

fr-938846/6

18 - 27

18 - 28

fr-938846/6

Dfauts et diagnostic

19 Dfauts et diagnostic

19.1 19.2 19.3

Liste des dfauts matriel


Dysfonctionnement du bus srie.

ERR_BUS_SBCE :

Liste des dfauts de configuration


Carte E/S mal place ou erreur de configuration.

ERR_CONFIG_SBCE :

Liste des dfauts de programmation


Dpassement de la priode HTR.

ERR_HTR :

ERR_ACCESS_VIOLATION : Tentative de lecture ou dcriture dans une zone interdite.

19

fr-938846/6

19 - 1

19 - 2

fr-938846/6

Listes des fonctions

A Listes des fonctions

A.1 Liste par thmes


A.1.1 A.1.2 A.1.3 A.1.4 A.1.5 A.1.6 A.1.7 A.1.8 A.1.9 A.1.10 A.1.11 Fonctions dusages gnrales Gestion des tches Mode transparent Gestion des Entres/Sorties analogiques Lecture/criture explicite d'une carte Gestion des entres interruptions Gestion des lignes sries Gestion des timers Gestion du dateur Echanges par protocole Appel de modules en langage C

A-3 A-3 A-4 A-4 A-4 A-4 A-5 A-5 A-5 A-5 A-5 A-5 A-6

A.2 Liste par classement alphanumrique

fr-938846/7

A-1

A-2

fr-938846/7

Listes des fonctions

A.1
A.1.1

Liste par thmes


Fonctions dusages gnrales
Dsignation Conversion dune chane ASCII en entier sign sur 32 bits Conversion dune chane ASCII en entier sign sur 32 bits Transcodage BCD --> binaire Transcodage binaire --> BCD Eclatement BIT > octet Saut un label du module avec retour Lecture des paramtres stocks dans la pile Copie dun ou plusieurs octet Copie dun ou plusieurs long mots Copie dun ou plusieurs mots Fixe la priode de lauto-test Saut un label du module sans retour Conversion dune valeur entire signe en chane ASCII Conversion dune valeur entire non signe en chane ASCII Concatnation OCTet > bit Simulation du clavier du pupitre Recherche circulaire optimale Lecture de n variables E42000 Recherche de la valeur dun octet Recherche de la valeur dun long mot Recherche de la valeur dun mot Retour au module ou au rseau appelant Smaphore Ecriture dun ou plusieurs octets Ecriture dun ou plusieurs long mots Ecriture dun ou plusieurs mots Appel dun module %SP Formatage dune chane de caractres Appel dun module %SP avec variables locales %Y Racine carre entire Analyse dune chane ASCII Comparaison dune chane de caractres Copie dune chane de caractres Calcul de la longueur dune chane Echange les quatre octets dun long mot Echange les octets pair et impair dun mot Correction dynamique dun outil Page 6-3 6-4 6-5 6-6 6-7 6-19 6-8 6-9 6-11 6-10 6-11 6-19 6-12 6-12 6-13 6-15 6-15 6-31 6-16 6-17 6-16 6-18 6-20 6-20 6-22 6-21 6-22 6-24 6-23 6-25 6-25 6-26 6-27 6-27 6-29 6-28 6-30

Fonction atoi() atoj() bcd_bin() bin_bcd() bit() call() cpyarg() cpyb() cpyl() cpyw() diagiq() goto() itoa() itostr() oct() putkey() qcktool() R_E42000 rchb() rchl() rchw() return() sema() setb() setl() setw() sp() sprintf() spy() sqrt() sscanf() strcmp() strcpy() strlen() swapl() swapw() tooldyn()

fr-938846/7

A-3

Fonction W_E42000 y_init()

Dsignation Ecriture de n variables E42000 Initialisation de la base associe aux variables %Y

Page 6-32 6-33

A.1.2
Fonction csbegin() csend() tfstart() tfstop() whtr()

Gestion des tches


Dsignation Dbut dune section critique Fin dune section critique Dpart dune tche %TF Arrt dune tche %TF Mise en sommeil temporaire dune tche %TF Page 7-3 7-3 7-4 7-4 7-3

A.1.3
Fonction inig() pcur() print() printf() putchar() putimage() puts() scanc() scand() scano() scans() scanu() scanx()

Mode transparent
Dsignation Init graphique Positionnement du curseur Affichage dun tampon Affichage dune chane avec formatage Affichage dun caractre Positionnement et affichage dune image Affichage dune chane sans formatage Fermeture dune acquisition clavier Acquisition et conversion dun nombre dcimal Ouverture dune acquisition clavier Acquisition dune chane Ouverture dune acquisition clavier numrique Acquisition et conversion dun nombre hexadcimal Page 8-17 8-7 8-8 8-9 8-7 8-16 8-8 8-16 8-14 8-12 8-13 8-13 8-15

A.1.4
Fonction anaa() anai() anao() anas()

Gestion des Entres/Sorties analogiques


Dsignation Redirection dune carte analogique Lecture dune entre analogique Ecriture dune sortie analogique Configuration dune carte E/S analogiques Page 9-7 9-6 9-5 9-3

A.1.5
Fonction read_i() write_q()

Lecture/criture explicite d'une carte


Dsignation Lecture explicite dune carte entre Ecriture explicite dune carte sortie Page 10-3 10-4

A-4

fr-938846/7

Listes des fonctions

A.1.6
Fonction iti_gr() itictl() itiget() thiti()

Gestion des entres interruptions


Dsignation Association entre interruption avec des groupes daxes Configuration dune entre interruption Lecture dune entre interruption Association tche %TH avec une entre IT Page 11-5 11-6 11-8 11-9

A.1.7
Fonction comctl() comf() comin() comout() comreg()

Gestion des lignes sries


Dsignation Contrle du pilote de ligne srie Slection des vitesses et formats Lecture du tampon de rception Emission dun tampon Lecture de ltat dune ligne srie Page 12-11 12-4 12-7 12-6 12-10

A.1.8
Fonction thtimer()

Gestion des timers


Dsignation Association tche %TH avec un timer Page 13-1

A.1.9
Fonction tmget() dtget()

Gestion du dateur
Dsignation Lecture de la date courante Lecture de la date courante avec jour de la semaine Page 14-1 14-2

A.1.10
Fonction neti() neto() netst_ad uniti() unito() setcomw

Echanges par protocole


Dsignation Lecture dune requte dun serveur distant Emission dune requte vers un serveur distant Rponse la requte STATUS Lecture dune rponse en interne Emission dune requte en interne Configuration du service mots communs Page 15-36 15-34 15-40 15-30 15-29 15-39

A.1.11
Fonction exec() exechdl()

Appel de modules en langage C


Dsignation Appel dun module excutable Identification dun module excutable Page 16-3 16-4

fr-938846/7

A-5

A.2
Fonction anaa() anai() anao() anas() atoi() atoj() bcd_bin bin_bcd bit() call() comctl() comf() comin() comout() comreg() cpyarg() cpyb() cpyl() cpyw() csbegin() csend() diagiq() dtget() exec() exechdl() goto() inig() itictl() itiget() iti_gr() itoa() itostr() neti() neto() netst_ad oct() pcur() print() printf() putchar()

Liste par classement alphanumrique


Dsignation Redirection dune carte analogique Lecture dune entre analogique Ecriture dune sortie analogique Configuration dune carte E/S analogiques Conversion dune chane ASCII en entier sign sur 32 bits Conversion dune chane ASCII en entier sign sur 32 bits Transcodage BCD --> binaire Transcodage binaire --> BCD Eclatement BIT > octet Saut un label du module avec retour Contrle du pilote de ligne srie Slection des vitesses et formats Lecture du tampon de rception Emission dun tampon Lecture de ltat dune ligne srie Lecture des paramtres stocks dans la pile Copie dun ou plusieurs octet Copie dun ou plusieurs long mots Copie dun ou plusieurs mots Dbut dune section critique Fin dune section critique Fixe la priode de lauto-test Lecture de la date courante avec jour de la semaine Appel dun module excutable Identification dun module excutable Saut un label du module sans retour Init graphique Configuration dune entre interruption Lecture dune entre interruption Association entre interruption avec des groupes daxes Conversion dune valeur entire signe en chane ASCII Conversion dune valeur entire non signe en chane ASCII Lecture dune requte dun serveur distant Emission dune requte vers un serveur distant Rponse la requte STATUS Concatnation OCTet > bit Positionnement du curseur Affichage dun tampon Affichage dune chane avec formatage Affichage dun caractre Page 9-7 9-6 9-5 9-3 6-3 6-4 6-5 6-6 6-7 6-19 12-11 12-4 12-7 12-6 12-10 6-8 6-9 6-11 6-10 7-3 7-3 6-11 14-2 16-3 16-4 6-19 8-17 11-6 11-8 11-5 6-12 6-12 15-36 15-34 15-40 6-13 8-7 8-8 8-9 8-7

A-6

fr-938846/7

Listes des fonctions

Fonction putimage() putkey() puts() qcktool() rchb() rchl() rchw() read_i() return() R_E42000 scanc() scand() scano() scans() scanu() scanx() sema() setb() setcomw setl() setw() sp() sprintf() spy() sqrt() sscanf() strcmp() strcpy() strlen() swapl() swapw() tfstart() tfstop() thiti() thtimer() tmget() tooldyn() uniti() unito() whtr()

Dsignation Positionnement et affichage dune image Simulation du clavier du pupitre Affichage dune chane sans formatage Recherche circulaire optimale Recherche de la valeur dun octet Recherche de la valeur dun long mot Recherche de la valeur dun mot Lecture explicite dune carte entre Retour au module ou au rseau appelant Lecture de n variables E42000 Fermeture dune acquisition clavier Acquisition et conversion dun nombre dcimal Ouverture dune acquisition clavier Acquisition dune chane Ouverture dune acquisition clavier numrique Acquisition et conversion dun nombre hexadcimal Smaphore Ecriture dun ou plusieurs octets Configuration du service mots communs Ecriture dun ou plusieurs long mots Ecriture dun ou plusieurs mots Appel dun module %SP Formatage dune chane de caractres Appel dun module %SP avec variables locales %Y Racine carre entire Analyse dune chane ASCII Comparaison dune chane de caractres Copie dune chane de caractres Calcul de la longueur dune chane Echange les quatre octets dun long mot Echange les octets pair et impair dun mot Dpart dune tche %TF Arrt dune tche %TF Association tche %TH avec une entre IT Association tche %TH avec un timer Lecture de la date courante Correction dynamique dun outil Lecture dune rponse en interne Emission dune requte en interne Mise en sommeil temporaire dune tche %TF

Page 8-16 6-15 8-8 6-15 6-16 6-17 6-16 10-3 6-18 6-31 8-16 8-16 8-12 8-13 8-13 8-15 6-20 6-20 15-39 6-22 6-21 6-22 6-24 6-23 6-25 6-25 6-26 6-27 6-27 6-29 6-28 7-4 7-4 11-9 13-1 14-1 6-30 15-30 15-29 7-3

fr-938846/7

A-7

Fonction write_q() W_E42000 y_init()

Dsignation Ecriture explicite dune carte sortie Ecriture de n variables E42000 Initialisation de la base associe aux variables %Y

Page 10-4 6-32 6-33

A-8

fr-938846/7

Index

Index

Symboles
%I Organisation ,3-15 %INI ,2-5 %Irc39.B ,3-11 %Irc3A.W ,3-11 %Irc3C.W ,3-11 ,3-20 ,3-25 %Irc3E.W ,3-10 ,3-18 ,3-19 ,3-20 ,3-22 ,3-24 ,3-25 %Q Organisation ,3-15 %Qrc3B.0 ,3-14 %Qrc3B.1 ,3-14 %Qrc3C.B ,3-13 %Qrc3D.B ,3-12 %Qrc3E.W ,3-12 %R0.W ,3-29 ,8-4 %R12.W ,3-33 %R14.0 ,3-35 %R14.1 ,3-35 %R15.B ,3-34 %R16.B ,3-34 %R17.B ,3-35 %R18.B ,3-35 %R19.B ,3-35 %R1A.W ,3-35 %R1C.W ,3-36 %R2.W ,3-29 %R22.W ,3-36 %R24.L ,3-36 %R4.W ,3-30 %R6.L ,3-31 %R97C.W ,3-65 %R97F.0 ,3-65 %R97F.1 ,3-65 %R97F.2 ,3-65 %RA.L ,3-32 %RE.L ,3-32 %Rg00.W ,3-53 %Rg02.B ,3-54 %Rg03.B ,3-54 %Rg04.W ,3-55 %Rg1E.W ,3-55 %Rg20.L ,3-56 %Rg24.W ,3-58 %Rg7C.L ,3-59 %S ,3-68 Organisation ,3-69 %TF ,2-6 %TH ,2-9 %TS ,2-5 %W13.B ,3-42 %W14.B ,3-42 %W15.B ,3-42 %W16.B ,3-42 %W17.B ,3-43 %W18.W ,3-43 %W1A.B ,3-44 %W1E.B ,3-44 %W2.W ,3-38 %W21.B ,3-44 %W22.W ,3-45

%W24.W ,3-45 %W2A.W ,3-45 %W2C.W ,3-48 %W30.L ,3-49 %W34.L ,3-50 %W38.0 ,3-50 %W3A.L ,3-51 %W4.W ,3-39 %W6.L ,3-40 %W900.0 ,3-66 %WA.L ,3-41 %WE.L ,3-41 %WE00.B WE1F.B ,3-51 %Wg00.W ,3-61 %Wg02.B ,3-65 %Wg03.B ,3-62 %Y ,3-70

Autorisation accs CN ,3-14 Axe blocable ,3-36 Axes automates ,17-1 Axes en mouvements ,3-31 Axes initialiss ,3-32

B
bcd_bin ,6-5 bin_bcd ,6-6 bit ,6-7 Blocage d'axes ,3-59 Boucle dans programme ,2-10 ,2-11 Broches en position ,3-33

C
Calcul longueur chane ,6-27 call ,6-19 Caractre Alphanumrique ,8-25 Cod ,8-5 Non soulign ,8-27 Normal ,8-27 Soulign ,8-27 Surbrillance ,8-27 Caractres clavier ,3-29 Carte 32 entres TOR ,3-18 Carte 32 sorties TOR ,3-19 Carte 32-24 I/O ,3-20 Carte 32E 24S TOR ,3-20 Carte 64-48 I/O ,3-22 Carte analogique Redirection ,9-7 Carte dextension Pupitre machine ,3-25 Cellule F_T ,5-8 Cellule R_T ,5-8 Chane de caractres ,2-16 Champ Coercition ,3-8 Indexation ,3-7 Numro logique ,3-6 Symbole ,3-6 Taille ,3-7 Changement de signe ,4-9 Chargement fichier ,18-22 Chargement logiciel ,18-21 Chien de garde ,3-14 Chiffre ,4-4 Chiffre_hexa ,4-4 comctl ,12-11 comf ,12-4 comin ,12-7 Commande de l'UC ,18-8 Commandes Broches ,3-45 Commandes Groupe ,3-61 Commandes Impulsionnelles ,3-38 Commandes JOG Ngatif ,3-41 Commandes JOG Positif ,3-40 Commandes Maintenues ,3-39 Commentaire ,4-3 Communication distante ,15-3 Communication locale ,15-3 comout ,12-6

A
Acquisition Chane ,8-13 Nombre dcimal ,8-14 Nombre hexadcimal ,8-15 Action conditionnelle ,5-9 Activation Etapes grafcet ,5-4 Activit tches de fond ,18-8 Activit tches hard ,18-8 Adressage indirect ,3-70 Adresse logique gographique ,3-12 Affectation des lignes ,11-5 Affectation manivelle ,3-44 Affectation_numrique ,4-3 ,4-4 ,5-9 ,5-15 Affichage Caractre ,8-7 Chane ,8-8 chane ,8-9 Image ,8-16 Message ,3-42 Tampon ,8-8 anaa ,9-7 anai ,9-6 Analogique Entres/sorties ,9-3 Analyse chane ASCII ,6-25 anao ,9-5 anas ,9-3 Animation ,8-34 Arrt ,18-24 Animer module ,18-25 anomalies de fonctionnement ,2-10 Appel Module %SP ,6-22 ,6-23 Module excutable ,16-3 Appel_fonction ,4-3 ,4-4 ,5-9 ,5-15 Archivage logiciel ,18-20 Arrt d'avance par axe ,3-51 Arrt dune tche %TF ,7-4 Association %TH - IT ,11-9 Association %TH/timer ,13-1 Association IT/groupes daxes ,11-5 atoi ,6-3 atoj ,6-4

fr-938846/8

I-1

Comparaison ,4-3 Comparaison chane ,6-26 Comparaison_numrique ,5-8 Compilateur MCC68K ,1-6 Compteur dfaut dialogue ,3-11 Compteurs ,5-12 comreg ,12-10 Concatnation Octet -> bit ,6-13 Configuration Carte ,3-10 E/S analogiques ,9-3 Entre interruption ,11-6 Entres/Sorties ,18-17 Mots communs ,3-69 Service mots communs ,15-39 Consigne de vitesse de broche ,3-45 Constitution des objets ,15-9 Construction dun rseau ,5-18 Contact ,5-7 Contrle de flux ,12-12 Contrle de l'UC ,18-5 Contrle du pilote ligne srie ,12-11 Conversion Chane ASCII ,6-3 ,6-4 Nombre dcimal ,8-14 Valeur entire non signe ,6-12 Valeur entire signe ,6-12 conversion Nombre hexadcimal ,8-15 Conversion dune chane ASCII ,6-4 Copie Chane de caractres ,6-27 Long mot ,6-11 Mot ,6-10 Octet ,6-9 Correction doutil ,6-30 couple axes QVN ,3-50 cpyarg ,6-8 cpyb ,6-9 cpyl ,6-11 cpyw ,6-10 csbegin ,7-3 csend ,7-3 CTD_n ,5-12 CTU_n ,5-12 Curseur Dplacement ,8-28 Fixe ,8-28 Non visible ,8-28 Cycle dusinage en cours ,3-54

Dfauts matriel ,19-1 Dfauts systme ,3-65 Demandeur ,15-4 Dpart dune tche %TF ,7-4 Drivations ,5-14 diagiq ,6-11 Diagnostic carte ,3-10 DNC1000 ,15-3 Donnes non sollicits ,15-6 Donnes standards ,16-8 dtget ,14-2

E
E30xxx ,3-66 E33xxx ,3-14 E40xxx ,3-67 E42000 ,6-31 ,6-32 E42xxx ,3-67 E43xxx ,3-14 Echange Avec station distante ,15-34 Octets dun long mot ,6-29 Octets dun mot ,6-28 Protocole ,15-3 Echanges ,3-5 Eclatement BIT -> octet ,6-7 Ecriture Cartes sorties ,3-66 E42000 ,6-32 Long mot ,6-22 Mot ,6-21 Octet ,6-20 Sortie analogique ,9-5 Ecriture explicite Carte sortie ,10-4 Effacement ,8-29 Elments communs Squences ,5-3 Elments littraux ,4-3 Emission dun tampon ,12-6 Emission dune requte ,15-29 ,15-34 En-tte ,5-3 En-tte de squence ,2-15 Entier_immdiat ,4-4 Entiers immdiats ,4-7 Entits littrales ,4-3 ,4-4 Entre analogique ,9-3 Entre bornier ,16-8 Entres CN ,3-29 ,3-72 Groupes d'axes ,3-80 Groupes daxes ,3-53 Interruptions ,16-22 Entres/sorties analogiques ,16-20 Envoi de caractres vers lcran ,8-4 Espace alphanumrique ,8-18 Espace graphique ,8-18 Etape ,4-3 Etape grafcet ,2-15 ,5-3 Etat CN ,3-30 Etat des batteries ,3-35 Etat des broches ,3-58 Etat dune ligne srie ,12-10

Etat Fonction G ,3-54 Etat Groupe ,3-53 Etat Machine ,3-29 Etats Tches de fond ,2-6 exec ,16-3 exechdl ,16-4 Exploitation Ecran pupitre ,8-18 EXPORT ,16-9 Exportation dun objet ,16-9 Expression_numrique ,4-4

F
Falling trig ,5-8 Fentre Dfinition ,8-18 Dimension ,8-19 Fermeture acquisition clavier ,8-16 Fichier *.XCX ,2-13 fichier *.XLA ,2-13 Fonction ,4-4 Fonction dateur ,14-1 Fonction M code Avec compte rendu ,3-55 Sans compte rendu ,3-55 Fonction M dcode ,3-56 ,3-58 Fonction timer ,13-1 Fonctionnement %TH ,2-9 Tches de fond ,2-7 Fonctions dchanges par protocole ,16-12 Format de police ,8-26 Format des calculs internes ,4-7 Formatage Chane de caractres ,6-24 Volume ,18-14

G
Gestion de fichiers ,16-26 Gestion de la visu ,8-3 Gestion de rpertoire ,16-30 Gestion dfaut systme ,3-66 Gestion des fichiers ,18-13 Gestion des lignes sries ,16-13 Gestion des tches de fond ,16-22 Gestion du mode transparent ,16-14 goto ,6-19

D
Dateur ,14-1 dactivation Etapes grafcet ,5-4 Dblocage daxes ,3-59 Dbordement ,2-10 ,4-9 Dcalage origine cran ,8-35 Dchargement fichier ,18-22 Dchargement logiciel ,18-21 Dcompteurs ,5-12 dfauts de configuration ,19-1 Dfauts de programmation ,19-1

H
Horloge temps rel ,1-6

I
Icnes ,8-36 Identificateur carte ,3-10 ,3-12 ,3-17 Identificateur rack ,3-17 Identification Module excutable ,16-4 Image des entres ,3-10 Image des sorties ,3-10

I-2

fr-938846/8

Index

IMPORT ,16-10 Importation dun objet ,16-10 Incrment de JOG ,3-34 ,3-42 Incrments de JOG interdits ,3-48 Index ,3-7 inig ,8-17 Init graphique ,8-17 Initialisation ,2-3 Chane ,2-16 Ligne srie ,12-4 Soft ,8-23 Tableau de constante ,2-15 Variables %Y ,6-33 Initialiser grille ladder ,18-24 Instructions graphiques ,8-29 Instructions mode transparent ,8-22 Interprtation des couleurs ,18-23 Interruptions prioritaires ,11-3 Invalidation PLCTOOL ,18-16 iti_gr ,11-5 itictl ,11-6 itiget ,11-8 itoa ,6-12 itostr ,6-12

N
Naviguer dans l'application ,18-24 neti ,15-35 neto ,15-34 netst_ad ,15-40 Nom_fonction ,4-4 Non animation ,8-34 NUM.H ,16-9 NUM.OBJ ,16-9 Numrique_non_sign ,4-4 Numrique_sign ,4-4 Numro de programme demand ,3-43 Numro doutil ,3-59 Numrotation des lignes ,12-3

Prise de cote la vole ,11-3 Programmation en C ,16-5 Promotion des variables ,4-7 Protocole DNC1000 ,15-4 Pupitre compact ,3-27 Pupitre machine ,3-24 putchar ,8-7 putimage ,8-16 putkey ,6-15 putkey() ,8-4 puts ,8-8

Q
qcktool ,6-15

O
Objets accessibles ,15-7 oct ,6-13 Oprateur = ,4-6 Oprateur >> ,4-6 Oprateur combin ,4-6 Oprateur daffectation ,4-6 Oprateur de comparaison ,4-6 Oprateur<< ,4-6 Oprateur_affectation ,4-5 Oprateur_binaire ,4-5 Oprateur_comparaison ,4-4 Oprateur_unaire ,4-4 Ordre des expressions ,4-7 Organisation Variable %I et %Q ,3-15 Variables %R et %W ,3-67 Variables %S ,3-69 Organisation gnrale UC monocarte ,1-5 UC multicarte ,1-4 Ouverture acquisition clavier ,8-12 ,8-13

R
R_E42000 ,6-31 Racine carre ,6-25 Rafrachissement E/S bornier ,2-5 E/S CN ,2-3 Entres/sorties ,1-6 rchb ,6-16 rchl ,6-17 rchw ,6-17 read_i ,10-3 Rception d'un tampon ,12-7 Recherche Circulaire optimale ,6-15 Valeur dun long mot ,6-17 Valeur dun mot ,6-17 Valeur dun octet ,6-16 Recul sur trajectoire ,3-51 Redirection Carte analogique ,9-7 Rduction de courant ,3-51 Rfrence vitesse axes QVN ,3-50 Rfrentiel cran ,8-38 Rfrentiel utilisateur ,8-29 ,8-31 ,8-38 Remplissage zone cran ,8-40 Remplissage zone utilisateur ,8-38 Rpertoire de lapplication ,18-15 Rponse la requte STATUS ,15-40 Requte CLOSE-DIRECTORY ,15-24 Requte DELETE-FILE ,15-19 Requte DIRECTORY ,15-22 Requte LECTURE DE MESSAGES ,1528 Requte OPEN-DIRECTORY ,15-21 Requte READ-BLOCK ,15-25 Requte READ-MEMORY-FREE ,15-20 Requte READ-OBJECT ,15-16 Requte RESERVE-MEMORY ,15-27 Requte WRITE-BLOCK ,15-26 Requte WRITE-OBJECT ,15-18 Requtes de type Objet ,15-7 Requtes UNITE ,2-5 Retour appelant ,6-18 retour sur trajectoire ,3-51 return ,6-18

L
Label ,4-3 Langage C ,16-3 Lecture Date ,14-1 E42000 ,6-31 Entre analogique ,9-6 Entre interruption ,11-8 Paramtres dans pile ,6-8 Rponse ,15-30 ,15-35 Lecture de la date courante avec jour de la semaine ,14-2 Lecture explicite Carte entre ,10-3 Lectures/Ecritures explicites ,16-21 Librairie de fonctions ,16-9 Lignes sries ,12-3

P
Paramtres E10000 E10031 ,3-32 Paramtres E20000 E20031 ,3-41 Paramtres E30xxx, E40xxx et E42xxx ,3-66 pcur ,8-7 Priode auto-test ,6-11 Pointeurs ,3-70 Police cran ,8-26 Porte ,15-6 Positionnement Curseur ,8-7 Espaces ,8-20 ,8-21 Image ,8-16 Potentiomtre de broche ,3-44 Principe des changes ,3-5 print ,8-8 printf ,8-9 Priorit %TH ,2-9 Carte ,3-13 Oprateurs ,4-5 Tches de fond ,2-7

M
main() ,2-13 Mcanisme des changes ,15-5 Message bloquant ,15-29 Message non bloquant ,15-28 Mise au point sur CN ,18-3 Mise en sommeil dune tche %TF ,7-3 Mnmonique ,3-6 ,3-8 Modales ,3-56 Mode demand ,3-42 Mode en cours ,3-34 Mode transparent ,8-3 Modes interdits ,3-49 Module Excutable C ,2-13 module ,2-13 Module ladder Structure ,2-15

fr-938846/8

I-3

Rising trig ,5-8 RTS/CTS ,12-12

T
Tableau de constantes ,2-15 Tche %INI ,2-5 %TF ,2-6 %TH ,11-3 %TS ,2-5 De fond ,2-6 Ladder ,2-13 Priodique ,2-5 Systme ,2-3 Temps rels ,2-9 Utilisateur ,2-5 tche %TH ,2-9 Temporisations ,5-10 Temps moniteur et tches %TS ,18-11 tfstart ,7-4 tfstart (..) ,2-6 tfstop ,7-4 tfstop (..) ,2-6 thiti ,11-9 thtimer ,13-1 Timer ,13-1 tmget ,14-1 TOF_n ,5-10 TON_n ,5-10 tooldyn ,6-30 TP_n ,5-10 Trac de cartouche ,8-40 Trac cran ,8-34 Trac Utilisateur ,8-32 Traitement %TF ,2-8 %TS ,2-8 Requte ,15-5 Transcodage BCD -> binaire ,6-5 binaire > BCD ,6-6 Transfert point courant ,8-35

S
Saut avec retour ,6-19 Saut sans retour ,6-19 scanc ,8-16 scand ,8-14 scano ,8-12 scans ,8-13 scanu ,8-13 scanx ,8-15 Scrutation dun rseau ,5-16 Section critique Dbut ,7-3 Fin ,7-3 Slection couleur ,8-24 ,8-27 Slection du groupe daxes ,3-43 Slection fentre ,8-24 sema ,6-20 Smaphore ,6-20 Squence rseau ,2-16 ,5-7 Squences rseaux ,4-3 Serveur ,15-4 Serveur UNITE ,2-5 setb ,6-20 setcomw ,15-39 setl ,6-22 setw ,6-21 Simulation clavier pupitre ,6-15 Sortie Analogique ,9-3 Bornier ,16-8 CN ,3-38 ,3-75 Groupes d'axes ,3-81 Groupes daxes ,3-61 Sous-programme ladder ,2-13 sp ,6-22 sprintf ,6-24 spy ,6-23 sqrt ,6-25 sscanf ,6-25 Standard RS232 ,12-12 Standard RS422 ,12-13 Standard RS485 ,12-13 Standards de transmission ,12-12 Status bus ,3-11 Status carte ,3-11 strcmp ,6-26 strcpy ,6-27 strlen ,6-27 Structure Application ,2-13 Variable %I ,3-10 Variable %Q ,3-10 Suppression de fichier ,18-16 swapl ,6-29 swapw ,6-28 Synoptique Carte processeur machine ,1-7 Carte UCSII ,1-8

Variable %I ,3-9 %Q ,3-9 %R ,3-29 %R diverse ,3-35 %W ,3-38 %Y ,3-70 ,6-23 Bit ,5-7 Configuration carte ,3-12 Dchange ,8-4 Diagnostic carte ,3-10 Long mot ,4-7 Mot ,4-7 Mots communs ,3-68 Non sauvegarde ,3-8 ,16-7 Octet ,4-7 Rserve ,3-67 Sauvegarde ,3-8 ,16-7 Variable % Reprsentation ,3-6 Variable_bit ,4-3 ,4-4 ,5-15 Variable_numrique ,4-4 Vrification dchargement ,18-21 Vitesse de broche ,3-36

W
W_E42000 ,6-32 W1D.B ,3-44 whtr ,7-3 whtr(..) ,2-7 write_q ,10-4

X
Xon/Xoff ,12-12

Y
y_init ,6-33

Z
Zone action ,4-4 ,5-15 Zone dchange ,3-5 ,3-72 Zone dchanges ,16-7 Zone test ,4-3 ,5-7 ,5-9

U
uniti ,15-30 unito ,15-29 Utilisation Chane ,2-16 Tableau de constante ,2-15 Utilitaire 7 ,18-3

V
Valeur potentiomtre davance ,3-62 Validation cran Configuration PCNC ,3-35 Validation PLCTOOL ,18-16

I-4

fr-938846/8