mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CANBUS - Protokoll Canopen


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Internet bin ich auf das Protokoll CANOPEN gestoßen. Dieses wird sehr 
häufig in der Automatisierungstechnik usw. eingesetzt. Ist es sehr 
schwierig das CANOPEN Protokoll auf dem Mikrocontroller zu 
implementieren? Ich möchte
nur mal zwei Message Objekte verwenden, die jeweils 1 Datenbyte
beinhalten.
Um da näher einzusteigen benötige ich zuerst eine deutsche Beschreibung.

Die CAN ID soll dann so aussehen:
Bit 10 bis Bit 7 = Baugruppenadresse
Bit 6  bis Bit 0 = interne Adresse (Objekt)

Ziel soll es sein, dass jedes Board die gleiche Software enthält. Mit 
Schaltern soll die Baugruppenadresse jeweils eingestellt werden.

Beispiel:

Baugruppenadresse 0 und Message Objekt 1 = Temperaturwert
Diese Information soll dann an das andere Board mit der 
Baugruppenadresse 1 in das Message Objekt 1 empfangen werden (Ausgabe 
LED).

Als Mikrocontroller verwende ich den Neuen mit der Bezeichnung 
XC888/886.

Mit DAVE kann zum Beispiel eine Maske gesetzt werden (Register AMR).
Ist es möglich zuerst nur die obersten 4 Bits vom Identifier zu Filtern 
und anschließend die unteren 7 Bits, die ausschlaggebend für die Message 
Objekte sind.

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, irgendwie ist Deine Frage widersprüchlich. Auf der einen Seite 
willst Du CANopen verwenden, auf der anderen Seite legst Du schon Deine 
Message-IDs fest. Was willst Du jetzt wirklich?

Wenn es CANopen sein soll, dann schau Dir mal den freien CANopen-Stack 
CANfestival an. http://www.canfestival.org/

Dein Ziel ist mir aber nicht klar. Was sollen die Geräte machen? Sind 
das I/O-Knoten?

mfg, Stefan.

Autor: Patrick (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also ich will jetzt nicht zu 100% das CANopen Protokoll auf dem 
Mikrocontroller nachbilden.So wie das ganze aussieht hat das wohl nix 
mit CANopen zutun oder?
Im Dateianhang befindet sich eine Skizze, so wie ich mir das Ganze 
vorstelle.
Wie gesagt, die Boards sollen schon gleich sein mit der gleichen 
Software darauf. Nur die Unterscheidung soll duch Schalter realisiert 
werden. Dadurch kann ich sagen entweder Busteilnehmer 0 oder 1 usw.
Ich möchte zuerst nur mal ein Byte versenden und empfangen pro Message 
Objekt. Ja das sollen I/O-Knoten sein.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab noch was vergessen. Das Ansprechen der Busteilnehmer soll durch die 
oberen 4 Bits(CAN-ID) erfolgen. Die unteren 7 Bits sollen die internen 
Adressen abbilden. Das heisst z.B. interne Adresse 1 soll das Message 
Objekt 1 sein.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CANopen regelt aber explizit die COB-ID's, die auf dem Bus während der 
Arbitrierung gesendet werden. Es wird unterschieden in SDO's und PDO's, 
Sync und Heartbeak, sowie Emergency und NMT-Messages mit explizit 
festgelegten COB-ID's. (Diese sind natürlcih abhängig von der 
eingestellten Knotennummer)

Das ist CANopen, wie es in der AT verwendet wird. Über diese SDO/PDO.. 
werden u.a. Frequenzumrichter, abgesetzte IOs... angesprochen..

Brauchst mehr Infos??

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Matthias,

hast Du da genauere Infos drüber?
Bin gerade am Eintüfteln in CANopen, aber
so richtig steige ich noch nicht durch.
Speziell diese Hardwarebeschreibungsfiles ... wars EDS oder ESD?
Da hab ich noch keine richtige Infos drüber gefunden, hast Du da
was passendes?

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen, ich habe gestern zwei beitrgäge reingestellt.
So stelle ich mir das ganze vor. Kann mir jemand dazu helfen, wie man 
dies mit dem Xc888/886 lösen könnte?

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also zunächst mal zu Patrick:

