Wie können wir helfen?

Print

Benutzer, Benutzergruppen und Benutzerprotokoll

Was Sie erstellen werden

Das fertige Projekt enthält zwei Gruppen, vier Benutzer, gruppengeschützte Steuerelemente, einen Anmeldebereich und ein Bedienprotokoll, das zeigt, wer was geändert hat.

Gruppe Benutzer Berechtigt zu (Beispiel)
Operators Operator1, Operator2 Maschine bedienen: Start und Stopp, Sollwerte, Rezeptauswahl
Maintenance Tech1, Tech2 Alles, was Operators dürfen, zusätzlich Einstellungsbildschirme, Protokollexport und Löschen des Protokolls

Namen und Rechte sind Beispiele; ersetzen Sie sie durch Ihre eigenen. Vergeben Sie für jeden Benutzer ein eigenes Passwort und behalten Sie kein Standardpasswort bei.

 

Bevor Sie beginnen

Verwenden Sie für alles in diesem Tutorial User Permission; dies ist die aktuelle Benutzerverwaltung von CommandHMI

  • User Permission (Project Manager > Setting > User Permission): benannte Benutzer und Benutzergruppen. Verwenden Sie diese.
  • Set user password (HMI Parameter Settings): 8 feste Benutzer mit den Stufen 1 bis 8. Dies ist die frühere Benutzerverwaltung, die aus Gründen der Kompatibilität mit älteren Projekten beibehalten wurde. Verwenden Sie sie nicht in neuen Projekten und mischen Sie die beiden nicht.

Die beiden Gruppen anlegen

Legen Sie zuerst die Gruppen an, damit sie vorhanden sind, wenn Sie die Benutzer hinzufügen.

  1. Öffnen Sie im Project Manager Setting und doppelklicken Sie auf User Permission.
  2. Verwenden Sie Add user group und geben Sie diesen Namen ein: Operators
  3. Wiederholen Sie den Vorgang für Maintenance
  4. Lassen Sie die Standardbenutzer und -gruppen unverändert. Die Software erlaubt es nicht, sie zu löschen.

Halten Sie die Gruppennamen kurz: Das HMI zeigt die aktuelle Gruppe über LW63200 an, das 32 Zeichen fasst.

 

Die 4 Benutzer anlegen

Fügen Sie jeden Benutzer im selben Dialog hinzu und weisen Sie ihn genau einer Gruppe zu.

  1. Verwenden Sie in User Permission die Funktion Add user.
  2. Geben Sie den Benutzernamen und ein Passwort ein und wählen Sie dann die Gruppe aus.
  3. Wiederholen Sie den Vorgang für die vier unten aufgeführten Benutzer.
  4. Bestätigen Sie mit OK und speichern Sie das Projekt.
  • LW60838~60853 zeigt den Namen des aktuell angemeldeten Benutzers an (ASCII, Länge 32)
  • LW63200~63215

 

 

Steuerelemente nach Gruppe einschränken

Der Zugriff wird pro Steuerelement festgelegt (Bit switch, Word switch,..). Die Registerkarte Advanced bestimmt, wer es bedienen darf, die Registerkarte Visibility bestimmt, wer es sehen kann.

  1. Fügen Sie ein Steuerelement wie Bit switch hinzu und öffnen Sie die Registerkarte Advanced.
  2. Aktivieren Sie die Option für die benutzerbasierte Zugriffskontrolle und wählen Sie die zulässigen Gruppen aus.
    • Steuerelement auf Bedienerebene: Operators und Maintenance zulassen
    • Steuerelement nur für die Instandhaltung: Maintenance zulassen
  3. Um ein Steuerelement auszublenden, statt es zu sperren, setzen Sie dieselbe Option auf der Registerkarte Visibility.

 

Nur Eingabe-Steuerelemente verfügen über diese Option: bit button, word button, screen button, function button, multi-function button, multi-state button, numeric input, ASCII input, combo box, radio button, stepping button, slider und recipe selector. Anzeige-Steuerelemente können nur über die Registerkarte Visibility ausgeblendet werden.

