Rollosteuerung mit Teachfunktion

settelma

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

ich erkläre mal mein Problem.
Ich realisier gerade eine Rollosteuerung ( 4 Rollos ) in nem Wintergarten mit einer S7 1212. Ich bedien das ganze über eine Fernbedienung ( Fernbedienbare Relaiskarte mit 8 Relais die auf die Eingänge der Steuerung führen) mit 8 Tasten.
Ich habe die Sache jetzt so programmiert das ich eine Betriebsartenauswahl über die Fernbedienungstasten 1-5 mache. Taste 1 ist jetzt z.B. eine Betriebsart bei der alle Rollos beim drücken der Taste 6 ( Start ) auf eine bestimmte Position fahren. Das gleiche gilt für BA 2-5.
Bei „Start“ fahren alle Rollos für eine eingestellte Zeit ganz hoch um die Referenz 0 zu haben. Dann fahren die einzelnen Rollos die eingestellten Zeiten ( Einstellbar am PC über MHJ Easy Show) auf Position. Danach wiederum fahren die einzelnen Rollos wieder einen eingestellten Wert hoch um eine bestimmte Lamellendrehung der Rollos zu erreichen.
Funktioniert soweit alles bestens. Jetzt mein Problem.
Ich würde die Position der Rollos gerne nicht nur am PC einstellen können wie es jetzt der Fall ist sondern würde die Position gerne Teachen.
Hab mir jetzt überlegt das ich die Positionsfahrt der Rollos über einen Vergleicher machen könnte. Immer wenn der Rollo fährt, läuft parallel ein Zähler mit der gleichzeitig am Taktmerker hängt. So hätte ich immer die Position der Rollos. Ich könnte jetzt also im „Handbetrieb“ die Rollos auf einen Wert fahren und mit einer Taste der Fernedienung den Wert in den DB der beispielsweise BA 1 schreiben. Und jetzt kommt endlich mein Problem. Wenn ich das so mache fährt der Rollo zwar auf die geteachte Position aber das mit der Lamellendrehung funktioniert nicht. Ich müsste es irgendwie hinbekommen das der Rollo zuerst weiter runterfährt als die geteachte Position fahren und dann wieder zurück auf die geteachte Position. Hab aber keine Ahnung wie ich das anstellen soll.

Vielleicht gibts ja noch ne ganz andere Möglichkeit.

Sorry für diesen Roman aber ich wollts nur so genau wie möglich erklären.

Ich hoffe das mit jemand helfen kann.

Gruß Markus
 
Hallo,

Wenn ich das so mache fährt der Rollo zwar auf die geteachte Position aber das mit der Lamellendrehung funktioniert nicht. Ich müsste es irgendwie hinbekommen das der Rollo zuerst weiter runterfährt als die geteachte Position fahren und dann wieder zurück auf die geteachte Position. Hab aber keine Ahnung wie ich das anstellen soll.

Geteachte Position + Offset nach unten ---> anfahren

100 (Teach) + 10 (Offset) = Fahre auf 110

Pos erreicht --->AktuellePosition - Offset = SollPos-->anfahren

110 (posErreicht) - 10 (Offset) = Fahre auf 100
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antwort.

Das würde so schon funktionieren aber dann müsst ich einen Festen Wert für die Lamellendrehung eingeben. Das soll aber ja über die Teachfunktion gehen.

Gruß Markus
 
Naja,

Lamellendrehung bedeutet doch:

Position anfahren aufwärts -- Position ok (Lamellen Lichtausfall)
Fahre danach ab um zB.: 10 Impulse = Lamellen LichtEinfall

Position anfahren abwärts -- Position ok (Lamellen LichtEinfall)
Fahre auf um zB.: 10 Impulse = Lamellen LichtAusfall

Das wäre doch immer ein fester Wert?
 
Die Lamellendrehung soll ja nicht immer z.B. die 10 Impulse sein. Wenn ich im Handbetrieb auf einen bestimmten Wert fahre kann die Lamellendrehung ja z.B. nur 2 Impulse oder auch 20 Impulse sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ah, jetzt schnall ichs.

Dann leg den Offset doch variabel an.

Die gelernte Position immer so anfahren, dass ein Offsetfahrt von dieser Position aus bei allen gleich ist.

