Ausgangsbytes variabel gestalten

*Asterix*

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute....

ich bin neu hier und hab natürlich gleich ein Problem, bei dem ihr mir sicherlich helfen könnt.

Zur Zeit versuche ich die Ausgangsadressen (Ausgangsbytes), die in der Hardwarekonfiguration ja frei definiert werden können,
innerhalb meines Programms variable zu gestalten....das bekomme ich einfach nicht hin.

Also z.B. wenn die Ausgangsadresse 10...13 wäre dann lautet der Code ja so:

L B#16#01
T AB 10

L B#16#02
T AB 11

L B#16#03
T AB 12

L B#16#04
T AB 13

Jetzt ist es aber so, dass dieser Ausgangsbereich sich für meine Kundschaft immer ändert, und ich aber nicht möchte, dass man im Code selbst die dann gültigen Adressen eingibt, sondern, dass sie als Eingangsparameter meines FB's eingegeben werden können.

Also z.B. so was irgendwie

L B#16#01
T AB #variable1 (Ausgangsadresse 1 Hardwarekonfiguration)

L B#16#02
T AB #variable2 (Ausgangsadresse 2 Hardwarekonfiguration)

das funktioniert aber nicht.

Hat jemand ne Idee?

Vielen dank schonmal.

*Asterix*
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So gesehen wie im Eingangspost ist das doch eigentlich eine ordinäre OUT-Variable des FBs.
Am FB-Aufruf steht dann das konkrete AB. Dadurch hat man noch einen kleinen aber feinen Vorteil, das das ganze dann auch in den Querverweisen auftaucht.

Mfg
Manuel
 
Hallo Ralle,

das hier klappt ja soweit ganz gut

L 30
SLD 3
LAR1 // ergibt einen pointer von P#30.0 in adressregister1
L MW [AR1,P#0.0] // lädt das mw30

aber mein Wert, den ich vorher geladen hatte ist dann überschrieben und wird nicht mehr transferiert.

Ich wollte es so machen:


// das ist mein Wert, der auf AB xxx geschrieben werden soll

L #DSP_Line1_ser_addr_low // serial Address low Byte



// das ist die Variable, des Ausgangsbytes also xxx

L #Hardware_config_out1

SLD 3
L 8
/I
LAR1
T AB [AR1,P#0.0]

wie gesagt, der untere Teil funktioniert aber irgendwie steh ich voll auf dem Schlauch.

Ich will eigentlich nur einen x beliebigen Wert in einen variablen Ausgang schreiben.
Und der variable Ausgang ist deshalb variabel, weil er von der Hardwarekonfiguration abhängt und
er immer ein anderer ist.
 
Die Ausgangsbytes an FB/FC-Outputs anschließen und dann so:
Code:
L B#16#01
T #out_variable1 (Ausgangsadresse 1 Hardwarekonfiguration)

L B#16#02
T #out_variable2 (Ausgangsadresse 2 Hardwarekonfiguration)
Code:
CALL "MyFunc"
  out_variable1:=AB11
  out_variable2:=AB12


Oder so (siehe Step7-Hilfe "speicherindirekte Adressierung") - für diese Variante wird der Programmierer aber üblicherweise gesteinigt:
Code:
L B#16#01
T AB [#variable1] (Ausgangsadresse 1 Hardwarekonfiguration)

L B#16#02
T AB [#variable2] (Ausgangsadresse 2 Hardwarekonfiguration)

Harald
 
Zurück
Oben