Procon MODMUX MM8VO

Detaljer

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

Beskrivning

Drivrutin till Procon IO modul

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_MM8VO NAMED "PROCON_MM8VO" TYPEID 21102
IS
%
% Typdefinition för PROCON MOD-MUX modul MM8VO till ABELKO Webmaster Pro.
%
% Denna modul har 8 0-10 V spänningsutgå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
%
  PARAMETER
    Id :"Address"INT;
    ao1 :"Spänning 1"["V"];
    ao2 :"Spänning 2"["V"];
    ao3 :"Spänning 3"["V"];
    ao4 :"Spänning 4"["V"];
    ao5 :"Spänning 5"["V"];
    ao6 :"Spänning 6"["V"];
    ao7 :"Spänning 7"["V"];
    ao8 :"Spänning 8"["V"];
    
  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] := HEX(00);  %
      DATA[3] := HEX(01);
      DATA[4] := HEX(00);
      DATA[5] := HEX(08);
      DATA[6] := HEX(10);  
      
      DATA[7] <- RWORD(
        IF ao1 >= 10 THEN tmp:=4096; ELSE tmp := ao1*409.6; ENDIF;
        DATA := tmp;
      );
      DATA[9] <- RWORD(
        IF ao2 >= 10 THEN tmp:=4096; ELSE tmp := ao2*409.6; ENDIF;
        DATA := tmp;
      );
      DATA[11] <- RWORD(
        IF ao3 >= 10 THEN tmp:=4096; ELSE tmp := ao3*409.6; ENDIF;
        DATA := tmp;
      );
      DATA[13] <- RWORD(
        IF ao4 >= 10 THEN tmp:=4096; ELSE tmp := ao4*409.6; ENDIF;
        DATA := tmp;
      );
      DATA[15] <- RWORD(
        IF ao5 >= 10 THEN tmp:=4096; ELSE tmp := ao5*409.6; ENDIF;
        DATA := tmp;
      );
      DATA[17] <- RWORD(
        IF ao6 >= 10 THEN tmp:=4096; ELSE tmp := ao6*409.6; ENDIF;
        DATA := tmp;
      );
      DATA[19] <- RWORD(
        IF ao7 >= 10 THEN tmp:=4096; ELSE tmp := ao7*409.6; ENDIF;
        DATA := tmp;
      );
      DATA[21] <- RWORD(
        IF ao8 >= 10 THEN tmp:=4096; ELSE tmp := ao8*409.6; ENDIF;
        DATA := tmp;
      );
    

    ANSWER SIZE 8
      DATA[0] = BYTE(Id);
      DATA[1] = HEX(10);
      DATA[2] = HEX(00);
      DATA[3] = HEX(01);
      DATA[4] = HEX(00);
      DATA[5] = HEX(08);
      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.