Siemens Logo - Frage zu Programm

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_id 7 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 /
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

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
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Weil in der Zeit, in der ich noch den GCC konfiguriere, mit so einer Steuerung bereits die Sache fertig und installliert ist :-) Ich hatte keinen Nerv, mich in den Controller einzuarbeiten, C-Kenntnisse wieder aufzufrischen, eine taugliche Schaltung zu zimmern, EMV-sicher, brown out-fest...da wären etliche Manntage/Wochen hineingelaufen. So waren es nur ein paar Stunden...
-ras
--

Ralph A. Schmid

http://www.dk5ras.de/ http://www.db0fue.de /
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Moin,
Ralph A. Schmid, dk5ras wrote:

Die Frage finde ich aber schon zulässig:
Was wäre, wenn der GCC schon fertig konfiguriert ist (die Software für die SPS ist es ja auch schon) und die Hardware fertig, EMV-sicher,... existiert (die SPS existiert ja auch schon)? Und man müsste die Sache nur noch in C programmieren, wobei man (du) die Syntax von C nicht groß nachschlagen müsstest, weil du die Sprache ja sowohl für sonstige Programme als auch für SPS-Programmierung regelmäßig verwendest?
CU Rollo
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Am Thu, 19 Nov 2009 01:06:43 +0100 schrieb Roland Damm:

Dann hat man im allgemeinen immer noch keine Erfahrung mit sonstigen Aspekten der Automatisierung.
Die verwendeten Sprachen sind ja nicht vom Himmel gefallen sondern ergaben sich aus dem was in dem Fach vorher auch schon gemacht wurde.
Lutz
--
Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im
Serverraum gibt: preiswerte Monitoring Hard- und Software-kostenloses Plugin
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Ist aber eben nicht so. Weder ist hier der compiler bereit noch die Technik fertig, und C verwende ich sonst nicht, da ich kein Programmierer bin. Vor zwei, drei Jahren wollte ich wieder bissl tiefer einsteigen, aber bei diesem Wollen blieb es bisher. Davon schreibt sich kein Programm :-)
-ras
--

Ralph A. Schmid

http://www.dk5ras.de/ http://www.db0fue.de /
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Moin,
Ralph A. Schmid, dk5ras wrote:

Richtig. Meine provokante Frage ging auch tiefer: Was wäre wenn es so üblich wäre, wie ich es beschrieben hätte? Also man SPSes üblicherweise ähnlich wie Mikrocontroller programmiert? Gut, es ist nicht üblich. Üblich ist, dass man heute bei der SPS-Programmierung lernen muss, wie damals die Schaltpläne aussahen, als man sowas noch mit Schützen und Kabeln aufgebaut hat. Sprich heute muss man für die SPS-Programmierung lernen, wie man die Steuerung in einem Schaltplan darstellt, den außer der Software nur noch der Elektriker lesen könnte, der vorletztes Jahr in Pension gegangen ist. Nicht gerade Zeitgemäß. Abwer es gibt ja viele Wege, eine SPS zu programmieren, unter anderem auch so eine Assemblerartige Sprache, die gefiel mir ganz gut. Aber dem Professor wohl nicht...:-)
CU Rollo
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Nun ja, wenn ich hier aus Logikelementen meinen Schaltplan zusammenbaue, dann ist das eher wie zu SN74xx-Zeiten, das hat mit dem Elektrikerplan wenig zu tun. Den Kontaktplan (KOP) finde ich persönlich nicht so toll...habe ich halt nie gelernt, sonst ginge das sicher auch. Meine Popelprojekte gehen so, wie ich es kann, ganz gut zu lösen.

Jo, das finde ich eben auch gut daran. Man kann das wählen, was zu den persönlichen Fähigkeiten und der zu lösenden Aufgabe paßt.
-ras
--

Ralph A. Schmid

http://www.dk5ras.de/ http://www.db0fue.de /
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ralph A. Schmid, dk5ras schrieb:

Hi Ralph, hab zwar nur begrenzte Ahnung von der Logo, aber wre das ganze nicht mit zwei UND Verknpfungen lsbar?
Eingang 1 UND NICHT Eingang 2 --> Relais2 Eingang 2 UND NICHT Eingang 1 --> Relais1
Du httest dann eine Verriegelung oder nicht?
Mfg Daniel
P.S.: Zerfleddert mich nicht wenn ich total falsch liege. :)
--
----------------------------- // It can be fun to use a pc \\ // :) :) :) :) :) :) :) :) :) \\ ********************************** * Sorry for my bad english guess * * I will never learn to speak and* * write that language correctly! * ********************************** * www.efmenzel.de * **********************************
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Am Mon, 16 Nov 2009 05:51:57 +0100 schrieb Ralph A. Schmid, dk5ras:
Hallo!

Schau mal auf diese Seite:
http://www.automation.siemens.com/logo/html_00/products/02Applications/index.html
Und da speziell das Beispiel Verriegelung:
http://www.automation.siemens.com/logo/html_00/pdf/Verriegelungsschaltung_Interlocking_circuit.lsc
Bei dir musst du einfach noch ein NOT nach den Eingänge setzen um das LOW in ein HIGH zu wandeln. Wenn ich dein Vorhaben richtig verstanden habe, sollte es das eigentlich tun.

