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
2677

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;

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.