FB_IPCDiag_WriteParameterByMdpIdx
In Einzelfällen kann dieser Funktionsbaustein als Alternative zum einfacheren FB_IPCDiag_WriteParameter genutzt werden, um beliebige Parameter der IPC Diagnose zu schreiben.
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 data to be written. *)
nBufferSize : UDINT; (* Contains the max. number of bytes to be written. *)
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, welcher die zu schreibenden Daten beinhaltet.
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
bBusy : BOOL;
bError : BOOL;
hrErrorCode : HRESULT;
ipErrorMessage : I_TcMessage;
END_VAR
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.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.7 | IPC oder CX (x86, x64, ARM) | Tc3_IPCDiag |