- Beiträge
- 5.686
- Reaktionspunkte
- 1.616
-> Hier kostenlos registrieren
Hi zusammen.
Ich hab ja in Step7 einen Funktionsbaustein gemacht die mir aus einem beliebigen Bereich eines DBs die Werte in einen temporären UDT Bereich legt und am ende des Funktionsbausteins wie aus dem UDT Bereich zurückkopieren auf den ANY an der Schnittstelle deklarierten ANY.
Auf der S7 1500 in TIA scheint das nicht mehr zu gehen.
Beim roten kommt bei mir ungültige Parameterzuweisung.
LS_Strahlventilator ist vom Typ ANY am Bausteineingang deklariert.
pLS_Strahlventilator ist eine AT Sicht vom Typ ANY_Pointer (UDT um einen ANY umzubauen).
SV ist eine UDT Struktur. von der Länge 112 Byte und darum gehts mir. Ich will am LS_Strahlventi den ersten Datenpunkt einer beliebigen unbekannten struktur eines DBs anhängen. und dann einfach die 112 fortfolgenden Bytes verschieben in einen im TEMP deklarierten UDT. Und dies am Ende wieder zurück.
mfG René
Ich hab ja in Step7 einen Funktionsbaustein gemacht die mir aus einem beliebigen Bereich eines DBs die Werte in einen temporären UDT Bereich legt und am ende des Funktionsbausteins wie aus dem UDT Bereich zurückkopieren auf den ANY an der Schnittstelle deklarierten ANY.
Auf der S7 1500 in TIA scheint das nicht mehr zu gehen.
Code:
(*Pointer auf UDT schreiben zum arbeiten*) // Ventilator allgemein#pLS_Strahlventilator.Bereichstyp := 2; // Typ des Bereichs soll Byte sein (INT = 2)
#pLS_Strahlventilator.Anzahl_Werte := 112; // Länge des Pointers weil wir einen Any ohne Länge angeben wollen
// Muss so lange sein wie der UDT der angezeigt werden soll.
#Ret := BLKMOV(SRCBLK := #LS_Strahlventilator, DSTBLK => #SV); // Kopieren in die Temporäre Variable.
(*Eigentlicher Programmteil starten*)
(*Hier wird der Pointer zurückgeschrieben*)
#Ret := BLKMOV(SRCBLK := #SV, [COLOR=#ff0000]DSTBLK => #LS_Strahlventilator[/COLOR]); // Ventilator allgemein
Beim roten kommt bei mir ungültige Parameterzuweisung.
LS_Strahlventilator ist vom Typ ANY am Bausteineingang deklariert.
pLS_Strahlventilator ist eine AT Sicht vom Typ ANY_Pointer (UDT um einen ANY umzubauen).
SV ist eine UDT Struktur. von der Länge 112 Byte und darum gehts mir. Ich will am LS_Strahlventi den ersten Datenpunkt einer beliebigen unbekannten struktur eines DBs anhängen. und dann einfach die 112 fortfolgenden Bytes verschieben in einen im TEMP deklarierten UDT. Und dies am Ende wieder zurück.
mfG René