Mise à l’heure du terminal par l’automate

Partie du forum pour tout ce qui concerne les interfaces homme machine ou IHM. Forum, conseil, astuce et entraide sur les interface homme machine ou IHM tels que les magelis, KEP, proface, XBT, .
Répondre
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Mise à l’heure du terminal par l’automate

Message par itasoft »

Slts,
Cas de figure ou c’est l’automate qui fait la mise à l’heure du terminal par envoi des valeurs en BCD
Il faut convertir tout ce beau monde en décimal pour la mise à l’heure du terminal.
Ci dessous un exemple de script pour Vijeo-designer à toutes fins utiles.

Code : Tout sélectionner

//-------------------------------------------
//Mise à l'heure du Terminal par l'automate
//------------------------------------------

//Reception mois_jour en BCD
int mj=MMJJ.getIntValue();
//Reception annee en BCD
int ssaa=AAAA.getIntValue();
//Reception heure_min en BCD
int hm=HHMN.getIntValue();

//Conversion Date/heure en décimal
int mm=(mj>>12)*10+(mj>>8&15);
int jj=(mj>>4&15)*10+(mj&15);
int hh=(hm>>12)*10+(hm>>8&15);
int mn=(hm>>4&15)*10+(hm&15);
int aa=(ssaa>>12)*1000
+(ssaa>>8&15)*100
+(ssaa>>4&15)*10
+(ssaa&15);

//Contrôle validité
boolean ok=(jj>0&&jj<=31)
&&(mm>0&&mm<=12)
&&(aa>2000&&aa<3000)
&&(hh>0&&hh<24)
&&(mn>0&&mn<60);
  
// Mise à l'heure du terminal sur changement
// d'état de la date/heure
int Ixor=jj^mm^aa^hh^mn;
int Mxor=XORm.getIntValue();

if (Ixor!=Mxor && ok)
{
Sys.setDate(aa,mm, jj);
Sys.setTime(hh, mn, -1);
XORm.write(Ixor);
}
Automaticien privé (de tout)
itasoft@free.fr
Répondre