The flowchart is the program

Right now in my top desk drawer along with pencils, staples, and a big bottle of antacid tablets is a large green plastic rectangle with outlines of various shapes cut from it. Protecting it is the original paper envelope which explains the meaning of those oddly shaped cutouts. Block letters proclaim: "IBM Flowchart Template.

By Jay R. Jeffreys, Contributing Editor November 1, 1998

Right now in my top desk drawer along with pencils, staples, and a big bottle of antacid tablets is a large green plastic rectangle with outlines of various shapes cut from it. Protecting it is the original paper envelope which explains the meaning of those oddly shaped cutouts. Block letters proclaim: “IBM Flowchart Template.” The simple device with no moving parts has everything I need to design a complex numerical algorithm or real-time control application—processing blocks, conditional branches, control transfer points, input, output and storage functions, and a straight edge to draw lines connecting them.

NemaSoft (Ann Arbor, Mich.) offers a software version of that flowchart template in a product called OpenControl. One important difference is that when I’m finished drawing the program flowchart with OpenControl (in what its designers call Visual Flowchart Language or VFL), I’m also finished writing the program and have a ready-to-run application.

I must admit I was led off track by references in NemaSoft’s web site to the IEC 61131 standard. OpenControl’s VFL is not one of the five dialects specifically defined under IEC 61131 part 3. VFL fits under the ISO 5807 flowchart specification (as does my big green plastic template) and compiles into IEC 1131 Structured Text (ST) for actual execution in the Hyperkernel runtime engine. Addressing and naming conventions are faithful to IEC 1131 definitions for inputs, outputs, and memory representations for variables used in the program.

Designing a program with VFL really is as straightforward and sensible as drawing the flowchart on paper, and a lot less prone to error. I simply pull down and drop shapes from a menu to build the flowchart in a chart window. Those elements include rectangular process blocks for evaluating numerical expressions, oval-shaped program termination blocks, and diamond-shaped decision blocks for program branches and “while” or “until” loops. Filling in the content of those blocks is just about foolproof. First, I choose a verb from a long picklist (such as “Turn On,” “Turn Off,” “Increment,” “Start,” or “Stop”). There are sets of command actions for timers, string handling, motion control, serial port operations and diagnostics as well. Next, I furnish the noun by way of a tag browser and expression builder to fill in variables or expressions to be operated upon. My first attempt at writing a VFL program without reading a manual or a help file of any sort passed validation, compiled and ran with no errors or warnings; I can’t remember that ever happening to me before.

Behind the graphical front end is a runtime engine called Hyperkernel. That engine seems to have done well in some demanding automotive applications. It runs under Microsoft Windows NT but actually takes over basic realtime scheduling from NT. Hyperkernel is designed to have the final say in what gets a slice of CPU time, rather than NT.

OpenControl supports a number of important field device protocols including Allen-Bradley remote I/O, DeviceNet, Honeywell SDS, Interbus-S, Modbus, Opto 22, and Profibus.

OpenControl and Hyperkernel run under Microsoft Windows NT 3.51 or 4.0 with service packs 1, 2 and 3. The company recommends at least a Pentium 100 MHz processor with 32MB RAM. An individual 256-tag run time license starts at $995; a full professional development system with unlimited tags, the full set of I/O drivers and full factory support goes for around $10,000.

For more information on OpenControl, 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.