Lecture D'une Sortie; Temporisations; Attente Passive; Attente Active - SERAD MCS 32 EX Guide D'utilisation

Table des Matières

Publicité

Documentation MCS32
C) Lecture d'une sortie
Toutes les sorties peuvent également être lues. La valeur lue correspond à la dernière valeur
écrite.
Cette fonctionnalité est très utile si plusieurs tâches utilisent la même sortie.
Par exemple :
DAC(Consigne)=DAC(Consigne)*2

6-1-3- Temporisations

A) Attente passive
La fonction DELAY est utilisée pour établir une attente passive. Sa syntaxe est :
DELAY <Durée>
<Durée> est un entier exprimé en milliseconde. Il est recommandé d'utiliser cette fonction pour
une longue attente passive car le programme en attente ne prend pas de temps processeur.
Avec cette fonction, le programme attend la durée indiquée.
Par exemple:
Debut:
WAIT Inp(Start)=ON
...
DELAY 5000
...
GOTO Debut
B) Attente active

6-1-4- TIME

La variable globale interne TIME peut être utilisée pour établir des attentes actives. C'est un
entier long qui représente le nombre de millisecondes écoulées depuis la dernière mise sous
tension. Cette variable peut donc être utilisée comme base de temps. Elle convient en particulier
au machine qui sont sous-tension moins de 24 jours. En effet à la mise sous-tension, TIME est
initialisé à 0. Au-delà de 24 jours, la variable atteint sa valeur maximum 2^31 et passe ensuite à
2^-31. Cette transition appelée débordement peut provoquer dans certain cas des erreurs de
temporisations. Il est donc préférable d'utiliser la variable globale TIMER.
Par exemple :
FinDelay& = TIME+5000
WHILE TIME<FinDelay& DO
...
END WHILE
FinTimeOut& = TIME+200
WAIT (Inp(Capteur)=On) Or (Time>FinTimeOut&)

6-1-5- TIMER

La variable globale interne TIMER peut être utilisée pour établir des attentes actives. C'est un
réel qui représente le nombre de millisecondes écoulées depuis la dernière mise sous tension.
Cette variable peut donc être utilisée comme base de temps. Elle convient en particulier aux
machines qui sont toujours sous-tension. La partie entière représente les secondes et la partie
décimale (3 chiffres après la virgule) représente les millisecondes.
Par exemple :
FinDelay! = TIMER+5.250
WHILE TIMER<FinDelay! DO
...
R342
EX
' Délai de 5 secondes
'chargement d'une temporisation de 5s
'Traitement pendant 5s
'Chargementd'une temporisation de 5.25s
'Traitement pendant 5.25s
'Multiplication par 2 de la consigne
'de sortie
'Attente d'un capteur ou
'd'un time-out de 200ms
- 127 -
SERAD S.A.

Publicité

Table des Matières
loading

Table des Matières