Danelko/Thermokon SR65 3AI via STC65
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2018-10-03
- Skapad
- 2018-10-03
- Kategori
- IO enheter, Modbus, Övriga protokoll
- Visningar
- 1987
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-3F-7F
DEVICETYPE SR65_3AI NAMED "SR65 3AI" TYPEID 12347 IS
PARAMETER
Id : "Adress" [""]INT;
Unit : "Enhet (1-32)" [""]INT;
PUBLIC
ORG : "ORG (167)" INT;
FUNC : "FUNC (63)" INT;
TYPE : "TYPE (127)" INT;
AI1 : "AI1" ["V"]DEC2;
AI2 : "AI2" ["V"]DEC2;
AI3 : "AI3" ["V"]DEC2;
Age : "Värdets ålder" ["sek"]INT;
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM Read4 NAMED "Read 4" 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;);
DATA[5] -> RWORD(TYPE:=DATA;);
DATA[15] -> RWORD(Age:=DATA;);
DATA[17] -> RWORD(ORG:=DATA;);
DATA[24] -> BYTE(AI1:=DATA/255*10;);
DATA[26] -> BYTE(AI2:=DATA/255*10;);
DATA[28] -> BYTE(AI3:=DATA/255*10;);
TIMEOUT 300
END;
END;
DEVICETYPE SR65_3AI NAMED "SR65 3AI" TYPEID 12347 IS
PARAMETER
Id : "Adress" [""]INT;
Unit : "Enhet (1-32)" [""]INT;
PUBLIC
ORG : "ORG (167)" INT;
FUNC : "FUNC (63)" INT;
TYPE : "TYPE (127)" INT;
AI1 : "AI1" ["V"]DEC2;
AI2 : "AI2" ["V"]DEC2;
AI3 : "AI3" ["V"]DEC2;
Age : "Värdets ålder" ["sek"]INT;
PRIVATE
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM Read4 NAMED "Read 4" 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;);
DATA[5] -> RWORD(TYPE:=DATA;);
DATA[15] -> RWORD(Age:=DATA;);
DATA[17] -> RWORD(ORG:=DATA;);
DATA[24] -> BYTE(AI1:=DATA/255*10;);
DATA[26] -> BYTE(AI2:=DATA/255*10;);
DATA[28] -> BYTE(AI3:=DATA/255*10;);
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.