Forum: Mikrocontroller und Digitale Elektronik Welches Übertragungsprotokoll


von Dirk M. (dmd)


Lesenswert?

Hallo und frohe Weihnachten...

Ich wollte mal eure Meinung hören.
Ein Mikrocontroller soll sich mit einer SPS über ein ca. 10m langes 
Kabel unterhalten. Nun habe ich überlegt, was ich denn für eine 
"Sprache" nehme.
1wire spart natürlich Kabel, aber viele SPS-Steuerungen verstehen das 
nicht.
I2C ist schön einfach zu programmieren, aber bei 10m Kabel...?
CAN-Bus können viele SPS-Steuerungen, aber der Aufwand ist aus meiner 
Sicht am größten, vor allem, weil ich auf der Controllerseite kaum Platz 
für zusätzlich Treiber-IC's habe.
Die Übertragungsgeschwindigkeit spielt kaum eine Rolle, es wird nur ein 
Taster abgefragt und ein paar LEDs ein und ausgeschaltet.
Ich schwanke ständig hin und her, denn:
1. Das Kabel soll so dünn und flexibel wie möglich sein.
2. Ich bin kein Meisterprogrammierer und CAN-Bus ist ja schon etwas 
aufwändiger.
3. Die SPS muss das Protokoll auch beherrschen.

Was würdet ihr bevorzugen?

Gruß
Dirk

von Hauke Haien (Gast)


Lesenswert?

Ein taster? 2 Leitungen, 0 Mikrocontroller.

von aldesser (Gast)


Lesenswert?

Eine serielle Verbindung RS-232 / RS-485 oder ähnliches. Robust und 
einfacher geht es nicht bei nur 2 Teilnehmern.

von aldesser (Gast)


Lesenswert?

Wenn am uC-Punkt nur ein paar IOs gesetzt/abgefragt werden, kauf dir 
lieber ein passendens IO-Modul für deine SPS.

von Mick (Gast)


Lesenswert?

I2C ist ursprünglich nur für Kommunikation über kurze Distanzen gedacht. 
Es gibt aber speziell entwickelte Komponenten, die zuverlässigen 
Datenaustausch über weite Strecken garantieren. Z.B. P82B715D

Was viele nicht wissen: I2C wird auch bei HDMI verwendet.

Wenn du I2C einfach implementieren kannst, dann verwende das.

von Einer K. (Gast)


Lesenswert?

Dirk M. schrieb:
> soll sich mit einer SPS
Wie wäre es, wenn du dir die Protokolle der SPS mal ansiehst!
Oder gar hier mal auflistest.

Wäre ja schon mal ein Anfang....

von Dirk B. (dirkb2)


Lesenswert?

Mick schrieb:
> Was viele nicht wissen: I2C wird auch bei HDMI verwendet.

Bei VGA auch

von Dirk M. (dmd)


Lesenswert?

@Hauke:
Ich wollte jetzt keine Romane schreiben, aber bisschen mehr passiert auf 
der Controller-Seite schon. Schrittmotor-Steuerung, IR-LED's bei bedarf 
einschalten usw.

@Mick:
Hört sich gut an, das wusste ich auch nicht. Jetzt muss ich nur eine SPS 
finden, die auch I2C versteht.

@Arduino Fanboy:
Die SPS suche ich ja noch.

@aldesser:
RS485 braucht aber wieder einen Pegelwandler.
(CAN-Bus basiert doch auf RS485, oder?)

von aldesser (Gast)


Lesenswert?

Eine SPS mit I2C zu finden wird schwer. Muss es denn unbedingt eine SPS 
sein, es handelt sich ja scheinbar um einen Neuaufbau.

SPS bieten meistens ihre eigenen Industrie-Busse, wie 
Profibus/Profinet/Ethercat usw, und serielle Schnittstellen (RS...). 
Falls es also eine SPS sein muss, würde ich mir mal Raspberry PI SPS 
Erweiterung anschauen.

Ja, ein Pegelwander wäre notwendig, aber es ist eher unwahrscheinlich 
das du eine SPS mit I2C und identischen Spannungspegeln zu deinem 
Mikrcontroller findest.

Falls eine SPS ein Muss ist, würde ich mir trotzdem überlegen eine 
zugehöriges IO-Modul für die SPS zu nutzen und sämtliche Intelligenz auf 
die SPS zu verlagern. Dann müsstest du dir um das Protokoll keine 
Gedanken mehr machen und es können auch keine Unterschiede der 
Protokolldefinitionen bei verschiedenen Softwareversionen auftreten.

