RegioMidi

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
1
Uppdaterad
2013-04-06
Skapad
2013-04-06
Kategori
Modbus, Värme
Visningar
2461

Beskrivning

Förprogrammerade rumsregulatorer med kommunikation

Bruksanvisning

saknas

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 RegioMidi, Digital inputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-08-05 inital version
%
DEVICETYPE RegioMidiDigital NAMED "RegioMidi DI/DU" TYPEID 21370 IS

  PARAMETER
    Id    : "Adress";

  PUBLIC

   %D1    : "DigIn(0)"    ;   % 1   L,2  Används ej
    D2    : "DigIn1"      ;   % 2   L,2  Värde på digital ingång 1
    D3    : "DigIn2"      ;   % 3   L,2  Värde på digital ingång 2
    D4    : "UDigIn1"     ;   % 4   L,2  Värde på universell digital ingång 1
    D5    : "DigOut(0)"   ;   % 5   L,2  Används ej
   %D6    : "DigOut1"     ;   % 6   L,2  Värde på digital utgång 1
    D7    : "DigOut2"     ;   % 7   L,2  Värde på digital utgång 2
    D8    : "DigOut3"     ;   % 8   L,2  Värde på digital utgång 3
    D9    : "DigOut4"     ;   % 9   L,2  Värde på digital utgång 4
    D10   : "DigOut5"     ;   % 10  L,2  Värde på digital utgång 5
    D11   : "UDigOut1"    ;   % 11  L,2  Värde på universell digital utgång 1
    D12   : "UDigOut2"    ;   % 12  L,2  Värde på universell digital utgång 2

  PRIVATE

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM DigitalInput NAMED "Läs status IN/UT" IS
    QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(02);       % Modbus command "02h" read discrete input (bit)
      DATA[2]  := RWORD(0);      % Start adress (1-1)
      DATA[4]  := RWORD(12);     % Number of inputs

    ANSWER SIZE 7                % ((Number of inputs / 8) + (Rest>0)) + 5
      DATA[0]   = BYTE(Id);
      DATA[1]   = HEX(02);
     %DATA[2]   = BYTE(2);
      DATA[3]  -> BYTE(
     %                 IF (DATA & 1)   THEN D1 := 1; ELSE D1 := 0; ENDIF;
                       IF (DATA & 2)   THEN D2 := 1; ELSE D2 := 0; ENDIF;
                       IF (DATA & 4)   THEN D3 := 1; ELSE D3 := 0; ENDIF;
                       IF (DATA & 8)   THEN D4 := 1; ELSE D4 := 0; ENDIF;
                       IF (DATA & 16)  THEN D5 := 1; ELSE D5 := 0; ENDIF;
     %                 IF (DATA & 32)  THEN D6 := 1; ELSE D6 := 0; ENDIF;
                       IF (DATA & 64)  THEN D7 := 1; ELSE D7 := 0; ENDIF;
                       IF (DATA & 128) THEN D8 := 1; ELSE D8 := 0; ENDIF;
                       );
      DATA[4]  -> BYTE(
                       IF (DATA & 1)   THEN D9 := 1; ELSE D9 := 0; ENDIF;
                       IF (DATA & 2)   THEN D10:= 1; ELSE D10:= 0; ENDIF;
                       IF (DATA & 4)   THEN D11:= 1; ELSE D11:= 0; ENDIF;
                       IF (DATA & 8)   THEN D12:= 1; ELSE D12:= 0; ENDIF;
                       );

    TIMEOUT 2000

  END;

