Word in struct

WinniePooh

Level-1
Beiträge
102
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo mal eine frage...

ich habe ein WORD als IN Parameter.
Möchte dies in in meinen Temp Parameter verschieben.
Dieser besteht aus einen STRUCT von 9 Bits.

Wie kann ich es am elegentesten Machen.

Habe mir was überlegt wie

Code:
L P##STATUSWORD
T P##STATUSSTRUCT

Ich weiß dass es nicht klappt... kenne mich nicht gut mit pointern in s7 aus...
kann mir da jemand helfen...
 
Code:
L P##STATUSSTRUCT          // Lädt das Struct als Pointer
LAR 1                                 // Verschiebt den Geladenen Struct aus dem AKKU1 in das Adressregister1
L #STATUSWORD                // Lädt das Statusword in den AKKU1
T LW[AR1, P#0.0]
// Transferiert das Statusword aus AKKU 1 auf den Zeiger für den STRUCT
// demzufolge beschreibt dieser den Stuct mit den Werten.

Könntest du mir nur noch sagen, wie genau das geladen wird... Bzw. ist meine erklärung richtig??
 
Hallo,
fast richtig ...

1. bildet einen Pointer auf die Quell-variable - in dem Fall die Struktur
2. lädt den Pointer in das AR1
3. lädt den Quellwert in den Akku 1 (wie von dir beschrieben)
4. überträgt den Inhalt von Akku1 in das Lokalwort, dass durch das AR1 adressiert wird / ist.

Gruß
Larry
 
und...
5. Somit beschreibe ich indirekt die Struktur.
.....
.....
Zurückwandeln tue ich es dann so....
Code:
L P##STATUSSTRUCT
LAR1
L P##STATUSWORD
T LW[AR1, P#0.0]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau, so lädst du dein Struct wieder in dein Word. Hier jetzt aber aufpassen, wenn dein Struct größer 2 Byte sein sollte, könnte es Probleme mit den "benachbarten" Variablen bei deinem WORD geben.
 
Hallo,
zurück wäre (abweichend von deinem letzten Code-Schnipsel) :
Code:
L P##STATUSSTRUCT
LAR1
L LW[AR1, P#0.0]
T #STATUSWORD

Zu beachten wäre hier, das die Bitnummern-Reihenfolge des WORD nicht mit der des Array's übereinstimmt.
Es kann/wird also so sein, dass bestimmte Bits deines WORD nicht in dem Array abgebildet werden - umgekehrt natürlich schon ...

Gruß
Larry
 
Zurück
Oben