kolyur
Lifetime Supporting Member + Moderator
I'd like to hear how others have handled this kind of situation. I have four identical machines, each with a Red Lion CR3000 15" HMI and Beckhoff CX5140 PLC. Communication between the HMI and PLC is via Modbus TCP. Each machine has a recipe interface on the HMI; the data is stored in retentive tags. The recipes are only handled on the HMI--the data is never transferred to the PLC--so the Beckhoff is basically irrelevant to this discussion. Each machine is on its own private LAN, but we have the hardware in place to allow Ethernet comms across machines.
The goal is to keep the recipe data synchronized across all four machines, with the following requirements:
- Recipes can be modified on any machine, and the others should be synced with the change in a reasonable amount of time.
- At any given time, one or more of the machines could be powered off/locked out. In this case, when the machine(s) are powered back on, they should receive whatever changes were made on the other machines.
This is further complicated by the format of the data. There are 50 available recipes, and each contains one 18 character string, one 10 character string, and four integer variables. The obvious choices for Red Lion communication are Modbus or OPC, neither of which have native string support. The strings will have to be broken into one or two characters per Modbus integer.
I've convinced myself that some type of external data storage device or server will be required... no single machine could be the master due to the downtime possibility. I have an old Red Lion Data Station lying around that I was thinking of using. Each machine could be set up to transmit a changed recipe to the "server" through a series of Modbus registers. But the tricky part would be making sure that each machine has the current data in the event of a shutdown. (We can assume that the server will have 100% uptime.) It's way too much data to transmit in one shot. Perhaps the machines would have to poll the server repeatedly on some schedule to ensure all the recipe entries are up-to-date.
This is getting much more complicated than I had anticipated. I'd appreciate any suggestions!
The goal is to keep the recipe data synchronized across all four machines, with the following requirements:
- Recipes can be modified on any machine, and the others should be synced with the change in a reasonable amount of time.
- At any given time, one or more of the machines could be powered off/locked out. In this case, when the machine(s) are powered back on, they should receive whatever changes were made on the other machines.
This is further complicated by the format of the data. There are 50 available recipes, and each contains one 18 character string, one 10 character string, and four integer variables. The obvious choices for Red Lion communication are Modbus or OPC, neither of which have native string support. The strings will have to be broken into one or two characters per Modbus integer.
I've convinced myself that some type of external data storage device or server will be required... no single machine could be the master due to the downtime possibility. I have an old Red Lion Data Station lying around that I was thinking of using. Each machine could be set up to transmit a changed recipe to the "server" through a series of Modbus registers. But the tricky part would be making sure that each machine has the current data in the event of a shutdown. (We can assume that the server will have 100% uptime.) It's way too much data to transmit in one shot. Perhaps the machines would have to poll the server repeatedly on some schedule to ensure all the recipe entries are up-to-date.
This is getting much more complicated than I had anticipated. I'd appreciate any suggestions!