Herunterladen Inhalt Inhalt Diese Seite drucken

Beispiel-Baustein In Awl Zum Verändern Des Pointers - Siemens Simatic S7 Lite V3.0 Handbuch

Inhaltsverzeichnis

Werbung

Beispiel-Baustein in AWL zum Verändern des Pointers:
FUNCTION FC 3: BOOL
TITLE =Rangieren von Pointern
//Die FC 3 kann zum Verändern von Pointern verwendet werden.
AUTHOR : AUT1CS1
FAMILY : INDADR
NAME : ADRPOINT
VERSION : 0.0
VAR_INPUT
Bit_Byte : BOOL ;
Inc_Wert : INT ;
END_VAR
VAR_IN_OUT
Zeiger : DWORD ;
END_VAR
VAR_TEMP
Inc_Wert1 : INT ;
Zeiger1 : DWORD ;
Zw_Wert : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =
//Der Baustein fängt Veränderungen, welche die
//Bereichsinformationen des Zeigers
//verändern, oder zu "negativen" Pointern führen
//automatisch ab!
SET
R
L
T
L
T
U
Byteadressenoperation
SPB Byte;
L 7;
L
<I
S
SPB
L
<I
S
SPB
U
SPB
Programmieren mit STEP 7 Lite V3.0
A5E00293880-01
//0: Bitadresse, 1: Byteadresse
//Inkrement (wenn Wert neg. =>
//Dekrement/wenn Wert pos. =>
//Inkrement)
//der zu veränderten Pointer
//Zwischenwert Inkrement
//Zwischenwert Zeiger
//Hilfsvariable
;
//Setze VKE auf 1 und
#RET_VAL;
//setze Überlauf zurück
#Zeiger;
//Versorgen des temporären
#Zeiger1;
//Zwischenwertes Zeiger
#Inc_Wert;
//Versorgen des temporären
#Inc_Wert1;
//Zwischenwertes Inkrement
#Bit_Byte;
//wenn =1, dann
//Sprung zur Byteadressenberechnung
//Wenn Wert des Inkrementes > 7,
#Inc_Wert1;
;
#RET_VAL;
//dann setze RET_VAL und
Ende;
//springe zum Ende
-7;
//Wenn Wert des Inkrementes < -7,
;
#RET_VAL;
//dann setze RET_VAL und
Ende;
//springe zum Ende
L 1.3;
//wenn Bit 4 des Wertes = 1
//Inc_Wert neg) ist,
neg;
//dann springe zu Bitadressen-
//Subtraktion
Anhang
A-55

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis