The Workbench environment is designed to facilitate the creation of an automation task throughout the lifecycle of a system, from system design to commissioning, operation and maintenance. The development workbench is the entry point in the use of IPC. It provides an intuitive environment to help you create your system and leverage your core competency.


You begin with the preparation of a detailed project specification resulting from a thorough analysis of the project.

With the ACP, the project is divided into one or several PLC loops or "Resources", identifying their hardware platforms and defining the links between them. Configurations (which stand for hardware platforms containing one or more Resources) and communication networks represent the physical division of a project while a Resource represents a "Virtual Machine" Runtime Target. Resources contain several programming units called Program Organization Units or "POUs", which can be programs, functions or function blocks.

For program development, the ACP Workbench provides powerful and intuitive graphical and textual editors, including docking toolbars and resizable split windows, drag-and-drop and cut-and-paste features, which enhance user experience.

You then program the various functional modules. The Workbench's program management tools allow the user to define each of these modules, their operations, and their interaction to form the complete application. This approach automatically facilitates future reuse of code units, saving time and costs during development.
Using the Workbench, you can look at your system from 2 different standpoints. The Resource view presents your application form a functional perspective. The hardware view presents, and helps you manages the implementation of your resources on your hardware topology.
I/O Connection (Addressing of Physical I/O) To establish the links between the hardware-independent logical variables of the ISaGRAF project and the physical I/O channels available on the target industrial computer or PLC, the ISaGRAF Workbench provides a powerful I/O connection editor. With a simple mouse click the programmer can define a link without knowledge of high-level software or hardware. The complete separation made between the logical programming and the I/O wiring configuration guarantees that the application can easily be ported to different hardware platforms. I/O configuration can be tested separately from the application execution (read inputs, force outputs). Each module of your application can be debugged separately.

Any I/O device can be represented either as a single device, or as a group of elementary boards, mixing different data types. An ISaGRAF "I/O board" can represent any I/O technology; for example, physical boards, remote I/Os, and virtual memory exchanges. The Workbench also enables the user to work directly on a predefined I/O configuration, and fully supports directly represented I/O variables as described in the IEC 61131-3 standard.
Data is declared using ISaGRAF's powerful Variable Browser. This browser acts as an explorer with a hierarchical tree of variables and a grid-like representation of their definitions. For each Resource, the user can declare variables using simple types (Boolean, 8-bit integer, 32-bit integer, real, string, time) or user-defined types such as arrays or structures, to enable a better identification of variables.

The ISaGRAF Application Workbench stores all project data (except the IEC program source files) in an MS-Access database. Any external applications may fill or read this database using documented requests. ISaGRAF Workbench Resources may share variables using "binding" mechanisms. A binding represents a directional link between two variables - a "producer" and a "consumer". The binding mechanism can be enhanced by the use of Communication Function Blocks (CFBs) which allow for explicit exchange of messages programmed within the connected resources, using standard function blocks. 

Before building the project code, I/O variables are linked to the I/O devices. An I/O device can be simple or complex, allowing mixing of types and directions. I/O devices can take Boolean, Integer, Real, Time, or a user-defined structure type, enabling the management of I/O validity, status or any required information. The I/O wiring tool lists all the devices available on the hardware platform. Once a device is selected, a simple mouse click 'connects' a variable to a channel. On each channel, a gain and an offset can be defined to scale the variable in engineering units, improving independence between hardware devices and the application. For example, a change in the range of I/O values of a particular piece of hardware may not require a fundamental change to an application but simply the re-definition of the channel gain and offset, to 're-align' expected values.

When activated by the user, the ISaGRAF Workbench verifies the syntax of the source code entered in any of the supported languages. The product also performs a coherency test of the application, verifying that the various functional modules are correctly linked. When an error occurs during verification the developer is taken straight to the error in the source with a simple mouse click on the error message. Above all, ISaGRAF generates a code that can be both downloaded and run on the target hardware, or simulated with the Application Workbench. The ISaGRAF compiler includes a powerful optimizer based on the most recent techniques such as the optimization of binary decision diagrams. To validate the project, the project code must be built. This step is also very useful for syntax checking; all detected errors can be easily located with a simple mouse click. The generated code, called TIC (Target Independent Code), is fully publicly documented and supported. The code generator produces the code for each resource plus all tables required for data exchanges.

Simulation and Debugging

With ISaGRAF application debugging does not require the developer to return to the basic process control logic nor to remember the exact syntax of all languages. At all stages of the development, the Workbench performs checks on program and language specific syntax, correcting or prompting the user with the correct use of each language. The extensive hypertext based on-line help system includes a thorough cross-reference explanation of the IEC 61131-3 standard.

To monitor applications, ISaGRAF provides a powerful graphical tool that defines watch lists that can be displayed either as graphic pictures that are linked to the ISaGRAF project variables or as lists during debug. Graphic pictures can contain bitmaps and metafiles, unipolar and bipolar bar graphs, text displays, curves, icons and bit fields.
Similarly, application simulation includes powerful debugging tools. The ISaGRAF Cycle Profiler is a diagnostic tool that shows how cycle time is distributed between various programs, functions and function blocks of an application. This tool is very useful to have a quick diagnostic of the application performance and leads the programmer to the code sections that may need optimizing. The simulator also includes visual tools to edit and run simulation scripts, described with an easy-to-learn text, that greatly reduce the debugging and validation time by automating tests.
Without any target hardware platform, the programmer can validate the complete application in his office. With the powerful simulator on the Application Workbench, the user can perform complete structural and functional tests of each module separately or on the global application. The simulator makes it easy to trace the program execution and see the status of any internal variable. The I/O hardware can be fully simulated; the user can manually force the internal status and variables. During simulation, editors can be opened in Debug mode to see how programs are executed (SFC active steps, LD coils value...).
In the case of ISaGRAF the simulator is the combination of ISaGRAF Runtime Targets and a graphic I/O panel. During simulation, each I/O device is shown as a separate document that can be placed anywhere within the I/O panel window depending on user preferences. Simulation enables the validation of the project without any hardware. Each resource can be executed cycle-by-cycle, and various system variables, such as the cycle time, can be monitored. Data exchanges are also simulated. Any variable can be monitored or forced from the variable browser or program editors.