Fehler im TIMER_P4

Begonnen von Tom, 07. Dezember 2010, 12:51:06

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 4 Gäste betrachten dieses Thema.

Tom

Hallo,

ich hatte letztens in einem anderen Thread gepostet http://www.oscat.de/community/index.php/topic,1030.15.html und bin nicht sicher, ob das Problem untergegangen ist. Der TIMER_P4 scheint nicht richtig zu funktionieren, wenn mehrere Ereignisse pro Kanal definiert sind. Kann das jemand bestätigen?

NetFritz

Hallo
Ich habe jetzt festgestellt wenn ich das Array so erstelle:
PRGN : ARRAY[0..63] OF TIMER_EVENT := (TYP := 1, CHANNEL := 0, DAY := 1, START := TOD#22:00,DURATION := T#8h, LAND:=1,LAST:=1),
                                                                  (TYP := 1, CHANNEL := 1, DAY := 1, START := TOD#20:00,DURATION := T#2h, LAND:=1,LAST:=1) ,
                                                                  (TYP := 1, CHANNEL := 2, DAY := 1, START := TOD#10:30,DURATION := T#2h, LAND:=1,LAST:=1) ;

dann wird CHANNEL0 nur von 22:00 bis 00:00 eingeschaltet.
Ist das ein Fehler oder muss bei DAY was anderes stehen?
Gruß NetFritz

Tom

Ich hab grad noch mal in den Baustein reingeschaut. Da dort mit TOD gearbeitet wird, sind tagesübergreifende Zeiten ein Problem. Z.B. 23:00 + 8 h ergibt TOD#31:00. Klingt komisch, ist aber so. Damit kann das nicht funktionieren. Ab 00:00 wird der Ausgang false, da 00:00 nicht zwischen 23:00 und 31:00 liegt. Das Problem hatte ich bei meiner Schaltuhr auch und hab die interne Berechnung auf DT umgstellt.

Das kommt zu dem Problem bei mehreren Ereignissen pro Kanal hinzu.

NetFritz

Hallo
Schon was neues vom TIMER_P4 ?
Ich glaube hugo hat den TIMER_P4 erstellt.
Gruß NetFritz

hugo

wir werden das in der nächsten release berücksichtigen

NetFritz

#5
Hallo

Ich habe meine oscat320.lib auf oscat_basic_333.lib aktualisiert
und die oscat_building_100.lib installiert .
Ich war überrascht das es fast reibungslos funktioniert.
2 Probleme habe ich aber noch und keine Lösung gefunden.
1. TIMER_P4
Fehler 3760 SCHALTUHR(3) Fehlerhafter Initalwert.
   PRGN : ARRAY[0..63] OF TIMER_EVENT := (TYP := 1, CHANNEL := 0, DAY := 1, START := TOD#04:00,DURATION := T#2h, LAND:=1,LAST:=1),
                                                                                      (TYP := 1, CHANNEL := 1, DAY := 1, START := TOD#20:00,DURATION := T#2h, LAND:=1,LAST:=1) ;

2.
Fehler 3760 GLOBALE VARIABLEN(29) Fehlerhafter Initalwert.
   ldt: CALENDAR:=(OFFSET:=60,DST_EN:=TRUE,LOCATION:=1,LONGITUDE:=9.123,LATITUDE:=52.55);

Wie kann ich diese Fehler abstellen?

Gruß NetFritz


peewit

hast du eventuell auch deine programmiersoftware aktualisiert ?

ohne deine programmierumgebung zu haben ist es schwierig das problem ein zugrenzen

vergleiche doch mal den baustein timer_p4 der neue lib mit der alten lib

am besten einen text-export machen und vergleichen
vermutlich hat sich hier etwas bei der variablen-deklaration verändert

NetFritz

Hallo

Ich habe in einem neu aufgesetzten Win8.1-Pro 64Bit
von Wago Codesys 2.3.9.42 installiert und dabei auch neue libs von Wago und oscat installiert.

Ich hatte das auch schon mal Fehlerfrei am laufen, leider habe ich dann das wohl nicht gespeichert
als ich Codesys beendet habe.

Gruß NetFritz

NetFritz

Hallo
Den TIMER_P4 habe ich sauber.

Ich komme aber nicht weiter mit :
Fehler 3760 GLOBALE VARIABLEN(29) Fehlerhafter Initalwert.
   ldt: CALENDAR:=(OFFSET:=60,DST_EN:=TRUE,LOCATION:=1,LONGITUDE:=9.123,LATITUDE:=52.55);

Das muss doch richtig sein?
Was kann ich machen?

Gruß NetFritz

peewit

nimm dich mal die initialwerte einzeln raus
irgendwann wirds gehen, dann ist klar welcher parameter das problem macht

NetFritz

Hallo

Heute habe ich gesehen, das am Baustein "CALENDAR_CALC" die Variable "ldt" auf den neuen Eingang H gelegt ist. ???
Nach Änderung auf "XCAL" aber keine Änderung in der Fehlermeldung.
Werde deinen Ratschlag mal befolgen.

Gruß NetFritz

NetFritz

Hallo
Mit Fehlermeldung : " ldt: CALENDAR:=(OFFSET:=60,DST_EN:=TRUE,LOCATION:=1,LONGITUDE:=9.123,LATITUDE:=52.55);"
ohne Fehlermeldg : " ldt: CALENDAR:=(OFFSET:=60,DST_EN:=TRUE,LONGITUDE:=9.123,LATITUDE:=52.55);
LOCATION mag er nicht.
Gruß NetFritz

peewit

überprüfe mal in deiner osacat basic ob deine datentype genau so aussieht

TYPE CALENDAR :
STRUCT
UTC : DT; (* world time UTC *)
LDT : DT; (* local time *)
LDATE : DATE; (* local date *)
LTOD : TOD; (* local time of day *)
YEAR : INT; (* year of LDATE *)
MONTH : INT; (* month of LDATE *)
DAY : INT; (* day of LDATE *)
WEEKDAY : INT; (* weekday of LDATE *)
OFFSET : INT; (* Time Zone Offset for Local time in minutes *)
DST_EN : BOOL; (* daylight savings time enable *)
DST_ON : BOOL; (* true when daylight savings time os on *)
NAME : STRING(5); (* name of time zone *)
LANGUAGE : INT; (* location number pls see location setup *)
LONGITUDE : REAL; (* longitude of current location *)
LATITUDE : REAL; (* latitude of current location *)
SUN_RISE : TOD; (* sun_rise for current location *)
SUN_SET : TOD; (* sun_set for current location *)
SUN_MIDDAY : TOD; (* worldtime when sun stands at south position *)
SUN_HEIGTH : REAL ; (* suns heigth at midday, south position *)
SUN_HOR : REAL; (* sun angle horizontal 0 = north in degrees *)
SUN_VER : REAL; (* sun angle vertical above horizon in degrees *)
NIGHT : BOOL; (* true between sun_set and sun_rise *)
HOLIDAY : BOOL; (* true when holiday *)
HOLY_NAME : STRING(30); (* name of holiday *)
WORK_WEEK : INT; (* current work week *)
END_STRUCT
END_TYPE


wenn ja dann tippe ich eher auf ein ganz anderes problem

du kannst ja mal ein ganz neues projekt machen und nur die calendar datenstruktur importieren
und dann versuche nur die eine codezeile zu integrieren

was passiert dann ....

NetFritz

Hallo

Habe die Struktur verglichen.
Meine ist genauso.

Wenn ich ein neues Projekt erstelle und nur die oscat_basic_333.lib importiere habe ich die gleiche Fehlermeldung.
ldt: CALENDAR:=(OFFSET:=60,DST_EN:=TRUE,LOCATION:=1,LONGITUDE:=9.123,LATITUDE:=52.55);

Nehme ich Location;=1 raus läuft es ohne Fehlermeldung durch.

Ich habe nochmal in meinen alten Projekt nachgesehen da ist LOCATION:=1 drin.

Gruß NetFritz

peewit

nicht die ganze basic lib importieren sondern nur die datenstruktur....

es kann sein das die groesse der bibliothek das eigentliche problem ist, und deine fehlermeldung nur ein seiteneffekt ist
und in wirklichkeit kein direkter fehler ist.