LogicLab releases

From Axel Public Wiki
Jump to navigation Jump to search

This page reports the LogicLab revision history with the list of the main features implemented. The full list of the modifications of each version is available in the corresponding release notes.

LogicLab rel. 6.1.0.x BETA

  • Initialization of variables with arithmetic expressions (both integer and floating point)
  • Declaration of array dimensions with integer arithmetic expressions

LogicLab rel. 6.0.0.x

  • Available code generators only for x86, x64, ARM (both ARM32 and ARMThumb2), ARM64, RenesasRX platforms
- Other platforms need additional work and must be requested (i.e. repetitions on init values are unsupported)
- RenesasRX platform is available but repetitions on init values are still unsupported
  • Standard C pack alignment
- Easier definition of shared structures and function blocks between PLC and firmware by using standard alignment of C compilers (details here on StandardCPack)
- Available on x861, x64, ARM, ARM64 (requires runtime and catalog upgrade)
  • Increase of maximum PLC project dimension
- ST lines were limited to 64K lines per POU, and number or relocations were limited to 64K accesses per location; both limits have been now removed
  • Cross-platform compilation of LLC on Linux
- Now LLC can be compiled and run on any Linux platform (x86 or ARM)
  • Compilation of LogicLab for Windows x64 platform
- 64bit build of LogicLab (available on request), to maximize the usage of all available memory of the PC for very big PLC projects
  • Reduced memory usage on compilation
- Various optimizations in PLC project compilation, can reduce memory usage up to 50%
  • Code editor improvements
- Redesigned autocomplete popup window
- Input assistant for FBD and LD blocks
  • PLCopen XML import improvements
- Better interoperability and easier migration from other PLC environments
  • New 'Code analysis' tools
- Project compare, Global variables report, Unused variables report, Unused POUs report, Dependency viewer
  • Implementation of 32 bit date and time types for RenesasRX code generator
  • Based on VisualStudio 2022
- Now based on the new C and MFC runtimes

LogicLab rel. 5.22.0.x

  • Implementation of IEC standard conversion rules between different types
- Available on x861, x64, ARM1 (both ARM32 and Thumb2), ARM64, RenesasRX code generators
  • Implementation of Arrays of STRING and WSTRING
- Available on x861, x64, ARM1 (both ARM32 and Thumb2), ARM64 code generators
  • Implementation of VAR_IN_OUT on functions and methods
- Available on x861, x64, ARM1 (both ARM32 and Thumb2), ARM64 code generators
  • Introduction of extended Unicode characters for identifiers
- Declaration of variables and expressions in Chinese, Japanese, Korean and more
  • Custom base types of enumeratives
- It is now possible to specify a custom integer type instead of the default DINT type for any enumerative type

1 Only on the newest code generator introduced with LogicLab 5.20.0.x, see also New_x86_and_ARM_CodeGen

LogicLab rel. 5.20.0.x

  • Improved code generation and warning handling
- New x86 code generator
- New ARM code generator (both ARM32 and Thumb2)
- See also New_x86_and_ARM_CodeGen for more information
  • Support for VAR_EXTERNAL also in functions
- As for IEC standard, VAR_EXTERNALs are now also supported in functions (previously only on function blocks)
  • New algorithm for calculation of POU dependencies
- Better handling of dependencies between POUs and data types, to avoid unnecessary compilation of unused blocks
  • Complex conditions (AND, OR, NOT) for IFDEF directive
  • PVOID pointer type
- New generic PVOID type, to avoid warnings and allow architecture-indipendent pointers

LogicLab rel. 5.18.0.x

  • Support for ARM64 architecture
- New native ARM64 code generator
- Time/date and duration data types
- Object oriented features
  • Internal rework of symbol names when "case sensitivity=false"
- Symbol names are not made all uppercase anymore, so they preserve their original case in watch, output, symbol browser, and so on
  • Init value of function variables
- It is now possible to both explicitly initialize local variables of functions: implemented on x64, ARM, ARM64 (on x86 since 5.14.0.x)
  • Libraries directories
- Instead of adding libraries one-by-one, a list of folders containing all libraries to load can be specified
  • Skip duplicate objects in libraries
- It is now possible to use a library that has duplicate object names with respect to the current project, they will be automatically skipped
  • Allow usage of max 4GB of RAM on 64bit Windows systems
