Step 7 Block Move

hanz-landau

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kann ich Teile eines Instanz-DB´s mittels SFC20 "BLKMOV", SFC81 "UBLKMOV", SFC83 "READ DBL" oder SFC84 "WRIT DBL" in einen Global-DB schieben?
Weil auf den Global-DB möchte ich mittel WinCC drauf zugreifen.
Der Instanz-DB beinhaltet ein 2D-Arry von [0..4] und [0..9] und ist vom Typ UDT. Das UDT besteht aus INT,INT,String [20], INT.
Vielen dank im vorraus schon mal
 
Geht schon. Sofern du im DB und im FB die gleiche Struktur hast kannst du problemlos vollsymbolisch mit dem SFC20 arbeiten.
IN IDB.UDT -> OUT DB.UDT.

Wenn du das jetzt außerhalb deiner FBs machst hat das aber den Nachteil dass du mit WinCC nur lesend auf den Bereich zugreifen kannst. Da die SPS ja schließlich das kopieren jeden Zyklus neu macht.
Auch musst du aufpassen wenn sich deine Instanz-Adressen durch das Einfügen neuer Instanzen verschieben, wenn du nicht mit Symbolischen-Operandenvorrang arbeitest, geht da schnell was schief.

Üblicher ist es
a) Die Struktur/UDT als IN/OUT zu definieren
b) Dem FB einen ANY-Pointer auf den UDT im DB am in zu übergeben. Den UDT aus dem DB in den im FB (hier geht auch TEMP) zu kopieren, damit zu arbeiten und am Ende wieder zurück zu kopieren.
 
Zuletzt bearbeitet:
Zurück
Oben