cordon-sport
Level-1
- Beiträge
- 8
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Guten Morgen,
ich arbeite zurzeit an meinem ersten Wincc Projekt. Meine Aufgabe besteht darin einfach ein paar Ventile "nachzurüsten", also habe ich vorhandene Ventile genommen habe die kopiert und dort meine neuen Variablen hinterlegt.
Wenn ich dann die Runtime starte (offline) und auf ein Ventil drücke öffnet sich ein Fenster wo man das Ventil von Auto auf Hand stellen und das entsprechende Ventil mit Hand auf und zu fahren.
So wie ich die Sache interpretiert habe werden dafür 2 Scripte verwendet.
Eins um dynamisch das Bild aufzurufen und ein anderes um ein kleines Windows Fenster zu "erstellen" in welches das Bild geladen wir.
Bei den alten Ventilen erscheint in bei dem Fenster als Title auch der Name von dem Ventil. Bei meinen neuen Ventilen macht er das nicht.
Und ich kann aus dem Script nicht ersehen wo er sich diese Bezeichnung herholt.
Ich kopiere hier mal das Script rein:
void Steuerung(char* lpszPictureName, char* lpszObjectName,
char* lpszBFensterName, char* lpszBoxName)
{
int ButtonXPos, ButtonYPos,ButtonBreite,ButtonHoehe;
int BildBreite,BildHoehe;
int BFensterXPos,BFensterYPos,BFensterBreite,BFensterHoehe;
int XAbstand=0, YAbstand= -10;
char* lpszAntrieb;
char* lpszBef;
char* lpszState;
char* lpszAntriebNr;
int anr,Bef,State;
SetTagPrefix(lpszPictureName,"SteuerungMotor", lpszObjectName);
SetVisible("KA_Oelabscheider","SteuerungMotor",0);
SetVisible("KA_Behaelter_B1.1_B2.1","SteuerungMotor",0);
SetVisible("KA_Spuelbehaelter","SteuerungMotor",0);
SetVisible("KA_UF_Blöcke_20_23","SteuerungMotor",0);
SetVisible("KA_UF_Blöcke_27_30","SteuerungMotor",0);
SetVisible("KA_Vorlage","SteuerungMotor",0);
SetVisible("KA_Desorber","SteuerungMotor",0);
SetVisible("KA_Separator","SteuerungMotor",0);
SetVisible("KA_VE-Wasser","SteuerungMotor",0);
SetVisible("KA_Emulsionsspeicher Halle 1-4","SteuerungMotor",0);
SetVisible("KA_Oelschlammanlage","SteuerungMotor",0);
ButtonXPos=GetLeft(lpszPictureName,lpszObjectName);
ButtonYPos=GetTop(lpszPictureName,lpszObjectName);
ButtonBreite=GetWidth(lpszPictureName,lpszObjectName);
ButtonHoehe=GetHeight(lpszPictureName,lpszObjectName);
BildBreite=GetWidth(lpszPictureName,NULL);
BildHoehe=GetHeight(lpszPictureName,NULL);
BFensterBreite=GetWidth(lpszPictureName, lpszBFensterName);
BFensterHoehe=GetHeight(lpszPictureName, lpszBFensterName);
BFensterXPos = ButtonXPos + ButtonBreite + XAbstand;
BFensterYPos = ButtonYPos + ButtonHoehe + YAbstand;
if((BFensterXPos + BFensterBreite) > BildBreite)
{
BFensterXPos = ButtonXPos - BFensterBreite - XAbstand;
}
if((BFensterYPos + BFensterHoehe) > BildHoehe)
{
BFensterYPos = BildHoehe - BFensterHoehe ;
}
SetLeft(lpszPictureName,lpszBFensterName,BFensterXPos);
SetTop(lpszPictureName,lpszBFensterName,BFensterYPos);
SetPictureName(lpszPictureName,lpszBFensterName,lpszBoxName);
SetVisible(lpszPictureName,lpszBFensterName,1);
//Antriebsnummer
lpszAntrieb= lpszObjectName; //Return-Type: char*
lpszAntriebNr=strstr(lpszAntrieb,"_");
lpszAntriebNr++;
SetTagCharWait("AntriebUeberschrift",""); //Return-Type: BOOL
//strcat(lpszAntrieb,lpszAntriebNr); //Return-Type: char*
anr=atoi(lpszAntriebNr);
SetTagDWord("AntriebNr",(WORD)anr); //Return-Type: BOOL
//Anhängen von anr an die Objektvariable
//lpszBef=lpszObjectName;
//strcat(lpszBef,"Bef");
//SetTagChar("Bef", lpszBef);
//lpszState=lpszObjectName;
//strcat(lpszState,"State");
//SetTagChar("State", lpszState);
}
ich arbeite zurzeit an meinem ersten Wincc Projekt. Meine Aufgabe besteht darin einfach ein paar Ventile "nachzurüsten", also habe ich vorhandene Ventile genommen habe die kopiert und dort meine neuen Variablen hinterlegt.
Wenn ich dann die Runtime starte (offline) und auf ein Ventil drücke öffnet sich ein Fenster wo man das Ventil von Auto auf Hand stellen und das entsprechende Ventil mit Hand auf und zu fahren.
So wie ich die Sache interpretiert habe werden dafür 2 Scripte verwendet.
Eins um dynamisch das Bild aufzurufen und ein anderes um ein kleines Windows Fenster zu "erstellen" in welches das Bild geladen wir.
Bei den alten Ventilen erscheint in bei dem Fenster als Title auch der Name von dem Ventil. Bei meinen neuen Ventilen macht er das nicht.
Und ich kann aus dem Script nicht ersehen wo er sich diese Bezeichnung herholt.
Ich kopiere hier mal das Script rein:
void Steuerung(char* lpszPictureName, char* lpszObjectName,
char* lpszBFensterName, char* lpszBoxName)
{
int ButtonXPos, ButtonYPos,ButtonBreite,ButtonHoehe;
int BildBreite,BildHoehe;
int BFensterXPos,BFensterYPos,BFensterBreite,BFensterHoehe;
int XAbstand=0, YAbstand= -10;
char* lpszAntrieb;
char* lpszBef;
char* lpszState;
char* lpszAntriebNr;
int anr,Bef,State;
SetTagPrefix(lpszPictureName,"SteuerungMotor", lpszObjectName);
SetVisible("KA_Oelabscheider","SteuerungMotor",0);
SetVisible("KA_Behaelter_B1.1_B2.1","SteuerungMotor",0);
SetVisible("KA_Spuelbehaelter","SteuerungMotor",0);
SetVisible("KA_UF_Blöcke_20_23","SteuerungMotor",0);
SetVisible("KA_UF_Blöcke_27_30","SteuerungMotor",0);
SetVisible("KA_Vorlage","SteuerungMotor",0);
SetVisible("KA_Desorber","SteuerungMotor",0);
SetVisible("KA_Separator","SteuerungMotor",0);
SetVisible("KA_VE-Wasser","SteuerungMotor",0);
SetVisible("KA_Emulsionsspeicher Halle 1-4","SteuerungMotor",0);
SetVisible("KA_Oelschlammanlage","SteuerungMotor",0);
ButtonXPos=GetLeft(lpszPictureName,lpszObjectName);
ButtonYPos=GetTop(lpszPictureName,lpszObjectName);
ButtonBreite=GetWidth(lpszPictureName,lpszObjectName);
ButtonHoehe=GetHeight(lpszPictureName,lpszObjectName);
BildBreite=GetWidth(lpszPictureName,NULL);
BildHoehe=GetHeight(lpszPictureName,NULL);
BFensterBreite=GetWidth(lpszPictureName, lpszBFensterName);
BFensterHoehe=GetHeight(lpszPictureName, lpszBFensterName);
BFensterXPos = ButtonXPos + ButtonBreite + XAbstand;
BFensterYPos = ButtonYPos + ButtonHoehe + YAbstand;
if((BFensterXPos + BFensterBreite) > BildBreite)
{
BFensterXPos = ButtonXPos - BFensterBreite - XAbstand;
}
if((BFensterYPos + BFensterHoehe) > BildHoehe)
{
BFensterYPos = BildHoehe - BFensterHoehe ;
}
SetLeft(lpszPictureName,lpszBFensterName,BFensterXPos);
SetTop(lpszPictureName,lpszBFensterName,BFensterYPos);
SetPictureName(lpszPictureName,lpszBFensterName,lpszBoxName);
SetVisible(lpszPictureName,lpszBFensterName,1);
//Antriebsnummer
lpszAntrieb= lpszObjectName; //Return-Type: char*
lpszAntriebNr=strstr(lpszAntrieb,"_");
lpszAntriebNr++;
SetTagCharWait("AntriebUeberschrift",""); //Return-Type: BOOL
//strcat(lpszAntrieb,lpszAntriebNr); //Return-Type: char*
anr=atoi(lpszAntriebNr);
SetTagDWord("AntriebNr",(WORD)anr); //Return-Type: BOOL
//Anhängen von anr an die Objektvariable
//lpszBef=lpszObjectName;
//strcat(lpszBef,"Bef");
//SetTagChar("Bef", lpszBef);
//lpszState=lpszObjectName;
//strcat(lpszState,"State");
//SetTagChar("State", lpszState);
}