Vergiß das mit dem CANopen, das ist nicht das was Du brauchst. Du kannst 
natürlich auf die ganze Programmiererei verzichten und fertige 
CANopen-IO-Knoten kaufen. Wegen Hobby-Projekt wird das aber nicht sehr 
günstig. Hersteller solcher IO-Knoten sind z.B. Frentzel&Berg oder 
Möller. Das gibt es aber mindestens von weiteren 20 Herstellern.

Schau Dir mal Datenblätter oder Application Notes zum XC888 an, die sich 
mit der CAN-Schnittstelle auseinandersetzen. Wenn Du Pakete empfangen 
und versenden kannst, ist das die Halbe Miete.

@Mathias: Das Format der EDS- und DCF-Dateien ist in der Spezifikation 
DS306 geregelt. Diese kannst Du über die CiA (CAN in Automation) 
beziehen. Was hast Du überhaupt vor?

mfg, Stefan.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vor einiger Zeit habe ich mal was miz dem SJA1000 gemacht.
Dieser besitzt für die Filterung der Nachrichten das ACR und AMR 
Register. Der XC888 hat dagegen nur das AMR Register.
Wie könnte ich die Filterung (siehe oben) der ID's realisieren?
So dass ich zuerst die Baugruppenadresse und anschließend die Interne 
Adresse (Message Objekt Nr) filtern kann?

Autor: Michael Waiblinger (wiebel42)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe das doch richtig, daß CANopen im Gegensatz zu CAN selbst im 
Application Layer residiert, also kann man ja OpenCAN auch über Seriell, 
TCP/IP - ETH oder was einem auch in den Sinn kommen mag realisieren. CAN 
selbst erfordert natürlich echte Hardware, aber CANopen sollte lösbar 
sein, ober hab ich jetzt was völlig falsch verstanden?

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, CANopen residiert auch im Application-Layer, zumindest, was die 
Device-Profile (DS4xx) angeht. Ethernet-Powerlink ist beispielsweise 
CANopen sehr ähnlich. Wenn Du mit lösbar meinst, daß das in Software zu 
implementieren ist, dann hast Du recht. CANopen ist allerdings alles 
andere als trivial und für den Hobby-Einsatz völlig überzogen. Als 
Alternative gibt es noch Micro-CANopen, die allerdings nicht 100% den 
Standard unterstützen. Für die meisten Anwendungen reicht es aber 
dennoch.

@Patrick: Wenn der CAN-Controller des XC888 kein AMR-Register hat, dann 
macht man das eben von Hand. Die eine if-Abfrage sollte doch nicht allzu 
schwer sein. Oder?

mfg, Stefan.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja der Mikrocontroller hat ein AMR Register. Diese Mikrocontroller hat 
nur kein ACR register wie beim SJA1000.
Ich verstehe das mit der ID Filterung immer noch nicht ganz.

Kann mir jemand ein Beispiel geben, damit ich diese Sache besser 
verstehen kann?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu den electronic data sheets kann ich dir (noch?) nix sagen.

Aber zum Protokoll des CANopen. Weil ich gerade eine Fkt schreibe, die 
das CANopen Protokoll (OSI-Schicht7) auf einer CAN-Schnittstelle 
realisiert (OSI-Schicht1?). Also die Sache mit den PDO's und SDO's und 
der Berechnung der COB-IDs....
Falls du das brauchst..

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Matthias, brauchen könnte ich die eventuell schon. Ich brauche einen 
Mechanismus, indem ich die CAN-ID dementsprechend filtern kann.

Z.B.

CAN-ID vom Busteilnehmer 1: Message Objekt 1 indem die 
Schalterstellungen gespeichert und versendet wird: ID: 0001 0001

Der Busteilnehmer 2 empfängt diese Nachricht und sieht das ein Message 
Objekt mit der Nr. versendet wurde. ID: 0002 0001

