Trådlösa Elvaco givare CMa10/11W via CMeX50

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
6
Uppdaterad
2017-10-02
Skapad
2013-08-27
Kategori
M-bus, Mätare, Trådlöst
Visningar
3545

Beskrivning

Fungerar även på IMSE Ultra
Skript för hämtning av värden från de trådlösa Elvacogivarna CMa10/11W via Elvaco CMeX50.
Observera att det är två skript nedan så du måste själv dela upp dem om du ska använda dem i en Ultra.

Bruksanvisning

Viktigt är att sätta nedanstående i CMeX50. Se manualen för CMeX50 för hur du gör dessa inställningar

-DIF/VIF mode ska vara satt i läge "Auto address"
-Wired M-bus mode ska vara satt i läge "Auto"

Om du vill ha medelvärden från alla givare kan du lägga till enheten som heter Medelvärden CMa10W.

Om du inte har en CMeX50 som du kan hantera kan du använda det andra skriptet här för att köra mot exempelvis en CMe3100 som har CMeX50 mottagare kopplade till sig.

Juridisk information

Alla skript tillhandahålls i befintligt skick och all användning sker på eget ansvar. Felaktig använding kan leda till skadad eller förstörd utrustning.

Skript kod

% Skript för hämtning av värden från de trådlösa Elvacogivarna CMa10/11W via 
% Elvaco CMeX50. 
% Viktigt är att sätta nedanstående i CMeX50. Se manualen för CMeX50 för hur du gör dessa
% inställningar
% DIF/VIF mode ska vara satt i läge "Auto address"
% Wired M-bus mode ska vara satt i läge "Auto"
% Abelko Innovation, Marcus Willander 20130807
% Om du vill ha medelvärden från alla givare kan du lägga till enheten som heter Medelvärden CMa10W
DEVICETYPE CMa10W NAMED "Elvaco CMa10W" TYPEID 424
IS
  PARAMETER
    Id :"Address"INT;
  PUBLIC
    IdNr     : "Mätar ID" [""]INT;
    Tcurrent : "Temperatur"["°C"]DEC2;
    Tmean1   : "1h medeltemp" ["°C"]DEC2;
    Tmean24  : "24h medeltemp" ["°C"]DEC2;
    Tmin24   : "24h mintemp" ["°C"]DEC2;
    Tmax24   : "24h maxtemp" ["°C"]DEC2;

    Hcurrent : "Luftfuktighet"["% RH"]DEC1;
    Hmean1   : "1h medelfukt."["% RH"]DEC1;
    Hmean24  : "24h medelfukt."["% RH"]DEC1;
    Hmin24   : "24h minfukt."["% RH"]DEC1;
    Hmax24   : "24h maxfukt."["% RH"]DEC1;
  PRIVATE
    Exp;
    tmp1;
  BAUDRATE 2400;
  PARITY EVEN;
  CHECKSUM SUM8 SKIP 4;
  POSTBYTES 1;
  
  TELEGRAM Read NAMED "Läs mätdata" IS
    QUESTION
      DATA[0] := HEX(10);
      DATA[1] := HEX(4B);
      DATA[2] := BYTE(Id);
      DATA[3] <- BYTE(DATA :=Id+75;);
      DATA[4] := HEX(16);
    ANSWER SIZE 103
      DATA[0] = HEX(68);
      DATA[1] = HEX(61);
      DATA[2] = HEX(61);
      DATA[3] = HEX(68);
      DATA[4] = HEX(08);
      DATA[5] = BYTE(Id);
      DATA[6] = HEX(72);
      DATA[7] ->WORD(tmp1:=DATA;);
      DATA[9] ->WORD(IdNr:=tmp1+65536*DATA;);
      DATA[21]= HEX(02);
      DATA[22]= HEX(65);
      DATA[23]->WORD( IF DATA & 32768 THEN Tcurrent:=(DATA-65536)/100; ELSE Tcurrent:=DATA/100;ENDIF; );
      DATA[27]->WORD(IF DATA & 32768 THEN Tmean1:=(DATA-65536)/100; ELSE Tmean1:=DATA/100;ENDIF; );
      DATA[32]->WORD(IF DATA & 32768 THEN Tmean24:=(DATA-65536)/100; ELSE Tmean24:=DATA/100;ENDIF; );
      DATA[44]->WORD(IF DATA & 32768 THEN Tmin24:=(DATA-65536)/100; ELSE Tmin24:=DATA/100;ENDIF; );
      DATA[48]->WORD(IF DATA & 32768 THEN Tmax24:=(DATA-65536)/100; ELSE Tmax24:=DATA/100;ENDIF; );
      DATA[50]= HEX(02);
      DATA[51]= HEX(FB);
      DATA[52]= HEX(1A);
      DATA[53]->WORD(Hcurrent:=DATA/10;);
      DATA[58]->WORD(Hmean1:=DATA/10;);
      DATA[64]->WORD(Hmean24:=DATA/10;);
      DATA[79]->WORD(Hmin24:=DATA/10;);
      DATA[84]->WORD(Hmax24:=DATA/10;);
    TIMEOUT 5000
  END;
