programmierproblem mit siemens s5

gorden

Member
Beiträge
14
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
hallo zusammen,

ich bin sprichwörtlich am ende, meine logik hat versagt...
ich hoffe einer von euch kan mir weiter helfen...

also: ich muss eine steuerung programmieren in der es 10 taster gibt, und wenn ich alle 10 taster in einer reihenfolge drücke (egal wie die reihenfolge ist) muss das programm einem nach dem anderen abarbeiten... (z.b. wenn ich die kombination drücke 1 3 5 2 8 4 6 9 10 7 dann müssen auch die ausgänge nacheinander so kommen 1 3 5 2 8 4 6 9 10 7...)
als AG hab ich eine siemens simatic s5 100u cpu 103
softwareversion weis ich nicht, kan ich aber danach schauen, wenn das wichtig ist...

mfg
gorden

p.s. wenn jemadn die frage nicht verstanden hat, fragt nochmal nach ich bin nicht besonders gut was zu beschreiben :)
 

Markus

Administrator
Teammitglied
Beiträge
5.296
Punkte Reaktionen
1.322
ich würde eine art schieberegister machen.

du schreibst deine eingange alle in ein mw das überwachst du auf wertänderung. wenn deer wert sich ändert schreibst du den entsprechden eingang in eine stelle in mw xy und zählst den pointer von mw xy eins hoch...
 

Ralf

Well-known member
Beiträge
194
Punkte Reaktionen
50
Zuviel Werbung?
->Hier kostenlos registrieren
Du willst die Reihenfolge merken und danach ausgeben (ist das richtig)
Schrittkette:
Merken solange bis alle einmal gesetzt waren (mehrfach drücken gibt's hoffentlich nicht (den einzelnen Eingängen Worte eines DBs zuweisen, dabei aufwärts zählen
Beim nächsten Schritt alle Worte der größe nach sortieren (hierzu mal nach "Bubblesort" googeln)
Im nächsten Schritt sortiert ausgeben

Gruß

Ralf
 
OP
G

gorden

Member
Beiträge
14
Punkte Reaktionen
0
ralf der vorschlag ist gut, aber was mache ich wenn ich nicht alle 10 drücke sondern nur 5 taster oder so?
das hab ich vergessen dazu zu schreiben, sry...
 

Ralf

Well-known member
Beiträge
194
Punkte Reaktionen
50
Bei 5 Tastern wäre das Wort der verbleibenen Taster ja noch null (muß man dann halt vorher zurücksetzen) die kann man dann von der Ausgabe ausnehmen, größere Schwierigkeiten wären das drücken von mehr als 10 Tastern (also zweimal den gleichen Tastern innerhalb einer Sequenz)

Gruß

Ralf
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Ich habe es noch nicht ganz verstanden:
1. Sollen die Ausgänge auch Impulse liefern ?
2. Bei einer 5-Taster-Sequenz: Woher weiss das Programm das die Eingabe benedet ist und die Ausgabe jetzt folgen soll? Starttaster? Zeit nach letzter Betätigung?
Egal wie, bubble sort braucht man nicht, Zeiger nicht unbedingt.

Im Prinzip einfach das ganze EW (eventuell anderweitig benutzte Eingänge ausmaskieren) speichern, Beim nächsten Taster in nächste Speicherstelle speichern. Das geht mit pointern (oder B MWx, war doch S5?) oder festen Adressen, die abhägig von Zählerstand oder Schrittmerkern benutzt (nicht benutzen durch übersringen oder bedingten Bausteinaufruf) werden. Anschließend die gespeicherten Worte der Reihe nach ins AW kopieren.
Doppelte Tastendrücke geben Impulse an zwei Ausgängen.

Keine Impulse, sondern Ausgang ab "ersten Aufleuchten in der Sequenz" halten? Einfach mit bestehendem AW verodern.
 
Oben