

Re: HELP - pushing Inferno as a solution

PLCs are admittedly absurd - using modern microprocessors
to simulate banks of relays was the inspiration of a twisted
genius.  They have their plusses and minuses, however.
My experience with PLCs is not huge - I learned it mostly
from listening to my wife (who's a manufacturing consultant)
and from spending one day programming some kind of AB controller
one day when I went along with her for fun.

They come in nice packages with all kinds of I/O built in.
Lots of people understand how to 'program' them.
They are high-reliability, industrial-strength devices, which
  is crucial for production operations, where a failure can
  cost a megabuck per day of lost production.
Ladder logic isn't a terrible way to program simple finite-state
  machines.   That covers a fair bit of what industrial controllers
  actually do: "when the product hits sensor A, it is done, so
  wait 300ms and activate the conveyor belt to move it away."

Generally they can't deal intelligently with continuous-valued
  data (there are some exceptions, but none I know do it well).
They can't do database lookups at all.
PLCs are generally slow - they are designed for 10ms to 100ms
  response times.
They can't easily compensate for changes in the environment or
  upstream processes.
They can't pass data well to downstream controllers,
  or to inventory/billing systems.
The only real modularity you have in ladder logic is having
  separate controllers with wires between.   This is
  only bad if you need lots of modules or lots of wires.
Complex programs become unintelligible in ladder logic;
  one has to jump around too much on the diagrams to see
  what controls what.
  A good programming language like Limbo that has
  subroutines and multiple threads of control and
  good synchronization between threads should let
  you write more complex systems.

I wouldn't think of displacing ladder logic so much as
finding a carefully chosen niche where ladder logic won't
work well.  All the minuses above are arguments for Inferno,
if the manufacturing process needs them.