IV AHU skriv värden / styrning (Climatix)

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
1
Uppdaterad
2013-04-24
Skapad
2013-04-24
Kategori
Modbus, Värme, Ventilation
Visningar
2573

Beskrivning

En modbus drivrutin för att skriva värden till ett IV ventilations aggregat. Gäller för Climatix™Modbus communication för standard IV Produkt AHU application v2.04.

Bruksanvisning

Se IV AHU steg styrning (Climatix) om du även vill styra aggregatet (med en enklare styrning än den här)
se IV AHU läs värden (Climatix) för att läsa värden

Skriptet är på 2 enheter eftersom wm pro har en begränsning på max 10 ställbara värden per enhet.

Om du inte vill styra ett visst värde sätt då % tecknet framför (kommentera bort). Som tex om jag inte vill styra wComfortTempDZ så ser raderna för den ut så här:
% V2 : "wComfortTempDZ" ["°C"]DEC1;
% ELSIF (count6=1) THEN DATA := 20;
% ELSIF (count6=1) THEN DATA := V2*10;

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

% Skapad med Modbus Creator
% - OBS! Användaren ansvarar själv för att samma TYPID inte används flera gånger i samma apparat.
%   TYPID 10000-19999 är för användardefinierade enheter
DEVICETYPE wIV_AHUClimatix NAMED "wIV_AHUClimatix" TYPEID 10330 IS

 PARAMETER
  Id       : "Adress";
  V1 : "wONCSteps" [""]; % auto*off*stage1-3
  V2 : "wComfortTempDZ" ["°C"]DEC1;
  V3 : "wComfortHeatSP" ["°C"]DEC1;
  V4 : "wSummerWinterComp" ["°C"]DEC1;
  V5 : "wSupplyTempMinSP" ["°C"]DEC1;
  V6 : "wSupplyTempMaxSP" ["°C"]DEC1;
  V7 : "wSupplyFanSt1SP" [""]; % %, Pa, l/s
  V8 : "wSupplyFanSt2SP" [""];
  
 PUBLIC

 PRIVATE
  count6;

 BAUDRATE 9600;
 CHECKSUM MODBUS SWAPPED;

 TELEGRAM WriteRegister NAMED "Write Register" IS
  QUESTION
   DATA[0] := BYTE(Id); % Enhetens Modbus adress
   DATA[1] :=  HEX(06); % Modbus kommando för att skriva ett register
   DATA[2] <- RWORD(
    IF(count6>7) THEN count6 := 0; ENDIF;
    IF (count6=0) THEN DATA := 4;
    ELSIF (count6=1) THEN DATA := 20;
    ELSIF (count6=2) THEN DATA := 21;
    ELSIF (count6=3) THEN DATA := 31;
    ELSIF (count6=4) THEN DATA := 35;
    ELSIF (count6=5) THEN DATA := 36;
    ELSIF (count6=6) THEN DATA := 49;
    ELSIF (count6=7) THEN DATA := 50;
    ENDIF;
   ); % Register adress
   DATA[4] <- RWORD(
    IF (count6=0) THEN DATA := V1;
    ELSIF (count6=1) THEN DATA := V2*10;
    ELSIF (count6=2) THEN DATA := V3*10;
    ELSIF (count6=3) THEN DATA := V4*10;
    ELSIF (count6=4) THEN DATA := V5*10;
    ELSIF (count6=5) THEN DATA := V6*10;
    ELSIF (count6=6) THEN DATA := V7;
    ELSIF (count6=7) THEN DATA := V8;
    ENDIF;
    count6 := count6+1;
   );
  ANSWER SIZE 8
   DATA[0] = BYTE(Id);
   DATA[1] = BYTE(06);
  TIMEOUT 300
 END;
END;

% Skapad med Modbus Creator
% - OBS! Användaren ansvarar själv för att samma TYPID inte används flera gånger i samma apparat.
%   TYPID 10000-19999 är för användardefinierade enheter
DEVICETYPE w2IV_AHUClimatix NAMED "w2IV_AHUClimatix" TYPEID 10331 IS

 PARAMETER
  Id       : "Adress";
  V9 : "wSupplyFanSt3SP" [""];
  V10 : "wExhFanSt1SP" [""];
  V11 : "wExhFanSt2SP" [""];
  V12 : "wExhFanSt3SP" [""];
  V13 : "wStartHeatStart" ["°C"]DEC1;
  V14 : "wStartHeatSP" ["°C"]DEC1;

 PUBLIC

 PRIVATE
  count6;

 BAUDRATE 9600;
 CHECKSUM MODBUS SWAPPED;

 TELEGRAM WriteRegister NAMED "Write Register" IS
  QUESTION
   DATA[0] := BYTE(Id); % Enhetens Modbus adress
   DATA[1] :=  HEX(06); % Modbus kommando för att skriva ett register
   DATA[2] <- RWORD(
    IF(count6>5) THEN count6 := 0; ENDIF;
    IF (count6=0) THEN DATA := 51;
    ELSIF (count6=1) THEN DATA := 53;
    ELSIF (count6=2) THEN DATA := 54;
    ELSIF (count6=3) THEN DATA := 55;
    ELSIF (count6=4) THEN DATA := 73;
    ELSIF (count6=5) THEN DATA := 74;
    ENDIF;
   ); % Register adress
   DATA[4] <- RWORD(
    IF (count6=0) THEN DATA := V9;
    ELSIF (count6=1) THEN DATA := V10;
    ELSIF (count6=2) THEN DATA := V11;
    ELSIF (count6=3) THEN DATA := V12;
    ELSIF (count6=4) THEN DATA := V13*10;
    ELSIF (count6=5) THEN DATA := V14*10;
    ENDIF;
    count6 := count6+1;
   );
  ANSWER SIZE 8
   DATA[0] = BYTE(Id);
   DATA[1] = BYTE(06);
  TIMEOUT 300
 END;
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.