ich benutze die EasyControl ECP4 von Moeller die mit CoDeSys programmiert wird.
Ich habe die Funktion set_DT eingebunden doch leider verrechnet sich die Steuerung irgendwie.(siehe Anhang)
Woran kann das liegen?
kannst du uns noch mehr inputs liefern?
welche version der oscat lib benutzt du?
bekommst du dasselbe ergebnis in der simulation?
schreibt eine andere routine noch auf die gleiche variable?
kannst du uns eventuell das projekt senden dann koennen wir es sicher nachvolluziehen.
Ich benutze die oscat.lib 2.2, die CoDeSys 2.3.5.8, in der Simulation ist die Berechnung immer o.k.
Desweiteren habe ich festgestellt, daß die Berechnung auch in der Steuerung o.k. ist solange wie die Stunden der Uhrzeit nicht zweistellig werden. Also ab 10 Uhr rechnet´s nichtmehr richtig.
Jetzt funktioniert es auch mit der ECP4 von Moeller.
Der Grund lag in einer Wertebereichsüberschreitung für den Typ INT bei dieser Steuerung: INT = -32768 bis 32767
hour = 9 d.h. 9 * 3600 = 32400 ist noch im Wertebereich von INT
hour = 10 d.h. 10 * 3600 = 36000 ist nicht mehr im Wertebereich von INT
Scheinbar wird bei der Steuerung irgendwie anders gerechnet ??? ??? ??? .
danke das werden wir in der nächsten release aufnehmen.
wenn dir bei möller noch weitere dinge auffallen nehmen wir dies gerne mit auf.
leiner haben wir keine möller zum testen bei uns
des Weiteren mußte ich bei Verwendung der oscat.lib mit der ECP4 von Moeller die Funktion Ltime_to_UTC löschen, da sonst CoDeSys abgestürzt ist. Habe die Funktion nun geändert damits funktioniert:
FUNCTION Ltime_to_UTC : DT
VAR_INPUT
Ltime : DT;
DST : BOOL;
Time_Zone_Offset : TIME;
END_VAR
VAR
DST_Differenz: TIME :=T#1h;
END_VAR
IF DST THEN Ltime_to_UTC := Ltime - Time_Zone_Offset - DST_Differenz; ELSE Ltime_to_UTC := Ltime -
Time_Zone_Offset; END_IF;
sobald ich in der ST-Anweisung direkt mit T#1h gearbeitet habe wollte es nicht, aber wenn ich es deklariere als Variable funktionierts.
danke das sollte zwar so gehen, und wir benutzen häufig literal constants aber wir ändern das natürlich.
vielen dank, solche hinweise sind für uns sehr wichtig und tragen dazu bei das oscat eine wirklich plattformunabhängige lib wird