Egal welches Protokoll (I2C, CAN, UART) müsstest du dir ja auch noch 
Gedanken um die höheren Schichtens machen, unterschätze den Aufwand 
dafür nicht.

von georg (Gast)


Lesenswert?

Dirk M. schrieb:
> RS485 braucht aber wieder einen Pegelwandler.

Egal was du nimmst, den brauchst du bei 10m Kabel immer. ICs direkt 
verbinden ist da eine ganz schlechte Idee. RS232 oder RS485 ist robust 
und bewährt.

Mick schrieb:
> Es gibt aber speziell entwickelte Komponenten, die zuverlässigen
> Datenaustausch über weite Strecken garantieren. Z.B. P82B715D

Das ist genausoviel Aufwand, Geschmackssache.

Georg

von Dirk M. (dmd)


Lesenswert?

Ja, diese Raspberry PI SPS habe ich mir schon angesehen und die würde 
schon passen. Wie sieht es denn da mit dem Hochlauf aus, dauert das sehr 
lange? Kann man so eine SPS einfach ausschalten, oder muss die 
heruntergefahren werden?

Die Intelligenz in die SPS zu verlagern wäre etwas schwierig, das würde 
das Kabel zu dick machen (Schrittmotor usw.).

von aldesser (Gast)


Lesenswert?

Eine Industrie-SPS ist für jahrelangen Dauerbetrieb entwickelt, 
ausschalten macht aber keine Probleme.
Eine klassische SPS bootet auch innerhalb einer Sekunde. Wie das bei dem 
Raspberry Ding aussieht, keine Ahnung.

Die Intelligenz in die SPS zu verlagern, macht die Kabel doch nicht 
dicker. Der Schrittmotor würde natürlich weiterhin am IO-Punkt 
angeschlossen, dort allerdings an das IO-Modul der SPS, ggf. über den 
geplanten Treiber oder ein passendes Erweiterungsmodul der SPS.

Aber warum soll es eine SPS sein? Du hast ja scheinbar keine Erfahrung 
mit solchen Anlagen, durchgehender Betrieb ist ja auch nicht geplant?

von Chris M. (chris_appment)


Lesenswert?

Welche SPS?
Manche beherrschen MQTT.
Mit dem könntest du das ganz einfach sogar kabellos gestalten.

von Blubb (Gast)


Lesenswert?

Wenn es nur um einen Taster und einige LEDs geht, würde ich auf RS232 
oder RS485 setzen und einfach nur jeweilse ein byte + CRC schicken.

Das sollte auf SPS seite und auf der µC seite nicht zuviel Aufstand 
machen.

Zumal wenn es sich nur um ein Einzelstück oder eine geringe Stückzahl 
handelt.

Wenn es natürlich um ein Serienprodukt geht, könnte man überlegen ob man 
auf dem µC ein Protokoll implementiert, das die SPS schon von Haus aus 
kann(Profibus, CANopen...)

von Dirk M. (dmd)


Lesenswert?

Guten Morgen und danke für eure Meinungen.
Das "Raspberry Ding" (genauer PiXtend V2-L) gefällt mir immer mehr, 
zumal man dort auch eine kleines Display anschließen kann. Außerdem 
beherrscht es RS485, RS232 und CAN.
Das kleine Handgerät, also die µC-Seite habe ich schon als Prototypen 
fertig. Allerdings noch ohne "Gesprächspartner". Wenn ich jetzt auf der 
Platine noch etwas Platz für den RS485-Treiber schaffe, sollte es 
funktionieren.

Nochmal zur Raspberry-SPS. Vielleicht kann mir jemand sagen, wie es dort 
mit dem Ein- und Ausschalten aussieht. Also, wie lange der Hochlauf 
dauert und ob man das Ding einfach ausschalten kann.
Das ganze soll ein transportables Gerät werden, es wird also mehrmals am 
Tag ein und ausgeschaltet. Und ja - es wird wenn überhaupt nur eine sehr 
geringe Stückzahl.

Gruß
Dirk

von georg (Gast)


Lesenswert?

Dirk M. schrieb:
> Also, wie lange der Hochlauf
> dauert und ob man das Ding einfach ausschalten kann.

