Mise à l’heure du terminal par l’automate
Posté : 26 févr. 2016, 19:52
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.
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);
}