Also Position ok/erreicht --> Lamelle immer komplett offen.

Jetzt benötigst du die Impulse von ganz offen bis ganz zu. (0 Geschlossen; 10 Offen, 5=waagerecht usw..)

Danach +/- des Offset nachführen
 
So jetzt schnalls ich nicht.

Wie krieg ich die Impulse raus die für die Lamellendrehung sind?

Beispiel: Ich fahre per Hand runter auf den Wert 234. Jetzt gibts ne Drehrichtungsänderung um die Lamellen ein wenig zu drehen. Jetzt steht der Wert auf z.B. 229.
Ich vermute mir wird nichts anderes übrig bleiben beide Werte einzeln zu teachen. Zuerst runter fahren auf z.B. 234 dann teachen, wert in den DB. Dann wieder hoch auf z.B. 229 und wieder teachen und wert in den DB.

Oder lieg ich jetzt falsch
 
Ermittle den Wert (Impulse) zwischen Lamellen geschlossen und Lamellen geöffnet. Bspl 100 Impulse von Lamellen komplett offen bis zu.

Bei einer Aufwärtsfahrt sind die Lamellen wahrscheinlich geöffnet.

Bei Drehrichtungsänderung von Auf nach Zu müßen erst mal 100 Impulse lang die Lamellen gedreht werden, bis der dann tatsächlich abwärts fährt.

Bei Drehrichtungsänderung Zu nach Auf zu müßen erst mal 100 Impulse lang die Lamellen gedreht werden, bis der dann tatsächlich aufwärts fährt.

Der Rest müßte lösbar sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry ich weis nicht so richtig wie du das meinst.
Die gesamten Impulse für die komplette Lamellendrehung von zu nach auf kenn ich. Das sind 10.
Jetzt komm ich aber Trotzdem nicht weiter???
 
So jetzt schnalls ich nicht.

Wie krieg ich die Impulse raus die für die Lamellendrehung sind?

Beispiel: Ich fahre per Hand runter auf den Wert 234. Jetzt gibts ne Drehrichtungsänderung um die Lamellen ein wenig zu drehen. Jetzt steht der Wert auf z.B. 229.

Ich würde nur die Position teachen. Dann die Rollo-Position immer so anfahren, daß diese komplett geöffnet sind.(Lichteinfall)

Jetzt den gewünschten Lichteinfall ( 0-100=Hell-dunkel) angeben.

Bei der nächsten Fahrt muss der Wert(0-100) wieder mit der Position addiert bzw subtrahiert werden, je nach Richtung

Ich vermute mir wird nichts anderes übrig bleiben beide Werte einzeln zu teachen. Zuerst runter fahren auf z.B. 234 dann teachen, wert in den DB. Dann wieder hoch auf z.B. 229 und wieder teachen und wert in den DB.

Wenn der Lichteinfall denn immer passen sollte. (Regen,Schnee,Dämmerung...)
 
Hallo,
dein "Zähler" läuft doch mit sofern das eine Bewegung stattfindet ...?
In dem Fall mach es doch so :
Du fährst auf Öffnungs-Position - Teach Position
Dann fährst du in Gegenrichtung und drückst dann "Teach-Lamelle"
...
Du brauchst so dann natürlich 2 Teach-Tasten ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Position unten = 0 Impulse

Position oben = 1000 Imp

Position soll = 800 Imp

Position soll anfahren von unten --> 800 Imp (voller Lichteinfall beim Aufwärtsfahren )

Jetzt 10 Impulse zurück fahren und die Lamellen sind bei Position 790 in gleicher Höhe, jedoch Lichteinfall = 0
 
Aber ich will ja die Lamellendrehungsstellung auch geteacht haben und nicht als festen Wert eingeben.
Ich befürchte auch das ich hier 2 Tasten zum teachen brauche.
 
Aber ich will ja die Lamellendrehungsstellung auch geteacht haben und nicht als festen Wert eingeben.
Ich befürchte auch das ich hier 2 Tasten zum teachen brauche.

Dann auf jeden Fall *ACK*

2 Tasten ? Kannst auch mit einer machen. 1/2 Impulse, oder Zeitabhängig (Tastendruck)

PS: Dachte zusätzlich an lichtabhängigen Offset
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würd in 2 Schritten teachen.

