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

Re: CAN-Bus Kategorie: Programmierung (von Rene Forster - 30.01.2012 17:36)
Als Antwort auf Re: CAN-Bus von Martina - 27.01.2012 11:03
Ich nutze:
C-Control II Unit, C-Control II Station, CC2-ReglerBoard, OSOPT V3.1
Hier ein Sendethread:


/******************************************************************************
Datenübertragung per CAN an Control Haus / Server
******************************************************************************/

byte data_s[8];

// Modulvariablen ************************************************************


thread cans1
{
// Verzögerung, um beim Start keine falschen Messwerte zu senden
sleep 20000;sleep 20000;
data_s[0]=0;data_s[1]=0;data_s[2]=0;data_s[3]=0;data_s[4]=0;data_s[5]=0;data_s[6]=0;data_s[7]=0;

loop{

// Temperatur IST Werte ++++++++++++++++++++
data_s[0]=101;
data_s[1]=global.SoMe1/256;data_s[2]=global.SoMe1 and 255;
data_s[3]=global.SoMe2/256;data_s[4]=global.SoMe2 and 255;
data_s[5]=global.SoMe3/256;data_s[6]=global.SoMe3 and 255;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=102;
data_s[1]=global.SoMe4/256;data_s[2]=global.SoMe4 and 255;
data_s[3]=global.SoMe5/256;data_s[4]=global.SoMe5 and 255;
data_s[5]=global.SoMe6/256;data_s[6]=global.SoMe6 and 255;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=103;
data_s[1]=global.SoMe7/256;data_s[2]=global.SoMe7 and 255;
data_s[3]=global.SoMe8/256;data_s[4]=global.SoMe8 and 255;
data_s[5]=global.HzMe1/256;data_s[6]=global.HzMe1 and 255;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=104;
data_s[1]=global.HzMe2/256;data_s[2]=global.HzMe2 and 255;
data_s[3]=global.HzMe3/256;data_s[4]=global.HzMe3 and 255;
data_s[5]=global.HzMe4/256;data_s[6]=global.HzMe4 and 255;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=110;
data_s[1]=global.HzMe5/256;data_s[2]=global.HzMe5 and 255;
data_s[3]=global.HzMe6/256;data_s[4]=global.HzMe6 and 255;
data_s[5]=global.HzMe7/256;data_s[6]=global.HzMe7 and 255;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=111;
data_s[1]=global.HzMe8/256;data_s[2]=global.HzMe8 and 255;
can.send(1,100,data_s,8);sleep 250;


// Zustand Stellantriebe und Sonstiges +++++
data_s[0]=105;
data_s[1]=global.ZuHzPuOg;data_s[2]=global.ZuSoVe;
data_s[3]=global.ZuRuVe;data_s[4]=global.ZuHzPuEg;
data_s[5]=global.ZuZiPuEg;data_s[6]=global.ZuZiPuOg;
data_s[7]=global.ZuZiVeEg;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=106;
data_s[1]=global.ZuZiVeOg;data_s[2]=global.ZuSoPu;
data_s[3]=global.HZBrenner;data_s[4]=global.ZWZuAV2;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=107;
data_s[1]=global.ZPE;data_s[2]=global.ZPO;
data_s[3]=global.ZVS;data_s[4]=global.ZVE;
data_s[5]=global.ZVO;data_s[6]=global.ZVR;
data_s[7]=global.ZPS;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=108;
data_s[1]=global.ZHO;data_s[2]=global.ZHE;
data_s[3]=global.ZBB;data_s[4]=global.ZNK;
data_s[5]=global.HZNK;data_s[6]=global.HZSoWi;
data_s[7]=global.LP2FR;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=109;
data_s[1]=global.ZuSoVe2;data_s[2]=global.ZuLP2;
data_s[3]=global.ZuAV1;data_s[4]=global.ZuAV2;
data_s[5]=global.ZWZuSoVe2;data_s[6]=global.ZWZuLP2;
data_s[7]=global.ZWZuAV1;
can.send(1,100,data_s,8);sleep 250;

data_s[0]=112;
data_s[1]=global.SoMi;data_s[2]=global.SoMiEinlernen;
data_s[3]=global.ZuSoNK;data_s[4]=global.ZWZuSoNK;
can.send(1,100,data_s,8);sleep 250;

}}


und hier der Emfangsthread:


/******************************************************************************
Datenübertragung per CAN auf Kanal 1 ID 100
******************************************************************************/



// Modulvariablen ************************************************************


thread cane1
{

// Varis definieren und setzen -------------------------------------------------
byte data_e[8];
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;}

}}


Rene


    Antwort schreiben


Antworten: