Beckhoff TwinSAFE EL6910 Operation Manual page 108

Logic terminal
Hide thumbs Also See for TwinSAFE EL6910:
Table of Contents

Advertisement

Operation
Program sample
(* Setting AmsNetID of EL69x0 *)
IF NOT bNetIdInitialized THEN
sNetId := '';
FOR i := 0 TO 5 DO
   sNetId := CONCAT(sNetId,BYTE_TO_STRING(au8EL69x0NetId[i]));
   sNetId := CONCAT(sNetId, '.');
END_FOR
bNetIdInitialized := TRUE;
END_IF
(* ADS Write Indication - Reading parameter data *)
FbWriteInd();
IF FbWriteInd.VALID THEN
IF FbWriteInd.LENGTH = 10 THEN
   FW_MemCpy(ADR(au8FParameter), FbWriteInd.DATAADDR, 10);
   bWriteFPar := TRUE;
END_IF
FbWriteRes(NETID    := FbWriteInd.NETID,
           PORT     := FbWriteInd.PORT,
           INVOKEID := FbWriteInd.INVOKEID,
           RESULT   := 0,
           RESPOND  := TRUE);
FbWriteRes(RESPOND  := FALSE);
FbWriteInd(CLEAR    := TRUE);
FbWriteInd(CLEAR    := FALSE);
END_IF
(* ADS Write - Write parameter to EL69x0 *)
FbWrite(NETID    := sNetId,
        PORT     := u16EL69x0Port,
        IDXGRP   := 16#F302,
        IDXOFFS  := 16#80050000,
        LEN      := 10,
        SRCADDR  := ADR(au8FParameter),
        WRITE    := bWriteFPar);
IF bWriteFPar AND NOT FbWrite.BUSY THEN
IF NOT FbWrite.ERR THEN
   bWriteFPar := FALSE;
END_IF
FbWrite(WRITE := FALSE);
END_IF
(* Write parameter each startup of the EL69x0 *)
IF (u16OldState AND 16#0F) <> (u16EL69x0State AND 16#0F) THEN
IF (u16OldState AND 16#0F) <> 2 AND
   (u16OldState AND 16#0F) <> 4 AND
   (u16OldState AND 16#0F) <> 8 THEN
    IF (u16EL69x0State AND 16#0F) = 2 OR
       (u16EL69x0State AND 16#0F) = 4 OR
       (u16EL69x0State AND 16#0F) = 8 THEN
          bWriteFPar := TRUE;
    END_IF
END_IF
u16OldState := u16EL69x0State;
END_IF
108
Version: 1.8.0
EL6910

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents