IVT REGO 5002, 5003, 5004, 5005 Larm + Börv 5004

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
2
Uppdaterad
2018-05-21
Skapad
2015-10-01
Kategori
Modbus, Värme
Visningar
2263

Beskrivning

drivrutin för IVT REGO 5002, 5003, 5004, 5005

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for IVT REGO 5002, 5003, 5004, 5005
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% READ Analog input 61-80 (Alarms)
% Larmstatus i REGO
% 1: Normal /Ej larm
% 2: Blockerad
% 3: Kvitterad
% 4: reserverad
% 5: Återgången
% 6: reserverad
% 7: Utlöst
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-02-12 inital version
%          2012-12-21 chnged T3/4,18 to T3/4.18
%
DEVICETYPE IvtRego5005AI4 NAMED "IVTREGO AI61-80" TYPEID 21345 IS

  PARAMETER
    Id :"Adress";

  PUBLIC
  R61 :  "Driftt. G7LaddP"; %30061 Drifttid, G7 (Laddpump)
  R62 :  "Starter G7LaddP"; %30062 Starter, G7 (Laddpump)
  R63 :  "Driftt. Q21Vent"; %30063 Drifttid, Q21 (Växelventil)
  R64 :  "Starter Q21Vent"; %30064 Starter, Q21 (Växelventil)
  R65 :  "Status Q10Shunt"; %30065 Status, Q10 (Shunt)
  R66 :  "Status Q21VXV"  ; %30066 Status, Q21 (VXV)
  R67 :  "Status Q40Shunt"; %30067 Status, Q40 (Shunt)
  R68 :  "Larm B31FlödeKy"; %30068 Larmstatus no.35, B31 lågt flöde kyla
  R69 :  "Larm S.spänning"; %30069 Larmstatus no.36, Tillfällig låg systemspänning
  R70 :  "Givarfel T4VV"  ; %30070 Larmstatus no.37, T4 varmvatten givarfel
  R71 :  "Givarfel T7VVac"; %30071 Larmstatus no.38, T7 VV-ackumulator givarfel
  R72 :  "Larm B21Tryck V"; %30072 Larmstatus no.39, B21 lågt tryck värme
  R73 :  "Larm T4VV Reg.a"; %30073 Larmstatus no.40, T4 varmvatten regleravvikelse
  R74 :  "Larm Kom.fel"   ; %30074 Larmstatus no.41, Kommunikationsfel
  R75 :  "Status KPR"     ; %30075 Status kompressor: 0=Från,  1=Pumpstart, 2=Kontroll, 3=Kompressorstart, 4=Drift, 5=Stannar, 6=Larm
  R76 :  "Börvär. T3/4.18"; %30076 T3/T4 (E21), T18 (E22) – Börvärde                   5004
  R77 :  "T4 Temp VV"     ; %30077 T4 Varmvatten (E22)                            10*  5004
  R78 :  "T7 Temp AckTank"; %30078 T7 AckTank (E22)                               10*  5004
  R79 :  "T18 Fjärrvärme" ; %30079 T18 Fjärrvärme (E22) samma börvärde som T1     10*  5004
  R80 :  "Drifttid G2VBp" ; %30080 Drifttid, G2 låg hastighet (värmebärarpump)    10*  5004


  PRIVATE

  BAUDRATE 9600;
  CHECKSUM MODBUS SWAPPED;

  TELEGRAM ReadAI4 NAMED "Läs AI61-80" IS
  QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(04);       % Modbus command "04h" Read registers
      DATA[2]  := RWORD(60);     % Start address register
      DATA[4]  := RWORD(20);     % Number of registers

  ANSWER SIZE 45
    DATA[0]   = BYTE(Id);      % ID
    DATA[1]   = HEX(04);       % Modbus command "04h" Read registers
    DATA[2]   = BYTE(40);      % Byte count
    DATA[3]  -> RWORD(R61:= DATA;);
    DATA[5]  -> RWORD(R62:= DATA;);
    DATA[7]  -> RWORD(R63:= DATA;);
    DATA[9]  -> RWORD(R64:= DATA;);
    DATA[11] -> RWORD(R65:= DATA;);
    DATA[13] -> RWORD(R66:= DATA;);
    DATA[15] -> RWORD(R67:= DATA;);
    DATA[17] -> RWORD(R68:= DATA;);
    DATA[19] -> RWORD(R69:= DATA;);
    DATA[21] -> RWORD(R70:= DATA;);
    DATA[23] -> RWORD(R71:= DATA;);
    DATA[25] -> RWORD(R72:= DATA;);
    DATA[27] -> RWORD(R73:= DATA;);
    DATA[29] -> RWORD(R74:= DATA;);
    DATA[31] -> RWORD(R75:= DATA;);
    DATA[33] -> RWORD(R76:= DATA;);  %Börvärde 5004

    DATA[35] -> RWORD(IF (DATA>=32768) THEN R77:=(DATA-65536)/10; ELSE R77:=DATA/10; ENDIF;);  %10*  5004
    DATA[37] -> RWORD(IF (DATA>=32768) THEN R78:=(DATA-65536)/10; ELSE R78:=DATA/10; ENDIF;);  %10*  5004
    DATA[39] -> RWORD(IF (DATA>=32768) THEN R79:=(DATA-65536)/10; ELSE R79:=DATA/10; ENDIF;);  %10*  5004
    DATA[41] -> RWORD(IF (DATA>=32768) THEN R80:=(DATA-65536)/10; ELSE R80:=DATA/10; ENDIF;);  %10*  5004

    TIMEOUT 1000
  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.