Danelko/Thermokon SR04 CO2 via STC65
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2018-10-03
- Skapad
- 2018-10-03
- Kategori
- Mätare, Modbus, Övriga protokoll
- Visningar
- 1990
Beskrivning
.
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
% EEP A5(165)-09-04 =
DEVICETYPE SR04CO2 NAMED "SR04 CO2" TYPEID 18347 IS
PARAMETER
Id : "Adress" [""]INT;
Unit : "Enhet (1-32)" [""]INT;
PUBLIC
ORG : "ORG (165)" INT;
FUNC : "FUNC (9)" INT;
TYPE : "TYPE (4)" INT;
T1 : "Temperatur" ["°C"]DEC1;
CO2 : "CO2" ["ppm"]INT;
HR3 : "Luftfuktighet" ["%"]DEC2;
Age : "Värdets ålder" ["sek"]INT;
HRX : "Fuktsensor" ["Saknas,Finns"]ENUM;
TSX : "Tempsensor" ["Saknas,Finns"]ENUM;
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM Read4 NAMED "Read" IS
QUESTION
DATA[0] := BYTE(Id); % Enhetens Modbus adress
DATA[1] := HEX(03);
DATA[2] <- RWORD(DATA:=200+((Unit-1)*20);); % Start address
DATA[4] := RWORD(14); % Antal register att läsa
ANSWER SIZE 33 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = HEX(03);
DATA[2] = BYTE(28); % Antal Bytes
DATA[3] -> RWORD(FUNC:=DATA;); %200
DATA[5] -> RWORD(TYPE:=DATA;); %201
DATA[15] -> RWORD(Age:=DATA;); %206
DATA[17] -> RWORD(ORG:=DATA;); %207
DATA[21]-> RWORD(
IF(DATA&2) THEN TSX:=1; ELSE TSX:=0; ENDIF;
IF(DATA&4) THEN HRX:=1; ELSE HRX:=0; ENDIF;
);
DATA[24] -> BYTE(T1:=DATA*0.2;); %210
DATA[26] -> BYTE(CO2:=DATA*10;); %211
DATA[28] -> BYTE(HR3:=DATA/2;); %212
TIMEOUT 300
END;
END;
DEVICETYPE SR04CO2 NAMED "SR04 CO2" TYPEID 18347 IS
PARAMETER
Id : "Adress" [""]INT;
Unit : "Enhet (1-32)" [""]INT;
PUBLIC
ORG : "ORG (165)" INT;
FUNC : "FUNC (9)" INT;
TYPE : "TYPE (4)" INT;
T1 : "Temperatur" ["°C"]DEC1;
CO2 : "CO2" ["ppm"]INT;
HR3 : "Luftfuktighet" ["%"]DEC2;
Age : "Värdets ålder" ["sek"]INT;
HRX : "Fuktsensor" ["Saknas,Finns"]ENUM;
TSX : "Tempsensor" ["Saknas,Finns"]ENUM;
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM Read4 NAMED "Read" IS
QUESTION
DATA[0] := BYTE(Id); % Enhetens Modbus adress
DATA[1] := HEX(03);
DATA[2] <- RWORD(DATA:=200+((Unit-1)*20);); % Start address
DATA[4] := RWORD(14); % Antal register att läsa
ANSWER SIZE 33 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = HEX(03);
DATA[2] = BYTE(28); % Antal Bytes
DATA[3] -> RWORD(FUNC:=DATA;); %200
DATA[5] -> RWORD(TYPE:=DATA;); %201
DATA[15] -> RWORD(Age:=DATA;); %206
DATA[17] -> RWORD(ORG:=DATA;); %207
DATA[21]-> RWORD(
IF(DATA&2) THEN TSX:=1; ELSE TSX:=0; ENDIF;
IF(DATA&4) THEN HRX:=1; ELSE HRX:=0; ENDIF;
);
DATA[24] -> BYTE(T1:=DATA*0.2;); %210
DATA[26] -> BYTE(CO2:=DATA*10;); %211
DATA[28] -> BYTE(HR3:=DATA/2;); %212
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.