Multi PLC System - HMI Solutions

I have a project which requires 2x 3152 controllers running on the same network.
Each device is controlling 40+ profinet devices at around 3ms for some.
For the visualisation, I would like to place it on 1 unit with it displaying content from both PLCs.
My intial thought is to setup a profinet device, but i may run into issues here…

What would be the best approach?

TTY.PNG

What HMI device/software are you planning to use?
If the HMI device is running software that includes an OPC UA client, then that OPC UA client should be able to connect simultaneously to the OPC UA servers running on both PLCs. That solution would be relatively simple to set up and maintain.
If you are considering using a web browser and the HMI hosted on one of the PLCs, then one option would be to transfer data between the PLCs using OPC UA - i.e. the PLC that is hosting the HMI would be an OPC UA Client, and it would exchange data with the OPC UA Server on the other PLC.
There is information on the OPC UA Client feature in the Info Center, here:
OPC UA client The OPC UA client supports subscribing variables from connected servers and writing changes of local variables to connected servers. The PLCnext device establishes the connection automatically as soon as the server is available. When the connection gets lost, the OPC UA client tries to reestablish the connection continuously. There is also a Makers Blog article with an example of how to set up the OPC UA Client, here:
How to configure the OPC UA Client on a PLCnext Control device - PLCnext Community PLCnext Technology from Phoenix Contact is a unique, open ecosystem for modern automation that is capable of meeting all the challenges of the IoT world.

Thanks Martin,

I would like to persue the OPC approach. It is using the webHMI on the PLC.

My early findings is that OPC doesnt support UDTs.

I would like to setup arrays or udts for the transfer to limit the leg work required. I will explore further.

After following the information above, im still operating under 4hour trial conditions…
UAExpert seems to show server fine and can write ok ( for about an hour then stops working with error BadSecurityCheck ).
Client seems to be connecting ok according to notifications
PROBLEM : Each tag I specify in the client seems to generate a similar error
For the case Write OPC_HB_Send => OPC_HB_In
"Create DataMonitoredItem of ns=6;s=Arp.Plc.Eclr/OPC_HB_Send failed with status BadNodeIdUnknown "
The remote id i have specified is „s=Arp.Plc.Eclr/OPC_HB_In“, this value was copied from UAExpert

Regenerated certificates seemed to help resolve the issues.
Are there plans to support strings in OPC Client? Server seems to allow them.

STRING variables should be supported by the OPC UA Client, according to the Info Center:
OPC UA client The OPC UA client supports subscribing variables from connected servers and writing changes of local variables to connected servers. The PLCnext device establishes the connection automatically as soon as the server is available. When the connection gets lost, the OPC UA client tries to reestablish the connection continuously. image.png
I understand that you are in touch with the technical specialists in your local Phoenix Contact office. If you’re having trouble getting STRING variables to work, they can help.

Thanks Martin i will reach out to my local support aswell.
I want to summarise my problems at this point for all… See bullets below
I am using 2023.6.
2023-08-05 08 26 59.png2023-08-05 08 27 22.png2023-08-05 08 29 44.png2023-08-05 08 34 53.png2023-08-05 08 37 26.png2023-08-05 08 38 51.png2023-08-05 08 46 50.png
* Server can create strings without issue, but client does not allow me to select strings in mappings.
*
Creating even basic types do not always work for the client. I have observed some variables working fine in UAExpert, but not from client, whilst other were fine.
* …UAExpert Access Good. Note the timestamps… In the client, OPC_RecipeTransfer is set true at the same time as BCD_TransferData is updated . BCD_TransferData is a 800 word array which works perfectly.
… Client Variable Declaration - seems fine to me.
… OPC Clent Setup - Seems fine.
I have a small piece of logic that sets this value to true on the client at the same time as updating BCD_TransferData, but the server never gets the OPC_RecipeTransfer update.
Occasionally, the Client just stops updating anything, even though the notifications is showing connected - no errors.

Some further notes relevent to the points above.

                              * (1) Nothing to add on strings
                              * (2) After posting the above it occured to me that write may also require a seperate subscribe for 2 way values. I think this is not an ideal requirement, but it does solve point 2 above. 
                              * (3) After a "Write and Start Project", and have made any opc client variable change, I have discovered i must then reboot the client to get OPC Client functioning again. This is not ideal in a production environment. Is there any system variable that i can toggle to initiate an OPC Client reset?

With these points in mind, i can get the platform operational.

Thanks for the updates.
The issue with STRING variables looks like incorrect/incomplete information in the Info Center. I will ask for that to be corrected.
I will pass the other two points to the developers. I am fairly sure there is no way to reset the OPC UA client without also resetting the Runtime, but I will check.

Here is an update from the developers:
1. STRINGS in UA Client
This is an artificial limitation imposed by the OPC UA Client configuration page in PLCnext Engineer. As mentioned in the Info Center, the OPC UA Client does actually support the use of STRING variables. I have reported this artificial limitation in PLCnext Engineer and asked for this to be mentioned in the Info Center.
2. READ/WRITE Variables
Variables are either read or written by the eUA client. One direction is a subscription to changes on the remote client and the other direction is a subscription to changes of the local PLC.
The solution you mention is the only way to make an OPC UA Client variable both read AND write. There are technical reasons why it’s not possible to implement both Read and Write functions in a single configuration entry.
3. Updating the UA Client configuration without restarting the Runtime
Currently, the configuration of the UA Client is only reloaded during a „cold“ restart of the PLC. In firmware version 23.6 this will only require a „warm“ restart. As a work around: Renaming any variable that is marked with the „OPC“ attribute should result in a restart of both the OPC UA Server and the OPC UA Client, without restarting the complete Runtime. The requirement to reload the UA Client configuration without this workaround has now been noted.

Thanks Martin, appreciate the focused response. These items will simplify the process in the future.
Whilst I do understand the reasons for seperating read and write, I note that other platforms address this behind the scenes eg UAExpert allows direct writing of a monitored value. How this is achieved should not be an implementation challenge. Therefor, i propose a setting/checkbox that can automatically add a read subscription to write values… maybe.
Thanks again, my project is now functioning well, but i will look firward to a firmware update.