Grüße, Thorsten
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Thorsten Oesterlein schrieb am 16.11.2009 21:47:

http://www.automation.siemens.com/logo/html_00/pdf/Verriegelungsschaltung_Interlocking_circuit.lsc Diese Beispiele funktionieren aber auch nicht. Sie zeigen genau das von OP beschriebene Verhalten. Lade mal dieses Beispiel, geh in den Simulationsmodus, schalte alle Eingänge auf 'high', unterbrich mal kurz die Stromversorgung (diesen Stecker-Button betätigen) und schau zu wie die Ausgänge flimmern :-(
--
Gruß Reinhard

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Am Tue, 17 Nov 2009 14:45:27 +0100 schrieb Reinhard Richter:

Stimmt. Da hast du Recht. Die Lösung ist aber ganz einfach. Man muß die Eingänge der "&" Gatter negieren. Also die Leitungen die von Eingängen I1 - I3 kommen auf den "&" Gattern negieren. ( Für die nicht gang geübten: Rechte Maustaste auf den Eingang des "&" Gatters -> "Konnektor negieren")
Damit hat man dann auch gleich die Low Activ Verdrahtung. Allerdings beginnt es nun zu schwingen wenn beim Reset beide Eingänge LOW sind.
Liebe Grüße, Thorsten
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Thorsten Oesterlein schrieb:

Damit verschiebst Du das Problem nur auf einen anderen Eingangspegel. Die Lösung hat der OP ja schon ansatzweise in seinem Plan: Man muß für diesen Fall eine feste Anfangsstellung definieren, bei der einer der Ausgänge sozusagen eine Priorität erhält. Danach funktioniert die Verriegelung wie gewünscht. Siehe meine Antwort an Ralph.
--
Gruß Reinhard

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Moin,
Reinhard Richter wrote:

Was ich bei der Sache an sich nicht verstehe: So eine SPS sollte doch definierte Anfangszustände und Eingangszustände haben.
Wenn da was flattert, dann hat man offensichtlich einen stabilen Oszillator gebaut. Dann hat das aber doch nichts mit irgendwelchen Anfangszuständen zu tun.
CU Rollo
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Roland Damm schrieb am 18.11.2009 00:25:

Bau Dir mal so eine gegenseitige Verriegelung mit Relais/Schützen auf. Bei schnellen Relais wirst Du beim Einschalten ebenfalls ein Flattern beobachten können. Irgendwann bleibt ein Relais angezogen und verhindert mit seinem Öffner das Anziehen des anderen Relais. Das liegt an kleinen Symetriefehlern der beteiligten Elemente, d.h. eines dieser Relais ist ein klein wenig schneller und gewinnt damit den Wettbewerb :-)
o----o--------. | | | | '--/ '--/ /K2 /K1 / / | | | | _|_ _|_ |_/_|K1 |_/_|K2 | | | | o----o--------' (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Diese SPS-Systeme arbeiten IMHO getaktet, ich stelle mir die Abarbeitung so vor: 1.Takt: liest die Logikelemente (Schalterstellungen) ein und schaltet die damit verbundenen Ausgänge Öffner K1 ist geschlossen, also K2 anziehen Öffner K2 ist geschlossen, also K1 anziehen 2.Takt: ändert die Logikelemente (Schalterstellungen) entsprechend der Stellung der Ausgänge K2 ist angezogen, also Öffner K2 öffnen K1 ist angezogen, also Öffner K1 öffnen 3.Takt: liest die Logik..., schaltet Ausgänge Öffner K1 ist geöffnet, also K2 abfallen Öffner K2 ist geöffnet, also K1 abfallen 4.Takt: Ändert Logik... K2 ist abgefallen, also Öffner K2 schließen K1 ist abgefallen, also Öffner K1 schließen 5.Takt: = 1.Takt --> Das System flattert Durch die sequenzielle Abarbeitung entsteht an keiner Stelle eine Unsymetrie, aber nur dadurch bekommt das System einen stabilen Zustand.

Nee, ich habe eine bistabile Kippstufe, die ihren stabilen Anfangszustand nicht finden kann :-)
--
Gruß Reinhard

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Moin,
Reinhard Richter wrote:

