Forum: Mikrocontroller und Digitale Elektronik Welcher Bus zur Ansteuerung von sensoren


von Jonas Kraus (Gast)


Lesenswert?

HI Leute,

ich möchte über ein bedient gerät  verschiedene sensoren von Aussen 
ansteuern.

Ich weiß aber nicht welcher Bus ich nehmen soll. Welce für die steuerung 
geeignet wäre.
Die sensoren sind in einem Abstand von max 2m und   im Anzahl von 20.

Könte mir jemand was sinnvolles empfehlen??

Danke

von Purzel H. (hacky)


Lesenswert?

Einen Sensor muss man in den seltensten Faellen ansteuern, allenfalls 
als Signalpegel messen. Um welche Art Sensoren geht es hier ?

von Jonas Kraus (Gast)


Lesenswert?

es sind kapazitive Ultraschallsensoren  , die mit der Steuereinheit 
kommunizieren sollen.Im sensor ist ein µC integriert für seine 
Auswertroutine.
 Nack erkennung sollen sie Daten zur Master (Steuereinheit) über den Bus 
schicken. genauso wie der Master auch den Datenschicken Kann , damit der 
Sensor Irgendeine interne Treiber schalte.

Hoffe ist nun etwas klarer

danke
Jonas

von Schrotty (Gast)


Lesenswert?

Ich würd CAN nehmen.

von Mathias O. (m-obi)


Lesenswert?

Meinst du vielleicht IO-Link?

http://de.wikipedia.org/wiki/IO-Link

von Jonas Kraus (Gast)


Lesenswert?

der Nachteil der IO_link ist dass er ein Punkt zu Punkt system ist.
das würde bei mir bedeuten  für 20 Sensoren 20 eingänge und entsprechend 
20 Verkabellung (=>Kabelsalat).

Ich habe die Idee ein Bus gehabt um den Kabelsalat zu vermeiden

Danke für Inputs

von Schrotty (Gast)


Lesenswert?

mit CAN umgehst du das ganze Kabelsalatproblem. Machst einfach eine 
Leitung von Sensor zu Sensor und im Stecker den "Stich" in´s Gerät.

Und µC mit CAN gibt es in allen möglichen Variationen, Leistungs- und 
Preisklassen.

von Mathias O. (m-obi)


Lesenswert?

20 Eingänge ist doch nix. Bei unseren Maschinen kommen wir auf gut 
100-150 Eingänge.

Was hast du denn für eine SPS?

Hast du mal ein Datenblatt von den Sensoren?

von Jonas Kraus (Gast)


Lesenswert?

Ich möchte soweit es geht keine SPS benutzen. Zum anderen habe ich keine 
und kenne mich auch nicht mit SPS aus.

gern wäre eine Kommunikaionsart ohne vie zu 
Installation/Einichtungsaufwand.  etwas flexibles

von Schrotty (Gast)


Lesenswert?

nur zum Verständnis...

Du möchtest sowohl das Bediengerät, als auch die Sensormodule selbst 
entickeln (Hardware und Firmware) und bist dabei noch völlig frei in der 
Wahl der µC etc..?

von Jonas Kraus (Gast)


Lesenswert?

ja genau.
Ich möchte zuerst gern wissen welche Bussystem für die Kommunikation am 
sinvollsten ist , und daraus  die µC die das Kommunikationsprotookol 
unterstützt wählen

von Schrotty (Gast)


Lesenswert?

ok, dann hab ich dich schon richtig verstanden ;-)

von Mathias O. (m-obi)


Lesenswert?

Wieso willst du denn das Rad neu erfinden und Arbeit reinstecken für die 
Entwicklung? Wieso nimmst du nicht bestehende Systeme

von Route_66 (Gast)


Lesenswert?

...weil er nicht mal richtiges Deutsch kann!

von Jonas Kraus (Gast)


Lesenswert?

Danke für die Antworten.

Übrigens, wir sind alle Menschen und jeder macht Fehler.

Zum thema
ich möchte nichts neues erfinden, dazu wird es noch paar Jahren dauern.
Ich möchte nur ein Empfehlung für ein Bussystem , das für die Aufgabe 
passend wäre.

Wenn  ich zum beispiel I2C-bus nehme,   habe ich der Nachteil ,
- das die Sensoren eine feste Adresse  bei der Programmierung zugewiesen 
bekommen. Das führt dazu , dass 2 Sensoren  mit der selben Adressen 
innerhalb der Bus nicht auftretten können(=> ansprechen von mehr als 1 
Sensor obwohl nur ein gemeint war).
- Nicht möglich alle Sensore eine neue Adresse zu vergeben.


