FB_ALY_LogicOperationCounter
Der Logic Operation Counter führt eine logische Operation an den Werten von zwei oder mehr Kanälen aus und liefert das Ergebnis dieser logischen Operation. Dazu kann jeder Eingangswert mit einer Schwelle und einem Operator kombiniert werden. Des Weiteren können der logische Operator und der Zählmodus einzeln konfiguriert werden.
Syntax
Definition:
FUNCTION_BLOCK FB_ALY_LogicOperationCounter
VAR_INPUT
bPersistent: BOOL;
END_VAR
VAR_OUTPUT
ipResultMessage: Tc3_EventLogger.I_TcMessage;
bError: BOOL;
bNewResult: BOOL;
bConfigured: BOOL;
bOperationOut: BOOL;
nCount: ULINT;
fbTimeLastEvent: FB_ALY_DateTime;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
bPersistent | BOOL | Ist der Wert |
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 |
bOperationOut | BOOL | Ergebnis der logischen Operation. |
nCount | ULINT | Wird inkrementiert, wenn der Ausgangswert |
fbTimeLastEvent | FB_ALY_DateTime | Zeitstempel des letzten Wechsels von |
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 Eingangskanäle. |
ConfigureChannel() | Local | Kanalspezifische Konfiguration für den jeweiligen Algorithmus. |
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. |
Eigenschaften
Name | Typ | Zugriff | Definitionsort | Initialwert | Beschreibung |
---|---|---|---|---|---|
fTolerance | LREAL | Get, Set | Lokal | 0.0 | Toleranzwert für die Vergleiche Equal / NotEqual |
Beispiel
VAR
fbLogicOperationCounter : FB_ALY_LogicOperationCounter(nNumChannels := 3);
fbSystemTime : FB_ALY_GetSystemTime;
eLogicOperator : E_ALY_LogicOperator := E_ALY_LogicOperator.AND_;
eCountMode : E_ALY_CountMode := E_ALY_CountMode.OnChange;
stThresholdLevel : ARRAY[1..3] OF ST_ALY_Threshold :=
[(eComparisonOperator := E_ALY_ComparisonOperator.GreaterThan, fThreshold := 10),
(eComparisonOperator := E_ALY_ComparisonOperator.LessThan, fThreshold := 2),
(eComparisonOperator := E_ALY_ComparisonOperator.Equals, fThreshold := 1)];
bConfigure : BOOL := TRUE;
nInputCh1 : INT := 11;
fInputCh2 : LREAL := 1.5;
bInputCh3 : BOOL := TRUE;
END_VAR
// Configure algorithm
IF bConfigure THEN
bConfigure := FALSE;
fbLogicOperationCounter.ConfigureChannel(1, stThresholdLevel[1]);
fbLogicOperationCounter.ConfigureChannel(2, stThresholdLevel[2]);
fbLogicOperationCounter.ConfigureChannel(3, stThresholdLevel[3]);
fbLogicOperationCounter.Configure(eLogicOperator, eCountMode);
END_IF
// Get current system time
fbSystemTime.Call();
// Call algorithm
fbLogicOperationCounter.SetChannelValue(1, nInputCh1);
fbLogicOperationCounter.SetChannelValue(2, fInputCh2);
fbLogicOperationCounter.SetChannelValue(3, bInputCh3);
fbLogicOperationCounter.Call(fbSystemTime.tSystemTime);
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4024.0 | PC oder CX (x64, x86) | Tc3_Analytics |