Bosch CL200 und Ebelt Textanzeige

mech_99

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

Ich habe da ein großes Problem. Ich möchte mittels einer Bosch CL200 SPS eine schon etwas älter Ebelt Textanzeige ansteuern. Die Ansteuerung erfolgt über A0.0 – A0.7 (AB0.0) im Dualsystem. Ausgegeben werden sollen 10 Texte die über Merker eingeschaltet werden (M0.0 = Text_1 ; M0.1 = Text_2 ....)

Nun mein Problem : Wie kann ich es realisieren das alle aktivierten Texte 5 sec. Lang der Reinfolge nach angezeigt werden und nach der letzten Meldung alles wieder von vorne beginnt ...??????

Die Meldungen stehen durcheinander an z.B Text_1,3,8,10 und im nächsten Durchgang kann es wieder anders sein.

Ich bin wirklich bald am verzweifeln. Kann mir jemand den richtigen Denkanstoss geben.
Wäre über jede Hilfe sehr dankbar :p

Vielen vielen Dank schon einmal im Voraus
 
Hallo Mech_99,
Leider kenne ich deine Steuerung nicht und auch nicht die zu verwendende Programmiersprache. Trotzdem möchte ich dir meine Lösungsstrategie vorschlagen (SPS-neutral). Die verbale Beschreibung ist an STEP7 angelehnt
Wovon gehe ich aus?
1. Solange ein Fehlertext ausgegeben werden soll, ist auch der zugehörige Merker auf 1-Signal. Der Fehler steht im DBB als Dualzahl.
2. Deine Steuerung kann auch Datenbausteine verwalten
3. Deine Steuerung kann auch Programmsprünge realisieren
4. Eine nicht belegte Meldung wird im DB codiert z.B. mit FF
Lösungsstrategie:
1. Zentrale Funktion ist eine FC1, welche den Inhalt des DB zusammenschiebt, so dass keine Lücken im Datenbestand auftreten. Dieses würde nämlich beim Löschen einer Meldung passieren. Gleichzeitig bietet eine solche FC viele weitere Vorteile (weshalb, kommt gleich!)
Innerer Aufbau der FC:
For X=0 to 10
IF <DBB(X)=FF then
FOR Y=X to 10
DBB(Y):=DBB(Y+1)
NEXT Y
END_IF
NEXT X
DBB(11):=FF // sicherheitshalber
Diese FC wird mehr oder weniger oft von den anderen Funktionen aufgerufen.
2. Eine FC2, um einen vorhandenen Eintrag zu suchen und zu löschen
Innerer Aufbau der FC:
Vorgabe: Löschwert
FOR X=0 to 10
IF DBB(X)=Löschwert then DBB(X)=FF
NEXT X
Anschließend immer Aufruf der FC aus Punkt 1. Damit schließt sich die Lücke sofort wieder.
3. Eine FC3, um einen "Neuwert" immer auf Platz 10 zu schreiben
Vorgabe: Neuwert
Innerer Aufbau der FC:
DBB(10):=Neuwert
Anschließend immer Aufruf der FC aus Punkt 1. Damit schließt sich die Lücke sofort wieder.
4. Ein Taktgeber mit je 2,5s Ein/Aus. Dieser dient der Ausgabesteuerung. Ausgegeben wird immer DBB(0). Tritt eine pos. Flanke des Taktgebers auf, wird DBB(0) nach DBB(10) kopiert. In DBB(0) wird FF geschrieben.
Innerer Aufbau der FC:
DBB(10):=DBB(0)
DBB(0):=FF
Anschließend immer Aufruf der FC aus Punkt 1. Damit schließen sich die Lücken sofort wieder.
Veränderung des Datenbestandes:
1. Eintragen einer neuen Fehlermeldung:
Bei pos. Flanke z.B. des Merkers M0.2 wird der FC3 mit Parameter 3 aufgerufen. Bei Flanke an M0.5 wird 5 parametriert usw. Also, alle 10 Merker müssen auf pos. Flanke abgefragt werden.
2. Löschen einer vorhandenen Fehlermeldung:
Bei neg. Flanke z.B. des Merkers M0.2 wird der FC2 mit Parameter 3 aufgerufen. Bei Flanke an M0.5 wird 5 parametriert usw. Also, alle 10 Merker müssen auch auf neg. Flanken abgefragt werden.
3. Ausgabe der Textanforderungen:
Im DB steht die duale Codierung deiner Fehlernummern. Realisiert wird ein Ringspeicher, wobei immer nur Byte 0 ausgegeben wird. In STEP7 würden die Befehle lauten:
L DB6.DBB0
T AB0
Soweit für heute, hoffentlich hilft's.
Ansonsten bitte persönliche Nachricht!
 
Zurück
Oben