Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Probleme mit 3 Units Kategorie: CAN-Bus (von Rainer - 10.12.2011 13:19)
Ich nutze:
C-Control II Station, CC2-ReglerBoard, OSOPT V3.1
Das Ziel ist 2 C-Control Reglerboards und eine Station ĂĽber CAN-Bus zuverbinden.
2 Unit senden
1 Unit empfängt

Leider gibt es keine korrekte Datenübertragung, Abschlusswiderstände mit je 120 Ohm sind gesetzt,
2 StĂĽck gesamt.
Die 3 Units befinden sich räumlich getrennt ca. 30 m Entfernung.
Cat5 Kabel zur Vernetzung gelegt. H an H L an L GND am GND usw.
Variablen sind definiert.
Es tut sich was, aber nicht zuverlässig, kann das an der Adressierung liegen ?

Hier ein Auszug aus dem Quellcode. Ich bitte um Hilfe und �berprüfung des Quellcodes. Möglichst
sollten auch die Sender empfangen können.

Mit 2 Units läuft alles perfekt !

*********************
//Unit 1



byte can8,can9;

thread canempfang

{

  // CAN-Kanal 2
 
  byte buffer[8];
 
  if can.rxd(2) {can.request(2);can.get(2,buffer);}
   can8=buffer[0];
 
    // CAN-Kanal 5

  byte buffer2[8];

  if can.rxd(5) {can.request(5);can.get(5,buffer2);}
  can9=buffer2[0];


}


thread main

{
can.init(0,0x0000,0x0000);
can.expect (5,500);
can.expect (2,200);


run canempfang;
halt;
}


********************
//Unit 2


byte data[7];

thread send

{

  data[0]=1;
  data[1]=0;
  data[2]=0;
  data[3]=0;
  data[4]=0;
  data[5]=0;
  data[6]=0;
  data[7]=0);
  can.publish(5,500,data,8);
)

thread main

{
can.init(0,0x0000,0x0000);
run cansend;

halt;

}


********************
//Unit 3

byte data2[7];

thread send

{

  data2[0]=1;
  data2[1]=0;
  data2[2]=0;
  data2[3]=0;
  data2[4]=0;
  data2[5]=0;
  data2[6]=0;
  data2[7]=0;
  can.publish(2,200,data,8);

}

thread main

{
can.init(0,0x0000,0x0000);

run cansend;

halt;

}

thread empfang

 // CAN-Kanal 2

{  
  byte buffer[8];
 
  if can.rxd(2) {can.request(2);can.get(2,buffer);}
   can8=buffer[0];
 
    // CAN-Kanal 3 Werkstatt

  byte buffer2[8];

  if can.rxd(5) {can.request(5);can.get(5,buffer2);}
  can9=buffer2[0];


}


thread main

{
can.init(0,0x0000,0x0000);
can.expect (5,500);
can.expect (2,200);

run canempfang;
halt;
}



    Antwort schreiben


Antworten: