ryangriggs
Lifetime Supporting Member
Hello, I am looking for your suggestions for methodologies to sync process setpoints across a local HMI and remote SCADA system.
Background:
There is a local site with a CompactLogix PLC containing process configuration setpoints (integers, bools, reals, etc).
There is a local HMI which allows changing the process setpoints locally.
There is a remote facility with SCADA (Wonderware) connected to a local SLC5/05 PLC, where multiple processes are monitored, including the process discussed above.
Both sites have hardwired internet and static IP addresses. I have already set up the SLC5/05 to read an array of integers from the CLX into a local file, and then write another file of integers back to the CLX into a separate array.
This is working fine - I can send and receive data at both sites.
However, I'm seeking a way to implement synchronization to ensure that if the remote user changes a process value, that change updates local HMI settings, or if a local HMI user changes a process value, it also updates the remote site's value: in other words, all setpoints are accurately displayed at all locations.
MQTT does this by default - the last device to make an update is the "winner" and all other devices receive notification that the change has been made.
Unfortunately we don't have access to MQTT in this instance.
In the past, I have created three copies of the process setpoints on the local process PLC: 1) Active values, 2) HMI values, and 3) Remote values. Then I compare HMI and Remote values to the Active values, to determine whether changes were made, and thus I would know where they came from. Then if changes were made remotely, I can update the Active and HMI copies, and if changes were made in the HMI copy, I can update the Active and Remote copies.
This has worked well in the past, but it is quite complex, requiring multiple subroutines, timestamps, and multiple copies of each process variable.
I am wondering if any of you have suggestions on how you would implement this type of local HMI vs Remote setpoint synchronization to ensure the changes are accurately implemented and displayed no matter whether they are made locally or remotely.
Thanks!
Background:
There is a local site with a CompactLogix PLC containing process configuration setpoints (integers, bools, reals, etc).
There is a local HMI which allows changing the process setpoints locally.
There is a remote facility with SCADA (Wonderware) connected to a local SLC5/05 PLC, where multiple processes are monitored, including the process discussed above.
Both sites have hardwired internet and static IP addresses. I have already set up the SLC5/05 to read an array of integers from the CLX into a local file, and then write another file of integers back to the CLX into a separate array.
This is working fine - I can send and receive data at both sites.
However, I'm seeking a way to implement synchronization to ensure that if the remote user changes a process value, that change updates local HMI settings, or if a local HMI user changes a process value, it also updates the remote site's value: in other words, all setpoints are accurately displayed at all locations.
MQTT does this by default - the last device to make an update is the "winner" and all other devices receive notification that the change has been made.
Unfortunately we don't have access to MQTT in this instance.
In the past, I have created three copies of the process setpoints on the local process PLC: 1) Active values, 2) HMI values, and 3) Remote values. Then I compare HMI and Remote values to the Active values, to determine whether changes were made, and thus I would know where they came from. Then if changes were made remotely, I can update the Active and HMI copies, and if changes were made in the HMI copy, I can update the Active and Remote copies.
This has worked well in the past, but it is quite complex, requiring multiple subroutines, timestamps, and multiple copies of each process variable.
I am wondering if any of you have suggestions on how you would implement this type of local HMI vs Remote setpoint synchronization to ensure the changes are accurately implemented and displayed no matter whether they are made locally or remotely.
Thanks!