IV AHU Larm
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2015-04-22
- Skapad
- 2015-04-22
- Kategori
- Modbus, Ventilation
- Visningar
- 2039
Beskrivning
Observera att detta är för kommunikation med den enklare standardstyrningen på IV aggregaten. Du kan också beställa aggregat från IV för styrning direkt från IMSE WMPro eller IMSE Ultra.
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 AHUAlarm NAMED "AHUAlarm" TYPEID 16462 IS
PARAMETER
Id : "Adress";
PUBLIC
V1 : "FireDampClosed" [""]; % 0=Ok, 1=Alarm
V2 : "FireDampOpen" [""];
V3 : "FireDampNoMove" [""];
V4 : "SupplyFan" [""];
V5 : "CoolingDX" [""];
V6 : "HeatRecovery" [""];
V7 : "HeatPump" [""];
V8 : "HeatFrost" [""];
V9 : "SupTempDeviation" [""];
V10 : "RoomTempDeviation" [""];
V11 : "SupFilter" [""];
V12 : "ExhaustFilter" [""];
V13 : "FireAlarm" [""];
V14 : "SupTempFire" [""];
V15 : "ExhTempFire" [""];
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM Read2 NAMED "Read 2" IS
QUESTION
DATA[0] := BYTE(Id); % Enhetens Modbus adress
DATA[1] := HEX(02); % Modbus kommando för att läsa register kod 02
DATA[2] := RWORD(21); % Start address
DATA[4] := RWORD(54); % Antal register att läsa
ANSWER SIZE 12 % (Antal register / 8) avrundat uppåt + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(02);
DATA[2] = BYTE(7); % Antal Bytes
DATA[3] -> BYTE(
IF (DATA & 1) THEN V1 := 1; ELSE V1 := 0; ENDIF;
IF (DATA & 2) THEN V2 := 1; ELSE V2 := 0; ENDIF;
IF (DATA & 4) THEN V3 := 1; ELSE V3 := 0; ENDIF;
IF (DATA & 32) THEN V4 := 1; ELSE V4 := 0; ENDIF;
);
DATA[4] -> BYTE(
IF (DATA & 1) THEN V5 := 1; ELSE V5 := 0; ENDIF;
);
DATA[5] -> BYTE(
IF (DATA & 4) THEN V6 := 1; ELSE V6 := 0; ENDIF;
IF (DATA & 128) THEN V7 := 1; ELSE V7 := 0; ENDIF;
);
DATA[6] -> BYTE(
IF (DATA & 2) THEN V8 := 1; ELSE V8 := 0; ENDIF;
);
DATA[7] -> BYTE(
IF (DATA & 8) THEN V9 := 1; ELSE V9 := 0; ENDIF;
IF (DATA & 16) THEN V10 := 1; ELSE V10 := 0; ENDIF;
);
DATA[9] -> BYTE(
IF (DATA & 2) THEN V11 := 1; ELSE V11 := 0; ENDIF;
IF (DATA & 4) THEN V12 := 1; ELSE V12 := 0; ENDIF;
IF (DATA & 8) THEN V13 := 1; ELSE V13 := 0; ENDIF;
IF (DATA & 16) THEN V14 := 1; ELSE V14 := 0; ENDIF;
IF (DATA & 32) THEN V15 := 1; ELSE V15 := 0; 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 AHUAlarm NAMED "AHUAlarm" TYPEID 16462 IS
PARAMETER
Id : "Adress";
PUBLIC
V1 : "FireDampClosed" [""]; % 0=Ok, 1=Alarm
V2 : "FireDampOpen" [""];
V3 : "FireDampNoMove" [""];
V4 : "SupplyFan" [""];
V5 : "CoolingDX" [""];
V6 : "HeatRecovery" [""];
V7 : "HeatPump" [""];
V8 : "HeatFrost" [""];
V9 : "SupTempDeviation" [""];
V10 : "RoomTempDeviation" [""];
V11 : "SupFilter" [""];
V12 : "ExhaustFilter" [""];
V13 : "FireAlarm" [""];
V14 : "SupTempFire" [""];
V15 : "ExhTempFire" [""];
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM Read2 NAMED "Read 2" IS
QUESTION
DATA[0] := BYTE(Id); % Enhetens Modbus adress
DATA[1] := HEX(02); % Modbus kommando för att läsa register kod 02
DATA[2] := RWORD(21); % Start address
DATA[4] := RWORD(54); % Antal register att läsa
ANSWER SIZE 12 % (Antal register / 8) avrundat uppåt + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(02);
DATA[2] = BYTE(7); % Antal Bytes
DATA[3] -> BYTE(
IF (DATA & 1) THEN V1 := 1; ELSE V1 := 0; ENDIF;
IF (DATA & 2) THEN V2 := 1; ELSE V2 := 0; ENDIF;
IF (DATA & 4) THEN V3 := 1; ELSE V3 := 0; ENDIF;
IF (DATA & 32) THEN V4 := 1; ELSE V4 := 0; ENDIF;
);
DATA[4] -> BYTE(
IF (DATA & 1) THEN V5 := 1; ELSE V5 := 0; ENDIF;
);
DATA[5] -> BYTE(
IF (DATA & 4) THEN V6 := 1; ELSE V6 := 0; ENDIF;
IF (DATA & 128) THEN V7 := 1; ELSE V7 := 0; ENDIF;
);
DATA[6] -> BYTE(
IF (DATA & 2) THEN V8 := 1; ELSE V8 := 0; ENDIF;
);
DATA[7] -> BYTE(
IF (DATA & 8) THEN V9 := 1; ELSE V9 := 0; ENDIF;
IF (DATA & 16) THEN V10 := 1; ELSE V10 := 0; ENDIF;
);
DATA[9] -> BYTE(
IF (DATA & 2) THEN V11 := 1; ELSE V11 := 0; ENDIF;
IF (DATA & 4) THEN V12 := 1; ELSE V12 := 0; ENDIF;
IF (DATA & 8) THEN V13 := 1; ELSE V13 := 0; ENDIF;
IF (DATA & 16) THEN V14 := 1; ELSE V14 := 0; ENDIF;
IF (DATA & 32) THEN V15 := 1; ELSE V15 := 0; 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.