END;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi, Indikation/Alarm inputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-08-05 initial version
%
DEVICETYPE RegioMidiAlarm NAMED "RegioMidi Ind." TYPEID 21371 IS

  PARAMETER
    Id         : "Adress";

  PUBLIC
                                %        Indikerar
    AL13 : "DIOpenWindow"   ;   % 13 L,2 öppet fönster
    AL14 : "DICondenseAlarm";   % 14 L,2 kondenslarm från digital ingång
    AL15 : "DIPresences"    ;   % 15 L,2 närvaro från digital ingång
    AL16 : "DIChangeOver"   ;   % 16 L,2 change-over från digitalingång
    AL17 : "FanSpeed1"      ;   % 17 L,2 fläkthastighet 1
    AL18 : "FanSpeed2"      ;   % 18 L,2 fläkthastighet 2
    AL19 : "FanSpeed3"      ;   % 19 L,2 fläkthastighet 3
    AL20 : "Forcedvent."    ;   % 20 L,2 forcerad ventilation
    AL21 : "CVHeatPulsProp" ;   % 21 L,2 pulsprop värme
    AL22 : "CVCoolPulsProp" ;   % 22 L,2 pulsprop kyla
    AL23 : "CVHeatInc"      ;   % 23 L,2 värme öka
    AL24 : "CVHeatDec"      ;   % 24 L,2 värme minska
    AL25 : "CVCoolInc"      ;   % 25 L,2 kyla öka
    AL26 : "CVCoolDec"      ;   % 26 L,2 kyla minska
    AL27 : "ChangeOverAI"   ;   % 27 L,2 change-over-status från analog ingång
    AL28 : "ChangeOverAI/DI";   % 28 L,2 change-over-status från både digital och analog ingång
    AL29 : "RoomTempSeAlarm";   % 29 L,2 givarlarm på rumsgivare

  PRIVATE

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM DigitalAlarm NAMED "Indikering/Larm" IS

    QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(02);       % Modbus command "02h" read discrete input (bit)
      DATA[2]  := RWORD(12);     % Start adress (13-1)
      DATA[4]  := RWORD(17);     % Number of inputs

    ANSWER SIZE 8                % ((Number of inputs / 8) + (Rest>0)) + 5
      DATA[0]   = BYTE(Id);
      DATA[1]   = HEX(02);
     %DATA[2]   = BYTE(3);
      DATA[3]  -> BYTE(
                       IF (DATA & 1)   THEN AL13:= 1; ELSE AL13:= 0; ENDIF;
                       IF (DATA & 2)   THEN AL14:= 1; ELSE AL14:= 0; ENDIF;
                       IF (DATA & 4)   THEN AL15:= 1; ELSE AL15:= 0; ENDIF;
                       IF (DATA & 8)   THEN AL16:= 1; ELSE AL16:= 0; ENDIF;
                       IF (DATA & 16)  THEN AL17:= 1; ELSE AL17:= 0; ENDIF;
                       IF (DATA & 32)  THEN AL18:= 1; ELSE AL18:= 0; ENDIF;
                       IF (DATA & 64)  THEN AL19:= 1; ELSE AL19:= 0; ENDIF;
                       IF (DATA & 128) THEN AL20:= 1; ELSE AL20:= 0; ENDIF;
                       );
      DATA[4]  -> BYTE(
                       IF (DATA & 1)   THEN AL21:= 1; ELSE AL21:= 0; ENDIF;
                       IF (DATA & 2)   THEN AL22:= 1; ELSE AL22:= 0; ENDIF;
                       IF (DATA & 4)   THEN AL23:= 1; ELSE AL23:= 0; ENDIF;
                       IF (DATA & 8)   THEN AL24:= 1; ELSE AL24:= 0; ENDIF;
                       IF (DATA & 16)  THEN AL25:= 1; ELSE AL25:= 0; ENDIF;
                       IF (DATA & 32)  THEN AL26:= 1; ELSE AL26:= 0; ENDIF;
                       IF (DATA & 64)  THEN AL27:= 1; ELSE AL27:= 0; ENDIF;
                       IF (DATA & 128) THEN AL28:= 1; ELSE AL28:= 0; ENDIF;
                       );
      DATA[5]  -> BYTE(
                       IF (DATA & 1)   THEN AL29:= 1; ELSE AL29:= 0; ENDIF;
                       );

    TIMEOUT 2000

  END;