Zum Teachen runter fahren bis zum Stop. Diesen wert für die Höhe übernehmen.
Dann noch (Zeitabhängig?) warten ob Drehrichtungsänderung kommt für Lammellenpos. , wennja diesen wert dann für die Lammellenpos. noch übernehmen, wenn nicht wert 0 für Lammellenpos schreiben.
 
warum nicht einfach eine makrofunktion implementieren, d.h.

ich drücke die teach-taste

danach fahre ich auf höhenposition, taktmerker läuft solange ich fahre

durch drücken der teach-taste übernehme ich die vom taktmerker generierte position und speichere sie ab,

nun fahre ich wieder entgegen um den lichteinfall zu regulieren, hier wird über taktmerker gemessen wieviele impulse ich gefahren bin.

nach erneutem druck der teachtaste wird dieser wert gespeichert,

danach emuliere ich einfach die fb-eingaben und das rollo fährt exakt meine vorher gewählte position an. dieses system erlaubt es theoretisch unendlich viele licht-szenarien zu speichern
 
warum nicht einfach eine makrofunktion implementieren, d.h.

ich drücke die teach-taste

danach fahre ich auf höhenposition, taktmerker läuft solange ich fahre

durch drücken der teach-taste übernehme ich die vom taktmerker generierte position und speichere sie ab,

nun fahre ich wieder entgegen um den lichteinfall zu regulieren, hier wird über taktmerker gemessen wieviele impulse ich gefahren bin.

nach erneutem druck der teachtaste wird dieser wert gespeichert,
danach emuliere ich einfach die fb-eingaben und das rollo fährt exakt meine vorher gewählte position an. dieses system erlaubt es theoretisch unendlich viele licht-szenarien zu speichern

ich kann doch nicht 2 verschieden Werte mit einer Taste abspeichern oder? Ich muss ja mit einer Taste die Höhen abspeichern und mit einer anderen Taste die Lamellenposition?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
natürlich kannst du mit einer einzigen taste beide positionen speichern

if teach-taste 1* gedrückt
then starte lernen
fi
if teach-taste zum zweiten mal gedrückt
then speichere höhenposi
fi
if teach-taste zum dritten mal gedrückt
then speichere winkelposition
fi
if wert 1 und zwei gespeichert
then beende lernen
and freu dich
fi
 
also, ich habe meine Jalousiensteuerung ähnlich programmiert...
vielleicht funktionieren deine jalousien ja anders, aber meine verhalten sich folgendermassen:

wenn sie abwärts fahren, drehen die lammellen zuerst auf GESCHLOSSEN
wenn sie aufwärts fahren, drehen die lammellen zuerst auf OFFEN
Realisierung der Steuerung:
die drehung ist ein winkel bzw in der SPS eine Anzahl von Zeittakten.
nehmen wir an, ich hätte 10 Zeittakte für die Drehung...
wenn der motor nach UNTEN läuft, dekrementiere ich zuerst die Drehposition; wenn diese auf 0 gelaufen ist, dann erst die Position der Jalousie.
wenn der motor nach OBEN läuft, inkrementiere ich zuerst die Drehposition bis zum Maxwert (=10), dann erst die Position der Jalousie.
wenn ich jetzt eine bestimmte Position anfahren will, gilt folgendes:
um die Position zu erreichen, muß ich entweder die Jalousie HOCH oder RUNTER fahren. Ich fahre bis Erreichen der Position; je nach Richtung habe ich jetzt eine Drehstellung 0 oder 10(MAX). Als nächsten Schritt muß ich die Drehpositon erreichen. Ich muß den Motor also eine kurze Zeit in die andere Richtung laufen lassen. Die Anzahl der Zeittakte N ist dann entweder N = SollPos oder N = MAX-SollPos (je nach Richtung)

Wichtig!!!
Im Übrigen: Beim Richtungswechsel musst du Totzeiten einhalten, die von deinem Jalousienhersteller vorgegeben werden. Du darfst nicht unmittelbar von AUF nach AB oder umgekehrt wechseln, sondern musst ein kurze Zeit warten. Angeblich könnte es zur Zerstörung oder vorzeitiger Alterung der Motoren kommen. Auch wenn nix passiert, du könntest aber Probleme mit der Gewährleistung bekommen.
 
Zurück
Oben