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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Produktverfolgung

  1. #1
    Registriert seit
    21.07.2009
    Beiträge
    59
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPSler

    wie wurdet ihr folgendes Programmieren?

    Ich hab einen Rundlaufer mit festen Positionen und nutze ein Schieberegister in das ich schreibe falls das Produkt mal einen Fehler hat,
    am Auswurf werfe ich fehlerhafte Produkte aus.
    Ein Produkt kann aber mehrere Fehler haben, sehe ich in meinem System nicht.

    Ich konnte naturlich fur jeden Fehler ein extra Schieberegister schieben (hab ich teilweise) aber da gibt es doch sicher eine bessere Loesung?
    Was fur Vorteile hab ich wenn ich mit Pointern arbeite, hab ich noch nicht so ganz verstanden?

    Danke
    Zitieren Zitieren Produktverfolgung  

  2. #2
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.790
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    mach doch ein FiFo Register und erstelle für jede Bearbeitunsstation ein
    Index Zeiger auf das FiFo Register. Der Inhalt des Register kann dann für
    jedes Werkstück mehr Information haben bis zu einen Struct bzw. Array.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  3. #3
    Registriert seit
    04.04.2007
    Beiträge
    182
    Danke
    27
    Erhielt 0 Danke für 0 Beiträge

    Reden

    Wie meinst du das, dass für jede Station einen Zeiger braucht?
    Wie können die Zeiger auf das gleiche FiFo-Register zugreifen?

    Ich danke dir für dein Hinweis!!!
    Geändert von Pinguino (04.08.2010 um 08:38 Uhr)

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    du könntest alternativ zu deinem Schieberegister (Array_of_Bool) ein Array_of_Byte oder sogar Array_of_Word aufbauen. Hier gibt es dann zu jeder Position deines Rundschalttisches ein Speicher-Element, dass du entsprechend beschreibst. Du bräuchtest hierbei keine Pointer für die Zugriffe sondern kannst die einzelnen Bits immer absolut setzen. Das Einzige ist das Rotieren deines Schiebespeichers - da würde sich eine indirekte Adressierung anbieten, was du dann ansteuerst, wenn du auch den Rundschalttisch ansteuerst ...

    Gruß
    Larry

  5. #5
    Registriert seit
    21.07.2009
    Beiträge
    59
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ist nicht ein einfaches Schieberegister hier die bessere Losung? was fuer Vorteile hab ich durch ein Fifo?
    Ich lege das Produkt in den Rundlaefer und Takte immer eine Station weiter, nach z.B. 8 Stationen verlaesst das Produkt den Rundlaefer wieder oder wird ausgeworfen.

    Was fuer Vorteile hab ich durch das Fifo im vergleich zu einem Schieberegister?

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    ... du kannst auf die Weise das machen, was du möchtest ...

  7. #7
    Registriert seit
    21.07.2009
    Beiträge
    59
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich koennte also ein ganzes Word schieben und in die einzelnen Bits verschiedene Fehler schreiben, das hoert sich fuer mich schon verstaendlicher an.

    "Das Einzige ist das Rotieren deines Schiebespeichers - da würde sich eine indirekte Adressierung anbieten, was du dann ansteuerst, wenn du auch den Rundschalttisch ansteuerst ..."

    Das verstehe ich nicht, wie soll ich das machen?

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    ... du machst dir einen DB mit der Anzahl von Worten, die du Plätze auf deinem Rundschalttisch hast.

    Änderst du an dem Status eines Platzes etwas, so setzt (oder rücksetzt) du ein Bit in dem zuständigen Datenwort.

    Willst du den Schiebespeicher takten, so kopierst du die Worte um ein hoch (von hinten nach vorne).
    Also ohne Schleife :
    Code:
    L DB1.DBW18
    T DB1.DBW20
     
    L DB1.DBW16
    T DB1.DBW18
     
    usw.
    ... und vielleicht auch noch eine Flanke einbauen ...

    Gruß
    larry

  9. #9
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.790
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    Zitat Zitat von Pinguino Beitrag anzeigen
    Wie meinst du das, dass für jede Station einen Zeiger braucht?
    Wie können die Zeiger auf das gleiche FiFo-Register zugreifen?

    Ich danke dir für dein Hinweis!!!
    Ich bin für jeden Hinweis gerne zu haben,
    so habe ich das gemeint einen Zeiger der Hochtaktet für das Register
    selber und jeweils einen Zeiger für jede Station die beim Takt den
    Register Zeiger folgen. Haben alle Zeiger den selben Wert ist alles ab-
    gearbeitet. Dieses Register kann dann z.b. 1000 Einträge haben, ist das
    Ende erreicht wird wieder bei 1 angefangen, so mussen nicht ständig
    die Werte umgeladen werden.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  10. #10
    Registriert seit
    21.07.2009
    Beiträge
    59
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Larry Laffer

    so werde ich das wahrscheinlich machen, gefaellt mir gut und ist einfach.

    Ich frage mich jetzt nur, welche Vorteile koennte ich hab wenn ich versuche das ueber Pointer zu machen?

Ähnliche Themen

  1. Produktverfolgung / Robustheit
    Von arcis im Forum Programmierstrategien
    Antworten: 22
    Letzter Beitrag: 24.03.2008, 15:24

Lesezeichen

Berechtigungen

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