OSCAT Forum

Home Automation => SPS-Programmierung => Thema gestartet von: tuerker am 08. November 2010, 15:45:11

Titel: Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 08. November 2010, 15:45:11
Hallo, da ich Anfänger bin und gerage Praktikum mache hatte ich gedacht ich könnte mal hier um Rat fragen.
Mit einer SPS XV100 soll ich die Schiebetor und Schranke über eine in der SPS programmierte Schaltuhr zw. Mo-Fr öffnen und schliessen und Sa-So schliessen, da könnte doch eine Wochentimer helfen.
Außerdem soll an Feiertagen das Schiebetor zu sein, d.h dann eventuell eine Jahrestimer erstellen.
Wie könnte ich sowas erstellen, hat vielleicht einer eine Beipiel dafür.

Vielen Dank schon mal.
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: martin.k am 08. November 2010, 22:40:04
Hi,

da Du schon auf oscat.de bist, schau Dir mal die Bausteine an...
Damit kannst Du alles zusammenbauen was Du brauchst.
Einen Profi wird für Deine Aufgabe vielleicht nur 15 minuten brauchen, also... versuchs mal...

Grüße
Martin

PS: Bin selbst kein Profi ;-)
PSS: Bausteine: CALENDAR_CALC, TIMECHECK, TIMER_* (Diverse)
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 11. November 2010, 19:11:12
Hi,

danke, werde es mal mit den Bibliotheken probieren.

Gruß
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: martin.k am 11. November 2010, 23:14:49
Dann mal viel Erfolg und nicht zögern hier zu Fragen wenn was unklar ist.
Gruß
Martin
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 15. November 2010, 16:37:24
Hallo,
ich wollte die Zeitschaltuhr jetzt mit dem TIMER_4 der Oscat lib in CFC erstellen, wie kann ich dabei den Prog Eingang mit TIMER_EVENT programmieren.
Ich weiß nicht wie und wo ich die Vorgaben in die Struktur reinschreiben soll.
Über ein Rat würde ich  mich freuen.

Danke.
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: NetFritz am 16. November 2010, 19:05:36
Hallo
Ich habe Deklarationsteil folgendes für eine 3Kanal Tagesschaltuhr stehen.
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) ;
Der PROG Eingang von TIMER_P4 ist mit der Variable PRGN belegt.
Gruß NetFritz
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 17. November 2010, 10:23:53
Hallo NetFritz,

danke erstmal soweit ist mir das jetzt klar mit der Dekleration, nur noch eine Frage.
Ich will mit dem Ausgang Q0 eine Schranke steuern d.h. Channel=0, die um 6:00Uhr an den Werktagen für 4 Std aufmacht und um 18:00Uhr für 2Std.


Ist die folgende Dekleration dann korrekt.

PRGN : ARRAY[0..63] OF TIMER_EVENT := (TYP := 43, CHANNEL := 0, DAY := 5, START := TOD#6:00,DURATION := T#4h,0,0,0,TYP := 43, CHANNEL := 0, DAY := 5, START := TOD#18:00,DURATION := T#2h,0,0,Last:=1);

Später werde ich dann an Ausgang Q1 eine Schiebetor steuern. Wie wird das im TIMER_EVENT deklariert, damit für das Ereigniss auch Ausgang Q1 angesprochen wird.

Vielen Dank im Voraus.

Gruß
tuerker



Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: NetFritz am 17. November 2010, 15:09:06
Hallo
Zitat
@tuerker
Ist die folgende Dekleration dann korrekt.
TYP:=43 ist richtig
DAY.=5 könnte entfallen
ob es mit LAND LOR LAST auch so geht ?.
Muss der 2 Teil nicht auch in Klammern stehen ?

Gruß NetFritz

Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 18. November 2010, 09:27:29
Danke erstmal.
Ich habe es noch nicht mit den Klammern ausprobiert, weil ich die Initialiserung der Struktur nicht ganz verstanden habe.
Ich will alle Schaltausgänge schalten, aber verstehe immer noch nicht wie ich die deklarieren soll.

Ist mein Gedanke so richtig: Channel=0 schaltet => Ausgang Q0 ( mit bis zu 4 Kanälen )
                                      Channel=1 schaltet => Ausgang Q1 usw.

Über eine Hilfe würde ich mich freuen.
Danke.

Gruß
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: NetFritz am 18. November 2010, 11:18:07
Hallo
Die Datenstruktur TIMER_EVENT ist etwas dürftig in der Beschreibung.
Zitat
@tuerker
Ist mein Gedanke so richtig: Channel=0 schaltet => Ausgang Q0 ( mit bis zu 4 Kanälen )
                                      Channel=1 schaltet => Ausgang Q1 usw.
1 TIMER_P4 kann 4 Kanäle schalten Q0,Q1,Q2 u. Q3.
Maximal 63 unabhängig programmierbaren Ereignisse. (Ist sicherlich durch das Array begrenzt.)
Es können dabei beliebig viele Ereignisse je Kanal und auch
überlappende Ereignisse Erzeugt werden.
Jedes Ereignis muss sicherlich einzeln im ARRAY[0..63] stehen.
In meinem Beispiel ist dann ARRAY[0..3] belegt.
Deshalb muss jedes Ereignis einen einzelnen ARRAY Eintrag haben.
Die einzelnen Einträge sind in Klammern zusammengefasst und durch Komma getrennt.
Gruß NetFritz
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 18. November 2010, 12:04:48
Hallo,

erstmal danke. Die Beschreibung ist wirklich dürftig, man kann es wahrscheinlich nur durch probieren verstehen.

Ich teste es mal ob ich es hinbekomme.

Melde mich dann wieder.

gruß
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 18. November 2010, 16:43:34
Hallo,

kann das so wie in dem Screenshot funktionieren, ich bekomms in der Simulaton auch nicht zum Laufen.
Ich will die Ausgänge Q0-Q3 des Timer_p4 entsprechend dem Bild belegen, aber bei dem Holiday FB weiß ich nicht wie ich Feiertage initalisieren soll.

Könntet ihr euch Bitte mal das Bild und Projekt mal anschauen und mir helfen, muss als Praktikant so eine Aufgabe lösen. Und hier bei mir versteht auch niemand was davon, kann also niemand
was fragen.
Auf tipps freue ich mich sehr.

Danke und Gruß

[gelöscht durch Administrator]
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 23. November 2010, 16:05:02
Hallo,

mit Timer_P4 und Timer_2 funktioniert soweit alles, mit viel ausprobieren hat es geklappt.

Kann mir bitte einer sagen wie man mittels Visu die Parameter der Bausteine wie start,duration oder Feiertage eingeben und ändern kann.
Habe als Target den MicroInnovation XV100 Panel.

Wäre euch sehr dankbar.

Grüße
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: NetFritz am 25. November 2010, 11:22:29
Hallo
Vielleicht kannst Du dein Projekt wen es läuft hier mal einstellen.
Gruß NetFritz
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 25. November 2010, 13:47:22
Hallo NetFritz,

so mein Timer_p4 läuft und kann 4 Kanäle schalten. Soweit so gut aber wenn ich jetzt mehrere Ereignisse pro Kanal eintrage funktioniert kein Ausgang
mehr. Ich weiß das ein Ereigniss nur einmal am Tag läuft, aber wenn ich neu downloade auf SPS gehts dann auch anschließend wieder.

1) An was kann es liegen, laut Doku sollen doch mehrere Erignisse pro Kanal möglich sein.
2) Wollte eine Visu erstellen um die Parameter wie Startzeit und Dauer pro Kanal einzugeben und Feiertage zu Aktivieren und hinzu zufügen, weiß aber nicht wie ich das machen soll.
    Dafür müssten die als Globale Variablen definiert werden. Muss man dann auf die Strukturinhalte zugreifen?

Habe ein TouchPanel XV102 und ein CANopen Gateway mit 8DI/8DO an der ich dann die 4 Ausgänge steuere.

Danke schon mal.

Gruß

[gelöscht durch Administrator]
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 29. November 2010, 11:57:33
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.




Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: peewit am 29. November 2010, 15:18:03
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
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 29. November 2010, 15:44:42
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]
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: peewit am 29. November 2010, 16:32:24
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

Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 29. November 2010, 16:48:58
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.
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: Tom am 29. November 2010, 17:58:08
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.

Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 29. November 2010, 20:46:00
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ß
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: Tom am 29. November 2010, 21:12:43
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.
Titel: Re:Zeitschaltuhr für Tor und Schranke programmieren
Beitrag von: tuerker am 29. November 2010, 21:19:59
Ok, habs verstanden.
Dann sollen die vom Oscat Team mal sich den Timer anschauen.

Gruß