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
- 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) 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.
- 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 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
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:
- 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