Procon MODMUX MM6RTDB

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
2
Uppdaterad
2013-08-27
Skapad
2013-08-27
Kategori
IO enheter, Modbus
Visningar
2317

Beskrivning

Drivrutin till Procon MODMUX MM6RTDB io enhet

Bruksanvisning

Ladda in typdefinitionen enligt beskrivningen i manualen kapitel 18.2.

Datablad för modulerna hittar man på Procons hemsida: http://www.proconel.com/

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

DEVICETYPE PROCON_MM6RTDB NAMED "PROCON_MM6RTDB" TYPEID 21101
IS
%
% Typdefinition för PROCON MOD-MUX modul MM6RTDB till ABELKO Webmaster Pro.
%
% Denna modul har 6 ingångar för PT1000 temperaturgivare.
%
% Hur man installerar typdefinitionerna och driftsätter modulerna finns 
% beskrivet i användarmanualen, kapitel 18.7.
%
% Datablad för modulerna hittar man på Procons hemsida: 
% http://www.proconel.com/modmux.htm
%
% Modified: 101111 Version number added to parameters.
%                  No check of version numbres.

  PARAMETER
    Id :"Address"INT;
  PUBLIC
    ver1  : "S/W version"INT;
    ver2  : "Module type"INT;
    temp1 : "Temperatur 1"["°C"]DEC2;
    temp2 : "Temperatur 2"["°C"]DEC2;
    temp3 : "Temperatur 3"["°C"]DEC2;
    temp4 : "Temperatur 4"["°C"]DEC2;
    temp5 : "Temperatur 5"["°C"]DEC2;
    temp6 : "Temperatur 6"["°C"]DEC2;

  PRIVATE
    Exp;
  BAUDRATE 19200;
  CHECKSUM MODBUS SWAPPED;

  TELEGRAM Read NAMED "Read" IS
  QUESTION
    DATA[0] := BYTE(Id);
    DATA[1] := HEX(04);  % Command 4 Input registers
    DATA[2] := HEX(00);  % Start address
    DATA[3] := HEX(00);
    DATA[4] := HEX(00);  % Number of bytes
    DATA[5] := HEX(07);
  ANSWER SIZE 19
    DATA[0] = BYTE(Id);
    DATA[1] = HEX(04);
    DATA[2] = HEX(0E);   % Number of data bytes
    DATA[3]  -> BYTE(ver1 := DATA;);   % Sotware version
    DATA[4]  -> BYTE(ver2 := DATA;);   % Module type
    DATA[5]  -> RWORD(IF (DATA>=32768) THEN  temp1:=(DATA-65536)/10; ELSE temp1 := DATA/10;ENDIF;);
    DATA[7]  -> RWORD(IF (DATA>=32768) THEN  temp2:=(DATA-65536)/10; ELSE temp2 := DATA/10;ENDIF;);
    DATA[9]  -> RWORD(IF (DATA>=32768) THEN  temp3:=(DATA-65536)/10; ELSE temp3 := DATA/10;ENDIF;);
    DATA[11] -> RWORD(IF (DATA>=32768) THEN  temp4:=(DATA-65536)/10; ELSE temp4 := DATA/10;ENDIF;);
    DATA[13] -> RWORD(IF (DATA>=32768) THEN  temp5:=(DATA-65536)/10; ELSE temp5 := DATA/10;ENDIF;);
    DATA[15] -> RWORD(IF (DATA>=32768) THEN  temp6:=(DATA-65536)/10; ELSE temp6 := DATA/10;ENDIF;);
  TIMEOUT 500
  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.