Mit BLKMOV im FB auf IN_OUT vom Typ UDT

Johannes F

Level-1
Beiträge
232
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
wie kann ich z.b. einen string mit z.b. block-move (SFC20 BLKMOV) in den FB datenbereich IN_OUT vom typ UDT kopieren. wenn ich den UDT in dem bereich OUT aufrufe kann ich mit bolck-move darauf schreiben nur nicht mit IN_OUT
hat jemand eine ideee :confused::confused::confused::confused:
 
Hallo Johannes,
hast Du schon mal versucht, das INOUT-UDT auf eine Temp-Variable zu schreiben, und diese dann an den SFC20 zu legen? Sollte klappen.
gruß
 
Hmmm, so ganz genau erschließt sich mir noch nicht, was Du vorhast. :confused:
Wenn Du mittels SFC20 in ein UDT kopierst, dann brauchst Du doch auch lediglich eine OUT-Variable - da diese ja vom SFC20 beschrieben wird.

gruß
 
Hallo,
ich denke, das Problem ist folgendes :
IN und OUT sind feste Datenbereiche in einem FB. IN_OUT ist aber nur ein Pointer auf einen externen Datenbereich. Wenn das funktionieren soll mußt du dir m.E. aus dem mittels IN_OUT übergebenen Pointer und den Größen-Daten des/deines UDT einen ANY-Pointer bauen. Den kannst du dann an den SFC20 dranschreiben und dann sollte es auch funktionieren ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja das ist schon richtig, habe mir ein bildbaustein gebaut und die struktur (udt) welche aus dem fb kommt ist die struktur für meinen bildbaustein. einfach 1:1 .mit allen anderen variablen habe ich keine probleme nur mit dem string. alle bausteine welche ich zum verarbeiten der strings einsetze geben mir ein OUT-String und diesen kann ich leider nicht auf den IN_OUT-String legen.werde mir wohl etwas drumherum bauen müssen. kaum zuglauben das IN_OUT nicht das gleiche ist wie OUT oder IN bzw. IN und OUT. ne ne ne *ROFL*
 
@LL ne das funzt nicht so wie ich das brauche

lege einfach mal zum spaß in einem fb einen udt mit einem string in IN_OUT ud versuche mit z.b. sfc20 darauf zu schreiben. geht nicht
:-(
 
:confused: ... doch geht. Ich habe es allerdings SCL machen lassen und der hat nichts Besseres zu tun als sich zuerst einen ANY-Pointer aus dem IN_OUT-pointer und der Größe des UDT-Datenblocks zu bauen - halt so, wie ich es geschrieben habe.
Schau dir doch mal zum Spaß den I-DB deines FB an. Der IN_OUT-String belegt dort (egal wie lang du ihn machst) nur die 6 Byte, die der pointer nun mal groß ist ... im Gegensatz dazu bei einem IN oder OUT-Parameter ... das ist der Unterschied ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ah ja danke, ganz komisch dachte bis gerstern das es egal ist ob IN und OUT oder IN_OUT.
mmm schade, dann muss ich es eben anders lösen.

komisch ist für mich das ein normales "INT" im IN_OUT bereich die komplette adresse belegt nur ein "STRING" eben nicht.

kennt jemand den grund?
 
Zurück
Oben