Hoe kunnen we helpen?
Gebruikers, gebruikersgroepen en gebruikerslogboek
Wat u gaat bouwen

Het voltooide project bevat twee groepen, vier gebruikers, per groep beveiligde besturingselementen, een aanmeldgedeelte en een bedieningslogboek dat toont wie wat heeft gewijzigd.
| Groep | Gebruikers | Mag (voorbeeld) |
|---|---|---|
| Operators | Operator1, Operator2 | De machine bedienen: starten en stoppen, setpoints, receptselectie |
| Maintenance | Tech1, Tech2 | Alles wat Operators mogen, plus instellingsschermen, logboekexport en het wissen van het logboek |
De namen en rechten zijn voorbeelden; vervang ze door uw eigen namen en rechten. Geef elke gebruiker een uniek wachtwoord en behoud geen enkel standaardwachtwoord.
Voordat u begint
Gebruik User Permission voor alles in deze handleiding; dit is het huidige gebruikersbeheer van CommandHMI
|
![]() |
De twee groepen aanmaken
Maak eerst de groepen aan, zodat ze bestaan wanneer u de gebruikers toevoegt.
- Open in de Project Manager Setting en dubbelklik op User Permission.
- Gebruik Add user group en voer deze naam in:
Operators - Herhaal dit voor
Maintenance - Laat de standaardgebruikers en -groepen staan. De software staat niet toe dat ze worden verwijderd.
Houd groepsnamen kort: de HMI toont de huidige groep via LW63200, dat 32 tekens bevat.
De 4 gebruikers aanmaken
Voeg elke gebruiker toe in hetzelfde dialoogvenster en wijs hem toe aan precies één groep.
|
![]() |
Besturingselementen per groep beperken
De toegang wordt per besturingselement ingesteld (Bit switch, Word switch,..). Het tabblad Advanced bepaalt wie het mag bedienen, het tabblad Visibility bepaalt wie het kan zien.
|
![]() |
Alleen invoerelementen hebben deze optie: 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 en recipe selector. Weergave-elementen kunnen alleen via het tabblad Visibility worden verborgen.
Aanmelden, afmelden en weergave van de huidige gebruiker
- Aanmeldknop: zie “Function Button” Log on
- Afmeldknop: zie “Function Button” Cancel user login
- Weergave van wie is aangemeld
- Naam van de huidige gebruiker, ASCII Display, Monitor address LW60838, Total 32
- Naam van de huidige groep, ASCII Display, Monitor address LW63200, Total 32
Plaats deze vier besturingselementen in een kopbalk die op elk scherm zichtbaar is; een openbaar scherm is hier zeer geschikt voor.
Om af te melden vanuit een script of vanuit de PLC, zet u LB60133 op 1. De bit wordt automatisch gereset zodra het afmelden is voltooid.
Het bedieningslogboek configureren met het historische logboek
We gaan het volgende gebruiken:
- LW1000~1015 : gebruikersnaam die in het logboek wordt geschreven (32 ASCII-tekens, vrij te kiezen veld, aan te passen)
- LW39900~39915 : kopie van de vorige gebruikersnaam (vrij te kiezen veld, aan te passen)
- LW60838~60853 : gebruikersnaam van de aangemelde gebruiker (32 ASCII-tekens, alleen-lezen)
- LB1000 : trigger voor het registreren van gebeurtenissen
|
![]() |
Het script dat gebruikerswissels en afmeldingen bewaakt
#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;
}
}
Plak het in een nieuw script (New script) van de Script Editor, compileer het en roep het vervolgens elke 500 ms aan.

en voeg het besturingselement Historical data display toe

Om dit te verkrijgen:

Om te testen kunt u met bit buttons knoppen toevoegen voor het wisselen van gebruiker en het afmelden

U kunt het project hier downloaden



