FB_ALY_BatchNShift_1Ch
Der BatchNShift 1Ch puffert die Werte des Eingangssignals entsprechend der Puffergröße und des Sample Modus. Die Anzahl der Ausgangskanäle, in denen die gepufferten Eingangswerte gespeichert werden, entspricht der Puffergröße. Mithilfe des Sample Modus kann zwischen zwei verschiedenen Betriebsarten des Algorithmus unterschieden werden. Wird der Sample Modus Flow gewählt, so wird ein Ringpuffer beziehungsweise Schieberegister realisiert (Shift). Die Werte werden jeweils nacheinander in den Puffer geschrieben und in jedem Zyklus um eine Stelle des Puffers verschoben. Ist der Puffer voll, fällt der letzte Wert heraus. Im Modus Wait wird der Puffer stattdessen immer dann, wenn er vollständig gefüllt ist, komplett geleert und mit neuen Werten befüllt, sodass die Werte in Form von Batches verarbeitet werden (Batch). Zu Beginn einer Analyse wird dabei ebenfalls zunächst gewartet, bis der Puffer vollständig komplett gefüllt ist, erst dann werden die Werte in den Puffer geschrieben. Daher liefert der Baustein erst ab dem Zyklus (BufferSize + 1) gültige Werte.
Syntax
Definition:
FUNCTION_BLOCK FB_ALY_BatchNShift_1Ch
VAR_OUTPUT
ipResultMessage: Tc3_EventLogger.I_TcMessage;
bError: BOOL;
bNewResult: BOOL;
bConfigured: BOOL;
END_VAR
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
ipResultMessage | Beinhaltet nähere Informationen zum aktuellen Rückgabewert. Für diesen speziellen Schnittstellenzeiger ist intern sichergestellt, dass er immer gültig/zugewiesen ist. | |
bError | BOOL | Der Ausgang ist |
bNewResult | BOOL | Wenn ein neues Ergebnis berechnet wurde, ist der Ausgang |
bConfigured | BOOL | Zeigt |
Methoden
Name | Definitionsort | Beschreibung |
---|---|---|
Call() | Local | Methode zur Berechnung der Ausgänge für eine bestimmte Konfiguration. |
Configure() | Local | Allgemeine Konfiguration des Algorithmus mit seinen parametrisierten Bedingungen. |
FB_init() | Local | Initialisieren der Anzahl der Ausgangskanäle (Größe des internen Puffers). |
GetChannelOutputValue() | Local | Methode für das Abholen von einzelnen Ausgangswerten aus dem Ausgangs-Array. |
GetOutputArray() | Local | Methode für das Abholen des gesamten Ausgangs-Arrays. |
Reset() | Local | Setzt alle internen Zustände oder die bisher durchgeführten Berechnungen zurück. |
SetChannelValue() | Local | Methode zur Übergabe von Werten an den Algorithmus. |
Beispiel
VAR
fbBatchNShift : FB_ALY_BatchNShift_1Ch(nBufferSize := 100);
eSampleMode : E_ALY_SampleMode := E_ALY_SampleMode.Flow;
bConfigure : BOOL := TRUE;
nInput : INT;
aBuffer : ARRAY[1..100] OF LREAL;
END_VAR
// Configure algorithm
IF bConfigure THEN
bConfigure := FALSE;
fbBatchNShift.Configure(eSampleMode);
END_IF
// Call algorithm
fbBatchNShift.SetChannelValue(nInput);
fbBatchNShift.Call();
fbBatchNShift.GetOutputArray(ADR(aBuffer), SIZEOF(aBuffer));
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x64, x86) | Tc3_Analytics |