FB_MDP_ScanModules
![]() | Update: Tc3_IPCDiag Bibliothek Die TwinCAT 3 SPS Bibliothek Tc2_MDP ist der Vorgänger zur Tc3_IPCDiag. Mit der neuen Tc3_IPCDiag Bibliothek wurde zum einen die Menge lesbarer Parameter vergrößert und zum anderen die Anwenderschnittstelle optimiert. Es wird empfohlen die Tc3_IPCDiag Bibliothek zu verwenden. |

Der Funktionsbaustein ermöglicht das Durchsuchen eines Gerätes nach einem bestimmten IPC-Diagnose Modul.
Bei mehrfachem Vorhandensein des Modultypen kann eine Auswahl getroffen werden. Für den gewählten Modultypen wird durch den Funktionsbaustein die dynamische Module ID ermittelt.
Diese ist wichtiger Bestandteil der MDP Adressierung, welche in der Struktur ST_MDP_Addr dargestellt ist.
VAR_INPUT
VAR_INPUT
bExecute : BOOL;
nModuleType : WORD; (* chosen module type out of the module type list *)
iModIdx : USINT; (* chosen index(0..n) of the demanded module type. E.g. second NIC(idx 1) of three found NICs. *)
tTimeout : TIME := DEFAULT_ADS_TIMEOUT; (* States the time before the function is cancelled. *)
sAmsNetId : T_AmsNetId; (* keep empty '' for the local device *)
END_VAR
bExecute: Mit einer positiven Flanke am Eingang bExecute wird der Funktionsbaustein aufgerufen, sofern der Baustein nicht aktiv ist.
nModuleType: An diesem Eingang wird der IPC-Diagnose Modul Typ angegeben. Die möglichen Typen sind in der Enumeration E_MDP_ModuleType aufgelistet. (allgemeine Informationen zu IPC-Diagnose Modultypen)
iModIdx: Falls ein IPC-Diagnose Modul mehrfach vorhanden ist, kann mittels des Eingangs iModIdx eine Auswahl (0,...,n) getroffen werden.
Bei Unsicherheit bezüglich der Auswahl: Informationen um welches Modul es sich explizit handelt, können nach dem Scannen über den Funktionsbaustein FB_MDP_ReadModuleHeader abgefragt werden.
tTimeout: Gibt eine maximale Zeitdauer für die Ausführung des Funktionsbausteines an.
sAmsNetId: Um die Anfrage auf dem lokalen Gerät durchzuführen bedarf es keiner Angabe dieser Eingangsvariablen. Alternativ kann ein leerer String angegeben werden. Um die Anfrage an einen anderen Computer zu richten kann hier dessen AMS Net Id (vom Typ T_AmsNetId) angegeben werden.
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL; (* indicates if Scan was successfull or not *)
nErrID : UDINT;
nDynModuleId : BYTE; (* Dynamic Module Id *)
iModuleTypeCount : USINT; (* returns the number of found modules equal the demanded module type. *)
iModuleCount : USINT; (* returns the number of all detected MDP modules. *)
END_VAR
bBusy: Dieser Ausgang ist TRUE solange der Funktionsbaustein aktiv ist.
bError: Wird TRUE, sobald eine Fehlersituation eintritt.
nErrID: Liefert bei einem gesetzten bError-Ausgang einen Fehlercode.
nDynModuleId: Dieser Ausgang gibt die ermittelte dynamische Module ID für das gewählte Modul an.
iModuleTypeCount: Der Ausgang iModuleTypeCount gibt die Anzahl der Module an, welche dem angegebenen Typ entsprechen.
iModuleCount: Der Ausgang iModuleCount gibt die komplette Anzahl der Module auf dem Gerät an.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.0 | PC oder CX (x86, x64,ARM) | Tc2_MDP |