BAS2-MBIO-A42 (modbus)

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
8
Uppdaterad
2017-02-21
Skapad
2015-08-28
Kategori
IO enheter, Modbus
Visningar
3356

Beskrivning

Enheten har 4 analoga ingångar för 0-10V eller PT1000 och 2 analoga utgångar 0-10V.

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

% Type of input depends on dip switches
% 170221 (PW) Changed startadress read from 100 to 99 and write from 201 to 200.
DEVICETYPE BAS2A42 NAMED "BAS2-MBIO-A42" TYPEID 15895 IS

 PARAMETER
  Id : "Adress";
  W1 : "Output 1" ["V"]DEC3;
  W2 : "Output 1" ["V"]DEC3;
 PUBLIC
  A1 : "IN1 Fail" [""]INT; %
  A2 : "IN2 Fail" [""]INT; %
  A3 : "IN3 Fail" ["˚"]INT; %
  A4 : "IN4 Fail" ["˚"]INT; %
  T1 : "Temp 1" ["˚C"]DEC2; %
  T2 : "Temp 2" ["˚C"]DEC2; %
  T3 : "Temp 3" ["˚C"]DEC2; %
  T4 : "Temp 4" ["˚C"]DEC2; %
  V1 : "Volt 1" ["V"]DEC3; %
  V2 : "Volt 2" ["V"]DEC3; %
  V3 : "Volt 3" ["V"]DEC3; %
  V4 : "Volt 4" ["V"]DEC3; %
    
 PRIVATE
  count;
  tmp;

 BAUDRATE 9600;
 PARITY EVEN;
 CHECKSUM MODBUS SWAPPED;

 TELEGRAM Read NAMED "Read" IS
  QUESTION
   DATA[0] := BYTE(Id); 
   DATA[1] :=  HEX(04); 
   DATA[2] := RWORD(99);
   DATA[4] := RWORD(5);
  ANSWER SIZE 15   
   DATA[0] = BYTE(Id);
   DATA[1] = HEX(04);
   DATA[3] -> RWORD(
    IF DATA&1 THEN A1:=1; ELSE A1:=0; ENDIF;
    IF DATA&2 THEN A2:=1; ELSE A2:=0; ENDIF;
    IF DATA&4 THEN A3:=1; ELSE A3:=0; ENDIF;
    IF DATA&8 THEN A4:=1; ELSE A4:=0; ENDIF;
   );
   DATA[5] -> RWORD(T1:=DATA/100;V1:=DATA/1000;);
   DATA[7] -> RWORD(T2:=DATA/100;V2:=DATA/1000;);
   DATA[9] -> RWORD(T3:=DATA/100;V3:=DATA/1000;);
   DATA[11] -> RWORD(T4:=DATA/100;V4:=DATA/1000;);
  TIMEOUT 300
 END;

 TELEGRAM Write NAMED "Write" IS
  QUESTION
   DATA[0] := BYTE(Id); 
   DATA[1] := HEX(10); 
   DATA[2] := RWORD(200);
   DATA[4] := BYTE(2);
   DATA[5] := RWORD(W1*1000);
   DATA[7] := RWORD(W2*1000);
  ANSWER SIZE 8   
   DATA[0] = BYTE(Id);
   DATA[1] = HEX(10);
  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.