Tuesday, January 24, 2006

Industrial Controllers

Why Industrial Automation Controllers are not catching up processor technology advancements? I worked on a project where we attempted to develop a new controller with the aim to maximize the use of Open Source/COTS based components.
Many a times we debated on 96 MHz big endian processor and the operating system, Linux which we chose for this project.

Many players in the market still use a typical board with a 100 MHz processor.
Of course with industry standard compliance list like EMC, ESD, RF, Surge, Power etc. and stringent temperature (-40 to +70 degrees Celsius) and relative humidity requirements. And most importantly the heat dissipation factor which may cause the need of a fan.

What is that operating system which can meet all demands of a real-time controller.
Currently industry uses VXWorks, Nucleus PLUS, VRTX and recently some flavors of Linux like Monta Vista, RT-Linux. Of course there are so many proprietary custom made operating systems.

How do we boot the board? Traditionally it is done using TFTP boot. A TFTP server runs on a work station and is expected to be ON while the controllers are booting up. And applications are built to take the complete image while comprised of kernel, control engine, custom network stacks, process control applications etc.

Some controllers use on board flash to store boot code and kernel and basic services to receive and execute control applications. Recent hardware designs are done considering more on board flash, typically ranging from 4 MB to 64 MB. These boards got more RAM also, typically in the range of 16MB to 128MB.

Apart from this external compact flash interfaces are adding storage options to controller.
Hi speed compact flashes or micro drives can be added as per requirement. However the disadvantage here is number of read/write cycles and kind of hardware interface (parallel/PCMCIA etc.).

And newer boards are coming up with 100 Mega bits per seconds Ethernet controllers.
Of course it is needed because all most all IO networks of today got Ethernet variants.

With the addition/enhancements of these peripherals the CPU performance demands are increasing dramatically. More storage options and high speed Ethernet access added new challenges like bulk data management and faster memory access. More and more functional requirements are now met on controllers itself using embedded web servers, embedded databases and time synchronization modules.

But are these CPU’s, with their resources being managed by RTOS, capable enough to meet the real time demands without effecting basic operations like IO scanning, control execution and hardware monitoring tasks?

Recently the demand for thin but service rich operating systems is growing. Security is one more aspect that adds heavy computing routines to basic operating tasks list. Firewalls are part of controller design now. Embedded databases and NFS partitions are commonly used by many controllers for non critical storage purposes.

Advanced power management, online upgrade and Ethernet based mirroring demands more computing resources out of modern controllers.

I would like to do some detailed study on this. Are there any good links for this.