A friend and I were discussing some new security features in a well known brand of Programmable Logic Controller (PLC). The features are almost exactly what most IT security experts have been demanding for years. Unfortunately, they are also very complex, arcane, and difficult for a typical engineer to want to mess with.
If it is to be used in a workable fashion, security must be comprehensible by everyone, including the end user. Sadly, like so many other security features on a PC, I suspect that most of these features will go unused because people refuse to take the time to learn to use them. Until someone gets hacked in a very public and very embarrassing way, I doubt anyone will even consider them. Even then, I suspect they’ll go looking for another way out.
So why do we bother using overblown processors, lots of memory, embedded operating systems, digital signatures, development workstations, and all that hoopla? Once upon a time, back when the PLC was first conceived, software was perceived as easy to use and wiring up these increasingly complex processes in to ladders of relays, cams, timers, pressure switches, and the like got very expensive. The electronic solution looked more reliable and easier to manage. So they went to programmable logic controllers. –And then the controllers got fancy.
Today, I’ll bet that the father of the PLC, Dick Morley himself, probably is wondering what had become of his original ideas. Processors have become nearly as complex and incomprehensible as the kernel of an operating system. Operators no longer can easily know what is supposed to happen next in a common process, such as a filter backwash.
As time went on, many integrators decided to write some stock software for a few brands of PLC gear that did the routine stuff we expect to see a process do. The operators, also began to realize how complex these programs were, and after some startup effort where the worst of the bugs were ironed out, they would live with whatever quirks they noticed instead of fixing them because too many other things had to be revalidated with each change. After about a year or so, they typically tie a ribbon around that part of the process and the controller program might as well be etched in stone.
While I think there will always be a place for an Automation Controller with dynamically adjustable logic, I doubt that it will be as widespread it is today. People don’t change the controller programs all that much. It is too expensive. In all honesty, most things don’t need it. And that’s when I began wondering if we might be able to take a page from some of our older concepts: Hard Wired Controls.
It happens I am tinkering with a software defined radio project which uses a large, high speed Field Programmable Gate Array (FPGA) to do incredible things in hardware that a processor simply can’t do well in real time: A Fast Fourier Transform at bandwidths and speeds in excess of 100 MHz.
While tinkering with the FPGA, it occurred to me that one could use these devices to do all of the logic in a DCS or PAC that was once done with hardwiring in analog and even discreet digital logic chips. It is not hard to design with these things, either. The tools are very simple, powerful, and in many cases dirt cheap.
I envision process standardization, with controllers going back to the hard logic days. Burn the code once to an FPGA, put a network interface on it, and it will keep doing what it was doing for a long, long time. If you want to change it, you’ll have to get to the JTAG pins on the FPGA chip.
So how do we get the data back to an HMI? Well, we network it. Note that people are replicating older processors in FPGA chips. One guy, Chris Fenton, replicated a Cray I Super Computer in just one FPGA chip! It is entirely feasible to have an FPGA chip respond to network requests with its own hardware protocol stack. And because the actual process logic can be made separate from the TCP/IP stack, there is little danger that someone might corrupt a section of code that they have no business in.
Why do this? Well, it’s a lot simpler than it is to deal with so much software validation and test procedures. Processors and operating systems are getting incredibly complex and very difficult to maintain. Securing them means even more complexity –and for what?
There are no sales gimmicks, no time wasters, no housekeeping, no cute features you don’t use, just an FPGA with pure logic. Ultimately, if one has a diagram of logic and state machines, the actual behavior should be completely understandable.
You go to your integrator and ask for a boiler management chip with program 3w or a pump control logic box type 23, and you get a series of inputs and outputs to wire in and an interface that should be entirely comprehensible. If the FPGA is no longer made, you will have the process logic and the I/O. You can always have it burned in to a new chip.
Yes, I think it won’t be long before we are screaming back to the future. Welcome back to the days of hard-wired logic but at a different level of integration. Remember you read it here first…