FB_PMA_TaskTransfer_Send

Der Funktionsbaustein FB_PMA_TaskTransfer_Send kann verwendet werden, um Daten von einer langsamen Task zurück in eine schnelle Task zu übertragen. Dies kann erforderlich sein, wenn rechenintensive Algorithmen in eine langsame Task ausgelagert wurden und die Ergebnisse in einer anderen Task benötigt werden.

Zusammen mit dem Funktionsbaustein FB_PMA_TaskTransfer_Receive bildet er ein Bausteinpaar zum Senden und Empfangen von Daten. Die Daten werden nach jedem Aufruf der Call-Methode an einen Funktionsbaustein mit der Ziel-Analyse-ID übergeben.

Die Ausgangspuffer werden für die Funktionsbausteine bereitgestellt, deren ID in dem Array von Ziel-IDs eingetragen ist. Der zu initialisierende Puffer muss mindestens so groß sein wie die zu übermittelnden Daten.

Syntax

Definition:

FUNCTION BLOCK FB_PMA_TaskTransfer_Send
VAR_INPUT
    nOwnID            : UDINT;
    aDestIDs          : ARRAY[1..GVL_PMA.cMA_MaxDest] OF UDINT;
    nResultBuffers    : UDINT := 4;
    tTransferTimeout  : LTIME := LTIME#40US;
    stInitPars        : ST_PMA_TaskTransfer_InitPars;
END_VAR
VAR_OUTPUT
    bError            : BOOL;
    ipResultMessage   : I_TcMessage;
    bNewResult        : BOOL;
    nCntResults       : ULINT;
END_VAR

FB_PMA_TaskTransfer_Send 1: Eingänge

Die Eingangsparameter dieses Bausteins repräsentieren Initialisierungsparameter und müssen bereits bei der Deklaration der Funktionsbausteininstanz zugewiesen werden (alternativ: Init-Methode). Sie dürfen nur einmal zugewiesen werden. Eine Änderung zur Laufzeit ist nicht möglich.

Name

Typ

Beschreibung

nOwnID

UDINT

Identifiziert die Bausteininstanz mit einer eindeutigen ID. Diese muss immer größer als null sein. Eine bewährte Vorgehensweise ist die Definition einer Enumeration für diesen Zweck.

aDestIDs

ARRAY[1..GVL_PMA.cMA_MaxDest] OF UDINT

Die Daten des Bausteins werden an die hier als Array angegebenen IDs der Bausteininstanzen vom Typ FB_PMA_TaskTransfer_Receive weitergeleitet.

nResultBuffers

UDINT 

Anzahl von MultiArray-Puffern, die für die Ergebnisse initialisiert werden.

tTransferTimeout

LTIME

Einstellung des synchronen Timeout für interne MultiArray-Weiterleitungen. Siehe Parallelverarbeitung im Transfer Tray.

stInitPars

ST_PMA_TaskTransfer_InitPars

Bausteinspezifische Struktur mit Initialisierungsparametern. Die Parameter müssen mit der Definition der Ein- und Ausgangspuffer übereinstimmen.

FB_PMA_TaskTransfer_Send 2: Ausgänge

Name

Typ

Beschreibung

bError

BOOL

TRUE, falls ein Fehler auftritt.

ipResultMessage

I_TcMessage

Das Interface bietet detaillierte Informationen über den Rückgabewert.

bNewResult

BOOL

TRUE, sobald neue Ergebnisse bereitgestellt wurden.

nCntResults

ULINT

Zählwert wird bei neuen Ausgangsdaten inkrementiert.

FB_PMA_TaskTransfer_Send 3: Methoden

Name

Beschreibung

Call

Die Methode wird in jedem Zyklus aufgerufen, um die Werte in den Ausgangspuffer zu schreiben.

Init

Alternative zur Bausteininitialisierung

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT v3.1.4024.0

PC oder CX (x86, x64)

Tc3_PowerMonitoring