Anmeldung, Abmeldung und Anzeige des aktuellen Benutzers

  • Anmeldeschaltfläche: siehe „Function Button“ Log on
  • Abmeldeschaltfläche: siehe „Function Button“ Cancel user login
  • Anzeige, wer angemeldet ist
    • Name des aktuellen Benutzers, ASCII Display, Monitor address LW60838, Total 32
    • Name der aktuellen Gruppe, ASCII Display, Monitor address LW63200, Total 32

Platzieren Sie diese vier Steuerelemente in einer Kopfzeile, die auf jedem Bildschirm sichtbar ist; ein öffentlicher Bildschirm eignet sich gut dafür.

Um die Abmeldung über ein Skript oder über die SPS auszulösen, setzen Sie LB60133 auf 1. Das Bit wird automatisch zurückgesetzt, sobald die Abmeldung erfolgt ist.

Das Bedienprotokoll mit dem historischen Protokoll konfigurieren

Wir verwenden:

  • LW1000~1015 : Benutzername, der ins Protokoll geschrieben wird (32 ASCII-Zeichen, frei wählbarer Bereich, anzupassen)
  • LW39900~39915 : Kopie des vorherigen Benutzernamens (frei wählbarer Bereich, anzupassen)
  • LW60838~60853 : Benutzername des angemeldeten Benutzers (32 ASCII-Zeichen, schreibgeschützt)
  • LB1000 : Trigger für die Aufzeichnung von Ereignissen
  1. Erstellen Sie ein historisches Datenprotokoll
  2. Geben Sie die gewünschte maximale Anzahl von Einträgen an (hier 50)
  3. Fügen Sie LB1000 als Aufzeichnungstrigger hinzu, mit Auto-Reset

Das Skript, das Benutzerwechsel und Abmeldungen überwacht

#include "MacroInit.h"
//#include "subFun1.c" //Example
#define USER_NAME_ADDR 60838 // LW60838~60853 : user name of the logged-in user (32 ASCII characters, read-only)
#define PREV_NAME_ADDR 39900 // copy of the previous user name (free-form field, to be adapted)
#define LOG_TEXT_ADDR 1000 // LW1000~1015 : user name to bewrite in log (32 ASCII characters, free-form field, to be adapted)
#define USER_NAME_WORDS 16 // 32 char = 16 words
void Macro_main(IN *p)
{
MarcoInit
int i;
int changed = 0;
char logoutText[] = "User logout";
// Check if logged user changed
for (i = 0; i < USER_NAME_WORDS; i++) { if (LocalWord[USER_NAME_ADDR + i] != LocalWord[PREV_NAME_ADDR + i]) { changed = 1; LocalWord[PREV_NAME_ADDR + i] = LocalWord[USER_NAME_ADDR + i]; } } if (changed) { if (LocalWord[USER_NAME_ADDR] == 0) { // Logout : empty name -> fixed text
for (i = 0; i < USER_NAME_WORDS; i++)
{
LocalWord[LOG_TEXT_ADDR + i] = 0;
}
for (i = 0; logoutText[i] != 0; i++)
{
LocalWord[LOG_TEXT_ADDR + i / 2] |= (unsigned short)logoutText[i] << (8 * (i % 2));
}
}
else
{
// Login : copy of the user’s name
for (i = 0; i < USER_NAME_WORDS; i++)
{
LocalWord[LOG_TEXT_ADDR + i] = LocalWord[USER_NAME_ADDR + i];
}
}
// Trigger for recording events
LocalBit[1000] = 1;
}
}

 

Fügen Sie es in ein neues Skript (New script) des Script Editor ein, kompilieren Sie es und rufen Sie es dann alle 500 ms auf.

und fügen Sie das Steuerelement Historical data display hinzu

So erhalten Sie Folgendes:

Zum Testen können Sie mit bit buttons Schaltflächen für Benutzerwechsel und Abmeldung hinzufügen

Sie können das Projekt hier herunterladen