User rights HMI PV800 Allen-Bradley

akathomas

Member
Join Date
Nov 2015
Location
Faaborg
Posts
16
Hey guys

I have created 3 logins on my PV800 (software CCW).
Admin
Maintenance
User

I have created a login button, and I can login without a problem.

Is it possible to 'sent' wich user is activer, to my PLC (ML1400).

When Maintenance is active, i want to activate some buttons and settings on the HMI by using the visibilty tag on some of the buttons. And when Admin is active, 'he' has some other features.

Or can you do it all on the HMI?
 
Not 100% sure on the CCW software, but it looks like if you right click on the button and get "button properties", for can assign a system tag to visibility. Looks like either "syscurrentuser" or "syscurrentuserrights" is what your looking for. If so- no need in the PLC.
 
Yes that was my thought as well to begin with.
But syscurrentuser is a status tag, so in my case the visibilty tag will say admin, maint or user. So when will the button be visible? I cant do anything more with this tag as it is just a read tag. If i could make an comparitor saying when Syscurrentuser = Admin, then the button is visible, then it would be great!
 
I poked my head around in the software and can't find a place to do it either. I thought you may be able to assign different rights and then make a memory tag that said "rights=1". I have only used CCW once (usually use FTV) so I can't find any place to do it unless you send the user back to the plc, compare, and then send a bit for visibility...
 
I'm afraid no, you cannot do it all in the HMI. You must also use the controller...

Steps...

Setup the User Accounts in CCW under the Settings tab (you have this done)

In CCW in the Tag Editor, create an External string tag to hold the System "Current User" string data...

Example:

External Tab:
Tag_Name: "Curr_User"
Data Type: String
Address: ST10:0
Controller: ML1400

Go to Global Connections and under System Tags find "Current User" and assign the "Curr_User" String tag to its Destination Tag

Note: The Global Connections System Tag "Current User" holds the actual name of the currently logged in user according to the usernames defined under Settings>Security. The System Tag "Current User" will now always pass on its user string data to the Destination Tag "Curr_User", which will always pass it on to the defined String address in the controller (ST10:0)

Create 3 External Boolean tags to be used for visibility switching...

Example:

External Tab:
Tag_Name: "USER_Admin"
Data Type: Boolean
Address: B3:50/1
Controller: ML1400

Tag_Name: "USER_Maintenance"
Data Type: Boolean
Address: B3:50/2
Controller: ML1400

Tag_Name: "USER_User"
Data Type: Boolean
Address: B3:50/3
Controller: ML1400

For each Screen Object that requires one of the above boolean visibility references...

Go to the Object's Properties>Connections and assign the relevant boolean tag to the Visibility Tag property

Create string tags in the MicroLogix 1400 program for the current user and predefined login users of the PanelView Component...

Example:

String Data File ST10:
ST10:0 = <Current User> (Read in from PVc)
ST10:1 = "Admin"
ST10:2 = "Maintenance"
ST10:3 = "User"

In the MicroLogix 1400 program, use ASR (ASCII String Compare) instructions to compare the string data from the PanelView Component with the predefined User strings and if any of the ASR instructions evaluate TRUE, then set the equivalent boolean bit to indicate that user is logged in...

Example:

ASR Instruction 1:
Source A: ST10:0 "Admin" (Current User read in from PVc)
Source B: ST10:1 "Admin" (Predefined user string)

Instruction = TRUE
SET OTE B3:50/1 = TRUE
PVc External Boolean Tag "USER_Admin" = TRUE

ASR Instruction 2:
Source A: ST10:0 "Admin" (Current User read in from PVc)
Source B: ST10:2 "Maintenance" (Predefined user string)

Instruction = FALSE
SET OTE B3:50/2 = FALSE
PVc External Boolean Tag "USER_Maintenance" = FALSE

ASR Instruction 3:
Source A: ST10:0 "Admin" (Current User read in from PVc)
Source B: ST10:3 "User" (Predefined user string)

Instruction = FALSE
SET OTE B3:50/3 = FALSE
PVc External Boolean Tag "USER_User" = FALSE

In this Example the user "Admin" is logged in and so only the "USER_Admin" boolean tag will be TRUE in the PVc application. All Objects that use the "USER_Admin" visibility tag reference will now be visible.

You get the jist?

Regards,
George
 
