Sepasoft's batch mode creates a provider tag called MES by default. When you insert the exposed phases of type equipment, they have many parameters protected against writing because naturally they are parameters that Sepa updates. If I need to read this information from my PLC, I just connect it with a tag (OpcItemPath property) and it works.
My problem... Every time I modify a phase, the tag is regenerated within the provider tag and I lose all the links to the PLC, having to recreate them again by hand. I thought about establishing rules and using some scripts to automatically link my phases with the PLC, but this works partially for me because the tags that are in read mode allow me to change the OPC node manually, but I don't have access from the script. I also tried to remove the read mode to configure them, but I don't have the permission from the script and I can do it by hand.
I also have the same problem that so far I have not been able to solve, but seeing the image of your problem I have a different question that I hope you help me solve, I would be grateful. I see that you have the tag 'HandShake_Ack' and the 'HandShake_Valid' as OPC, in your controller logic how are you using it? The point is that in my logic in the controller I had only 2 tags as OPC, the 'Command_Number' and the 'State_Number', but I had problems in that the phases, randomly, I was placed in a status of 'Internal Fault'. Which, after analysis, was because I didn't get feedback from the phase every time I sent a status number (at least that's what I saw), and so I started to also use the 'Status' tag as OPC in my plc logic as a feedback of the phase status. How are you working the controller logic with the phases? Do you use those 'HandShake...' in any way?
If you put the phase in PLI/PLC mode, the PLC manages the states. This means that Sepa sends you the commands and you must return the states. Check the documentation for the PLI topic, it is quite well explained how to do it. As for the handshake, in my opinion, it has nothing to do with the state of the phases. You use it only to see if the communication is alive. The batch sends you the value of a counter that you have to return using the PLC as ACK. If the difference is greater than 5, you have communication problems. Attention, I have it wired but I am not using it because when you put the recipe in manual or semi-automatic mode it stops working. This is something I have to see later. For now, I have discarded it because I found this behavior.
I now understand what you are trying to achieve; automatically binding your PLC to the newly generated/updated batch parameters.
In your first screenshot you try to write a value to the batch tag, which gives an AccesDenied error. This is normal as you have defined it as a recipe parameter, which means it is unwriteable.
A way to achieve the bindings is to edit the UDT of the batch phase:
I'm not trying to write the value of a recipe variable, I'm trying to connect it to an OPC tag on the PLC. The problem is that since it's a recipe variable, all the properties are writing protected, it would be better if only the value, which is what modifies the recipe, was protected against writing.
The variable properties are defined during the development of the project or dynamically by scripts, bindings... etc. It would be convenient if these were not protected, if I make a udt by hand it can be done, I think the problem lies in the fact that the udt that Sepa generates has everything protected if it's a recipe variable, I would be happy if the value of the variable was R and the properties R/W. For now I set the properties to R/W by hand every time I need it and then I'll launch my configuration wizard/script.
I hope I've explained it better... if you've had any experience in this regard that you can share I'd appreciate it.