LOGO LOGO! Soft v7 - Hilfe für Programm

Zwei Speicherzellen pro Eingang, aber was definiert man unter "Speicherzelle"?
Ihr habt selbst schon 'raus gefunden, dass der Speicher immer zurückgesetzt werden soll, wenn der Ausgang aus ist und nur unter bestimmten Bedingungen eingeschaltet werden darf.
Daraus entsteht folgende grundlegende Speicherzelle (I1 ist der jeweilige Eingang, I2 simuliert die Bedingung für's Setzen):




Nächster Step:
2. Es müssen für jeden Eingang immer 2 Sachen gespeichert werden:
-> 1. Ist der Eingang unter den ersten 3, damit der Ausgang als Nächstes zum Einschalten dran ist
-> 2. Ist der Eingang unter den ersten 2, die eingeschaltet wurden, damit der Ausgang eingeschaltet wird
Sind schon 3 Eingänge aktiv, kommt das Eingangssignal nicht zum ersten Speicher. Hat es diesen Speicher passiert, kann es den nächsten nur erreichen, wenn keine 2 Ausgänge aktiv sind.
Der Eingang muss also beide Speicher nacheinander passieren, damit der Ausgang eingeschaltet wird.


Man kann das Rücksetzen von B004 auch direkt mit dem Eingang verbinden. Kommt aber auf's gleiche Ergebnis raus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schau mir gerade mal Euren Schaltplan an.

Jetzt habt Ihr's mit dem getrennt verlegen übertrieben. Wenn Verbindungen auf den gleichen Ausgang gehen, dann dürfen und sollen sie sich sogar überlagern. Die "Weiche" ist ja an dem Verbindungspunkt zu erkennen.
 
So seit ihr wirklich sehr nah' dran. Da fehlt Euch jetzt einfach die Erfahrung, wo man etwas drehen muss.
Deshalb werd' ich jetzt meine Version komplett posten (bin dann unterwegs):




PS: Irgendwie reagiert Euer Eingangszähler anders wie meiner. Komm' ich aber erst heut' abend zu, zu ergründen warum.
:confused:
 

Anhänge

  • Doppelhaushälfte 0BA6 druckoptimiert.zip
    120,5 KB · Aufrufe: 12
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
PS: Irgendwie reagiert Euer Eingangszähler anders wie meiner.
:confused:
Ihr habt die arithmetische Anweisung vor den Analog-Mux erstellt, die diese zusammenrechnen soll. Deshalb habt' ihr da eine Zyklusverschiebung zwischen Erfassung und Ergebnisausgabe drin, was hier bei der Funktion von Nachteil ist.


Anschließend fehlt bei Euch auf jeden Fall noch Punkt 7.
In der Druckvorschau hab' ich dabei auf die 2. Variante umgestellt (B024). Das spart ein paar Bausteine.
 
Okay, wir mussten es nochmal komplett neu aufbauen, also die MUX vor den Anweisungen aufgebaut, dann hat es funktioniert.:s12:
Wir werden jetzt eine Doku darüber schreiben, damit wir für die nächsten Schaltungen alles gleich besser nachvollziehen können.

Du warst uns eine große Hilfe, schön wenn jemand sein Wissen weiter gibt! :D
 
Die Schaltung hat aber immer noch Probleme, wenn mehrere Schalter auf einmal betätigt werden.
Wenn man normal simuliert, bemerkt man das nicht. Bei der Simulation einzelner Zyklen hat man aber genug Zeit, mehrere Schalter dazwischen zu betätigen. Man kann natürlich auch da noch etwas vorbeugen, trotzdem kommt man da ziemlich an die Grenzen der Logo!, weil man eben keine echten Bytespeicher und die Rechenmöglichkeiten damit wie bei den großen SPS hat.

Ihr habt Euch also da eine wirklich knifflige Aufgabe ausgesucht.
:cool:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hätte dann doch noch einmal eine Frage. :p
Bei deiner Schaltung in der Druckoptimierten Version unter der Überschrift: "Zählung und Auswertung aktiver Eingänge" geht ein zweiter Strang von der arithmetischen Anweisung aus, welche auf einen weiteren Schwellwertschalter und ein Selbsthalterelais geht. Diese Verbindung hat eigentlich immer High-Signal, deswegen verstehen wir den nutzen davon nicht. Wenn man diese zwei Bausteine löscht, sowie das UND-Gatter B027, verändert sich auch nichts an der Funktion soweit wir das überblicken.

mfg Tobi
 
Wenn man diese zwei Bausteine löscht, sowie das UND-Gatter B027, verändert sich auch nichts an der Funktion soweit wir das überblicken.
Doch -> schaltet mal 3 oder 4 Eingänge ein, bevor Ihr die Simulation startet!

Sehet und analysiert (und lest nochmal den Punkt 9).
:eek: :cool:



PS: Das UND-Gatter B027 hab' ich nur eingefügt, damit ich den Freigabe-Strang besser zeichnen kann. Eigentlich wären auf den UND-Gattern B001, B005 ... noch Eingänge frei gewesen, um von B025 da direkt d'rauf zu gehen.
 
Zuletzt bearbeitet:
@LT Smash,
ich beginne mal hier im zugehörigen Thread Deine Fragen aus der PN zu beantworten, denn der weitere Gedankenaustausch zu diesem Thema könnte auch andere Suchende interessieren.

LT Smash schrieb:
Hab das Programm. ...
Jetzt noch die Frage: Was kann man aus Deiner Sicht daran noch optimieren?
Du solltest den Thread auch lesen und nicht nur das Programm downloaden!
Die Schaltung hat aber immer noch Probleme, wenn mehrere Schalter auf einmal betätigt werden.
Wenn man normal simuliert, bemerkt man das nicht. Bei der Simulation einzelner Zyklen hat man aber genug Zeit, mehrere Schalter dazwischen zu betätigen. Man kann natürlich auch da noch etwas vorbeugen, ...
Ich hab' dafür zwar schon was programmiert, trotzdem würde mich vorerst interessieren, wie Du das "Problem" lösen würdest.




Außerdem wolltest Du ja 5 Ein- & Ausgänge:
Hi, folgendes Problem:
Habe 5 digitale Eingänge (Anforderungssignale), und 5 entsprechende Ausgänge.
Egal welcher Eingang wann und wie oft kommt, es sollen immer nur 2 Anforderungen bedient werden, also der entsprechende dazugehörige Ausgang geschalten werden.
... die geplante Hardware ist allerdings ne LOGO
Da wäre es natürlich optimaler, wenn die jetzige Schaltung noch einen Ein- und einen Ausgang mehr hätte (incl. einer weiteren Speicherstufe!).
:p





LT Smash schrieb:
Habe bei mir noch den Anlaufmerker M8 auf die EN-Eingänge der analogen Blöcke gelegt.
:confused:
Und was bringt das bzw. was soll es bringen?
Ich kann da momentan keinen Nutzen von erkennen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
10. Und noch etwas wird bisher noch nicht beachtet (was gar nicht auffällt, wenn man nur simuliert): "Was passiert, wenn mehrere Eingänge gleichzeitig eingeschaltet werden?"
Wie soll die Logo! entscheiden, wer an welche Stelle gehört. Bei 'ner größeren SPS ist sowas relativ einfach, aber die Logo! gerät da an Ihre Grenzen. Eine Möglichkeit wäre das Ein- und Ausschalten der Eingänge über Taster mit Stromstoßschalter plus Flankenerkennung. Die Flanke kann man dann nur generieren, wenn nicht mehrere Taster gleichzeitig betätigt werden.
(Eventuell kann dadurch auch Punkt 9 entfallen. Ist ja im Prinzip das gleiche Problem nur beim Einschalten.)
Ihr seht, das ist aufwendig aber nicht unmöglich.
Ihr könnt' Euch ja ganz zum Abschluß auch da noch einen Kopf drüber machen.

Hab das Projekt auf "2 (Ausgänge) aus 5 (Eingängen)" erweitert und mich dem anfangs aufgeführten Problem mal angenommen.
Siehe Anhang.
OK oder wäre die Flankenauswertung der Eingänge evtl. auch einfacher umzusetzen?
Anhang anzeigen 2013-12-04 5E 2A.pdf
Anhang anzeigen 2013-12-04 5E 2A.zip

Grüße, LT
 
Hab' da einfach mal die Schalter wahllos nacheinander betätigt, so dass auch mehr als 2 an sind, und da kam u.a. auch sowas bei raus (reproduzierbar):



Ist noch nicht unbedingt das, wo Du hin wolltest, oder?
:p


Und ich behaupte mal, Dir fehlt da auf jeden Fall noch was:
... noch einen Ein- und einen Ausgang mehr hätte (incl. einer weiteren Speicherstufe!).



LT Smash schrieb:
Habe bei mir noch den Anlaufmerker M8 auf die EN-Eingänge der analogen Blöcke gelegt.
:confused:
Und was bringt das bzw. was soll es bringen?
Ich kann da momentan keinen Nutzen von erkennen.
Seh' ich das richtig, dass Du das zur Unterdrückung Deiner Flankenabfrage (die wohl die Ursache für das fehlerhafte Verhalten auf obigen Bild ist) beim Start brauchst?


OK oder wäre die Flankenauswertung der Eingänge evtl. auch einfacher umzusetzen?
Ich frage gar keine Flanken ab und das sieht für mich einfacher (vor allem einfacher nachvollziehbar!) aus.
Ich zähle einfach nur die Anzahl der eingeschalteten Eingänge und vergleiche sie mit dem vorigen Zustand. In SCL würde man z.B. schreiben:
Code:
IF Eingaenge = Eingaenge_Old + 1 THEN
    ... // Mach wat
END_IF;
Eingaenge_Old := Eingaenge;
Bei meiner momentanen Variante muss man aber auch (wie bei Dir) diese Mehrfacheingabe noch rückgäng machen.
Da ist also auch noch etwas Potential vorhanden.




Noch ein Tipp: Für die einzelnen Speicherstufen ist es m.M.n. am besten, hinter der jeweiligen Stufe zu zählen und diese dementsprechend freizugeben. Bei der 2aus4-Variante oben zähle ich ja bei den Eingängen vor der Speicherstufe, aber das ist etwas problematisch.
Und die Zeitverzögerung beim Freigeben der Stufen von den Ausgängen zu den Eingängen immer etwas vergrößern, damit kein Signal "durchrauschen" kann.
 
Habs nochmals angepasst.
Jetzt sind es 3 Speicherstufen, wobei die erste Stufe jetzt mittels Flankenauswertung und -Aufsummierung sicherstellen soll, daß pro Zyklus nur 1 Eingang aktiv werden kann (eingangs aufgeführte Problematik unter 10.)
Die Zeitverzögerung in der ersten Stufe wird benötigt, da die Durchlaufzeit der Auswertung im unteren Bereich wohl etwas länger dauert und verhindert das angesprochenen "Durchrauschen eines Signals".
@Hucki: Danke für den "SCL-Tip", der hat den Knoten bei mir im Hirn wohl aufgedröselt.
Siehe Downloads:
Anhang anzeigen 2013-12-05 5E 2A.pdf Anhang anzeigen 2013-12-05 5E 2A.zip
Kommentare erwünscht!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm, was soll ich da jetzt sagen?


Simu gestartet -> I1 eingeschaltet -> I2 eingeschaltet -> I4 eingeschaltet -> I5 eingeschaltet -> I3 eingeschaltet -> I2 ausgeschaltet (alles schön langsam nacheinander):



Ist noch nicht unbedingt das, wo Du hin wolltest, oder?
:p
Sorry.



Bei meiner momentanen Variante muss man aber auch (wie bei Dir) diese Mehrfacheingabe noch rückgäng machen.
Das Problem hast Du auch noch. Ich hab' den Benutzer zumindest mal mit einer Lampe an Q6 auf diese Fehleingabe aufmerksam gemacht, damit er weiß, das er da was rückgängig machen muss.
Hab' da momentan 2 Lösungsvarianten am Test. Mal sehen.


Wenn Du soviele Analog-Blöcke mit einem High am EN versorgen musst, find' ich es übersichtlicher den EN-Eingang einfach unbeschaltet zu lassen und nur zu negieren. Kommt das gleiche Ergebnis raus.

Du hast die unbenutzten Analog-Ausgänge zwar auf einen Dummy-Schwellwertschalter geführt, aber deren Digital-Ausgang wiederum unbeschaltet gelassen. Der braucht aber auch einen Abschluss, z.B. eine offene Klemme, damit die reale LOGO! nicht in Störung geht.
Bei dieser Dummy-Geschichte lassen sich 2 unbenutzte Analogausgänge mit einem Analogkomperator zusammen fassen und bis zu 4 Digital-Ausgänge z.B. mit einem UND. So kann man Bausteine und offene Klemmen bzw. Merker sparen.
 
Mit den Zeiten hatte ich auch versucht. Allerdings kann es da theoretisch passieren, das zwar die Eingänge nacheinander betätigt werden, aber die Zeiten dann gleichzeitig auslaufen und dementsprechend die Eingänge gleichzeitig durchgeschaltet werden.
Muss man sich zwar Mühe geben, aber klappt auch bei Dir:



Wirklich verhindern kann man das nur, wenn die Freigaben für die erste Speicherstufe nicht gleichzeitig sondern immer getaktet nacheinander kommen. Ich hab' da zwei Varianten getestet, einmal mit Zählern und einmal mit Schieberegister.
Letzteres gefiel mir am Besten. Hab' dann noch etwas Aufwand betrieben, damit die Taktung nicht ständig läuft, da das Geblinker in der Simu mir auf den Keks ging. Ansonsten könnte man bei mir noch auf die ganze Erfassung der Eingänge verzichten:

(auf dem 3. Bild wären die Dummies)

Hab' Dir die Version mit der ständigen Taktung auch mal mit ins zip gepackt.
Sowohl bei der Zeit als auch bei der Taktung kann sich bei ganz dicht aufeinander folgenden Einschalten zweier Eingänge u.U. der letztere noch vordrängeln. Das ist dann halt so, als ob sie gleichzeitig eingeschaltet worden wären.
 

Anhänge

  • 2 von 5 (Doppelhaushälfte 2).zip
    75,2 KB · Aufrufe: 6
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Dir für die tolle Arbeit.
Die Lösung mit dem Schieberegister erscheint mir optimal für das Problem.
Sobald man Zeitverzögerungen ins Spiel bringt geht man Kompromisse ein, das ist irgendwo klar.
In meinem Fall war das die Prioritätenverteilung der Eingänge aufgrund der unterschiedlich eingestellten Zeiten und die Gefahr, daß die Einschaltverzögerungen zeitgleich auslaufen.
Was man doch aus einer LOGO alles herauskitzeln kann... ;)
Grüße, LT Smash
 
Zurück
Oben