FP_EXCHANGE

Daten austauschen

Dieser FP-Befehl tauscht den Inhalt der Variablen aus, die mit d1 und d2 verbunden sind, wenn der Trigger EN auf TRUE gesetzt ist.

Anmerkungen

  • Die Ein- und Ausgangsvariablen müssen vom gleichen Datentyp sein.

  • Die Operanden d1_Start und d2_End sollten wie folgt sein:

    • im gleichen Speicherbereich, z.B. DT, WR, FL, LD ...
    • d1_Start £ d2_End

Parameter

Ein-/Ausgang

d1 (INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT)

Variable, die mit d2 ausgetauscht werden soll

d2 (INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT)

Variable, die mit d1 ausgetauscht werden soll

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich
sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden.Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		bStart: BOOL:=FALSE;
			(*activates the function*)
		iValue_1: INT:=17;
			(*result after a 0->1 leading
edge from start: 24*)
		iValue_2: INT:=24;
			(*result after a 0->1 leading
edge from start: 17*)
	END_VAR

POE-Rumpf

Wenn die Variable bStart von FALSE auf TRUE gesetzt wird, wird die Funktion ausgeführt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_F,FP_EXCHANGE!,,13,1,21,6,,?DEN?Dd1?Ad1?Dd2?Ad2?AENO);
B(B_CONTACT,,bStart,5,2,7,4,R);
B(B_VARIN,,iValue_1,11,3,13,5,);
B(B_VARIN,,iValue_2,11,4,13,6,);
L(1,3,5,3);
L(7,3,13,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF DF(bStart) then
    FP_EXCHANGE(d1 := iValue_1, d2 := iValue_2);
END_IF;

Letzte Änderung am: 2020-04-24Feedback zu dieser SeitePanasonic Hotline