Autor Thema: Holiday Array  (Gelesen 23396 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

thomas223

  • Gast
Holiday Array
« am: 16. November 2011, 15:41:44 »
Hallo erstmal!

Ich bin Neeu hier und versuche zurzeit eine Wochenschaltuhr in CoDeSys zu Programmieren!
Dafür ist die Basic Lib sehr hilfreich!
Doch mit der Holliday Funktion habe ich so miene anfänger problemchen, denn ich bekomme es einfach nicht hin den Array zu  Deklarieren!??
Oder ist dieser schon vor deklariert (z.B. als Vareable) zu finden???


Thomas

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: Holiday Array
« Antwort #1 am: 16. November 2011, 17:26:36 »
das holiday array musst du selber mit daten füllen

schau mal hier !

http://www.oscat.de/community/index.php/topic,1605.msg8386.html#msg8386

beispieldaten findest du in der oscat dokumenation

thomas223

  • Gast
Re: Holiday Array
« Antwort #2 am: 16. November 2011, 21:18:18 »
Ich weiß einfach nicht wie ich. Die Daten in das Array bekomme! Es hört sich so an als wurde man einfach eine Tabelle füllen? Oder muss ich jedes Array Fragment einzeln beschreiben?

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: Holiday Array
« Antwort #3 am: 16. November 2011, 22:26:14 »
ich empfehle dir den link anzuklicken, und dir das sample.png bild anzusehen
dort sieht man ganz klar bei der variablendeklaration wie das geht....

thomas223

  • Gast
Re: Holiday Array
« Antwort #4 am: 17. November 2011, 07:54:25 »

Zum einen AHA!!!

Aber zum anderen entteuschung!!!



[gelöscht durch Administrator]

thomas223

  • Gast
Re: Holiday Array
« Antwort #5 am: 17. November 2011, 09:56:14 »
Habe noch heraus gefunden das die Deklaration in 3.4 in eckigen klammern geschrieben wird!
nun genen zumindest die festen Tage!
Doch leider funktioniert die Oster fonktion bei mir noch nicht! selbst wenn ich ihn Ostersonntag vorgebe gibt er mir diesen nicht als Feiertag aus!

Offline annD

  • Newbie
  • *
  • Beiträge: 46
    • Profil anzeigen
Re: Holiday Array
« Antwort #6 am: 28. Mai 2015, 16:50:45 »
Hallo thomas223,
hast du inzwischen herausgefunden, was der Fehler war? Ich als Anfänger habe nämlich dieselben Fehlermeldungen und komme nicht so richtig dahinter.
Schöne Grüße,
annD

Offline annD

  • Newbie
  • *
  • Beiträge: 46
    • Profil anzeigen
Re: Holiday Array
« Antwort #7 am: 05. Juni 2015, 21:06:02 »
Hallo zusammen,

bei mir lag es an den Deklarationen, die unter Codesys 3.5 etwas anders lauten müssen als in der Doku. z.B.:

XCAL: OSCAT_BASIC.CALENDAR:=(OFFSET:=60,DST_EN:=TRUE,LANGUAGE:=2,LONGITUDE:=xxx,LATITUDE:=xxx);

und

Feiertage: ARRAY[0..29] OF OSCAT_BASIC.HOLIDAY_DATA :=
      [(name := 'Neujahr', day := 1, month := 1, use := 1)];

Lg annD

Offline multilul

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
    • E-Mail
Re: Holiday Array
« Antwort #8 am: 09. Dezember 2017, 20:53:55 »
Bei Mir gelingt es nicht dass Holiday Type richtig zu kriegen.
Weiss Jemand was hier Falsch geht?





[gelöscht durch Administrator]

Offline mattsches

  • Sr. Member
  • ****
  • Beiträge: 268
    • Profil anzeigen
Re: Holiday Array
« Antwort #9 am: 11. Dezember 2017, 12:44:26 »
Hast Du es schonmal ohne Namensraum probiert? Also

Feiertage: ARRAY [0..29] OF HOLIDAY_DATA (...)
?

Falls das auch nicht geht, wirst Du die Deklaration von XCAL im CALENDAR_CALC ändern müssen auf

XCAL: OSCAT_BASIC.CALENDAR:=(OFFSET:=60,DST_EN:=TRUE,LANGUAGE:=2,LONGITUDE:=xxx,LATITUDE:=xxx);
Siehe Post von annD oben.

Offline multilul

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
    • E-Mail
Re: Holiday Array
« Antwort #10 am: 11. Dezember 2017, 19:48:44 »
Danke!

XCAL: OSCAT_BASIC.CALENDAR:=(LATITUDE:=52.292809, LONGITUDE:=7.768562, OFFSET:=60);Andert die Variable Name von "Calendar" in "XCAL"?

Leider hat es noch nicht geklappt  ???


[gelöscht durch Administrator]

Offline mattsches

  • Sr. Member
  • ****
  • Beiträge: 268
    • Profil anzeigen
Re: Holiday Array
« Antwort #11 am: 11. Dezember 2017, 23:00:14 »
Sorry, war ein Versehen meinerseits. Ich hatte gedacht, annD hätte den Baustein in der Bibliothek modifiziert. Nach allem, was ich lese, müsste es aber auch so gehen.

Ich habe hier gerade keine V3-Installation greifbar. Mal sehen, vielleicht schaffe ich es morgen tagsüber, das Ganze mal nachzustellen.

Offline mattsches

  • Sr. Member
  • ****
  • Beiträge: 268
    • Profil anzeigen
Re: Holiday Array
« Antwort #12 am: 12. Dezember 2017, 08:29:13 »
Da scheint was mit deiner Bibliothek nicht zu stimmen. Wo hast du die denn her? Ich habe die 3.3.1 von der OSCAT-Webseite installiert, damit kann ich deinen ursprünglichen Code (fast) ohne Fehler bauen. Denn der Namespace ist standardmäßig "BASIC", bei dir aber "OSCAT_BASIC" (hast du das bewusst geändert?). Ändere ich ihn im Bibliotheksverwalter, habe ich keine Fehler beim Übersetzen. Auch ohne Namensräume funktioniert alles ohne Probleme.

Vorschlag: Wirf die Bibliothek aus dem Repo, lade sie nochmal von der Webseite herunter und installiere sie bei dir. Die ganzen Deklarationen können dann auch ohne Namensraum erfolgen, solange dein Projekt nicht so groß ist, dass dadurch Konflikte entstehen (zweite Bibliothek im Projekt, die z. B. ebenfalls einen Datentyp "HOLIDAY_DATA" enthält).

Offline multilul

  • Newbie
  • *
  • Beiträge: 3
    • Profil anzeigen
    • E-Mail
Re: Holiday Array
« Antwort #13 am: 12. Dezember 2017, 17:46:50 »
Die *.package Files hatte Ich vom CodeSys website.
Die habe Ich entfernt und danach die oscat_basic_331_codesys3.library vom Oscat website installiert.

Jetzt compiliert es ohne Fehler! Vielen Dank!



[gelöscht durch Administrator]

Offline Marvelous

  • Newbie
  • *
  • Beiträge: 6
    • Profil anzeigen
    • E-Mail
Re: Holiday Array
« Antwort #14 am: 09. August 2018, 18:32:29 »
Mahlzeit zusammen,

ich schreibe mal hier in diesem Thema in der Hoffnung, dass mir jemand weiter helfen kann.

Ich habe folgendes Problem, gestern am 08.08.2018 wurde mir der Feiertag Christi Himmelfahrt an meine Steuerung angezeigt.
Da Christi Himmelfahrt 39 Tage nach Ostersonntag ist habe ich test weise den 30.06.18 mal als fixes Datum eingegeben.
Und siehe da... es wird mir der Ostersonntag angezeigt.

Die Funktion Easter zeigt mir jedoch den 1.4.18 an.

Kann mir jemand weiter helfen?

Vielen Dank im Voraus
iDay := 0;
Holidays[iDay].name := 'Neujahr';
Holidays[iDay].DAY := 1;
Holidays[iDay].month := 1;
Holidays[iDay].use := 1;
iDay := iDay + 1;
Holidays[iDay].name := 'Heilig Drei Könige';
Holidays[iDay].day := 6;
Holidays[iDay].month := 1;
Holidays[iDay].use := 1;
iDay := iDay + 1;
Holidays[iDay].name := 'Karfreitag';
Holidays[iDay].day := -2;
Holidays[iDay].month := 0;
Holidays[iDay].use := 1;
iDay := iDay + 1;
Holidays[iDay].name := 'Ostersonntag';
Holidays[iDay].day := 0;
Holidays[iDay].month := 0;
Holidays[iDay].use := 1;
 

[gelöscht durch Administrator]