Vijeo-designer Mise à l'heure de l'automate
Posté : 23 avr. 2016, 21:52
Slts,
Mise à l’heure de l’IHM à l’heure de l’automate sur une action Script au démarrage de l’IHM
La date et l’heure sont censés être dans les mots système %SW51 %SW52 %SW53 en BCD
Exemple :
Cliquer dessus pour agrandir l'image Script
//==MISE A L'HEURE DE L'IHM A L'HEURE DE L'AUTOMATE==
//Le mois et le jour sur API en BCD
int MMJJ=SW52.getIntValue();
//mois en décimal
int mm=(MMJJ>>12)*10+(MMJJ>>8 & 0x000F);
//jour en décimal
int jj=(MMJJ>>4 & 0x000F)*10+(MMJJ & 0x000F);
//Les heures et les minutes sur API en BCD
int HHMN=SW51.getIntValue();
//heures en décimal
int hh=(HHMN>>12)*10+(HHMN>>8 & 0x000F);
//minutes en décimal
int mn=(HHMN>>4 & 0x000F)*10+(HHMN & 0x000F);
//L'année sur API en BCD
int AAAA=SW53.getIntValue();
//année en décimal
int aa=(AAAA>>12)*1000
+(AAAA>>8 & 0x000F)*100
+(AAAA>>4 & 0x000F)*10
+(AAAA & 0x000F);
//Mise à l'heure IHM
Sys.setDate(aa,mm,jj);
Sys.setTime(hh,mn,0);
//=========== Exemples de Script de conversion BCD ================
//== CONVERSION DECIMAL-->BCD ==
//EX: Valeur en Décimal (0à9999)
int DECI=1234;
//BCD=Résultat en BCD
int BCD=DECI/1000<<12|DECI%1000/100<<8|DECI%1000%100/10<<4|DECI%1000%100%10;
//== CONVERSION BCD-->DECIMAL ==
//EX: Valeur en BCD
int VBCD=0x1234;
//DEC=Résultat en Décimal
int DEC=(VBCD>>12)*1000
+(VBCD>>8 & 0x000F)*100
+(VBCD>>4 & 0x000F)*10
+(VBCD & 0x000F);
Mise à l’heure de l’IHM à l’heure de l’automate sur une action Script au démarrage de l’IHM
La date et l’heure sont censés être dans les mots système %SW51 %SW52 %SW53 en BCD
Exemple :
Cliquer dessus pour agrandir l'image Script
//==MISE A L'HEURE DE L'IHM A L'HEURE DE L'AUTOMATE==
//Le mois et le jour sur API en BCD
int MMJJ=SW52.getIntValue();
//mois en décimal
int mm=(MMJJ>>12)*10+(MMJJ>>8 & 0x000F);
//jour en décimal
int jj=(MMJJ>>4 & 0x000F)*10+(MMJJ & 0x000F);
//Les heures et les minutes sur API en BCD
int HHMN=SW51.getIntValue();
//heures en décimal
int hh=(HHMN>>12)*10+(HHMN>>8 & 0x000F);
//minutes en décimal
int mn=(HHMN>>4 & 0x000F)*10+(HHMN & 0x000F);
//L'année sur API en BCD
int AAAA=SW53.getIntValue();
//année en décimal
int aa=(AAAA>>12)*1000
+(AAAA>>8 & 0x000F)*100
+(AAAA>>4 & 0x000F)*10
+(AAAA & 0x000F);
//Mise à l'heure IHM
Sys.setDate(aa,mm,jj);
Sys.setTime(hh,mn,0);
//=========== Exemples de Script de conversion BCD ================
//== CONVERSION DECIMAL-->BCD ==
//EX: Valeur en Décimal (0à9999)
int DECI=1234;
//BCD=Résultat en BCD
int BCD=DECI/1000<<12|DECI%1000/100<<8|DECI%1000%100/10<<4|DECI%1000%100%10;
//== CONVERSION BCD-->DECIMAL ==
//EX: Valeur en BCD
int VBCD=0x1234;
//DEC=Résultat en Décimal
int DEC=(VBCD>>12)*1000
+(VBCD>>8 & 0x000F)*100
+(VBCD>>4 & 0x000F)*10
+(VBCD & 0x000F);