Structur an FB-Eingang --> Wie ist das Pointerformat ?

plc_tippser

Level-1
Beiträge
2.500
Reaktionspunkte
308
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich einen IO vom Datentyp Struct deklariere und diesen mit eienm Zeiger auf einen DB lege, dann habe ich einen 6 Byte großen IO.

Im ersten Wort steht die DB-Nr
Code:
L p##EinAusgang
LAR1

L W[AR1,P#0.0]
T DB_Nr

Aber, wo steht die Anfangsadresse, also der Offset im DB?

pt
 
Hallo pt,

wenn du die nächsten 4 Byte des DB-Pointers lädst
Code:
L     D [AR1,P#2.0]
..dann lädst du den Bereichszeiger, in dem deine Startadresse wie folgt steht.

  • 00000000_00000yyy_yyyyyyyy_yyyyyxxx

    x - Bitadresse
    y - Byteadresse

Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das dachte ich auch, aber da steht eigentlich nicht das drin, was ich suche, obwohl der Abstand (16Byte)zwischen den beiden Structuren in den Adressen zu finden ist, aber halt nicht die absolute Adresse.

Ich probier noch mal.

Gruß pt
 
Geht doch. Ich hätte schwören können, dass ich die Bit´s links vorher auch schon mal rausgeschoben habe.

Nu denn, danke sagt pt
 
...obwohl der Abstand (16Byte)zwischen den beiden Structuren in den Adressen zu finden ist...
Die Datenlänge der Struktur stände bei einem ANY-Pointer (10Byte) im zweiten Wort. Als was ist der Parameter denn deklariert, Pointer oder ANY?


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Onkel Dagobert schrieb:
...obwohl der Abstand (16Byte)zwischen den beiden Structuren in den Adressen zu finden ist...
Die Datenlänge der Struktur stände bei einem ANY-Pointer (10Byte) im zweiten Wort. Als was ist der Parameter denn deklariert, Pointer oder ANY?


Gruß, Onkel

Ich hatte die EingangsVar als Structur deklariert. Also bekomme ich das Pointerformat. Das kenne ich, umso mehr war ich gestern verwundert, das ich nicht die richtige Adr. bekam. Aber wahrscheinlich habe ich beim ausmaskieren einen Fehler gehabt. Mit ANY habe ich es auch schon probiert, hat den Vorteil, dass ich die Länge der Structur mitbekomme.

Ich bin mir im Augenblick nicht sicher wie ich das aktuelle Problem angehe. Ich habe fertige Bausteine mit IO-Parametern vom Typ WORD. Diesen Baustein rufe ich in einem FB auf, der später mehrfach benutzt wird. Als IO an dem FB soll eine große Structur übergeben werden. Nun habe ich aber das Problem, das ich dann die Unterstrukturen erst wieder suchen muss. Ich kann ja leider nicht wie in einer Hochsprache dynamisch arbeiten. L P##Daten.Befehl geht ja nicht.

Ich denke ich leite die IO direkt auf IO weiter. Gibt zwar ne mörder SChnittstelle,, aber erleichtert die Sache ungemein.

Gruß pt
 
Hallo,

mal wieder 'ne Frage in den Raum stell.

Was unterscheidet eigentlich den Parametertyp "Struct" vom Parametertyp "Pointer" ?


Gruß, Onkel
 
Das Format Pointer gibt es eingentlich nur zum "Durchreichen" an einen FB, SFC etc, der einen Pointer als Eingangsparameter nutzt. (Etwa so bei Siemens in der Hilfe gelesen).
 
Zurück
Oben