IVT REGO 5002, 5003, 5004, 5005 DU
Detaljer
Beskrivning
drivrutin för IVT REGO 5002, 5003, 5004, 5005
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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for IVT REGO 5002, 5003, 5004, 5005
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% READ/WRITE Digital output
%
% 9 digitala utgångar kan ställas från devicet.
% Ta bort kommentartecken (%) för de utgångar som skall styras.
% Uppdatera telegrammen för Läs och Ställ med de valda utgångarna.
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-02-12 inital version
%
DEVICETYPE IvtRego5005DOSET NAMED "IVTREGO StällDU" TYPEID 21341 IS
PARAMETER
Id :"Adress";
%DO1 : "Tidkanal A-Larm"; %00001 Tidkanal A-Larm
%DO2 : "Tidkanal B-Larm"; %00002 Tidkanal B-Larm
%DO3 : "Tidkanal Dagtid"; %00003 Tidkanal Dagtid
%DO4 : "SMS 0=Res 1=Ord"; %00004 SMSsend1: Reserv[0], Ordinarie[1]
%DO5 : "SMS Kvittering" ; %00005 SMSsend1, Kvittering
%DO6 : "SMS 0=Off, 1=On"; %00006 SMSsend1: Från[0], Till[1+]
%DO7 : "E21 Ext.start" ; %00007 E21, externstart
%DO8 : "T1 Ange gfel FL"; %00008 Ange, T1, givarfel (framledning)
%DO9 : "T3 Ange gfel ST"; %00009 Ange, T3, givarfel (slingtank)
%DO10 : "Sendbl. VP klar"; %00010 sendblock, värmepumpen klar (kommunikationshandboken)
%DO11 : "G1 Ange drift" ; %00011 Ange, G1, driftindikering
%DO12 : "E11 Ange drift" ; %00012 Ange, E11, driftindikering
%DO13 : "G3 Ext.start KB"; %00013 G3, externstart (köldbärare)
DO14 : "E21 block. VP" ; %00014 E21, blockering (värmepump)
%DO15 : "E11 Tillåt t.s."; %00015 E11, tillåt (tillskott)
%DO16 : "G5 Extern start"; %00016 G5, externstart (underkylare) (endast G-maskiner)
%DO17 : "B21 Lågt tryck" ; %00017 B21, lågt tryck (värme) (stoppar allt)
%DO18 : "G1 Ext.start FL"; %00018 G1, externstart (framledning)
%DO19 : "E21 Ange larm" ; %00019 Ange, E21, larm
%DO20 : "Tillåt On/Off" ; %00020 receiveblock, tillåt start/stopp (kommunikationshandboken)
PUBLIC
%rDO1 : "Tidkanal A-Larm";
%rDO2 : "Tidkanal B-Larm";
%rDO3 : "Tidkanal Dagtid";
%rDO4 : "SMS 0=Res 1=Ord";
%rDO5 : "SMS Kvittering" ;
%rDO6 : "SMS 0=Off, 1=On";
%rDO7 : "E21 Ext.start" ;
%rDO8 : "T1 Ange gfel FL";
%rDO9 : "T3 Ange gfel ST";
%rDO10 : "Sendbl. VP klar";
%rDO11 : "G1 Ange drift" ;
%rDO12 : "E11 Ange drift" ;
%rDO13 : "G3 Ext.start KB";
rDO14 : "E21 block. VP" ;
%rDO15 : "E11 Tillåt t.s.";
%rDO16 : "G5 Extern start";
%rDO17 : "B21 Lågt tryck" ;
%rDO18 : "G1 Ext.start FL";
%rDO19 : "E21 Ange larm" ;
%rDO20 : "Tillåt On/Off" ;
PRIVATE
Cnt;
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM ReadDISET1 NAMED "Läs DU1-20" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(01); % Modbus command "01h" read discrete input (bit)
DATA[2] := RWORD(0); % Start adress
DATA[4] := RWORD(20); % Number of inputs
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(01);
DATA[2] = BYTE(3);
%DATA[3] -> BYTE(
% IF (DATA & 1) THEN rDO1 := 1; ELSE rDO1 := 0; ENDIF;
% IF (DATA & 2) THEN rDO2 := 1; ELSE rDO2 := 0; ENDIF;
% IF (DATA & 4) THEN rDO3 := 1; ELSE rDO3 := 0; ENDIF;
% IF (DATA & 8) THEN rDO4 := 1; ELSE rDO4 := 0; ENDIF;
% IF (DATA & 16) THEN rDO5 := 1; ELSE rDO5 := 0; ENDIF;
% IF (DATA & 32) THEN rDO6 := 1; ELSE rDO6 := 0; ENDIF;
% IF (DATA & 64) THEN rDO7 := 1; ELSE rDO7 := 0; ENDIF;
% IF (DATA & 128) THEN rDO8 := 1; ELSE rDO8 := 0; ENDIF;
%);
DATA[4] -> BYTE(
% IF (DATA & 1) THEN rDO9 := 1; ELSE rDO9 := 0; ENDIF;
% IF (DATA & 2) THEN rDO10:= 1; ELSE rDO10:= 0; ENDIF;
% IF (DATA & 4) THEN rDO11:= 1; ELSE rDO11:= 0; ENDIF;
% IF (DATA & 8) THEN rDO12:= 1; ELSE rDO12:= 0; ENDIF;
% IF (DATA & 16) THEN rDO13:= 1; ELSE rDO13:= 0; ENDIF;
IF (DATA & 32) THEN rDO14:= 1; ELSE rDO14:= 0; ENDIF;
% IF (DATA & 64) THEN rDO15:= 1; ELSE rDO15:= 0; ENDIF;
% IF (DATA & 128) THEN rDO16:= 1; ELSE rDO16:= 0; ENDIF;
);
%DATA[5] -> BYTE(
% IF (DATA & 1) THEN rDO17:= 1; ELSE rDO17:= 0; ENDIF;
% IF (DATA & 2) THEN rDO18:= 1; ELSE rDO18:= 0; ENDIF;
% IF (DATA & 4) THEN rDO19:= 1; ELSE rDO19:= 0; ENDIF;
% IF (DATA & 8) THEN rDO20:= 1; ELSE rDO20:= 0; ENDIF;
%);
TIMEOUT 1000
END;
TELEGRAM WriteDISET1 NAMED "Ställ DU1-20" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(05); % Modbus command "05h" Set coil status (bit)
DATA[2] <- RWORD( %
IF Cnt>8 THEN Cnt:=0; ENDIF;
IF Cnt=0 THEN DATA := 13; %00014 E21, blockering (värmepump)
ELSIF Cnt=1 THEN DATA := 13; % "
ELSIF Cnt=2 THEN DATA := 13; % "
ELSIF Cnt=3 THEN DATA := 13; % "
ELSIF Cnt=4 THEN DATA := 13; % "
ELSIF Cnt=5 THEN DATA := 13; % "
ELSIF Cnt=6 THEN DATA := 13; % "
ELSIF Cnt=7 THEN DATA := 13; % "
ELSIF Cnt=8 THEN DATA := 13; % "
ENDIF;
);
DATA[4] <- RWORD(
IF Cnt=0 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=1 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=2 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=3 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=4 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=5 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=6 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=7 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=8 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ENDIF;
Cnt := Cnt + 1;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(05);
TIMEOUT 1000
END;
END;
% Device definition for IVT REGO 5002, 5003, 5004, 5005
%
% Settings module:
% Parity: None
% Baud: 9600
% Mode: RTU
%
% READ/WRITE Digital output
%
% 9 digitala utgångar kan ställas från devicet.
% Ta bort kommentartecken (%) för de utgångar som skall styras.
% Uppdatera telegrammen för Läs och Ställ med de valda utgångarna.
%
% Author: Peter Widetun, ABELKO AB Luleå
% History: 2010-02-12 inital version
%
DEVICETYPE IvtRego5005DOSET NAMED "IVTREGO StällDU" TYPEID 21341 IS
PARAMETER
Id :"Adress";
%DO1 : "Tidkanal A-Larm"; %00001 Tidkanal A-Larm
%DO2 : "Tidkanal B-Larm"; %00002 Tidkanal B-Larm
%DO3 : "Tidkanal Dagtid"; %00003 Tidkanal Dagtid
%DO4 : "SMS 0=Res 1=Ord"; %00004 SMSsend1: Reserv[0], Ordinarie[1]
%DO5 : "SMS Kvittering" ; %00005 SMSsend1, Kvittering
%DO6 : "SMS 0=Off, 1=On"; %00006 SMSsend1: Från[0], Till[1+]
%DO7 : "E21 Ext.start" ; %00007 E21, externstart
%DO8 : "T1 Ange gfel FL"; %00008 Ange, T1, givarfel (framledning)
%DO9 : "T3 Ange gfel ST"; %00009 Ange, T3, givarfel (slingtank)
%DO10 : "Sendbl. VP klar"; %00010 sendblock, värmepumpen klar (kommunikationshandboken)
%DO11 : "G1 Ange drift" ; %00011 Ange, G1, driftindikering
%DO12 : "E11 Ange drift" ; %00012 Ange, E11, driftindikering
%DO13 : "G3 Ext.start KB"; %00013 G3, externstart (köldbärare)
DO14 : "E21 block. VP" ; %00014 E21, blockering (värmepump)
%DO15 : "E11 Tillåt t.s."; %00015 E11, tillåt (tillskott)
%DO16 : "G5 Extern start"; %00016 G5, externstart (underkylare) (endast G-maskiner)
%DO17 : "B21 Lågt tryck" ; %00017 B21, lågt tryck (värme) (stoppar allt)
%DO18 : "G1 Ext.start FL"; %00018 G1, externstart (framledning)
%DO19 : "E21 Ange larm" ; %00019 Ange, E21, larm
%DO20 : "Tillåt On/Off" ; %00020 receiveblock, tillåt start/stopp (kommunikationshandboken)
PUBLIC
%rDO1 : "Tidkanal A-Larm";
%rDO2 : "Tidkanal B-Larm";
%rDO3 : "Tidkanal Dagtid";
%rDO4 : "SMS 0=Res 1=Ord";
%rDO5 : "SMS Kvittering" ;
%rDO6 : "SMS 0=Off, 1=On";
%rDO7 : "E21 Ext.start" ;
%rDO8 : "T1 Ange gfel FL";
%rDO9 : "T3 Ange gfel ST";
%rDO10 : "Sendbl. VP klar";
%rDO11 : "G1 Ange drift" ;
%rDO12 : "E11 Ange drift" ;
%rDO13 : "G3 Ext.start KB";
rDO14 : "E21 block. VP" ;
%rDO15 : "E11 Tillåt t.s.";
%rDO16 : "G5 Extern start";
%rDO17 : "B21 Lågt tryck" ;
%rDO18 : "G1 Ext.start FL";
%rDO19 : "E21 Ange larm" ;
%rDO20 : "Tillåt On/Off" ;
PRIVATE
Cnt;
BAUDRATE 9600;
CHECKSUM MODBUS SWAPPED;
TELEGRAM ReadDISET1 NAMED "Läs DU1-20" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(01); % Modbus command "01h" read discrete input (bit)
DATA[2] := RWORD(0); % Start adress
DATA[4] := RWORD(20); % Number of inputs
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(01);
DATA[2] = BYTE(3);
%DATA[3] -> BYTE(
% IF (DATA & 1) THEN rDO1 := 1; ELSE rDO1 := 0; ENDIF;
% IF (DATA & 2) THEN rDO2 := 1; ELSE rDO2 := 0; ENDIF;
% IF (DATA & 4) THEN rDO3 := 1; ELSE rDO3 := 0; ENDIF;
% IF (DATA & 8) THEN rDO4 := 1; ELSE rDO4 := 0; ENDIF;
% IF (DATA & 16) THEN rDO5 := 1; ELSE rDO5 := 0; ENDIF;
% IF (DATA & 32) THEN rDO6 := 1; ELSE rDO6 := 0; ENDIF;
% IF (DATA & 64) THEN rDO7 := 1; ELSE rDO7 := 0; ENDIF;
% IF (DATA & 128) THEN rDO8 := 1; ELSE rDO8 := 0; ENDIF;
%);
DATA[4] -> BYTE(
% IF (DATA & 1) THEN rDO9 := 1; ELSE rDO9 := 0; ENDIF;
% IF (DATA & 2) THEN rDO10:= 1; ELSE rDO10:= 0; ENDIF;
% IF (DATA & 4) THEN rDO11:= 1; ELSE rDO11:= 0; ENDIF;
% IF (DATA & 8) THEN rDO12:= 1; ELSE rDO12:= 0; ENDIF;
% IF (DATA & 16) THEN rDO13:= 1; ELSE rDO13:= 0; ENDIF;
IF (DATA & 32) THEN rDO14:= 1; ELSE rDO14:= 0; ENDIF;
% IF (DATA & 64) THEN rDO15:= 1; ELSE rDO15:= 0; ENDIF;
% IF (DATA & 128) THEN rDO16:= 1; ELSE rDO16:= 0; ENDIF;
);
%DATA[5] -> BYTE(
% IF (DATA & 1) THEN rDO17:= 1; ELSE rDO17:= 0; ENDIF;
% IF (DATA & 2) THEN rDO18:= 1; ELSE rDO18:= 0; ENDIF;
% IF (DATA & 4) THEN rDO19:= 1; ELSE rDO19:= 0; ENDIF;
% IF (DATA & 8) THEN rDO20:= 1; ELSE rDO20:= 0; ENDIF;
%);
TIMEOUT 1000
END;
TELEGRAM WriteDISET1 NAMED "Ställ DU1-20" IS
QUESTION
DATA[0] := BYTE(Id); % Modbus unit address
DATA[1] := HEX(05); % Modbus command "05h" Set coil status (bit)
DATA[2] <- RWORD( %
IF Cnt>8 THEN Cnt:=0; ENDIF;
IF Cnt=0 THEN DATA := 13; %00014 E21, blockering (värmepump)
ELSIF Cnt=1 THEN DATA := 13; % "
ELSIF Cnt=2 THEN DATA := 13; % "
ELSIF Cnt=3 THEN DATA := 13; % "
ELSIF Cnt=4 THEN DATA := 13; % "
ELSIF Cnt=5 THEN DATA := 13; % "
ELSIF Cnt=6 THEN DATA := 13; % "
ELSIF Cnt=7 THEN DATA := 13; % "
ELSIF Cnt=8 THEN DATA := 13; % "
ENDIF;
);
DATA[4] <- RWORD(
IF Cnt=0 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=1 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=2 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=3 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=4 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=5 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=6 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=7 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ELSIF Cnt=8 THEN IF DO14 THEN DATA:=65280; ELSE DATA:=0; ENDIF;
ENDIF;
Cnt := Cnt + 1;
);
ANSWER SIZE 8
DATA[0] = BYTE(Id);
DATA[1] = HEX(05);
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.