Step 7 7-Segmentanzeige

Dennis2012

Level-1
Beiträge
12
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin dabei eine 7-Segmentanzeige mit einer S7-200 anzusteuern.

Über 8 Eingänge wird erkannt welche Maschine eine Anforderung hat. Jeder diese Maschinen hat eine einstellige Nummer, die dann auf der Anzeige dargestellt werden soll.
Die Anzeige hat einen eigenen Controller und benötigt lediglich 4 Binärzustände, welche ich über 4 Ausgänge schalte.

Wenn nur ein Eingang da ist, funktioniert alles einwandfrei. Der jeweilige Binärcode wird über die 4 Ausgänge geschaltet und alles ist gut.

Werden jetzt aber zwei oder mehr Eingänge gleichzeitig belegt, werden die unterschiedlichen Binärzustände überlagert und es wird die falsche Zahl dargstellt.
Nun könnte ich ja alle 256 Zustände (2^8) programmieren, doch könnte das ein Speicherproblem bei der 200 werden und es gibt doch eventuell einen einfacheren Weg?

Vielen Dank!
 
Hi,
also wenn grundsätzlich die Möglichkeit besteht das mehrere Maschinen gleichzeitig eine Anforderung haben,
dann solltest du das in deinem Programm berücksichtigen.
Deine 7-Segmentanzeige wird eine einfache BCD codierte Anzeige sein?!
Eine solche Anzeigesituation mit einer S7-200 und einer BCD Anzeige umzusetzen ist sicherlich kaum zeitgemäß
und hört sich eher nach einer Schulungsaufgabe an.
Lade doch mal dein Projekt hoch, dann kann man da vielleicht eine Hilfestellung geben...

Gruß, Toki
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wenn mehr als 1 maschine aktiv ist kann das nicht funktionieren. was soll denn angezeigt werden wenn zb m1 und m2 aktiv sind?
 
Nee das ist ein "bau uns mal was aus dem Lagerbestand" Auftrag.

Ja genau das ist ja das Problem wenn zwei Maschinen aktiv sind.
Da könnte man meiner Meinung nach höchstens eine Hierarchie programmieren, so dass M1 die erste Ebene bildet, M2 die zweite... So dass dann z.B. wenn alle Maschinen eine Anforderung haben M1 angezeigt wird. Wenn dann nur noch M2/3/4/5/6/7/8 eine Anfordeung haben M2 angezeigt wird etc.
 
... man könnte dann auch die Anzeige (im x-Sekundentakt) zwischen den jeweils aktiven Maschinen toggeln lassen ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe ich schon probiert, jedoch geht das leider nicht, da wir zum Einen Relaisausgänge an der 200 haben und dessen mechanische Trägheit dies nicht zu lässt und zum anderen wird es auch durch die Zykluszweit kritisch. Ebenso hat das Display eine eigene Controllerplatine, welches die 4 Stellen im 10 ms Takt toggeln lässt ;)
 
hmm.. wieso?

Gibt es keine Möglichkeit über AWL das ganze zu lösen? Eventuell jedem Eingang eine Ganzzahl zuordnen und dann alle Zahlen addieren und durch x teilen und mit diesem Wert die Ausgänge für den Binärcode schalten?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das wird sicherlich über AWL funktionieren, aber auch das wird ein gewisser Aufwand sein...
Die Frage ist wie zeitnah die Anzeige aktualisiert werden MUSS. Wenn das nur alle paar Sekunden / Minuten sein muss
dann spielt die Trägheit der Relaisausgänge keine Rolle.
Was muss denn die kleine 200er sonst noch alles tun das du Angst um die Zykluszeit hast?
Wenn deine Anzeige Beispielweise alle 2 Sekunden umschaltet bei mehrfacher Anforderung,
dann dürfte es nirgends zeitkritisch werden.

Gruß, Toki
 
Ja eigentlich alle 10ms, da dies der Zyklus des Controller boards ist, damit man optisch das Multiplexen der Segmente nicht sieht. Habe aber jetzt eine Möglichkeit gefunden, dass alle 5 Sekunden eine Aktualisierung reicht.
Die 200 ist nur für die Anzeige. Wie gesagt war diese halt noch vom Lager übrig. Genau wie die Anzeige.
 
Irgendwie hast Du Toki0604 immer noch nicht verstanden. ;)

Da Du jetzt aber eine Lösung hast, würdest Du sie für andere mit einem ähnlichen Problem hier online stellen?
 
Die Zykluszeit von 10ms Deines Controllers ist für das Toggeln der Anzeige zwischen den bestehenden Anforderungen nicht entscheidend, da dies ja nicht in dieser Zeit erfolgen soll. Wenn Du, wie von Toki0604 vorgeschlagen, die Anzeige alle 2 Sekunden änderst, ist die Ausgabe in der Zwischenzeit natürlich konstant für Deinen Controller anstehend. Nur die Änderung erfolgt nach 2 Sekunden.


Wenn ich Dich richtig verstanden habe, machst Du es ja jetzt auch so, wenn auch Deinem Post nach scheinbar unbewußt.
Deshalb noch mal meine Frage:
Da Du jetzt aber eine Lösung hast, würdest Du sie für andere mit einem ähnlichen Problem hier online stellen?


Mal so nebenbei:
Was passiert denn, wenn mehrere Anforderungen bestehen? Werden die der Reihe ihres Auftretens nach abgearbeitet oder nach Wichtigkeit?
Und wie werden die Anforderungen wieder gelöscht? Von der jeweiligen Maschine selbst (also durch Rückstellen des jeweiligen Eingangs) oder durch Quittierung in der S7-200?
Und was sind das eigentlich für Anforderungen? Material zum Verarbeiten nachfüllen?

Sorry, bin halt etwas neugierig. :)
 
Ich habe jetzt die Ausgangsleitungen von den Ausgängen zu den Binäreingängen mit Dioden versehen, so dass mehrere Ausgänge auf einen Binäreingang wirken können, ohne die Signale zu überlagern. Dann habe ich via KV-Tafel die Ausgangszahl reduziert da ich nun 13 Ausgänge brauchte aber nur 10 zur Verfügung habe.
Nun kann ich die 8 Maschinennummern auf 4 Segmenten darstellen, so dass pro Segment zwei Maschinennummern dargestellt werden.

Die Anforderung wird mittels Knebelschalter realisiert, welche wieder zurückgeschaltet wird vom Bediener nach erfolgreicher Abarbeitung.
Für die Wichtigkeit der darzustellenden Maschinennummer, wenn beide M.-Nr. dargestellt werden sollen, habe ich zwei Hierarchieebenen programmiert.

Nein es geht um eine Materialabholung.

Kein Problem ;)
 
Zurück
Oben