Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > Hallo Markus, > > > > eigentlich kannst Du auch mit verschiedenen ID arbeiten. Aber die Abfrage und die entsprechende > > Schleifenanzahl wird immer mehr. > > Ich lasse zwei Controls sich immer auf einen festgelegten Kanal unterhalten. Um jetzt > > mehrere Daten zu verarbeiten nehme ich immer das data[0] als meine eigene ID. > > > > hier mein Beispiel: > > > > <code> > > /****************************************************************************** > > Datenübertragung per CAN auf Kanal 1 ID 100 > > ******************************************************************************/ > > > > > > // Modulvariablen ************************************************************ > > > > > > thread cane1 > > { > > > > // Varis definieren und setzen ------------------------------------------------- > > byte data_e[7]; > > data_e[0]=0;data_e[1]=0;data_e[2]=0;data_e[3]=0;data_e[4]=0;data_e[5]=0;data_e[6]=0;data_e[7]=0; > > > > > > > > can.expect (1,100); > > > > > > loop > > { > > data_e[0]=0;data_e[1]=0;data_e[2]=0;data_e[3]=0; > > data_e[4]=0;data_e[5]=0;data_e[6]=0;data_e[7]=0; > > > > > > wait can.rxd(1); // warte auf Nachrichten auf Kanal 1 > > can.get(1,data_e);// hole Nachrichten ab > > > > > > // Keller +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > if data_e[0]==101 { > > global.SoMe1=data_e[1]*256+data_e[2]; > > global.SoMe2=data_e[3]*256+data_e[4]; > > global.SoMe3=data_e[5]*256+data_e[6];continue;} > > > > if data_e[0]==102 { > > global.SoMe4=data_e[1]*256+data_e[2]; > > global.SoMe5=data_e[3]*256+data_e[4]; > > global.SoMe6=data_e[5]*256+data_e[6];continue;} > > > > if data_e[0]==103 { > > global.SoMe7=data_e[1]*256+data_e[2]; > > global.SoMe8=data_e[3]*256+data_e[4]; > > global.HzMe1=data_e[5]*256+data_e[6];continue;} > > > > if data_e[0]==104 { > > global.HzMe2=data_e[1]*256+data_e[2]; > > global.HzMe3=data_e[3]*256+data_e[4]; > > global.HzMe4=data_e[5]*256+data_e[6];continue;} > > > > if data_e[0]==110 { > > global.HzMe5=data_e[1]*256+data_e[2]; > > global.HzMe6=data_e[3]*256+data_e[4]; > > global.HzMe7=data_e[5]*256+data_e[6];continue;} > > > > if data_e[0]==111 { > > global.HzMe8=data_e[1]*256+data_e[2];continue;} > > > > > > // Zustand Stellantriebe und Sonstiges +++++ > > if data_e[0]==105 { > > global.ZuHzPuOg=data_e[1];global.ZuSoVe=data_e[2]; > > global.ZuRuVe=data_e[3];global.ZuHzPuEg=data_e[4]; > > global.ZuZiPuEg=data_e[5];global.ZuZiPuOg=data_e[6]; > > global.ZuZiVeEg=data_e[7];continue;} > > > > > > if data_e[0]==106 { > > global.ZuZiVeOg=data_e[1];global.ZuSoPu=data_e[2]; > > global.HZBrenner=data_e[3];global.ZWZuAV2=data_e[4];continue;} > > > > if data_e[0]==107 { > > global.ZPE=data_e[1];global.ZPO=data_e[2]; > > global.ZVS=data_e[3];global.ZVE=data_e[4]; > > global.ZVO=data_e[5];global.ZVR=data_e[6]; > > global.ZPS=data_e[7];continue;} > > > > if data_e[0]==108 { > > global.ZHO=data_e[1];global.ZHE=data_e[2]; > > global.ZBB=data_e[3];global.ZNK=data_e[4]; > > global.HZNK=data_e[5];global.HZSoWi=data_e[6]; > > global.LP2FR=data_e[7];continue;} > > > > > > if data_e[0]==109 { > > global.ZuSoVe2=data_e[1];global.ZuLP2=data_e[2]; > > global.ZuAV1=data_e[3];global.ZuAV2=data_e[4]; > > global.ZWZuSoVe2=data_e[5];global.ZWZuLP2=data_e[6]; > > global.ZWZuAV1=data_e[7];continue;} > > > > > > if data_e[0]==112 { > > global.SoMi=data_e[1];global.SoMiEinlernen=data_e[2]; > > global.ZuSoNK=data_e[3];global.ZWZuSoNK=data_e[4];continue;} > > > > > > > > continue; > > > > > > }} > > > > </code> > > > > > > Rene > > Hallo Rene, > > vielen Dank für Deine Antwort, hilft mir gut weiter! > Du opferst praktisch ein Byte für die ID. > > Aber wie sieht Dein Sender aus? > Hab hier mal eine Vermutung eingestellt: > > <code> > /******************************** > can_send.c2 > Sender > 4 analoge Eingänge > ********************************/ > > byte data_s[7]; > > //------------ > thread main > //------------ > { > can.init(can.SPEED_250,0x0000,0x0000); > loop > { > sleep 1000; > > //Datenframe 1 > > data_s[0] = 400; > data_s[1] = globvar.p_Oel / 256; > data_s[2] = globvar.p_Oel and 255; > data_s[3] = globvar.Reskan1 / 256; > data_s[4] = globvar.Reskan1 and 255; > data_s[5] = globvar.Reskan2 / 256; > data_s[6] = globvar.Reskan2 and 255; > can.send(1,data_s[0],data_s,7); > > //Datenframe 2 > > data_s[0] = 401; > data_s[1] = globvar.Reskan4 / 256; > data_s[2] = globvar.Reskan4 and 255; > data_s[3] = globvar.Reskan5 / 256; > data_s[4] = globvar.Reskan5 and 255; > data_s[5] = globvar.Reskan6 / 256; > data_s[6] = globvar.Reskan6 and 255; > can.send(1,data_s[0],data_s,7); > } > } > </code> > > Hier wirds noch ein paar Tage dauern bis ich testen kann... > > Danke und Gruß, > Markus H