PAW Adresse als IN Parameter

Pico1184

Level-2
Beiträge
332
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammne,

ich möchte einen Standart Baustein (Multiinstanz FB) schreiben welcher einen FU über einen Analogwert ansteuert.

Da die Adresse der Analogausgabe ja variieren kann möchte ich diese als IN Parameter an den Baustein übergeben und dann an den FC106 Unscale (OUT) hängen.

Mit welchem Datentyp kann ich dies realisieren??

Müsste ja eigentlich über einen ANY Pointer gehen????

Grüße Pico
 
Das kannst Du einfach mit indirekter Adressierung lösen.

Als in einen INT-Wert "z.B. Name: Adresse" deklarieren.
Intern umkopieren in eine lokale WORD-Variable.

L Adresse
T Adresse_lokal

L Analogwert
T PAW[Adresse_lokal]

fertig
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und warum so umständlich, und vor allem Querverweis-Feindlich?

Den OUT des FC106 schreibst du auf eine OUT-Var deines FB.

Welche Adresse du dann beim Aufruf des FB an den OUT-Parameter schreibst ist dann relativ unerheblich, kann aber natürlich auch ein PAW sein.

Mfg
Manuel
 
Hi Manuel,

unser TE möchte das Alles in einem Baustein haben.

Ich nutzte das auch so, ist doch nicht umständlich, sondern universell.

P.S.
Querverweis-Feindlich, dann darfst Du auch keine Pointer oder sonstige indirekte Adressierung nutzen!
 
Hi Manuel,

unser TE möchte das Alles in einem Baustein haben.

Ich nutzte das auch so, ist doch nicht umständlich, sondern universell.

P.S.
Querverweis-Feindlich, dann darfst Du auch keine Pointer oder sonstige indirekte Adressierung nutzen!

Bei nackten reinen Ein/Ausgängen bin ich auch absolut strickt gegen jede Form der indirekten Adressierung.

Was heißt hier alles in einem Baustein, und warum muss ich das deshalb so machen?

Code:
FB1

VAR_OUTPUT
  AW_Sollwert_FU : INT ;
END_VAR;

CALL FC106
   OUT := AW_Sollwert_FU

Code:
VAR
  Motor_1 : FB1 ;
  Motor_2 : FB1 ;
END_VAR;

Call Motor_1
   AW_Sollwert_FU := PAW100 

Call Motor_2
   AW_Sollwert_FU := PAW102

Einen Baustein für den Motor, und alles in der Querverweisliste ...

Mfg
Manuel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe das folgendermaßen gelöst:
Zwei IN für die Eingangs- und die Ausgangsadresse des Umrichters, jeweils vom Typ POINTER. Im Baustein frage ich dann den Speicherbereich ab, wenn es sich um E bzw A handelt lese bzw. schreibe ich direkt das entsprechende PEW / PAW.
Damit hat man dann auch alles in den Querverweisen.
 
Und warum so umständlich, und vor allem Querverweis-Feindlich?

Den OUT des FC106 schreibst du auf eine OUT-Var deines FB.

Welche Adresse du dann beim Aufruf des FB an den OUT-Parameter schreibst ist dann relativ unerheblich, kann aber natürlich auch ein PAW sein.

Mfg
Manuel

So hat das schon gepasst!

Danke euch!

Grüße Pico
 
Zurück
Oben