Release history
3.3.2 (Sep 26, 2024)
- Fix: datatype issue with DWORD_TO_STRING
3.3.1 (May 13, 2024)
- Fix: BYTE_TO_STRING, WORD_TO_STRING... give now consistent results
- Upgrade graphiti fork
3.3.0 (Sept 14, 2023)
- Upgrade to Java 17
- Upgrade to Eclipse 2023-06
- Internationalization (i18n): support for translations
- Fixes in C code generation
- Fix issue in some String functions when in = out
- Fix issue in MID function
- Fix issue IF/ELSE when condition contains a function call
- Fix issue in online contextual help (F1)
3.2.16 (Dec 20, 2020)
- Fix issue with labels in block selection dialogs
3.2.15 (Feb 21, 2020)
- Small improvements in compiler:
- RETAIN and AT specs are now incompatible
- EXTERNAL variables can omit CONSTANT/RETAIN attributes
modifiers (if specified, they must coincide with GLOBAL var)
- Same goes for EXTERNAL AT spec
- Better handling of ENO=false in assigments (expression are
marked as "invalid" and chained), both in FBD and ST
- Fix: Typo in gevdrv.h GEB_DRV_SET_INT -> GEB_DRV_SET_UINT
3.2.14 (Aug 8, 2019)
- Debugger now supports writing of variables (restrictions:
only scalar, numeric or boolean types)
- Some polishing to OEM data. Urls for update now allow to
specify that online updates are not supported (see public
documentation)
- I/O Variables view in Debugger:
- Fix with variables names display
- Better layout for long variables names
- Fixed "Link with Editor" button behaviour for Graphical
Editor
- C Code Generator: some improvements to avoid redundant
deferencing+pointers occurrences. This should prevent some C compiler
warnings.
- External libraries: Two properties added. User friendly name
('libName') and order priority ('priority')
- Improvements to Pou Chooser dialog and Project Properties
(Use friendly name for libraries and sort by priority. Omit empty
categories and improve module ordering and labels)
- Minor fix in closing Simulator (misleading "terminated"
message)
- Update Tiny C Compiler to version 0.9.27
3.2.13 (Jun 25, 2019)
- Updated Eclipse to latest version 2019-06
- Added GEB Preference for IO variables (AT) display in I/O
panel during debug
- Added compilation warnings when TIME literals are Out of
Range
- Fixed some issues with EN/ENO connections in graphical editor
3.2.12.388 (Feb 15 , 2019 - hotfix)
- Fix: missing MUX_BOOL function
- Adresses in run/debug launch accept (ignore) authentication
info prefixed by '@'
- Version info added in libsrc bundle
3.2.12 (Nov 19, 2018)
- Online updater: several fixes and improvements
- Updated to Eclipse Photon (4.8.0) and Graphiti 0.16
- Fix: stale node legends when graphical block is structurally
modified (EN/ENO or extensible inputs)
- Fix: support spaces and non-ascii characters in project names
- Fix: deterministic C code generation (same source sometimes
generated equivalent but different C code)
- Fix: problems (neverending loop) when referenced project is
deleted or closed
- Improvement: better sorting of AT variables, with numerical
comparison for address fields
- Fix: signed/unsigned integer variables properly shown in
debugger.
- Improvement: bit types (WORD...) are displayed as hexadecimal
in debugger.
- Autoselectable device: if it's the only one, or if it has priority=0
(new property in device spec)
3.2.11 (Aug 24, 2018)
- Feature: Bounds check for arrays, both in binary and
simulator
- Can be disabled -DGEB_OMITBOUNDSCHECK define
- Improvements in simulator for dealing with anomalous
program termination
- Feature: Contextual F1 help added for external libraries
- Fix: bug with typecheck of strings of invalid lengths
- Cosmetic fixes in graphical editor:
- Remove restriction of block height (200px)
- Wider boxes allowed for expressions and other graphical
nodes
- Better layout for element properties dialog (esp. for large
expressions), with resize
- Fix: R/W (Memory) AT variables were not writable in
IOVariables View
- Small improvements to C runtime
3.2.10 (Jun, 2018)
- Upgrade to Eclipse Oxygen (4.7.3a), 64 bits (Windows)
- Fix sporadic bug: sometimes console prints only stderr when
running binary
- Allow longer expressions in graphical editor
- New preferences page for low-level settings (core plugin)
- Timeouts for network connections and external commands
configurable
- Show message more descriptive in console if Simulator throws
Exception
- Allow Function Block with no outputs to include EN/ENO
terminals
- Improvements to online updater
- More descriptive error messages in external commands
execution
3.2.9 (Apr 15, 2018)
- Fix: some issues with function with extensible arguments
- Fix: behaviour when IDE is installed inside directories with
spaces
- Fix: validation of Expressions in Graphical editor failed for
some valid string literals
- Build, generate C and binary actions now trigger
automatically a file save in open editors
- Scroll bar in IO Vars view
- Fix: parsing of some literal STRING expressions with escape
sequences
- Fix: Simulator with FB with EN/ENO
3.2.8 (Feb 19, 2018)
- Fix: global variables in external libraries (shared scope).
3.2.7 (Dec 16, 2017)
- Fix in Pou type and return type dialogs
3.2.6 (Dec 15, 2017)
- Functions blocks with no inputs are allowed.
- Order of declaration variable is preserved in Ladder
Variables view
- Fix: update of Modifier and Attributes from Ladder Variables
View sometimes failed.
- Allow any datatypes spec (including STRING with length) in
New Pou and Pou Properties windows
3.2.5 (Dec 12, 2017)
- Fix: STRING datatypes in Graphical POUS
- Allow to enter STRING with length (eg STRING[10]) in
Graphical Variables panel
- Fix: prevent some race conditions in I/O variables panel
during debugging.
- Fix: links colours are cleared when debugging ends.
- Fix: Functions with no inputs now give a compilation error.
- Fix: TIME_OF_DAY literals (eg TOD#10:00:01) were not accepted
as expressions in the Graphical Editor
3.2.4 (Dec 4, 2017)
- Fix: compilation errors with Graphical POUs with Function
Blocks defined in external libraries
- External libraries
- Support for native libraries (type 20, ST + C code)
- Added template declaration code in C generated code, to
help developers
- Sample libraries added to default device
- Charset for library sources
- Fix error in graphical compiler with unconnected nodes
3.2.3 (Nov 27, 2017)
- Fix: compilation errors with Graphical POUs with Function
Blocks defined in external libraries
3.2.2 (Oct 6, 2017)
- Fix: Issues with hardware debugging with Ladder programs
3.2.1 (Jun 15, 2017)
- New online incremental updater
- Improved detection of binary programm termination
- Fix: MODBUS support in included device
- Digitally signed executables (both Windows installer and
executable)
3.2.0 (Apr 30, 2017)
- New licencing scheme. Only Professional licence request on
line connection. Non professional licence requires signed devices.
- Digitally signed devices in Student version
- Java JRE included in Windows IDE
- Fix: C debug logic and could lead to problems when EN=false
3.1.3 (Dec 28, 2016)
- ST languaje fix: REPEAT loop condition was
misintepreted
- Improved handling of termination of running binaries: added
'wrapper' and terminate.cmd in several devices
- Fix issue with ARRAY of STRING (test case R0167)
- Device for Arduino ATMEGA2560 board and Raspberry PI included
in IDE
- New device: LPCEXPRESO1769 board (NXP's ARM Cortex-M3 LPC1769
MCU)
- Small improvements in devices scripts and main binary loop
3.1.2 (Sept 10, 2016)
- Fixes in graphical programs:
- Expression connected to wired-or was ignored
- Extraneous output connection point in blocks correspoding
to functions
- Minor fixes to compiler (rare issues with type check in some
function calls)
- Added device samples for Arduino ATMEGA2560 board and
Raspberry PI
- Some small internal changes in runtime C library
3.1.1 (Jun 15, 2016)
- Removed restriction that AT adresses must have same length
(in fields)
- Warning added: AT vars should not be used as IN_OUT arguments
- Internal changes in coils/contacts implementation (C runtime
library)
- Fixed charset encodings issues in external commands. Now options.charset
in the device also sets the console output expected encoding
3.1.0 (May 29, 2016)
- Changes in AT vars
- New internal implementation that allows flexible addressing
schemes AT vars can either be allocated by the device
implementation or by GEB code generator. See details in tecnical
docs (at_vars.txt)
- Device specs ranges are now allowed not only for last
component
- External libraries: full support for external C native
libraries
- Fix: function blocks were not accepted as input in function
calls
- Fix in run.bat scripts in sample devices: errorlevel was not
correctly propagated
- Fix minor race condition in simulator (variables sporadically
not written to console)
3.0.2 (March 19, 2016)
- Fixed issue: underscores not allowed in identifiers in
graphical editor
- Larger width allowed for graphical elements
- Fixed issue: automatic reopening of graphical editor
ocasionally failed
3.0.1 (Feb 6, 2016)
- Fixed issue in graphical editor with output terminal in
functions
- Fixed issue with linux_tcp (it caused occassional errors with
C file transfer)
- Removed unncesseary plugins, smaller installation file, no
more excessive Jetty logging.
3.0.0 (Jan 31, 2016)
- On-hardware run and debug
- New architecture for Binary actions (C transfer, bin
generation, binary transfer, binary run), fully configurable
(remote or local) and plugable.
- Launcher now supports two variants: Simulator and
Application/HW (Hardware)
- Many enhancements in launch configuration and behaviour
- Standarized binary arguments, including digest verification
and cold reboot
- Two linux remote devices implemented: SSH and TCP
(propietary lightweight server)
- Simulator is much more efficient in getting vars values.
Multivalued vars are correctly displayed
- Links colouring supported in all modes (simulator and HW)
when debugging.
- New STRING datatype with fixed sized. Size can be declared up
to 255 characters (default:80)
- C runtime library reworked, much more efficient in speed and
size, specially for stdlib function calls
- C generated code (and C runtime) does not use malloc
anymore, all memory allocation is static
- VAR INOUT arguments are now passed by reference
- VAR_INPUT arguments cannot be modified inside POU execution
- Added in graphical editor: "show node legends" command
- A device directory can host more than one device that share
some code and/or libraries
- Several changes in function calls, see migration guide to
version 3.
- geb_hook() in C code allows more customizable
behaviour of custom devices (includes debugging)
- IL has more efficient implementation for accumulator - STRING
not supported now
- JNA support for external libraries disabled
- Java 8, Eclipse 4.5 (Mars)
- AT Vars: changes in implementation - the transfer [HW
IO]<-->[IEC var scope] is done globally (ATvars_write
ATvars_read) so constancy of AT vars during execution cycle is
guaranteed
- Fixed: AT vars now support GLOBAL modifier.
2.3.5 (Jun 30, 2015)
- Added custom functions GET_CHAR_AT and SET_CHAR_AT
- New testcases framework, with GEB_ASSERT and related new
custom functions
- Fix: graphical editor: when the addition of an object was
canceled, the editor went dirty
- Function categories supported for libraries
- POU chooser supports hierarchical categories and text
filtering
- Fixed issues with POU chooser: now F1 (and only F1) opens the
Help page - but not the lateral tray
- Some fixes from PLCopen import
- Added several convertion functions for time/date datatypes
(DATE_TO_DINT, DT_TO_DINT, TOD_TO_DWORD, REAL_TO_TOD...)
2.3.4 (Feb 27, 2015)
Warning: This version includes some changes in the internal time
API, device manufactures might need to make changes, see updated
instructions at "OEM Tasks->Creating devices"
- Internal time library reworked
- TIME is now a int32_t, in milliseconds.
- New time API for devices (obsolete:
USECS_PER_TICK,dev_time,dev_delay_ms...)
- TIME_TO_REAL and TIME_TO_DINT : return milliseconds
- Added testcases for time blocks: TP, TON, TOF (t1022-t1024)
- Added TOD_TO_TIME TIME_TO_TOD conversion functions
- Some fixes for MULTIME function
- Allow FUNCTION to use EXTERNAL variables, but only if
CONSTANT and if the GLOBAL is too. See testcase R0005
- Fixed bad types in LOG_REAL LN_LREAL and some TRUNC_
functions
- Allow bit types in CASE statement
- Disallow expressions in CASE statements (only variable
references are allowed)
- Fixed bug in Simulator with boolean test for equality
- Fixed bad configuration in sample MODBUS device
- New internal testing framework, with custom _ASSERT_ macro
inside IEC code
- Improvements to C runtime and code generator
- Small improvements for literals handling in code generator
- Polished and refactored common code from main.c devices, to
dev_common.inc
- getopt in main.c, new arguments calling conventions
- Improved formatting for C runtime source (AStyle)
- Clarified headers *.h relationship
- Improved Standard library documentation (help web page)
2.3.3 (Jan 16, 2015)
- IEC compiler: Fixed issue with wrong detection of dependency
cycles
- C runtime library: Some fixes and improvements to math
floating point functions
- More improvements to binary file handling, new properties in
device.properties
- Better reporting of ouput from external commands and other
events to IDE console
- Improvements to devices properties loading, more responsive
now
- Graphical editor: modifying breakpoints made editor dirty
2.3.2 (Dec 23, 2014)
- Fixed some issues with simulator debugging (concurrency)
- Fixed minor issue with RETAIN variables
- Fixed issue when project dependencies have cycles
- Several improvements to C and binary generation processes
2.3.1 (Oct 20, 2014)
- Improvements in ProjectProperties page, with online switching
(Libraries selected by default, preferences stored in Project)
- Support for USB-Dongle hardware key authorization
- Disallow writing of %I (input only) variables
- Fix SEL stdlib function
- Update JNA to 4.1.0
- Several fixes in comparison operators win non numeric
arguments (TestCase R0023)
- Grammar: allow for date/time prefixes in lowercase (eg:
date#2014-09-19 )
- Fix issue with IL POU source generated by Wizard
- Minor changes in C headers (*.h), include chain
2.3.0 (July 27, 2014)
- Improvements in Language C generator: internal optimizations,
better source formatting
- New logic and format (more efficient and robust) for
variables print, in C and simulator
- Reorganization of embedded test suite
- Fixed issue with arrays with datetime types
- Fixed issue in Simulator with REAL/TIME conversions
2.2.4 (June 27, 2014)
- Improvements in Simulator
- Now Simulator runs in same JVM as IDE
- Variables are printed also when program execution is
interrupted by user
- Fixed some occasional issues when saving ladder diagrams on
Linux
- Fixed issue with missing header files in device
- Added experimental Transfer Binary feature.
- Added toolbar icons for binary build/transfer
- Better reporting of errors in C compilation
2.2.3 (May 27, 2014)
- Graphical editor
- Reworked implementation, replacing our "forked" Graphiti;
now com.gebautomation.graphiti is based on a custom branch
that keeps on sync with latest graphiti.eclipse.org
versions. Many changes, mostly invisible to the user.
- Fixed "Show grid" issue: editor started with no grid but
with the "Show grid" menu item checked; and when it was re-enabled
it lost the snap-to-grid. The IDE remembers now the last toggle as a
general GEB preference.
- Fixed issues and appeareance of "POU properties" dialog.
- Fixed-clarified relationship of filenames and POU names.
They can be changed independently. The graphical editor shows the
POU name in the tabbed title.
- Fixed issues and lack of robutness when a file opened in the
Graphical editor was renamed or modified outside the editor.
- Smaller nicer icons for errors and warnings in the Graphical
editor.
- Some speed improvements to Build command when several
Editors are opened.
- Simulator
- Fixed excessive CPU usage when in suspended state.
- More clean-efficient passing of parameters to simulator;
better report of abort errors.
- Tighter control of mseconds per cycle.
- Simulator with JNA could leave open some DLLs. Fixed.
- Some improvements to C generator, to avoid generation
only-expression statements.
- Small fixes for sample AVR8 device
- Fixed bad GEB_DRV_GET_REAL macro args in gebdrv.h
- Fix problem that prevented included Help from opening.
2.2.2 (April 4, 2014)
- Fix: ENUM didn't work right with generic functions
(comparisons, MUX, SEL)
- Fix: MUX had problems with informal textual calls
- Several improvements and features with strings and charset
encoding
- Compilation of textual source files is charset aware; the
builder honors the Eclipse project settings
- Better STRING parsing, supports all legal syntax: escape
sequences, non-ascii chars, STRING#/WSTRING# prefix
- Several fixes for C generation of literals with 'unclean'
chars.
- Device allows specification of desired charset for C
generated files (defaults to ISO-8859-1)
- External libraries can specify a 'charset' property
- Better exception reporting (with nested stacktraces)
2.2.1 (March 10, 2014)
- Fixed: (ST) CASE ranges did not accept negative values
- More flexibility in accepting varRefs in Graphical Editor
(not only XX[1] accepted, but also XX[1,2], XX[N]
- though still no X[1+N]. See testCase #R0245
- Graphical editor: Fixed bad location for reporting of
graphical varRef or expression with errors.
- Potential issues with error reporting in Builder and cross
compilers fixed
- Several internal optimizations (memory usage), refactorings
and code polishing
- Fixed project settings in packaged product: they DEVICE spec
was missing
2.2.0 (Jan 31, 2014)
- Migrated Eclipse platform version: from 3.7 (Indigo) to 4.3
(Kepler). Still using Eclipse-RCP 3 API. Java 7 is now the target
version. Help->Installation details now lists the current
JRE, to aid in troubleshooting
- ST Grammar: Fixed some operators precedence (testcase R0028)
- Several improvements in compiler error messages (ST parser)
- FBD (graphical language files) are now saved with UTF-8
encoding
- Some fixes in packaged sample workspace which could cause
selection of wrong JRE for simulator
2.1.3 (Nov 28, 2013)
- Popup dialog about optional updates available can be
dismissed
- Nested structs/arrays could lead to bad C code generation in
some cases. Fixed.
- Fixes in simulator in Debug mode with JNA lib +improvements
in Source Locator
- Fixed minor issue that caused NPE for empty TYPE END_TYPE
blocks
- Fixed bug in installation script that could lead to wrong
workspace location in some cases.
2.1.2 (Oct 8, 2013)
- Added GEB Preferences page
- The popup modal message for binary code generation can be
disabled in preferences
- After a build with code generation the produced C file is
revealed in project explorer
- Fixed: some compilation errors with variable declarations
lacked filename info
- Some improvements in internal builder architecture
2.1.1 (Sep 2, 2013)
- Issue fixed: logs initialization could trigger a fatal error
that prevented IDE startup on some circumstances
- Issue fixed: Function Blocks instances as global variables
didn't work
- Added support for cleanly releasing resources after program
ends (geb_destroy)
2.1.0 (Aug 6, 2013)
- Substantial changes to C generator:
- Temporary variables (including normal VAR in functions and
hidden auxiliary vars for calls) are now generated in stack instead
of being statically allocated (saves memory)
- POUs are initialized only once in the program lifetime
(this BTW fixes a previous issue: duplicated initialization which
leaked memory with IecString vars)
- No more additional auxiliary functions generated for each
function call
- showVariables now never show "automatic" variables
- IecString at initialization now doesn't allocate,
it sets buflen=0 and uses a static array
- IecString main functions are now macros (to ease
their use in native functions)
- cosmetic changes in C source to improve readability and
reduce verbosity: var__ => v_ , showVariables =>
showVars
- Improveded support for external (native) functions (C/JNA)
- Changed FB calling proptotype. Argument order conforms to
our generator, first argument distinguishes init/exec/destroy mode.
Documentation added.
- Native Functions and FB now support STRING. Documentation
added.
- Added initFunc to lib.properties, used by JNA.
- user defined functions are now declared in gebud.h
- Fixed issue: External libraries in directories didn't work
(only in zip)
- Fixed issue: Libraries with same names in different devices
(or global) had the same module name, which could trigger
collisions.
- IDE: Fixed issue with non default project location. Projects
can now be created outside the workspace, and workspace switching is
permitted
- Some minor issues fixes in Linux
2.0.26 (Jul 12, 2013)
- Compiler: fixed some issues with type conversion *_TO_*
- Graphical editor: some improvements in F1 help in block
selector.
- Issue fixed: Expressions in FBD din't accept STRING literals
(only WSTRING)
- Minor improvements in C runtime code: func() -> func(void)
2.0.25 (Jul 3, 2013)
- Cross compiler: fixed issued that caused the code generation
command to be called twice in some scenarios
2.0.24 (Jun 27, 2013)
- Graphical editor: copy also connections when doing copy-paste
- Fixed issue when creating blank pous while objects in
clipboard
2.0.23 (Jun 25, 2013)
- Support for user defined libraries with native C code ad
dynamic invocation (JNA)
- Fixed issue with global variable shared by modules
(libraries)
- Small bug fixed: REAL/LREAL confusion in simulator
2.0.22 (Jun 19, 2013)
- Support for user defined libraries with native C code
- Fixed bug with global/AT variables defined in libraries
- Some fixes and better error reporting for compiler errors,
when inside library/module
- Small fix with Graphical Editor: Block selector, if OK is
pressed is no POU selected an exception ocurred
2.0.21 (Jun 12, 2013)
- Fixed issue in debugger (since 2.0.13) with Step-Into (F5),
which could lead to a StackOverflow in the Interpreter
- Fixed issue in POU selector when custom libraries are
included
Other small fixes
- C Runtime: more robust IecString initialization
- Small potential issue in new RETAIN header (unsigned char
out range)
- Fixed: simulator triggered a "Could not find or load main
class" error in Linux (empty vm-arg was interpreted as a java
class)
- Some small fixes for Linux distribution
2.0.19 (Jun 5, 2013)
- Improvements in connection layout, in graphical editor :
- Better layout of connections: automatic bendpoints added at
connection creation
- Better layout of connections for shape movements and
bendpoints drag
- Small fixes in graphical editor:
- Disable simultaneous resize of several elements
- Disable direct edit when connection points are selected
- Minor fixes in POU selector
- Retain variables: RETAIN_DATA_HEADER_LEN now
includes a pseudo hash to allow more flexible warm reboots (see RETAIN_DATA_HEADER_LEN_CRIT
RETAIN_DATA_WARM_BOOT in gebprogs.inc )
2.0.18 (May 29, 2013)
- Fixed issues in graphical editor:
- Some movements didn't update the bendpoints positions in
the saved POU.
- In rare cases a connection point could be moved, which
broke the diagram.
- Some improvements in connections layout, especially after
shape movements
2.0.17 (May 23, 2013)
- Issue fixed: bug with Latched Coils
- Optimization: C code is not created for unused POUs
2.0.16 (May 14, 2013)
- Dependency of projects (referenced projects in IDE)
implemented
- Support for external packed libraries (POUs packed in GEB_DIR/lib/*.zip
files)
- Fixes to a few mathematical functions in simulator (COS())
2.0.15 (March 20, 2013)
- Stdlib functions *_TO_STRING implemented
- Several improvements and optimizations in C generation and C
sdtlib runtime
- MIN_TICKS_BETWEEN_RETAIN_SAVE to disallow too frequent retain
serialization (gebprogs.inc)
2.0.14 (Feb 25, 2013)
- Fixed several issues and optimizations in C runtime library
and C generator. Better internal implementation of extensible
functions.
2.0.13.083 (Feb 4, 2013)
- Fix issue with some comparison operators with date/time
datatypes, which affect some time-related FB (eg TOF)
2.0.13 (Feb 4, 2013)
- Several fixes and improvements in simulator debugger (links
colorization)
- AT variables accept REAL datatype
- New project added to samples
2.0.12 (Jan 25, 2013)
- ST language now supports References (example: see test
case R0297 )
- New GEB Debug perspective, with own layout and
IOVariables view improvements
- Timer functions in simulation now use a virtual time, tied to
the nominal time of each run cycle. This allows to debug in a
sensible manner timers, even when suspending.
- New alternative syntax for i/O variables in device
configuration, more flexible and with comments: (ioaddress.1.range
/ ioaddress.1.comment) Better detailed display in Project->Properties->GEB
- Fixes with verbosity in simulator console and showVariables
2.0.11 (Dec 21, 2012)
- Anonymous AT variables now supported (see test case R0007)
- Fixed small issues with memory mapped variables in demo
devices (deviceio.c)
- Licenses: support for "field licenses", to work temporarily
without Internet connection
2.0.10 (Dec 8, 2012)
- Support for monitoring and setting I/O variables (AT vars) in
simulator
- Several issues fixed with floating point datatypes
(REAL/LREAL)
- Missing functions added: LREAL_TO_REAL, REAL_TO_TIME,
TIME_TO_REAL
2.0.9 (Nov 16, 2012)
- Graphical debugger: added colorization of links.
Boolean links are colorized (red=energized=TRUE blue=off=FALSE) both
at the end of each POU execution and on stepping/suspending.
- Standard library is now documented: online
docs
- Clarifications, corrections and polishing with Functions, EN,
VAR_IN_OUT:
- Fixed VAR_IN_OUT semantics, in accordance with the IEC
61131-3 standard. They are shown only on the left in graphical
nodes.
- Variable references and expressions in graphical editors
must be directly connected to Blocks, and are not executable
elements in themselves, they are part of the function call
- Only ENO is mapped in formal called with ENO=0
- VarRef blocks in Graphical editor is now only used for
variable assignment (write). For reading, an Expression block must
be used.
- Added docs: technical
notes about several details of our implementation of the IEC
61131-3 standard
- Graphical editor now displays info in status bar: node type,
id and execution order
- Textual editor lacked line number info in status bar : fixed
- Run/Debug launch: added cyclemesc attribute, to
force each loop execution to take at least a numer of millisenconds.
- Changed number of extended arguments to 4 (less clutter and
better performance)
- Fixed issue: character '#' was not allowed in Graphical
Editor, didn't allow creation of qualified literals.
- Fixed issue with ladder networks: right rail is NOT be
included in wired-ors connections
- Fixed issue with some binary TIME comparisons
- Fixed issue in graphical debugger: active node (highlit) when
stepping was not reset on program termination.
- Fixed issue: some conversion functions (and other alias) were
missing from the graphical palette
2.0.8 (Oct 21, 2012)
- Fixed several issues:
- MOD and EXPT were only implemented as
function calls in C, not as infix operators: fixed (testcase
R0026).
- #define BUF_LEN_SHOW_VARIABLES for showVariables,
can be overriden in gebarch.h
- Improvements with simulator in debugging:
- Added "start suspended" option in debug mode
- Breakpoints had not effect when applied to first statement
in POU: fixed
- Stepping in graphical debug visited several times a same
node: fixed
- Sometimes a noClassFound error happened when
creating Run/Debug configurations: fixed
2.0.7 (Oct 10, 2012)
- EN/ENO control variables are optional now. By
default they are absent in the graphical editors. They can be turned
on/off, for every function/function block, through the
ElementProperties dialog.
- Graphical editor: output connection name of functions
had some issues for generic functions. Now most functions (except for
the rare case of functions with several outputs) don't display the
name in the output terminal.
- Graphical models now have an internal version number, so that
they can be migrated when the schema changes. This occurs rarely
(this release adds two atributes for Blocks) and invisibly for the
end user.
- Minor cosmetic changes (fonts in graphical editor)
- Fixed minor issues (better error reporting for no args
functions calls; more robust extensible terminals add/remove)
- Minor changes for EmbeddedTest suite (calls exit()
when done)
2.0.6 (Sep 27, 2012)
- Implemented more permissive automatic conversion ("horizontal
casting") of data types. Integer types of same width (eg INT-SINT-WORD)
are mostly interchangeable now
- Added NEG (non standard) function , so that X:= - A;
is the same as X := NEG(A)
- Added conversions functions *_TO_* for all numeric
conversions (even unnecessary ones; these are alias)
- Several issues fixed: better handling of "index not found"
error; simulator lacked some comparison functions (EQ_BYTE...)
2.0.5 (Sep 19, 2012)
- Many important changes related to data types and generics:
- Automatic conversions for widening castings
implemented. Like almost every language, we now allow to use an INT
where a DINT is expected. Implicit conversions allowed:
SINT->INT->DINT->LINT,
USINT->UINT->UDINT->ULINT,
BOOL->BYTE->WORD->DWORD->LWORD,
REAL->LREAL
- Generic functions: eg, ADD vs ADD_INT:
the generic functions with short names (eg ADD) are now interpreted
as mere alias to the concrete functions (eg ADD_INT) which are
fully resolved (with new logic) at compile time. This is related to
the above change. So now ADD(I1,DI2), where I1:INT,
DI2:DINT is interpreted as ADD_DINT.
- Some functions of standard library were polished or
redefined, in view of the above, and according to common sense. Eg:
now LEFT() takes an INT as argument.
- Unqualified numeric literals are interpreted as generic (eg
ANY_INT) in the first compiler phase; but afterwards, in
the type checking phase, it is resolved to a concrete type. This
includes 1 => INT/BOOL. Now the compiler accepts us1:
USINT := 3; but not us1: USINT := 300; . And it has the
intelligence to understand ADD(us1,300) as ADD_UINT(USINT_TO_UINT(s1),UINT#300).
- Many new features in Graphical editor:
- Function blocks can be assigned a variable name, and it's
displayed in the main editor.
- Indexed variables (eg: myfb.Q) are now allowed in
FBD VarReferences (see test case R0259)
- Arbitrary expressions are allowed as Expressions boxes:
they are parsed with the ST parser.
- User defined types allowed for selection for Ladder
Variables
- Graphical Element dialogs reworked. Added for Labels,
expressions, etc.
- Modifications in NSIS installer to better deal with upgrades
- Internal polishing and minor issues fixes: simulator uses
internal Java functions for stdlib; lexer/parser does not throw
errors to console; fixed an issue with circular dependencies in
graphical compiler, changes in element properties makes editor dirty.
2.0.2 (Jun 12, 2012)
- Added comments for Variables in LadderView
- Full CASE statement implemented in ST language (with ranges;
see testcase R0035)
2.0.1 (May 25, 2012)
- Added Annotations to graphical model and to graphical editor,
to allow for arbitrary comments in FBD/LD
- Modified UI for layout connection points, to provide better
mouse selection/interaction experience. Added double-click shortcut
for graphical elements
- Several minor issues: Avoid duplicated connections. Better
reconnection link check. Fixed bugs with extensible inputs in
graphical editor and removing shapes that didn't properly removed
connections.
2.0.0.019 (May 6, 2012)
- CONSTANT variables properly implemented
- Added 'Attribute' column (CONSTAN/RETAIN) in LadderVariables
view in IDE
2.0.0.018 (Feb 22, 2012)
- Fixed issue with nested arrays initialization and structs -
see testcase R0017
- Fixed default initialization of date/datetime in C runtime to
comply with norm
2.0.0.017 (Feb 2, 2012)
- Plcopen importer
- Better Enums implementation (test case R0008)
2.0.0.014 (Nov 11, 2011)
- Fully new graphical editor
- Using Graphiti framework now; com.gebautomation.graphiti
replaces com.gebautomation.idegraph
- New model and XML format for graphical POUS (FBD/LD), with
EMF , plugin: com.gebautomation.graphmodel