Vous êtes sur la page 1sur 26

Cat. N° STA-05 Fich. CQM1_CPU.

HLP

LES FONCTIONS
EVOLUEES DU

CQM1

1 mars 99
JP VISKOVIC/STA
CQM1-CPU43

TABLE DES MATIERES

1. LE COMPTAGE RAPIDE......................................................................................................................... 3
1.1. LE COMPTAGE AVEC LES ENTREES INTERRUPTIVES ........................................................................................ 4
1.2. LE COMPTEUR RAPIDE N°0........................................................................................................................... 6
1.2.1. L’instruction CTBL............................................................................................................................. 6
1.3. LES COMPTEURS RAPIDES 1 ET 2 .................................................................................................................. 8
2. LES ENTREES INTERRUPTIVES........................................................................................................... 9

3. INTERRUPTIONS SUR TEMPORISATIONS RAPIDES ......................................................................11


3.1. LE MODE MONO-COUP ................................................................................................................................11
3.2. LE MODE CYCLIQUE ...................................................................................................................................11
3.3. LECTURE DU TEMPS ECOULE .......................................................................................................................12
3.4. DESACTIVATION DE TEMPO RAPIDE .............................................................................................................12
4. LA GENERATION D’IMPULSIONS ......................................................................................................13
4.1. GENERATION D’IMPULSIONS SUR SORTIE STANDARD ....................................................................................13
4.2. GENERATION D’IMPULSIONS SUR LES PORTS 1 ET 2 ......................................................................................14
4.3. LES INSTRUCTIONS DE GESTION D’AXE ........................................................................................................15
4.3.1. L’instruction PULS ............................................................................................................................16
4.3.2. L’instruction SPED............................................................................................................................16
4.3.3. L’instruction ACC..............................................................................................................................16
4.3.4. L’instruction PLS2.............................................................................................................................17
4.3.5. L’instruction INI................................................................................................................................17
5. LA COMMUNICATION RS232C ............................................................................................................19
5.1. LE PROTOCOLE SYSMAC-WAY................................................................................................................20
5.2. LE PROTOCOLE LIBRE (RS232C).................................................................................................................22
5.2.1. Transmission d’une trame ASCII........................................................................................................22
5.2.2. Reception d’une trame ASCII.............................................................................................................22
6. SAUVEGARDE SUR CARTOUCHE MEMOIRE ..................................................................................23

7. L’HORLOGE ............................................................................................................................................24

8. LA REGULATION PID............................................................................................................................25

2
CQM1-CPU43

1. Le comptage rapide
La CPU43 est équipée de plusieurs types de compteur :
• le compteur numéro 0 sur le bornier intégré à l’UC
• les compteurs 1 et 2 sur les connecteurs DB15.
• les entrées interruptives utilisées en comptage

entrées Compteurs rapides


interruptives
Mode 0, 1, 2, et 3 0 1 2

1 kHz 5 kHz 50 kHz 50 kHz

50 kHz 50 kHz

50 kHz 50 kHz

2.5 kHz 25 kHz 25 kHz

Le dernier mode tient compte de la différence de phase entre les voies A et B d’un
codeur incrémental.

Note: En mode différence de phase, la valeur courante de comptage par révolution sera
égale à la résolution du codeur x 4.

3
CQM1-CPU43

1.1. Le comptage avec les entrées interruptives

Les entrées interruptives de l’UC (IR00000 à IR00003) peuvent être utilisées pour
réaliser des compteurs en anneau à condition qu’elles aient été déclarées dans le
DM6628.

Les canaux IR244 à 247 contiennent les présélections 0000 à FFFF


(hexadécimale) et les canaux IR248 à 251, les valeurs courantes du compteur
(FFFE à 0000). La présélection moins un est chargée dans le compteur dès
l’exécution de l’instruction INT. Lorsque la valeur courante atteint zéro, l’impulsion
suivante déclenche le sous programme associé et le compteur est réinitialisé à la
présélection moins un.

Note: Les numéros de sous programme 0, 1, 2 et 3 sont automatiquement associés aux


entrées interruptives 0, 1, 2 et 3 (validé par le DM6628).

