FB_IPCDiag_ReadParameterByMdpIdx
In Einzelfällen kann dieser Funktionsbaustein als Alternative zum einfacheren FB_IPCDiag_ReadParameter genutzt werden, um beliebige Parameter der IPC Diagnose abzufragen.
Das MDP (Modular Device Profile) Informationsmodell listet alle Parameter mit Hilfe von Areas, Modulen und Tabellen auf. Als generischer Zugriff auf jeden Parameter ist eine Adressierung definiert, deren Hauptbestandteil der MDP Index (2 Byte) ist.
Details finden Sie in der Dokumentation zum Beckhoff Device Manager.
VAR_INPUT
VAR_INPUT
bExecute : BOOL;
nIndex : WORD; (* F_IPCDiag_GetMdpIndex should be used if parameter is out of configuration area *)
nFlags : BYTE;
nSubIndex : BYTE;
pBuffer : PVOID; (* Contains the address of the buffer for the received data. *)
nBufferSize : UDINT; (* Contains the max. number of bytes to be received. *)
tTimeout : TIME := DEFAULT_ADS_TIMEOUT; (* States the time before the function is cancelled. *)
sNetId : 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.
nIndex: An diesem Eingang wird der erste Teil der Adressierung der geforderten IPC Diagnosedaten angegeben.
Stammt der gewünschte Parameter aus der MDP-Configuration-Area, so beinhaltet der MDP Index die dynamisch erzeugte Modul-ID. Für diesen Fall wird die Verwendung der Funktion F_IPCDiag_GetMdpIdx() empfohlen.
nFlags: An diesem Eingang wird der zweite Teil der Adressierung der geforderten IPC Diagnosedaten angegeben.
nSubIndex: An diesem Eingang wird der dritte Teil der Adressierung der geforderten IPC Diagnosedaten angegeben.
Der Subindex entspricht auch der Tabellenzeile im MDP Informationsmodell.
pBuffer: An diesem Eingang wird die Speicheradresse des Datenpuffers angegeben. Dort werden bei erfolgreicher Abfrage die empfangenen Daten abgelegt.
nBufferSize: An diesem Eingang wird die Länge in Byte des Datenpuffers angegeben.
tTimeout: Gibt eine maximale Zeitdauer für die Ausführung des Funktionsbausteines an.
sNetId: 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
bValid : BOOL;
bBusy : BOOL;
bError : BOOL;
hrErrorCode : HRESULT;
ipErrorMessage : I_TcMessage;
nCount : UDINT; (* returns the number of bytes received *)
END_VAR
bValid: Dieser Ausgang ist TRUE, sofern bBusy=FALSE und bError=FALSE sind.
bBusy: Dieser Ausgang ist TRUE, solange der Funktionsbaustein aktiv ist.
bError: Wird TRUE, sobald eine Fehlersituation eintritt.
hrErrorCode: Liefert bei einem gesetzten bError-Ausgang einen Fehlercode.
ipErrorMessage: Liefert bei einem gesetzten bError-Ausgang detaillierte Informationen. Der hierzu verwendete Schnittstellenzeiger ist immer gültig (ungleich Null) und vom Typ I_TcMessage. Insbesondere ist der entsprechende Fehler im PLC-OnlineView sofort als Klartext zu sehen.
nCount: Dieser Ausgang gibt die Anzahl der gelesenen Bytes an.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.7 | IPC oder CX (x86, x64, ARM) | Tc3_IPCDiag |