Siemens Logo - Frage zu Programm

16/11/2009 - 05:51 von Ralph A. Schmid, dk5ras | Report spam
Moin,

ich betreibe einen Funk-Umsetzer und steuere neuerdings den Ablauf mit
einer Siemens Logo. So weit, so gut, es funktioniert alles bestens. Im
unteren Teil dieser Seite
http://dk5ras.dyndns.org/www/db0fue/?page_id7
habe ich das Programm als db0fue.lsc abgelegt, außerdem als pdf-Datei.

Nun ist der Sachverhalt so, daß (vereinfacht ausgedrückt) ein low am
Eingang 1 das Relais 1 durchschaltet, ein low an Eingang 2 das Relais
2, und jeweils der eine Fall soll den anderen Fall unterdrücken, es
soll also bei Belegung eines Einganges das jeweils andere Relais
verriegelt sein. Allerdings habe ich das irgendwie nur über eine etwas
kranke gegenseitige Verschaltung hinbekommen, die beim Einschalten
(sieht man auch in der Simulation) oszilliert, deswegen erzeuge ich
beim Programmstart vermittels Zeitgliedern zwei kurze Impulse, um das
Ganze in einen stabilen Zustand zu überführen. Kommt dann irgendwann
noch ein drittes Paar aus Eingang und Ausgang hinzu, dann wird das
noch mehr wildes Gewurstel...

Hat jemand eine Idee, wie man das schöner lösen könnte? Und gibt es zu
dem Automatisierungs-Kram evtl. noch eine geeignetere newsgroup? Ich
habe keine gefunden, aber das will ja nix heißen :)


-ras


Ralph A. Schmid

http://www.dk5ras.de/ http://www.db0fue.de/
http://www.bclog.de/
 

Lesen sie die antworten

#1 Stefan Brröring
16/11/2009 - 09:44 | Warnen spam
Nun ist der Sachverhalt so, daß (vereinfacht ausgedrückt) ein low am
Eingang 1 das Relais 1 durchschaltet, ein low an Eingang 2 das Relais
2, und jeweils der eine Fall soll den anderen Fall unterdrücken, es
soll also bei Belegung eines Einganges das jeweils andere Relais
verriegelt sein. Allerdings habe ich das irgendwie nur über eine etwas
kranke gegenseitige Verschaltung hinbekommen, die beim Einschalten
(sieht man auch in der Simulation) oszilliert, deswegen erzeuge ich



Logo finde ich scheiße ;-) deshalb schreibe ich hier mal in AWL

LDN E0.0 // wenn Eingang 0 aus
U E0.1 // und Eingang 1 an
= A0.0 // Ausgang 0 setzen

LDN E0.1 // wenn Eingang 1 aus
U E0.0 // und Eingang 0 an
= A0.1 // dann Ausgang 1 setzen

ich wüsste nicht, was da oszillieren sollte,

Das führt aber dazu, das beide Ausgànge ausschalten, wenn beide Signale
anliegen, aber es verhindert, dass beide Ausgànge gesetzt werden.

Alternative:

LDN E0.0 // wenn Eingang 0 auf 0
UN A0.1 // und der Ausgang 1 aus
= A0.0 // Ausgang 0 setzen

LDN E0.1 // wenn Eingang 1 auf 0
UN A0.0 // und Ausgang 1 auch auf 0
= A0.1 // Ausgang 1 setzen

Das führt jetzt dazu, dass der Eingang, der als erstes auf 0 geht den
Ausgang setzt und damit den andere Eingang blockiert. Erst wenn der
erste Eingang zurückgesetzt wird, kann der zweite seinen Ausgang
schalten und den ersten blockieren.

Problem hier aber eventuell, dass der Ausgang erst gesetzt wird, wenn
der Zyklus der SPS durchgelaufen ist, also eventuell statt dessen zwei
Merker verwenden und die Merker dann am Ende auf die Ausgànge schalten.


Im Prinzip einfach die Beschaltung eines RS-Flip-Flops

Frage: warum machst du das nicht mit nem Microcontroller?

Gruß

Stefan DF9BI

Ähnliche fragen