eine variable vom typ ANY kannst du doch aber dran schreiben, oder?
Hallo,
bei meiner Suche bin ich leider auf keine passende Lösung gestossen.
Ich möchte einen Datenbereich (als UDT im DB enthalten) aus DBx auf einen Bereich im gleichen DB speichern, der mit dem gleichen UDT angelegt ist. Die Startadresse der ersten Struktur übergebe ich als ANY an den FB. Jetzt möchte ich diese Struktur mit einem BLKMOV auf einen vorher angewählten Platz in dem DB speichern.
Der DB ist folgendermassen angelegt:
DB.Header. .............. diverse Daten, die Formatunabhängig sind
DB.FormatAktuell ...... aktuell gewählter Datensatz
DB.Format1 ............. Speicherplatz 1
.
.
.
DB:Formatn Speicherplatz n
Die Länge der Struktur kann von Maschine zu Maschine unterschiedlich sein, daher möchte ich keine festen Adressen verwenden, sondern das Ganze über Zeiger verwalten.
Ich weiss, daß ich beim ANY die einzelnen Bereiche selbst beschreiben kann, aber wie muß ich das dann an den BLKMOV schreiben? Im FB kann ich leider keine Pointer an den BLKMOV schreiben. Oder habe ich dafür die falsche Funktion ausgesucht?
Hat jemand ein paar gute Tips, die mir weiterhelfen können?
Knut
Siemens ist keine Produktbezeichnung sondern ein Warnhinweis!
eine variable vom typ ANY kannst du doch aber dran schreiben, oder?
[SIGNATUR]Ironie setzt Intelligenz beim Empfänger voraus.[/SIGNATUR]
geht.....
Code:CALL "BLKMOV" SRCBLK :=#ZEIGER_QUELLE RET_VAL:=#Rueckgabe DSTBLK :=#ZEIGER_ZIEL![]()
Früher gab es Peitschen .... heute Terminkalender
Ich wollte nicht wirklich wissen, wie ich einen Zeiger an einen BLKMOV schreibe, sondern wie ich den Aufruf aus einem FB mache mit veränderlichen Zieladressen, bei möglichen unterschiedlichen Strukturlängen. Vielleicht habe ich das nicht deutlich genug geschrieben. Aber ich bin jetzt bei der alten Tante Siemens auf etwas gestossen, wie man einen ANY im Deklarationsteil erzeugt, der nicht auf die IN-Schnittstelle beschränkt ist. Trotzdem Vielen Dank und noch weiterhin viel Spaß bei euren lustigen Antworten.
Siemens ist keine Produktbezeichnung sondern ein Warnhinweis!
Ich habe verzweifelt im Deklarationsteil nach einer Möglichkeit gesucht, im STAT-Bereich einen ANY zu erzeugen. Das man das im TEMP-Bereich machen muß, auf die Idee wäre ich gar nicht gekommen. Und zu dem Gezicke: Meine Fragestellung in der Threaderöffnung zielte nicht auf einen Anfängerkurs im einfachen Beschalten eines BLKMOV mit einem Zeiger hin, deshalb war ich ob der Antworten ein wenig ungehalten. Falls sich jetzt hier jemand auf den Schlips getreten fühlt, so solle er versichert sein, daß dies nicht meinen Intentionen entsprach.![]()
Siemens ist keine Produktbezeichnung sondern ein Warnhinweis!
Bookmarks