LSR

Links-Schieberegister

Mit dem LSR-Befehl können Sie ein 16-Bit Schieberegister im Merkerbereich (d_WR) realisieren. Mit jeder steigenden Flanke am Takteingang ShiftLeftTrigger wird der Signalzustand am Dateneingang DataInput in das Bit 0 des Schieberegisters übernommen. Das vom LSR-Befehl dabei aus dem Schieberegister herausgeschobene Bit (aus Bit 15) geht verloren. Eine steigende Flanke am Eingang Reset setzt den Datenbereich auf 0 zurück.

Anmerkung
  • Der für diesen Befehl verfügbare Bereich ist nur der interner Doppelwortmerker (WR)

  • Der Bereich für die Wortregister (WR) von internen Merkern hängt von dem unter “Extras” > “Optionen” > “Compiler-Optionen” > “Adressbereiche” definierten freien Bereich ab.

Parameter

Eingang

DataInput (BOOL)

Gibt den Signalzustand zum Hineinschieben an.

  • Neuer Signalzustand = TRUE = 1: wenn der Eingang TRUE ist

  • Neuer Signalzustand = FALSE = 0: wenn der Eingang FALSE ist

ShiftLeftTrigger (BOOL)

Verschiebt 1 Bit nach links, wenn die steigende Flanke des Triggers erkannt wird

Reset (BOOL)

Setzt alle Bits des Datenbereichs auf 0, wenn der Trigger TRUE ist.

Ausgang

d_WR (WORD, INT, UINT)

Angegebener Datenbereich für die Datenverschiebung

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
		Output: INT:=0;
		DataInput: BOOL:=FALSE;
		ShiftTrigger: BOOL:=FALSE;
		ResetTrigger: BOOL:=FALSE;
	END_VAR

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,LSR!,Instance,10,0,20,5,,?DDataInput?DShiftLeftTrigger?DReset?Cd_WR);
B(B_VARIN,,DataInput,8,1,10,3,);
B(B_VARIN,,ShiftTrigger,8,2,10,4,);
B(B_VARIN,,ResetTrigger,8,3,10,5,);
B(B_VAROUT,,Output,20,1,22,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

Output:=LSR(DataInput, ShiftTrigger, ResetTrigger);

Letzte Änderung am: 2021-07-26Feedback zu dieser SeitePanasonic Hotline