Frage zu BLKMOV in SCL TIA PORTAL

MarkusP

Level-2
Beiträge
324
Reaktionspunkte
31
Zuviel Werbung?
-> Hier kostenlos registrieren
... ja ich habe die Suche bemüht, suche seit Stunden in sämtlichen Foren, aber trotzdem stehe ich total auf dem Schlauch.
Ich bin leider nicht ganz fit in Sachen S7, daher wende ich mich an die Profis unter Euch.

Aufgabenstellung:
Transfer von 62 Eingangswörtern (%IW256 bis %IW378) in einen Datenbaustein.
Das ganze geschieht in einem FB, die Daten sollen in einem Instanz-DB abgelegt werden.
Symbolische Adressierung.

So weit ich das verstanden habe, sollte das ganz einfach mit dem BLKMOV funktionieren.

Ich habe in der Schnittstellen einen Input StartAdr vom Datentyp ANY deklariert, DataIn ist ein ARRAY [1..62] of WORD

#Retval:=BLKMOV(SRCBLK:=#StartAdr, DSTBLK=>#DataIn)

Der Code lässt sich in die CPU laden, es wird aber lediglich ein Wort kopiert.
Bei den Beispielen die ich (AWL) gefunden habe wird leider nur direkt adressiert und dabei auch eine Länge (BYTE xx) angegeben.
Die Längenangabe geht mir hier irgendwie ab

Auszug aus der Online Hilfe des Portals:

Allgemeine Regeln beim Kopieren
Quell- und Zielbereich dürfen sich nicht überlappen. Wenn der Quell- und der Zielbereich unterschiedlich lang sind, wird nur bis zur Länge des kleineren Bereichs kopiert.
Wenn der Quellbereich kleiner als der Zielbereich ist, wird der Quellbereich komplett in den Zielbereich geschrieben. Die restlichen Bytes des Zielbereichs bleiben unverändert.
Wenn der Zielbereich kleiner als der Quellbereich ist, wird der Zielbereich komplett beschrieben. Die restlichen Bytes des Quellbereichs werden ignoriert.
Wenn ein Bereich vom Datentyp BOOL kopiert wird, muss die angegebene Länge des Bereichs durch 8 teilbar sein, da sonst die Anweisung nicht ausgeführt wird

Ich bin für jeden Tip sehr dankbar. :sm24:


PS: bei einer mir bekannten SPS würde die Anweisung lediglich so lauten: DataIn:=%IW256:62;


Danke und LG

Markus
 
Hilfe

Kann mir wirklich niemand weiterhelfen, oder ist es dem Forum nicht würdig? ;-)

Für Hilfe immer noch ziemlich dankbar,

Markus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gelöst !!!

Hallo liebes Forum,

als TIA und überhaupt S7 Neuling bin ich total stolz darauf, das Problem nun selbst gelöst zu haben. :s11:

Durch die Manipulation des Wiederholfaktor des ANY-Pointers für die Source-Adresse mittels einer
überlagerten AT-Variable, werden nunmehr wie gewünscht alle 62 Wörter kopiert, und nicht wie anfangs
nur ein Wort.

Dieser Artikel im Support-Forum hat mich auf die Lösung gebracht:
http://support.automation.siemens.c...tandard&viewreg=WW&load=treecontent#A21947175

Wenn jemand eine einfachere Lösung hat, nur her damit.

Danke und schönen Abend

Markus
 
Zurück
Oben