Bei der SPI-Bus ist der Nachteil :
- für jeder Slave braucht man ein  Slave Select-Leitung .  Bei der 
Auswahl einem Steuernden µC mit festem Anzahl an SS-Leitung, ist die 
flexibilität begrenz wenn man später noch weitere sensoren dranhängen 
möchte.


Ich möchte gern  ein Bus mit Master-Slave Prinzip.  ich hoffe ihr hat 
eine schlauere Idee.

Danke Jonas S.

von Jonas Kraus (Gast)


Lesenswert?

hat keiner eine Idee??

von Michael M. (Gast)


Lesenswert?

die hast du oben überlesen...

von Midi (Gast)


Lesenswert?

Hallo Jonas,

von I2C und SPI solltest Du für Dein Vorhaben Abstand nehmen, denke ich. 
So, wie ich Dich verstehe, handelt es sich um Sensoren, die auch 
räumlich von der Zentraleinheit (dem "Master") getrennt sind. Sicherlich 
kann man I2C und SPI auch elektrisch robust übertragen bekommen, aber 
gedacht sind diese beiden Kommunikationswege eher für die Übertragung 
auf kurzen Strecken, z.B. auf einer Platine oder höchstens innerhalb 
eines Gerätes / einer Baugruppe.

CAN ist von Hause aus elektrisch robust ausgelegt. Aber je nachdem, wie 
das von Dir erdachte Kommunikationsmodell aussieht, könntest Du auch 
einfach eine serielle Schnittstelle mit RS485 Übertragung verwenden. Je 
nachdem, wie die Daten strukturiert sind, die Du übertragen möchtest, 
und wie häufig dies geschehen soll, kann dies sogar für Dich die 
sinnvollere Lösung sein.

Das Kommunikationsmodell von CAN ist auf häufige, konkurrierende 
Übertragung kurzer (z.B. 8 Byte) Datentelegramme optimiert. 
Datentelegramme werden von den Sensoren "ungefragt" auf den Bus gegeben, 
und wer sich dafür interessiert, nimmt die Werte entgegen. Anderes geht 
freilich auch, aber das o.g. ist seine Stärke. Da ist CAN auch richtig 
gut. Und standardisiert, das mag ebenfalls ein Vorteil sein.

Wenn der Master die Busarbitrierung übernimmt und die Slaves nur auf 
Anfrage aktiv werden und ggf. mit umfangreichen Datenblöcken antworten, 
würde ich persönlich noch zu der RS485 Lösung tendieren.

Hoffe, dass Dir das weiter hilft.


Viele Grüße und viel Erfolg,

  Midi

von Jonas Kraus (Gast)


Lesenswert?

Hi  Midi

vielen dank für deine ausführliche Antwort. Es ist eine so wie ich es 
brauche.

Gibt es eine Möglichkeit der RS485-Bus , dass der Master am Anfang 
Adressen an die bestehenden slave zuweist oder muss jeder Slave vor dem 
Anschluss an dem Bus eine feste Adresse anprogrammiert haben ?

Danke

Jonas

von Michael M. (Gast)


Lesenswert?

darüber sagt RS485 nix aus. spezifiziert nur die unterste schicht.
wenn du es deinen sensoren beibringen kannst, gehts.

von Midi (Gast)


Lesenswert?

Hi Jonas,

leider wirst Du um die vorherige Zuweisung der Adressen nicht 
herumkommen, auf die eine oder andere Art und Weise, denn Du musst ja 
die Messdaten den Messstellen zuordnen können. Da macht aber auch CAN 
keinen Unterschied, es sei denn, der Chiphersteller hat bereits eine 
Arbitrierung über eine ab Werk fest vorgegebene Seriennummer vorgesehen. 
Ist aber dann in der Umsetzung einigermaßen kompliziert: Broadcast "wer 
ist alles da?" und in Abhängigkeit der Seriennummer antworten die 
einzelnen Geräte verzögert. Bei Kollisionen muss z.B. der mit der 
niedrigeren Seriennummer nochmals später senden usw. Alles ziemlich 
spaßfrei :-)

