Frequently Asked Questions
Is the compiler fully IEC 61131 compliant?
The GEB Automation IDE deals with part 3 of the IEC 61131 norm (61131-3). It implements two textual languages: Structured Text (ST), Instruction list (IL) and two graphical languages: Ladder diagram (LD) and
Function block diagram (FBD). It does not support Sequential function charts (SFC). The degree of compliance for those languages is quite complete.
GEB Automation IDE only deal with elements of IEC 61131 specific to pure POUs programming: funtions, function blocks, programs, types and global variables. It does not support configuration elements (configurations, resources, tasks, access paths). Any functionality outside that of the POUs execution body (eg: device initialization, schedulling of POUs execution and other tasks) is assumed to be responsability of the device definition.
- All defined types and standard funtions/function blocks are supported.
- Arbitrarily nested multi-valued types (Arrays and Structs) can be declared.
- IL language does not support multivalued types in the accumulator, nor STRING.
- Identifiers are case sensitive.
- RETAIN modifiers for variables is implemented. The device can implement its own mechanisms for persisting variable values through warm reboots, throug a clean
and flexible API.
- VAR_ACCESS construct is not implemented
- Derived (used defined) types fully supported. We allow (as an extension to the norm) to define TYPE blocks outside a POU.
- Directly represented variables (AT qualifier) are supported, through device-specific mappings.
- Ladders can't declare GLOBAL variables, but they can use EXTERN variables.
- The two graphical languages (LD, FBD) can be mixed with very little restrictions. The main relevant distinction between a Ladder Diagram and a Function Block Diagram, apart from the RAILS, is the order of evaluation: in LD the element placemente takes precedence (order of evaluation is left to right and up to down), in FBD the conection topology takes precedence.
The concept of "RUNG" is implicitly tied to the elements placement and connections.
- Modification of loop variables in FOR loops is allowed
- Enumerated literals must be qualified always, except for the ENUM definition itself.
- Numeric datatypes do not require explicit conversions except when converting to a narrower type. Eg: a INT can be freely used when a DINT is expected, but not
the reverse. See "Technical Info" for details.
- STRING types support a maximum length specifier (from 1 to 255: default: 80)
- WSTRING is not supported
- REFERENCE variables can be used (language extension)
- More technical details: Standard Library and Tech notes
How to clone elements in the Graphical editor?
Select one (or several) graphical element, copy it to the clipboard (Ctrl-C, or Right-click + "Copy"),
deselect the element, and paste into the diagram (Ctrl-V, or Right-click + "Paste").
Can I use user defined functions or function blocks in the Ladder editor?
You can use any function or function block defined in the same project (in any of the four languages). They should appear in the left palette, in the "User defined" section.
I've been messing around with the windows positions, I'd like to return to the default appearance.
Use Window->Reset perspective from the menu.
The perspective is an Eclipse concept, you can change the current one from Window->Open perspective. GEB Automation IDE uses mainly the GEB perspective, and also the Debug perspective, when debuggin.
The current perspective is shown in the application title.
This example assumes that the software is installed in C:\geb.
C:\geb\ Installation directory. The aplication will never write files outside this directory
C:\geb\ide\ The ide core: start executable (geb.exe) and eclipse plugins.
C:\geb\workspace\ Contains the projects with code created by the user, and the demos provided with the application
C:\geb\oemdata\ Customizable data for each OEM (image, legend)
C:\geb\devices\ Each subdirectory corresponds to a particular DEVICE or group of devices that share code.
C:\geb\compilers\ Convenience placeholder to place the compilers (an example: Tiny C for Windows target is supplied) . However other compilers, outside the application directory can be used.
C:\geb\lib\ (Optional) Globally available libraries. Device specific libraries can also
reside in C:\geb\devices\[DEVICE_NAME]\lib\
Is there some layout inside each project?
Inside each project, the source files (extensions *.st *.il *.ld *.fbd) must lie in the top level directory.
The output directory contains generated C code and executable. There are no more restrictions.
What is the relation between source filenames and POU names?
When creating a POU, the name of the file is the name of the POU. If you rename the file, the filename determines the POU name in the case of graphical languages; in textual languages, you should rename both the filename and the POU name in the source code.
Can I install the application in another non-top level directory (eg C:\Program Files\GEB) ?
It is not recommended to have blanks or non-ASCII characters in the application path, because the C compiler might have problems.
How do I compile (and transfer and run and debug) for a different device X, or to a remote Linux box?
Are there any restrictions on names of projects and files?
See the two previous questions. The recommendation is to use non-blank pure ASCII characters.
When upgrading to a new version, what are my options?
It's ok to install over the old directory, the workspace wont't be touched. But this means that the samples will not be copied. You should also be aware of changes in devices definitions. In general, it's highly recommended to make a copy of the full application directory before upgrading.
Another option is to rename the old directory, make a clean install, and then overwrite the workspace.
How to uninstall the application?
Just remove the installation directory (typically c:\geb\).
Can the main installation directory (eg C:\geb?) be renamed or moved
Yes. The application should be closed, of course. It's recommended to open the IDE from the
startup script (geb.bat or startgeb.sh).
Does the IDE requires a live Internet connection?
If using a Professional licence, you need an Internet connection. At startup, and periodically,
the IDE connects with our licences servers to check the Licence and for new versions.
The Student version does not require an Internet connection.