Barix X8 8st 1-wire Temperature Sensor
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 3
- Uppdaterad
- 2013-12-03
- Skapad
- 2013-12-03
- Kategori
- IO enheter, Modbus
- Visningar
- 3491
Beskrivning
Barix X8 är en trevlig liten enhet som kan fungera som
- 8st digital input
- 8st digital output
- 0-5V analog input
- Lokal temperatur 8st Barix TS digitala sensorer (OneWire)
- WIEGAND läsare 2 inputs + 6 med standard io funktioner)
Det här är en drivrutin för att läsa enhetens 8 temperaturer (8 x 1-wire Barix TS Temperature Sensor)
Bruksanvisning
Använd först konfigureringsskriptet för att ställa in din enhet
Bruksanvisning på Engelska barixx8_manual_V200.pdf (1,9MB).
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
DEVICETYPE BARIXX8Temp NAMED "Barix X8 Temp" TYPEID 21461 IS
PARAMETER
Id : "Adress";
divider : "dela med"; %12bit sensor = 16 (default), 9bit sensor = 2;
PUBLIC
V1 : "Temp1" ["°C"]DEC1;
V2 : "Temp2" ["°C"]DEC1;
V3 : "Temp3" ["°C"]DEC1;
V4 : "Temp4" ["°C"]DEC1;
V5 : "Temp5" ["°C"]DEC1;
V6 : "Temp6" ["°C"]DEC1;
V7 : "Temp7" ["°C"]DEC1;
V8 : "Temp8" ["°C"]DEC1;
PRIVATE
BAUDRATE 19200;
PARITY EVEN;
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(2); % Start address
DATA[4] := RWORD(8); % Antal register att läsa
ANSWER SIZE 21 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(03);
DATA[2] = BYTE(16); % Antal Bytes
DATA[3] -> RWORD(
IF (divider=0) THEN divider := 16; ENDIF;
IF (DATA>=32768) THEN V1:=(DATA-65536)/divider; ELSE V1:=DATA/divider; ENDIF;
);
DATA[5] -> RWORD(IF (DATA>=32768) THEN V2:=(DATA-65536)/divider; ELSE V2:=DATA/divider; ENDIF;);
DATA[7] -> RWORD(IF (DATA>=32768) THEN V3:=(DATA-65536)/divider; ELSE V3:=DATA/divider; ENDIF;);
DATA[9] -> RWORD(IF (DATA>=32768) THEN V4:=(DATA-65536)/divider; ELSE V4:=DATA/divider; ENDIF;);
DATA[11] -> RWORD(IF (DATA>=32768) THEN V5:=(DATA-65536)/divider; ELSE V5:=DATA/divider; ENDIF;);
DATA[13] -> RWORD(IF (DATA>=32768) THEN V6:=(DATA-65536)/divider; ELSE V6:=DATA/divider; ENDIF;);
DATA[15] -> RWORD(IF (DATA>=32768) THEN V7:=(DATA-65536)/divider; ELSE V7:=DATA/divider; ENDIF;);
DATA[17] -> RWORD(IF (DATA>=32768) THEN V8:=(DATA-65536)/divider; ELSE V8:=DATA/divider; ENDIF;);
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.