Wenn Du die Sensoren anfertigst, könntest Du ja z.B. selbst 
Seriennummern in die einzelnen Exemplare einbrennen und diese dann zur 
Adressierung verwenden. Alternativ reichen aber auch fünf Steckbrücken 
oder DIP-Schalter, über die Du die Geräteadresse dann später bei der 
Montage der Sensoren einstellen könntest. Fünf reichen, da an einem 
RS485 Bus nur maximal 32 Teilnehmer hängen dürfen, aber Du sprichst ja 
von 20 Sensoren, das sollte bei sorgfältiger Verkabelung und 
Terminierung recht gut klappen.


Viele Grüße,

  Midi

von Michael M. (Gast)


Lesenswert?

Midi schrieb:
> leider wirst Du um die vorherige Zuweisung der Adressen nicht
> herumkommen
doch. für sowas gibts fertige protokolle.

von Midi (Gast)


Lesenswert?

Yep, dann her damit :-)

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Du kannst Dir als Alternative zu CAN auch mal den 1-Wire-Bus ansehen. 
Ist etwas einfacher (zumindest die elektronische Seite) als CAN, jedoch 
musst Du für eigeme Endgeräte etwas tricksen (8-Bit IO-Modul bzw 
A/D-Wandler einsetzen oder einen 1-Wire-Slave in einem AVR/PIC 
nachbilden).

Das ganze ist aber nichts bei einer verseuchten (Störungsquellen) 
Umgebung.
Da ist CAN über RS485 eventuell besser (noch keine eigene Erfahrung).

von Jonas Kraus (Gast)


Lesenswert?

kann  man CAN und RS485  kombinieren ???
 Wie geht das?

von Michael M. (Gast)


Lesenswert?

n bisschen suchfaul bist du ja schon...

von spess53 (Gast)


Lesenswert?

Hi

>n bisschen suchfaul bist du ja schon...

Irgendwie auch etwas denkfaul.

MfG Spess

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Jonas Kraus schrieb:
> kann  man CAN und RS485  kombinieren ???
>  Wie geht das?

CAN ist das Übertragunsprotokoll. RS485 die physikalische Übertragung.

(Oder habe ich da etwas nicht verstanden und erzähle Mist? Hatte noch 
nichts mit CAN zu tun.)

von Michael M. (Gast)


Lesenswert?

Christian H. schrieb:
> CAN ist das Übertragunsprotokoll. RS485 die physikalische Übertragung.
can spezifiziert auch die hardware-ebene. z.b. bei der arbitrierung ist 
das wichtig.

> (Oder habe ich da etwas nicht verstanden und erzähle Mist? Hatte noch
> nichts mit CAN zu tun.)
ein klares: jein =)
man kann auch die oberen ebenen mit einer anderen physikalischen 
schnittstelle verwenden.

von Midi (Gast)


Lesenswert?

Hallo Jonas,

(nochmal ich), 1-wire ist ebenfalls ursprünglich eher für die 
Kommunikation innerhalb von Baugruppen konzipiert worden, also in die 
Liga I2C und SPI einzuordnen.

CAN mit RS485 Übertragung wäre, wie Michael M. richtig anmerkt, eher 
esoterisch und eigentlich sogar kontraproduktiv, weil eine der Stärken 
von CAN in dessen Art der elektrischen Übertragung liegt. Der Vorteil, 
dass -egal ob zwei Geräte gleichzeitig senden- mindestens eines der 
Datentelegramme unversehrt (!) über den Bus geht, ginge dann verloren.


Viele Grüße,

  Midi

von Midi (Gast)


Lesenswert?

Ok, nicht "mindestens" sondern "wenigstens"... ;-)

von B e r n d W. (smiley46)


Lesenswert?

Für CAN braucht man spezielle CAN-Schnittstellen oder CPUs mit 
integriertem CAN plus Bustreiber. Ich bin mir nicht sicher, ob nach dem 
Ersetzen eines CAN Bustreibers durch RS485 die Kollisionserkennung noch 
richtig funktioniert.

Vorteile von CAN:  Eingebaute Kollisionserkennung und Fehlersicherheit. 
Mehrere Master möglich.
Nachteil: Es haben nur 8 Datenbytes Platz. Spezielle Hardware notwendig.

RS485: Diese kann über den UART betrieben werden. Für das Protokoll hat 
man jegliche Freiheiten, d.h. es kann selbst definiert werden. 
Reichweite 1km. Größere Datenpakete möglich. Dafür muß man aber für die 
Korrektheit der Daten per Checksumme CRC ... selbst sorgen.

Gruß, Bernd

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.