Und da hakt es bei mir schon: Man muss die Rechenschritte feiner auflösen. So eine SPS arbeitet ja nicht mit simultan arbeitenden Schützen, sondern eben sequentiell und aus Systemsicht beliebig schnell (heißt: Jeder Vorgang ist abgeschlossen, bevor der nächte beginnt, kein Vorgang braucht Zeit).
Also feiner aufgedröselt: 1. Öffner K1 ist geschlossen, also K2 anziehen, also ist Öffner K1 offen. 2. Öffner K1 ist offen, also passiert nichts weiter. ...
Kurz: Das eine Relais hat komplett durchgeschaltet, bevor die SPS nur über die Existenz des anderen Relais nachgedacht hat. Das ding arbeitet halt sequentiell und digital und schnell und so. Klar kann man einen Oszillator bauen, aber dann ist das doch kein Schicksalhaftes Ereignis, sondern eine eindeutige Sache.
Ich glaube das Problem ist diese SPS-Programmierung mit Schlatplänen, da wird dem Programmierer nicht so richtig die Abarbeitungsreihenfolge bewusst. Habe selbst mal so einen Kurs über SPS-Programmierung besucht, aber fast alles wieder vergessen, weil mir das zu sehr nach dem vorletzten Jahundert roch:-)
CU Rollo
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Roland Damm schrieb:

Das Problem ist das richtige SPS arbeiten mit PAE und PAA (Prozessabbild der Eingänge und Prozessabbild der Ausgänge). Die Logo gehört denke ich dazu.
Je Zyklus wird also als erstes der Zustand aller Eingänge gelesen und ins PAE eingetragen, dann das Programm abgearbeitet, Ausgänge ins PAA geschrieben und am Ende des Zyklus das PAA zu den tatsächlichen Ausgängen übertragen.
Das Ursprungsproblem "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."
ist also, wenn ich die Aufgabenstellung richtig interpretiere geklärt mit
un e 1.0 un a 1.1 = a 1.0
un e 1.1 un a 1.0 = a 1.1
also e 1.0 ist 0 und a 1.0 ist null dann a 1.0 ist 1 der a1.1 kann dann nicht eins werden solange a 1.0 1 ist.
da osziliert nichts
gruss Markus
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Am Thu, 19 Nov 2009 15:49:23 +0100 schrieb Markus Philippi:

Ja, tut sie. Ich habe mir diese Verriegelung gestern lange angesehen und habe dabei versucht die Logo näher zu verstehen. Das Verhalten der Logo lässt nur den Schluss zu, daß sie so, wie von dir beschrieben, arbeitet.

Doch, tut es leider und es lässt sich im Einzelschritt auch schon nachvollziehen warum. Wenn man das von mir gepostete Beispiel nimmt, dann ist so:
Startet man die Logo wenn alle Eingänge LOW sind, ist alles OK. Startet man aber mit den Eingängen auf HIGH, beginnt die Logo zu oszillieren. Der Grund ist der, daß das Einschalten der Ausgänge einen Zyklus dauert.
Konkret:
Zyklus 1:
Alle Eingänge auf HIGH. Die Ausgänge der SPS sind alle LOW. Bei den Verrieglungen, den AND ist der erste Eingang, der vom Eingang der SPS kommt so und so HIGH. Die Eingänge der AND auf die die negierten Ausgänge der SPS geführt sind, sind (da negiert) auch HIGH. Somit wird nichts verriegelt und der Ausgang des AND ist HIGH. Die Ausgänge der SPS sind aber LOW
Zyklus 2:
Alle Eingänge auf HIGH, Die Ausgänge der SPS sind nun durchgeschalten und demnach auch HIGH. Nun sind die Eingänge der AND nicht mehr alle HIGH, die Verriegelung wirkt, die Ausgänge der AND sind auf LOW. Die Ausgänge der SPS sind aber nach wie vor HIGH.
Zyklus 3: Die Ausgänge der SPS wechseln nun endlich nach LOW. Damit schalten die AND durch... siehe Zyklus 1.
Und schon schwingt der Spaß.

Grüße, Thorsten
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Thorsten Oesterlein schrieb:

Danke. Anders ist das z.B. bei alten IPC - Klöckner Möller SPS wo es kein Prozessabbild gibt

Ich bleibe dabei das bei den 2 Netzwerken oben nichts oszillieren kann.
Wenn beim Übergang von Stop --> Run folgendes anliegt: Ausgänge sind definiert 0 E1.0 =1 E1.1 =1
1. Zyklus PAE lesen E 1.0 =1 a 1.1 =0 ergibt a1.0 =1
E 1.1 =1 a 1.0= 1 ergibt a1.1 =0 PAA schreiben
Zyklus fertig
2. Zyklus PAE lesen E 1.0 =1 a 1.1 =0 ergibt a1.0 =1
E 1.1 =1 a 1.0= 1 ergibt a1.1 =0 PAA schreiben
Zyklus fertig
keine Änderung der Ausgänge
gruss Markus
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Am Thu, 19 Nov 2009 20:13:20 +0100 schrieb Markus Philippi:

Die Logo oszilliert aber. Zumindest in der Simulation.
Meines Erachtens liegt der Fehler darion, daß du sequenziell denkst. Die Logo aber nicht. Mir ist die Notation nicht geläufig, ich versuch das aber mal so umzustellen, wie es die Logo im Simulator darstellt. Wie erwähnt, es werden alle Eingänge gleichzeitig gelesen und alle Ausgänge gleichzeitig gesetzt.

Wenn du die Möglichkeit hast, sie es dir mal selber in der Logo Software an. Am besten im Einzelschritt.

Grüße, Thorsten
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.