InstanzDB: IN(INT), Auswertung der Bits...

AndreK

Level-1
Beiträge
415
Reaktionspunkte
27
Hallo,
mal nachgefragt: Ich übergebe einem FB mit Instanz-DB ein INT, in dem Bits vom Bediensystem (HMI) bearbeitet werden.

Aus diesem INT möchte ich natürlich im FB intern die BITS "ziehen".

Ich habe das erstmal wie folgt gelöst:

L HMI_IN #(INT)
T TMP_INT #(INT) in den Lokalbereich (dort habe ich immer ein paar mit TMP markierte Pufferbereiche)

U L8.0 #Lokales Bit laden...
= HMI_BIT0 #und in den STAT Bereich schreiben
... nun noch die anderen...

Kann man das auch mit weniger Zeilen bzw. anders lösen?

Danke für euer Hirnschmalz ;-)
 
viel kürzer nicht aber schöner.
den lokaldatenbereich direkt anzusprechen ist nicht schön, da man den ganzen code versauen kann wenn man die schnittstelle ändert
im bild ist das im temp-bereich. funktioniert aber genauso im stat-bereich (test ist eine struct)
 

Anhänge

  • Zwischenablage02.gif
    5,9 KB · Aufrufe: 25
Erst mal danke für die Antwort.

Hab das mal umgesetzt. Passt auch... wobei:
1. Der TEMP Bereich fängt doch immmer mit 0 an, auch wenn man an der Schnittstelle was ändert...?
2. Blöd das man mit LAR1 P#xxxx nur im TEMP Bereich arbeiten kann, legt man das Struct im STAT an, geht PLCSIM auf CPU-Stop... ich habs halt gern zur beobachtung im STAT.
 

Wenn du Stat nimmst geht das auch aber dann mußt du statt

L LW[...
L DIW[...

schreiben.

Und Achtung bei Multiinstanzen,da muß dann evtl. nach das AR 2 dazu addiert werden.
 
1. Der TEMP Bereich fängt doch immmer mit 0 an, auch wenn man an der Schnittstelle was ändert...?
Ja. Aber die variable in die du transferierst mus ja nicht unbedingt die erste dort sein.
wenn du es über das ar machst ist es völlig egal wo die dort liegt da du ja mit L p##xxx die adresse ins ar lädst.

Ralle schrieb:
Und Achtung bei Multiinstanzen,da muß dann evtl. nach das AR 2 dazu addiert werden.
War das nicht andersrum? wenn er ar2 benutzt muss er was addieren
 
L p##statvar lädt in Multiinstanzen NICHT die tatsächliche Adresse, es muß AR2 addiert werden.
Hatten wir auch erst kürzlich.

Harald
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…