Hallo chomp,

du hast mich nicht ganz richtig verstanden. ich habe im Grunde auf deinem Ansatz aufgesetzt (das praktiziere ich sogar bei unseren Anlagen so).
Dein Master-FB verwaltet das Array_of_UDT - das heißt es ist auch Bestandteil seiner Instanz.
Deine Visu greift auf die für sie gedachten Bestandteile davon zu.
In deinem SPS-Programm bearbeitest du den Baustein zyklisch (darin läuft dann die Schleife) und verknüpfst die Befehle zu was auch immer.
Problematisch wird es, wenn du mit Zeiten (Timern) arbeiten willst. Das kannst du aber umgehen, wenn du dir die Timer-Funktionalität selber mit in deine UDT legst. Ein Timer ist ja im Grunde nur der Vergleich der aktuellen Systemzeit zur irgendwann einmal gespeicherten Systemzeit.

Ich könnte da vielleicht etwas konkreter werden wenn ich etwas mehr von dem hätte/wüßte, was du da machen willst.

Vielleicht um einmal zu beschreiben, was ich meine, an Beispiel einer meiner Anlagen :
Ich habe einen Rundschalttisch - der hat z.B. 16 Plätze auf denen Stationen stehen (oder auch nicht).
Der Ablauf ist hier immer : Tisch macht einen Takt, wenn Takt beendet dann Stationen starten, wenn alle Stationen fertig und in Grundstellung sind dann wieder einen Takt machen usw.
Die Grundlage ist hier so ein Master-FB, der die notwendigen Verknüpfungen macht (auch eine Laufzeit-Messung der jeweiligen Station) und an dem sich alle Stationen bedienen (auch die Visu).
Die Station fordert in meinem Fall am Anfang ihre Daten vom Master-FB an, bearbeitet sie ggf. und gibt sie am Ende des Zyklus wieder an den Master-FB zurück (Peek und Poke).

Vielleicht ein Ansatz ?

Gruß
Larry