So, based on your statement,Snarf77, it sounds like a good thing to do.
I have added a generalized DCS design to this thread. From that we should be able to work out the individual components that could or should be made HA. I realize that other people have different structures, and with luck we can discuss a few of them.
Also, my experience in DCS/SCADA work has made me look for standardizations, that I think the nomenclature is still haphazard going from one place to another so I would love to see like an equivalents table come out of this.
In the system we are implementing, we basically have 4 general types of systems.
- Application Server - tasked with exchanging data with the the HMI systems and manipulating any data required to simplify or augment data for human consumption. This system will also provide any offloading of data to database or historian systems. In proview parlance, I see this as a process node with a specific job.
- Automation Server - Tasked with gathering data from distributed I/O and dedicated PLCs, as well as anything real-world that needs more processing than a conventional plc can performe. These systems can also be used to serve as communications processors gathering data in one format and providing it in another, for example gathering data from a modbus network and providing it to a profibus network. In our system it is the closest general purpose computing device to the PLCs, but in smaller settings could be a PLC itself. In proview parlance, I see this as a process node with a specific set of jobs.
- HMI system - Human Machine Interface - The hardware display device that provides the user with the software client and interface to interact with the larger DCS/SCADA environment. It has no other purpose and should not be encumbered to do many other tasks. In proview parlance, I see this as an operator station.
- PLC - Programmable Logic Controller - A purpose built computer that has I/O dedicated to gathering real world physical data via inputs and either responding to that data with real-world physical outputs or sending that data to and automation server.
Between each of these lies a network. I'm thinking about a series of options for redundancy there. I think that this is easiest to deal with, as methods for path diversity are pretty straight forward in the networking world. I would like to discuss this, but I see this as being a discussion for another thread.
Here is the representation:
So, just looking at the 4 basic components above I see all but the PLCs as needing some level of redundancy.
In my case, using commodity devices and leveraging the network to send data to redundant hardware devices where there is a provision for a heartbeat and a method for determining which machine is in control seems least expensive after looking at HA hardware with redundant motherboards and synchronized memory.
I have no earthly idea where to begin to make preview generate a useful heartbeat, but I know that high availability clustering and its software are available.
This is one example:
clusterlabs.org/
I realize that the timing involved makes this is an interesting proposition.
There is more I could type, but this is a start...