Exhausto del 2
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2016-11-15
- Skapad
- 2016-11-15
- Kategori
- Modbus, Ventilation
- Visningar
- 2175
Beskrivning
OBS Skript för UltraBase30 och motsvarande
Bruksanvisning
.
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 Exhausto2 NAMED "Exhausto2" TYPEID 18442 IS
PARAMETER
Id : "Adress";
PUBLIC
V1 : "Fläkthastighet frånluft" ["%"]DEC1;
V2 : "Fläkthastighet tilluft" ["%"]DEC1;
V3 : "Tilluftspjäll status" [""]; % 0=stängd 1=öppen
V4 : "Frånluftspjäll" [""];
V5 : "Inställning luftreglering" [""]; % Detta register visar status för luftflödesregleringen. Värde 0 = OFF Värde 1 = Startar Värde 2 = Spjället öppnas Värde 3 = Frånluftsfläkten startar Värde 4 = Tilluftsfläkten startar Värde 5 = VEX i drift Värde 6 = VEX har stoppats men går i förlängd drift Värde 7 = Spjället stängs
V6 : "Tryck frånluftsfläkt" ["Pa"];
V7 : "Flöde frånluft" ["l/s"];
V8 : "Tryck tilluftfläkt" ["Pa"];
V9 : "Flöde tilluft" ["l/s"];
V10 : "Kanaltryck frånluft" ["Pa"];
V11 : "Kanaltryck tilluft" ["Pa"];
V12 : "Börvärde konstant frånlufttryck" ["Pa"];
V13 : "Återkoppling konstant frånlufttryck" ["Pa"];
V14 : "Börvärde konstant tillufttryck" ["Pa"];
V15 : "Återkoppling konstant frånlufttryck" ["Pa"];
V16 : "Larm 1" [""];
V17 : "Larm 2" [""];
V18 : "Larm 3" [""];
V19 : "Larm 4" [""];
V20 : "Larm 5" [""];
V21 : "Larm 6" [""];
V22 : "Larm 7" [""];
V23 : "Larm 8" [""];
V24 : "Larm 9" [""];
V25 : "Larm 10" [""];
V26 : "Larm 11" [""];
V27 : "Larm 12" [""];
V28 : "Larm 13" [""];
V29 : "Larm 14" [""];
V30 : "Larm 15" [""];
V31 : "Larm 16" [""];
V32 : "Värmebatteri 1" ["%"]DEC1;
V33 : "Värmeåtervinningsenhet" ["%"]DEC1;
V34 : "Börvärde konstant tillufttemp" ["°C"]DEC1;
V35 : "Återkoppling konstant tillufttemperatur" ["°C"]DEC1;
V36 : "Börvärde värmebatteri 1" ["°C"]DEC1;
V37 : "Börvärde Återvinningsenhet" ["°C"]DEC1;
V38 : "Temperatur tilluft" ["°C"]DEC1;
V39 : "Temperatur tilluft intern" ["°C"]DEC1;
V40 : "Temperatur tilluft batteri 1" ["°C"]DEC1;
V41 : "Temperaturgivare för uteluft" ["°C"]DEC1;
V42 : "Temperaturgivare för uteluft intern" ["°C"]DEC1;
V43 : " Temperaturgivare för avluft" ["°C"]DEC1;
V44 : "Temperaturgivare för returvatten från värmebatteri 1" ["°C"]DEC1;
V45 : "Temperaturgivare för returvatten från värmebatteri 1" ["°C"]DEC1;
V46 : " Temperaturgivare för tilloppsvatten till värmebatteri 1" ["°C"]DEC1;
PRIVATE
BAUDRATE 9600;
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(104); % Start address
DATA[4] := RWORD(97); % Antal register att läsa
ANSWER SIZE 199 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(04);
DATA[2] = BYTE(194); % Antal Bytes
DATA[3] -> RWORD(V1 := DATA/10;);
DATA[9] -> RWORD(V2 := DATA/10;);
DATA[15] -> RWORD(V3 := DATA;);
DATA[17] -> RWORD(V4 := DATA;);
DATA[27] -> RWORD(V5 := DATA;);
DATA[29] -> RWORD(V6 := DATA;);
DATA[31] -> RWORD(V7 := DATA;);
DATA[33] -> RWORD(V8 := DATA;);
DATA[35] -> RWORD(V9 := DATA;);
DATA[41] -> RWORD(V10 := DATA;);
DATA[43] -> RWORD(V11 := DATA;);
DATA[57] -> RWORD(V12 := DATA;);
DATA[59] -> RWORD(V13 := DATA;);
DATA[61] -> RWORD(V14 := DATA;);
DATA[63] -> RWORD(V15 := DATA;);
DATA[65] -> RWORD(V16 := DATA;);
DATA[67] -> RWORD(V17 := DATA;);
DATA[69] -> RWORD(V18 := DATA;);
DATA[71] -> RWORD(V19 := DATA;);
DATA[73] -> RWORD(V20 := DATA;);
DATA[75] -> RWORD(V21 := DATA;);
DATA[77] -> RWORD(V22 := DATA;);
DATA[79] -> RWORD(V23 := DATA;);
DATA[81] -> RWORD(V24 := DATA;);
DATA[83] -> RWORD(V25 := DATA;);
DATA[85] -> RWORD(V26 := DATA;);
DATA[87] -> RWORD(V27 := DATA;);
DATA[89] -> RWORD(V28 := DATA;);
DATA[91] -> RWORD(V29 := DATA;);
DATA[93] -> RWORD(V30 := DATA;);
DATA[95] -> RWORD(V31 := DATA;);
DATA[143] -> RWORD(IF (DATA>=32768) THEN V32:=(DATA-65536)/10; ELSE V32:=DATA/10; ENDIF;);
DATA[145] -> RWORD(IF (DATA>=32768) THEN V33:=(DATA-65536)/10; ELSE V33:=DATA/10; ENDIF;);
DATA[153] -> RWORD(IF (DATA>=32768) THEN V34:=(DATA-65536)/10; ELSE V34:=DATA/10; ENDIF;);
DATA[155] -> RWORD(IF (DATA>=32768) THEN V35:=(DATA-65536)/10; ELSE V35:=DATA/10; ENDIF;);
DATA[157] -> RWORD(IF (DATA>=32768) THEN V36:=(DATA-65536)/10; ELSE V36:=DATA/10; ENDIF;);
DATA[159] -> RWORD(IF (DATA>=32768) THEN V37:=(DATA-65536)/10; ELSE V37:=DATA/10; ENDIF;);
DATA[169] -> RWORD(IF (DATA>=32768) THEN V38:=(DATA-65536)/10; ELSE V38:=DATA/10; ENDIF;);
DATA[171] -> RWORD(IF (DATA>=32768) THEN V39:=(DATA-65536)/10; ELSE V39:=DATA/10; ENDIF;);
DATA[173] -> RWORD(IF (DATA>=32768) THEN V40:=(DATA-65536)/10; ELSE V40:=DATA/10; ENDIF;);
DATA[177] -> RWORD(IF (DATA>=32768) THEN V41:=(DATA-65536)/10; ELSE V41:=DATA/10; ENDIF;);
DATA[179] -> RWORD(IF (DATA>=32768) THEN V42:=(DATA-65536)/10; ELSE V42:=DATA/10; ENDIF;);
DATA[183] -> RWORD(IF (DATA>=32768) THEN V43:=(DATA-65536)/10; ELSE V43:=DATA/10; ENDIF;);
DATA[191] -> RWORD(IF (DATA>=32768) THEN V44:=(DATA-65536)/10; ELSE V44:=DATA/10; ENDIF;);
DATA[193] -> RWORD(IF (DATA>=32768) THEN V45:=(DATA-65536)/10; ELSE V45:=DATA/10; ENDIF;);
DATA[195] -> RWORD(IF (DATA>=32768) THEN V46:=(DATA-65536)/10; ELSE V46:=DATA/10; ENDIF;);
TIMEOUT 300
END;
END;
% - 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 Exhausto2 NAMED "Exhausto2" TYPEID 18442 IS
PARAMETER
Id : "Adress";
PUBLIC
V1 : "Fläkthastighet frånluft" ["%"]DEC1;
V2 : "Fläkthastighet tilluft" ["%"]DEC1;
V3 : "Tilluftspjäll status" [""]; % 0=stängd 1=öppen
V4 : "Frånluftspjäll" [""];
V5 : "Inställning luftreglering" [""]; % Detta register visar status för luftflödesregleringen. Värde 0 = OFF Värde 1 = Startar Värde 2 = Spjället öppnas Värde 3 = Frånluftsfläkten startar Värde 4 = Tilluftsfläkten startar Värde 5 = VEX i drift Värde 6 = VEX har stoppats men går i förlängd drift Värde 7 = Spjället stängs
V6 : "Tryck frånluftsfläkt" ["Pa"];
V7 : "Flöde frånluft" ["l/s"];
V8 : "Tryck tilluftfläkt" ["Pa"];
V9 : "Flöde tilluft" ["l/s"];
V10 : "Kanaltryck frånluft" ["Pa"];
V11 : "Kanaltryck tilluft" ["Pa"];
V12 : "Börvärde konstant frånlufttryck" ["Pa"];
V13 : "Återkoppling konstant frånlufttryck" ["Pa"];
V14 : "Börvärde konstant tillufttryck" ["Pa"];
V15 : "Återkoppling konstant frånlufttryck" ["Pa"];
V16 : "Larm 1" [""];
V17 : "Larm 2" [""];
V18 : "Larm 3" [""];
V19 : "Larm 4" [""];
V20 : "Larm 5" [""];
V21 : "Larm 6" [""];
V22 : "Larm 7" [""];
V23 : "Larm 8" [""];
V24 : "Larm 9" [""];
V25 : "Larm 10" [""];
V26 : "Larm 11" [""];
V27 : "Larm 12" [""];
V28 : "Larm 13" [""];
V29 : "Larm 14" [""];
V30 : "Larm 15" [""];
V31 : "Larm 16" [""];
V32 : "Värmebatteri 1" ["%"]DEC1;
V33 : "Värmeåtervinningsenhet" ["%"]DEC1;
V34 : "Börvärde konstant tillufttemp" ["°C"]DEC1;
V35 : "Återkoppling konstant tillufttemperatur" ["°C"]DEC1;
V36 : "Börvärde värmebatteri 1" ["°C"]DEC1;
V37 : "Börvärde Återvinningsenhet" ["°C"]DEC1;
V38 : "Temperatur tilluft" ["°C"]DEC1;
V39 : "Temperatur tilluft intern" ["°C"]DEC1;
V40 : "Temperatur tilluft batteri 1" ["°C"]DEC1;
V41 : "Temperaturgivare för uteluft" ["°C"]DEC1;
V42 : "Temperaturgivare för uteluft intern" ["°C"]DEC1;
V43 : " Temperaturgivare för avluft" ["°C"]DEC1;
V44 : "Temperaturgivare för returvatten från värmebatteri 1" ["°C"]DEC1;
V45 : "Temperaturgivare för returvatten från värmebatteri 1" ["°C"]DEC1;
V46 : " Temperaturgivare för tilloppsvatten till värmebatteri 1" ["°C"]DEC1;
PRIVATE
BAUDRATE 9600;
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(104); % Start address
DATA[4] := RWORD(97); % Antal register att läsa
ANSWER SIZE 199 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(04);
DATA[2] = BYTE(194); % Antal Bytes
DATA[3] -> RWORD(V1 := DATA/10;);
DATA[9] -> RWORD(V2 := DATA/10;);
DATA[15] -> RWORD(V3 := DATA;);
DATA[17] -> RWORD(V4 := DATA;);
DATA[27] -> RWORD(V5 := DATA;);
DATA[29] -> RWORD(V6 := DATA;);
DATA[31] -> RWORD(V7 := DATA;);
DATA[33] -> RWORD(V8 := DATA;);
DATA[35] -> RWORD(V9 := DATA;);
DATA[41] -> RWORD(V10 := DATA;);
DATA[43] -> RWORD(V11 := DATA;);
DATA[57] -> RWORD(V12 := DATA;);
DATA[59] -> RWORD(V13 := DATA;);
DATA[61] -> RWORD(V14 := DATA;);
DATA[63] -> RWORD(V15 := DATA;);
DATA[65] -> RWORD(V16 := DATA;);
DATA[67] -> RWORD(V17 := DATA;);
DATA[69] -> RWORD(V18 := DATA;);
DATA[71] -> RWORD(V19 := DATA;);
DATA[73] -> RWORD(V20 := DATA;);
DATA[75] -> RWORD(V21 := DATA;);
DATA[77] -> RWORD(V22 := DATA;);
DATA[79] -> RWORD(V23 := DATA;);
DATA[81] -> RWORD(V24 := DATA;);
DATA[83] -> RWORD(V25 := DATA;);
DATA[85] -> RWORD(V26 := DATA;);
DATA[87] -> RWORD(V27 := DATA;);
DATA[89] -> RWORD(V28 := DATA;);
DATA[91] -> RWORD(V29 := DATA;);
DATA[93] -> RWORD(V30 := DATA;);
DATA[95] -> RWORD(V31 := DATA;);
DATA[143] -> RWORD(IF (DATA>=32768) THEN V32:=(DATA-65536)/10; ELSE V32:=DATA/10; ENDIF;);
DATA[145] -> RWORD(IF (DATA>=32768) THEN V33:=(DATA-65536)/10; ELSE V33:=DATA/10; ENDIF;);
DATA[153] -> RWORD(IF (DATA>=32768) THEN V34:=(DATA-65536)/10; ELSE V34:=DATA/10; ENDIF;);
DATA[155] -> RWORD(IF (DATA>=32768) THEN V35:=(DATA-65536)/10; ELSE V35:=DATA/10; ENDIF;);
DATA[157] -> RWORD(IF (DATA>=32768) THEN V36:=(DATA-65536)/10; ELSE V36:=DATA/10; ENDIF;);
DATA[159] -> RWORD(IF (DATA>=32768) THEN V37:=(DATA-65536)/10; ELSE V37:=DATA/10; ENDIF;);
DATA[169] -> RWORD(IF (DATA>=32768) THEN V38:=(DATA-65536)/10; ELSE V38:=DATA/10; ENDIF;);
DATA[171] -> RWORD(IF (DATA>=32768) THEN V39:=(DATA-65536)/10; ELSE V39:=DATA/10; ENDIF;);
DATA[173] -> RWORD(IF (DATA>=32768) THEN V40:=(DATA-65536)/10; ELSE V40:=DATA/10; ENDIF;);
DATA[177] -> RWORD(IF (DATA>=32768) THEN V41:=(DATA-65536)/10; ELSE V41:=DATA/10; ENDIF;);
DATA[179] -> RWORD(IF (DATA>=32768) THEN V42:=(DATA-65536)/10; ELSE V42:=DATA/10; ENDIF;);
DATA[183] -> RWORD(IF (DATA>=32768) THEN V43:=(DATA-65536)/10; ELSE V43:=DATA/10; ENDIF;);
DATA[191] -> RWORD(IF (DATA>=32768) THEN V44:=(DATA-65536)/10; ELSE V44:=DATA/10; ENDIF;);
DATA[193] -> RWORD(IF (DATA>=32768) THEN V45:=(DATA-65536)/10; ELSE V45:=DATA/10; ENDIF;);
DATA[195] -> RWORD(IF (DATA>=32768) THEN V46:=(DATA-65536)/10; ELSE V46:=DATA/10; ENDIF;);
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.