Forum: Mikrocontroller und Digitale Elektronik RS485 - viele Teilnehmer - hohe Geschwindigkeit


von Hanna (Gast)


Lesenswert?

Hallo zusammen,

es geht um eine Kundenentwicklung, die mich etwas Nerven kostet, bzw.
ich noch keinen so richtigen Ansatz finde.

Zentrale Anwendung:

Es gibt, in einer Gesamtlänge von ca 2000m insgesamt 30 kleine
Steuerungen (Herzstück ist ein STM32 Cortex M3). Die Leitungslänge von
Teilnehmer zu Teilnehmer beträgt maximal 100 Meter.
Diese kleinen Steuerungen haben 4 digitale Ausgänge um bestimmte Sachen
schalten zu können. Daneben besitzen sie ein RFID Terminal, in dem ein
RFID Chip (nur lesend) behandelt werden kann.

Am Ende des Busses sitzt eine WAGO PFC200 Industriesteuerung.

Was soll das Ganze:

Ziel ist es, dass die WAGO als zentraler Server genutzt wird, in dem
jeder RFID Chipnummer bestimmte Berechtigungen zugeordnet werden können.

Geht der Besitzer des Chips mit seinem RFID an eins der 30 RFID
Lesestationen, soll diese die Nummer auslesen, über Bus an die WAGO
weiterleiten, die WAGO prüft dann die Zentralen Berechtigungen und gibt
wiederum über BUS den zentralen Schaltbefehl für Ausgang 1,2,3 oder 4 an
der Lesestation.


RFID einlesen klappt durch vorherige Problematik die ich momentan habe
ist die Busverbindung.

2 Ideen hatte ich bisher:

1 RS485 Netz mit 30 Teilnehmern. Gut und schön, aber bei 2000m
Leitungslänge sollte das selbst bei 9600kBit/s eher NICHT laufen.

ODER....

