Scheduler Array nach eigenen Wünschen benennen

Lex

Level-1
Beiträge
115
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo alle zusammen,

ich hoffe mir kann jemand bei einem kleinem Problem, wenn dies umzusetzen ist, helfen.

Ich würde gerne das fest definierte Array welches sich beim Programmieren des Funktionsbausteins "FbScheduler" erstellt, nach meinen Wünschen benennen.
Damit meine ich, wenn ich die erste Zeile per erstellte Visu von Scheduler (zInternal_TableSchedulerWeekly) auf meine Gewünschte Zeit einstelle, damit z.B. die Brunnenpumpe jeden Tag um 08:00 Uhr angeht und um 09:00 Uhr ausgeht, eine "1" als Zeilenbenennung entsteht.
Jetzt weiß jedoch niemand was bei einer umstellen der Zeit gesteuert wird.
Anstelle der "1" würde ich jedoch gerne die Benennung des zu steuernden Objekts drine stehen haben. In diesem Fall wäre das "Brunnenpumpe".
Der Programmcode der bei mir im Programm hinterlegt ist um ein TRUE Signal für die "erst erstellte Zeiteinstellung" ausgibt, ist wie folgt:

Schedule.typScheduler.aScheduleWeekly[1].xActivate

Hierzu müsste man die [1] nun so definieren, dass diese als Brunnenpumpe deklariert wird.
Leider weiß ich nicht wie dies funktioniert.

P.S.: Dies soll Analog für weitere Arrayfelder umgesetzt werden.
Denke es könnte am Schluss so in der Art aussehen:

Schedule.typScheduler.aScheduleWeekly[1].xActivate := Brunnenpumpe;
Schedule.typScheduler.aScheduleWeekly[2].xActivate := Brunnenlicht;
Schedule.typScheduler.aScheduleWeekly[3].xActivate := Brunnenpumpe_2;
usw.



Gruß
Lex
 
Hi,

schau mal ob du das so gemeint hattest:

Man deklariert sich ein Enum und weißt dem Namen den entsprechenden Wert zu.
TYPE enumWeekly :
(
Brunnenpumpe:=1,
Brunnenlicht:=2
);
END_TYPE

verwenden kann man es dann so:
MyScheduler.ScheduleWeekly[Brunnenlicht].Active:=1;

Was die Visu angeht, kann es aber sein, dass du die dann noch anpassen musst. Probier's doch einfach mal aus!
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank deepblue!

Nur ist aufgrund deiner Antwort eine weitere Frage entstanden. Da ich alles per CFC programmiere, weist ich nicht genau wie ich deinen Structur Text in mein CFC Programm einbinde? Muss ich hierfür eine Methode oder Aktion mit meinem Programm verknüpfen?
Hoffe es ist verständlich was ich damit meine.

Gruß Lex
 
Hi Lex,

dass was ich oben angelegt habe ist kein Programm. Das ist ein Enum. Dieses kann man unter dem Zweiten Register Datentypen anlegen.

in CFC würde man dann die Variable 'MyScheduler.ScheduleWeekly[Brunnenlicht].Active' verwenden.

Gruß
 
Hallo deepblue,

also ich habe es mal mit dem "Enum" ausprobiert jedoch leider ohne Erfolg. Habe auch versucht im Internet einiges dazu herauszufinden, jedoch ist dazu sehr wenig aufzufinden oder in anderen Programmiersprachen etwas vorhanden was mich nicht weiter bringt.
Im unterem Bild siehst du wie ich den Code in mein Programm eingepflegt habe (abgesehen von der Ausdeklaration). Durch das von dir erstellte ENUM entsteht, dass alle Schedule Bausteine nicht mehr richtig deklariert sind und es zu einer Vielzahl an Fehlern im Programm kommt.
Wie bestimmte ich durch das enum welchen Baustein ich von den Zahlen ([1], [2]... in Wörter) umbenenne möchte?

Schedule.jpg

In meinem Fall würde ich gerne ein ENUM für "FbScheduleWeekly_1" und eins für "FbMultipleScheduleWeekly_0" haben.
Zusätzlich denke ich das noch etwas falsch zum ENUM von mir Verstanden wurde.
Hoffe du erkennst den Fehler.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein ENUM wird nicht innerhalb eines FBs deklariert, sondern man legt einen UDT von Tip ENUM an.
Ups, hatte übersehen, das es um WAGO geht, da kann es etwas anders laufen.

Von irgendwas mit Internetzugang gesendet
 
Zuletzt bearbeitet:
Zurück
Oben