Das Problem ist die Umsetzung. Ich komm da noch nicht zurrecht.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Matthias, hast du ein Beispielcode für die POD's, SDO's und 
Berechnung der COB-ID's?

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias: Wenn du bereits eine Funktion dafür hast, das wäre echt 
hilfreich.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab mal noch ne Frage:

Als Master verwende ich einen CAN Dongle (MASTER), den ich am PC 
angeschlossen habe.
Hier kann ich alle CAN Botschaften verfolgen. Muss ich an dem MASTER 
irgendwas machen?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also zum Einlesen in CANopen kann ich folgendes Buch empfehlen :

Holger Zeltwanger   CANopen   ISBN 3-8007-2448-0

Um aber bei obiger Anwendung zu bleiben, lass die Finger von CANopen. 
Ist viel zu komplex für diese simple Aufgabe. Schau dir erstmal die CAN 
Grundlagen gut an. Das Beispiel ist dann mit ein paar C-Zeilen schnell 
zu realisieren.

Und bei den CAN IDs bitte umdenken. Die sind nicht Teilnehmer orientiert 
sonder werden besser Datenorientiert definiert. Also Teilnehmer 1 sendet 
die Schalterstellungen mit der ID 0x011. Teilnehmer 2 möchte die 
Schalterstellungen empfangen, also empfängt er ID 0x011.
Die Filterung würde ich zunächst ganz abschalten und einfach alles 
empfangen und in der Empfangsroutine einfach die ID auswerten, wars die 
richtige dann weiterverarbeiten ansonsten ignorieren. Wenn das mal 
läuft, dann Filterung dazu und Empfang auf Interrupt umbauen.

Viel Glück

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss aber dies so realisieren. Das heisst die CAN-ID besteht aus der 
Nummer des Busteilnehmers und der Nummer vom Message Objekt (siehe 
oben).

        Busteilnehmer   Nr. Message Objekt
CAN-ID:   0001              0001

Im Message Objekt 1 ist z.B. die Schalterstellung drin.
Diese Info soll über CAN gesendet werden.

        Busteilnehmer   Nr. Message Objekt
CAN-ID:   0002              0002

Der zweite Busteilnehmer soll dann die Info in das Message Objekt 2 
laden und anzeigen.

Dies soll schon Teilnehmerorientiert sein.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Patrick:

Kannst du dich noch bis abends gedulden? Hab grad wenig Zeit.
Abends schreib ich das mal hier auf, wie die Berechnung der COB-IDs nach 
CanOpen erfolgt.... SOwie wie der Datenaustausch realisiert sit

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Matthias! Also du denkst schon, das ich mein Konzept, das 
ich zuvor hier Vorgestellt habe mit dem XC888 Mikrocontroller 
realisieren könnte?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, zu dem Prozessor kann ich nix sagen, den kenne ich nicht.

Aber irgendwie klingt dein Vorhaben (Vergabe von CAN-IDs) nicht nach 
CANopen.

Du wirst dich also entscheiden müssen, ob es notwendig/sinnvoll ist, 
dieses Protokoll bei dir zu verwenden. Ich kann dir diesbezüglich nur 
sagen, wie das aufgebaut ist das Protokoll.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also definitiv möchte ich das Konzept, so wie ich es hier vorgestellt 
habe realisieren. Kannst du mir dabei Helfen, wie ich dies realisieren 
könnte?

Meine E-Mail Adresse lautet: patrick_elektronik@web.de

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher kann ich das. Dann brauchst du aber kein CANopen.
Du nutzt dann sozusagen nur die Physik von CAN. Das Protokoll erfindest 
du selbst...

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also Patrick nun mal Tachles: Was möchtest Du von uns? Du kannst gerne 
Hilfe in Form von Ratschlägen bekommen. Was ich oben NICHT sehe, ist ein 
Konzept, auch wenn Du es als solches bezeichnest. Ich weiß bisher nur, 
daß Du Dir um ungelegte Eier einen Kopf machst (Mapping, CANopen) und 
mit den interessanten Fakten nicht rüber kommst (Was macht der 
IO-Knoten?).

