Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Ringspeicher mit Vergleicher

  1. #1
    Registriert seit
    16.01.2015
    Ort
    Passau
    Beiträge
    20
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Community,

    ich bräuchte dringend eure Hilfe!!!!!

    Bin erst seit 3 Wochen in der Programmierung so wirklich drinnen.
    Meine aufgabe ist es einen Ringspeicher zu programmieren in dem insgesamt 20 Nummern geschrieben werden sollten. Nach jedem Prüfvorgang kommt quasi eine neue nummer hinzu und die letzte soll "hinausgeschoben" werden. Die nummern sind 8 stellig. Sie sollen dann vergliechen werden.
    das heißt jede nummer darf nur einmal im speicher vorkommen. wenn das nicht der fall ist soll eine Fehlermeldung kommen das zweimal die gleiche nummer gescannt wurde (Handscanner).

    ich hab heute schon den ganzen gegoogelt und im Forum nachgeschaut aber ich weiß einfach nicht wie und wo ich anfagen soll.

    Hoffe ihr habt vll einige tipps für mich bzw. code etc., irgendwas das mir weiterhilft!

    Danke schonmal im vorraus.

    Euer Fabian.
    Zitieren Zitieren Ringspeicher mit Vergleicher  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ich fang mal mit Tips an:

    1. Programmieren in SCL.
    2. Programmieren eines Ringbuffers mit einem Zeiger
    ein FB mit Array[1..20] of String[8] im Stat definiert (ich geh mal von einem String aus)
    ein Zeiger INT

    Ablauf:

    -Neuer String gescannt --> Eintragen des String als IN in den FB, Starten deri Eintrags mit einer Flanke
    -Zuerst suchen über das Array[1..20], ob der Eingangsstring <> dem jeweiligen Element
    läuft die Suche bis 20 durch, kann der String an die Position eingetragen werden, auf die der Zeiger zeigt, wenn nicht --> Errormeldung und kein Eintrag, da der String bereits vorhanden

    wenn Eintrag --> Der Zeiger startet bei Initialisierung mit Wert 1. Soll ein String eingetragen werden, dann auf Element[Zeiger], danach wird der Zeiger um 1 erhöht und gepüft, ob er > 20 ist. Ist er das, dann wir der Zeiger auf 1 gesetzt, ansonsten passiert nichts weiter

    Eine Init-Routine würde ich noch vorsehen, Zeiger auf 1 und in einer Schleife alle Array-Einträge auf ''
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Amkonianer (17.03.2015)

  4. #3
    Registriert seit
    02.06.2006
    Beiträge
    223
    Danke
    7
    Erhielt 41 Danke für 35 Beiträge

    Standard

    Als ersten Ansatz kannst du dies mal nehmen
    Scl-fifo
    Es gibt aber bei der Forumssuche auch noch zig andere Beiträge

  5. Folgender Benutzer sagt Danke zu georg28 für den nützlichen Beitrag:

    Amkonianer (17.03.2015)

  6. #4
    Amkonianer ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.01.2015
    Ort
    Passau
    Beiträge
    20
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen dank erstmal für eure schnellen antworten.

    an ralle: nein ein string ist es nicht, es ist ein Array von 8 chars.

    ja ich weiß bei der Suchfunktion kommen etliche fifo lösungen etc. aber ich weiß einfach nicht welchen ich benutzen soll bzw. wo ich anfangen soll, steh ziemlich unter Zeitdruck und soll bist nächste Woche diesen ringspeicher programmieren und soll auch noch Datenarchivierung machen und ich hab keine Ahnung wie ich das mit dem tabellenformat mach

    ich schau das ich zumindest diesen ringspeicher erstmal hinbekomme
    PS: Hab auch noch nie in SCL programmiert

  7. #5
    Amkonianer ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.01.2015
    Ort
    Passau
    Beiträge
    20
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wie kann ich nun diese 8 chars in einen string umwandeln? funktioniert das überhaupt?

  8. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Vielleicht solltest du erstmal damit anfangen, dir ein Konzept zu erstellen : Was will ich wie machen ...

    Zu deiner letzten Frage :
    AT-Sicht auf deinen definierten String machen, der den Zeichenanteil davon als Array of Char (am Besten in gleicher Größe wie deine Quelle) sieht. Dein Quell-Array of Char dem Array of Char in der AT-Sicht zuweisen. Die Stringlänge im String eintragen. Nun kannst du in der Folge mit dem String arbeiten.

    Wenn das Ganze zu etwas Code werden soll würde ich vorschlagen, du erstellst erstmal etwas und veröffentlichst das hier und wir entwickeln das dann GEMEINSAM weiter ...
    So "ins Blaue" werden wir m.E. nicht wirklich weiter kommen ...

    Gruß
    Larry

  9. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Amkonianer (17.03.2015)

  10. #7
    Registriert seit
    02.06.2006
    Beiträge
    223
    Danke
    7
    Erhielt 41 Danke für 35 Beiträge

    Standard

    Wie Larry Laffer schon schrieb, fang mal an dass du es schaffst (eventuell mit dem Codesnippet) dass dein erster Wert durch ein Startsignal in das FIFO geschrieben wird und der letzte rausfliegt. Der Vergleich der Charwerte ist dann noch eine 2. weitere Ausbaustufe der Funktion

  11. #8
    Amkonianer ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.01.2015
    Ort
    Passau
    Beiträge
    20
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Unbenannt3.PNG
    Nun will ich quasi diese 8 chars in einen string zusammenfassen damit ich den dann im ringpuffer speichern kann, und jedes mal wenn ein neuer string in den puffer kommt soll er mit allen anderen vergliechen werden damit es nicht vorkommt dass das teil welches gescannt wird 2 mal vorkommt.

  12. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Zu dem "die Chars in einen String bringen" habe ich dir doch etwas geschrieben - versuch doch mal das umzusetzen, dann den Code zu posten ... und dann schauen wir mal ...

  13. #10
    Amkonianer ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.01.2015
    Ort
    Passau
    Beiträge
    20
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja ich hab das gelesen, leider hab ich keine Ahnung von SCL, bzw. ich versteh das einfach nicht was ich machen soll und wie das funktioniert

Ähnliche Themen

  1. problem mit vergleicher
    Von Hetzer im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 28.10.2013, 09:29
  2. Antworten: 6
    Letzter Beitrag: 25.01.2012, 21:12
  3. problem mit doppelwort am vergleicher
    Von TypeRG10 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 13.09.2011, 15:27
  4. Vergleicher mit Step 7
    Von KingGanja im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 13.01.2009, 15:04
  5. Problem mit vergleicher
    Von CrackerJack1 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 11.10.2007, 18:35

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •