GX IEC Developer Variablenadresse in FB übernehmen

Andrax

Level-1
Beiträge
84
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich bin neu hier im Forum und habe folgendes Problem.
Ich programiere gerade mit GX IEC Developer an einer CPU der Mitsubishi A-Serie (A2USH) und möchte
ein FB für eine immer wiederkehrende Funktion erstellen.
An VAR_INPUT will ich eine Variable übergeben, die ich innerhalb der FB indiziere und weiterverarbeiten möchte.

Bsp:

D100 --> FB --> D100Z0 (Z0 wäre hier 10) = D110 ---> usw.

Mein Problem ist aber, dass nicht die Variable übergeben wird sondern dessen Inhalt (D100 = 12354 -->FB --> 12354).

Kann mir jemand Helfen ?

vielen Dank im Voraus.
 
Hallo Andrax,

ich würde es bei GX IEC Developer nicht wie bei GX Developer mit den realen
Indexregistern Z machen, sondern mit den Funktionen OUTEX_M und INDEX_M.

Schau Dir diese beide mal in der Onlinehilfe an … F1 :rolleyes:

Für Dein Beispiel …

OUTEX_M
10 = Offset
0 = Gain
Datenwort1 ( als globale INT = D100 ) = Value

D100 = Opd

Das bedeutet dann, dass der INT Wert aus Datenwort1 (D100) auch in D110 landet. Und mit Variablen
für Offset und Gain kannst Du das dann auch in einem eigenen FB variabel
programmieren. Und um dann aus dem Inhalt die absolute Adresse zu adressieren
musst Du INDEX_M und OUTEX_M für Deine Aufgabe kombinieren.

Viele Grüße
Heiko
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Heiko1N,

danke für den Tip, ich werds mir mal anschauen.
Wenn ich dich richtig verstanden habe, funktioniert das folgendermaßen:
[ Value + Offset] ---> Opd
[ D100 + 10 = Wert aus D110 ] ---> Opd
Korrekt ?
 
Hallo Andrax,

fast, ich habe mal ein Beispiel für INDEX_M und OUTEX_M angefügt und gemonitort. Dann wird es denke ich klar.

OUTEX.JPG

Tip. Das funktioniert nicht nur bei Integer Registern D wie hier, sondern auch für Bitregister, also X , Y , M .

Vielleicht hilft es Dir ja weiter.
 
Hallo Heiko1N

Ich hab mir beide Funktionen angeschaut
INDEX_M wäre genau das richtige.
Gibt es eine Möglichkeit bei Offset eine Variable einzusetzen ?
Ich will eine Stapelverarbeitung innerhalb der Funktion erreichen.
Im Prinzip so:
D100 > D200
D101 > D200
D102 > D200
Usw.

Das müsste dann folgendermaßen aussehen:

INDEX_M(Variable,K0,D100)

Oder die Gesamtfunktion innerhalb der FB:

WTOB_K_MD(TRUE,INDEX_M(Variable,K0,D100),K2,W0);

Dummerweise mag INDEX_M() keine Variablen.
Hast du eine Idee?
 
Zurück
Oben