S7 "lokale" Variablendeklaration in FB/FC Baustein

halorenzen

Well-known member
Registriert
6 Oktober 2003
Beiträge
47
Punkte Reaktionen
2
Zuviel Werbung?
->Hier kostenlos registrieren
:?: Hallo !

kann ich "nur" über die tempor. Variablen innerhalb eines FC/FB&s
auf die einzelnen Bits eines Wortes zugreifen ohne Schmiermerker
zu nutzen ?


IN - EWort - WORD
out - AUSGANG - BOOL
---------------------------------
L #EWort
T MW 200 / Umweg über Schmiermerker.....

U M 200.x
= #AUSGANG
----------------------------------------------------
 

Onkel Dagobert

Well-known member
Registriert
6 Oktober 2003
Beiträge
4.823
Punkte Reaktionen
872
z.Bsp. über Adressregister

Code:
//*** Adressregister sichern
      TAR1  #ar1_sp                     //ar1_sp: AR1 Zwischenspeicher

//*** AR1 auf EWord
      L     P##EWord
      LAR1
      U      [AR1,P#0.x]
      =     #AUSGANG

//*** Adressregister restaurieren
      LAR1  #ar1_sp                     //ar1_sp: AR1 Zwischenspeicher

Über den Umgang mit AR1 und AR2 unbedingt nachlesen (online-Hilfe)
 

Zottel

Well-known member
Registriert
19 Juni 2003
Beiträge
2.299
Punkte Reaktionen
277
Zuviel Werbung?
->Hier kostenlos registrieren
Re: S7 "lokale" Variablendeklaration in FB/FC Baus

halorenzen schrieb:
:?: Hallo !

IN - EWort - WORD
out - AUSGANG - BOOL
---------------------------------
L #EWort // Das ist ein Parameter, keine Lokalvariable
T MW 200 / Umweg über Schmiermerker.....

U M 200.x
= #AUSGANG
----------------------------------------------------
Code:
L #EWort	// Das ist ein Parameter, keine Lokalvariable
T LW 0           	// Das ist eine Lokalvariable
U L 0.7		// oder welches Bit Du willst
= #AUSGANG
Hier ersetzt die Lokalvariable (die du definieren must, damit Speicher für die Gesamtgrösse der Lokalvariablen reserviert werden kann) das Schmiermerkerwort.
Wenn Du die Variable als Wort definierst und ihr einen Namen gibst, sieht es so aus:
Code:
L #EWort	// Das ist ein Parameter, keine Lokalvariable
T #MeineLokalVariable       	// Das ist eine Lokalvariable
U L 0.7			// hier kommt der Name nicht vor
			// weil für das Bit keiner definiert ist
= #AUSGANG
 
Oben