Frico SIREAA modbus for fan heaters
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 2
- Uppdaterad
- 2013-08-13
- Skapad
- 2013-08-12
- Kategori
- Modbus, Ventilation
- Visningar
- 2676
Beskrivning
This manual describes how to connect SIRe Advanced with Modbus/RTU via RS485, the technical specifi cation of the protocol in SIRe, the parameters and their use.For more information about other functions in SIRe, please see the main manual.
Bruksanvisning
Baudrate var inte angiven i manualen så den är satt till den vanligaste 9600.
Har också antagit att modbus registrena är noll baserade
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 SIRe NAMED "SIRe" TYPEID 10847 IS
PARAMETER
Id : "Adress";
V12 : "System on/off" [""]; % 0=off, 1=on
V13 : "Room temp day" ["°C"];
V14 : "Room temp night" ["°C"];
PUBLIC
V1 : "Room temperature" ["°C"]DEC1;
V2 : "Outdoor temperature" ["°C"]DEC1;
V3 : "Fan speed" ["%"];
V4 : "Heating step" ["%"];
V5 : "System on/off" [""]; % 0=off, 1=on
V6 : "Room temp day" ["°C"];
V7 : "Room temp night" ["°C"];
V8 : "A1 motor alarm" [""];
V9 : "A2 motor alarm" [""];
V10 : "A3 Freeze alarm" [""];
V11 : "A4 Filter alarm" [""];
PRIVATE
count6;
BAUDRATE 9600;
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(0); % Start address
DATA[4] := RWORD(9); % Antal register att läsa
ANSWER SIZE 23 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(03);
DATA[2] = BYTE(18); % Antal Bytes
DATA[3] -> RWORD(V1 := DATA/10;);
DATA[5] -> RWORD(V2 := DATA/10;);
DATA[7] -> RWORD(V3 := DATA;);
DATA[9] -> RWORD(V4 := DATA;);
DATA[13] -> RWORD(V5 := DATA;);
DATA[17] -> RWORD(V6 := DATA;);
DATA[19] -> RWORD(V7 := DATA;);
TIMEOUT 300
END;
TELEGRAM Read32 NAMED "Read 32" 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(128); % Start address
DATA[4] := RWORD(4); % Antal register att läsa
ANSWER SIZE 13 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(03);
DATA[2] = BYTE(13); % Antal Bytes
DATA[3] -> RWORD(V8 := DATA;);
DATA[5] -> RWORD(V9 := DATA;);
DATA[7] -> RWORD(V10 := DATA;);
DATA[9] -> RWORD(V11 := DATA;);
TIMEOUT 300
END;
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>2) THEN count6 := 0; ENDIF;
IF (count6=0) THEN DATA := 5;
ELSIF (count6=1) THEN DATA := 7;
ELSIF (count6=2) THEN DATA := 8;
ENDIF;
); % Register adress
DATA[4] <- RWORD(
IF (count6=0) THEN DATA := V12;
ELSIF (count6=1) THEN DATA := V13;
ELSIF (count6=2) THEN DATA := V14;
ENDIF;
count6 := count6+1;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = BYTE(06);
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 SIRe NAMED "SIRe" TYPEID 10847 IS
PARAMETER
Id : "Adress";
V12 : "System on/off" [""]; % 0=off, 1=on
V13 : "Room temp day" ["°C"];
V14 : "Room temp night" ["°C"];
PUBLIC
V1 : "Room temperature" ["°C"]DEC1;
V2 : "Outdoor temperature" ["°C"]DEC1;
V3 : "Fan speed" ["%"];
V4 : "Heating step" ["%"];
V5 : "System on/off" [""]; % 0=off, 1=on
V6 : "Room temp day" ["°C"];
V7 : "Room temp night" ["°C"];
V8 : "A1 motor alarm" [""];
V9 : "A2 motor alarm" [""];
V10 : "A3 Freeze alarm" [""];
V11 : "A4 Filter alarm" [""];
PRIVATE
count6;
BAUDRATE 9600;
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(0); % Start address
DATA[4] := RWORD(9); % Antal register att läsa
ANSWER SIZE 23 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(03);
DATA[2] = BYTE(18); % Antal Bytes
DATA[3] -> RWORD(V1 := DATA/10;);
DATA[5] -> RWORD(V2 := DATA/10;);
DATA[7] -> RWORD(V3 := DATA;);
DATA[9] -> RWORD(V4 := DATA;);
DATA[13] -> RWORD(V5 := DATA;);
DATA[17] -> RWORD(V6 := DATA;);
DATA[19] -> RWORD(V7 := DATA;);
TIMEOUT 300
END;
TELEGRAM Read32 NAMED "Read 32" 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(128); % Start address
DATA[4] := RWORD(4); % Antal register att läsa
ANSWER SIZE 13 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(03);
DATA[2] = BYTE(13); % Antal Bytes
DATA[3] -> RWORD(V8 := DATA;);
DATA[5] -> RWORD(V9 := DATA;);
DATA[7] -> RWORD(V10 := DATA;);
DATA[9] -> RWORD(V11 := DATA;);
TIMEOUT 300
END;
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>2) THEN count6 := 0; ENDIF;
IF (count6=0) THEN DATA := 5;
ELSIF (count6=1) THEN DATA := 7;
ELSIF (count6=2) THEN DATA := 8;
ENDIF;
); % Register adress
DATA[4] <- RWORD(
IF (count6=0) THEN DATA := V12;
ELSIF (count6=1) THEN DATA := V13;
ELSIF (count6=2) THEN DATA := V14;
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.