Les sorties activées dans le sous programme sont immédiatement rafraîchies.


Pour raffraîchir des entrées, il faut déclarer le/les canaux utilisés dans les DM6630
à DM6633.

Pour utiliser une entrée interruptive en mode compteur rapide, il est nécessaire de
déclarer, à l’aide de l’instruction INT, le mode et l’entrée qui doit être démasquée,
les autres demandes d’interruption resteront masquées.

CC = 003 mode compteur


2ème opérande toujours à 000 (inutilisée)
D: donnée (entrées à masquer/démasquer)

4
CQM1-CPU43

Exemple: L’entrée interruptive 0 est utilisée pour compter les impulsions en provenance
d’un codeur. Après 7000 impulsions (1B58 en héxa) le sous programme associé
(0) active la sortie IR10015 à condition que l’entrée IR00104 soit active.

entrée 0 configurée en entrée interruptive


rafraîchissement des canaux d’entré 0 et 1

Chargement de la présélection
#1B58 dans le compteur 0

@: INT n’est exécuté qu’une fois


entrée 0 en mode compteur

1110 = démasquage de l’entrée 0

début du sous programme associé


à l’interruption 0

si 104 «vrai», alors sortie 10015 activée

fin du SP

Lorsque la valeur courante du canal IR248 atteint zéro, l’impulsion suivante


provoque l’exécution du sous programme 0 et le compteur est rechargé avec la
présélection de l’IR244.

5
CQM1-CPU43

1.2. Le compteur rapide n°0

Le compteur rapide 0 utilise les entrées 4, 5 et 6 du bornier de 16 entrées


intégrées à l’UC et fonctionne en mode incrémental ou bien compteur/décompteur
(différence de phase) suivant le paramètrage du DM6642.

La valeur courante de comptage est sauvegardée dans les canaux IR230 et IR231
mais n’est rafraîchie qu’à chaque tour de scrutation. La remise à zéro s’effectue à
l’aide du bit IR25200.
Pour obtenir la valeur courante instantanée, utilisez l’instruction PRV.

P: port numéro 000


C: fonction valeur courante 000
D: adresse de destination

La valeur courante peut être comparée en permanence à une table de données


grâce à l’instruction CTBL.

1.2.1. L’instruction CTBL

Cette instruction permet d’enregistrer une table de valeurs à comparer à la valeur


courante des compteurs rapides 0, 1 ou 2. Lorsqu’une valeur ou bien une zone est
atteinte, le programme principal est dérouté vers un sous programme.

P: port numéro 000


C: méthode de comparaison (valeurs ou bien zones)
000: valeurs et départ automatique
001: zones et départ automatique
002: valeurs (départ avec l’instruction INI)
003: zones (départ avec l’instruction INI)
TB: adresse de la table contenant les valeurs (ou les zones)

La structure de la table TB dépend du mode de comparaison (paramètre C):

Table contenant des valeurs (C=000 ou 002)

TB nbre de valeurs à comparer


TB + 1 4 digits de poids faible
TB + 2 4 digits de poids fort 1ère valeur
TB + 3 n° de sous programme associé 16 valeurs
maximum
TB + 4 4 digits de poids faible
TB + 5 4 digits de poids fort 2ème valeur
TB + 6 n° de sous programme associé

6
CQM1-CPU43
Table contenant des zones (C=001 ou 003)
TB 4 digits de poids faible seuil
TB + 1 4 digits de poids fort inférieur
1ère zone
TB + 2 4 digits de poids faible seuil
TB + 3 4 digits de poids fort supérieur
TB + 4 n° de sous programme associé
TB + 5 4 digits de poids faible seuil
TB + 6 4 digits de poids fort inférieur
TB + 7 4 digits de poids faible seuil 2ème zone
TB + 8 4 digits de poids fort supérieur
TB + 9 n° de sous programme associé

TB+35 4 digits de poids faible seuil


TB+36 4 digits de poids fort inférieur
TB+37 4 digits de poids faible seuil 8ème zone
TB+38 4 digits de poids fort supérieur
TB+39 n° de sous programme associé

Note: Les bits activés dans un sous programme et non utilisés dans le programme
principal restent activés.

