Nach Neustart werden Ausgänge angesteuert

Begonnen von Juergen, 11. September 2014, 12:59:51

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 4 Gäste betrachten dieses Thema.

Juergen

Hallo zusammen,

ich hoffe, jemand kann mir weiterhelfen. Ich habe eine Rollosteuerung mit der Building.lib aufgebaut.
Allerdings habe ich das Problem, das nach einem Neustart alle Ausgänge angesteuert werden. Das ist natürlich nicht so gut, da die Rollädenmotore das nicht vertragen.
Verwendet für meinen Rolladen-FB habe ich den Blind_Input und den Blind_Control_S, siehe Anhang.

Die verwendete Steuerung ist ein CX 9001-0001 mit jeweils 4 Ein- und Ausgangskarten, die jeweils 8 Ein- bzw. Ausgänge haben.

Vielen Dank für eure Hilfe,

Jürgen

[gelöscht durch Administrator]

peewit

hi

unabhängig von problem und ursache sollte man einfach immer folgendes machen

Du musst die ausgänge gegeneinander verriegeln !

am baustein ausgang gibst du nur normale varaiablen an
fahre_auf und fahre_ab

am ende sagst du

"und nicht" fahre_ab "und" fahre_auf "=" ausgang_fahre_auf

"und" fahre_ab "=" ausgang_fahre_ab

oder ähnlich

Juergen

#2
Habe deinen Hinweis befolgt und die Ausgänge verriegelt. Müsste so passen, oder?

Allerdings funktioniert das ja nur, wenn das Programm läuft. Mein Problem tritt nur bei einem Neustart auf. Dann werden alle belegten Ausgänge für die im Programm angegebene Zeit auf "1" geschalten. An den Eingängen liegt kein Signal an.
Aus irgendeinem Grund werden zuerst alle AUF-Ausgänge angesteuert und anschließend alle AB-Ausgänge. Sieht aus, wie eine Testfunktion. 

[gelöscht durch Administrator]

Juergen

Fehler gefunden, dank der Hilfe eines erfahrenen Users! Es war der Kalibrierungslauf und dazu noch falsche Verknüpfungen.
Trotzdem hätte ich noch eine weitere Frage:

Wie kann ich denn die Verlängerungszeit ändern? So wie ich es verstanden habe, ist T_EXT eine Setup-Variable, aber wo kann ich den Wert dafür angeben?   

mattsches

Einfach im CFC-Plan auf den Baustein doppelklicken. Dann geht ein Fenster auf, dort kannst du in der Spalte "Wert" den gewünschten Wert eintragen. Kann sein, dass du ein bisschen rumklicken musst. Wenn kein Wert in der Zelle steht, ist sie manchmal schwer zu treffen. Der Dialog ist vielleicht nicht ganz optimal umgesetzt im alten Codesys/TwinCAT.

Juergen

Hallo,

vielen Dank für die Unterstützung. Mittlerweile laufen meine Rolläden ohne Probleme, so dass ich nun drauf und dran bin, das ganze zu verfeinern.
Habe die Doppelklick-Funktion ins Auge gefasst. Möchte mir damit einige Zentralschalter einrichten, mit denen ich u.a. per Doppelklick das gesamte EG schließe bzw. öffne. Sollte damit ja machbar sein.

kenzo

Zitat von: Juergen in 11. September 2014, 17:48:31
Fehler gefunden, dank der Hilfe eines erfahrenen Users! Es war der Kalibrierungslauf und dazu noch falsche Verknüpfungen.

Kannst du da ins Detail gehen? Habe die Ausgänge gegeneinander verriegelt, und bin mir keines Kalibrierungslaufs bewußt.


[gelöscht durch Administrator]

Juergen

Hallo Kenzo,

ich hatte eigentlich zwei Probleme:

1) der Kalibrierungslauf wurde ausgelöst, was ja laut Bausteinbeschreibung kein Fehler ist
2) ich hatte die Ausgänge falsch belegt. Hatte gedacht, die Ausgangsklemmen sind links von oben nach unten x.0 bis x.3 und dann die rechte Seite x.4 bis x.7. Da ich meine Ausgänge jeweils einem Auf- bzw. Ab-Relais zugeordnet hatte, also x.0 = Auf und x.1 = Ab, x.2 = Auf und x.3 = Ab, usw. wurden bei einem Neustart bzw. auch bei einem aktualisieren des Programms die Ausgänge x.0 bis x.3 angesteuert. Nach meiner Belegung war das immer auf, da aber die Ausgangsklemme. Da aber die Ausgänge x.1 und x.3 auf AB-Relais gelegt waren, wurden jeweils AUF und AB des gleichen Motors angesteuert. Da ich zum Testen die Lastspannung ausgesichert hatte, ist zum Glück nichts passiert.


[gelöscht durch Administrator]

peewit

hi

bei einer inbetriebnahme macht man normalerweise einen e/a check um genau solche grundlegenden irrtümer/fehler vorher zu erkennen
und somit möglichen schaden zu vermeiden.

ging ja nochmals gut  :-)



Juergen

Ja, macht man. Meine Sicherheit war ja die Last-Aussicherung, so dass ich mir sicher war, das nichts passieren konnte. Außer das im schlimmsten Fall irgendwelche Relais anziehen.

mattsches

kenzo, die Verriegelung im CFC kannst du dir sparen. Das macht der im BLIND_CONTROL aufgerufene BLIND_ACTUATOR mittels INTERLOCK-Aufruf schon selbst. Inkl. einstellbarer Verzögerungszeit zwischen den Ausgängen; denn die Motoren würden ein direktes Umschalten von Auf nach Ab und umgekehrt auch nicht gut vertragen.

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

(* ramp up or down to simulate the angle position of the blind slats *)
angle(e := lock.Q1 OR lock.Q2, 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);

(* set the outputs *)
pos := position.Out;
ang := angle.Out;

(* set the outputs *)
QU := lock.Q1;
QD := lock.Q2;


Gruß,
mattsches

kenzo

Danke, mattsches - hast du vllt. eine Idee, wieso beim Reset für ca. 1 Sek. die Motoren im "Ab"-Modus angesteuert werden?
Wo sollte ich nachschauen?