slts,
ci dessous exemple pour mise à l'heure ETE/HIVER sur TWIDO (avec l'option Horodateur)
cliquer dessus pour agrandir l'image
======== Sur PL7-PRO ========
(* MISE A L'HEURE D'ETE Le dernier dimanche du mois de Mars à 2h du matin *)
(*Si mois de Mars*)
IF(%SW52 AND 16#FF00)=16#0300
(*Si 2 h du mat*)
AND %SW51=16#0200
(*Si Dimanche*)
AND %SW49=7
(* Si c’est le dernier Dimanche du mois *)
AND BCD_TO_INT(%SW52 AND 16#00FF)+7>31
(* Mise à l'heure d'été + 1h *)
THEN
%MW0:=0;
%MW1:=16#0300;
%MW2:=%SW52;
%MW3:=%SW53;
WRTC(%MW0:4);
END_IF;
(* MISE A L'HEURE D'HIVER Le dernier dimanche du mois de Octobre à 3h du matin *)
(*Si mois de Octobre*)
IF(%SW52 AND 16#FF00)=16#1000
(*Si 3 h du mat*)
AND %SW51=16#0300
(*Si Dimanche*)
AND %SW49=7
(* Si c’est le dernier Dimanche du mois *)
AND BCD_TO_INT(%SW52 AND 16#00FF)+7>31
(* Mise à l'heure d'hiver -1 h *)
THEN
%MW0:=0;
%MW1:=16#0200;
%MW2:=%SW52;
%MW3:=%SW53;
WRTC(%MW0:4);
END_IF;
==== SUR PL7-PRO UNITY =================
(* MISE A L'HEURE D'ETE Le dernier dimanche du mois de Mars à 2h du matin *)
(*Si mois de Mars*)
IF(%SW52 AND 16#FF00)=16#0300
(*Si 2 h du mat*)
AND %SW51=16#0200
(*Si Dimanche*)
AND %SW49=7
(* Si c’est le dernier Dimanche du mois *)
AND BCD_TO_INT(%SW52 AND 16#00FF)+7>31
(* Mise à l'heure d'été + 1h *)
THEN
TAB_CHGT_HEURE[0]:=%SW50;
TAB_CHGT_HEURE[1]:=16#0300;
TAB_CHGT_HEURE[2]:=%SW52;
TAB_CHGT_HEURE[3]:=%SW53;
DATE_TIME:=ARINT_TO_DT(TAB_CHGT_HEURE);
WRTC_DT(DATE_TIME);
END_IF;
(* MISE A L'HEURE D'HIVER Le dernier dimanche du mois de Octobre à 3h du matin *)
(*Si mois de Octobre*)
IF(%SW52 AND 16#FF00)=16#1000
(*Si 3 h du mat*)
AND %SW51=16#0300
(*Si Dimanche*)
AND %SW49=7
(* Si c’est le dernier Dimanche du mois *)
AND BCD_TO_INT(%SW52 AND 16#00FF)+7>31
(* Mise à l'heure d'hiver -1h *)
THEN
TAB_CHGT_HEURE[0]:=%SW50;
TAB_CHGT_HEURE[1]:=16#0200;
TAB_CHGT_HEURE[2]:=%SW52;
TAB_CHGT_HEURE[3]:=%SW53;
DATE_TIME:=ARINT_TO_DT(TAB_CHGT_HEURE);
WRTC_DT(DATE_TIME);
END_IF;