Produktverfolgung

markuscps

Level-1
Beiträge
59
Reaktionspunkte
0
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
 
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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!!!
 
Zuletzt bearbeitet:
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
 
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?
 
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?
 
... 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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
@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?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.

Kannst du mir zeigen wie du das gemeinst hast mit einem konkreten Beispiel: "Zeiger der Hochtaktet für das Register und jeweils einen Zeiger für jede Station den Register folgen". Somit wird es durchsichtiger und verstehe wie Du es gemeint hast!!
 
Kannst du mir zeigen wie du das gemeinst hast mit einem konkreten Beispiel: "Zeiger der Hochtaktet für das Register und jeweils einen Zeiger für jede Station den Register folgen". Somit wird es durchsichtiger und verstehe wie Du es gemeint hast!!

Ich habe es dir doch gerade erklärt,
soll ich dir noch ein Gemälde dazu malen?
 
das hat den Vorteil das du jeden Aggregat seinen eigenen Trigger geben
kannst, so kannst das eine schon weiterbeartein z.b. in der nächsten
Station obwohl das andere noch nicht fertig ist.

Wir nutzen so etwas in der Holzbearbeitung und nennt sich da Strecken-
steuerung. Das mußt du dir so vortstellen das du eine Maschine hast die
von 5-70m sein kann. Auf dieser sind dann Bearbeitungsaggregate, z.b.
Fräser. Da läuft das Werkstück dran vorbei und dann setzt der Fräser dann in
das Werkstück ein, wenn es dran vorbei läuft.

Diese Maschinen laufen von 15-120m Vorschub, es können dann so als
Beispiel 50 Werkstücke in der Maschine sein.
 
Hallo Helmut
Wie Du mir das erklärt hast und wenn ich die PDF-Datei anschaue da kann nur ein Werkstück weitergeschaltet werden. Stimmt das?
 
Zurück
Oben