TIA Denksport Band mit Encoder Teile prüfen und ein Stück weiter ausblasen

  • Ersteller Ersteller Flatpro
  • Erstellt am Erstellt am
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich versuche meine Version nochmal zu entwickeln ;)

Benötigt:
- Incrementalgeber am Band
- Lichtschranke an Auswerferposition
- Kamera mit Trigger und IO / NIO -Signal

Eure Schieberegisterlösung in Ehren: Ihr müsst aber vorher genau wissen, wieviele Teile zwischen Kamera un Auswerfer liegen. Eine Bandgeschwindigkeitsänderung bringt das schon aus dem Tritt.

Ein IO-Signal wird in eine Speicherstelle geschrieben mit fester Addition eines Offsets zu Ausblasstelle. Geschrieben wird dabei also ein DWORD.
Das nächste Signal wird in Speicherstelle + 1 geschrieben. Nehmen wir mal ein Array mit reichlich Plätzen (mehr als Teile im Maxfall auf dem Band liegen).

An der Auswerferstelle triggert jedes Teil eine Prüfung des obersten Wertes im Array. Ist ein Positionswert oben auf dem Array, welcher mit einer gewissen Toleranzspanne dem Positionswert des gerade vorbeifahrenden entspricht: Passieren lassen
Ist kein Positionswert vorhanden: auswerfen

Jetzt das Tabellenhandling: Jedes IO-Teil triggert jetzt ein Memcpy, bei dem das ganze Array um eine Speicherstelle nach oben geschoben wird. Zusätzlich eine Prüfung, ob oberster Arraywert älter ist als der aktuelle Encoderwert+ Toleranzspanne. In dem Falle auch Memcpy.

Vorteil: Relativ einfache Struktur. Dynamisch, sofern die Arraygröße nicht zu knapp gewählt ist. Ein Kameraausfall oder so lässt das IO-Signal ausfallen. Damit werden alle Teile am Auswerfer ausgeworfen, weil das IO-Signal fehlt. Verschobene Teile werden ebenfalls ausgeworfen. Durch die Prüfung auf Plausibilität des obersten Arraywertes kommt es durch verscobene oder heruntergefallene IO-Teile nicht zu einem Versatz im Register.

Jetzt gibt es nur noch ein Problem: Der DWORD-Überlauf bei der Offset-Addition. Da musst Du Dir keine Sorgen drum machen, wenn Du die Addition als DWORD durchführst.
 
ich hab das mal so gemacht:

1. ein Zählrad (Gabellichtschranke) erzeugt Impulse prportional dem Band.
(kann man hier auch aus dem Ink.Geber erzeugen.)

2. 5 Zähler:
Jedes NIO lädt einen freien (Bit) S7-Zähler mit dem Abstand zur Düse.

3. Zählrad Impuls Z R Zx

4. Wenn ein Zähler 0 erreicht: Blasimpuls setzen

5. 1/2 Materialzeit oder Strecke lang blasen

6. Prüfen ob auch ausgeblasen wurde, sonst stopp, oder wo anders in NIO befördern
 
Zurück
Oben