Was Du von uns nicht bekommen wirst, jedenfalls nicht kostenlos, ist der 
Quellcode für Dein Projekt. Bisher habe ich von Dir keine 
Eigeninitiative erkennen können, Dein Problem zu lösen. Das Forum kann 
Dir bei konkreten Fragen helfen, Deine Fragen sind sowas von unkonkret, 
dass sie einer Diskussion eigentlich nicht würdig sind.

mfg, Stefan.

P.S. Wenn Du etwas investieren willst, dann stelle Dein Konzept in Markt 
vor. Dort gibt es bereitwillige Freiberufler, die Dir das realisieren 
können.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Internet bin ich auf das Protokoll CANOPEN gestoßen. Wenn ich es 
genau betracht dann ist CANOPEN für mich eher ungeeignet. Ich nutzt 
sozusagen nur die Physik von CAN. Das Protokoll möchte ich nun selber 
festlegen.
Also das CANOPEN Protokoll ziehe ich jetzt definitiv nicht mehr in 
Betracht.
Mit dem XC888 kann ich ja CAN Nachrichten senden und empfangen. Das tut 
auch soweit.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitat :
  Der zweite Busteilnehmer soll dann die Info in das Message Objekt 2
  laden und anzeigen.

  Dies soll schon Teilnehmerorientiert sein.

Wenn ich das richtig verstehe sendet Teilnehmer 1 die Schalterstellung 
im CAN Kommando mit der ID 000 0001 0001.
Falls Teilnehmer zwei diese Info empfangen möchte wird ihm nichts 
anderes übrig bleiben, als diese ID auszuwerten. Wer soll denn aus der 
000 0001 0001 (also 0x011) eine 000 0002 0002 (also 0x022) machen ? Der 
Master ?
Oder soll Teilnehmer 2 die Info anzeigen und mit einer anderen ID 
weitersenden  ?

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der CAN Dongle der am PC angeschlossen ist empfängt alle CAN 
Nachrichten.
Jetzut weiss ich nicht ob man jetzt mit meinem Vorhaben einen Master 
braucht oder nicht. Fakt ist ich möchte das Ganze so haben wie ich oben 
bereits beschrieben habe. Mir fehlt das die Idee, wie ich dies machen 
könnte!!!
Der Busteilnehmer soll die CAN NAchricht emfangen und dementsprechend 
die Info mit der LED anzeigen.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gesten habe ich mir nochmals gedanken darüber gemacht.
Ich werde es zuerst mal so machen.
Ich sende vom Busteilnehmer 0 ein CAN NAchricht. Der Busteilnehmer 1 
empfangt diese CAN NAchricht. Dies geschieht so, dass als erstes die 
oberen 4 Bits überprüft werden. Wenn die oberen 4 Bits 0001 ergeben 
dann, weiss der Busteilnehmer 1 das er gemeint ist. Danach werden die 
unteren 7 Bits überprüft, ob eine Message Objekt (z.B. 000 
0001)vorhanden ist. Wenn ja dann speichere die Info in das entsprechende 
Message Objekt. So könnte ich dies doch als erstes mal machen oder ? 
Ziel soll es sein, dass z.B. ein weiterer Busteilnehmer mit der Nr.2, 
diese Nachricht gar nicht empfangen soll.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gehen sollte das so. Effizient ist was anderes.
Falls irgendwann mal ein weiterer Teilnehmer verwendung für die Infos 
vom Teilnehmer 0 hat, so musst du die gleichen Infos unter einer 2. ID 
nochmals versenden und damit die Software mehrerer Knoten ändern.

Bis jetzt hast du nicht ein Argument für die Teilnehmerorientierung 
gebracht.
Ich bleib dabei, schau dir die CAN Grundlagen an und ändere dein 
Grundkonzept.
Dann kannst du auch die Vorteile von CAN nutzen.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll das?