Gerade gestoppt: 35 Sec bis zur grafischen Oberfläche. Da kann man 
sicher noch dran drehen, z.B. ohne GUI, aber gegenüber einer SPS ist das 
nicht annähernd konkurrenzfähig. Einfach Abschalten ist eigentlich auch 
nicht zulässig, so wenig wie bei einem anderen PC - was anderes ist der 
Rasbpi ja nicht. Irgendwie muss man auch den Befehl zum Herunterfahren 
eingeben, und dann warten. Wahrscheinlich kann das SPS-Programm das 
Herunterfahren veranlassen.

Du musst selbst wissen ob das akzeptabel ist. Hauptvorteil des Rasbpi 
ist billig.

Georg

von Dirk M. (dmd)


Lesenswert?

Mit 35 Sek. könnte ich leben. Ich hatte nur an die Homematic CCU3 
gedacht, dort dauert der Start ja eine gefühlte Ewigkeit.
Da im Hauptgerät, wo auch die SPS wohnen soll, etwas mehr Platz ist, 
könnte ich ja einen kleinen Akku/USV o.Ä. zum sauberen Herunterfahren 
unterbringen.

Danke für die Info...

von Thomas W. (diddl)


Lesenswert?

Dirk M. schrieb:
> Ich hatte nur an die Homematic CCU3
> gedacht, dort dauert der Start ja eine gefühlte Ewigkeit.

Ich betreibe eine CCU3.
Die läuft seit drei Jahren absolut zuverlässig und fehlerfrei.
Booten ist niemals notwendig, es sei denn für Updates.
Deswegen spielt für mich die Boot Zeit keine Rolle.

Vorher hatte ich einen Raspi der immer wieder mal zickte.

von Jobst Q. (joquis)


Lesenswert?

Wenn du hilfreiche Tips haben willst, dann rück doch mal ein paar Infos 
mehr raus, welche Aufgaben zu erfüllen sind. Für die SPS oder doch nicht 
SPS, oder Raspi, oder ??? Und für den Controller und warum der 10 Meter 
weiter sein muss.

So ein Herumstochern im Nebel ist für niemanden befriedigend.

von Dirk M. (dmd)


Lesenswert?

Das ist mir klar, die CCU3 startet man kaum neu. Es ging aber um eine 
Raspi-SPS und die muss ich in meinem Fall mehrmals täglich neustarten.

Ich dachte die CCU3 gibt's erst seit diesem Jahr...?

von Thomas W. (diddl)


Lesenswert?

Dirk M. schrieb:
> Ich dachte die CCU3 gibt's erst seit diesem Jahr...?

Ach?
Okay in meinem Fall ist es dann wohl die CCU2, sorry … :-D

von Dirk M. (dmd)


Angehängte Dateien:

Lesenswert?

Ok, wie oben schon erwähnt, wollte ich euch nicht mit Romanen belasten.
Ich versuche es mal.
Im Bild habe ich das mal schematisch dargestellt.
Es gibt ein Handgerät, das hat ca. die Größe einer Heißklebepistole. In 
diesem Gerät werkelt ein kleiner Schrittmotor. Dieser Motor entleert bei 
Tastendruck eine mit Flüssigkeit gefüllte Patrone.
Im Hauptgerät gibt es einen Kompressor und ein paar Ventile und Relais. 
Außerdem soll es einen kleinen Bildschirm zum Einstellen einiger 
Parameter und zur Anzeige geben.
Wird nun der Taster am Handgerät gedrückt, bewegt sich der Motor langsam 
vorwärts und im Hauptgerät soll ein Luft-Ventil öffnen.
Also muss folgendes vom Handgerät zum Hauptgerät übermittelt werden:

Taster gedrückt       ->   Hauptgerät
Füllstand der Patrone ->   Hauptgerät
Patrone vorhanden     ->   Hauptgerät

und umgekehrt:

Handgerät         <-  Motorgeschwindigkeit
Handgerät         <-  IR-Led einschalten

Für die Motorgeschwindigkeit und die Füllstandsanzeige reichen jeweils 
8-Bit Auflösung.
Dann soll es noch zwei bis drei 8-Bit Werte geben, die aber nur einmal 
bei der Installation zum Handgerät übertragen werden müssen.

Fehlt noch was...?

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Dirk M. schrieb:
> Was würdet ihr bevorzugen

