Zeitschaltuhr für Tor und Schranke programmieren

Begonnen von tuerker, 08. November 2010, 15:45:11

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

tuerker

Warum bekommt man eigentlich in diesem Forum so selten Antworten auf Fragen.


Daher probiere ich es hier nochmal.

Ich benutze jetzt den Timer_2 für meine Aufgabe und will eine Visu dazu erstellen.

Wie kann ich die Timer_2 Eingänge wie Start,Duration,Mode in einer Visu ansprechen, es sind ja keine Globalen Variablen.

Und zuletzt, wie kann ich auch noch die Feiertage des Holiday Bausteins in einer Visu für meine Bedürfnisse ändern und drauf zugreifen.?

Danke.





peewit

hallo

Ich benutze jetzt den Timer_2 für meine Aufgabe und will eine Visu dazu erstellen.

Wie kann ich die Timer_2 Eingänge wie Start,Duration,Mode in einer Visu ansprechen, es sind ja keine Globalen Variablen.

die eingänge vom baustein timer_2 kannst du ja mit variablen deiner wahl belegen, lokal, global

Und zuletzt, wie kann ich auch noch die Feiertage des Holiday Bausteins in einer Visu für meine Bedürfnisse ändern und drauf zugreifen.?

die feiertage sind unter datentypen bei "constants_location" definiert und können dort angepasst bzw erweitert werden

tuerker

Hallo peewit,

die Feiertage habe ich unter Datentypen angepasst, nur wollte ich auch über eine Visu/WebVisu die Feiertagseinträge ändern können. Weiß nicht wie das zu machen ist.

Die Timer_2 Eingänge habe ich lokal eingetragen und so läuft es auch prima, habe aber 5 Timer_2 Bausteine. Wie kann ich die Eingänge Global anlegen und dann in CodeSys Visu als Variable
einfügen.
Ich sitze zurzeit auf dem Schlauch und kann nicht richtig denken. :(

Danke nochmal.




[gelöscht durch Administrator]

peewit

#18
warum willst du die feiertage über web editieren , die sollten doch immer gültig sein


die daten sind aber in einem mehrdimensionalen array abgelegt, somit wird es etwas komplizierter lesend mit visu darauf zu zugreifen
das feiertags datenarray ist als constante definiert somit kannst du sie zur laufzeit auch nicht ändern


ich kenne deine visu nicht und auch nicht die technischen möglichkeiten, aber das ist eher sehr kompliziert was du vorhast

--------------------

globale variablen:
unter ressourcen - globale variablen kannst du diese anlegen
in den bausteinen musst du diese nicht extra deklarieren, denn eine variable die lokal nicht bekannt ist, wird automatisch als globale angesehen


tuerker

Danke.

Ok, hatte gedacht man könnte eventuell die Feiertage in einer Visu aktivieren oder deaktivieren. Wäre halt schön anzusehen und praktisch halt.
Dann passe ich halt die Feiertage unter Datentypen an und fertig.

Unter Ressourcen klar, habe nun das Problem das es 5 Timer sind.
Werde es versuchen richtig zu deklarieren und das für jedes Baustein. Melde mich wenn sich was ergibt.

Danke nochmal.

Tom

#20
Ich hab mal dein Programm mit dem Timer_P4 auf TwinCat umgerubelt und es scheint tatsächlich ein Problem mit dem TIMER_P4 zu geben. Wenn man mehrere Ereignisse pro Kanal definiert, ist nur das letzte relevant. Wenn ich mir die Programmierung des Bausteins anschaue, ist das auch logisch, da beim Durchlauf des Arrays der jeweilige Kanal immer wieder überschrieben wird. Für den jeweiligen Kanal müsste eine ODER-Verknüpfung mit sich selbst programmiert werden, um den vorherigen Zustand zu berücksichtigen.

Lösung wäre z.B. vor der Schleife alle Ausgänge rücksetzen

ELSIF dtime <> last_execute THEN
(* prepare the logical input mask to be used later *)
qn[0] := FALSE;
qn[1] := FALSE;
qn[2] := FALSE;
qn[3] := FALSE;
mask := 255;
mask.0 := L0;
mask.1 := L1;
mask.2 := L2;


und dann


43: (* event on workdays Mo-FR and no holiday *)
qn[channel] := qn[channel] OR (DT_TO_TOD(dtime) >= event.START) AND (DT_TO_TOD(dtime) < event.START + event.DURATION) AND (NOT Holy) AND (DAY_OF_WEEK(DT_TO_DATE(dtime)) < 6);
prog[pos].LAST := current_day;


Muss natürlich für jeden Event-Typ gemacht werden.


tuerker

Hallo Tom,

da es mit dem Timer_4 nicht richtig funktioniert hatte, bin ich auf den Timer_2 umgestiegen.
Mit dem Timer_2 klappt alles soweit,  nur Visu mit dem Timer_2 klappt nicht. Weil ich 5 Timer habe, weiß ich nicht
wie ich die Eingänge aus einer Visu ändern kann.

:)Danke für deine Hilfe, schaue mir dein Programm mal an.

Gruß

Tom

Ich glaube, du hast da was falsch verstanden. Der Timer_P4 ist fehlerhaft, der Code ist ein Teil vom TIMER_P4 intern und für die Leute von OSCAT gedacht.

tuerker

Ok, habs verstanden.
Dann sollen die vom Oscat Team mal sich den Timer anschauen.

Gruß