>>Bis jetzt hast du nicht ein Argument für die Teilnehmerorientierung
>>gebracht.

Ich weiss ja auch nicht, wo ich richtige Informationen darüber bekommen 
kann.
Ihr macht da ein Geheimnis draus, das ist unglaublich.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung wie ich dies teilnehmerorientiert realisieren könnte.

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick, auf wischiwaschi-Fragen kommen wischiwaschi-Antworten. Must Du 
Dich nicht wundern.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll das bitte schön? Warum wischiwaschi Fragen?
Ich habe mein Vorhaben schon korrekt beschrieben.

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Posting vom 18.06.2007 15:46 hast Du z.B. völlig ignoriert. Ich 
weiß immer noch nicht wirklich, was Du vor hast. Ich weiß nur, daß Du 
Nachrichten eine Bedeutung zugeordnet hast. Was ja schön ist. Nur was 
ist dann Dein tatsächliches Problem? Du hast geschrieben, daß Du mit dem 
XC888 CAN-Nachrichten senden und empfangen kannst. Dann hast Du doch 
alles was Du brauchst. Nochmal: Was ist Dein tatsächliches Problem?

mfg, Stefan.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan May, mein Problem ist eigentlich die Umsetzung.
Ich möchte dies ja auch teilnehmerorientiert realisieren.
Es soll ja auch so sein, dass ich später die Software auf jeden 
Teilnehmer laden kann. Anschließend die Nummer des Teilnehmers mit 
Schalter festlegen kann.Dies hat dann den Vorteil, dass man nicht für 
jeden teilnehmer eine eigene Software erzeugen muss.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber Stefan hat recht, so ganz verstehe ich nicht was du jetzt wissen 
willst.
Weil Senden und Empfangen kannst du doch...

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann bekommst Du aber das Problem, daß Du einen Master benötigst, der 
Dir die Teilnehmerorientieren Pakete verteilt. Den Nachteil hat Dir 
Patrick schon mitgeteilt, weshalb ja auch sein Vorschlag kam, das ganze 
Nachrichtenorientiert zu betrachten.

Wenn Dein Problem die Umsetzung ist, dann verstehe ich nicht, warum. Du 
sagst, CAN-Nachrichten empfangen und versenden ist kein Problem. Dann 
kannst Du die Empfangenen Nachrichten doch per Software leicht 
auswerten. Woran hapert es denn jetzt. Weißt Du nicht, wie Du anfangen 
sollst? Oder hast Du Probleme, das in Software umzusetzen? Oder ist die 
Hardware das Problem?

