Bräuchte Hilfe um Reihenfolge zu speichern .

Chris30

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

ich mache über Abendschule eine Fortbildung zum Elektrotechniker , und wie es nunmal so ist , haben wir auch das Thema Automatisieren .
Wir arbeiten mit Step7 und schreiben alles in FUP , ein bischen SCL hatten wir auch schon , und haben nun eine ziemlich kniffelige Aufgabe bekommen , wobei ich hilfe bräuchte .

Ich bin für jede Hilfe dankbar .

In einem Baustoffzentrum gibt es für jede Abteilung einen Informationsstand . Insgesamt gibt es neun Informationsstände . An jedem Informationsstand befindet sich ein Taster , mit dem der Kunde wenn er diesen betätigt ein Ausruf über die Lautsprecheranlage starten kann damit ein Mitarbeiter zum jeweiligen Informationsstand kommt .Es kann immer nur ein Text abgespielt werden , jeder weitere Text kommt in eine Warteschleife und wird der Reihenfolge abgearbeitet . Die Schleife darf nur drei Ansagetexte groß sein . :confused:

Z.B S4 wird betätigt , dann S3 und zum Schluß S9 . Zuerst muß Ausruftext 4 laufen dann Ausruftext 3 und dann Ausruftext 9 .

Informationsstand 1 = S1 ( Taster )=E0.0
Informationsstand 2 = S2 ( Taster )=E0.1
Informationsstand 3 = S3 ( Taster )=E0.2
Informationsstand 4 = S4 ( Taster )=E0.3
Informationsstand 5 = S5 ( Taster )=E0.4
Informationsstand 6 = S6 ( Taster )=E0.5
Informationsstand 7 = S7 ( Taster )=E0.6
Informationsstand 8 = S8 ( Taster )=E0.7
Informationsstand 9 = S9 ( Taster )=E1.0

An jedem Ausgang hängt sowas wie ein MP3 Player , der über das Ausgangssignal nur kurz angesteuert werden muß .
Ausruftext 1 (Textdauer 5s)= A0.0
Ausruftext 2 (Textdauer 5s)= A0.1
Ausruftext 3 (Textdauer 5s)= A0.2
Ausruftext 4 (Textdauer 5s)= A0.3
Ausruftext 5 (Textdauer 5s)= A0.4
Ausruftext 6 (Textdauer 5s)= A0.5
Ausruftext 7 (Textdauer 5s)= A0.6
Ausruftext 8 (Textdauer 5s)= A0.7
Ausruftext 9 (Textdauer 5s)= A1.0

Wie kriege ich es hin die Eingangssignale zu speichern :confused:
 
Hallo,
du mußt dir ein FIFO bilden (siehe hierzu auch in der Rubrik FAQ).
Hier schreibst du die Tasten als Code in der Reihenfolge der Betätigung rein und holst sie die entsprechend der Abarbeitung wieder raus ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für deine schnelle Antwort Larry .

Ok mit dem Fifo habe ich grob verstanden als ich mir die FAQ durchgelesen habe .

Aber ich muß ja irgendwie meine Digitalen Eingangssignale der Taster S1 bis S9 irgendwie nummerieren , da es ja Bits sind .

Wie kann ich also das S1 Signal in ein Wort oder so umwandeln ?:confused:
 
Hallo Chris,
am besten betrachtest du dir die Eingänge als EW0. Da hast du automatisch einen Zahlenwert als Integerzahl. Da die Ausgänge ebenfalls in der selben Reihenfolge liegen, kannst du die abgespeicherte Zahl direkt dem AW0 zuordnen.
Grüße Olli
 
Verstehe ich nicht ganz .

EW0 = Eingangsword 0 = Byte 0 und Byte 1 = 16 bit


Muß ich das unter Schnittstelle IN machen ?

Hast du vielleicht ein Beispiel ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

oder Du machst es einfach händisch, da brauchst halt 9 Netzwerke für die 9 Taster. Siehe Beispiel.

attachment.php


Gruss Daniel
 

Anhänge

  • Beispiel.jpg
    Beispiel.jpg
    88,1 KB · Aufrufe: 236
Vielen Dank dalbi .

Aber irgendetwas mit der Deklarationstabelle oben stimmt nicht wird rot hinterlegt genauso wie an den Bausteinen die Bezeichnung HM[0] .
Die Adressen sind oben auch anders als bei mir ?

Kannst du dir das mal auf dem Bild anschauen ?
 

Anhänge

  • Problem_1.JPG
    Problem_1.JPG
    130 KB · Aufrufe: 58
Hi,

da gehört ARRAY[0..15] OF BOOL rein. ;)
Alternativ hätte man auch Merker nehmen können.

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke Daniel für Deine schnelle Hilfe .

Woher bekomme ich nun einen FIFO Baustein oder befindet sich so einer unter den Standard Bausteinen von Step7 :confused: ???
 
Respekt Daniel , das nenne ich mal eine Speicherkette vom feinsten .

Wie sieht das denn mit den Ausgängen aus , denn jetzt müsste ich das ganze doch umdrehen , also das was aus der Speicherkette rauskommt als Int muß wieder in Bool umgewandelt werden ???:confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Erstmal vielen vielen vielen vielen .... Dank für Deine Hilfe Dalbi :D.

Ja , so weit bin ich noch nicht weil ich erst wieder am Wochenende dafür Zeit habe . ;)

Ich muß nämlich bis spätestens Mittwoch abgeben .
 
Hallo ,

hat jemand vielleicht eine Idee wie wie ich die Speicherkette
so ablaufen lassen kann , das Speicher 1 als erstes ausgeben wird , der Wert gelöscht wird und nach Zeit X Speicher 2 ausgeben wird , der Wert gelöscht wird und nach Zeit X Speicher 3 ausgeben wird und der Wert gelöscht wird . :confused:
 

Anhänge

  • Hausaufgabe.zip
    235,7 KB · Aufrufe: 5
Hallo Dalbi ,

so habe nun das Projekt etwas geändert und als archiviertes Projekt angehängt .

Es fehlt noch der Reset nach dem dreimaligen beschreiben des Fifo´s mit Wartezeit .
Und das lesen des Fifo´s.
z.B S1 = 1
S3 = 1
S6 = 1
wird der z.B Fifo so beschrieben darf er nach eben halt drei Eingaben über eine Zeit X keine weiteren Eingaben annehmen .

die Ausgabe von Text1 da S1 betätigt wurde soll direkt laufen und nach einer Pausenzeit von 10s soll Text3 laufen und nach einer weiteren Pausenzeit soll Text6 laufen .

Das mit dem Ansteuern der Ausgänge ist zwar nicht gut aber geht , mir ist nichts besseres eingefallen um die Ausgänge kurz anzusteuern und so kann ich sogar festlegen wie lange sie geschaltet sind
 

Anhänge

  • Hausaufgabe.zip
    216,2 KB · Aufrufe: 8
Zurück
Oben