FB_MDP_ReadModuleContent

FB_MDP_ReadModuleContent 1:

Der Funktionsbaustein ermöglicht das Abfragen des Inhaltes eines MDP Moduls.

VAR_INPUT

VAR_INPUT
    bExecute        : BOOL;
    stMDP_DynAddr   : ST_MDP_Addr;            (* includes the dynamic module type for which the module content is requested. All subindexes of the chosen table are requested. *)
    iSubIdxCount    : USINT;                (* the number of SubIndexes to be requested *)
    pDstBuf         : POINTER TO BYTE;              (* Contains the address of the buffer for the received data. *)
    cbDstBufLen     : UDINT;                (* Contains the max. number of bytes to be received. *)
    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.

stMDP_DynAddr

An diesem Eingang wird die MDP Adressierung angegeben, welche zu dem gewählten Modul gehört. Die Struktur ist vom Typ ST_MDP_Addr. Die dynamische Modul ID muss bereits mit übergeben werden.

iSubIdxCount

Mit dem Eingang iSubIdxCount wird angegeben, wie viele Subindizes der gewählten Table ID abgefragt werden sollen.

pDstBuf

An diesem Eingang wird die Speicheradresse des Datenpuffers angegeben. Dort werden bei erfolgreicher Abfrage die empfangenen Daten abgelegt.

cbDstBufLen

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.

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 anderern Computer zu richten kann hier dessen AMS Net Id angegeben werden.

VAR_OUTPUT

VAR_OUTPUT
    bBusy        : BOOL;
    bError       : BOOL;     (* indicates if Read was successfull or not *)
    nErrID       : UDINT;
    iErrPos      : USINT;
    arrStartIdx  : ARRAY[0..255] OF UINT;    (* startindexes in bytes of each subindex element *)
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.

iErrPos

Falls ein Fehler auftrat und sich dieser auf ein einzelnes Element bezieht, gibt dieser Ausgang die Position (Subindex des Elementes) an, an welcher zuerst ein Fehler auftrat.

arrStartIdx

Dieses Array beschreibt, wie die einzelnen abgefragten Subindizes in dem Puffer abgelegt wurden.
Der Arrayindex null gibt die Position in Bytes an bei welcher die Daten des Subindex null im Puffer beginnen. Folgende Subindizes sind analog behandelt.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS Bibliotheken

TwinCAT v2.11.0 Build >= 1541

PC oder CX (x86, ARM)

TcMDP.Lib