danilo sbardellotto
Level-2
- Beiträge
- 7
- Reaktionspunkte
- 3
-> Hier kostenlos registrieren
TIA V15.1 WinCC RT Professional Präfixübergabe an Bildfenster mit C-Skript oder VBS
Verwendete Software:
TIA Portal V15.1 Update2
STEP 7 Professional V15.1 Update2
WinCC Professional V15.1 Update2
Folgendes Problem. Da ich keinen HMI Anwenderdatentyp mit PLC Datentypen bestücken kann, bin ich gezwungen anstatt einer Datentypstruktur drei zu verwenden. Dies hat zur Folge, dass ich nun drei Bilder in drei Bildfenstern aufrufe, bzw. ich weise sie unter Eigenschaften-> Eigenschaften-> Allgemein-> Angezeigtes Bild direkt zu, welche wiederum in einem Bild sind. Dieses rufe ich dann erneut in einem Bildfenster auf. Zur Veranschaulichung füge ich nachfolgendes Bild ein.

Ich habe es mal soweit geschafft, dass wenn ich auf das Ventil klicke sich das richtige Bildfenster öffnet und es werden auch alle Bildfenster anzeigt, nur das mit dem Präfix klappt noch nicht wie gewünscht. Wie kann ich die Übergabe des Präfixes via C-Skript oder VB machen?
Beispielcode für die versuchte Präfixübergabe an ein Bildfenster (ich fange mal klein an):
#include "GlobalDefinitions.h"
void OnClick(char* screenName, char* objectName, char* propertyName)
{
char* lpszPictureName = screenName;char* lpszObjectName = objectName;char* lpszPropertyName = propertyName;
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
#define ApcPic1 "Screen_Start"
#define ApcPic2 "ScreenDO_Vlv "
#define BfPic1 " BfDO_Vlv "
#define BfPic2 " BfDO_Vlv_Desc "
#define BfPic3 " BfDO_Vlv_StUp"
#define BfPic4 " BfDO_Vlv_Sta"
SetVisible(ApcPic1,BfPic1,0);
SetPictureName(ApcPic1,BfPic1,ApcPic2);
SetTagPrefix(lpszPictureName,"Bf_Vlv_DO_Dscr", "V005_Dscr.");
SetVisible(ApcPic1,BfPic1 ,1);
}
Weitere Versuche mit SetTagPrefix:
SetTagPrefix(lpszPictureName,"Screen_Start.Bildfenster1:Screen_FrcSim.BfDO_Tag
O_Vlv_Tag", "V001Test");
SetTagPrefix(lpszPictureName,"DO_Vlv_Desc", "V001Test.");
SetTagPrefix(lpszPictureName,"Screen_Start"."Bildfenster1":"Screen_FrcSim"."BfDO_Tag":"DO_Vlv_Desc", "V001Test.");
SetTagPrefix hackt noch. Wie muss man hier vorgehen?
Wie ist der Bildpfad korrekt bzw. ist die richtige Syntax? Gänsefüsschen? Habe mehrere Arten ausprobiert, Gänsefüsschen nur am Anfang und am Ende oder bei jedem Bild/Bildfenster. Das Präfix (er ist identisch mit dem Namen der Strukturvariable, daran sollte es nicht liegen) habe ich mal mit und mal ohne Punkt am Ende probiert, hatte keinen Einfluss. Habe es auch beim Objektnamen (Name des Ventils) mit und ohne Punkt probiert.
Wie kriege ich das hin, in C-Skript oder VBS? Bin offen für beide Möglichkeiten.
Besten Dank im Voraus.
Güsse
Verwendete Software:
TIA Portal V15.1 Update2
STEP 7 Professional V15.1 Update2
WinCC Professional V15.1 Update2
Folgendes Problem. Da ich keinen HMI Anwenderdatentyp mit PLC Datentypen bestücken kann, bin ich gezwungen anstatt einer Datentypstruktur drei zu verwenden. Dies hat zur Folge, dass ich nun drei Bilder in drei Bildfenstern aufrufe, bzw. ich weise sie unter Eigenschaften-> Eigenschaften-> Allgemein-> Angezeigtes Bild direkt zu, welche wiederum in einem Bild sind. Dieses rufe ich dann erneut in einem Bildfenster auf. Zur Veranschaulichung füge ich nachfolgendes Bild ein.

Ich habe es mal soweit geschafft, dass wenn ich auf das Ventil klicke sich das richtige Bildfenster öffnet und es werden auch alle Bildfenster anzeigt, nur das mit dem Präfix klappt noch nicht wie gewünscht. Wie kann ich die Übergabe des Präfixes via C-Skript oder VB machen?
Beispielcode für die versuchte Präfixübergabe an ein Bildfenster (ich fange mal klein an):
#include "GlobalDefinitions.h"
void OnClick(char* screenName, char* objectName, char* propertyName)
{
char* lpszPictureName = screenName;char* lpszObjectName = objectName;char* lpszPropertyName = propertyName;
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
#define ApcPic1 "Screen_Start"
#define ApcPic2 "ScreenDO_Vlv "
#define BfPic1 " BfDO_Vlv "
#define BfPic2 " BfDO_Vlv_Desc "
#define BfPic3 " BfDO_Vlv_StUp"
#define BfPic4 " BfDO_Vlv_Sta"
SetVisible(ApcPic1,BfPic1,0);
SetPictureName(ApcPic1,BfPic1,ApcPic2);
SetTagPrefix(lpszPictureName,"Bf_Vlv_DO_Dscr", "V005_Dscr.");
SetVisible(ApcPic1,BfPic1 ,1);
}
Weitere Versuche mit SetTagPrefix:
SetTagPrefix(lpszPictureName,"Screen_Start.Bildfenster1:Screen_FrcSim.BfDO_Tag

SetTagPrefix(lpszPictureName,"DO_Vlv_Desc", "V001Test.");
SetTagPrefix(lpszPictureName,"Screen_Start"."Bildfenster1":"Screen_FrcSim"."BfDO_Tag":"DO_Vlv_Desc", "V001Test.");
SetTagPrefix hackt noch. Wie muss man hier vorgehen?
Wie ist der Bildpfad korrekt bzw. ist die richtige Syntax? Gänsefüsschen? Habe mehrere Arten ausprobiert, Gänsefüsschen nur am Anfang und am Ende oder bei jedem Bild/Bildfenster. Das Präfix (er ist identisch mit dem Namen der Strukturvariable, daran sollte es nicht liegen) habe ich mal mit und mal ohne Punkt am Ende probiert, hatte keinen Einfluss. Habe es auch beim Objektnamen (Name des Ventils) mit und ohne Punkt probiert.
Wie kriege ich das hin, in C-Skript oder VBS? Bin offen für beide Möglichkeiten.
Besten Dank im Voraus.
Güsse