Inkrementalgeber und der Zyklus

IchZappel

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Ich habe folgendes Problem:

Ich habe ein Transportband (nur Vorwärts) auf dem sich bis zu 21 Produkte befinden.
An bestimmten Positionen soll das Produkt behandelt werden.(ohne zu stoppen)
Die Positionserfassung erhalte ich über eine Startlichtschranke und einen Inkrementalgeber die bis zu 21 Zähler in der SPS „füttern“.(je nach Auslastung)
Nun schwankt der Inkrementalgebermesswert um +/- 5 Inkremente.
(Hersteller: Hohner 100 Imp/U entspr. 1 Ink = ca. 2,7638 mm)
5 Inkremente sind bei mir ca.1,5 cm. Das ist leider zuviel.

Der Inkrementalgeber ist auf eine Mitsubishi A1SX81 – Eingangskarte gelegt.
Diese kann ca 1.Schaltzustandwechsel alle 20ms erfassen entspricht 50 Schaltzustände pro Sek. Ich bekomme ca. 13,75 Impulse pro Sekunde vom Inkrementalgeber, sollte also nicht das Prob. sein.
Das Problem liegt wohl bei meiner Programm Zykluszeit.
SPS: Mitsubishi Q2ASH-S1
Laut „SCAN“ liege ich bei ca. 24ms min. Zykluszeit und 40ms max. Zykluszeit.
----------------------------------------------------------------------------------------------------------
Habe die Counter als Interruptcounter deklariert. Brachte nicht den Effekt.

Welche Möglichkeit der Inkrementwerterfassung habe ich, um nicht mit der Zykluszeit in Konflikt zugeraten??

Würde eine Zählerkarte überhaupt einen Effekt bringen? Weil die Inkremente werden schon richtig erfasst, aber die Zustandswechsel während des Durchlaufs verfälschen das Ergebnis.

Oder könnte ich für die Erfassung und die Zähler eine kleine SPS verwenden? Und wie bekomme ich dann die Daten verbunden?

Kann man das Eingangssignal und die Zähler in Echtzeit erfassen??
-----------------------------------------------------------------------------------------------------------
Vielen Dank im voraus,
Jörg
 
Bitte entschuldigt wenn die Frage schon behandelt wurde..(habe aber die Suche bemüht :confused: )..war nichts passendes dabei..

Fällt niemand etwas dazu ein oder ist das Problem zu einfach..(und ich schau wie ein Ochse auf den Berg??)

Update: Der Hotlinie fällt auch nichts defintives ein.Tja, und Interruptcounter sind wohl auch nicht das gelbe..

Mfg IchZappel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich weiß nicht was es bei Mitsubishi gibt, bei anderen Steuerungsherstellern gibt es Zählerklemmen, bei denen ein Wert eingefroren werden kann oder aber auch die Zählerei freigegeben werden kann mit externem Eingang (also quasi an der SPS selber vorbei, d.h. ohne Scantimeeinfluß. Desweiteren kann dann ein Ausgang gesetzt werden (ebenfalls von der Zählerkarte direkt ohne Umweg über die SPS). Das einzige was die SPS dann macht ist den Preset des Zählers (d.h. bei Dir die "Wegstrecke") an die Karte schicken. Sollte es sowas bei Mitsubishi nicht geben, dann kannst Du das evtl. auch über eine Wagoklemme der 750er Serie machen, die haben auch einen Feldbuskoppler mit CC-Link im Angebot.
 
wie wertest du den geber aus?
1fach
2fach
4fach flanke?

für 4fach ist deine zykluszeit bzw. auch die wandlungszeit der einänge zu schlecht. dein zyklus muss ja in dem fall kürzer sein als z.b. die zeit zwischen den beiden steigenden flanken von A und B.

da du nur in eine richtung fährst würde ich es mit der auswertung von nur einer spur versuchen, also einfach.
 
Da ich sowas praktisch noch nicht gemacht habe, hier mal
eine aus Handbuch-Wissen zusammengekratzte Möglichkeit.

In den PLC Parametern, kannst du unter PLC System für die Interrupts
I28 - I31 feste Ausführungszeiten zwischen 5 und 1000 ms eingeben.

Nach deinem Hauptprogramm brauchst du dann die Anweisung "FEND".
Sagen wir mal du stellst I28 auf 5ms Ausführungszyklus.
Eventuell musst du in deinem Programm ein wenig mit EI bzw. DI "spielen",
je nachdem ob du Programmteile hast, für die es sinnvoll ist, das diese nicht
von der Interrupt-Routine unterbrochen werden.

EI //Interrupts freigeben

;Dein Programm

FEND

I28
LDP DX0 "EA-Adresse" deines Gebers mit einem D vorne dran, also der Eingang wird nicht aus dem Prozessabbild sondern direkt ausgelesen.
INC D100 //Register deines Inkrementalgebers
IRET

END

Wäre zumindest einen Versuch wert.

Mfg
Manuel
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich lese zwischen den Zeilen das Du im Moment den Zähler auf einfach Eingänge Deiner Steuerung schickst - vorneweg, ich kenne Mitsubishi Steuerungen überhaupt nicht.
Kann es sein das diese "Filterzeit" haben um eventuelles Prellen zu unterdrücken? Ich habe schon einmal gesehen das Beckhoff Klemmen 30ms bzw. 3ms zu wählen waren...
Wenn Du nun an ganz normale Eingänge der SPS gegangen bist und das selber auswertest, dann bedenke, dass deine Steuerung beide Zustände braucht, um zählen zu können. Ein Zyklus high, der nächste low, dann wieder high währe demnach die schnellste folge. Bei einer maximalen Zykluszeit von 40ms würde ich von 45 oder 50ms ausgehen um ein wenig Luft zu haben. Um nun beide Zustände auswerten zu können, brauchst Du knappe 100ms, also 10Hz. 10 Impule pro Sekunde bei 50ms Zykluszeit.
Wenn Du nun sagst dass Du 13,75 Impulse pro Sekunde bekommst, dann meinst du sicherlich positive Impulse. Die Steuerung muss aber beide Zustände auswerden können, dann hast du also 27,5 Signalzustandsänderungen in der Sekunde - das geht nur bei einer maximalen Zykluszeit von 30-35ms. Ich denke einfach das Du mit Deiner jetzigen Zykluszeit sehr grenzwertig fährst, so dass Durch eine längere Zykluszeit durch Auslastung schlicht ein paar Signalwechsel übersehen werden.

Viele Grüße, Tobias
 
Danke für die Antworten..habe zwischenzeitlich eine schnelle Zählerkarte von Mitsubishi ausprobiert..
Der Erfolg mit der Karte war ziemlich mäßig..(liegt an der Technischenausführung der Karte (A1SD61))..

Werte das A-Signal 1.fach aus..

Naja,der Fehler fällt zu sporadisch an..Also kann der Zählfehler mal am Anfang meines Ablaufs oder eher zum Ende hin geschehen..
Alles schrott..korrigiere jetzt mit zwei zusätzlichen Lichtschranken..habe also mein System "gedrittelt"

Danke für den Interrupt vorschlag..aber ich habe 21 Parallel laufende Zähler und dann wird das mit den Interrupts problematisch..21 Interrrupts..bzw. wird der Rest des Programms entschieden zu langsam abgearbeitet..

Aber nochmals vielen Dank
Mfg Jörg
 
Zurück
Oben