Benutzerrollen
Das Grundgerüst der SPS kennt keine Benutzer, sondern nur Rollen. Daher geht die weitere Beschreibung auf die Bedeutung der Rollen ein.
Eine Anwendung (z. B. TcHmiBa) definiert Benutzer und weist diesen dann eine entsprechende Rolle zu.
Entsprechend der Rolle eines angemeldeten Benutzers werden in der Anwendung Funktionen verfügbar gemacht oder nicht.
Rollen
Für unterschiedliche Anwender sind verschiedene Zugriffsrechte vorgesehen:
Rolle | Beschreibung |
---|---|
Guest | Geringste Zugriffsberechtigungen. |
Basic | Eingeschränkte Zugriffsberechtigungen. |
Advanced | Erweiterte Zugriffsberechtigungen. |
Expert | Vollständige Zugriffsberechtigungen. |
Internal | Nur für den Beckhoff-Support. |
![]() | Der Zugriffsbereich des Benutzers wird an unterschiedlichen Stellen in der Anwendung ausgewertet, um bestimmte Funktionen freizugeben bzw. zu verbergen. |
Anpassung der Zugriffsrechte aus der PLC heraus
Es gibt die Möglichkeit, Zugriffsrechte aus der PLC heraus zu definieren.
Dies allerdings geht nur initial, also nicht zur Laufzeit, und bezieht sich dann auf alle Objekte, die dieses Property haben.
Dazu wird in einem geeigneten Programmteil, vorzugsweise im MAIN, eine Instanz des FB_BA_Param angelegt und mit den entsprechenden Schreib- und Leserechten vorinitialisiert.
![]() | Die Initialisierung reicht dabei aus - ein weiterer Aufruf im eigentlichen Programmteil erfolgt nicht. |
Beispiel:
Im folgenden Beispiel sollen an zwei Parametern die Lese- und Schreibrechte verändert werden:
- Acknowledge (bAcknowledgeRm): Lesen ab Rolle Basic, Schreiben ab Rolle Expert.
- DefaultValue (bDefaultValue, fDefaultValue, nDefaultValue): Lesen ab Rolle Internal, Schreiben ab Rolle Advanced.
Diese Anpassung erfordert die Instanziierung eines FB_BA_Param, hier Parameters genannt, die sich wie folgt gestaltet:
Parameters : FB_BA_Param := (DefReadAccess := F_BA_ParameterRolesBuilder()
.Set(E_BA_Parameter.eAcknowledgeRm, E_BA_Role.eBasic)
.Set(E_BA_Parameter.eDefaultValue, E_BA_Role.eInternal)
.Build(),
DefWriteAccess := F_BA_ParameterRolesBuilder()
.Set(E_BA_Parameter.eAcknowledgeRm, E_BA_Role.eExpert)
.Set(E_BA_Parameter.eDefaultValue, E_BA_Role.eAdvanced)
.Build());
Die Properties DefReadAccess und DefWriteAccess, stellen jeweils ein Array der verschiedenen Parameter mit den dazugehörigen Rollen als Mindestzugriff dar und dienen nur zur Veränderung der Rollen, welche allerdings schon vordefiniert sind.
Die Set-Methoden verändern für einen bestimmten Parameter (E_BA_Parameter) die Mindest-Zugriffsrolle (E_BA_Role). Für jeden Parameter, dessen Zugriffsrecht verändert werden soll, ist jeweils eine Set-Methode hinzuzufügen.
Abgeschlossen wird die Parametrierung der Properties jeweils mit einem Aufruf der Methode Build. Diese gilt sowohl für das Property des Lesezugriffs DefReadAccess, als auch für das Property des Schreibzugriffs DefWriteAccess.
Die oben aufgeführte Implementierung verändert den Lese- und Schreibzugriff aller Objekte, die die Properties bAcknowledgeRm und DefaultValue (bDefaultValue, fDefaultValue, nDefaultValue) besitzen. Es ist auch möglich nur den Lese- oder nur den Schreibzugriff zu ändern, die Änderung muss keineswegs paarweise geschehen.
Am Beispiel eines AV-Objektes stellt sich die Änderung im Site-Explorer wie folgt dar:
