BLIND_SHADE oder BLIND_CONTROL Impuls zu kurz für Lamellenverstellung

Begonnen von Sonnendeck, 05. Juli 2016, 21:52:13

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Sonnendeck

Hallo Profis,
ich habe die Automatische Beschattung mittels (u.a.) BLIND_SHADE und BLIND_CONTROL bei meine Raffstores (0-90°) realisiert. Das funktioniert soweit gut je nach Sonnenstand an allen Fronten rings ums Gebäude. Allerdings ist der Impuls zum Verstellen der Lamellenwinkel zu kurz. D.h. bei dem kurzen Relais-Impuls zum Anfahren des Lamellenmotors spricht dieser nicht an, da er erst nach einer gewissen Verzögerungszeit aktiv wird. Da der Impuls viel zu kurz anliegt, kann der Lamellenwinkel nicht verstellt werden, da der Motor erst gar nicht anspringt.
Ich habe bislang keine Variable gefunden, welche den Impuls zur Winkelverstellung beeinflussen und verlängern kann.
Folgendes ist eingestellt:
BLIND_CONTROL:
BC_SENS:BYTE:=20;             (* Regelt erst die Lamellen nach einer Abweichung von 20 (Standard: 5) *)
BC_T_LOCKOUT:  TIME:=t#700ms;   (* Totzeit bei Richtungswechsel der Motoren für die Lamellenverstellung *)
tWinkel:              TIME:=T#1100ms;    (* Eingang für BLIND_CONTROL. T_ANGLE ist die Zeit, um die Lammellen zu verstellen von 0 auf 90 Grad *)

Ich weiss jedoch nicht, ob der Impuls zur Lamellenverstellung von BLIND_SHADE oder BLIND_CONTROL generiert wird.
In BLIND_SHADE habe ich keine Variablen gefunden, die dazu geeignet wären.

Danke schon mal für sachdienliche Tipps!

mattsches

Hallo Sonnendeck,

ich habe bei mir einen Parameter eingebaut, um eine solche Verzögerungszeit zwischen Setzen des Ausgangs und tatsächlicher Bewegung der Lamelle berücksichtigen zu können.

Zu finden hier: http://www.oscat.de/community/index.php/topic,2143.0.html als Anhang im letzten Beitrag. Der Eingang nennt sich T_ACTUATOR_DELAY, hängt am T_ACTUATOR und ist als VAR_INPUT CONSTANT am BLIND_CONTROL herausgeführt. Im BLIND_ACTUATOR füttere ich damit einen einfachen Einschaltverzögerer und gebe dessen Ausgang dann an den RMP_B-Baustein "angle" weiter:

BLIND_ACTUATOR Deklarationsteil:



VAR_INPUT
[...]
T_ACTUATOR_DELAY : TIME := T#100ms; (* delay between triggering output and slat movement *)
END_VAR

VAR
[...]
actuator_delay : TON;
END_VAR


Code:

(* make sure only one motor is active at a given time *)
lock(i1 := UP, I2 := DN, TL := T_lockout);

(* consider delay until slat is moving (mainly relevant for angle calculation) *)
actuator_delay(IN:= lock.Q1 OR lock.Q2, PT:= T_ACTUATOR_DELAY, Q=> , ET=> );

(* ramp up or down to simulate the angle position of the blind slats *)
angle(e := actuator_delay.Q, UP := lock.Q1, PT := T_Angle);
position(e := lock.Q1 AND angle.high OR lock.Q2 AND angle.low, up := lock.Q1, PT := T_UD);

Sonnendeck

Hallo mattsches,
danke für die Antwort! Ich habe diesen Parameter eingebaut, jedoch stellt sich mir die Frage, ob ich die richtige Reichenfolge der BLIND-Module habe:
bisher:
BLIND_INPUT
BLIND_SHADE
BLIND_SECURITY
BLIND_CONTROL

jetzt neu:

BLIND_INPUT
BLIND_SHADE
BLIND_SECURITY
BLIND_ACTUATOR
BLIND_CONTROL
-> so ergeben sich allerdings folgende Fragen:

  • die Ausgänge PO und AO von BLIND_SECURITY können keinen entsprechenenden Eingang bei BLIND_ACTUATOR finden
  • ich weiß nicht, ob die Eingänge T_UD und T_ANGLE von BLIND_CONTROL mit den gleichnamigen Eingängen (und somit den Eingaswerten) von BLIND_ACTUATOR verbunden werden sollen
.

[gelöscht durch Administrator]

mattsches

Oh, dann habe ich mich missverständlich ausgedrückt. Der von mir angepasste BLIND_ACTUATOR wird in dem ebenfalls angepassten BLIND_CONTROL bereits aufgerufen und bringt die oben beschriebene Funktion mit. Wenn du nicht komplett auf meine Variante der BLIND_*-Bausteine umsteigen möchtest, könntest Du im Original-ACTUATOR und CONTROL nur diese Anpassungen einarbeiten. An Deinem Rahmenprogramm und dem Aufruf der BLIND-Bausteine ändert sich dann nichts, es bleibt bei INPUT, SHADE, SECURITY, CONTROL.

Sonnendeck