Exemple: Le compteur 0 est utilisé en mode incrémental.


Lorsque la valeur courante atteint 2000, le sous programme d’interruption
interrompt la génération d’impulsions.
Paramètrage: DM6642=0114 mode incrémental et RAZ soft
DM0000=0001 une seul valeur à comparer
DM0001=2000 valeur à atteindre
DM0002=0000
DM0003=0101 n° sous programme

Enregistre la table de valeur à partir du DM0000 et


enclenche les comparaisons avec le compteur n°0

Génère des impulsions en direction de la sortie


IR10002 à la fréquence de 500Hz.

Début du sous programme n°101

Stop la génération d’impulsions

7
CQM1-CPU43

1.3. Les compteurs rapides 1 et 2

Les compteurs rapides 1 et 2 utilisent les ports DB15 1 et 2. Pour utiliser ces
compteurs, configurez le DM6611 en mode compteur rapide (DM6611=0000) et
paramètrez leur mode de fonctionnement dans les DM6643 et DM6644.

Le mode linéaire permet de compter/décompter entre -8 388 607 et + 8 388


607, tandis que le mode compteur en anneau ne peut excéder 65000.
Les valeurs courantes des compteurs sont indiquées dans les canaux IR232 et
IR233 pour le compteur 1 et dans les canaux IR234 et IR235 pour le compteur 2,
mais elles ne sont rafraîchies qu’à chaque tour de scrutation. Pour obtenir la
valeur courante d’un compteur de manière instantanée, utilisez l’instruction PRV
(voir chapitre 1.2).

La RAZ des compteurs 1 et 2 s’effectue à l’aide des bits IR25201 et IR25202


respectivement. Celle-ci n’est exécutée qu’à la fin du tour de scrutation.
Pour effectuer une RAZ de manière instantanée, utiliser l’instruction INI.

P: port numéro 001 ou 002


002: changement de valeur courante
D: adresse contenant les données (2 mots)

Pour exécuter en permanence des comparaisons sur valeurs ou bien sur zones,
utilisez l’instruction CTBL (voir chapitre 1.2.1).

8
CQM1-CPU43

2. Les entrées interruptives


Les entrées 0, 1, 2 et 3 des automates CQM1 (toutes les CPU), peuvent être
utilisées en entrées interruptives activant respectivement les sous programmes
d’interruptions 0, 1 ,2 et 3. Ces entrées peuvent aussi être utilisées en comptage
rapide (voir chapitre 1.1). Les entrées de type interruptive doivent être déclarées
dans le DM6628.

Les sorties activées dans le sous programme sont immédiatement rafraîchies.


Pour raffraîchir des entrées, il faut déclarer dans les DM6630 à DM6633, le/les
canaux utilisés par le sous programme.

L’instruction INT permet de déclarer les demandes d’interruption qui doivent être
prise en compte. Les autres demandes d’interruption resteront masquées.

000: validation d’entrées interruptives


000: non utilisé
D: entrées à masquer/démasquer (0000 à 000F)

Dès que, une ou plusieurs entrées interruptives démasquées sont activées, le


programme principal est dérouté vers le sous programme d’interruption ayant la
plus haute priorité. Celles-ci sont définies comme suit:
Interruption n° 0 > n° 1 > n° 2 > n° 3.
Si l’interruption n° 0 survient pendant l’exécution du sous programme d’interruption
n° 2, ce dernier est interrompu pour exécuter le SP n° 0.

Toute modification du masque (INT mode 000) au cours du programme devra être
précédée d’une RAZ des demandes d’interruption (INT mode 001). Le mode 002
de l’instruction INT permet de lire l’état du masque.

INT en mode 100 permet d’inhiber momentanément toutes les interruptions et INT
mode 200, de rétablir le masquage/démasquage des entrées interruptives.

9
CQM1-CPU43

Exemple: L’entrée 0 est utilisée en entrée interruptive pour modifier la valeur de présélection
du compteur rapide associé à l’entrée interruptive n°1.

DM6628 = 0011
DM6630 = 0000 aucune entrée de carte d’entrée
DM6631 = 0000 n’est utilisée dans les sous programmes

Programmation:

