Schieberegister in C programmieren

Thinkoka

Level-1
Beiträge
14
Reaktionspunkte
0
Hallo zusammen

Ich bin neu hier und habe noch nicht sehr grosse erfahrung im C Programmieren, und leider keinen anhaltspunkt wie ich beginnen soll.

Ich habe vollgende Signale:
Sensor 1-4
Drehgeber
Mitnehmertakt der Kette
Signal Ausgang

Ich habe eine Kette die mein produkt transportiert, ich kann mehrere produkte auf meine Kette stellen die nicht den gleichen abstand zum ausgang haben.
Sobald ein Produkt auf der Kette ist wird es vom jeweiligen Sensor erkannt (je nach abstand dum ausgang) Sensor 1 ist vorne und die restlichen kommen weiter hinten
Wie muss ich das Programmiern das ich weiss wann mein Produkt beim Ausgang ist?

Kann mir jemand einen Tipp geben?
 
Gib mal bitte noch ein paar Details preis.
Entspricht der Mitnehmertakt der Kette den minimal möglichen Abstand der Produkte?
Verstehe ich das richtig? Das Produkt kann auf vier mögliche Positionen auf die Kette gelegt werden, was durch die Sensoren angezeigt wird, also quasi eine variable Beschickungsposition?
 
Ich hoffe, das ist ein Spielzeug. Sonst lass Dir vom Chef zumindest einen Einführungskurs bezahlen.

Noch ein Hinweis, die SPS werden nicht in C programmiert, zumindest nicht bei solchen Anwendungen.
 
Ja der Mitnehmer Takt entspricht der Kette hat aber einen separaten Sensor. Der minimal Abstand der Produkte ist ca. 200mm
Ja genau die Produkte können an vier verschiedenen Positionen auf die Kette gelegt werden was durch die Sensoren angezeigt wird (variable Beschickungsposition).
 
Hallo Thinkoka,
bezüglich des Mitnehmertaktes muss ich nochmals nachhaken, entspricht ein Mitnehmertakt dem vollständigen Vortransport einer Beschickungsposition oder bedarf es mehrerer Takte?
 
Hallo oliver.tonn
Ja EIN Takt etspricht dem vollständigen Vortransport einer Beschickungsposition
 
Wieviele Mitnehmertakte braucht es denn maximal, bis das am weitesten entfernte Produkt den Ausgang erreicht?
Sind das mehr als 32?
Falls nein, macht man ein einfaches Bit-Shifting auf ein Long Integer. Wenn es mehr als 32 Takte sind, muss man mehrere Shiftregister in Reihe nutzen und den Overflow durchreichen.

Mein Rat, informiere dich über die Themen Bit-Shifting und Bit-Masking (Bit Maskierung). Die beiden Dinge wirst du brauchen und solltest du auch verstanden haben.

Man kann das auch mit einem Array oder Pointern lösen, aber Bit-Shifting ist da die effektivste Herangehensweise meiner Meinung nach.
 
Hallo noch mal

Wollte kurz nachfragen ob Ihr noch weitere Tipps bezüglich diesem Thema für mich hättet?

Besten Dank im voraus
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…