Every button requiring confirmation is a go to display button, which calls a pop up window.
Pretty straightforward. Every button that requires a "are you sure" popup is not a momentary button, instead it's a Go To Display button. It calls a popup that you create as follows...
The pop up window has four components:
1. Generic "Confirm Operation" header
Literally just a header that says something like "Are You Sure?" or "Please Confirm Action". If you want, you could include a warning symbol of some sort to draw attention to it.
2. Local message display, with the Value connection set to #1
The "Local Message Display" object is a pane that displays any number of pre-defined messages. You create a message list in FTView, which consists of a series of "Message Number" and "Message Text" definitions. For example, message 1 might be "are you sure you want to start the dinglehopper pump". Message 2 might be "have you asked permission to unload the chickens". And so on. In the Local Message Display properties, you point it to a Connection tag, which the Local Message Display will check to see which message should be displayed. If the connection tag is 1, it will display "are you sure you want to start the dinglehopper pump". If the connection tag is 2, it will display "have you asked permission to unload the chickens". And so on. But in
this case, you're not going to point the Local Message Display to a tag, you're going to point it to a tag
placeholder: #1.
3. Confirm button, which is a macro button. The macro writes 1 to #2, and also writes 1 to your "close all on top displays" global connection tag
Reasonably self explanatory. Create a "confirm" button which is a macro button. Then you will need to create a macro for it to run. The macro will set two tags to 1. The first is again a placeholder (#2), and the second is a tag that you have assigned to the "close all on top displays" global connection (look for global connections and read up on them if necessary). This way, when you press "confirm", it writes a 1 to a tag so you record the "confirm" action, and then closes all on top displays, including itself.
4. Cancel button, which is actually a Close Display button
Should be straightforward
Then for each of your go to display buttons that call the popup, you assign a parameter file which gives the message number for #1, and the pushbutton tag in the PLC to #2.
Read up on parameter files. Basically, each button that you changed from a momentary button to a Go To Display button will call the same display, but with a different parameter file, according to which action you want confirming. Inside that parameter list, you determine which message you want your Local Message Display to show (e.g. if you want the "chickens" message, you'd set placeholder #1 to a value of 2) and which tag is set to 1 in your PLC if the operator presses confirm (i.e. set placeholder #2 to {[PLC]Unload_Chickens_HMI_Button}). Then your "unload chickens" pushbutton calls the popup you created, with the specific parameter file that relates to it.
Two gotchas: make sure you reset both the PB tag in the PLC, and the "close all on top displays" global connection back to zero afterward. The HMI will not do that for you.
Since you don't have a momentary button any more, there's nothing to set your PLC tag (or your "close displays" tag) back to zero. You'll have to unlatch them both in the PLC once you've received whatever confirmation was just given.
Hope that helps - if you can't get it to work, give us some more specific detail on where you get stuck and we'll try to help further