WinCC TIA V15 WinCC Professional - Benutzergruppen / Berechtigungsnummern

zeata

Level-2
Beiträge
42
Reaktionspunkte
10
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich könnte mal eure Hilfe gebrauchen.
Ich habe ein bestehendes Advanced RT Projekt, welches ich ein ebenfalls bestehendes Professional RT Projekt integrieren muss.
Dabei habe ich folgende Probleme bei der Benutzerverwaltung:
Im Urprungsprojekt (Advanced) wird die Gruppennummer und der Benutzername der Benutzer über "LeseGruppennummer" und "LeseBenutzername" in je eine interne Variable geschrieben. Diese internen Variablen werden an vielen stellen für Bedienbarkeit/Animation/etc. genutzt.
Im neuen Projekt (Professional) sind diese Funktionen ("Lese....") nicht mehr verfügbar. Den Benutzernamen habe ich bereits hinbekommen über ein C-Script im Aufgabenplaner getriggert.

#include "GlobalDefinitions.h" void Benutzer_Namen() { //Fügen Sie den Code ab hier ein SetTagChar("__Benutzer", GetTagChar("@CurrentUser")); //printf("Script aufgerufen\r\n"); //printf("Benutzer: %s\r\n", GetTagChar("__Benutzer")); }

Das Problem bereitet mir jetzt die Gruppennummer, da diese ja in der Form nicht mehr im Professional existiert.
Dafür benötige ich jetzt einen neuen Ansatz. Hättet ihr Ideen dazu?

Gibt es eine Möglichkeit den Namen der Gruppe in eine Variable zu schreiben?
Oder die Nummer der eingestellten Berechtigung?

Benutzergruppen.PNG

Das Auswerten der Benutzernamen in einem Script und und damit die Nummer selbst zu generieren ist leider keine Lösung, da dies nur solange funktioniert bis jmd in der Benutzerverwaltung einen neuen Benutzer anlegt.

Über Lösungsvorschläge wäre sehr Dankbar

Gruß Michael
 
Habe es mittlerweile selbst gelöst.

#include "pwrt_api.h" #include "GlobalDefinitions.h" BOOL Berechtigung_Gruppe(int Level) { //Fügen Sie den Code ab hier ein #pragma code ("useadmin.dll") DWORD p = 0, s = 0; BOOL PWRTCheckPermission (p,s); return PWRTCheckPermission(Level, 1); }

Das Script gibt mir TRUE zurück wenn der eingeloggte User die Berechtigung mit der Übergebenen Nummer (Level) hat.
In meinem anderen Script für den Benutzernamen mache ich dann eine If - else Anweisung und generiere mir meine Gruppennummer selbst.

if (Berechtigung_Gruppe(1)) { SetTagSWord("__BenutzerNr_W", 9); //printf("%i", GetTagSWord("__BenutzerNr_W"), "\n"); }
 
Zurück
Oben