Modifikation der Funktion HOLIDAY

Begonnen von Fussel0804, 13. Januar 2011, 21:37:55

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Fussel0804

Hallo,

Ich möchte in meiner Visualisierung gewisse Ereignisse anzeigen und dafür die Funktion HOLIDAY etwas zweckentfremden.

Den FB und den DB von Holiday kopieren und als z.B. Ereignis abspeichern.
In den EREIGNIS DB eine Reihe von Ereignissen eintragen.
Der EREIGNIS FB soll dann am aktuellen Tag das Tagesereignis und am Tag zuvor das morgige Ereignis ausgeben.
Pro Tag kommt nur ein Ereignis vor.

Das Bit Holiday benötige ich nicht, dafür aber Bit "EREIGNIS MORGEN" und Bit "EREIGNIS HEUTE"
Ebenso die beiden Strings "EREIGNIS MORGEN" und String "EREIGNIS HEUTE"
Die Eingänge Freitag, Samstag und Sonntag benötige ich ebenfalls nicht, ebenfalls nicht die Landesauswahl.
Auch die Berechnung von "OSTERN" wird dann ja nicht benötigt.


Das ganze hört sich zwar jetzt etwas viel an, aber vielleicht hat ja jemand die zündende Idee und kann das mal so eben auf dem "Nichts" schreiben.
Leider bin ich nicht fit genug, den Quellcode so zu modifizieren, dass es klappt.

Besten Dank bereits im voraus.

PS: Macht weiter so, die OSCAT.LIB ist spitze.

peewit

#1
hallo

ich hoffe ich habe deine wünsche richtig interpretiert !

habe versucht wie gewünscht "aus dem nichts" etwas zu programmieren

das wertet zumindest die ereignisse aus holiday aus, brauchst du denn noch andere , wenn ja, bitte beispiel, was du genau machen willst
entweder du passt dir selber in deiner oscat-version die holiday-tabelle an, oder wir machen wirklich einen custom_holiday der mit user-daten arbeitet
brauchst du denn überhaupt die definierten feiertage, oder hast du nur selbstgemachte ereignisse

das ist zumindest der erste schritt

siehe anhang


gruss peewit

------------------------
FUNCTION_BLOCK EVENT_OUTLOOK
VAR_INPUT
   DATE_IN : DATE;
   COUNTRY : INT;
END_VAR
VAR_OUTPUT
   TODAY : BOOL;
   TODAY_EVENT : STRING(30);
   TOMORROW : BOOL;
   TOMORROW_EVENT : STRING(30);
END_VAR
VAR
   HOLIDAY_1 : HOLIDAY;
   HOLIDAY_2 : HOLIDAY;
   last_date : DATE;
END_VAR

IF DATE_IN <> last_date THEN
      HOLIDAY_1(DATE_IN:=DATE_IN,COUNTRY:=COUNTRY , Y=>TODAY , NAME=>TODAY_EVENT);
      HOLIDAY_2(DATE_IN:=DATE_ADD(DATE_IN,1,0,0,0),COUNTRY:=COUNTRY , Y=>TOMORROW , NAME=>TOMORROW_EVENT);
   last_date := DATE_IN;
END_IF;



[gelöscht durch Administrator]

Fussel0804

Danke.

Du hast mich genau richtig verstanden.

Die Funktion Holiday werde ich weiterhin benutzen, jedoch als eigenständige Funktion.

Die 2. Ereignisserien nenne ich jetzt mal "CUSTOM_ACTIVITIES".

Ich nutze die OSCAT.LIB in meiner privaten Hausautomatisierung mit einem in der Wand eingelassenem Panel PC.
Darauf läuft meine Visualisierung.

In dieser "CUSTOM_ACTIVITIES will ich Ereignisse wie den aktuellen Müllkalender oder sonstige Tagesereignisse eintragen.
Ich weis, jetzt werden einige sagen, das kann man doch auch in einem Outlook oder so etwas realisieren.

Besten Dank schon mal.
Ich werde das ganze gleich heute abend testen.

Fussel0804

Könntest du mir bitte eine .lib datei hochladen, da ich unter Siemens-Step7 keinen SCL Editor habe.

Danke

peewit

hallo

ich arbeite nur auf codesys und pcworx/multiprog

vielleicht kann dir jemand anderer bezüglich step7 aushelfen.....

Fussel0804

Hallo an alle.

Wer kann mir den CODE in Step7 AWL umschreiben?

Besten Dank.

hugo

Hallo Leute
das nächste release der oscat wird einen neuen baustein EVENTS beinhalten der das gewünschte macht

Fussel0804

Danke euch allen.
Ihr seid echt spitze.

Gibt es schon einen voraussichtlicchhen Termin, wann das sein wird?

Gibt es schon was neues von 3.20 unter S7?

Gruß Fussel

hugo

die 3.21 soll innerhalb der nächsten 4 wochen erscheinen