FB_EcCoeReadBIC

Mit dem Funktionsbaustein FB_EcCoeReadBIC kann per SDO(Service Daten Objekt)-Zugriff die BIC aus dem Objektverzeichnis eines EtherCAT-Slaves ausgelesen werden. Dazu muss der Slave eine Mailbox besitzen und das "CANopen over EtherCAT (CoE)"-Protokoll unterstützen und das Objektverzeichnis muss ein Objekt 0x10E2:01 mit der BIC enthalten.
 Eingänge
VAR_INPUT
    sNetId     : T_AmsNetId; 
    nSlaveAddr : UINT; 
    bExecute   : BOOL;
    tTimeout   : TIME := DEFAULT_ADS_TIMEOUT; 
END_VARName  | Typ  | Beschreibung  | 
|---|---|---|
sNetId  | T_AmsNetId  | String, der die AMS-Netzwerkkennung des EtherCAT-Master-Gerätes enthält. (Typ: T_AmsNetId)  | 
nSlaveAddr  | UINT  | Feste Adresse des EtherCAT-Slaves, an den das SDO-Upload-Kommando geschickt werden soll.  | 
bExecute  | BOOL  | Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.  | 
tTimeout  | TIME  | Maximale Zeit, die bei der Ausführung des Funktionsbausteins nicht überschritten werden darf.  | 
 Ausgänge
VAR_OUTPUT
    bBusy     : BOOL;
    bError    : BOOL;
    nErrId    : UDINT;
    sBICValue : STRING
    stMSID    : ST_SplittedBIC;
END_VARName  | Typ  | Beschreibung  | 
|---|---|---|
bBusy  | BOOL  | Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.  | 
bError  | BOOL  | Dieser Ausgang wird gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde, wenn bei der Übertragung des Kommandos ein Fehler auftritt.  | 
nErrId  | UDINT  | Liefert bei einem gesetzten bError-Ausgang den ADS-Fehlercode des zuletzt ausgeführten Befehls.  | 
sBICValue  | STRING(1023)  | Dieser Ausgang enthält bei fehlerfreiem Durchlauf die BIC des EtherCAT Slaves, nachdem der bBusy-Ausgang zurückgesetzt wurde, z.B. „1P193995SBTN0002agdw1KEL7411 Q1 2P112104020018“.  | 
stMSID  | ST_SplittedBIC  | Dieser Ausgang enthält bei fehlerfreiem Durchlauf die Teilstrings der BIC des EtherCAT Slaves, nachdem der bBusy-Ausgang zurückgesetzt wurde. Für die oben angeführte BIC sind folgende Teilstrings belegt:   | 
Beispiel für eine Implementierung in ST
PROGRAM TEST_EcCoEReadBIC
VAR
    fbCoEBIC   : FB_EcCoEReadBIC;
    sNetId     : T_AmsNetId := '172.16.2.131.2.1';
    bExecute   : BOOL := TRUE;
    nSlaveAddr : UINT := 1006;
    sCoEBIC    : STRING(1023);
    stCoEBIC   : ST_SplittedBIC;
    bError     : BOOL;
    nErrId     : UDINT;
END_VAR
fbCoEBIC(sNetId:= sNetID, nSlaveAddr:= nPort, bExecute:= bExecute, tTimeout:= T#5s);
IF NOT fbCoEBIC.bBusy THEN
     bExecute := FALSE;
     IF NOT fbCoEBIC.bError THEN
          stCoEBIC   := fbCoEBIC.stMSID;
          sCoEBIC    := fbCoEBIC.sBICValue;
     END_IF
     fbCoEBIC(bExecute:= bExecute);
END_IF Voraussetzungen
Entwicklungsumgebung  | Zielplattform  | Einzubindende SPS- Bibliotheken  | 
|---|---|---|
TwinCAT v3.1.0  | PC oder CX (x86, x64, Arm®)  | Tc2_EtherCAT  |