FB_CMA_Sink
Dieser Funktionsbaustein schreibt Daten aus einem MultiArray Puffer in einen externen SPS Datenpuffer.
Er erhält alle MultiArrays, die an die angegebene Analyse-ID übergeben werden. Je nach Analysekette können die Ausgangsergebnisse NaN Werte enthalten.
Hinweis | |
Exception Vergleiche mit NaN (Not a Number) können eine Exception verursachen, die zu einem Ausführungsstopp führt und möglicherweise einen Maschinenschaden verursachen. Es wird strengstens empfohlen, das Ergebnis für NaN zu überprüfen, bevor es verarbeitet wird. Oder wenn NaNs in der Anwendung abgearbeitet werden sollen, müssen die Floating Point Exceptions für diese Task deaktiviert werden. |
Ein- und Ausgänge
Eingangsparameter
Die Eingangsparameter dieses Bausteins repräsentieren Initialisierungsparameter und müssen bereits bei der Deklaration der FB Instanz zugewiesen werden! (Alternativ: Init()-Methode). Sie dürfen nur einmalig zugewiesen werden. Eine Änderung zur Laufzeit ist nicht möglich.
VAR_INPUT
nOwnID : UDINT; // ID for this FB instance
tTransferTimeout : LTIME := LTIME#40US; // timeout checking off during access to inter-task FIFOs
END_VAR
nOwnID
: 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.tTransferTimeout
: Einstellung des synchronen Timeout für interne MultiArray Weiterleitungen. Siehe Kapitel Parallelverarbeitung.
Ausgangsparameter
VAR_OUTPUT
bError : BOOL; // TRUE if an error occurs. Reset by next method call.
hrErrorCode : HRESULT; // '< 0' = error; '> 0' = info; '0' = no error/info
ipErrorMessage : I_TcMessage := fbErrorMessage; // Shows detailed information about occurred errors, warnings and more.
nCntResults : ULINT; // Counts outgoing results (MultiArrays were calculated and sent to transfer tray).
END_VAR
-
bError
: Der Ausgang istTRUE
, falls ein Fehler auftritt. -
hrErrorCode
: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom TypHRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert. -
ipErrorMessage
: Beinhaltet nähere Informationen zum aktuellen Rückgabewert. Siehe hierzu den Abschnitt Fehlerbeschreibung und Information. Für diesen speziellen Schnittstellenzeiger ist intern sichergestellt, dass er immer gültig/zugewiesen ist.
Eigenschaften
Folgende Eigenschaften geben Informationen zu den zur letzten Ergebnisausgabe zugehörigen Eingangswerten der Analysekette. Siehe hierzu auch die mögliche Parametrierung am FB_CMA_Source.
Name | Typ | Zugriff | Beschreibung |
---|---|---|---|
nSourceTimestampNewest | ULINT | Get | Zugehörig zur letzten Ergebnisausgabe, gibt dies den Zeitstempel des neuesten Eingangswertes der Analysekette aus. |
nSourceTimestampOldest | ULINT | Get | Zugehörig zur letzten Ergebnisausgabe, gibt dies den Zeitstempel des ältesten Eingangswertes der Analysekette aus. |
nSourceValues | ULINT | Get | Zugehörig zur letzten Ergebnisausgabe, gibt dies die Anzahl der Eingangswerte (Signalwerte) der Analysekette aus. |
tSourceTimespan | LTIME | Get | Zugehörig zur letzten Ergebnisausgabe, gibt dies die Zeitspanne der Eingangswerte (Signalwerte) der Analysekette aus. |
Methoden
Output1D():
Schreibt Daten von einem MultiArray in einen externen eindimensionalen Datenpuffer. Der Baustein wartet auf Eingangsdaten, sofern die Methode weder neue Ergebnisse noch einen Fehler angibt. Dies ist ein reguläres Verhalten im Ablauf der Analysekette.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD Output1D : HRESULT
VAR_INPUT
pDataOut : POINTER TO BYTE; // address of data buffer
nDataOutSize : UDINT; // size of data buffer in bytes
eElementType : E_MA_ElementTypeCode;
nWorkDim : UDINT:=0; // It designates the dimension in the MultiArray being processed.
nElements : UDINT:=0; // optional: default:0->full copy; It designates the number of elements to be copied out of the MultiArray.
pStartIndex : POINTER TO UDINT; (* optional: default:0->internally handled as [0,0,..];
It designates the index of the first element to be copied out of the MultiArray.
If allocated it must point to a onedimensional array of UDINT with so many elements as dimensions of the MultiArray. *)
nOptionPars : DWORD; // option mask
END_VAR
VAR_OUTPUT
bNewResult : BOOL; // TRUE every time when data was written from MultiArray to data buffer.
bError : BOOL; // TRUE if an error occurs.
hrErrorCode : HRESULT; // '< 0' = error; '> 0' = info; '0' = no error/info
END_VAR
eElementType
: Dieser Eingang ist vom Typ E_MA_ElementTypeCode. Der Elementtyp des gegebenen MultiArray Puffers muss mit dem Elementtyp des angegebenen externen Datenpuffers übereinstimmen.nWorkDim
: Gibt die Dimension des zu verarbeitenden MultiArrays an. Diesen Daten werden in den angegebenen externen Datenpuffer kopiert. Im Allgemeinen ist das MultiArray auch eindimensional undnWorkDim:=0
, aber das MultiArray kann auch zusätzliche Dimensionen haben, die dann aber nicht kopiert werden dürfen.nElements
: Gibt die Anzahl Elemente an, die aus dem MultiArray zu kopieren sind.nElements:=0
ist einzustellen, um alles zu kopieren. Wenn Sie allerdings nur an einer bestimmten Bandbreite Ihres Ergebnisses interessiert sind, dann ist es nicht notwendig, die gesamte Datenmenge zu kopieren. Dies verringert ebenfalls die notwendige Größe Ihres angegebenen externen Datenpuffers.pStartIndex
: Dies ist ein optionaler Parameter, der nützlich ist, wenn das MultiArray mehr als eine Dimension hat oder wenn nicht alle Elemente kopiert werden sollen. Gibt den Index des ersten Elements an, das aus dem MultiArray zu kopieren ist. Wenn zugewiesen, dann muss es auf ein eindimensionales Array vonUDINT
zeigen, das so viele Elemente hat, wie das MultiArray Dimensionen hat.bNewResult
: Dieser Ausgang ist jedes MalTRUE
, wenn ein neues Ergebnis erfolgreich in den Datenpuffer geschrieben wurde.bError
: Dieser Ausgang istTRUE
, wenn ein Fehler auftritt.hrErrorCode
: Tritt ein Fehler auf, dann wird ein beschreibender Fehlercode vom TypHRESULT
angezeigt. Mögliche Werte sind in der Liste der Fehlercodes definiert. Dieser Ausgang ist gleich dem Rückgabewert der Methode.
Tipp: Wenn ein Timeout auftritt, gehen die Eingangsdaten nicht verloren. Sie werden beim nächsten Aufruf verarbeitet.
Output1DStd():
Schreibt Daten von einem MultiArray in einen externen eindimensionalen Datenpuffer. Der Baustein wartet auf Eingangsdaten, sofern die Methode weder neue Ergebnisse noch einen Fehler angibt. Dies ist ein reguläres Verhalten im Ablauf der Analysekette.
Diese Methode verwendet Standardwerte für die Parameter nWorkDim:=0
, nElements:=0
und pStartIndex:=0
.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD Output1DStd : HRESULT
VAR_INPUT
pDataOut : POINTER TO BYTE; // address of data buffer
nDataOutSize : UDINT; // size of data buffer in bytes
eElementType : E_MA_ElementTypeCode;
nOptionPars : DWORD; // option mask
END_VAR
VAR_OUTPUT
bNewResult : BOOL; // TRUE every time when data was written from MultiArray to data buffer.
bError : BOOL; // TRUE if an error occurs.
hrErrorCode : HRESULT; // '< 0' = error; '> 0' = info; '0' = no error/info
END_VAR
eElementType
: Dieser Eingang ist vom Typ E_MA_ElementTypeCode. Der Elementtyp des gegebenen MultiArray Puffers muss mit dem Elementtyp des angegebenen externen Datenpuffers übereinstimmen.bNewResult
: Dieser Ausgang ist jedes MalTRUE
, wenn ein neues Ergebnis erfolgreich in den Datenpuffer geschrieben wurde.bError
: Dieser Ausgang istTRUE
, wenn ein Fehler auftritt.hrErrorCode
: Tritt ein Fehler auf, dann wird ein beschreibender Fehlercode vom TypHRESULT
angezeigt. Mögliche Werte sind in der Liste der Fehlercodes definiert. Dieser Ausgang ist gleich dem Rückgabewert der Methode.
Tipp: Wenn ein Timeout auftritt, gehen die Eingangsdaten nicht verloren. Sie werden beim nächsten Aufruf verarbeitet.
Output2D():
Schreibt Daten von einem MultiArray in einen externen zweidimensionalen Datenpuffer. Wird die Methode weder mit einem Hinweis auf neues Ergebnis, noch mit einem Fehler zurückgegeben, dann wartet das Objekt auf Eingangsdaten. Das ist ein reguläres Verhalten in der Analysekette.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD Output2D : HRESULT
VAR_INPUT
pDataOut : POINTER TO BYTE; // address of data buffer
nDataOutSize : UDINT; // size of data buffer in bytes
eElementType : E_MA_ElementTypeCode;
nWorkDim0 : UDINT:=0; // It designates the first dimension in the MultiArray being processed.
nWorkDim1 : UDINT:=1; // It designates the second dimension in the MultiArray being processed.
nElementsDim0 : UDINT:=0; // optional: default:0->full copy; It designates the number of elements to be copied out of WorkDim0 of the MultiArray.
nElementsDim1 : UDINT:=0; // optional: default:0->full copy; It designates the number of elements to be copied out of WorkDim1 of the MultiArray.
pStartIndex : POINTER TO UDINT; (* optional: default:0->internally handled as [0,0,..];
It designates the index of the first element to be copied out of the MultiArray.
If allocated it must point to a onedimensional array of UDINT with so many elements as dimensions of the MultiArray. *)
nOptionPars : DWORD; // option mask
END_VAR
VAR_OUTPUT
bNewResult : BOOL; // TRUE every time when data was written from MultiArray to data buffer.
bError : BOOL; // TRUE if an error occurs.
hrErrorCode : HRESULT; // '< 0' = error; '> 0' = info; '0' = no error/info
END_VAR
pDataOut
: Adresse des externen zweidimensionalen Datenpuffers.eElementType
: Dieser Eingang ist vom Typ E_MA_ElementTypeCode. Der Elementtyp des gegebenen MultiArray Puffers muss mit dem Elementtyp des angegebenen externen Datenpuffers übereinstimmen.nWorkDim0
: Gibt die erste Dimension des zu verarbeitenden MultiArray an. Diesen Daten werden in die erste Dimension des angegebenen externen Datenpuffers kopiert. Im Allgemeinen ist das MultiArray auch zweidimensional undnWorkDim0:=0
, aber das MultiArray kann auch zusätzliche Dimensionen haben, die dann aber nicht kopiert werden dürfen.
Z.B.: Wenn die zweite Dimension in den ersten Index des Zieldatenpuffers kopiert werden soll, dann setzen SienWorkDim0:=1
.nWorkDim1
: Gibt die zweite Dimension des zu verarbeitenden MultiArray an. Diesen Daten werden in die zweite Dimension des angegebenen externen Datenpuffers kopiert. Im Allgemeinen ist das MultiArray auch zweidimensional undnWorkDim1:=1
, aber das MultiArray kann auch zusätzliche Dimensionen haben, die dann aber nicht kopiert werden dürfen.
Z.B.: Wenn die erste Dimension in den zweiten Index des Zieldatenpuffers kopiert werden soll, dann setzen SienWorkDim1:=0
.nElementsDim0
: Gibt die Anzahl Elemente an, die ausnWorkDim0
des MultiArrays zu kopieren sind.nElementsDim0:=0
ist einzustellen, um alles zu kopieren. Wenn Sie allerdings nur an einer bestimmten Bandbreite Ihres Ergebnisses interessiert sind, dann ist es nicht notwendig, die gesamte Datenmenge zu kopieren. Dies verringert ebenfalls die notwendige Größe Ihres angegebenen externen Datenpuffers.nElementsDim1
: Gibt die Anzahl Elemente an, die ausnWorkDim0
des MultiArrays zu kopieren sind.nElementsDim1:=0
ist einzustellen, um alles zu kopieren. Wenn Sie allerdings nur an einer bestimmten Bandbreite Ihres Ergebnisses interessiert sind, dann ist es nicht notwendig, die gesamte Datenmenge zu kopieren. Dies verringert ebenfalls die notwendige Größe Ihres angegebenen externen Datenpuffers.pStartIndex
: Dies ist ein optionaler Parameter, der nützlich ist, wenn das MultiArray mehr als zwei Dimensionen hat oder wenn nicht alle Elemente kopiert werden sollen. Gibt den Index des ersten Elements an, das aus dem MultiArray zu kopieren ist. Wenn zugewiesen, dann muss es auf ein eindimensionales Array vonUDINT
zeigen, das so viele Elemente hat, wie das MultiArray Dimensionen hat.bNewResult
: Dieser Ausgang ist jedes MalTRUE
, wenn ein neues Ergebnis erfolgreich in den Datenpuffer geschrieben wurde.bError
: Dieser Ausgang istTRUE
, wenn ein Fehler auftritt.hrErrorCode
: Tritt ein Fehler auf, dann wird ein beschreibender Fehlercode vom TypHRESULT
angezeigt. Mögliche Werte sind in der Liste der Fehlercodes definiert. Dieser Ausgang ist gleich dem Rückgabewert der Methode.
Tipp: Wenn ein Timeout auftritt, gehen die Eingangsdaten nicht verloren. Sie werden beim nächsten Aufruf verarbeitet.
Output2DStd():
Schreibt Daten von einem MultiArray in einen externen zweidimensionalen Datenpuffer. Wird die Methode weder mit einem Hinweis auf neues Ergebnis, noch mit einem Fehler zurückgegeben, dann wartet das Objekt auf Eingangsdaten. Das ist ein reguläres Verhalten in der Analysekette.
Diese Methode verwendet Standardwerte für die Parameter nWorkDim0:=0
, nWorkDim1:=1
, nElementsDim0:=0
, nElementsDim1:=0
und pStartIndex:=0
.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD Output2DStd : HRESULT
VAR_INPUT
pDataOut : POINTER TO BYTE; // address of data buffer
nDataOutSize : UDINT; // size of data buffer in bytes
eElementType : E_MA_ElementTypeCode;
nOptionPars : DWORD; // option mask
END_VAR
VAR_OUTPUT
bNewResult : BOOL; // TRUE every time when data was written from MultiArray to data buffer.
bError : BOOL; // TRUE if an error occurs.
hrErrorCode : HRESULT; // '< 0' = error; '> 0' = info; '0' = no error/info
END_VAR
pDataOut
: Adresse des externen zweidimensionalen Datenpuffers.eElementType
: Dieser Eingang ist vom Typ E_MA_ElementTypeCode. Der Elementtyp des gegebenen MultiArray Puffers muss mit dem Elementtyp des angegebenen externen Datenpuffers übereinstimmen.bNewResult
: Dieser Ausgang ist jedes MalTRUE
, wenn ein neues Ergebnis erfolgreich in den Datenpuffer geschrieben wurde.bError
: Dieser Ausgang istTRUE
, wenn ein Fehler auftritt.hrErrorCode
: Tritt ein Fehler auf, dann wird ein beschreibender Fehlercode vom TypHRESULT
angezeigt. Mögliche Werte sind in der Liste der Fehlercodes definiert. Dieser Ausgang ist gleich dem Rückgabewert der Methode.
Tipp: Wenn ein Timeout auftritt, gehen die Eingangsdaten nicht verloren. Sie werden beim nächsten Aufruf verarbeitet.
Output3D():
Schreibt Daten von einem MultiArray in einen externen dreidimensionalen Datenpuffer. Wird die Methode weder mit einem Hinweis auf neues Ergebnis, noch mit einem Fehler zurückgegeben, dann wartet das Objekt auf Eingangsdaten. Das ist ein reguläres Verhalten in der Analysekette.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD Output3D : HRESULT
VAR_INPUT
pDataOut : POINTER TO BYTE; // address of data buffer
nDataOutSize : UDINT; // size of data buffer in bytes
eElementType : E_MA_ElementTypeCode;
nWorkDim0 : UDINT:=0; // It designates the first dimension in the MultiArray being processed.
nWorkDim1 : UDINT:=1; // It designates the second dimension in the MultiArray being processed.
nWorkDim2 : UDINT:=1; // It designates the third dimension in the MultiArray being processed.
nElementsDim0 : UDINT:=0; // optional: default:0->full copy; It designates the number of elements to be copied out of WorkDim0 of the MultiArray.
nElementsDim1 : UDINT:=0; // optional: default:0->full copy; It designates the number of elements to be copied out of WorkDim1 of the MultiArray.
nElementsDim2 : UDINT:=0; // optional: default:0->full copy; It designates the number of elements to be copied out of WorkDim2 of the MultiArray.
pStartIndex : POINTER TO UDINT; (* optional: default:0->internally handled as [0,0,..];
It designates the index of the first element to be copied out of the MultiArray.
If allocated it must point to a onedimensional array of UDINT with so many elements as dimensions of the MultiArray. *)
nOptionPars : DWORD; // option mask
END_VAR
VAR_OUTPUT
bNewResult : BOOL; // TRUE every time when data was written from MultiArray to data buffer.
bError : BOOL; // TRUE if an error occurs.
hrErrorCode : HRESULT; // '< 0' = error; '> 0' = info; '0' = no error/info
END_VAR
pDataOut
: Adresse des externen zweidimensionalen Datenpuffers.eElementType
: Dieser Eingang ist vom Typ E_MA_ElementTypeCode. Der Elementtyp des gegebenen MultiArray Puffers muss mit dem Elementtyp des angegebenen externen Datenpuffers übereinstimmen.nWorkDim0
: Gibt die erste Dimension des zu verarbeitenden MultiArray an. Diese Daten werden in die erste Dimension des angegebenen externen Datenpuffers kopiert. Im Allgemeinen ist das MultiArray auch zweidimensional undnWorkDim0:=0
, aber das MultiArray kann auch zusätzliche Dimensionen haben, die dann aber nicht kopiert werden dürfen.
Z.B.: Wenn die zweite Dimension in den ersten Index des Zieldatenpuffers kopiert werden soll, dann setzen SienWorkDim0:=1
.nWorkDim1
: Gibt die zweite Dimension des zu verarbeitenden MultiArray an. Diese Daten werden in die zweite Dimension des angegebenen externen Datenpuffers kopiert. Im Allgemeinen ist das MultiArray auch zweidimensional undnWorkDim1:=1
, aber das MultiArray kann auch zusätzliche Dimensionen haben, die dann aber nicht kopiert werden dürfen.
Z.B.: Wenn die erste Dimension in den zweiten Index des Zieldatenpuffers kopiert werden soll, dann setzen SienWorkDim1:=0
.nWorkDim2
: Gibt die dritte Dimension des zu verarbeitenden MultiArray an. Diese Daten werden in die dritte Dimension des angegebenen externen Datenpuffers kopiert. Im Allgemeinen ist das MultiArray auch dreidimensional undnWorkDim2:=2
, aber das MultiArray kann auch zusätzliche Dimensionen haben, die dann aber nicht kopiert werden dürfen.
Z.B.: Wenn die erste Dimension in den zweiten Index des Zieldatenpuffers kopiert werden soll, dann setzen SienWorkDim2:=0
.nElementsDim0
: Gibt die Anzahl Elemente an, die ausnWorkDim0
des MultiArrays zu kopieren sind.nElementsDim0:=0
ist einzustellen, um alles zu kopieren. Wenn Sie allerdings nur an einer bestimmten Bandbreite Ihres Ergebnisses interessiert sind, dann ist es nicht notwendig, die gesamte Datenmenge zu kopieren. Dies verringert ebenfalls die notwendige Größe Ihres angegebenen externen Datenpuffers.nElementsDim1
: Gibt die Anzahl Elemente an, die ausnWorkDim1
des MultiArrays zu kopieren sind.nElementsDim1:=0
ist einzustellen, um alles zu kopieren. Wenn Sie allerdings nur an einer bestimmten Bandbreite Ihres Ergebnisses interessiert sind, dann ist es nicht notwendig, die gesamte Datenmenge zu kopieren. Dies verringert ebenfalls die notwendige Größe Ihres angegebenen externen Datenpuffers.nElementsDim2
: Gibt die Anzahl Elemente an, die ausnWorkDim2
des MultiArrays zu kopieren sind.nElementsDim2:=0
ist einzustellen, um alles zu kopieren. Wenn Sie allerdings nur an einer bestimmten Bandbreite Ihres Ergebnisses interessiert sind, dann ist es nicht notwendig, die gesamte Datenmenge zu kopieren. Dies verringert ebenfalls die notwendige Größe Ihres angegebenen externen Datenpuffers.pStartIndex
: Dies ist ein optionaler Parameter, der nützlich ist, wenn das MultiArray mehr als zwei Dimensionen hat oder wenn nicht alle Elemente kopiert werden sollen. Gibt den Index des ersten Elements an, das aus dem MultiArray zu kopieren ist. Wenn zugewiesen, dann muss es auf ein eindimensionales Array vonUDINT
zeigen, das so viele Elemente hat, wie das MultiArray Dimensionen hat.bNewResult
: Dieser Ausgang ist jedes MalTRUE
, wenn ein neues Ergebnis erfolgreich in den Datenpuffer geschrieben wurde.bError
: Dieser Ausgang istTRUE
, wenn ein Fehler auftritt.hrErrorCode
: Tritt ein Fehler auf, dann wird ein beschreibender Fehlercode vom TypHRESULT
angezeigt. Mögliche Werte sind in der Liste der Fehlercodes definiert. Dieser Ausgang ist gleich dem Rückgabewert der Methode.
Tipp: Wenn ein Timeout auftritt, gehen die Eingangsdaten nicht verloren. Sie werden beim nächsten Aufruf verarbeitet.
Output3DStd():
Schreibt Daten von einem MultiArray in einen externen dreidimensionalen Datenpuffer. Wird die Methode weder mit einem Hinweis auf neues Ergebnis, noch mit einem Fehler zurückgegeben, dann wartet das Objekt auf Eingangsdaten. Das ist ein reguläres Verhalten in der Analysekette.
Diese Methode verwendet Standardwerte für die Parameter nWorkDim0:=0
, nWorkDim1:=1
, nWorkDim2:=2
, nElementsDim0:=0
, nElementsDim1:=0
, nElementsDim2:=0
und pStartIndex:=0
.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD Output3DStd : HRESULT
VAR_INPUT
pDataOut : POINTER TO BYTE; // address of data buffer
nDataOutSize : UDINT; // size of data buffer in bytes
eElementType : E_MA_ElementTypeCode;
nOptionPars : DWORD; // option mask
END_VAR
VAR_OUTPUT
bNewResult : BOOL; // TRUE every time when data was written from MultiArray to data buffer.
bError : BOOL; // TRUE if an error occurs.
hrErrorCode : HRESULT; // '< 0' = error; '> 0' = info; '0' = no error/info
END_VAR
pDataOut
: Adresse des externen zweidimensionalen Datenpuffers.eElementType
: Dieser Eingang ist vom Typ E_MA_ElementTypeCode. Der Elementtyp des gegebenen MultiArray Puffers muss mit dem Elementtyp des angegebenen externen Datenpuffers übereinstimmen.bNewResult
: Dieser Ausgang ist jedes MalTRUE
, wenn ein neues Ergebnis erfolgreich in den Datenpuffer geschrieben wurde.bError
: Dieser Ausgang istTRUE
, wenn ein Fehler auftritt.hrErrorCode
: Tritt ein Fehler auf, dann wird ein beschreibender Fehlercode vom TypHRESULT
angezeigt. Mögliche Werte sind in der Liste der Fehlercodes definiert. Dieser Ausgang ist gleich dem Rückgabewert der Methode.
Tipp: Wenn ein Timeout auftritt, gehen die Eingangsdaten nicht verloren. Sie werden beim nächsten Aufruf verarbeitet.
Init():
Üblicherweise ist diese Methode in einer Condition Monitoring Applikation nicht notwendig. Sie bietet eine Alternative zur Bausteininitialisierung. Die Init()
Methode darf nur während der Initialisierungsphase der SPS aufgerufen werden. Sie kann nicht während der Laufzeit verwendet werden. Es sei auf die Verwendung von einer FB_init
Methode oder dem Attribut 'call_after_init
' hingewiesen (siehe TwinCAT SPS Referenz). Hiermit wird zudem die Bausteinkapselung erleichtert.
Die Eingangsparameter der Bausteininstanz dürfen nicht bei der Deklaration zugewiesen werden, falls die Initialisierung mit der Init() Methode erfolgen soll.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD Init : HRESULT
VAR_INPUT
nOwnID: UDINT; // ID for this FB instance
END_VAR
nOwnID
: 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.
PassInputs():
Solange eine FB_CMA_Source
Instanz aufgerufen wird und somit Signaldaten zu einem Zielblock übertragen werden, müssen wie in der API SPS Referenz erläutert alle weiteren Blöcke der Analysekette zyklisch aufgerufen werden.
Manchmal ist es sinnvoll, einen Algorithmus für eine bestimmte Zeit nicht auszuführen. Beispielsweise sollten manche Algorithmen nur nach vorherigem Training bzw. Konfiguration ausgeführt werden. Zwar muss der Funktionsbaustein dennoch zyklisch aufgerufen werden, aber es ist ausreichend, wenn die am Baustein ankommenden Daten im Kommunikationsring weitergeleitet werden. Dies geschieht mittels der Methode PassInputs()
anstelle der Methode Call()
. Hierbei wird der Algorithmus selbst nicht aufgerufen und entsprechend kein Ergebnis berechnet sowie kein Ausgangspuffer generiert.
- Rückgabewert: Falls ein Fehler auftritt, wird ein entsprechender Fehlercode vom Typ
HRESULT
ausgegeben. Mögliche Werte sind in der Liste der Fehlercodes erläutert.
METHOD PassInputs : HRESULT
VAR_INPUT
END_VAR
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4022.25 | PC or CX (x86, x64) | Tc3_CM, Tc3_CM_Base, Tc3_MultiArray |