Hallo koala,
wenn Du möchtest kann ich Dir ja mal eine kleines WinCC Projekt, nur Login, in Ver 5.1 erstellen und zusenden. Dann kannst Du es ja mal versuchen in Ver 6 zu öffnen.
Gib mir bescheid.
Hi Koala,
ähm, ich glaube, Du bist im falschen Unterdialog![]()
der
BOOL _main....
steht nur bei C-Aktionen von EIGENSCHAFTS-ATTRIBUTEN, die JA/NEIN zur Auswahl haben.
Du musst Die angegebene C-Aktion unter
Objekteigenschaften->Ereignis->Maus->Mausclick eintragen.
Dann sollte es funktionieren.
Gruß Jörg
Hallo koala,
wenn Du möchtest kann ich Dir ja mal eine kleines WinCC Projekt, nur Login, in Ver 5.1 erstellen und zusenden. Dann kannst Du es ja mal versuchen in Ver 6 zu öffnen.
Gib mir bescheid.
„If you open your Mind too much, your Brain will fall out.“
Es funktioniert)
Thx erst mal an alle!!
eine Frage hab ich noch und zwar ist es möglich, den code so zu erweitern, dass wenn ich ein gülten Benutzer und passwort eingegeben habe, dass sich dann ein bildfenster (im Graphic- designer erstellt) öffnet. Ich schaff es leider nur, dass sich passwortabfrage und bild gleichzeitig öffnen.
OpenPicture("Service.Pdl"); //Return-Type: void
Ach ja, wie sieht des eigentlich unter wincc mit popups aus?? würde das funktionieren??
Messageboxen in WinCC
Unter C aktion bei Mausklick
Unter VB aktion bei Mausklick
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
HWND Handle;
long ReturnValue;
Handle = FindWindow("PDLRTisAliveAndWaitsForYou","WinCC-Runtime - ");
ReturnValue = MessageBox(Handle,"Funktion ausführen ?","Bedienung Anlage xyz",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND);
printf("Dieser Wert wurde zurückgeliefert = %ld\r\n", ReturnValue);
SetTagDWord("long",ReturnValue); //Rückgabe-Typ :BOOL
// Bei Bedienung von "JA" wird der Wert "6", bei "NEIN" der Wert "7" und bei "ABBRECHEN" der Wert "2" zurückgegeben.
if ( ReturnValue == 6 ) // Operator mit ja geantwortet ??
{
SetTagSWord("variable-x",99); // 99 in Variable x scheiben
SetTagSWord("variable-y",1); // 1 in Variable y schreiben
}
}
Sub OnClick(ByVal Item)
Dim Antwort
Antwort = MsgBox ("Funktion ausführen ?" ,36,"Bedienung Anlage xyz" )
If Antwort = 6 Then
HMIRuntime.Tags("variable-x").Write 99 ' 99 in Variable x schreiben
HMIRuntime.Tags("variable-y").Write 1 ' 1 in Variable y schreiben
End If
End Sub
Bild öffnen wenn Userlevel stimmt ( auslösung bei änderung von @CurrentUser )
#pragma code ("UseAdmin.DLL")
#include "pwrt_api.h"
#pragma code ()
int Master; // Masterlogin festlegen
Master = PASSCheckLevelPermission(9); // Userlevel überprüfen auf Level 9 = Übergeordnete Prozesssteuerung
if (Master == 1) OpenPicture("Service.Pdl");
Eigenschaften-> Sonstige-> Anzeige
if (strcmp(GetTagChar("@CurrentUser"),"Max Mustermann")) return (0); //Rückgabe-Typ :long int
else return (1);
Achtung
Statik auf nein setzen da das Objekt beim Bildaufschlag kurtz sichtbar und evt. bedinbar ist.
Gruss
uz
thx erst mal an euch beiden!!
Hab leider irgendwie das Problem, dass das bei mir nicht funktioniert.
Könntet ihr mal bitte eure vorschläge erklären, was ihr meint und vor allem wohin damit, weil ich steh grad irgendwie auf`m schlauch
Das einfachste ist, wenn Du eine Global Script Aktion machst (C oder VBS), die auf Änderung der internen WinCC Variable "@CurrentUser" getriggert wird (am besten Variablentriggerung auf Änderung). Dort prüfst Du, ob die Variable "@CurrentUser" nicht leer ist und blendest dann Dein Bild auf.Originally Posted by Koala
GlobalScript Runtime muss noch in der Anlaufliste (Rechnereigenschaften) eingetragen sein.
Michael
Bookmarks