RS232.
Wie dafür gebaut.

von Jobst Q. (joquis)


Lesenswert?

Dirk M. schrieb:
> Fehlt noch was...?

Sieht schon mal viel besser aus mit diesen Informationen. Eine 
Notwendigkeit für eine SPS und ein Bedienpanel sehe ich da nicht, für 
ein paar Ventile reicht auch ein Raspi, sogar ein Zero.

Hängt natürlich auch ein bischen davon ab, wie fit du in der 
Programmierung von SPS bzw Raspi bist. Wenn du beides erst noch lernen 
musst, würde ich Raspi vorziehen, da nahe an PC-Programmierung mit 
Linux.

Für die Einstellungen wäre auch eine (lokale) HTML-Schnittstelle zu 
überlegen, dann kann es über Tablet /Smartphone eingestellt werden, ist 
sehr vielseitig und man muss sich nicht mit GUI-Programmierung 
rumschlagen.

Die Verbindung zum Controller wäre beim Raspi mit serieller Verbindung 
deutlich einfacher als bei einer SPS. Da beide TTL-Signalpegel haben, 
wäre zu testen, ob das störmäßig ausreicht. Wenn nicht, dann Umsetzung 
auf RS323 oder RS485, wobei ich dann RS485 vorziehen würde. Technisch 
besser, preislich kein Unterschied.

von Joachim B. (jar)


Lesenswert?

Dirk M. schrieb:
> Was würdet ihr bevorzugen?

wenn es unidirektional ist, Stromschleife

von Kunzi (Gast)


Lesenswert?

Dirk M. schrieb:

> könnte ich ja einen kleinen Akku/USV o.Ä. zum sauberen Herunterfahren
> unterbringen.

In diesem Thread bastelt gerade jemand an einer USV um einen Raspi 
sicher herunterzufahren.

Beitrag "Ersatz für 2SJ438 FET in Raspberry-Safe-Shutdown Schaltung"

von Jobst Q. (joquis)


Lesenswert?


von Dirk M. (dmd)


Lesenswert?

Kunzi schrieb:
> In diesem Thread bastelt gerade jemand an einer USV um einen Raspi
> sicher herunterzufahren.
Danke, guck ich mir mal genauer an.

Ein Taster wird nicht genügen. Das Gerät wird auch mal ein technischer 
Tiefflieger bedienen. Dem beizubringen, dass er erst ein Taster drücken 
muss, dann warten bis der Bildschirm dunkel ist und dann den Stecker 
ziehen, das wird nie funktionieren. Ich komme aus dem Maschinenbau und 
bin für die NC/SPS-Programmierung zuständig. Die meiste Zeit verbringt 
man damit Fehlbedienungen abzufangen...
Das ist auch der Grund für einen kleinen Bildschirm am Hauptgerät. Der 
Bediener soll mit einem Blick alles Wichtige sehen können.

Da ich schon ein Proto-Handgerät fertig habe, werde ich mal einen 
RS232-Test aufbauen. Falls mir das zu "wackelig" wird, teste ich RS485.

von georg (Gast)


Lesenswert?

Dirk M. schrieb:
> Fehlt noch was...?

Ja, die benötigte Sicherheit. Will ich konkret garnicht wissen, aber der 
Rasbpi ist keine hochzuverlässige Steuerung. Für medizinische Geräte 
z.B. dürfte er nicht in Frage kommen. Soweit ich das verstanden habe, 
wird das Gerät nur unter Aufsicht benutzt, dafür sollte er gut genug 
sein.

Bei einem Bekannten hat eine Pflanzenbewässerung mit einem PC, die sich 
sein Mieter gebastelt hatte, während des Urlaubs 2 Wohnungen unter 
Wasser gesetzt. Das war eben zuviel Vertrauen in einen PC allein zu 
Haus.

Georg

von Dirk M. (dmd)


Lesenswert?

An die Sicherheit habe ich natürlich auch gedacht. Auch ein Grund nicht 
"alles" neu zu erfinden. Die Raspi-SPS trägt zumindest schon mal die 
CE-Kennzeichnung. Und ja, das Gerät wird nur unter Aufsicht betrieben 
und selbst wenn die SPS mal Amok läuft zischt ein bisschen Luft und 
vielleicht wird die Patrone leer gedrückt. Das kann man mit einem Lappen 
wieder wegwischen ;)

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.