QUESTION:
Comment faire pour afficher séparément les heures, les minutes,
les secondes et les millisecondes, à partir d’une variable de type
"S5TIME" ?
REPONSE:
De plus amples informations concernant le sujet
des temporisation S5 peuvent être trouvés dans les articles
suivants :
- "Entrer une variable S5TIME
dans ProTool/Pro" ID d'entrée 9125571
- "Entrer directement une
temporisation S5 dans ProTool/Pro" ID d'entrée
947095.
La valeur de Présélections des temporisations dans l’automate
doit être représentée en tant que variable de Type "S5TIME" (par
exemple : S5T#1H_34M_30S_0MS).
La Valeur de la temporisation peut être lue dans l’automate et
affiche via Protool/Pro. L’affichage de ce temps peut être présenté
sous la forme heure, minutes, secondes et millisecondes .
Le projet ci-dessous contient 4 scripts qui permettent de lire
une variable passé en paramètre d’entrée "WORD" avec pour nom
"S5TIME" . La fonction retourne en sortie des variables permettant
l’affichage Heure, Minutes, Secondes et Millisecondes.
- Ces scripts doivent être utilisés de la façon
suivante :
- Définir 4 Variables (par exemple : "HH",
"MM", "SS" et "MS").
- Rattacher ces variables avec 4 champs
d’affichages destinés à représenter l’Heure, les Minutes, les
Secondes et les Millisecondes.
- Définir une variable de type "WORD"(par
exemple : "S5T"). contient la valeur de présélection de la
temporisation de l’automate au format "S5TIME".
- Maintenant il faut définir une fonction
rattachée sur la Propriété de la variable "S5T" , cette fonction
est appelée lorsque la variable change de valeur. Cela signifie
que cette fonction convertira la valeur au format Heure, minutes,
secondes et millisecondes.
Description du fonctionnement de ces scripts :
La fonction vérifie en premier temps, la valeur de la base de
temps conformément au format "S5Time" voir la description sur le
FAQ nr 56243 et en déduit un facteur de base de temps .Ensuite il
y a décodage binaire / BCD de la valeur du temps . Puis cette
valeur décodée est multipliée par le facteur de base de temps
calculé precedement . Le résultat obtenu est en millisecondes .,
Cette valeur est la base uniforme prise pour le restant des calculs
.On obtient ensuite les différentes valeurs comme l’heure , les
minutes , les secondes et les millisecondes
Source du script :
Dim Zeitbasis, Gesamtzeit, Puffer, Stunde, Minute, Sekunde
If S5TimeIn < 4096 Then
Zeitbasis=10
ElseIf S5TimeIn < 8192 Then
Zeitbasis=100
ElseIf S5TimeIn < 12288 Then
Zeitbasis=1000
Else
Zeitbasis=10000
End If
puffer = S5TimeIn And 4095
Gesamtzeit = Fix(puffer/256)*100
puffer = Puffer And 255
Gesamtzeit = Gesamtzeit+Fix(puffer/16)*10
puffer = Puffer And 15
Gesamtzeit = Gesamtzeit+puffer
Gesamtzeit = Gesamtzeit*Zeitbasis
Stunde = Fix(gesamtzeit/3600000)
gesamtzeit = gesamtzeit - stunde*3600000
Minute = Fix(gesamtzeit/60000)
gesamtzeit = gesamtzeit - Minute*60000
Sekunde = Fix(gesamtzeit/1000)
gesamtzeit = gesamtzeit - sekunde*1000
S5Time_ms = gesamtzeit
Script en fichier telechargeable :
Copiez "le fichier " pro___0l.exe" dans un répertoire séparé
et lancez ensuite le fichier avec un double-clic .
pro___0l.exe ( 39 KB )
IMPORTANT :
Ce programme / cet exemple est un freeware. Son utilisation est
complètement libre, sa copie et son utilisation sont SANS
RESTRICTION. Les auteurs et propriétaires de ce programme ne
prennent aucune responsabilité pour les fonctionnalités ou la
compatibilité de ce logiciel. L'utilisation de ce logiciel est aux
risques de l'utilisateur. Ce logiciel étant gratuit, il n'y a pas
de garantie, ni demande de correction d'erreur, ni support
Hotline.
Mots-clefs:
Programmation oriente objet , Conversion de temps , Affichage
valeur temps
|