Barix X8 8st digitala utgångar

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
2
Uppdaterad
2013-12-03
Skapad
2013-12-03
Kategori
IO enheter, Modbus
Visningar
3290

Beskrivning

Barix X8 är en trevlig liten enhet som kan fungera som
- 8st digital input
- 8st digital output
- 0-5V analog input
- Lokal temperatur 8st Barix TS digitala sensorer (OneWire)
- WIEGAND läsare 2 inputs + 6 med standard io funktioner)

Det här är en drivrutin för att skriva till enhetens 8 digitala utgångar.

Bruksanvisning

Använd först konfigureringsskriptet för att ställa in din enhet
Bruksanvisning på Engelska barixx8_manual_V200.pdf (1,9MB).

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

% Skapad med Modbus Creator
DEVICETYPE BARIXX8DO NAMED "Barix X8 DO" TYPEID 21460 IS

 PARAMETER
  Id       : "Adress";
  V1 : "DO1" [""];
  V2 : "DO2" [""];
  V3 : "DO3" [""];
  V4 : "DO4" [""];
  V5 : "DO5" [""];
  V6 : "DO6" [""];
  V7 : "DO7" [""];
  V8 : "DO8" [""];

 PUBLIC

 PRIVATE
  count5;

 BAUDRATE 19200;
 PARITY EVEN;
 CHECKSUM MODBUS SWAPPED;

 TELEGRAM WriteCoil NAMED "Write Coil" IS
  QUESTION
   DATA[0] := BYTE(Id); % Enhetens Modbus adress
   DATA[1] :=  HEX(05); % Modbus kommando för att skriva en Coil
   DATA[2] <- RWORD(
    IF(count5>7) THEN count5 := 0; ENDIF;
    IF (count5=0) THEN DATA := 0;
    ELSIF (count5=1) THEN DATA := 1;
    ELSIF (count5=2) THEN DATA := 2;
    ELSIF (count5=3) THEN DATA := 3;
    ELSIF (count5=4) THEN DATA := 4;
    ELSIF (count5=5) THEN DATA := 5;
    ELSIF (count5=6) THEN DATA := 6;
    ELSIF (count5=7) THEN DATA := 7;
    ENDIF;
   ); % Register adress
   DATA[4] <- RWORD(
    IF (count5=0) THEN IF (V1 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ELSIF (count5=1) THEN IF (V2 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ELSIF (count5=2) THEN IF (V3 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ELSIF (count5=3) THEN IF (V4 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ELSIF (count5=4) THEN IF (V5 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ELSIF (count5=5) THEN IF (V6 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ELSIF (count5=6) THEN IF (V7 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ELSIF (count5=7) THEN IF (V8 >0) THEN DATA := 65536; ELSE DATA := 0; ENDIF;
    ENDIF;
    count5 := count5+1;
   );
  ANSWER SIZE 8
   DATA[0] = BYTE(Id);
   DATA[1] = BYTE(05);
  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.