Procon MM8AO via MOD-MUX modul

Detaljer

Typ
Drivrutin
Upplaggd av
Ove Jansson, Abelko Innovation
Version
1
Uppdaterad
2013-08-28
Skapad
2013-08-28
Kategori
IO enheter, Modbus
Visningar
2350

Beskrivning

Typdefinition för PROCON MOD-MUX modul MM8AO

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

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Typdefinition för PROCON MOD-MUX modul MM8AO till ABELKO Webmaster Pro.
%
% Denna modul har 8 0-20 mA strömutgångar.
%
% 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
%
% Author:  Peter Widetun, ABELKO AB Luleå 
% History: 2012-05-02 Inital version
%
DEVICETYPE PROCON_MM8AO NAMED "PROCON_MM8AO" TYPEID 21103 IS

  PARAMETER
    Id :"Address"INT;
    ao1 :"Ström 1"["mA"];
    ao2 :"Ström 2"["mA"];
    ao3 :"Ström 3"["mA"];
    ao4 :"Ström 4"["mA"];
    ao5 :"Ström 5"["mA"];
    ao6 :"Ström 6"["mA"];
    ao7 :"Ström 7"["mA"];
    ao8 :"Ström 8"["mA"];
    
  PUBLIC
  
  PRIVATE
    tmp;
  BAUDRATE 19200;
  CHECKSUM MODBUS SWAPPED;

  TELEGRAM WriteOutputs NAMED "Write Outputs" IS
    QUESTION
      DATA[0] := BYTE(Id);
      DATA[1] := HEX(10);   % kommando 16(10h)
      DATA[2] := RWORD(1);  % Start address register 40002 (-1)
      DATA[4] := RWORD(8);  % Number of registers
      DATA[6] := BYTE(16);  % Number of bytes
      
      DATA[7] <- RWORD(
        IF ao1 >= 20 THEN tmp:=4095; ELSE tmp := ao1*204.75; ENDIF;
        DATA := tmp;
      );
      DATA[9] <- RWORD(
        IF ao2 >= 20 THEN tmp:=4095; ELSE tmp := ao2*204.75; ENDIF;
        DATA := tmp;
      );
      DATA[11] <- RWORD(
        IF ao3 >= 20 THEN tmp:=4095; ELSE tmp := ao3*204.75; ENDIF;
        DATA := tmp;
      );
      DATA[13] <- RWORD(
        IF ao4 >= 20 THEN tmp:=4095; ELSE tmp := ao4*204.75; ENDIF;
        DATA := tmp;
      );
      DATA[15] <- RWORD(
        IF ao5 >= 20 THEN tmp:=4095; ELSE tmp := ao5*204.75; ENDIF;
        DATA := tmp;
      );
      DATA[17] <- RWORD(
        IF ao6 >= 20 THEN tmp:=4095; ELSE tmp := ao6*204.75; ENDIF;
        DATA := tmp;
      );
      DATA[19] <- RWORD(
        IF ao7 >= 20 THEN tmp:=4095; ELSE tmp := ao7*204.75; ENDIF;
        DATA := tmp;
      );
      DATA[21] <- RWORD(
        IF ao8 >= 20 THEN tmp:=4095; ELSE tmp := ao8*204.75; ENDIF;
        DATA := tmp;
      );
    

    ANSWER SIZE 8
      DATA[0] = BYTE(Id);
      DATA[1] = HEX(10);
      DATA[2] = RWORD(1);  % Start address register 40002 (-1)
      DATA[4] = RWORD(8);  % Number of registers
      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.