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

Nullwerte Kategorie: CAN-Bus (von Stefan - 27.07.2004 9:56)


Habe ein kleines grosses Problem. Ich setze mit der CC2-Unit RS232 Messwerte eines
Datenloggers auf CAN Bus um.
Hierzu sendet die CC2 zyklisch eine Anfrage an den Logger , dieser antwortet, die Daten aus dem
Buffer werden in CAN Botschaften verpackt und auf den Bus gelegt.
Soweit alles schön und gut, aber leider habe ich in unregelmaessigen Abstaenden auf allen
gemessenen Kanälen Nullen , die definitiv nicht vom Messgerät kommen.
Vieleicht hat ja jemand eine Idee was ich falsch gemacht habe. Evtl. das mit dem Flush des
Empfangsbuffers??


Hier der Quelltext:


/***************************************************************
    Ausgabe von YOKOGAWA
    Messwerten auf den
    CAN Bus
    19.7.2004 Schuessler
****************************************************************/

//------------
  thread main
//------------
{

//Warten auf YOKO****************************
lcdext.init();
lcdext.clear();
lcdext.line(1);
lcdext.print("Warten auf YOKO");
sleep 15000;
//*******************************************

// Variablen defineren

 byte s[250];
 long b,k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,k11,k12,k13,k14,k15;
 long k16,k17,k18,k19,k20,k21,k22,k23,k24,k25,k26,k27,k28,k29,k30;
 
 
 byte data_t[7];
 byte data_u[7];
 byte data_v[7];
 byte data_w[7];
 byte data_x[7];
 byte data_y[7];
 byte data_z[7];
 byte data_s[7];
 
 
// Schnittstelle Einstellen******************************************

           hwcom.init ();
           hwcom.setspeed (hwcom.SPEED_9600);
           hwcom.setbuf(s,250);
           can.init(can.SPEED_125,0x0000,0x0000);
//*********************************************************************
// Ausgabe des Data Outputbefehls an den YOKO
loop
  {
wait hwcom.ready();
    hwcom.print("TS0");
    hwcom.put(10);
    hwcom.put(27);
    hwcom.print("T");
    hwcom.put(10);
    hwcom.print("FM1,001,030");
    hwcom.put(10);
wait hwcom.ready();
//*******************************************************************
lcdext.clear();
lcdext.line(1);
lcdext.print("Yoko2CAN");
wait hwcom.rxd();


hwcom.flush();

// Werte aus Buffer auf Kanalvariablen schreiben

k1=mem.getlong(s,18);
k2=mem.getlong(s,24);
k3=mem.getlong(s,30);
k4=mem.getlong(s,36);
k5=mem.getlong(s,42);
k6=mem.getlong(s,48);
k7=mem.getlong(s,54);
k8=mem.getlong(s,60);
k9=mem.getlong(s,66);
k10=mem.getlong(s,72);
k11=mem.getlong(s,78);
k12=mem.getlong(s,84);
k13=mem.getlong(s,90);
k14=mem.getlong(s,96);
k15=mem.getlong(s,102);
k16=mem.getlong(s,108);
k17=mem.getlong(s,114);
k18=mem.getlong(s,120);
k19=mem.getlong(s,126);
k20=mem.getlong(s,132);
k21=mem.getlong(s,138);
k22=mem.getlong(s,144);
k23=mem.getlong(s,150);
k24=mem.getlong(s,156);
k25=mem.getlong(s,162);
k26=mem.getlong(s,168);
k27=mem.getlong(s,174);
k28=mem.getlong(s,180);
k29=mem.getlong(s,186);
k30=mem.getlong(s,192);



// ready*********************+
lcdext.line(2);
lcdext.print("Running");
//*****************************


// Ausgabe auf CAN**********************



    data_s[0]=k1/256;
    data_s[1]=k1 and 255;
    data_s[2]=k2/256;
    data_s[3]=k2 and 255;
    data_s[4]=k3/256;
    data_s[5]=k3 and 255;
    data_s[6]=k4/256;
    data_s[7]=k4 and 255;
   


    data_t[0]=k5/256;
    data_t[1]=k5 and 255;
    data_t[2]=k6/256;
    data_t[3]=k6 and 255;
    data_t[4]=k7/256;
    data_t[5]=k7 and 255;
    data_t[6]=k8/256;
    data_t[7]=k8 and 255;
   


    data_u[0]=k9/256;
    data_u[1]=k9 and 255;
    data_u[2]=k10/256;
    data_u[3]=k10 and 255;
    data_u[4]=k11/256;
    data_u[5]=k11 and 255;
    data_u[6]=k12/256;
    data_u[7]=k12 and 255;
   


    data_v[0]=k13/256;
    data_v[1]=k13 and 255;
    data_v[2]=k14/256;
    data_v[3]=k14 and 255;
    data_v[4]=k15/256;
    data_v[5]=k15 and 255;
    data_v[6]=k16/256;
    data_v[7]=k16 and 255;
   


    data_w[0]=k17/256;
    data_w[1]=k17 and 255;
    data_w[2]=k18/256;
    data_w[3]=k18 and 255;
    data_w[4]=k19/256;
    data_w[5]=k19 and 255;
    data_w[6]=k20/256;
    data_w[7]=k20 and 255;
   


    data_x[0]=k21/256;
    data_x[1]=k21 and 255;
    data_x[2]=k22/256;
    data_x[3]=k22 and 255;
    data_x[4]=k23/256;
    data_x[5]=k23 and 255;
    data_x[6]=k24/256;
    data_x[7]=k24 and 255;
   


    data_y[0]=k25/256;
    data_y[1]=k25 and 255;
    data_y[2]=k26/256;
    data_y[3]=k26 and 255;
    data_y[4]=k27/256;
    data_y[5]=k27 and 255;
    data_y[6]=k28/256;
    data_y[7]=k28 and 255;
   


    data_z[0]=k29/256;
    data_z[1]=k29 and 255;
    data_z[2]=k30/256;
    data_z[3]=k30 and 255;
   

can.send(1,400,data_s,8);
can.send(2,401,data_t,8);
can.send(3,402,data_u,8);
can.send(4,403,data_v,8);
can.send(5,404,data_w,8);
can.send(6,405,data_x,8);
can.send(7,406,data_y,8);
can.send(8,407,data_z,4);

sleep 800;





  }
}


    Antwort schreiben


Antworten:

Re: Nullwerte (von André H. - 28.07.2004 13:49)
    Re: Nullwerte (von Stefan - 29.07.2004 10:18)
        Re: Nullwerte (von André H. - 4.08.2004 22:00)