suprL schrieb:> Benötige ich hier einen weiteren Abschlusswiderstand (120 Ohm) am "Ende"> der CANbus Leitung?
Ja! Bedenke dass der auch entsprechend Leistung abkönnen muss! Also bei
1MBit ca 10Watt. Bei 2MBit ca 20 (besser 25) Watt.
suprL schrieb:> Nur einen am Ende oder für jeden Sensor einzeln?
Der CAN-Bus hat nur zwei Enden. An jedes Ende kommt einer.
(s. z.B. Controller Area Network Physical Layer Requirements, TI
Application Report SLLA270 im Kap. 4.5.1 Standard Termination)
https://www.ti.com/lit/an/slla270/slla270.pdf
suprL schrieb:> bzgl. dem Abschlusswiderstand beim CANbus
Es heisst: bzgl. des Abschlusswiderstandes
suprL schrieb:> Also am weitesten entfernen Sensor bzgl. dem Master.
Es heisst: bzgl. des Masters
Bedauernswerter Genitiv!
anbei eine Skizze meines Aufbaus.
Oben: ohne 120Ohm Abschlusswiderstand am Ende.
Unten: wäre mit 120Ohm.
Das zusätzliche T-Stück mit Abschlusswiderstand ist also notwendig?
Ein "offenes" Ende habe ich ja eigentlich nicht...
suprL schrieb:> anbei eine Skizze meines Aufbaus.>> Oben: ohne 120Ohm Abschlusswiderstand am Ende.> Unten: wäre mit 120Ohm.>> Das zusätzliche T-Stück mit Abschlusswiderstand ist also notwendig?> Ein "offenes" Ende habe ich ja eigentlich nicht...
Entweder 120 Ohm am T-Stück oder 120 im Sensor 2.
Bei keinem von beidem ist der Bus am Ende dennoch offen.
MaWin schrieb:> suprL schrieb:>> Benötige ich hier einen weiteren Abschlusswiderstand (120 Ohm) am "Ende">> der CANbus Leitung?>> Ja! Bedenke dass der auch entsprechend Leistung abkönnen muss! Also bei> 1MBit ca 10Watt. Bei 2MBit ca 20 (besser 25) Watt.
auf diesen entzückenden Blödsinn muß man auch erst einmal kommen :-)
Danke für die Anregung!
Die Stichleitung ist max. 1 Meter.
Also Variante 2 mit 120 Ohm am letzten T-Stück ist richtig.
Danke.
Beide Sensoren senden mit Event-Timer = 1ms. Baudrate ist auf 500ksps
eingestellt. ID: 2 und 3.
Mein eigentliches Problem ist, dass Sensor 1 nach einer Weile nicht mehr
z.B. über das CANopen Protokoll ansprechbar ist und auch keine Messwerte
sendet. Sprich "tot" ist.
Die Sensoren werden bei jeder Messung vom Zustand "Stop" in den Zustand
"Operational" (paar Sekunden) und wieder in "Stop" geschaltet. Diese
Routine ca. alle Stunde 1x.
Die Abschlusswiderstände sollten passen (Variante 2 im Bild oben)
Jemand eine Idee an was es sonst liegen könnte?
P. S. schrieb:> Die Stichleitung zum Bus sollte aber möglichst kurz sein.
Unfug.
Die muss nur so kurz sein, dass es bei der verwendeten Übertragungsrate
keine Probleme gibt. Bei NMEA2000 (250 kbit/s) darf eine Stichleitung
z.B. 6m lang sein
Wolfgang schrieb:> P. S. schrieb:>> Die Stichleitung zum Bus sollte aber möglichst kurz sein.>> Unfug.>> Die muss nur so kurz sein, dass es bei der verwendeten Übertragungsrate> keine Probleme gibt. Bei NMEA2000 (250 kbit/s) darf eine Stichleitung> z.B. 6m lang sein
Das funktioniert aber nur dann wirklich, wenn die Treiber entsprechend
der niedrigen Bitrate auch große, sprich langsame Anstiegszeiten haben.
Ein CAN-Master, der mit 1 Mbit/s betrieben werden kann, hat das im
Allgemeinen nicht.
https://de.wikipedia.org/wiki/Controller_Area_Network#Topologie
Laut dem Artikel sind bei 500kbit/s bis zu 100m Buslänge möglich, da
sollte 1m Stichleitung noch OK sein.
Hier ist die Rede von bis zu 5m bei 500kbit/s
https://infosys.beckhoff.com/index.php?content=../content/1031/bx9000/2521750667.html&id=
Möglicherweise eine dumme Frage, trotzdem:
Verwendenbeide Sensoren unterschiedliche Messages bzw unterschiedliche
Ids?
Falls mehrfach die gleiche Message-Id mit unterschiedlichen Daten kommt,
schaltet ein Knoten auf Nur-lesen um und schließlich auf komplett stumm.
Nach dem Aus- und wieder einschalten geht es dann wieder, bis der error
counter wieder überläuft ...
Wenn Du reines CANopen verwendest sollte es reichen, wenn die IDs
unterschiedlich sind.
Falls Du teilweise auf Layer 2 arbeitest, gilt folgendes :
Es darf nicht passieren, dass die gleiche Message mit unterschiedlichen
Daten kommt. Die automatische Arbitrierungung gilt nur für den
Identifier, wenn Daten kollidieren ist das ein Fehler, der zur
Abschaltung von Knoten führt.
Reiner Gast schrieb:> suprL schrieb:>> Nur einen am Ende oder für jeden Sensor einzeln?>> An jedem Leitungsende des Bus einen
An jedem der beiden Leitungsenden.
Nur zur Klarstelleung, dass nicht jemand auf die Idee kommt, den Bus
sternförmig zu verkabeln und dann ein Dutzend Abschlusswiderstände zu
verteilen.
MiWi schrieb:>> Ja! Bedenke dass der auch entsprechend Leistung abkönnen muss! Also bei>> 1MBit ca 10Watt. Bei 2MBit ca 20 (besser 25) Watt.>> auf diesen entzückenden Blödsinn muß man auch erst einmal kommen :-)>> Danke für die Anregung!
Das gilt aber nur für den Powertrain-CAN. Wie der Name schon sagt,
braucht de so viel Power, dass einem die Trainen kommen.
Lynuxschlau schrieb:> MiWi schrieb:>> auf diesen entzückenden Blödsinn muß man auch erst einmal kommen :-)>> Welch näckischer Mummenschanz...
sorry, aber das mit der Terminierung steht in der weiterführenden
Literatur, die bei jedem Transceiver als “ISO 11898" oder Nachfolger
erwähnt wird.
suprL schrieb:> Die Sensoren arbeiten nach dem Canopen DS404 Protocol und SocketCAN.
Dann sollte das funktionieren und mein Einwand trifft nicht zu. Das, was
ich geschrieben habe betrifft den Layer 2. Wenn Du eine funktionierende
Canopen Implementierung verwendest, hast Du das Problem nicht.
> Ich verstehe nicht ganz was du mit "gleiche Message" meinst.
Gleicher Identifier auf Layer 2. Sorry, es ist länger her, dass ich CAN
gemacht habe.
Wenn zwei Knoten gleichzeitig (als Reaktion auf das gleiche Ereignis,
zB andere CAN Nachricht) den gleichen Identifier mit unterschiedlichen
Daten Inhalten losschicken, dann wird ein Knoten nach einiger Zeit
abschalten.
Bei einer korrekten Canopen Implementierung werden die Layer 2
Identifier kollisionsfrei aus der Objekt-Id gebildet, dann kann das von
mir beschriebene Problem nicht auftreten.
Eine eigene Frage?
Dieser Thread ist über 7 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.