Die Frameumschaltung erfolgt über den Index der Visualisierung, die im Frame hinterlegt ist. Hier iidx.
PROGRAM PLC_PRG
VAR
frameManager : VisuElems.IFrameManager;
pVisuClient: POINTER TO VisuElems.VisuStructClientData;
iidx:INT:=0;
END_VAR
VisuElems.VisuElemBase.Visu_Globals.g_ClientManager.BeginIteration();
frameManager := VisuElems.g_VisuManager.GetFrameManager();
REPEAT// to get each instance of visu client
pVisuClient := VisuElems.VisuElemBase.Visu_Globals.g_ClientManager.GetNextClient();
IF pVisuClient <> 0 AND frameManager <> 0 THEN
// Achtung: "GenElemInst" in SwitchFrame muss gleich der "GenElemInst" in der verwendeten Visualisierung sein -> sonst keine Weiterschaltung
frameManager.SwitchToVisu('Visualisierung.myFrame', pVisuClient, iidx);
END_IF
UNTIL pVisuClient = 0
END_REPEAT;
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Originally created by: thomas_nienstaedt
In der neusten Version (3.3 Svp 1) ist jetzt eine Frameumschaltung eingebaut!
Diese scheint nach dem ersten Versuchen auch zu funktionieren!
Jetzt wäre natürlich sehr spannend das über den Code zu machen!
Funktioniert das schon?
Thomas
Die Frameumschaltung erfolgt über den Index der Visualisierung, die im Frame hinterlegt ist. Hier iidx.
PROGRAM PLC_PRG
VAR
frameManager : VisuElems.IFrameManager;
pVisuClient: POINTER TO VisuElems.VisuStructClientData;
iidx:INT:=0;
END_VAR
VisuElems.VisuElemBase.Visu_Globals.g_ClientManager.BeginIteration();
frameManager := VisuElems.g_VisuManager.GetFrameManager();
REPEAT// to get each instance of visu client
pVisuClient := VisuElems.VisuElemBase.Visu_Globals.g_ClientManager.GetNextClient();
IF pVisuClient <> 0 AND frameManager <> 0 THEN
// Achtung: "GenElemInst" in SwitchFrame muss gleich der "GenElemInst" in der verwendeten Visualisierung sein -> sonst keine Weiterschaltung
frameManager.SwitchToVisu('Visualisierung.myFrame', pVisuClient, iidx);
END_IF
UNTIL pVisuClient = 0
END_REPEAT;