END;

% Använd detta skript om du inte har lyckats få bort container mode i CMeX50.
DEVICETYPE CMa10W_ NAMED "Elvaco CMa10W_" TYPEID 425
IS
  PARAMETER
    Id :"Address"INT;
  PUBLIC
    IdNr     : "Mätar ID" [""]INT;
    Tcurrent : "Temperatur"["°C"]DEC2;
    Tmean1   : "1h medeltemp" ["°C"]DEC2;
    Tmean24  : "24h medeltemp" ["°C"]DEC2;
    Tmin24   : "24h mintemp" ["°C"]DEC2;
    Tmax24   : "24h maxtemp" ["°C"]DEC2;

    Hcurrent : "Luftfuktighet"["% RH"]DEC1;
    Hmean1   : "1h medelfukt."["% RH"]DEC1;
    Hmean24  : "24h medelfukt."["% RH"]DEC1;
    Hmin24   : "24h minfukt."["% RH"]DEC1;
    Hmax24   : "24h maxfukt."["% RH"]DEC1;
  PRIVATE
    Exp;
    tmp1;
  BAUDRATE 2400;
  PARITY EVEN;
  CHECKSUM SUM8 SKIP 4;
  POSTBYTES 1;
  
  TELEGRAM Read NAMED "Läs mätdata" IS
    QUESTION
      DATA[0] := HEX(10);
      DATA[1] := HEX(7B);
      DATA[2] := BYTE(Id);
      DATA[3] <- BYTE(DATA :=Id+123;);
      DATA[4] := HEX(16);
    ANSWER SIZE 117
      DATA[0] = HEX(68);
      DATA[1] = HEX(6F);
      DATA[2] = HEX(6F);
      DATA[3] = HEX(68);
      DATA[4] = HEX(08);
      DATA[5] = BYTE(Id);
      DATA[6] = HEX(72);
      DATA[21] ->WORD(tmp1:=DATA;);
      DATA[23] ->WORD(IdNr:=tmp1+65536*DATA;);
      DATA[35]= HEX(02);
      DATA[36]= HEX(65);
      DATA[37]->WORD( IF DATA & 32768 THEN Tcurrent:=(DATA-65536)/100; ELSE Tcurrent:=DATA/100;ENDIF; );
      DATA[41]->WORD(IF DATA & 32768 THEN Tmean1:=(DATA-65536)/100; ELSE Tmean1:=DATA/100;ENDIF; );
      DATA[46]->WORD(IF DATA & 32768 THEN Tmean24:=(DATA-65536)/100; ELSE Tmean24:=DATA/100;ENDIF; );
      DATA[58]->WORD(IF DATA & 32768 THEN Tmin24:=(DATA-65536)/100; ELSE Tmin24:=DATA/100;ENDIF; );
      DATA[62]->WORD(IF DATA & 32768 THEN Tmax24:=(DATA-65536)/100; ELSE Tmax24:=DATA/100;ENDIF; );
      DATA[64]= HEX(02);
      DATA[65]= HEX(FB);
      DATA[66]= HEX(1A);
      DATA[67]->WORD(Hcurrent:=DATA/10;);
      DATA[72]->WORD(Hmean1:=DATA/10;);
      DATA[78]->WORD(Hmean24:=DATA/10;);
      DATA[93]->WORD(Hmin24:=DATA/10;);
      DATA[98]->WORD(Hmax24:=DATA/10;);
    TIMEOUT 5000
  END;

Användarnas noteringar

Du måste vara inloggad för att göra en notering. Bli medlem eller logga in. Vi använder en moderator som godkänner noteringarna innan de visas.