-> Hier kostenlos registrieren
Hallo,
Ich habe einen UDT_Button. Dieser repräsentiert einen Button in der HMI. In jeder Einheit (Station) gibt es mehrere dieser Buttons. Diese UDT_Button sind jetzt in einem UDT zusammengefasst, d.h.
UDT_Buttons_Stationx
- Button_Fkt1 : UDT_Button
- Button_Fkt2 : UDT_Button
- Button_Test : UDT_Button
- Button_Reset : UDT_Button
usw.
Die Anzahl der UDT_Buttons kann von Station zu Station unterschiedlich sein.
Jetzt muss aber jeder UDT_Button von einem FB vorverarbeitet (Flankengenerierung etc.). ich möchte aber nicht jeden einzelnen UDT_Button aufrufen, sondern z.B. den UDT_Buttons_Stationx als Variant übergeben und dann im FB die Anzahl der UDT_Buttons bestimmen und durch diese iterieren und vorverarbeiten.
In der HMI habe ich jetzt schöne namen um auf die UDTs zuzugreifen.
Was ich nicht hinbekomme ist der Zugriff in dem FB für die Vorverarbeitung. ich kann den UDT_Buttons_Stationx als Variant übergeben aber komme nicht auf die darin liegenden Elemente zurück. Ich bekomme immer nur das erste Element im UDT_Buttons_Stationx aber nicht die weiteren, da es kein Array ist. ich möchte aber als Variant übergeben, da ich wegen unterschiedlicher Länge nur einen FB Vorverarbeitung haben möchte
Mit einer S7-300 wurde das mit Pointer gemacht (Länge eines Elements war ja bekannt.
Normaler weise würde ich in TIA keinen UDT_Buttons_Stationx machen sondern ein Array of UDT_Buttons, dann kann ich einfach im FB die Länge des Arrays bestimmen und durch iterieren. Im Programm greife ich über vordefinierte Konstanten als Index auf die UDT_Buttons zu.
Das Problem bzw. die Unübersichtlichkeit ist dann auf der HMI (WinCC Prof V16) Seite. Hier kann ich nicht mit Konstanten als Index auf die Arrays zugreifen. ich muss wissen, dass UDT_Buttons_Station[1] die Taste für die Fkt1 ist usw. Da enstehen schnell Fehler und es leidet die Lesbarkeit
noch zur Info es sollen optimierte Bausteine sein, d.h. eine AT Lösung geht auch nicht.
Hat hier einer eine Idee, wie dies gemacht werden kann?
Danke im Voraus
Wolfgang
Ich habe einen UDT_Button. Dieser repräsentiert einen Button in der HMI. In jeder Einheit (Station) gibt es mehrere dieser Buttons. Diese UDT_Button sind jetzt in einem UDT zusammengefasst, d.h.
UDT_Buttons_Stationx
- Button_Fkt1 : UDT_Button
- Button_Fkt2 : UDT_Button
- Button_Test : UDT_Button
- Button_Reset : UDT_Button
usw.
Die Anzahl der UDT_Buttons kann von Station zu Station unterschiedlich sein.
Jetzt muss aber jeder UDT_Button von einem FB vorverarbeitet (Flankengenerierung etc.). ich möchte aber nicht jeden einzelnen UDT_Button aufrufen, sondern z.B. den UDT_Buttons_Stationx als Variant übergeben und dann im FB die Anzahl der UDT_Buttons bestimmen und durch diese iterieren und vorverarbeiten.
In der HMI habe ich jetzt schöne namen um auf die UDTs zuzugreifen.
Was ich nicht hinbekomme ist der Zugriff in dem FB für die Vorverarbeitung. ich kann den UDT_Buttons_Stationx als Variant übergeben aber komme nicht auf die darin liegenden Elemente zurück. Ich bekomme immer nur das erste Element im UDT_Buttons_Stationx aber nicht die weiteren, da es kein Array ist. ich möchte aber als Variant übergeben, da ich wegen unterschiedlicher Länge nur einen FB Vorverarbeitung haben möchte
Mit einer S7-300 wurde das mit Pointer gemacht (Länge eines Elements war ja bekannt.
Normaler weise würde ich in TIA keinen UDT_Buttons_Stationx machen sondern ein Array of UDT_Buttons, dann kann ich einfach im FB die Länge des Arrays bestimmen und durch iterieren. Im Programm greife ich über vordefinierte Konstanten als Index auf die UDT_Buttons zu.
Das Problem bzw. die Unübersichtlichkeit ist dann auf der HMI (WinCC Prof V16) Seite. Hier kann ich nicht mit Konstanten als Index auf die Arrays zugreifen. ich muss wissen, dass UDT_Buttons_Station[1] die Taste für die Fkt1 ist usw. Da enstehen schnell Fehler und es leidet die Lesbarkeit
noch zur Info es sollen optimierte Bausteine sein, d.h. eine AT Lösung geht auch nicht.
Hat hier einer eine Idee, wie dies gemacht werden kann?
Danke im Voraus
Wolfgang