Last edited:
Thank you so much! I get it except one thing, i cant figure out; where do I predefine Strings ST10:1 ST10:2 and ST10.3 to Admin, Maintenance and User in the ML1400? :-(
 
Okay...

Is it that you do not know how to create a String Data File (ST)?

...or...

Is it that there is one already existing and you just do not know how to enter the string data?

If you currently do not have a String Data File you can use then it might be best to create one just for this feature...

Right-click Data Files>New...

The "Create Data File" window should be open...

The "File" number should default to the next available file number after the highest existing Data File number. In my example this was file number "10". You can change it to any available number but just leave it at whatever it is if you do not have any preference...

Change Type to "String"...

Give it a suitable "Name", such as "CURR_USER"...

A description "Desc" is optional...something like..."Object Visibility - Which User is logged in?"...

Set the number of "Elements" to "4". This will give you four String addresses...

"OK" that and you should then see a new Data File created at the bottom of the Data Files list...

Example:

Data File:
ST10 - CURR_USER ("10" = file number; yours may be different)

Double-click your new String Data File to open it...

You should now see the four elements or String addresses...

Example:

ST10:0 (you do not enter any predefined string here; the PVc will write the Current User to this address)
ST10:1 (use for "Admin")
ST10:2 (use for "Maintenance")
ST10:3 (use for "User")

To enter the predefined User strings...

Double-click on "String Text" for each of the 3 predefined elements and enter your User strings...

ST10:1 = "Admin"
ST10:2 = "Maintenance"
ST10:3 = "User"

The "LEN" column is the length of the string in characters and is automatically generated as you type in the string...

You can optionally add a Description for each element as well...

Example Descriptions:

ST10:0 "PVc Current User"
ST10:1 "Predefined User "Admin"
ST10:2 "Predefined User "Maintenance"
ST10:3 "Predefined User "User"

...and that should be that.

If you are still not sure on any of that or need assistance with some of the logic, then shoot.

Regards,
George

String_Data_File.jpg
 
Last edited:
HAHA i was getting a bit frustrated. I know how to create strings and also did the exact same thing you describe, before you came with your first post... But when I wrote ADMIN in the string and clicked on to the next, ADMIN disappeared. And I was about to go mental. Untill i just remembered that you have to press enter for it to store the text in the string 🔨🔨

Your suppurt has been awesome! Very detailed (except "hit ENTER":oops:)

Thank you so much!
 
Oh Lord! :rolleyes:

Well, technically, I did say to "enter your User strings"?

The act of entering something, computer-wise, should imply...

...you click...you type...you press Enter... :nodi:

So I reckon I'm covered! :site:

But my coordinator does it all the time, especially in RSLogix 500. He calls me from time to time when I'm at home and says...

..."I cannot change a bit value in the Data Table?"...

He keeps entering a "1" and it won't "stick"? I go off into all sorts of permutations about the scan sequence and rung orders and hidden instruction references overwriting the value, blah, blah, blah...

Eventual I get him to spell it out plain and simple...

..."What are you doing EXACTLY when you try to enter it in?"...

..."Ermm?...I click the "box", change the "0" to a "1", and then I click with my mouse somewhere outside the "box" and it changes back to "0"?"...

Oh boy...:whistle:

This job can really make you laugh, sometimes, the rest of the time, crazy.

Anyway, I'm glad you're all sorted...

Regards,
George

Computer: "PRESS ANY KEY..."
Homer J. Simpson: "Where's the ANY key?"

wheres-the-any-key.jpg
 
Last edited:
Haha its funny now but when you are in the middle of it, you get so ****ed :mad:🔨

But the good thing about this - I will NEVER forget it again (until next time...)
 

Similar Topics

Hi all! Suddenly, I can not connect any PC HMI application to S7-1200 (6ES7 214-1AG31-0XB0) via Ethernet. Both HMIs, WinCC Advanced V11 SP2, and...
Replies
2
Views
8,960
Hello! Can someone please help me! I would like to write my own Login function, now I am using this code, which I found in ebooks of my iFix...
Replies
0
Views
2,166
Hi guys! I'm working in Studio 5000 and have a bunch of armorstarts there (+- 40). I need to set up parameters for each of them, mostly just same...
Replies
0
Views
75
Hello is their a way to create a password that contains the following variables: 1) number of the day in the month, example 07 the 7th day in...
Replies
2
Views
497
Howdy Everyone, I am doing a project with micrologix 1400 1762-L32BWA, where we talk thru message bits one direction and talk thru the discrete...
Replies
1
Views
396
Back
Top Bottom