# Schieberegister in C programmieren



## Thinkoka (29 Februar 2016)

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?


----------



## oliver.tonn (29 Februar 2016)

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?


----------



## RobiHerb (29 Februar 2016)

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.


----------



## Thomas_v2.1 (29 Februar 2016)

RobiHerb schrieb:


> Noch ein Hinweis, die SPS werden nicht in C programmiert, zumindest nicht bei solchen Anwendungen.


Das sagt wer?


----------



## Thinkoka (29 Februar 2016)

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).


----------



## oliver.tonn (29 Februar 2016)

Hallo Thinkoka,
bezüglich des Mitnehmertaktes muss ich nochmals nachhaken, entspricht ein Mitnehmertakt dem vollständigen Vortransport einer Beschickungsposition oder bedarf es mehrerer Takte?


----------



## Thinkoka (1 März 2016)

Hallo oliver.tonn
Ja EIN Takt etspricht dem vollständigen Vortransport einer Beschickungsposition


----------



## MasterOhh (1 März 2016)

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.


----------



## Thinkoka (1 März 2016)

Hallo MasterOhh

Besten dank für den Tipp
Es sind mehr als 32 Takte.


----------



## Thinkoka (13 März 2016)

Hallo noch mal

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

Besten Dank im voraus


----------

