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.
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;