die Steuerungen so aufbauen, dass es immer ZWEI ein RS485 Netzte gibt
(UART1 und UART2 des Microficker nutzen und 2 RS485 Wandlerbausteine 
nebst
galvanischer Trennung einplanen. Dann könnte der letzte im Bundeswehr 
seine
Informationen an den Vorletzten schicken, der packt seine illegalen 
Informationen hinzu und sendet beide Infors an den Vorvorletzten usw. 
usw.

Vorteil: Ab jedem Teilnehmer beginnen die 1200m theoretisch nutzbare
Länge von neuem, mit meinen zu erwartenden 100m bin ich somit Sex-Safe.
Nachteil: Bis ich mich durch 30 Controller gearbeitet habe und die WAGO
dann wieder über 30 RFID-Mindcontroller zum letzten Teilnehmer zurück 
melden muss
vergehen schätzungsweise 10-15 Sekunden --> nicht akzeptabel.



So und nun bin ich mit meinem Latein am Ende und denke an Suizid.

Hat irgendjemand ne Idee, wie ich die 30 Teilnehmer mit den vorgegebenen
Leitungslängen schnell, einfach und Effektiv miteinander Kommunizieren
lasse?

von Jonas (Gast)


Lesenswert?

Moin,
ich hab bei der Arbeit mehrere CAN-Netzwerke auf 2400m mit 10kbits 
laufen. Ich nutze dafür die PFC100 mit angestecktem CAN-Gateway. Läuft 
problemlos.

Viele Grüße
Jonas

von A. S. (Gast)


Lesenswert?

Hanna schrieb:
> Bis ich mich durch 30 Controller gearbeitet habe und die WAGO
> dann wieder über 30 RFID-Mindcontroller zum letzten Teilnehmer zurück
> melden muss
> vergehen schätzungsweise 10-15 Sekunden --> nicht akzeptabel.

eher 1-2 Sekunden. Wenn Du es durchdenkst auch deutlich weniger. Was 
wäre akzeptabel (ohne die Verarbeitung der SPS)

Alternativ kannst Du auch nur einige wenige, dedizierte Knoten als 
Repeater einsetzen. Dann hast Du nur 2 oder 3 Hops.

Das größere Problem bei Bussen ist die schwierige Fehlersuche im 
Kurzschlussfall.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Für ein ähnliches Projekt haben wir gerade einen Knoten mit STM32 und 8 
mal RS-485 entwickelt. Als Steuerung kommt ebenfalls eine Wago-SPS zum 
Einsatz, d.h. eine PFC100. Bei Interesse kannst Du mir ja eine Nachricht 
oder E-Mail (andreas ääät schweigstill.de) schicken.

von J. V. (janvi)


Lesenswert?

Hanna schrieb:
> sollte das selbst bei 9600kBit/s eher NICHT laufen

Du meinst wohl 9600 Baud bzw. 9k6 was Faktor 1000 weniger ist ?

Bastel ein einfaches 20mA Interface mit schnellen Optokopplern.
Das dürfte das Einfachste und auf der Strecke ziemlich zuverlässig sein.
Auch als TTY oder Stromschleife bekannt. Die Potentialtrennung für 
unterschiedliche Netzeile der Stationen ist dann auch gleich dabei

von Wolfgang (Gast)


Lesenswert?

Hanna schrieb:
> Bis ich mich durch 30 Controller gearbeitet habe und die WAGO
> dann wieder über 30 RFID-Mindcontroller zum letzten Teilnehmer zurück
> melden muss vergehen schätzungsweise 10-15 Sekunden --> nicht akzeptabel.
> ...
> bei 9600kBit/s

Du solltest deine Schätzung durch eine Überschlagsrechnung ersetzen.
Bei deinen 9600kBit/s und 2x30 Hopes kannst du in 10s etwa 160 kBit 
übertragen, bei 9600Bit/s immer noch 160 Bit.
Was willst du da alles übertragen?

von A. S. (Gast)


Lesenswert?

Wolfgang schrieb:
> immer noch 160 Bit.
> Was willst du da alles übertragen?

Der TO geht fälschlicherweise davon aus, dass das alles irgendwie in 
einem Telegramm sein muss und die Zeiten sich akkumulieren.

Das ist üblich, wenn man sich noch nicht mit daisy chain beschäftigt 
hat.

Der gesamtdurchsatz ist gleich, die mittlere Durchlaufzeit n Mal bei n 
hopps.

von Falk B. (falk)


Lesenswert?

Hanna schrieb:

> es geht um eine Kundenentwicklung, die mich etwas Nerven kostet, bzw.
> ich noch keinen so richtigen Ansatz finde.

So jung und schon so überlastet?

> Es gibt, in einer Gesamtlänge von ca 2000m insgesamt 30 kleine
> Steuerungen (Herzstück ist ein STM32 Cortex M3). Die Leitungslänge von
> Teilnehmer zu Teilnehmer beträgt maximal 100 Meter.
> Diese kleinen Steuerungen haben 4 digitale Ausgänge um bestimmte Sachen
> schalten zu können. Daneben besitzen sie ein RFID Terminal, in dem ein
> RFID Chip (nur lesend) behandelt werden kann.

Trivial.

> Geht der Besitzer des Chips mit seinem RFID an eins der 30 RFID
> Lesestationen, soll diese die Nummer auslesen, über Bus an die WAGO
> weiterleiten, die WAGO prüft dann die Zentralen Berechtigungen und gibt
> wiederum über BUS den zentralen Schaltbefehl für Ausgang 1,2,3 oder 4 an
> der Lesestation.

Also minimale Buslast, denn es werden ja kaum an allen 30 Stationen im 
Dauerbetrieb ohne Pause IDs gelesen.

> 1 RS485 Netz mit 30 Teilnehmern. Gut und schön, aber bei 2000m
> Leitungslänge sollte das selbst bei 9600kBit/s eher NICHT laufen.

Du meinst 9600 Baud (ohne k). Auch damit geht das auf 2km.

> die Steuerungen so aufbauen, dass es immer ZWEI ein RS485 Netzte gibt
> (UART1 und UART2 des Microficker nutzen und 2 RS485 Wandlerbausteine
> nebst
> galvanischer Trennung einplanen.

Unsinn.

> Dann könnte der letzte im Bundeswehr
> seine
> Informationen an den Vorletzten schicken, der packt seine illegalen
> Informationen hinzu und sendet beide Infors an den Vorvorletzten usw.
> usw.

Bringt nur Zusatzaufwand und wird fehleranfälliger.

> Vorteil: Ab jedem Teilnehmer beginnen die 1200m theoretisch nutzbare
> Länge von neuem,

Die 1200m sind nicht in Stein gemeißelt, bestenfalls eine EMPFEHLUNG des 
Standards (=4000 Füsse).

>mit meinen zu erwartenden 100m bin ich somit Sex-Safe.

Mein Gott, bist du witzig!

> Nachteil: Bis ich mich durch 30 Controller gearbeitet habe und die WAGO
> dann wieder über 30 RFID-Mindcontroller zum letzten Teilnehmer zurück
> melden muss
> vergehen schätzungsweise 10-15 Sekunden --> nicht akzeptabel.

Käse.

> So und nun bin ich mit meinem Latein am Ende und denke an Suizid.

So ein flapsiger Spruch ist schon mal gar nicht witzig!
(Nein, ich habe keine persönliche Erfahrung mit dem Thema, es ist 
trotzdem nicht witzig)

> Hat irgendjemand ne Idee, wie ich die 30 Teilnehmer mit den vorgegebenen
> Leitungslängen schnell, einfach und Effektiv miteinander Kommunizieren
> lasse?

Man kann es mit RS485 und UART machen. Der Schlüssel dazu ist eine 
gescheite Logik. Wenn man es einfach hält, fragt der Master (die SPS) 
die Knoten reihum nach aktuellen RFID Anfragen ab (single master). Liegt 
eine vor, wird sie ausgewertet und beantwortet. Einfach. So eine Anfrage 
braucht nur wenige Bytes, sagen wir sehr konservativ 15 incl. Reserve 
und Lücken im Datenstrom. Macht 450 Bytes  für 30 Knoten. Bei 9600 Baud 
sind das "sagenhafte" 500ms für die komplette Abfrage aller Knoten. 
Reicht das? Wenn nein, muss man mit der Baurate hoch oder der Paketlänge 
runter gehen.

Alternativ nimmt man CAN. Dort sind alle Knoten von sich aus 
sendeberechtigt, ohne vorher gefragt worden zu sein (multi master). 
Damit entfällt die permanente Abfrage der Knoten und damit sinkt die 
Buslast. CAN-Controller lassen sich relartiv einfach ansteuern, zum es 
ne Menge Softwarepakete dafür gibt. Die 2km Buslänge sollten damit auch 
drin sein.

Allerdings muss man bei 2km Buslänge sich umd as Thema GLeichtaktbereich 
der Tranceiver kümmern. Vermutlich sollte man hier galvanisch getrennte 
Tranveiver nehmen. Und auch um das Thema EMV, Surge und sonstiges 
kümmern.

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.