END;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi Digital outputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-0806 inital version
%
DEVICETYPE RegioMidiDigitalOut NAMED "RegioMidi SetDU" TYPEID 21372 IS

  PARAMETER
    Id         : "Adress";

   %DU1  : "Bypass"  ;  % 1  L,1  0  Sätter enheten i Bypass-läge. Återgår automatiskt efter Bypass-tid (default=120 min).
   %DU2  : "ShutDown";  % 2  L,1  0  Sätter enheten i Shutdown-läge
   %DU3  : "NotUsedL";  % 3  L,1  0  Används ej
   %DU4  : "DiNC(0)" ;  % 4  L,1  0  Används ej
   %DU5  : "Di1NC"   ;  % 5  L,1  0  Normalt öppen (NO) eller normalt stängd (NC) på digital ingång 1. 0=NO, 1=NC.
   %DU6  : "Di2NC"   ;  % 6  L,1  1  Normalt öppen (NO) eller normalt stängd (NC) på digital ingång 2. 0=NO, 1=NC.
    DU7  : "UDi1NC"  ;  % 7  L,1  0  Normalt öppen (NO) eller normalt stängd (NC) på universell digital ingång 1. 0=NO, 1=NC.

  PUBLIC

  PRIVATE
    Cnt;

  BAUDRATE 9600;
  CHECKSUM MODBUS SWAPPED;

  TELEGRAM WriteDISET1 NAMED "Sätt Dig.Status" 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;
        DATA := 6;                   % Digital reg 7
       %IF    Cnt=0 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=1 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=2 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=3 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=4 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=5 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=6 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=7 THEN DATA := 6;  % Digital reg 7
       %ELSIF Cnt=8 THEN DATA := 6;  % Digital reg 7
       %ENDIF;
      );
      DATA[4]  <- RWORD(
        DATA := DU7;
       %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 RegioMidi Analog inputs
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Note! Telegram for reading Analog status AI and AO
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2008-10-14 inital version
% History: 2010-06-18 Anpassning för Svensk Styrteknik
%
DEVICETYPE RegioMidiEAnalog NAMED "RegioMidi AI/AU" TYPEID 21373 IS

  PARAMETER
    Id         : "Adress";

  PUBLIC

   %V1  : "Software"               ;   % 1   X,4  Typ av Regio mjukvara: 0 = RCP 1 = RC
   %V2  : "VerMajor"               ;   % 2   X,4  Huvudversion
   %V3  : "VerMinor"               ;   % 3   X,4  Mindre version
   %V4  : "VerBranch"              ;   % 4   X,4  Del version
    V5  : "Revision"               ;   % 5   X,4  Revision

    V6  : "FanSwitch"              ;   % 6   X,4  Tillstånd fläktomkopplare
    V7  : "UnitState"              ;   % 7   X,4  Aktuellt driftläge: 0 = Off 1 = Unoccupied 2 = Stand-by 3 = Occupied 4 = ByPass
    V8  : "ControllerState"        ;   % 8   X,4  Aktuell reglering: 0 = Från 1 = Värme 2 = Kyla
    V9  : "FanSpeed"               ;   % 9   X,4  Aktuell fläkthastighet: 0 = Från 1 = Fläkthastighet 1 2 = Fläkthastighet 2 3 = Fläkthastighet 3
   %V10 : "NotUsedX"               ;   % 10  X,4  Används ej
    V11 : "RoomTemp"         ["°C"];   % 11  R,4  Rumstemperatur
    V12 : "RoomTempExt"      ["°C"];   % 12  R,4  Rumstemperatur från extern givare
    V13 : "RoomTempInt"      ["°C"];   % 13  R,4  Rumstemperatur från intern givare
    V14 : "AIChangeOver"     ["°C"];   % 14  R,4  Change-over-temperatur
    V15 : "AnaIn1"           ["V"] ;   % 15  R,4  Värde på analog ingång 1
    V16 : "UAnaIn1"          ["V"] ;   % 16  R,4  Värde på universell analog ingång 1
    V17 : "UAnaOut1"         ["V"] ;   % 17  R,4  Värde på universell analog utgång 1
    V18 : "UAnaOut2"         ["V"] ;   % 18  R,4  Värde på universell analog utgång 2
    V19 : "SetPAdjustment"   ["°C"];   % 19  R,4  Börvärdesjustering från intern enhet
    V20 : "PIDSetP"          ["°C"];   % 20  R,4  Regulatorbörvärde
    V21 : "PIDOutput"        ["%"] ;   % 21  R,4  Regulatorutsignal (0…100%)
    V22 : "HeatOutput"       ["%"] ;   % 22  R,4  Värmeutsignal (0…100%)
    V23 : "CoolOutput"       ["%"] ;   % 23  R,4  Kylutsignal (0…100%)
    V24 : "AI1Raw"           ["V"] ;   % 24  R,4  Råvärde för analog ingång 1
    V25 : "UI1Raw"           ["V"] ;   % 25  R,4  Råvärde för universell ingång 1

  PRIVATE

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM AnalogInput NAMED "Läs värden" IS
    QUESTION
      DATA[0]  := BYTE(Id);      % Modbus unit address
      DATA[1]  := HEX(04);       % Modbus command "04h" Read registers
      DATA[2]  := RWORD(0);      % Start address register
      DATA[4]  := RWORD(25);     % Number of registers

    ANSWER SIZE 55               % (Number of registers * 2) + 5
      DATA[0]   = BYTE(Id);      % ID
      DATA[1]   = HEX(04);       % Modbus command "04h" Read registers
     %DATA[2]   = BYTE(50);      % Byte count
     %DATA[3]  -> RWORD(V1 := DATA;);
     %DATA[5]  -> RWORD(V2 := DATA;);
     %DATA[7]  -> RWORD(V3 := DATA;);
     %DATA[9]  -> RWORD(V4 := DATA;);
      DATA[11] -> RWORD(V5 := DATA;);
      DATA[13] -> RWORD(V6 := DATA;);
      DATA[15] -> RWORD(V7 := DATA;);
      DATA[17] -> RWORD(V8 := DATA;);
      DATA[19] -> RWORD(V9 := DATA;);
     %DATA[21] -> RWORD(V10:= DATA;);
      DATA[23] -> RWORD(IF (DATA>=32768) THEN V11:=(DATA-65536)/10; ELSE V11:=DATA/10; ENDIF;);
      DATA[25] -> RWORD(IF (DATA>=32768) THEN V12:=(DATA-65536)/10; ELSE V12:=DATA/10; ENDIF;);
      DATA[27] -> RWORD(IF (DATA>=32768) THEN V13:=(DATA-65536)/10; ELSE V13:=DATA/10; ENDIF;);
      DATA[29] -> RWORD(IF (DATA>=32768) THEN V14:=(DATA-65536)/10; ELSE V14:=DATA/10; ENDIF;);
      DATA[31] -> RWORD(IF (DATA>=32768) THEN V15:=(DATA-65536)/10; ELSE V15:=DATA/10; ENDIF;);
      DATA[33] -> RWORD(IF (DATA>=32768) THEN V16:=(DATA-65536)/10; ELSE V16:=DATA/10; ENDIF;);
      DATA[35] -> RWORD(IF (DATA>=32768) THEN V17:=(DATA-65536)/10; ELSE V17:=DATA/10; ENDIF;);
      DATA[37] -> RWORD(IF (DATA>=32768) THEN V18:=(DATA-65536)/10; ELSE V18:=DATA/10; ENDIF;);
      DATA[39] -> RWORD(IF (DATA>=32768) THEN V19:=(DATA-65536)/10; ELSE V19:=DATA/10; ENDIF;);
      DATA[41] -> RWORD(IF (DATA>=32768) THEN V20:=(DATA-65536)/10; ELSE V20:=DATA/10; ENDIF;);
      DATA[43] -> RWORD(IF (DATA>=32768) THEN V21:=(DATA-65536)/10; ELSE V21:=DATA/10; ENDIF;);
      DATA[45] -> RWORD(IF (DATA>=32768) THEN V22:=(DATA-65536)/10; ELSE V22:=DATA/10; ENDIF;);
      DATA[47] -> RWORD(IF (DATA>=32768) THEN V23:=(DATA-65536)/10; ELSE V23:=DATA/10; ENDIF;);
      DATA[49] -> RWORD(IF (DATA>=32768) THEN V24:=(DATA-65536)/10; ELSE V24:=DATA/10; ENDIF;);
      DATA[51] -> RWORD(IF (DATA>=32768) THEN V25:=(DATA-65536)/10; ELSE V25:=DATA/10; ENDIF;);

    TIMEOUT 2000

  END;

END;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Device definition for RegioMidi Analog settings
%
% Settings module:
%       Parity: None
%       Baud:   9600
%       Mode:   RTU
%
% Author:  Peter Widetun, ABELKO AB Luleå
% History: 2010-08-06 inital version
%
DEVICETYPE RegioMidiSet NAMED "RegioMidi Ställ" TYPEID 21274 IS

  PARAMETER
    Id  : "Adress";

    S13 : "ChangeOverSel."         ;   % 13  X,3  2        Manuell/Auto change-over (0=Värme, 1=Kyla, 2=Auto)

  PUBLIC

  PRIVATE
    Cnt;

  BAUDRATE 9600;

  CHECKSUM MODBUS SWAPPED;

  TELEGRAM Settings1 NAMED "Ställ värden" IS

    QUESTION
      DATA[0]  := BYTE(Id);
      DATA[1]  := HEX(06);                %Write singel register
      DATA[2]  <- RWORD(                  %Start adress (regnr-1)
        IF Cnt>8 THEN Cnt:=0; ENDIF;
       %%                Adress=Register-1
        DATA := 12;
       %IF    Cnt=0 THEN DATA := 12;     % S13 Manuell/Auto change-over (0=Värme, 1=Kyla, 2=Auto)
       %ELSIF Cnt=1 THEN DATA := 12;     % S13
       %ELSIF Cnt=2 THEN DATA := 12;     % S13
       %ELSIF Cnt=3 THEN DATA := 12;     % S13
       %ELSIF Cnt=4 THEN DATA := 12;     % S13
       %ELSIF Cnt=5 THEN DATA := 12;     % S13
       %ELSIF Cnt=6 THEN DATA := 12;     % S13
       %ELSIF Cnt=7 THEN DATA := 12;     % S13
       %ELSE             DATA := 12;     % S13
       %ENDIF;
      );

      DATA[4]  <- RWORD(

       %IF    Cnt=0 THEN
         IF    S13<0     THEN DATA := 2;       % S13 Manuell/Auto change-over (0=Värme, 1=Kyla, 2=Auto)% S0 =
         ELSIF S13>2     THEN DATA := 2;
         ELSE                 DATA := S13;
         ENDIF;
       %ELSIF Cnt=1 THEN
       %  IF    S24<20   THEN DATA := 200;    % S0 =
       %  ELSIF S24>750  THEN DATA := 7500;
       %  ELSE                DATA := S24*10;
       %  ENDIF;
       %ELSIF Cnt=2 THEN
       %  IF    S25<20   THEN DATA := 200;    % S0 =
       %  ELSIF S25>750  THEN DATA := 7500;
       %  ELSE                DATA := 25*10;
       %  ENDIF;
       %ELSIF Cnt=3 THEN
       %  IF    S26<20   THEN DATA := 200;    % S0 =
       %  ELSIF S26>750  THEN DATA := 7500;
       %  ELSE                DATA := S26*10;
       %  ENDIF;
       %ELSIF Cnt=4 THEN
       %  IF    S27<20   THEN DATA := 200;    % S0 =
       %  ELSIF S27>750  THEN DATA := 7500;
       %  ELSE                DATA := S27*10;
       %  ENDIF;
       %ELSIF Cnt=5 THEN
       %  IF    S1<10    THEN DATA := 100;    % S0 =
       %  ELSIF S1>40    THEN DATA := 400;
       %  ELSE                DATA := S1*10;
       %  ENDIF;
       %ELSIF Cnt=6 THEN
       %  IF    S33<10   THEN DATA := 100;    % S0 =
       %  ELSIF S33>40   THEN DATA := 400;
       %  ELSE                DATA := S33*10;
       %  ENDIF;
       %ELSIF Cnt=7 THEN
       %  IF    S34<4    THEN DATA := 40;     % S0 =
       %  ELSIF S34>40   THEN DATA := 400;
       %  ELSE                DATA := S34*10;
       %  ENDIF;
       %ELSE
       %  IF    S439<10  THEN DATA := 100;    % S0 =
       %  ELSIF S439>40  THEN DATA := 400;
       %  ELSE                DATA := S439*10;
       %  ENDIF;
       %
       %ENDIF;

        Cnt := Cnt + 1;
        IF Cnt>8 THEN Cnt := 0;
        ENDIF;
      );

    ANSWER SIZE 8
      DATA[0] = BYTE(Id);
      DATA[1] = HEX(06);

    TIMEOUT 2000

  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.