10
CQM1-CPU43

3. Interruptions sur temporisations rapides


Toutes les UC de CQM1 disposent de 3 tempo. rapide 0, 1 et 2 programmables en
mode mono-coup ou bien en mode cyclique.

Note: La tempo n° 0 n’est pas disponible lorsque l’instruction SPED est utilisée pour
générer des impulsions vers une carte de sorties transistors
La tempo n° 2 n’est pas disponible lorsque le compteur rapide n° 0 est utilisé
(entrées 4, 5 et 6 sur l’UC)

A l’échéance d’une tempo rapide, le programme principal est dérouté vers le sous
programme associé. Les sorties activées dans le sous programme sont
immédiatement rafraîchies. Pour rafraîchir des entrées, il faut déclarer dans les
DM6636 à DM6638 le/les canaux utilisés.

3.1. Le mode mono-coup

L’instruction STIM permet, en mode mono-coup, d’enclencher l’exécution d’un


sous programme après un intervalle de temps très précis.

T=000: tempo rapide 0 en mode mono-coup


001: tempo rapide 1 en mode mono-coup
002: tempo rapide 2 en mode mono-coup
D : adresse du mot contenant le nombre d’intervalles temps
D+1 : intervalle de temps (4 chiffres BCD x 0.1 ms) 0005 à
0320 (0.5ms à 32ms).
Sp :sous programme associé à l’interruption.

Intervalle de temps = contenu de D x contenu de D+1 x 0.1ms (0.5 à 319 968ms)


