Hello everyone! I want to share that I’m currently on a learning journey. I’m working with an existing program that I didn’t create but have been tasked with making certain modifications. While I have some background in this area, I haven’t written logic for Human-Machine Interfaces (HMIs) through a Programmable Logic Controller (PLC) before. Specifically, we need to implement a password protection feature for a numeric input field on the HMI—just for that input button, not the entire interface. Usually, I would handle this security directly within the FactoryTalk (FT) programming environment, but there’s already a security framework set up using Studio 5000. I believe I can adapt that existing logic to secure the input button. However, I’m not entirely sure how to proceed with adding the necessary instruction to the logic. Has anyone had experience with this? I’d greatly appreciate any guidance or suggestions you might have. For your reference, I’ve included links to screenshots of the login and input button logic from the program: - [Login Logic Screenshot](https://drive.google.com/file/d/1NcGV8XQAwNWds2gZd9u_Q3WqjQe0Jfk5/view?usp=sharing) - [Input Button Logic Screenshot](https://drive.google.com/file/d/1kdvrMEp4qu4CPGCBgdp4vcnvU3F5_U5G/view?usp=sharing) Thank you!
You can conceal the real button behind a panel that becomes transparent when the ActualUserAccessLevel meets your specified criteria. To indicate its existence without granting access, color the "inactive" button in a neutral grey shade. This way, users are aware of the button's presence, but they cannot interact with it.
To hide elements in your project, simply right-click on the input field and select the "Animation > Visibility" option from the menu. For the panel that janner_10 mentions, apply the opposite logic to manage its visibility effectively.
I completely agree with janner_10's suggestion. To enhance functionality, utilize the PLC Tag `ActualUserAccessLevel`. Start by right-clicking on your numeric input button and navigating to **Animation > Visibility**. In the visibility expression editor, construct an expression that incorporates this tag: `{[PLC_shortcut]ActualUserAccessLevel} >= 1`. When this expression evaluates to true, the button will be displayed. Apply the same expression to the gray panel, configuring it to remain invisible. This approach ensures that any user with an access level of zero will not see the numeric input button, while the grayed-out button panel remains visible. I'm not certain about your specific access levels, but the concept should be clear.
Understood! I initially thought I needed to incorporate a specific code into the PLC program, but now I realize I can utilize the tag directly within the HMI application. It's easy to get caught up in one way of thinking. Thank you for the clarification!
The method outlined by these knowledgeable gentlemen is undoubtedly the most effective approach. However, to directly address the initial inquiry, here’s a step-by-step guide for FTViewME and PLC configurations: **In FTViewME:** 1. Begin by opening the display that contains the numeric input you wish to manage. 2. Right-click on the background of the screen and select "Display Settings" from the context menu. 3. Under the "Display Number" section, assign a unique numerical value, such as 10, and ensure to save your changes. **In PLC:** 1. Create a DINT (Double Integer) tag labeled "CURRENT_HMI_SCREEN." 2. Set up another DINT tag named "HMI_PW_INPUT." 3. Define a DINT tag entitled "NUMERIC_INPUT_PW" for the numeric password. 4. Establish a BOOL (Boolean) tag labeled "NUMERIC_INPUT_UNLOCK." **Continuing in FTViewME:** 1. Navigate to "Global Connections" in the project tree and double-click it. Go to the "Display" tab, and assign the "CURRENT_HMI_SCREEN" tag to the "Replace Display Number" value. 2. Place an additional numeric input field on the screen, ideally positioned near your protected numeric input, and link its value to the "HMI_PW_INPUT" tag. **Setting Up in PLC:** 1. Develop a logic rung that states: IF "CURRENT_HMI_SCREEN" is equal to 10 AND "HMI_PW_INPUT" equals "NUMERIC_INPUT_PW" (the numeric password you assigned), THEN energize "NUMERIC_INPUT_UNLOCK." To effectively protect your numeric input, incorporate a visibility animation that only displays the input when the "OTE" (Output Energized) is activated. Additionally, it's advisable to implement logic that resets the password input to 0 after a specified timer or upon navigating away from the screen. The "CURRENT_HMI_SCREEN" tag will dynamically reflect the value of the currently displayed screen on the HMI. When users access the designated screen and input the correct password, they will gain visibility to the protected numeric input. This setup may require more time to implement, but it offers the advantage of easily modifying the password in the future—or adding multiple passwords to track user access—without needing to re-upload the HMI program. It's essential to document your logic thoroughly and select tag names that clearly describe their purpose to enhance maintenance and understanding.
✅ Work Order Management
✅ Asset Tracking
✅ Preventive Maintenance
✅ Inspection Report
We have received your information. We will share Schedule Demo details on your Mail Id.
Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.