-> Hier kostenlos registrieren
Hallo erst mal,
ich hab ein kleines Problem, und weiß nicht genau woranes liegt.
Ich will über WinCC Start und Stoppzeiten für eine Anlage einstellen,
da WinCC mit dem Format TOD nicht zurechtkommt, hab ich mir einen
Baustein gemacht, der mir einerseits das Format
TOD zerlegt in Stunden (INT) Minuten (INT) und Sekunden (INT).
EIN_h := DINT_TO_INT(TOD_TO_DINT(EIN_IST)/1000/60/60);
EIN_m:= DINT_TO_INT((TOD_TO_DINT(EIN_IST) - INT_TO_DINT(EIN_h)*1000*60*60)/1000/60);
EIN_s := DINT_TO_INT((TOD_TO_DINT(EIN_IST) - INT_TO_DINT(EIN_h)*1000*60*60 - INT_TO_DINT(EIN_m)*1000*60)/1000);
Weiters baue ich mir aus
Stunden (INT), Minuten (INT) und Sekunden (INT) eine Zeit TOD
EIN_SOLL := DINT_TO_TOD(EIN_h_s*3600000 + EIN_m_s*60000 + EIN_s_s*1000);
Irgendwie funktioniert meine Umwandlung zum TOD nicht richtig,
wenn ich z.B.: 23h 59m 59s eingebe, so bekomme ich
23:58:53 zurück?
Hat jemand eine Idee, wo mein Problem liegt.
Danke Euch.
LG
ich hab ein kleines Problem, und weiß nicht genau woranes liegt.
Ich will über WinCC Start und Stoppzeiten für eine Anlage einstellen,
da WinCC mit dem Format TOD nicht zurechtkommt, hab ich mir einen
Baustein gemacht, der mir einerseits das Format
TOD zerlegt in Stunden (INT) Minuten (INT) und Sekunden (INT).
EIN_h := DINT_TO_INT(TOD_TO_DINT(EIN_IST)/1000/60/60);
EIN_m:= DINT_TO_INT((TOD_TO_DINT(EIN_IST) - INT_TO_DINT(EIN_h)*1000*60*60)/1000/60);
EIN_s := DINT_TO_INT((TOD_TO_DINT(EIN_IST) - INT_TO_DINT(EIN_h)*1000*60*60 - INT_TO_DINT(EIN_m)*1000*60)/1000);
Weiters baue ich mir aus
Stunden (INT), Minuten (INT) und Sekunden (INT) eine Zeit TOD
EIN_SOLL := DINT_TO_TOD(EIN_h_s*3600000 + EIN_m_s*60000 + EIN_s_s*1000);
Irgendwie funktioniert meine Umwandlung zum TOD nicht richtig,
wenn ich z.B.: 23h 59m 59s eingebe, so bekomme ich
23:58:53 zurück?
Hat jemand eine Idee, wo mein Problem liegt.
Danke Euch.
LG