Netavent NVAV Rumsregulator

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
2
Uppdaterad
2013-08-28
Skapad
2013-08-28
Kategori
Kyla, Modbus, Värme, Ventilation
Visningar
2809

Beskrivning

Drivrutin för att läsa input och holding register

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

% 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 Netavent NAMED "NVAV_Input" TYPEID 10952 IS

 PARAMETER
  Id       : "Adress";

 PUBLIC
  V1 : "Press" ["Pa"]; % Kanal/Lokal tryck
  V2 : "Set" ["Pa"]; % Börvärde regulator
  V3 : "Master Out" ["V"]DEC2; % Master spjäll ut
  V4 : "Master Press" ["Pa"]; % Mätfläns Master
  V5 : "Slave Out" ["V"]DEC2; % Slav spjäll ut
  V6 : "Slave Press" ["Pa"]; % Mätfläns Slav
  V7 : "Ext Set" ["%"]; % Extern börvärde
  V8 : "Min Set" ["Pa"]; % Min börvärde trimmer
  V9 : "Max Set" ["Pa"]; % Max börvärde trimmer
  V10 : "Pct Out" ["%"]; % % förskjutning Master/slav ut
  V11 : "Min Out" ["V"]DEC2; % Min spänning till master
  V12 : "Reg status" [""]; % Regulator status
  V13 : "Pct Freeze" ["%"]; % Aktuell Master/slav förskjutning
  V14 : "Vol master" [""]; % Avläsning av m3/lt
  V15 : "Vol slave" [""]; % Avläsning av m3/Lt

 PRIVATE

 BAUDRATE 9600;
 
 PARITY EVEN;

 CHECKSUM MODBUS SWAPPED;


 TELEGRAM Read4 NAMED "Read 4" IS
  QUESTION
   DATA[0] := BYTE(Id); % Enhetens Modbus adress
   DATA[1] :=  HEX(04); % Modbus kommando för att läsa register kod 04
   DATA[2] := RWORD(1); % Start address
   DATA[4] := RWORD(15); % Antal register att läsa
  ANSWER SIZE 35 % (Antal register * 2) + 5
   DATA[0] = BYTE(Id);
   DATA[1] = BYTE(04);
   DATA[2] = BYTE(30); % Antal Bytes
   DATA[3] -> RWORD(V1 := DATA;);
   DATA[5] -> RWORD(V2 := DATA;);
   DATA[7] -> RWORD(V3 := DATA/100;);
   DATA[9] -> RWORD(V4 := DATA;);
   DATA[11] -> RWORD(V5 := DATA/100;);
   DATA[13] -> RWORD(V6 := DATA;);
   DATA[15] -> RWORD(V7 := DATA;);
   DATA[17] -> RWORD(V8 := DATA;);
   DATA[19] -> RWORD(V9 := DATA;);
   DATA[21] -> RWORD(V10 := DATA;);
   DATA[23] -> RWORD(V11 := DATA/100;);
   DATA[25] -> RWORD(V12 := DATA;);
   DATA[27] -> RWORD(V13 := DATA;);
   DATA[29] -> RWORD(V14 := DATA;);
   DATA[31] -> RWORD(V15 := DATA;);
  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 Netavent NAMED "NVAV_Holding" TYPEID 10953 IS

 PARAMETER
  Id       : "Adress";

 PUBLIC
  V1 : "Reg Set" [""]; % Regulator opsaetning
  V2 : "CtsExtSet" ["%"]; % Externt börvärde 
  V3 : "CtsMinSet" ["Pa"]; % Min börvärde från cts
  V4 : "CtsMaxSet" ["Pa"]; % Max börvärde från cts
  V5 : "CtsPctOut" ["%"]; % % förskjutning från cts
  V6 : "CtsMinOut" ["V"]DEC2; % Min spänning till slav
  V7 : "MasterMode" [""]; % Master ut val
  V8 : "CtsMasterOut" ["V"]DEC2; % Master ut från CTS
  V9 : "SlaveMode" [""]; % Slav ut val
  V10 : "CtsSlaveOut" ["V"]DEC2; % Slav ut från CTS
  V11 : "MasterPressSel" ["Pa"]; % Master tryck val
  V12 : "SlavePressSel" ["Pa"]; % Slav tryck val
  V13 : "KvalMaster" [""]DEC1; % K - värde master
  V14 : "KvalSlave" [""]DEC1; % K - värde slav
  V15 : "dVolM3h" ["m3/h"]; % Delta-Volym m3/h
  V16 : "dVolLs" ["l/s"]; % Delta-Volym l/s

 PRIVATE

 BAUDRATE 9600;

 PARITY EVEN;

 CHECKSUM MODBUS SWAPPED;


 TELEGRAM Read3 NAMED "Read 3" IS
  QUESTION
   DATA[0] := BYTE(Id); % Enhetens Modbus adress
   DATA[1] :=  HEX(03); % Modbus kommando för att läsa register kod 03
   DATA[2] := RWORD(4096); % Start address
   DATA[4] := RWORD(16); % Antal register att läsa
  ANSWER SIZE 37 % (Antal register * 2) + 5
   DATA[0] = BYTE(Id);
   DATA[1] = BYTE(03);
   DATA[2] = BYTE(32); % Antal Bytes
   DATA[3] -> RWORD(V1 := DATA;);
   DATA[5] -> RWORD(V2 := DATA;);
   DATA[7] -> RWORD(V3 := DATA;);
   DATA[9] -> RWORD(V4 := DATA;);
   DATA[11] -> RWORD(V5 := DATA;);
   DATA[13] -> RWORD(V6 := DATA/100;);
   DATA[15] -> RWORD(V7 := DATA;);
   DATA[17] -> RWORD(V8 := DATA/100;);
   DATA[19] -> RWORD(V9 := DATA;);
   DATA[21] -> RWORD(V10 := DATA/100;);
   DATA[23] -> RWORD(V11 := DATA;);
   DATA[25] -> RWORD(V12 := DATA;);
   DATA[27] -> RWORD(V13 := DATA/10;);
   DATA[29] -> RWORD(V14 := DATA/10;);
   DATA[31] -> RWORD(V15 := DATA;);
   DATA[33] -> RWORD(V16 := DATA;);
  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.