- "Large address aware" flag has been enabled on LogicLab and LLC executables
  • Preprocessor directives
- Parts of code (both in textual and graphical languages) can be conditionally disabled using {IFDEF} directives
  • Relocatable code for ARM and ARM64
- Implementation of relative code (PLC_S_CODE_RELAT runtime switch) and data patch (PLC_S_DATA_PATCH) for ARM architectures, as for x86 and x64

LogicLab rel. 5.16.0.x

  • Unused variables reports
- An XML report, with dedicated view, to track all unused global variables of the project
  • Access to target memory only through datablocks, without read/write memory to physical addresses
- New communication modality, that does not use physical address in the communication protocol for better safety and security
- Requires runtime upgrade, and support in the specific commmunication protocol used
  • New symbols browser window
- New docking window with fast searching and browsing of all the project symbols
  • Support of complex (arrays and structures) input parameters and return value on functions and methods
- Implemented on x64, ARM code generators (on x86 was already implemented in 5.14.0.x)
  • Operators, standard blocks and target blocks on library view
- "Operators and blocks" window has been removed, and its contents are now shown in the "Library tree" window, in two new folders, called "Operators and blocks" and "Target" (with the contents of the TGT)
  • Object oriented features on ARM32, ARMThumb, x64
- Requires runtime upgrade
  • Support for TriCore architecture
  • New COM interface in AlPrjManager.DLL
- Allows in-process usage of LogicLab components; available as AlPlc.AlCOMPrj
  • Embedded symbol table on target
- Download of the list of variables with unspecified addresses (%I*, %Q*, %M*) inside the PLC code file

LogicLab rel. 5.14.0.x

  • WSTRING type support on x86, x64, ARM (both ARM32 and Thumb2)
- Support for wide strings in UTF-16 format
- Requires runtime upgrade, on all architectures
  • Dynamic tasks
- Tasks can be dynamically added in LogicLab
- Requires runtime upgrade
  • Declare arrays with start index different from zero
- The lower bound of arrays can now be freely chosen, instead of zero
- Full support for TIME, LTIME, DATE, LDATE, DATE_AND_TIME, LDATE_AND_TIME, TIME_OF_DAY, LTIME_OF_DAY data types
- Requires runtime upgrade, on all architectures
- it is possible to add custom actions and callback to function blocks to implement 'smart blocks'
  • Support for unspecified datablock addresses (%I*, %Q*, %M*)
  • Support for VFP with only single precision on ARM architectures
- on architectures without VFP double precision registers, REAL floating point types are managed with VFP single precision registers, while LREAL are managed in software only
  • Support for reference types and runtime check of pointers and references on x64 and ARM
  • IEC textual declaration for structures, typedefs, enums, subranges
  • Possibility to exclude PLC objects from build explicitly
- option to disable compilation of programs, functions, function blocks, global var groups
  • Support of complex (arrays and structures) input parameters and return value on functions (on x86 only)
  • Init value of function variables
- it is now possible to both explicitly initialize local variables of functions (x86 only), and to initialize them to zero by default with a specific option

LogicLab rel. 5.12.0.x

  • x64 code generation
- Support for native x64 code generation
  • New live-debug mode for ST code
- Live-debug with all values printed inside code, beside each variable
  • Support for LREAL and LINT on x86, x64, ARM (both ARM32 and Thumb2)
- Support for extended 64bit types (LREAL, LINT, ULINT, LWORD)
- x86: LINT requires runtime upgrade. LREAL is supported natively (no runtime upgrade needed).
- x64: Both LINT and LREAL are supported natively (no runtime upgrade needed).
- ARM32 and Thumb2: LINT requires runtime upgrade. LREAL with VFP is supported natively, otherwise requires runtime upgrade.
  • VAR_IN_OUT as references
- Optional configuration for passing VAR_IN_OUT as references (standard for IEC61131-3) (on x86 only)
  • Direct bit mapping with datablock location
- Allow to specify a BOOL variable directly with a physical location, e.g. %MX10.2.3
  • Bit access on ARM
- Support for direct bit access, e.g. var.3
  • PLCOpenXML import/export
- Import of IL, ST and LD. Export of IL and ST
  • Watch window optimization
- It is now possible to put in watch very large structures and arrays
  • New Build folder
- Save all output files of compilation in a separate "Build" folder
  • Symbolic array size
