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) |