ST_DriveRef für Verwenden mit den Bibliotheksbausteinen

TYPE ST_PlcDriveRef :
  STRUCT
    aNetId     : T_AmsNetIdArr; (* AmsNetId (array[0..5] of bytes) of the EtherCAT master device. *)
    nSlaveAddr : UINT; (* Address of the slave device. *)
    nDriveNo   : BYTE; (* Drive number *)
    nDriveType : BYTE; (* Drive type *)
  END_STRUCT
END_TYPE

Die Antriebsreferenz kann im System Manager in die SPS gemappt werden. Hierzu muss eine Instanz der ST_PlcDriveRef  als "AT %I*" lokiert werden. Anschließend können 'aNetID' auf 'netId', 'nSaveAddr' auf 'port' und 'nDriveNo' auf 'Chn0' (A) bzw. 'Chn1' (B) verlinkt werden. Bei mehrkanaligen Antrieben beziehen sich beide Kanäle auf dieselbe 'netId' und 'port'-Nummer, da es sich um einen EtherCAT-Slave handelt.

ST_DriveRef für Verwenden mit den Bibliotheksbausteinen 1:
TYPE ST_DriveRef :
  STRUCT
    sNetId     : T_AmsNetId; (* AmsNetId (string(23)) of the EtherCAT master device. *)
    nSlaveAddr : UINT; (* Address of the slave device. *)
    nDriveNo   : BYTE; (* Drive number*)
    nDriveType : BYTE; (* Drive type *)
  END_STRUCT
END_TYPE

Die Bibliotheksbausteine der TcDrive.lib verwenden eine Instanz der ST_DriveRef. Im Unterschied zu der ST_PlcDriveRef  wird die NetID als T_AmsNetId (also als STRING(23)) erwartet. Zum Wandeln des Bytearrays kann die Funktion F_CreateAmsNetId() der TcSystem.lib verwendet werden.

stDriveRef.sNetId     :=F_CreateAmsNetId(stPlcDriveRef.aNetId);
stDriveRef.nSlaveAddr := stPlcDriveRef.nSlaveAddr;
stDriveRef.nDriveNo   := stPlcDriveRef.nDriveNo;
stDriveRef.nDriveType := stPlcDriveRef.nDriveType;