Hallo, ich hoffe das jemand mir bei meiner Frage helfen kann, da ich selber nicht besonders fit in Bus-Systemen bin. Ich habe eine PID-Reglerkarte, in diese werden PID-Reglerparameter, Sollwert und Istwert übergeben. Die Reglerparameter und der Sollwert werden bereits über das CAN-Bus übertragen, Istwert wird momentan analog eingespeist. Ich würde gerne alle Signale über das Can-Bus an den Regler übergeben, meine Frage ist: Kann es dabei zu irgendwelchen Schwierigkeiten beim CAN-Bus kommen? (z.B. das die Buslast zu hoch wird) Was können die Ursachen sein? Haben die Fehler beim Istsignal negative Auswirkungen auf den CAN-Bus? was kann zu einer hohen Last führen und was sind die möglichen Auswirkungen? Istsignal wird momentan von einem digitalen Filter gefiltert und dann analog gewandelt, falls es möglich ist Istwert mit CAN-Bus zu übertragen, kann man D/A-Wandler sich sparen. MfG, Alexander
erst mal musst du klären: -wieviele Daten musst du insgesamt pro Zeiteinheit übertragen (dabei beachten, dass jede CAN-Botschaft aus deutlich mehr Bytes als die Nutzdaten besteht) -wie lang wird dein Bus (daraus berechnet sich die max. mögliche Bitrate) -wie zeitkritisch sind die Daten In deinem Fall würde ich aus dem Bauch heraus erstmal sagen, dass du keinerlei Probleme bekommst. Es ist allerdings durchaus möglich, schon bei Buslast von 10% Probleme zu bekommen.
Hallo, - ich muss 8Byte in mehreren Indentifyer übertragen. - die Baudrate kann eingestellt werden von 125kBaud-500kBaud-1000kBaud - zeitkritisch??? am ende des Buses wird mit 2msec abgetastet. Wie wirken sich die möglichen Probleme aus? Wann wird die Last zu hoch, kann man es berechnen? wenn ja , wie? Gruss, Alexander
Das kann man ausrechnen: ein Identifier mit 8 Byte Daten hat 11 Byte. Bei 2 ms also 500 Messages/s = 5500 Byte/s = 44 Kbit Mit 8 Identifiern à 8 Byte also 352 Kbit entsprechend 70% Buslast bei 500 Kbit, also kein Problem. 8 Identifier mit nur einem Byte Daten wären nur 128 Kbit, also 25,6% Buslast.
naja, so fast.... Bei Standard-Frames (11bit identifier) kann man auf bis zu 130bit kommen für 8byte Daten.
jup, hast recht. 1 Start bit +11 Identifier bits + 1 RTR bit + 6 Control bits + 64 Data bits + 15 CRC bits + 19 (maximum) Stuff bits + 1 CRC delimiter + 1 ACK slot + 1 ACK delimiter + 7 EOF bits + 3 IFS (Inter Frame Space) bits = 130 bits
Hallo, leider ist mir bei der Angabe der Wete ein fehler unterlaufen. Der Bus wird mit 1ms abgetastet. das heißt: Bei 1 ms also 1000 Messages/s = 11000 Byte/s = 88 Kbit Mit 8 Identifiern à 8 Byte also 704 Kbit entsprechend 140% Buslast bei 500 Kbit, die folge ist Buslast zu hoch. Ist meine Rechnung richtig???? Diese habe ich vom smartie übernommen und mit meinen Werten ergänzt. Ich verstehe aber immer noch nicht warum es 8 Identifier sind? Werden diese alle gleilchzeitig verschickt? Gruß und Danke! Alex
Hi Alex, wenn ich Smartie hoffentlich richtig verstehe, geht er von nem angenommenen worst-case mit 8 "Sendern" (PID-Parameter, Sollwerte etc. haben ja alle nen eigenen Identifier) aus, die insgesamt auf dem BUS geistern. Gruß Frank Ni...
Hallo Frank, wenn man von 8 Identifiern ausgeht , ist dann meine Rechnung richtig? Und warum geht dan die Last hoch, die Identifier werden doch nach einander übertragen, oder???? Gruss, Alex
"Der Bus wird mit 1ms abgetastet." Der Can-Bus wird nicht abgetastet. CAN ist ein Multi-Master-Bus, d.h. jeder Teilnehmer kann zu beliebeigen Zeitpunkten senden. Wenn zur Zeit der analoge Istwert in äquidistanten Abständen von 1ms gewandelt wird, heißt das noch nicht zwingend, dass diese Frequenz auch tatsächlich für die Funktion des Reglers notwendig ist. Dies hängt sehr stark vom Einsatzgebiet des Reglers ab. Falls dieser nicht notwendigerweise jede Milisekunde ein CAN-Telegramm mit dem Istwert erwartet, kann bei einer Regelung mit hohen Totzeiten durchaus ein höheres Telegramm-Intervall möglich sein.
Hi Alex, die Botschaftssender "schauen" erst ob der BUS frei ist, bevor sie senden. Ist er belegt, wird gewartet, bis er wieder frei ist. Versuchen's doch mal mehrere zugleich, wird die Kollision erkannt und die niederpriore Sendung wird abgebrochen und später, wenn der BUS wieder frei ist, abgesetzt. Wenn auf Deinem Bus nur der Regler und ne Bedieneinheit (Sollwert- u PID_Parametergeber sowie Istwertanzeige) sitzen, gibts da wenig Probleme und das Trafficaufkommen solltest Du kalkulieren können. Ich gehe davon aus, das die CANBUS-Teilnehmer über CAN-Controller verfügen, die das für Dich abwickeln und Du diesen nur übergeben mußt, welcher Identifier mit welchen Nutzdaten versendet werden soll und auf Empfangsseite Mailboxen (oft so genannt) hast, die Dir per Interrupt (oder Du pollst sie) bescheid geben, daß eine für Dich interessante Botschaft eingetroffen ist. In nem angenommenen Fall, daß z.B. Istwerte vom Regler und Sollwerte von der Bedieneinheit zeitgleich transportiert werden sollen, mußt Du ne Verzögerung in Kauf nehmen, da die Botschaften nunmal nur nacheinander über den BUS laufen können. Liegt an der konkreten Situation, ob das tolerabel ist und die Gesamtmenge der anfallenden Botschaften nicht den BUS überfordert. Gruß Frank
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.