Fuji regulator PXR
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 1
- Uppdaterad
- 2013-03-21
- Skapad
- 2013-03-21
- Kategori
- Modbus, Övrig utrustning
- Visningar
- 4306
Beskrivning
Det här är en smidig liten hårdvaruregulator från Fuji
Bruksanvisning
Det kan vara lite besvärligt att hitta anslutningspunkten för rs485, läs manualen nogrant så du vänder den åt rätt håll.
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 Fuji NAMED "PXR" TYPEID 21337 IS
PARAMETER
Id : "Adress";
PUBLIC
V1 : "Input range lower limit" [""];
V2 : "Input range upper limit" [""];
V3 : "decimal point place" [""]; % 0-2
V4 : "Ärvärde" ["°C"]DEC2;
V5 : "Börvärde" ["°C"]DEC2;
V6 : "MV out 1" ["%"]DEC2;
Range : "Range";
Factor : "Factor";
PRIVATE
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(17); % Start address
DATA[4] := RWORD(3); % Antal register att läsa
ANSWER SIZE 11 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(03);
DATA[2] = BYTE(6); % Antal Bytes
DATA[3] -> RWORD(IF (DATA>=32768) THEN V1:=(DATA-65536); ELSE V1 := DATA; ENDIF;);
DATA[5] -> RWORD(IF (
DATA>=32768) THEN V2:=(DATA-65536); ELSE V2:=DATA; ENDIF;
);
DATA[7] -> RWORD(
V3 := DATA;
Factor := 1;
IF (V3 = 1) THEN Factor := 10; ENDIF;
IF (V3 > 1) THEN Factor := 100; ENDIF;
V1 := V1 / Factor;
V2 := V2 / Factor;
Range := V2 - V1;
);
TIMEOUT 300
END;
TELEGRAM Read4 NAMED "Read 4" IS
QUESTION
DATA[0] := BYTE(Id); % Enhetens Modbus adress
DATA[1] := HEX(04); % Modbus kommando för att läsa register kod 04
DATA[2] := RWORD(0); % 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(04);
DATA[2] = BYTE(8); % Antal Bytes
DATA[3] -> RWORD(IF (DATA>=32768) THEN V4:=((DATA-65536)/10000) * Range; ELSE V4:=(DATA/10000) * Range; ENDIF;);
DATA[5] -> RWORD(IF (DATA>=32768) THEN V5:=((DATA-65536)/10000) * Range; ELSE V5:=(DATA/10000) * Range; ENDIF;);
DATA[9] -> RWORD(IF (DATA>=32768) THEN V6:=(DATA-65536)/100; ELSE V6:=DATA/100; ENDIF;);
TIMEOUT 300
END;
END;
PARAMETER
Id : "Adress";
PUBLIC
V1 : "Input range lower limit" [""];
V2 : "Input range upper limit" [""];
V3 : "decimal point place" [""]; % 0-2
V4 : "Ärvärde" ["°C"]DEC2;
V5 : "Börvärde" ["°C"]DEC2;
V6 : "MV out 1" ["%"]DEC2;
Range : "Range";
Factor : "Factor";
PRIVATE
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(17); % Start address
DATA[4] := RWORD(3); % Antal register att läsa
ANSWER SIZE 11 % (Antal register * 2) + 5
DATA[0] = BYTE(Id);
DATA[1] = BYTE(03);
DATA[2] = BYTE(6); % Antal Bytes
DATA[3] -> RWORD(IF (DATA>=32768) THEN V1:=(DATA-65536); ELSE V1 := DATA; ENDIF;);
DATA[5] -> RWORD(IF (
DATA>=32768) THEN V2:=(DATA-65536); ELSE V2:=DATA; ENDIF;
);
DATA[7] -> RWORD(
V3 := DATA;
Factor := 1;
IF (V3 = 1) THEN Factor := 10; ENDIF;
IF (V3 > 1) THEN Factor := 100; ENDIF;
V1 := V1 / Factor;
V2 := V2 / Factor;
Range := V2 - V1;
);
TIMEOUT 300
END;
TELEGRAM Read4 NAMED "Read 4" IS
QUESTION
DATA[0] := BYTE(Id); % Enhetens Modbus adress
DATA[1] := HEX(04); % Modbus kommando för att läsa register kod 04
DATA[2] := RWORD(0); % 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(04);
DATA[2] = BYTE(8); % Antal Bytes
DATA[3] -> RWORD(IF (DATA>=32768) THEN V4:=((DATA-65536)/10000) * Range; ELSE V4:=(DATA/10000) * Range; ENDIF;);
DATA[5] -> RWORD(IF (DATA>=32768) THEN V5:=((DATA-65536)/10000) * Range; ELSE V5:=(DATA/10000) * Range; ENDIF;);
DATA[9] -> RWORD(IF (DATA>=32768) THEN V6:=(DATA-65536)/100; ELSE V6:=DATA/100; 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.