Seneca Z6-D-In & 2-D-OUT
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Jens Marklund, Abelko Innovation
- Version
- 2
- Uppdaterad
- 2014-12-01
- Skapad
- 2014-12-01
- Kategori
- IO enheter
- Visningar
- 2039
Beskrivning
Seneca modul med 6 Digitala ingångar och 2st Digital utgångar.
Bruksanvisning
Seneca modul med 6 Digitala ingångar och 2st Digital utgångar.
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 SenecaZDIOUT NAMED "Seneca Z-D-IO" TYPEID 21019 IS
% Device definition for Z-6D-IN &-2D-OUT
% 6 digital inputs and 2 digital outputs
%
% History: 2008-03-17
%
PARAMETER
Id :"Adress";
A_Led :"Larmdiod";
DO_1 :"DU1";
DO_2 :"DU2";
PUBLIC
DI_1 :"DI1";
DI_2 :"DI2";
DI_3 :"DI3";
DI_4 :"DI4";
DI_5 :"DI5";
DI_6 :"DI6";
PRIVATE
Tmp;
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM WriteDOut NAMED "Write Output" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(10); % Modbus command "$10" write multiple registers
DATA[2] := RWORD(1); % start register
DATA[4] := RWORD(1); % number of registers to write
DATA[6] := HEX(02); % number of bytes to send
DATA[7] <- RWORD( % "Outputs" 40002
Tmp := 0;
IF DO_2 THEN Tmp := Tmp + 1; ENDIF; % Set DO2
IF DO_1 THEN Tmp := Tmp + 2; ENDIF; % Set DO1
IF A_Led THEN Tmp := Tmp + 4; ENDIF; % Set Alarmled
DATA := Tmp;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(10);
%DATA[2] = HEX(00);
%DATA[3] = HEX(01); % start register
%DATA[4] = HEX(00);
%DATA[5] = HEX(01); % number of registers to write
TIMEOUT 500
END;
TELEGRAM ReadInputs NAMED "Read Inputs" IS
QUESTION
DATA[0] := BYTE(Id);
DATA[1] := HEX(03);
DATA[2] := RWORD(1); % start register
DATA[4] := RWORD(1); % number of registers to read
ANSWER SIZE 7
DATA[0] = BYTE(Id);
DATA[1] = HEX(03); % modbus funktion
DATA[2] = HEX(02); % antal byte
DATA[3] -> RWORD(IF (DATA & 32768) > 0 THEN DI_1 := 1; ELSE DI_1 := 0; ENDIF;
IF (DATA & 16384) > 0 THEN DI_2 := 1; ELSE DI_2 := 0; ENDIF;
IF (DATA & 8192) > 0 THEN DI_3 := 1; ELSE DI_3 := 0; ENDIF;
IF (DATA & 4096) > 0 THEN DI_4 := 1; ELSE DI_4 := 0; ENDIF;
IF (DATA & 2048) > 0 THEN DI_5 := 1; ELSE DI_5 := 0; ENDIF;
IF (DATA & 1024) > 0 THEN DI_6 := 1; ELSE DI_6 := 0; ENDIF;
);
TIMEOUT 500
END;
END;
% Device definition for Z-6D-IN &-2D-OUT
% 6 digital inputs and 2 digital outputs
%
% History: 2008-03-17
%
PARAMETER
Id :"Adress";
A_Led :"Larmdiod";
DO_1 :"DU1";
DO_2 :"DU2";
PUBLIC
DI_1 :"DI1";
DI_2 :"DI2";
DI_3 :"DI3";
DI_4 :"DI4";
DI_5 :"DI5";
DI_6 :"DI6";
PRIVATE
Tmp;
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM WriteDOut NAMED "Write Output" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(10); % Modbus command "$10" write multiple registers
DATA[2] := RWORD(1); % start register
DATA[4] := RWORD(1); % number of registers to write
DATA[6] := HEX(02); % number of bytes to send
DATA[7] <- RWORD( % "Outputs" 40002
Tmp := 0;
IF DO_2 THEN Tmp := Tmp + 1; ENDIF; % Set DO2
IF DO_1 THEN Tmp := Tmp + 2; ENDIF; % Set DO1
IF A_Led THEN Tmp := Tmp + 4; ENDIF; % Set Alarmled
DATA := Tmp;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(10);
%DATA[2] = HEX(00);
%DATA[3] = HEX(01); % start register
%DATA[4] = HEX(00);
%DATA[5] = HEX(01); % number of registers to write
TIMEOUT 500
END;
TELEGRAM ReadInputs NAMED "Read Inputs" IS
QUESTION
DATA[0] := BYTE(Id);
DATA[1] := HEX(03);
DATA[2] := RWORD(1); % start register
DATA[4] := RWORD(1); % number of registers to read
ANSWER SIZE 7
DATA[0] = BYTE(Id);
DATA[1] = HEX(03); % modbus funktion
DATA[2] = HEX(02); % antal byte
DATA[3] -> RWORD(IF (DATA & 32768) > 0 THEN DI_1 := 1; ELSE DI_1 := 0; ENDIF;
IF (DATA & 16384) > 0 THEN DI_2 := 1; ELSE DI_2 := 0; ENDIF;
IF (DATA & 8192) > 0 THEN DI_3 := 1; ELSE DI_3 := 0; ENDIF;
IF (DATA & 4096) > 0 THEN DI_4 := 1; ELSE DI_4 := 0; ENDIF;
IF (DATA & 2048) > 0 THEN DI_5 := 1; ELSE DI_5 := 0; ENDIF;
IF (DATA & 1024) > 0 THEN DI_6 := 1; ELSE DI_6 := 0; ENDIF;
);
TIMEOUT 500
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.