mfg, Stefan.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich weiss! Nur das Handlich der CAN-ID (Teilnehmer,Interne Adresse = 
MOx)
fällt mir schwer.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok ich verwende ja einen CAN Dongle am PC. Das verteilen der NAchrichten 
mit Hilfe des Masters (CAN Dongle) möchte ich nicht verwenden. Dann wird 
es zu komplex.
Ja ich weiss nun nicht, wie ich anfangen soll und wie ich dies in die 
Software umzusetzen muss.

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wieder meine Frage nicht beantwortet. :-(   Ich gebe es bald auf. 
Ich habe vier einfache Fragen gestellt und die Antwort ist "Ja ich 
weiss!". Toll.

Die CAN-ID kannst Du z.B. so auswerten (C-Pseudocode):

int teilnehmer = ( id >> 7 ) & 0xF
int interne_adresse = ( id & 0x7F )

if ( teilnehmer == meine_schalter_stellung ) {
  // tue was sinnvolles
}
else {
  // ignoriere mich einfach
}


Hilft Dir das? Ist das Dein Problem?

mfg, Stefan.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich dies ohne Master realisieren will, dann mache ich das ganze 
Nachrichtenorientiert.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wahrscheinlich denke ich viel zu kompliziert. Ich werde zuerst 
überprüfen, wie die CAN-ID aussieht. Wenn die Teilnehmernummer mit der 
Schalterstellung übereinstimmt, kann ich dann als nächstes überprüfen on 
ein Message Objekt anliegt. Wenn ja speichere das Datenbyte in das 
entsprechende Message Objekt.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube dir fehlt ein klares Konzept, sowie ein Busprotokoll....
Das sollte vorher genauestens durchdacht sein, ehe man was 
programmiert..

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ALso eine Busprotokoll habe ich noch nie so entworfen. Wie würde man da 
vorgehen? Also mein Vorhaben, so wie ich es mir vorstelle, ist ungefähr 
klar.
Ich sehe hier noch ein Problem. Dieser XC888 beherbergt ja einen FUL 
CAN.
Das heisst wenn ich mit DAVE eine Message Objekt für den Emfang 
definiere, dann wird immer die CAN Nachricht in diesem Message Objekt 
mitaufgenommen.
Ich möchte aber schon vorher selektieren (feststellen), ob die CAN 
Nachricht in das Message Objekt gespeichert werden soll oder nicht.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, hab mich da ein paar mal vertippt.

Also so ein Busprotokoll habe ich noch nie so entworfen. Wie würde man 
da
vorgehen? Also mein Vorhaben, so wie ich es mir vorstelle, ist ungefähr
klar.

Ich sehe hier noch ein Problem. Dieser XC888 beherbergt ja einen FULL
CAN. Das heisst wenn ich mit DAVE eine Message Objekt für den Empfang
definiere, dann wird immer die CAN Nachricht in diesem Message Objekt
mitaufgenommen.
Ich möchte aber schon vorher selektieren (CAN-ID), ob die CAN
Nachricht in das Message Objekt gespeichert werden soll oder nicht.

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ smay4finger:
Was ich vor habe? Naja, ist nicht ganz einfach das zu erklären,
also ich habe ein µC-System in meinem Weinkeller aufgebaut,
das zur Zeit über RS485 läuft. Das System soll nun um diverse
Komponenten erweitert werden und auch nachher noch erweiterbar
sein (diverse Sensoren und Aktoren halt, die noch dazu sollen)
Im Prinzip könnt ich mir ja n eigenes Protokoll zusammenschustern,
aber mir gefällt einfach die Vorstellung die Module an einen
Industriestandard kompatibel zu machen. Vielleicht wenn
ich mal n bissl mehr Zeit habe könnt ich sie zur Serienreife
weiterentwickeln und auch ggf vermarkten, aber das ist nur zweitrangig.
Ach so, nur zur Verdeutlichung, mit Weinkeller mein ich nicht
das Flaschenregal wo das Fahrrad davor steht, sondern die
Produktionsstätte von 200000L Wein / Jahr mit diversen Maschinen,
Pumpen, Filtern, Pressen etc.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da würde ich aber gerade auf einen ordentlichen und wohldurchdachten 
Ansatz setzen, bei Hard und Software. Weil wenns einmal läuft (wie auch 
immer) änderst du nie und nimmer die ganze Kommunikation.

Lieber vorher zwei Wochen länger drüber nachgedacht, und dann richtig...

Autor: Stefan May (smay4finger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Produktionsstätte von 200000L Wein / Jahr

Ja klar, und dann solche Komponenten selber entwickeln. Mal ein Beispiel 
für eine Industriekomponente:

http://www.frenzel-berg.de/de/pr_canit/canit20.htm

Kostenpunkt so etwa 300 bis 400 Euro. Sowas gibt es von diversen 
Herstellern als CANopen-DS401-Gerät. Einbauen und freuen, daß es 
funktioniert. Gerade im industriellen Umfeld sollte man sich das 
überlegen.

mfg, Stefan.

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn ich aber gern bastle und das ohne
überheblich wirken zu wollen nicht gerade erfolglos?
Mal ganz davon abgesehen, dass ich eben wenn ichs
selbst zusammenbrutzle auch weiß was die Kiste macht und
mir "special features" einbauen kann, die außer mir eben
keiner hat?
Nein, selbst ist der Mann ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.