# Passwort- abfrage/eingabe und popup- Fenster unter WinCC



## Koala (25 August 2004)

Hallo zusammen,

Ich beschäftige mich so nebenbei mit WinCC 6.0 (nachdem ich einen Kurs bei Elop hatte) und leider kenn ich jetzt nur die Grundlagen. Leider hab ich jetzt so das eine oder andere Problem, und deshalb hab ich da ein paar Fragen:

1. Frage: Ich will einen Passwort- geschützen Bereich erstellen (für den Service- Breich) Was heist, dass der butten solange versteckt ist, bis ich ein kennwort eingebe, oder die andere Möglichkeit wäre, wenn ich denn Button drücke, kommt eine Passwort- abfrage und dann sich erst das Bild für den Service- Bereich aufbaut. 

Entschieden hab ich mich bis jetzt für die erste Möglichkeit. Also Button erstellt, E/A- Feld erstellt und eine Variable für vorzeichenlose 16 Bit Wert. Button über Eigenschaften --> Bedienungsfreigabe den Dynamik- Dialog bearbeitet. Die Passworteingabe funktioniert soweit einwandfrei (halt nur mit Zahlen), aber später mal schnell das Passwort ändern ist leider nicht möglich und wenn ich das Passwort eingebe, dann bleibt es gespeichert, bis ich wieder ein "falsches" eingebe. 

Andere Möglichkeit wäre vielleicht eine zweite Variable erstellen und Passwort- vergleich über SPS- durchführen...

2. Frage:
Wenn ein Signal (z.B. von einem Ausgang) von der SPS kommt, dann soll im WinCC automatisch ein Bild (des im Graphics Designer erstellt wird) geöffnet werden und auch im Vordergrund sein. 

Da hab ich keine Ahnung, wie ich das anstellen soll :-(

War mit denen Fragen schon an der Handwerkskammer, aber leider könnten die mir keinen Rat geben. 

Ich hoffe, von euch kann mir jemand einen Rate geben

Thx schon mal im voraus!!!!!!!!!!!!


----------



## zotos (25 August 2004)

Ich benutze immer noch Version 5.1

Das mit dem Servicebereich ist doch am einfachsten über eine Benutzerverwaltung (User Administrator) zu realsisieren. Da kann man Benutzer anlegen mit namen und Passwort.
Die Controls (Buttons etc.) kann man über Eigenschaften Berechtigung dann bequem zuordnen.


----------



## Koala (25 August 2004)

thx erst mal zotos!!

Also, das mit der Benutzerverwaltung hab ich auch probiert. Also, benutzer angelegt, Passwort vergeben und die Controlls hab ich das bei Berechtigungen dann "Bildwechsel" angegeben.

Wenn ich dann auf dem Button raufklicke, dann kommt so was in der Art  "Sie haben keine Berechtigung" und des wars. 

Leider keine Passwortabfrage !!


----------



## zotos (25 August 2004)

ich kenne ja die VEr 6 nicht aber bei der version 5.1 muss mann sich via Hotkey anmelden. Die findet man dort unter Projekteigenschafften Hotkeys logon logoff. Ich habe nach einer Möglichkeit gesucht das via Button zu machen und hier im Forum hilfe bekommen http://www.sps-forum.de/phpBB2/viewtopic.php?t=1017


----------



## Koala (27 August 2004)

Leider funktioniert des mit:

#include "apdefap.h" 
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) 
{ 
#pragma code ("useadmin.dll") 
#include "PWRT_api.h" 
#pragma code() 
PWRTLogin('c'); 



}

leider nicht. 
Beim übersetzen hab ich folgende Fehlermeldung:
line 2: error (0086) : function `_main` does not return a value

hab mir gedacht, ein return 0 oder ein return 1 würde abhilfe schaffen, dem ist aber leider nicht so. 

Einen Tip für ein pop- up fenster unter wincc at noch keiner für mich??


----------



## jogi (27 August 2004)

Hi Koala,

hast Du bei

 return (0);

an die Klammern gedacht, oder die nur in Deinem Post weggelassen ?

Gruß Jörg


----------



## Koala (27 August 2004)

hi  jörg,

erst mal thx für deine Antwort!

Also egal ob mit oder ohne klammern, ich bekomm dann eine fehlermeldung:

error (0040):<type> expected before `return`


----------



## zotos (27 August 2004)

Ich habe den Code ja nicht erfunden.
Bei mir hat der auf anhieb gefunzt, einfach in WinCC einen Button nehmen, sich zu der C eingabe Links Klick des Button bewegen und den folgenden Code dort zwischen *{* und *}* einfügen.


```
#pragma code ("useadmin.dll") 
#include "PWRT_api.h" 
#pragma code() 
PWRTLogin('c');
```

Du musst an einer anderen Stelle sein. Der Rückgabewert der Beispiel Funktion lautet *void* == also nichts, da bekommst Du mit einem "return" auf jeden fall Ärger.


#include "apdefap.h" 
*void *OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) 
{ 
#pragma code ("useadmin.dll") 
#include "PWRT_api.h" 
#pragma code() 
PWRTLogin('c'); 

}


----------



## jogi (27 August 2004)

hmm...

da muß ich leider passen, habe keine V6.   

bei V5.1 funktioniert das obige Beispiel genau, wie abgedruckt, ohne returns oder anderem.

Frag mal beim support an, vieleicht gibts ja bei V6 was anderes, neues


Gruß Jörg


----------



## Koala (27 August 2004)

Ich glaub, ich werd wieder zur Version 5 wechseln.

Wenn ich einen button bearbeite, dann lauten die ersten paar zeilen:

#include "apdefap.h"
 BOOL _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

Die ersten drei zeilen lassen sich leider auch nicht verändern   


euch beiden sag ich trotzem ein dickes fettes danke


----------



## jogi (27 August 2004)

Hi Koala,

ähm, ich glaube, Du bist im falschen Unterdialog :wink: 

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


----------



## zotos (27 August 2004)

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.


----------



## Koala (31 August 2004)

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??


----------



## KaffeeSaufenderKamin (1 September 2004)

Messageboxen in WinCC

Unter C aktion bei Mausklick



> #include "apdefap.h"
> void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
> {
> HWND Handle;
> ...



Unter VB aktion bei Mausklick



> Sub OnClick(ByVal Item)
> 
> Dim Antwort
> 
> ...




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
> ...


----------



## uz71 (2 September 2004)

*Anzeigen von Objekten je nach User*

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


----------



## Koala (2 September 2004)

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


----------



## Anonymous (14 November 2004)

*Fenster nach Login öffnen*



			
				Koala schrieb:
			
		

> Es funktioniert )
> 
> 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.



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. 

GlobalScript Runtime muss noch in der Anlaufliste (Rechnereigenschaften) eingetragen sein.

  Michael


----------