- Support for dynamic array bound using a symbolic constant
  • Multiple files project
- Each POU can be saved in a different file, to improve usage of version control systems
  • Based on VisualStudio 2017
- Now based on the new C and MFC runtimes

LogicLab rel. 5.10.0.x

  • Auto watch of variables
- Watch tab is added both to global and local variables view to display variables values.
  • Watch window optimization
- Only visible items are effectively read in the watch window
  • Report view of global variables
- Summary view of all global variables, without groups

LogicLab rel. 5.8.0.x

  • RO folders
- Worskpace folders and their content can be set as read-only.
  • Library editor mode
- Project tree can automatically generates libraries from workspace folder. See library generator page.
  • Autodeclaration of variables
- The auto-declaration feature lets you to declare a variable when its being used on ST, FBD or LD editor.
  • Dark GUI theme
- A dark theme color scheme for the IDE.
  • Single workspace tree (including definitions)
- Both PLC objects and all user-defined data types are represented on the single workspace tree.
  • Code Navigation
- By pressing F12 the IDE jumps to the definition of the selected object.

LogicLab rel. 5.6.0.x

  • Implementation of next-step debug for ST, FBD, LD languages
- When a breakpoint is hit, you can now step through the code at one instruction at time
  • Added LREAL support for ARM and ARM Thumb architectures
- Double precision LREAL format now available on ARM (requires runtime upgrade)
  • VFP2 support for ARM processors
- hardware floating point support for ARM (for both REAL and LREAL) (requires runtime and catalog upgrade)
  • Auto-declaration of variables for ST language
- Automatic prompt for declaration of new variables for ST language when typing
  • Go-to symbol (preliminary release)
- New IDE command for code navigation (Shift+F12, toolbar). Allows to jump from a symbol usage to its definition

LogicLab rel. 5.4.0.x

  • Textual editing of variables declarations
- Variable declarations can be edited using either the 'classic' table view or the new variable text editor
  • Debugging of functions and methods
- Local variables of functions and methods can be watched when in breakpoint inside the function. Also triggers can now be used inside functions

LogicLab rel. 5.2.0.x

  • Complex constant variables initialization
- Constant arrays, structures and user defined data types in general can be initialized
- Initialization syntax as defined by the IEC 61131-3 standard
  • Refactoring function
- Change all instances and usages of an element (variable, POU, user type, ...) in the whole project

LogicLab rel. 5.0.0.x

  • Expression in FBD language
- FBD blocks can have ST expression as input
- The same function is already available with LD editor (since rel. 4.2)
- New 'modern' style for the LogicLab framework.
- Completely new toolbars icon set.
- Support for custom application 'skins'.
  • Custom image for POUs
- Each user defined POU can have a custom image (support for bmp, png, gif, jpg, tif formats).
- The block image will be shown in the LD and FBD languages and in the block description (property view).
  • SFC editing improvements
- SFC editor offers now both editing modes: manual and automatic.
- Added functions for automatic movement and placement of SFC blocks
  • SFC transitions with expressions
- ST expressions can be used as transition code
- The ST expression can be entered in the 'Transition properties' dialog in addition the the existing choiches: variable, constant and code
- This feature simplifies the SFC source code editing

LogicLab rel. 4.4.0.x

  • Object oriented programming (X86 only)
- Implementation of Object Oriented features as reported in the IEC 61131-3 standard rel. 3.
- Object oriented features applied to function blocks (methods, inheritance, interfaces).
- Inheritance and polymorphism features.
- Interfaces (definition, inheritance, usage).
- Each block can now have an hypertext (HTML) description.
- Support for images and full HTML text formatting features.
- New 'Edit block property' window for the editing of the block documentation/description.
  • Auto-creation of variable in LD editor
- Automatically create a new variable when you type its name
  • Import whole library function, and folder structure in PLCLIB
- Import all the library object and its structure under a single folder, to modify it and export it again
  • Support for Freescale DSP56800E core code generator
  • Support for Motorola PowerPC code generator
  • New tree library view
- Libraries are now displayed in a separate view as a tree (similar to project workspace)

LogicLab rel. 4.2.0.x

  • Symbols cross-reference dockbar
- Graphical interface for cross-reference navigation
  • Copy and assignment complex objects (array, structures, ...)
- Can directly assign complex objects to copy them, as for simple types

LogicLab rel. 4.0.0.x