FIDELIX Digital inputs UltraBase
Detaljer
- Typ
- Drivrutin
- Upplaggd av
- Ove Jansson, Abelko Innovation
- Version
- 3
- Uppdaterad
- 2019-01-07
- Skapad
- 2013-04-07
- Kategori
- IO enheter, Modbus
- Visningar
- 3102
Beskrivning
Drivrutin för Fidelix Digital inputs i UltraBase
Bruksanvisning
Telegram "Läs DI".
Aktivera för inläsning av digital status 1-16. Lämpligt uppdateringsintervall t.ex 5 sekunder eller mindre.
Telegram "Läs DI pulser".
Aktivera för inläsning av pulsregister 1-16. Lämpligt uppdateringsintervall t.ex 5 sekunder eller mindre.
Telegram "Läs DI funktion" (Input jumper mode).
Aktivera för inläsning av bygelinställning för ingång DI 1-16. Lämpligt uppdateringsintervall 60 sekunder eller mer.
Funktion = 0, Counting mode (No jumper connected) Pulses longer than min pulsewidth are counted.
Funktion = 1, Alarm mode (Jumper upper position) Pulses longer than min pulsewidth indicates on RED led.
Funktion = 2, Pulse Indication mode (Jumper lower position) Pulses longer than min pulsewidth indicates on GREEN led.
Telegram "Sätt LED-status".
Aktivera telegram "Sätt LED-status" för indikering på lysdioder. Kan användas när Funktion = 1, Alarm mode (Jumper upper position). Lämpligt uppdateringsintervall 10 sekunder för larm-indikering.
LED status 0 = Led OFF, 1 = Red, 2 = Green, 3 = Reg+Green, 4 = Led OFF, 5 = Red flashing, 6 = Green flashing.
Telegram "Sätt Min Pulstid".
Aktivera för inställning av min pulsetid när funktion 1 eller 2 är vald för ingångar enligt telegram
"Läs DI funktion" (Input jumper mode) ovan. Lämpligt uppdateringsintervall 60 sekunder eller mer.
Ställbar tid är 5 till 1275 ms.
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
% Device definition for FIDELIX Digital inputs
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% OBS! Använd "Read holding registers" kommando 3 för Fidelix
%
% If input is connected longer than minimum pulse width
% status is cleared, otherwise set.
% Register 0
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2009-12-14 Ändrat kommando 4 till kommando 3 Read holding registers
%
DEVICETYPE FidelixDI NAMED "Fidelix DI" TYPEID 21230 IS
PARAMETER
Id : "Adress" INT;
Led1 : "LED-status DI1" INT;
Led2 : "LED-status DI2" INT;
Led3 : "LED-status DI3" INT;
Led4 : "LED-status DI4" INT;
Led5 : "LED-status DI5" INT;
Led6 : "LED-status DI6" INT;
Led7 : "LED-status DI7" INT;
Led8 : "LED-status DI8" INT;
Led9 : "LED-status DI9" INT;
Led10 : "LED-status DI10" INT;
Led11 : "LED-status DI11" INT;
Led12 : "LED-status DI12" INT;
Led13 : "LED-status DI13" INT;
Led14 : "LED-status DI14" INT;
Led15 : "LED-status DI15" INT;
Led16 : "LED-status DI16" INT;
P1 : "Minsta puls DI1" ["ms"] INT;
P2 : "Minsta puls DI2" ["ms"] INT;
P3 : "Minsta puls DI3" ["ms"] INT;
P4 : "Minsta puls DI4" ["ms"] INT;
P5 : "Minsta puls DI5" ["ms"] INT;
P6 : "Minsta puls DI6" ["ms"] INT;
P7 : "Minsta puls DI7" ["ms"] INT;
P8 : "Minsta puls DI8" ["ms"] INT;
P9 : "Minsta puls DI9" ["ms"] INT;
P10 : "Minsta puls DI10" ["ms"] INT;
P11 : "Minsta puls DI11" ["ms"] INT;
P12 : "Minsta puls DI12" ["ms"] INT;
P13 : "Minsta puls DI13" ["ms"] INT;
P14 : "Minsta puls DI14" ["ms"] INT;
P15 : "Minsta puls DI15" ["ms"] INT;
P16 : "Minsta puls DI16" ["ms"] INT;
PUBLIC
DI1 : "Status DI1" INT;
DI2 : "Status DI2" INT;
DI3 : "Status DI3" INT;
DI4 : "Status DI4" INT;
DI5 : "Status DI5" INT;
DI6 : "Status DI6" INT;
DI7 : "Status DI7" INT;
DI8 : "Status DI8" INT;
DI9 : "Status DI9" INT;
DI10 : "Status DI10" INT;
DI11 : "Status DI11" INT;
DI12 : "Status DI12" INT;
DI13 : "Status DI13" INT;
DI14 : "Status DI14" INT;
DI15 : "Status DI15" INT;
DI16 : "Status DI16" INT;
P_DI1 : "Pulser DI1" INT;
P_DI2 : "Pulser DI2" INT;
P_DI3 : "Pulser DI3" INT;
P_DI4 : "Pulser DI4" INT;
P_DI5 : "Pulser DI5" INT;
P_DI6 : "Pulser DI6" INT;
P_DI7 : "Pulser DI7" INT;
P_DI8 : "Pulser DI8" INT;
P_DI9 : "Pulser DI9" INT;
P_DI10 : "Pulser DI10" INT;
P_DI11 : "Pulser DI11" INT;
P_DI12 : "Pulser DI12" INT;
P_DI13 : "Pulser DI13" INT;
P_DI14 : "Pulser DI14" INT;
P_DI15 : "Pulser DI15" INT;
P_DI16 : "Pulser DI16" INT;
F_DI1 : "Funktion DI1" INT;
F_DI2 : "Funktion DI2" INT;
F_DI3 : "Funktion DI3" INT;
F_DI4 : "Funktion DI4" INT;
F_DI5 : "Funktion DI5" INT;
F_DI6 : "Funktion DI6" INT;
F_DI7 : "Funktion DI7" INT;
F_DI8 : "Funktion DI8" INT;
F_DI9 : "Funktion DI9" INT;
F_DI10 : "Funktion DI10" INT;
F_DI11 : "Funktion DI11" INT;
F_DI12 : "Funktion DI12" INT;
F_DI13 : "Funktion DI13" INT;
F_DI14 : "Funktion DI14" INT;
F_DI15 : "Funktion DI15" INT;
F_DI16 : "Funktion DI16" INT;
PRIVATE
Tmp;
Tmp1;
Tmp2;
TmpL;
TmpP1;
TmpP2;
BAUDRATE 9600;
CHRGAPTIMEOUT 5;
CHECKSUM MODBUS SWAPPED;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for FIDELIX Digital inputs
%
% Register 0
% If input is connected longer than minimum pulse width
% status is cleared, otherwise set.
%
TELEGRAM DigitalInput NAMED "Läs DI" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(0); % Start address register
DATA[4] := RWORD(1); % Number of registers
ANSWER SIZE 7
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
DATA[2] = BYTE(2); % Byte count
DATA[3] -> RWORD(
Tmp := DATA;
IF (Tmp & 1) THEN DI1 :=0; ELSE DI1 :=1; ENDIF;
IF (Tmp & 2) THEN DI2 :=0; ELSE DI2 :=1; ENDIF;
IF (Tmp & 4) THEN DI3 :=0; ELSE DI3 :=1; ENDIF;
IF (Tmp & 8) THEN DI4 :=0; ELSE DI4 :=1; ENDIF;
IF (Tmp & 16) THEN DI5 :=0; ELSE DI5 :=1; ENDIF;
IF (Tmp & 32) THEN DI6 :=0; ELSE DI6 :=1; ENDIF;
IF (Tmp & 64) THEN DI7 :=0; ELSE DI7 :=1; ENDIF;
IF (Tmp & 128) THEN DI8 :=0; ELSE DI8 :=1; ENDIF;
IF (Tmp & 256) THEN DI9 :=0; ELSE DI9 :=1; ENDIF;
IF (Tmp & 512) THEN DI10:=0; ELSE DI10:=1; ENDIF;
IF (Tmp & 1024) THEN DI11:=0; ELSE DI11:=1; ENDIF;
IF (Tmp & 2048) THEN DI12:=0; ELSE DI12:=1; ENDIF;
IF (Tmp & 4096) THEN DI13:=0; ELSE DI13:=1; ENDIF;
IF (Tmp & 8192) THEN DI14:=0; ELSE DI14:=1; ENDIF;
IF (Tmp & 16384) THEN DI15:=0; ELSE DI15:=1; ENDIF;
IF (Tmp & 32768) THEN DI16:=0; ELSE DI16:=1; ENDIF;
);
TIMEOUT 1000
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for FIDELIX Digital pulse counter
%
% Pulses longer than corresponding pulse width register are counted.
% Register 14-29
%
TELEGRAM DigitalPulse NAMED "Läs DI pulser" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(14); % Start address register
DATA[4] := RWORD(16); % Number of registers
ANSWER SIZE 37
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
DATA[2] = BYTE(32); % Byte count
DATA[3] -> RWORD(P_DI1 := DATA;);
DATA[5] -> RWORD(P_DI2 := DATA;);
DATA[7] -> RWORD(P_DI3 := DATA;);
DATA[9] -> RWORD(P_DI4 := DATA;);
DATA[11] -> RWORD(P_DI5 := DATA;);
DATA[13] -> RWORD(P_DI6 := DATA;);
DATA[15] -> RWORD(P_DI7 := DATA;);
DATA[17] -> RWORD(P_DI8 := DATA;);
DATA[19] -> RWORD(P_DI9 := DATA;);
DATA[21] -> RWORD(P_DI10 := DATA;);
DATA[23] -> RWORD(P_DI11 := DATA;);
DATA[25] -> RWORD(P_DI12 := DATA;);
DATA[27] -> RWORD(P_DI13 := DATA;);
DATA[29] -> RWORD(P_DI14 := DATA;);
DATA[31] -> RWORD(P_DI15 := DATA;);
DATA[33] -> RWORD(P_DI16 := DATA;);
TIMEOUT 1000
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for FIDELIX Digital input Jumper mode
%
% Register 1-2
%
% No jumper connected 0 = Pulse counting mode
% Pulses longer than minimum pulsewidth are counted.
% Jumper mode upper position 1 = Alarm mode,
% Pulses longer than minimum pulsewidth indicates om RED led
% Jumper mode lower position 2 = Pulse indication mode
% Pulses longer than minimum pulsewidth indicates om GREEN led
% Funktion = 0, Counting mode
% Funktion = 1, Alarm mode
% Funktion = 2, Pulse Indication mode
%
TELEGRAM DigitalMode NAMED "Läs DI funktion" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(03); % Modbus command "03h" Read holding registers
DATA[2] := RWORD(1); % Start address register
DATA[4] := RWORD(2); % Number of registers
ANSWER SIZE 9
DATA[0] = BYTE(Id); % ID
DATA[1] = HEX(03); % Modbus command "03h" Read holding registers
DATA[2] = BYTE(4); % Byte count
DATA[3] -> RWORD(Tmp1 := DATA;);
DATA[5] -> RWORD(
Tmp2 := DATA;
IF(Tmp1&1) =0 THEN F_DI1 :=1; ELSIF(Tmp2&1) =0 THEN F_DI1 :=2; ELSE F_DI1 :=0; ENDIF;
IF(Tmp1&2) =0 THEN F_DI2 :=1; ELSIF(Tmp2&2) =0 THEN F_DI2 :=2; ELSE F_DI2 :=0; ENDIF;
IF(Tmp1&4) =0 THEN F_DI3 :=1; ELSIF(Tmp2&4) =0 THEN F_DI3 :=2; ELSE F_DI3 :=0; ENDIF;
IF(Tmp1&8) =0 THEN F_DI4 :=1; ELSIF(Tmp2&8) =0 THEN F_DI4 :=2; ELSE F_DI4 :=0; ENDIF;
IF(Tmp1&16) =0 THEN F_DI5 :=1; ELSIF(Tmp2&16) =0 THEN F_DI5 :=2; ELSE F_DI5 :=0; ENDIF;
IF(Tmp1&32) =0 THEN F_DI6 :=1; ELSIF(Tmp2&32) =0 THEN F_DI6 :=2; ELSE F_DI6 :=0; ENDIF;
IF(Tmp1&64) =0 THEN F_DI7 :=1; ELSIF(Tmp2&64) =0 THEN F_DI7 :=2; ELSE F_DI7 :=0; ENDIF;
IF(Tmp1&128) =0 THEN F_DI8 :=1; ELSIF(Tmp2&128) =0 THEN F_DI8 :=2; ELSE F_DI8 :=0; ENDIF;
IF(Tmp1&256) =0 THEN F_DI9 :=1; ELSIF(Tmp2&256) =0 THEN F_DI9 :=2; ELSE F_DI9 :=0; ENDIF;
IF(Tmp1&512) =0 THEN F_DI10:=1; ELSIF(Tmp2&512) =0 THEN F_DI10:=2; ELSE F_DI10:=0; ENDIF;
IF(Tmp1&1024) =0 THEN F_DI11:=1; ELSIF(Tmp2&1024) =0 THEN F_DI11:=2; ELSE F_DI11:=0; ENDIF;
IF(Tmp1&2048) =0 THEN F_DI12:=1; ELSIF(Tmp2&2048) =0 THEN F_DI12:=2; ELSE F_DI12:=0; ENDIF;
IF(Tmp1&4096) =0 THEN F_DI13:=1; ELSIF(Tmp2&4096) =0 THEN F_DI13:=2; ELSE F_DI13:=0; ENDIF;
IF(Tmp1&8192) =0 THEN F_DI14:=1; ELSIF(Tmp2&8192) =0 THEN F_DI14:=2; ELSE F_DI14:=0; ENDIF;
IF(Tmp1&16384)=0 THEN F_DI15:=1; ELSIF(Tmp2&16384)=0 THEN F_DI15:=2; ELSE F_DI15:=0; ENDIF;
IF(Tmp1&32768)=0 THEN F_DI16:=1; ELSIF(Tmp2&32768)=0 THEN F_DI16:=2; ELSE F_DI16:=0; ENDIF;
);
TIMEOUT 1000
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for FIDELIX Set digital leds
%
% Register 3-5
% Indicate Led OFF = 0
% Red = 1
% Green = 2
% Red+Green = 3
% Red flashing = 1+4 = 5
% Green flashing = 2+4 = 6
% Red+Green flashing = 1+2+4 = 7
%
TELEGRAM LedStatusOut NAMED "Sätt LED-status" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(10); % Modbus command "0x10" write multiple registers
DATA[2] := RWORD(3); % start register
DATA[4] := RWORD(3); % number of registers to write
DATA[6] := BYTE(6); % number of bytes
DATA[7] <- RWORD(
TmpL := 65535;
IF (Led1 & 1) THEN TmpL:=TmpL-1; ENDIF;
IF (Led2 & 1) THEN TmpL:=TmpL-2; ENDIF;
IF (Led3 & 1) THEN TmpL:=TmpL-4; ENDIF;
IF (Led4 & 1) THEN TmpL:=TmpL-8; ENDIF;
IF (Led5 & 1) THEN TmpL:=TmpL-16; ENDIF;
IF (Led6 & 1) THEN TmpL:=TmpL-32; ENDIF;
IF (Led7 & 1) THEN TmpL:=TmpL-64; ENDIF;
IF (Led8 & 1) THEN TmpL:=TmpL-128; ENDIF;
IF (Led9 & 1) THEN TmpL:=TmpL-256; ENDIF;
IF (Led10 & 1) THEN TmpL:=TmpL-512; ENDIF;
IF (Led11 & 1) THEN TmpL:=TmpL-1024; ENDIF;
IF (Led12 & 1) THEN TmpL:=TmpL-2048; ENDIF;
IF (Led13 & 1) THEN TmpL:=TmpL-4096; ENDIF;
IF (Led14 & 1) THEN TmpL:=TmpL-8192; ENDIF;
IF (Led15 & 1) THEN TmpL:=TmpL-16384; ENDIF;
IF (Led16 & 1) THEN TmpL:=TmpL-32768; ENDIF;
DATA := TmpL;
);
DATA[9] <- RWORD(
TmpL := 65535;
IF (Led1 & 2) THEN TmpL:=TmpL-1; ENDIF;
IF (Led2 & 2) THEN TmpL:=TmpL-2; ENDIF;
IF (Led3 & 2) THEN TmpL:=TmpL-4; ENDIF;
IF (Led4 & 2) THEN TmpL:=TmpL-8; ENDIF;
IF (Led5 & 2) THEN TmpL:=TmpL-16; ENDIF;
IF (Led6 & 2) THEN TmpL:=TmpL-32; ENDIF;
IF (Led7 & 2) THEN TmpL:=TmpL-64; ENDIF;
IF (Led8 & 2) THEN TmpL:=TmpL-128; ENDIF;
IF (Led9 & 2) THEN TmpL:=TmpL-256; ENDIF;
IF (Led10 & 2) THEN TmpL:=TmpL-512; ENDIF;
IF (Led11 & 2) THEN TmpL:=TmpL-1024; ENDIF;
IF (Led12 & 2) THEN TmpL:=TmpL-2048; ENDIF;
IF (Led13 & 2) THEN TmpL:=TmpL-4096; ENDIF;
IF (Led14 & 2) THEN TmpL:=TmpL-8192; ENDIF;
IF (Led15 & 2) THEN TmpL:=TmpL-16384; ENDIF;
IF (Led16 & 2) THEN TmpL:=TmpL-32768; ENDIF;
DATA := TmpL;
);
DATA[11]<- RWORD(
TmpL := 0;
IF (Led1 & 4) THEN TmpL:=TmpL+1; ENDIF;
IF (Led2 & 4) THEN TmpL:=TmpL+2; ENDIF;
IF (Led3 & 4) THEN TmpL:=TmpL+4; ENDIF;
IF (Led4 & 4) THEN TmpL:=TmpL+8; ENDIF;
IF (Led5 & 4) THEN TmpL:=TmpL+16; ENDIF;
IF (Led6 & 4) THEN TmpL:=TmpL+32; ENDIF;
IF (Led7 & 4) THEN TmpL:=TmpL+64; ENDIF;
IF (Led8 & 4) THEN TmpL:=TmpL+128; ENDIF;
IF (Led9 & 4) THEN TmpL:=TmpL+256; ENDIF;
IF (Led10 & 4) THEN TmpL:=TmpL+512; ENDIF;
IF (Led11 & 4) THEN TmpL:=TmpL+1024; ENDIF;
IF (Led12 & 4) THEN TmpL:=TmpL+2048; ENDIF;
IF (Led13 & 4) THEN TmpL:=TmpL+4096; ENDIF;
IF (Led14 & 4) THEN TmpL:=TmpL+8192; ENDIF;
IF (Led15 & 4) THEN TmpL:=TmpL+16384; ENDIF;
IF (Led16 & 4) THEN TmpL:=TmpL+32768; ENDIF;
DATA := TmpL;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(10);
%DATA[2] = RWORD(3); % start register
%DATA[4] = RWORD(3); % number of registers to write
TIMEOUT 1000
END;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for FIDELIX Set minimum pulsewidth
%
% Register 6-13
% Filter funnction for digital input.
% Minimum pulse width for digital input is set 5 to 1275 ms (1-255).
%
TELEGRAM Pulsewidth1 NAMED "Sätt Min Pulstid" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(10); % Modbus command "0x10" write multiple registers
DATA[2] := RWORD(6); % start register
DATA[4] := RWORD(8); % number of registers to write
DATA[6] := BYTE(16); % number of bytes
DATA[7] <- RWORD(
TmpP1 := P1/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P2/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
DATA[9] <- RWORD(
TmpP1 := P3/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P4/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
DATA[11] <- RWORD(
TmpP1 := P5/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P6/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
DATA[13] <- RWORD(
TmpP1 := P7/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P8/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
DATA[15] <- RWORD(
TmpP1 := P9/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P10/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
DATA[17] <- RWORD(
TmpP1 := P11/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P12/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
DATA[19] <- RWORD(
TmpP1 := P13/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P14/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
DATA[21] <- RWORD(
TmpP1 := P15/5;
IF TmpP1<1 THEN TmpP1:=1;
ELSIF TmpP1>255 THEN TmpP1:=255;
ENDIF;
TmpP2 := P16/5;
IF TmpP2<1 THEN TmpP2:=1;
ELSIF TmpP2>255 THEN TmpP2:=255;
ENDIF;
DATA := TmpP1 + (TmpP2*256);
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(10);
%DATA[2] = RWORD(0); % start register
%DATA[4] = RWORD(8); % number of registers to write
TIMEOUT 1000
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.