Structured programming tools for embedded systems

Sometimes it's fun to imagine what the world might have been like if John von Neumann had a room full of Crays or if Galileo had the Hubble telescope. On a somewhat smaller scale I wonder what my own career might have been like if I'd had something besides machine code back in the days of designing embedded control systems for microwave ovens, simple RTUs, and steam-driven chiller packages.

By Jay R. Jeffreys September 1, 1998

Sometimes it’s fun to imagine what the world might have been like if John von Neumann had a room full of Crays or if Galileo had the Hubble telescope. On a somewhat smaller scale I wonder what my own career might have been like if I’d had something besides machine code back in the days of designing embedded control systems for microwave ovens, simple RTUs, and steam-driven chiller packages.

I might have been a hero with a product like ISaGRAF, developed by CJ International (Seyssins, France) and supported in the U.S. by Transys Inc. (Gilbert, Ariz.). It provides a clean, straightforward implementation of all five dialects of the IEC 61131-3 standard and builds a run-time application module that can run in more different types of processor hardware and under more operating systems than a user is likely to encounter.

ISaGRAF consists of a Microsoft Windows-based graphical program development workbench and a target-specific run-time kernel which executes the application. The program development front end generates an application module in what its designers call Target-Independent Code (TIC) which is then downloaded and executed by the processor-specific run-time kernel in the target machine.

As a development tool the ISaGRAF front end does what it should. Sequential Function Charts can have Structured Text code modules written directly in the steps and transitions. The library of Function Block Diagram items includes 37 analog or integer functions, 16 real and 13 boolean operators, 17 string-handling blocks, and 9 time-based operations. The PID (proportional-integral-derivative) implementation is simple, clean and easy to use. Ladder Diagram programs can include any of the function blocks above wired directly into the rungs. Instruction List programming allows me work at the virtual-machine register level.

Since I can never remember all the details of syntax and grammar for all of the languages, I always look for ways the software itself can keep me out of trouble. ISaGRAF’s program validation tool did a good job of finding and explaining my errors. I just started typing what I thought should pass for Structured Text, and it guided me into the correct syntax and punctuation. The on-line help includes a thorough explanation of the IEC 61131-3 standard and is actually more readable and understandable than the standard itself.

I believe strongly in incremental development and in testing while the code is being written. ISaGRAF’s development environment includes a real-time simulator so the code can be run and tested right away. The kernel simulator window offers a view modeled after a rack full of I/O modules with indicators and terminal blocks. The package includes a simple, yet useful graphical operator interface system. It can pull in background bit map files or draw simple process graphics and animate them based on boolean tags, by way of icon-based graphic element, and analog values by way of bar graphs and numerical displays.

ISaGRAF development workbench runs under Microsoft Windows 3.1, 3.11, 95, 98, or NT as well as OS/2 and SCO Unix. At least an 80486 machine is recommended, with RAM appropriate for the operating system, and around 8MB of hard disk space. A serial port or Ethernet card connects to the target machine which might be anything from a 386EX or 68302 processor with 512K of ROM or flash memory and 64K of RAM for the application code. The workbench software runs from $380 for a 32 I/O point license to $4,000 for unlimited tags. Run time licenses may be as low as $100 per node.

For more information on ISaGRAF, visit www.controleng.com/info .

Author Information

Contributing Editor, Jay R. Jeffreys, P.E. is senior systems engineer at Industrial Systems Design, Johnson City, Tenn.