Lindinvent

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
1
Uppdaterad
2013-08-27
Skapad
2013-08-27
Kategori
Modbus, Ventilation
Visningar
1930

Beskrivning

Drivrutin

Bruksanvisning

Hur man installerar typdefinitionerna och driftsätter modulerna finns beskrivet i användarmanualen, kapitel 18.7.

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

DEVICETYPE Lindinvent NAMED "Lindinvent" TYPEID 21329 IS
 PARAMETER
  Id       : "Adress";
 PUBLIC
  V0 : "Rek tilllufttemp" ["˚C"]DEC1; % Optimering inblåsningstemperatur 
  V1 : "Rek fläkteffekt" [""]; % Optimering tillufttryck
  V2 : "Rek frånlufttemp" [""]; % Optimering frånlufttryck
  V3 : "Börvärdesförskjutning" ["˚C"]DEC1; % Nattkyla och rumstemperaturbörvärdesförskjutning
  V4 : "Utetemperatur" ["˚C"]DEC1; %Sätts av DUC
 PRIVATE
  cnt;
 BAUDRATE 9600;
 CHECKSUM MODBUS SWAPPED;
 TELEGRAM ReadInput NAMED "Read input" IS
  QUESTION
   DATA[0] := BYTE(Id); % Enhetens Modbus adress
   DATA[1] :=  HEX(03); % Modbus kommando för att läsa input
   DATA[2] <- RWORD(
     IF cnt > 3 THEN cnt := 0; ENDIF;
     IF cnt = 0 THEN DATA := 37;
     ELSIF cnt = 1 THEN DATA := 43;
     ELSIF cnt = 2 THEN DATA := 44;
     ELSIF cnt = 3 THEN DATA := 69;
     ENDIF;
   ); % Start address
   DATA[4] := RWORD(1); % Number of registers to read
  ANSWER SIZE 7 % (Number of registers * 2) + 5
   DATA[0] = BYTE(Id);
   DATA[1] = BYTE(03);
   DATA[2] = BYTE(2); % Byte count
   DATA[3] -> RWORD(
    IF cnt = 0 THEN V0 := (DATA-30000)/10;
    ELSIF cnt = 1 THEN V1 := DATA-30000;
    ELSIF cnt = 2 THEN V2 := DATA-30000;
    ELSIF cnt = 3 THEN V3:=(DATA-30000)/10;
    ENDIF;
    cnt := cnt + 1;
    );
  TIMEOUT 500
 END;
TELEGRAM WriteInput NAMED "Write input" IS
  QUESTION
   DATA[0] := BYTE(Id); % Enhetens Modbus adress
   DATA[1] :=  HEX(06); % Modbus kommando för att skriva
   DATA[2] := RWORD(164); % Start address
   DATA[4] <- RWORD(DATA := (V4*10)+30000;);   
  ANSWER SIZE 8
   DATA[0] = BYTE(Id);
   DATA[1] = HEX(06);
  TIMEOUT 500
 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.