Si D est une valeur immédiate (#0001 à #9999), il s’agit alors du nombre
intervalles de 1 ms.

3.2. Le mode cyclique

Dans ce mode, le sous programme est exécuté à chaque cycle de la temporisation


rapide.

T = 003: tempo rapide 0 en mode cyclique


004: tempo rapide 1 en mode cyclique
005: tempo rapide 2 en mode cyclique
D : adresse du mot contenant le nombre d’intervalles de temps
D+1: contenant intervalle de temps (4 chiffres BCD x 0.1 ms)
0005 à 0320 (0.5ms à 32ms).
Sp :sous programme associé à l’interruption.

Intervalle de temps = contenu de D x contenu de D+1 x 0.1ms (0.5 à 319 968ms)


Si D est une valeur immédiate (#0001 à #9999) il s’agit alors du nombre intervalle
de 1 ms.

11
CQM1-CPU43
3.3. Lecture du temps écoulé

T = 006: temps écoulé sur la tempo rapide 0


007: temps écoulé sur la tempo rapide 1
008: temps écoulé sur la tempo rapide 2
D : nombre d’intervalles de temps comptabilisé
D+1: intervalle de temps en 0.1ms
C :Temps écoulé depuis la dernière décrémentation

3.4. Désactivation de tempo rapide

T = 010: désactive la tempo rapide 0


011: désactive la tempo rapide 1
012: désactive la tempo rapide 2

Exemple: Le programme ci-dessous utilise une interruption sur temporisation cyclique pour
faire clignoter la sortie 100.00 toutes les 30ms.

12
CQM1-CPU43

4. La génération d’impulsions
Toutes les UC de CQM1 sont capables de générer des trains d’impulsions
standard à une fréquence maximale de 1 kHz sur une carte de sortie transistor.
La CPU43 dispose de 2 ports permettant de générer des impulsions jusqu’à une
fréquence de 50 kHz avec des rampes d’accélération/décélération. Ces 2 ports
peuvent aussi être utilisés en comptage rapide mais dans ce cas, certaines
fonctions de générations d’impulsions ne peuvent plus être utilisées.

4.1. Génération d’impulsions sur sortie standard

Les instructions SPED et PULS permettent d’envoyer sur une carte de sortie
définie dans le DM6615, une série d’impulsions avec un rapport cyclique de 0.5
(non modifiable).

Note: L’interruption cyclique n° 0 n’est plus disponible lorsque l’on utilise une sortie en
générateur d’impulsion.

SPED paramètre la fréquence (ou la modifie pendant l’exécution), tandis que


PULS détermine le nombre d’impulsions à générer.

P = 010 à 150 désigne le bit 1 à 15 du canal de destination


000 désigne le bit 00 (1 ou 2 désigne le port 1 ou 2)
M = 000 : mode de sortie continue
001 : le nombre d’impulsions défini par PULS
F = 0002 à 0100 : fréquence x 10Hz

Si SPED n’est pas en mode continu, il faut déterminer le nombre d’impulsions à


l’aide de l’instruction PULS.

P = 000 : carte de sortie (001 port 1, 002 port 2)


C = 000 : (opérande réservée à l’utilisation des ports 1 et 2)
N : adresse des 2 mots contenant le nombre d’impulsions
(00000001 à 16777215)

13
CQM1-CPU43

4.2. Génération d’impulsions sur les ports 1 et 2

La CPU43 peut gérer deux axes en boucle ouverte ou fermée suivant le DM6611.

En mode sortie impulsions, les ports 1 et 2 peuvent piloter des moteurs pas à
pas en générant des rampes d’impulsions, programmées à l’aide des instructions
SPED, PULS, PLS2 et ACC. L’instruction CTBL n’est pas disponible.

En mode comptage rapide, les ports 1 et 2 peuvent compter des impulsions


(CTBL) et générer des impulsions à l’aide des instructions SPED, PULS et ACC
(PLS2 et ACC en mode 0 ne sont plus disponibles).

Note: Les modifications dans le DM6611 ne sont prises en compte qu’à la mise sous
tension de l’automate.

Le rapport cyclique du train d’impulsions généré peut être différent de 0.5 suivant
le DM6643 (port 1) et DM6644 (port 2).

Dans le cas d’un rapport cyclique variable, celui-ci est déterminé lors de
l’exécution de l’instruction PWM

P : 001 ou 002 désigne le port 1 ou 2


F = 000 : fréquence = 5.9 kHz
001 : fréquence = 1.5 kHz
002 : fréquence = 91.6 kHz
R = 0001 à 0099: rapport cyclique (1% à 99%)
ou adresse du mot contenant le rapport cyclique

Le nombre total d’impulsions envoyées est sauvegardé dans les canaux IR236-
IR237 pour le port 1 (IR238-239 pour le port 2) et le statut des ports dans les
canaux AR 4, 5 et 6 mais leur contenu n’est rafraîchi qu’à chaque tour de
scrutation. Le statut du port indique si la décélération et la génération d’impulsions
sont terminés. L’instruction PRV permet d’obtenir ces informations de manière
instantanée.

Note: En mode sortie impulsion, l’instruction PRV ne peut pas fournir le nombre
d’impulsions déjà générées.

14
CQM1-CPU43

4.3. Les instructions de gestion d’axe

signal de sortie instructions opérandes


port
direction
nombre d’impulsions

port
mode = 000
fréquence

port
direction

port
mode = 001
fréquence

port
mode=003 stop
000

port
mode=000
fréquence=#0000

port
direction + nbre d’impulsions +point de
décélération

port
mode =0
accél +fréquence + décél +fréquence

port
direction

port
mode =1
accélération + fréquence

port
direction + nombre d’impulsions

port
mode =2
décélération + fréquence

port
direction

port
mode =3
décélération + fréquence

port
direction
accél/décél + fréquence + qté impulsion

Note: En mode sortie impulsion, l’instruction CTBL n’est pas disponible.


En mode comptage rapide, PLS2 et ACC en mode 0 ne sont pas disponibles

15
CQM1-CPU43

4.3.1. L’instruction PULS

L’instruction PULS détermine la direction et le nombre d’impulsions à générer


avec l’instruction SPED ou ACC.

P = 000 : carte de sortie


001 : port 1
002 : port 2
C = 000 : sens H et nbre d’impulsions dans N et N+1
001 : sens AH et nbre d’impulsions dans N et N+1
002 : sens H et nbre d’impulsions dans N et N+1
point de décélération dans N+2 et N+3
003 : sens AH et nbre d’impulsions dans N et N+1
point de décélération dans N+2 et N+3
004 : sens H (sortie continue)
005 : sens AH (sortie continue)
N : adresse des mots de données (définies par C)

4.3.2. L’instruction SPED

SPED permet, après l’exécution de PULS, de débuter/arrêter la génération


d’impulsions.

P = 001 : port 1
002 : port 2
000 ou 010 à 150: sortie standard (voir chapitre 2.1)
M = 000 : le nombre d’impulsions est définit par PULS
001 : mode de sortie continue
F : valeur ou adresse contenant la fréquence x 10Hz

Si SPED n’est pas en mode continu, il faut déterminer le nombre d’impulsions


dans l’instruction PULS.

4.3.3. L’instruction ACC

ACC permet, après l’exécution de PULS, de débuter/arrêter la génération


d’impulsions avec des paramètres d’accélération/décélération spécifiques.

P = 001 : port 1
002 : port 2
M = 000: accél, fréq, décél, fréq. dans C, C+1, C+2, C+3
001: accél, fréquence dans C, C+1
002: décélération, fréquence dans C, C+1
003: décélération, fréquence dans C, C+1 (continue)
C : adresse de C

Note: Les paramètres d’accélération et décélération sont déterminés en nombre


d’impulsions ajoutés à la fréquence de sortie toute les 4.08ms.

16
CQM1-CPU43

4.3.4. L’instruction PLS2

PLS2 permet de générer un trapèze avec une accélération et une décélération


identique.

P = 001 : port 1
002 : port 2
D = 000: sens Horaire
001: sens Anti-Horaire
C : adresse contenant l’accélération/décélération
C+1 contient la fréquence
C+2 et C+3 le nombre d’impulsions

T1 = 0.004 x fréquence .
acc/décél.
100Hz
T2 = nbre d’impulsions - (T1 x fréquence)
T1 T2 T1 fréquence

Note: • La fonction PLS2 arrête de générer des impulsions lorsque la fréquence atteind
100Hz durant la période de décélération.
• Lorsque la valeur d’acc./décél. est faible, les drapeaux des AR5 et AR6 peuvent
donner un statut des sorties (fin du mouvement) décalé dans le temps, mais le
nombre d’impulsions générées sera respecté.
• En mode comptage rapide, l’instruction PLS2 n’est pas disponible.

4.3.5. L’instruction INI

INI en mode 003 est destiné à stopper la génération d’impulsion. Les autres
modes sont utilisés pour le comptage rapide.

P = 001 : port 1
002 : port 2
003: stop la génération d’impulsions

Exemple: Pilotage en boucle fermée d’un moteur pas à pas couplé à un codeur
incrémental.
1. accélération de 160 impulsions toutes les 4ms pour atteindre 8kHz
2. à 5000 impulsions, décélération vers 200Hz
3. à 200Hz activer la sortie 10000
4. à 10000 impulsions fin du déplacement

DM6611 = 0000
DM6643 = 0002

8kHz

vitesse lente
200Hz
10Hz

17
CQM1-CPU43
5000 7000 10 000
Programmation:

18
CQM1-CPU43

5. La communication RS232C
Le CQM1-CPU43 est éuipé d’un port RS232C et d’un port périphérique réservé en
principe à la console de programmation mais qui peut être transformé en RS232C
par l’intermédiaire d’un cordon adaptateur CQM1-CIF01.
Il existe 2 manières de communiquer via les ports RS232C.
• par protocole SYSMAC-WAY (Host Link)
• par protocole libre (RS232C)

Le protocole SYSMAC-WAY impose un format de trame particulier et ne permet


pas à l’automate d’être à l’initiative de la communication. Il ne fait qu’exécuter des
commandes (écriture de données) ou répondre à des questions (lecture de
données).
Le protocole libre utilise les fonctions TXD et RXD pour émettre ou bien recevoir
des trames de code ASCII.

Note: En mode SYSMAC-WAY (Host Link), il est malgré tout possible d’utiliser
l’instruction TXD pour permettre à l’automate d’être à l’initiative d’une
communication. Dans ce cas, la trame ASCII est encapsulée dans une trame
SYSMAC-WAY @EX trame ASCII fcs ∗.
Par défaut l’automate est en mode SYSMAC-WAY.

Configuration du mode de communication:

Le format de communication standard correspond au format :


SYSMAC-WAY 7 bits de données, parité paire, 2 bits de stop, 9600 bps
Un format différent pourra être spécifié dans les DM6646 pour le port RS232C et
DM6651 pour le port périphérique.

Vitesse données stop parité


00 1.2k 00 7 1 paire
01 2.4k 01 7 1 impaire
02 4.8k 02 7 1 sans
03 9.6k 03 7 2 paire
04 19.2k 04 7 2 impaire
05 7 2 sans
06 8 1 paire
07 8 1 impaire
08 8 1 sans
09 8 2 paire
10 8 2 impaire
11 8 2 sans

Exemple : DM6645 = 0001 Port RS232C au protocole SYSMAC-WAY, format dans DM6646
DM6646 = 0304 format 7, 2, paire, 19 200bps

19
CQM1-CPU43
DM6650 = 1000 Port périphérique au protocole libre format standard.

5.1. Le protocole SYSMAC-WAY

L’automate est esclave et répond aux commandes de lecture/écriture (provenant


d’un PC par exemple).

La trame est constituée de la manière suivante:

entête esclave code commande adresse qté FCS fin de trame retour chariot

Résultat d’un OU exclusif sur le


code code ASCII de chaque caractère
code
RR: lecture IR ASCII hexa binaire
RL: lecture LR @ 40 0100 0000
RH: lecture HR 0 30 0011 0000
RD: lecture DM 0111 0000
RC: lecture T/C 4 34 0011 0100
0100 0100
WR: écriture IR R 52 0101 0010
WL: écriture LR 0001 0110
WH: écriture HR D 44 0100 0100
WD: écriture DM 0101 0010
0 30 0011 0000
RP: lecture programme 0110 0010
WP: écriture programme 0 30 0011 0000
MS: lecture du mode de l’API 0101 0010
SC: change le mode de l’API 0 30 0011 0000
KS: forçage à 1 0110 0010
KR: forçage à 0 1 31 0011 0001
KC: annulation de forçage 0101 0011
0 30 0011 0000
SYSMAC-WAY dispose d’une 0110 0011
quarantaine de codes commande. 0 30 0011 0000
0101 0011
0 30 0011 0000
0110 0011
1 31 0011 0001
0101 0010
5 2

Exemple: Lecture du DM0001 dans l’automate n°4; TEXT$ = @04RD00010001


routine BASIC de calcul du FCS.
100 OPEN ″COM1:9600,E,7,2,RS,CS,DS,CD″ AS #1
110 INPUT TEXT$
120 GOSUB 1000
130 PRINT#1, TEXT$ + FCS$ + ″∗″ + CHR$(13);
140 LINE INPUT#1, REPONSE$
.
. traitement de la réponse
.
150 GOTO 110

sous programme de calcul du FCS


1000 Q=0
1010 for J = 1 to LEN(TEXT$)
1020 Q = Q XOR ASC(MID$(TEXT$), J, 1)
1030 NEXT J

20
CQM1-CPU43
1040 FCS$ = RIGHT$(″00″ + HEX$(Q) , 2)
1050 RETURN

21
CQM1-CPU43

5.2. Le protocole libre (RS232C)

5.2.1. Transmission d’une trame ASCII

L’instruction TXD permet d’envoyer une trame contenant jusqu’à 256 octets de
codes ASCII.

S: adresse du bloc de données


C= #0000: port RS232C #0001 lecture de droite à gauche
#1000: port périphérique #1001 lecture de droite à gauche
N: nombre d’octets à transmettre

5.2.2. Reception d’une trame ASCII

L’AR09 (AR10 port périph.) contient le nombre d’octets en attente de lecture.


Si le nombre d’octets d’une trame ou bien des délimiteurs sont déclarés dans les
DM6648 et 6649 (DM6653 et 6654), le drapeau AR806 (AR814) passera à 1 dès
qu’une trame sera complète.

D: adresse du bloc mémoire destiné à recevoir la trame


C= #0000: port RS232C #0001 écriture de droite à gauche
#1000: port périphérique #1001 écriture de droite à gauche
N: nombre d’octets à lire

Exemple: L’automate envoi l’heure (16h53) à un PC raccordé au port RS232C, puis le PC


renvoie un message de confirmation.
(l’horloge n’est disponible qu’avec le cartouche mémoire CQM1-MxxxR)

22
CQM1-CPU43

6. Sauvegarde sur cartouche mémoire


Les cartouches mémoire 4 et 8 kmots permettent de sauvegarder et transférer
dans la RAM de l’automate:
• le programme
• la configuration système (DM6600 à DM6655)
• la table des instructions étendues
• la zone de DM qui ne peut être écrite par le programme lui-même
(DM6144 à DM6568).

Pour exécuter une sauvegarde :

1. vérifiez que la cartouche mémoire est reconnue par l’UC (bien enfichée)

2. vérifiez que le Dip switch n°2 en façade de l’API est bien sur OFF
(pas de transfert automatique cartouche ->RAM)

3. passez à 1 le bit de sauvegarde AR1400 qui doit revenir automatiquement à 0


après une demi seconde.

Note: L’AR1402 permet d’enclencher une comparaison entre le programme de la


cartouche et celui de la RAM de l’API. Une différence passe l’AR1403 à 1.
Dans le cas d’une cartouche de 4k, vérifiez que le programme n’exède pas cette
taille (AR15).
En cas d’erreur, vérifiez l’état des drapeaux d’erreur situés dans les AR14 et 16.

Pour transférer le contenu de la cartouche dans l’automate dès la mise sous


tension, basculez le dip switch n°2 en façade de l’automate sur ON.
En cas d’absence de cartouche ou de programme non valide, l’automate se met
en erreur.

23
CQM1-CPU43

7. L’horloge
La fonction horloge n’est disponible qu’avec les cartouches mémoire RAM
MR433/833 et EEPROM ME432/832. Les informations d’horodatage sont
consignées dans les AR 17 à 21:

canal 2 digits de gauche 2 digits de droite


AR 17 heure minute
AR 18 minute (0 à 59) seconde (0 à 59)
AR 19 date (0 à 31) heure (0 à 23)
AR 20 année (00 à 99) mois (1 à 12)
AR 21 bit de réglage jour (00 à 06)

Réglage

1. arrêtez l’horloge en activant le bit AR 2114.


2. modifiez les valeurs des AR 18 à AR 21 (l’AR 17 n’est pas modifiable). En cas
de modification du jour AR 21, veillez à ne pas faire retomber le bit AR 2114.
3. Relancez l’horloge en activant le bit AR 2115. L’AR 2114 retombe
automatiquement en même temps que l’AR 2115.

Exemple: L’heure et la date du CQM1 sont modifiées par un terminal de dialogue

Programme automate

24
CQM1-CPU43

8. La régulation PID
Les CQM1-CPU4x disposent de l’instruction PID

Source: mot d’entrée (valeur analogique de la mesure)


Contrôle: adresse du bloc de mots contenant les paramètres
Destination: mot de sortie (valeur analogique de la sortie)

L’opérande C défini l’adresse du 1er mot du bloc de mot contenant les paramètres
de régulation.

Paramètres de régulation

canal Fonction
C consigne en Hexa 0 à FFFF (compatible avec la résolution de C+ 6)
C+1 bande Proportionnelle 000.1 à 999.9 % (de la pleine échelle)
C+2 Intégrale en nombre d’échantillons 1 à 8191 (9999 = pas d’intégrale)
C+3 Dérivée en nombre d’échantillons 0 à 8191
C+4 période d’échantillonage 000.1 à 102.3 secondes
C+5

C+6

C+7 Ces canaux doivent restés


: disponibles pour les
C+32 calcul PID

Note: La régulation PID n’est effective que si la condition d’exécution est vrai tandis que
les paramètres de régulation sont pris en compte au front montant de cette
condition excépté le DM contenant la consigne qui peut être modifié en cours de
fonctionnement.

25
CQM1-CPU43

Exemple: Le programme ci-dessous se propose de réguler la sortie transistor IR 100.00


suivant la consigne BCD spécifiée dans le DM0009. La mesure de température
provient d’un transmetteur 4-20 mA et est convertit par une carte AD041 (canal
IR 01).

Programme automate:

26