Update on what development happened across the Eclipse 4diac project in the week from October 04 to October 11, 2024.
Enhancements and Fixes in 4diac IDE
- New Features
- Added new functions F_NOW and F_NOW_MONOTONIC for timing.
- These functions return the current local date/time and monotonic clock value, respectively.
- Added a Build 4diac Forte Launcher.
- New launch configuration to build preconfigured 4diac FORTE using the cmake --build command.
- Added new functions F_NOW and F_NOW_MONOTONIC for timing.
- UI/UX Enhancements
- FB Network Grid now follows IEC 61499 Coordinate System Resolution.
- Grid resolution matches the size difference between pins, ensuring cleaner drawings and more precise FB positioning.
- SetPosition now better handles screen deltas when moving blocks.
- Aligned Expanded SubApp content on the grid in the X direction.
- Reworked resizing of Groups, SubApps, and Comment Fields.
- Improved handling of screen coordinates to reduce rounding errors and improve grid snapping.
- FB Network Grid now follows IEC 61499 Coordinate System Resolution.
- Validation & Type Handling
- Relaxed link creation type check for InOut variables.
- Validated if defining variable is of generic type for InOut variables.
- Used defining variable in type checks for InOut variables.
- Validated attributes on error marker interface.
- Bug Fixes
- Fixed dependency resolution during project creation.
- Fixed potential null pointer exception on library import.
- Fixed empty imported namespace for import normalizer in qualified scope.
- Fixed InOut parameter order for event accessors in forte_ng export.
- Fixed generation of initial values declaration in forte_ng export when only InOut variables exist.
- Fixed hover tooltip in ST editor.
- Fixed issue where only the last file (.cpp) passed to the reused CompareEditor opener was shown.
- Updated URI of resources on file changes in type entry.
- Refactoring & Code Improvements
- Deleted InterfaceDataTypeChange as it was redundant with UpdateFBTypeInterfaceChange.
- Implemented isValid method for UpdateFBTypeInterfaceChange.
- Renamed UpdateFBTypeInterfaceChange to AbstractCommandChange.
- Creation of supporting SWTBot class SWTBotECC (#377).
- Moved related methods from Abstract4diacUITests, and adapted ECCEditorTests.
Enhancements and Fixes in 4diac FORTE
- New Features
- Added new functions for retrieving current time and monotonic time.
- Code Improvements
- Added assembling and splitting modules to CMakeLists.
- Assembling module includes various functions.
- Splitting module includes corresponding functions.
- Added missing vector include for compiling OPC UA support with clang.
- Added assembling and splitting modules to CMakeLists.
- Consistency Changes
- Lowercased selection folder to maintain consistency with the IDE.
Enhancements and Fixes in 4diac FBE
- Fixed the verbose/non-parallel build switch ('-v').
- Updated FORTE to the latest version.
- Made the dynamic link bundling workaround more robust.
Many thanks to all contributors for their work and their feedback!
Cheers,
The Eclipse 4diac Team
Update on what development happened across the Eclipse 4diac project in the week from September 27 to October 04, 2024.
Enhancements and Fixes in 4diac IDE
- Fixes
- Fixed return type conversion in ST partitioner: Corrected an issue where the return type was set to ANY instead of null, causing problems during export.
- Fixed validation of assigned inputs from outside in ST editor.
- Fixed Quick-Fix to use the correct model element and ensure unsaved changes are preserved.
- Fixed issue where typing to invoke the new instance inserter caused the first character to be selected and overwritten.
- Fixed item reference for manifest update button.
- Fixed several issues with configured STRUCT_DEMUXERs, including connection parsing and type updates for visible outputs.
- Fixed GEF API change issues.
- Fixed sorting issue in System Navigator, preventing folders from collapsing on file rename.
- Fixed Quickfix for refreshing monitoring elements when no graphical editor is open.
- Fixed type class caching in FB type entry.
- Fixed plug type creation in adapter type entry.
- Improvements
- Added temporary flag for disabling the rename dialog.
- Changed UpdateFBInstanceChange to AbstractCommandChange.
- Added RampLimitFS FBType with setpoint ramping functionality, including event handling and value adjustments based on input parameters.
- Added Step mode to FollowConnectionHandlers.
- Added button to toggle Jump/Step mode for following connections.
- Improved System Navigator sorting for better folder handling.
- Deprecations
- Deprecated "editable" type in type entries in favor of using TypeEntry.copyType() or directly getting the type from an editor.
- Other Updates
- Updated E_STOPWATCH FBType with new copyright information.
- Updated to maintain expanded state of Demuxer property sheet tree viewer.
- Added separate last modification stamp for type editable in entries.
- Removed extra synchronized in type entry subclasses.
Enhancements and Fixes in 4diac FORTE
- New Functionalities
- Added RampLimitFS functionality for signal processing, including algorithms for fast/slow modes, step up/down actions, and loading setpoints.
- Added SCALE_LIM function block for signal processing with upper and lower limit scaling.
- Added SCALE function block for general signal processing.
- Added assembling functions:
- ASSEMBLE_DWORD_FROM_BOOLS_fct
- ASSEMBLE_BYTE_FROM_QUARTERS_fct
- ASSEMBLE_WORD_FROM_BYTES_fct
- ASSEMBLE_DWORD_FROM_WORDS_fct
- Added splitting functions:
- SPLIT_DWORD_INTO_WORDS_fct
- SPLIT_BYTE_INTO_QUARTERS_fct
- SPLIT_BYTE_INTO_BOOLS_fct
- SPLIT_WORD_INTO_BYTES_fct
- Updates
- Updated E_STOPWATCH FB with new events, handling logic, and state transitions, including algorithms for triggering and resetting the stopwatch.
- Updated Wago modules for current 4diac FORTE and changed WSTRING to STRING in Wago modules.
- Fixes and Improvements
- Fixed typo in slave macro and adjusted libraries for Wago.
- Called loadTerminalInformation after opening devices to display found devices with IDs.
- Cleaned up folders and removed non-modular Wago IOs.
- Migrated Wago modules.
Many thanks to all contributors for their work and their feedback!
Cheers,
The Eclipse 4diac Team
Update on what development happened across the Eclipse 4diac project in the week from September 20 to September 28, 2024.
Enhancements and Fixes in 4diac IDE
- Fixes
- Fix THIS access in forte_ng export and ST editor
- Fix variable access for internal FBs in evaluator
- Fix result type of comparison with missing operand types in ST editor
- Fix result type of internal FB call in ST parser
- Fix null pointer caused by non-existing library
- Fix ClassCastException when opening ContextMenu on an errorMarker
- Fix type cast error when deleting a FBType
- Fixed label providers for Array variables
- Fixed CreateConnectionAtSubappInterface to also include array-datatype
- Fixed creation of pins with array-datatype when creating new SubApp
- Fixed update of Connection Label after expanding/collapsing a SubApp
- Fixed icons for SelectFBDialog in QuickFixOption
- Copying structs to other folder creates 2 identical structs (#514)
- Fix THIS access in forte_ng export and ST editor
- Improvements
- Reduce compiler warnings in 4diac IDE
- STOPWATCH: Add new events ET and RESET, update ECState positions, and implement reset functionality
- Refactor locking implementation in type entry to improve performance and avoid deadlocks
- Improvement of Layout of Table in LibrarySelection page
- Ignore dependencies internal to libraries
- Ant task to check for unused dependencies
- Add editor configuration in variable widget
- Use variable widget in launch configurations
- Recreated QuickFixWizard Dialog
- Features
- Added check to prevent ClassCastException
- Added support for copy and paste in tree nattable
- Add variable dialog for structured initial values in FB debug view
- Add variable dialog for structured initial values in graphical editors
- Add variable dialog for structured initial values in nat tables
- Add expand/collapse all in variable widget
- Add method to get children from variable in evaluator
- Add message for canceled export of single element
- Add message if cancel all button was used during export
- Changed RepairCommandHandler to QuickFixHandler
- Added new tests for variable operations
- Refactorings
- Cleanup for constructors of CreateInterfaceCommands
- Remove Main Code for Virtual Group Interface Experiment
- Refactoring of Strings for QuickFixWizard
- Replaced WSTRING with STRING in Wago FBs
- Deprecations
- Add deprecated annotation for searchApplication wrapper in ModelSearch
Enhancements and Fixes in 4diac FORTE
- Features
- Add generic event accessors to enable usage of network FBs as internal FBs
- Improvements
- Update compiler flags for ESP32 toolchains to remove deprecated declarations in C and C++ files
- Cleanups
- Clean main and init files across different architectures
- Added missing flag for shared library
- Fixed Windows architecture declaration and cleaned up startuphook file
- Limited shared library test to only when FORTE is built as a shared library
- Moved signals hook to each architecture
- Exported Windows symbols for shared library
- Clean main and init files across different architectures
Many thanks to all contributors for their work and their feedback!
Cheers,
The Eclipse 4diac Team
Update on what development happened across the Eclipse 4diac project in the week from September 13 to September 20, 2024.
Enhancements and Fixes in 4diac IDE
- Function Block Changes and Updates
- Added a new scaling function block with enhanced features
- Updated fieldbus signal conversion function blocks :Refined input/output handling and updated comments for clarity
- Test and UI Enhancements
- Restructured SWTBot UI tests for better modularity and migrated them to the new architecture
- Enabled the cancel button for long-running export operations
- Improved handling of export threads and fixed race conditions related to UI interactions
- Fixes and Miscellaneous Updates
- Fixed issue where internal variables were added multiple times to the watch list
- Enhanced property sheet to display detailed edit part information such as connections and instances, with sorting options
- Updated 4diac FORTE Exporter name to indicate version 3.x compliance
- Formatted numbers in ST validator messages to avoid locale-based issues
- Fixed race condition in ST editor related to the Xtext framework adapter handling
- Reworked deployment data unit tests and improved testing for parameter writes
- Fixed name casing for error type entries and improved annotation handling in the UI
- Improved VarInOut pin handling in SubApp editors, fixing deletion issues
- Fixed PackageInfoWidget’s annotation handling, avoiding unnecessary dirty states in editors
- Removed outdated markers from tests affected by server Maven version incompatibilities
- Replaced magic strings with constants in Import-AntTask and improved library dependency resolution
- Fixed handling of "Cancel" button in IProgressMonitor for model search operations
Enhancements and Fixes in 4diac FORTE
- Improvements in Signal Processing Library
- Renamed signal processing module files for consistency
- Updated include paths for generated source files to streamline references
- Refactored signal processing functions and interfaces
- Removed unused variables and connections
- Updated function interfaces for value conversion
- Enhanced code readability and organization
- Bug Fixes and Compliance
- Fixed incorrect time conversion in the faketime module
- Fixed rounding behavior for real to integer conversions to conform to IEEE 754 (IEC 60559) and IEC 61131-3 standards
Many thanks to all contributors for their work and their feedback!
Cheers,
The Eclipse 4diac Team
Update on what development happened across the Eclipse 4diac project in the week from September 06 to September 13, 2024.
Enhancements and Fixes in 4diac IDE
- Property Sheets
- Separated annotation model refresh in property sheets
- Avoided removing and re-adding annotations during live validation
- Export Functionality
- Disabled editing of the Message-Textfield in the export dialog
- Added handling for AttributeDeclaration and AutomationSystem in export
- Fixed "not responding" message on Windows during long-running exports
- Updated types to be exported in SIFB exporter
- Added export of global constant files
- Evaluator and Conversion Fixes
- Fixed name collision between cached global variables in ST evaluator
- Fixed initial values for sampling FB evaluator
- Fixed comparison with negative zero for reals according to IEEE 754 standards
- Fixed rounding mode for real to integer conversions to round towards the nearest even integer
- UI and Testing Improvements
- Disallowed usage of XbaseGenerated annotation in Xtend compiler
- Added struct initializer type specifier in ST parser
- Added generic variable support in evaluator for derived types
- Continued UI test architecture changes with new helper classes
- Renamed variables in supporting bots for clarity
- Created sub-packages for clearer UI test structure
- Fixed static accesses and typos in tests
- Miscellaneous
- Removed Xtend project configuration from ST evaluator plugin
- Migrated ST evaluators from Xtend to Java
- Changed isValid method in UntypedSubappPinChange
- Added new menu entry for monitoring internal variables in simple and basic FB instances
- Internal variable watches can now be removed only via the debug main menu
Enhancements and Fixes in 4diac FORTE
- Powerlink Function Blocks
- Updated powerlink FBs to be compatible with the latest FORTE version
- Reverted erroneous names and removed old powerlink FBs
- Added new powerlink FBs in a new structure
- Introduced automatic download of tinyxml and openPOWERLINK when needed
- Added abstraction layers for DI and DO powerlink nodes
- Included abstract FBs for analog input, output, and temperature input
- Added the X20DO9322 function block
- Added powerlink to system tests
- Downgraded openPOWERLINK to version 1.8.0 for OPC UA compatibility
- General Improvements
- Fixed parsing of structured values in ANY variant
- OPC UA Cleanup
- Removed raw pointers for RData and action info
- Removed and cleaned up various subscription and reference pointers
Many thanks to all contributors for their work and their feedback!
Cheers,
The Eclipse 4diac Team
What are your plans for this winter? Skiing, baking cookies, or maybe a sleigh ride? Whatever you are considering, we have a recommendation for you: Choose a winter activity powered by Eclipse 4diac!
We are excited to announce that Bianca Wiesmayr, Lisa Sonnleithner, and Alois Zoitl form the LIT Cyber-Physical Systems Lab will organize the 4days of Eclipse 4diac Winter School from February 11-14, 2025 in Linz, Austria!
What to expect?
This winter school offers an in-depth exploration of IEC 61499 and Eclipse 4diac. Whether you are a newcomer eager to learn or a seasoned user looking to deepen your knowledge, this event is designed for every one of you.
At the 4days of Eclipse 4diac Winter School, we believe in "no theory without hands-on experience." Thus, every session will be paired with practical workshops, allowing participants to immediately apply what they have learned in real-world scenarios.
Preliminary Program Overview:
- Classical Eclipse 4diac and IEC 61499 Topics:
- Developing IEC 61499 Solutions: Learn the fundamentals of developing IEC 61499 automation solutions using Eclipse 4diac.
- Advanced Concepts of IEC 61499: Dive into advanced features and methodologies for creating more complex and larger systems.
- Fixing Your First Bug in Eclipse 4diac: A step-by-step guide to help new contributors get started with fixing bugs.
- Extending 4diac IDE: Customize and extend the Eclipse 4diac IDE to suit your specific project needs.
- Extending 4diac FORTE: Learn how to enhance and expand the capabilities of 4diac FORTE, the runtime environment for IEC 61499 applications.
- Quick & Easy Management of 4diac FORTE Builds with FBE: Simplify your 4diac FORTE builds and manage dependencies effortlessly using FBE.
- Connecting Eclipse 4diac to Factory IO: A practical session on connecting 4diac FORTE with Factory IO for simulation and testing.
- New and Industry-Related Topics:
- Programming UAO-based Devices with 4diac IDE: Explore how to program UAO-based devices using the 4diac IDE.
- Industry Usage Reports: Hear directly from industry users about how they apply Eclipse 4diac in real-world settings.
- Introduction to OPC UA: Learn the basics of OPC UA and how it can be used in conjunction with Eclipse 4diac to enhance industrial communication.
- Broader Open Source Discussions:
- Women in Open Source: A session dedicated to promoting diversity and the inclusion of women in open-source communities.
- Open Source: From Revolutionary Idea to Mainstream: A session from the Eclipse Foundation on the evolution and impact of open-source software over the years and how to get involved in an open source project.
Registration Information:
A small registration fee will apply to cover materials and organizational costs. Details about the fee and registration process will be shared soon.
Mark your calendars and join us for an engaging winter of learning, coding, and networking!
Cheers,
The Eclipse 4diac Team
Aimirim would like to anounce what we consider a nice contribution to Eclipse 4diac community. The UAORT plug-in is a lighthouse towards configurabilty in IEC 61499 by allowing 4diac IDE users deploy to the UAO (Universal Automation) run-time environment.
We understood that UAO is growing and the demand for this configurabilty is growing also. Aimirim has deployed several complex real world industrial applications using Eclipse 4diac. This allowed us to understand the advantanges of event driven distributed applications and opensource models to speed up industry 4.0 revolution. This experience also make it easier for us to do this job and contribute to the Eclipse 4diac comunity.
That's why we did that, focused on the main goal of unlocking the digitization of industrial operations. Aimirim believes that the growth of this market will drive more opportunities to startups and new talents. Contributing to Eclipse 4diac also represents this belief.
Cheers,
Aimirim Team
We are thrilled to announce a significant enhancement to our open-source project: Eclipse 4diac now supports the RevolutionPI device manufactured by Kunbus GmbH. This integration marks a major milestone in our mission to provide comprehensive support for a wide range of industrial devices, empowering developers to build advanced automation and control systems with ease.
With this latest addition, Eclipse 4diac users can seamlessly integrate RevolutionPI devices into their automation solutions, harnessing the full potential of Eclipse 4diac's powerful features and functionalities. Whether you're working on industrial control systems, process automation, or IoT applications, Eclipse 4diac now offers enhanced compatibility and support for RevolutionPI devices, empowering you to bring your automation projects to life with unparalleled ease and efficiency.
To get started with Eclipse 4diac and RevolutionPI support, simply download the latest development version of 4diac FORTE from our Github repository and explore the possibilities today.
Thank you for your continued support and enthusiasm for Eclipse 4diac. We look forward to seeing the innovative automation solutions our community will create with RevolutionPI support!
Cheers,
The Eclipse 4diac Team
We are thrilled to announce a significant milestone in the evolution of the Eclipse 4diac project: all our repositories have been migrated to GitHub!
This strategic move aims to enhance accessibility, collaboration, and engagement within our growing community of developers, enthusiasts, and users. By leveraging GitHub's robust platform, we are opening up new avenues for streamlined contribution workflows, transparent issue tracking, and dynamic collaboration.
You can now find all Eclipse 4diac repositories conveniently housed under the official Eclipse 4diac GitHub organization at https://github.com/eclipse-4diac..
What Does This Mean for You?
- Improved Accessibility: Accessing, exploring, and contributing to Eclipse 4diac is now easier than ever with GitHub's intuitive interface and extensive documentation.
- Enhanced Collaboration: GitHub's powerful collaboration features empower developers worldwide to collaborate seamlessly on code, report issues, suggest enhancements, and engage in meaningful discussions.
- Transparent Development: Stay up-to-date with the latest developments, bug fixes, and feature enhancements through our transparent development process on GitHub. Follow along, provide feedback, and shape the future of Eclipse 4diac.
Get Involved!
Whether you're a seasoned developer, an enthusiastic user, or simply curious about industrial automation and control systems, there are numerous ways to get involved with Eclipse 4diac:
- Contribute Code: Dive into our repositories, explore open issues, and submit pull requests to contribute code improvements, bug fixes, or new features.
- Report Issues: Encountered a bug or have an idea for improvement? Open an issue on GitHub, and let us know. Your feedback helps us continuously refine and enhance Eclipse 4diac.
- Join the Discussion: Engage with the Eclipse 4diac community on GitHub discussions. Share your experiences, ask questions, and connect with like-minded individuals passionate about industrial automation and control systems.
Fork Us on GitHub!
We invite you to join us on GitHub and become an integral part of the Eclipse 4diac community. Together, let's shape the future of industrial automation and control systems with open collaboration and innovation.
Explore the repositories, fork your favorites, submit pull requests, and let's build something extraordinary together! Visit the Eclipse 4diac GitHub Organization.
Thank you for your continued support and enthusiasm for Eclipse 4diac!
Cheers,
The Eclipse 4diac Team
The Eclipse 4diac community is thrilled to announce that Dirk O. Kaar contributed a port of 4diac FORTE to Zephyr. We're immensely grateful for the effort that has made this achievement possible. In particular, special thanks go to KT Elektronik, as they enabled Dirk O Kaar's work on this contribution as part of his employment. This propelled our integration with Zephyr forward.
This exciting development opens up new possibilities for industrial control systems and automation professionals, fostering increased efficiency and flexibility in their projects. This integration enables industrial automation developers to leverage the power of Zephyr in their projects within the Eclipse 4diac ecosystem.
With the addition of Zephyr support, Eclipse 4diac users gain access to a robust and scalable real-time operating system that is perfectly suited for applications in the industrial automation domain. Zephyr's lightweight and efficient architecture allows it to run on a wide range of microcontrollers and small footprint devices, making it an ideal choice for resource-constrained environments.
To get started with Eclipse 4diac's Zephyr support, get the latest 4diac FORTE development branch from 4diac FORTE's Github repository and the documentation provided in the Readme.MD for 4diac FORTE’s Zephyr directory.
For using the latest 4diac FORTE develop version you also need a newer 4diac IDE. We recommend using our pre-built milestone version, which gives you a sneak preview of the amazing upcoming 4diac IDE features.
Cheers,
The Eclipse 4diac Team
is the Fusion of IEC 61499 programming and ISO 11783 compatibiltiy.
Now logiBUS® won a prestigious award: "Award for innovative digital farming" it was awarded at the 44th Annual Conference at the University of Hohenheim of the Society for Information Technology in Agriculture, Forestry and the Food Industry e.V.
Cheers,
Franz Höpfinger on behalf of HR Agrartechnik GmbH
- News in German
- News in English
- youtube News in English
- Magazine in German
- Magazine in English
- Article in German
- Article in English
Cheers,
Franz Höpfinger on behalf of HR Agrartechnik GmbH
The folks at HR Agrartechnik GmbH have been busy to port Eclipse 4diac™ FORTE to the ESP32 and integrate the ISOBUS (ISO 11783) protocol over the last year.
is the Fusion of IEC 61499 programming and ISO 11783 compatibiltiy.
ISOBUS, also known as ISO 11783, is a communication protocol standard developed for agricultural equipment to facilitate the exchange of data between different types of farm machinery and implements. The term "ISOBUS" stands for "ISO Bus," where ISO refers to the International Organization for Standardization, and "Bus" refers to a system of communication between multiple devices.
The goal of ISOBUS is to enable interoperability and compatibility among various agricultural devices from different manufacturers. This standard allows tractors, combines, sprayers, seeders, and other agricultural implements to communicate and share information seamlessly. This information exchange can include data such as equipment status, operational settings, and control commands.
ISOBUS provides a standardized physical connection, usually implemented through a standard connector, and a set of communication protocols that allow different devices to exchange information. This can improve efficiency on the farm by enabling operators to control and monitor various implements from within the tractor cab, reducing the need for multiple displays and control interfaces.
The ISOBUS standard defines different layers of communication, such as the physical layer (defining the connector and cabling), the data link layer (defining how data is packaged and transmitted), and the application layer (defining the structure and content of the data exchanged).
In summary, ISOBUS (ISO 11783) is a standardized communication protocol used in the agricultural industry to enable different types of farm equipment to communicate and share data, ultimately leading to improved efficiency and ease of use for operators.
While exising ISOBUS Stacks require heavy C or C++ Programming as well as knowlege of both, the Bus Protocol and the Programming API of the corresponding ISOBUS Stack, logiBUS® ease the same a lot by covering the Complexity in IEC 61499 Function Blocks. Therefore the Programming of a ISOBUS Universal Terminal Softkey Input in Eclipse 4diac™ is the same as programming a digital input. Nothing new to learn.
A corresponding Website is under construction, but first examples are on the Page:
And, to support Open Source, some Customers agreed to publish their Projects:
There will be a featured Speech about the basics of logiBUS® at the Espressif Developer Conference 2023 September 12, 14:30 see Details:
- DevCon23
- Devcon23 - Turning the ESP32 into a PLC with the Eclipse 4diac™ Framework: The Project logiBUS® on YouTube
Cheers,
Franz Höpfinger on behalf of HR Agrartechnik GmbH
For 4diac FORTE, API stability was always our major concern. However, this came at a cost (e.g., performance, memory usage, memory-safety). Therefore, we decided that we need to do a major rework of 4diac FORTE for the next release!
The first results are already looking very promising. We get twice the speed for FB algorithm execution and reduced the runtime overhead (event and connection processing) by 30%. We hope for more progress to come in the next weeks.
What does that mean for you?
- For Basic, Simple, and Composite FBs; Adapter Interfaces; and Structured Data types: you simply need to regenerate the C++ code from within your IDE.
- For SIFBs: you need to regenerate the interface handling code and adjust the method signature of the executeEvent method
Given the gains that you will get from this rework, we believe that this is a small price to pay. If you have any questions regarding this change, do not hesitate to contact us!
Cheers,
The Eclipse 4diac Team
Dear 4diac community,
Every year, Google provides funds to students and beginners of open source to learn about contributing to open source projects. We are pleased that two of the proposals submitted for Eclipse 4diac were accepted. The projects allow students to concentrate on open source contributions during their summer break, and provide a unique opportunity for projects like Eclipse 4diac to develop prototypes for new features.
- Andrea, a second-year computer science student, will work on improving the quality of the IDE.
- Paul was already a participant of the program in 2022. This year, he will work on providing tools for developers of IEC 61499 applications to ensure their correctness.
Two of our committers will serve as mentors for our students. Many thanks to Bianca and Michael for introducing Andrea and Paul to our community and providing support.
Please welcome our contributors for 2023!
Cheers,
The Eclipse 4diac Team
Dear 4diac community,
Two of our team members conducted usability studies over the past years on our automation solution development tool, the 4diac IDE. We're proud to announce that the results of these studies have been published in a well-regarded scientific journal, and we believe they will help us make the 4diac IDE even better.
As many of you know, developing industrial control software is a challenging task, especially when control systems are unique and need to be maintained for many years. That's why we put a lot of effort into making the 4diac IDE a more intuitive and efficient environment for creating automation solutions.
Our research paper discusses the results of two usability studies we conducted to evaluate the 4diac IDE. We used the cognitive dimensions of notations framework from the field of human-computer interaction to assess the tool's capabilities, and we also conducted a user study with ten industrial automation engineers who used the 4diac IDE in a realistic control software maintenance scenario.
Based on the lessons we learned from these studies, we were able to make improvements to the 4diac IDE that we believe will make it an even better tool for developing industrial control software. We encourage you to read our publication here to learn more about our research and the changes we've made to the 4diac IDE.
We're committed to providing our users with the most usable and efficient environment for creating automation solutions. Thank you for being a part of the Eclipse 4diac community, and keep an eye out for more updates on our ongoing efforts to improve the 4diac IDE!
As always, we value feedback from our community and users. If you have any comments or suggestions regarding 4diac IDE or the usability studies mentioned in this news post, we would love to hear from you. You can provide your feedback on our dedicated feedback page, located at LimeSurvey. Your input will help us to further improve the Eclipse 4diac IDE and make it an even better tool for industrial control software development.
Cheers,
The Eclipse 4diac Team
Dear 4diac community,
Our team is actively working on the upcoming release, and we're excited to share some updates on our progress. We're putting a lot of effort into ensuring that the new release meets our users' expectations, and we're working hard to deliver new features and enhancements that will make automation solution development even more efficient and intuitive.
The last version of the 4diac IDE already supported error markers, making it easier to work with inconsistencies in your projects.
The addition of error markers is a significant usability improvement, providing a clear indication of where errors exist in your code. This feature allows users to load broken projects, make changes, and fix errors later. This is a welcome enhancement for users who have been frustrated with the inability to work with inconsistent projects. The feature will make it easier to identify and address errors in the code, streamlining the process of creating automation solutions.
In earlier versions of Eclipse 4diac, certain operations were prohibited because they could potentially lead to errors. However, with the new update, these operations are now allowed, and any resulting errors can be easily handled using the error markers feature.
Michael, the developer who implemented this feature, says that "The implementation of the error markers feature in Eclipse 4diac required a novel approach that involves refactoring features for resolving the errors seamlessly. When loading projects, we scan the project's XML code in real-time, identify errors, and highlight them in the source code editor. We spent a considerable amount of time testing the feature to ensure that it works seamlessly with the rest of the IDE."
If you're interested in learning more about the error markers feature in the 4diac IDE, we encourage you to check out Michael's publication where he discusses the feature and its implementation in more detail. You can find the link to the paper here. Happy reading!
Cheers,
The Eclipse 4diac Team
In the beginning of 4diac IDE, we introduced Virtual DNS as a means to easily collect configuration values for IOs and communication FBs. It was a simple key-value store that greatly reduced the effort. But it was never more than that and had its problems (e.g., editing Virtual DNS in a view is a pain).
In the last months, as part of the work on improving our IEC 61131-3 structured text support, we added a new feature: a file format for providing a set of globally available constants. This feature is now in a state where it can replace the Virtual DNS. Therefore, we will start the process of removing Virtual DNS from the development branch of 4diac IDE. With the next release it will not be available any more.
If you want to try out our new global constants feature get 4diac IDE's latest RC build.
There, you can simply create a file with the extension globalconsts
and open it in the default editor. In this editor, you can specify your constants textually:
VAR_GLOBAL CONSTANT
PI : REAL := 3.1415;
PI_HALF : REAL := PI / 2.0;
TWO_PI : REAL := PI * 2.0;
END_VAR
You can use the constants in any place in 4diac IDE where literals of the specified type are allowed (e.g., a pin of an FB). The great advantage of the global constants is that they are typed. With that, we can provide feedback whether the constant is allowed at the place you are using it. Also, code completion is possible.
Looking forward to your feedback.
Cheers,
The Eclipse 4diac Team
Dear 4diac community,
It's always good to see passionate individuals join open source projects like Eclipse 4diac. As a new committer of Eclipse 4diac, Michael will now have the ability to directly contribute to the development of the project and help guide its future direction. It's also great that he's enthusiastic about supporting the community - open source projects thrive on the support and contributions of their users. We are sure Michael's contributions will be greatly appreciated by the Eclipse 4diac community.
Cheers,
The Eclipse 4diac Team
Dear 4diac community,
We know that it has been a while since our last release, but we want to let you know that we have been busy making a lot of changes behind the scenes. We plan to release a new version later this year, packed with a wide range of new features and improvements. We believe that you, our valued community, might not be aware of all the changes that have happened since then. To address this, we will be providing regular updates on our recent progress via our news page and social media. Our next release will include all the features that we have been working on, so stay tuned for more information.
In addition to our upcoming release, we would also like to showcase research works that use or improve Eclipse 4diac. If you have been working on a project that involves Eclipse 4diac and would like us to consider featuring it, please send it with a short description of how Eclipse 4diac was affected or how it helped your work, depending on the nature of the project. We value community contributions and are always looking for ways to improve the 4diac ecosystem.
If you have any suggestions for future updates or would like to share how you've used 4diac IDE in your work, please reach out to us through our mailing list or social media channels. We can't wait to hear from you!
Cheers,
The Eclipse 4diac Team
Eclipse 4diac was already featured at previous the ARC Industry Forums. But this year Eclipse 4diac developers and user will be there to show how they use and how Eclipse 4diac can help you.
If you are there, attend the Industrial Open Source Software Session on Wendesday Feb 8th to see as live! This is not only great for Eclipse 4diac but is in general a great message for Open Source Software for Industrial use.
Cheers,
The Eclipse 4diac Team
On popular demand we are very happy to announce the first virtual Eclipse 4diac Community Meeeting. This community meeting is intended as a place for the Eclipse 4diac community to get to know each other and the exchange ideas around Eclipse 4diac.
The 1st Eclipse 4diac Virtual Community Meeting will be held on December 13th, 5pm CET.
You can join the Meeting via Zoom: Zoom Meeting Link
Our planned agenda is as follows:
- Introduction of the attendees
- Overview on Eclipse 4diac and the planned next steps
- Community Q&A
we use a publicly available document to manage the meeting’s agenda. You can add items to it anytime.
We look forward to talking with you all.
Cheers,
The Eclipse 4diac Team
Eclipse 4diac was featurd twice in the last two month in the german pod cast "Open Source in der Industrie":
- Interview with our project leader Alois Zoitl: The Holy Grail
- Discussion and retrospective of the SPS 2022 trade fair: The PLC of the Russians
Many thanks to Dr. Julian Feinauer und Robert Weber for this opportunity.
Cheers,
The Eclipse 4diac Team
It is hard to believe that 15 years have passed since on July 7th, 2007 the first public 4diac version was presented by Thomas Strasser and Alois Zoitl at the IEEE IES International Conference on Industrial Informatics.
In these 15 years, the development of Eclipse 4diac had its ups and downs - but nowadays it is used by universities and research institutions all over the globe.
And, increasingly, even companies are using or investigating 4diac for their use cases.
Martin Melik-Merkumians (ACIN, TU Wien), a long time Eclipse 4diac committer, summarizes our history:
Being part of the team since 2009, I (well, probably all of us) had the high hopes to make a significant impact to the automation industry and its users with 4diac.
Although I had never given up this hope, it didn't always look like it in all these years.
All the more it is pleasing to see now, how we managed to change minds in academia and industry.
Already 7 years ago (in 2015), our proposal for an official Eclipse project was accepted. While some developers retired, new ones joined. Currently, we have 8 committers - and many more contributors!
In the past 3.5 years, 4diac IDE has shaped my work, my PhD studies, and my free time: I deeply enjoy developing new features that benefit users of the IDE.
I am happy to be part of the development community, which welcomed me warmly and is a great network of support.
,
Bianca Wiesmayr (LIT CPS Lab, JKU).
In the last years, the maturity of Eclipse 4diac has increased tremendously.
We implemented numerous improvements and usability enhancements that we did not even dare to dream of 15 years ago.
This would not been possible without the feedback from our users.
Alois Zoitl (LIT CPS Lab, JKU),
one of the co-founders and project lead, points it out very nicely:
Many thanks for the feedback from our users and for the fruitful discussion sessions we had in the last 15 years.
I am looking forward to many more constructive discussions for further improvements to turn Eclipse 4diac into the best IEC 61499 solution.
Hence, we are looking forward to the next 15 years of Eclipse 4diac!
Cheers,
The Eclipse 4diac Team
As in every year, Eclipse 4diac participated in the Google Summer of Code to extend our community.
Paul will work this summer on 4diac IDE in the context of testing Function Blocks (semi-)automatically. This is a part of our ambitions to make developing Function Blocks in 4diac IDE easier for you.
Paul is a physics student with additional interest in computer science. With this project, he hopes to gain practical experience in Java and learn working on large-scale projects with collaborative development.
In this summer, he will gain first experience in contributing to an open source project. We are always happy to introduce new contributors to our processes! Our committers Bianca and Alois serve as mentors for the project.
We will post updates over the summer!
Cheers,
The Eclipse 4diac Team
We are happy to announce the first maintenance release for Eclipse 4diac 2.0 providing 29 bug fixes for 4diac IDE as well as 2 bug fixes for 4diac FORTE. This include fixes for monitoring subapp interfaces and in the 4diac FORTE C++ code generation. A full list of all fixed issues can be found here.
As always please download, test, and report problems and bugs.
For users of the previouse releases a simple Help -> Check of Updates
should upgrade you to 2.0.1.
Cheers,
The Eclipse 4diac Team
Today we have something new in our news section an interview with one of our latest users Tibalt Zhao from HIT Robot Group.
Alois: | Who are you? | |
Tibalt: | We are the R&D team of HIITTECH (哈工智云) which is incubated from HIT robot group. Our company is dedicated in delivering software solution for advanced process control. Currently, we are focusing on cement industry and circulate fluid bed (a kind of boiler). I am the team leader. The team comprises of software engineers and service engineers. | |
Alois: | How did you learn about IEC 61499 and the Eclipse 4diac project? | |
Tibalt: | We are a team experienced both in terminal units and SCADA systems applied in the electricity grid. We have our own flow (graphical) programming platform to develop control logic in terminal units. The platform is a key to ensure quality for requirements different from batch to batch of hardware delivery. We are following the status of IEC 61131 and IEC 61499 as they are the standard for industrial control languages. Eclipse 4diac is one of the most popular open-source project for IEC 61499. And at the beginning of our project, our colleagues recommended Eclipse 4diac to us. And after looked into the docs and codes, we decided to adopt 4diac as our control platform. | |
Alois: | You have contributed many bug fixes and enhancements to the 4diac project. So, what's your team's goal? | |
Tibalt: |
When I am designing the architecture, I read from you and James Christensen that IEC 61499 is a standard for software reuse in embedded,
distributed control systems.
This is what we are looking for, the philosophy, standard, graphical programming, and the open-source project. We are feeding back with code for bug fix, enhancements, and suggestions to the 4diac project as we respect EPL license. We believe that the community's prosperity could benefit all who are working with 4diac and IEC 61499. Our business value is in FBs we are encapsulated and total solution we delivered to our customer with HMI and big data database. |
|
Alois: | What do you like most on 4diac? | |
Tibalt: | First, the tiny footprints of the run time environment. Second, the architecture taking care of hard real time application. And the RTE which could run cross platform including Linux, windows, freeRTOS and so on. | |
Alois: | What in 4diac is disturbing your work most? | |
Tibalt: | The way to composite function block is a little bit disturbing as we have done lots of CFBs. We hope to see the subapplication type soon. I heard that in 2.0.0 release, we can have subapplication type. | |
Alois: | Yes we are working hard to make subapplication support better. But what is exactly the problem of CFBs if I may ask? | |
Tibalt: | First, every time we make a CFB, we need to generate cpp codes from IDE and compile them with source code of 4diac FORTE before it can be tested. You know, the process can be done for several times to get the CFB ready to release even by an experienced engineer. And even a tiny new requirement, for example change the pin name or add an output pin to give more details of failure execution, we have to repeat the compilation process. Secondly, IDE cannot "watch" in the second tier of function block network, which means if there is a CFB embedded inside another CFB, it is almost impossible to debug. Engineers need a good way to encapsulate the FBs as we all know that a very big FBN is too complex to maintain. We can make the basic blocks in IDE is a good start. But please make the process simple that the service engineer could build the blocks by themselves within IDE. | |
Alois: | Can you describe/show something about your first 4diac application? | |
Tibalt: | Sure. Our application is the advanced process control for a mill. The mill consumes around 192,000 KWh electricity per day to spit out around 9600 tons of crushed raw materials 88% of which is smaller than 80 micrometer. Before the installation of our software, the mill is operated by 3 operators per day. During working hours, they must focus on the conditions of the mill and taking care of the feeding speed of raw materials and water, roller pressure, fan speed, separator speed, and so on. After the installation of our solution, their workload is greatly reduced, and the condition of the raw mill is much more stable. Below are numbers compared between controlled by operator alone and operator with APC solution. | |
Alois: | Wow this is pretty impressive. Thanks a lot for your insights. |
Have you been waiting for 4diac 2.0.0? It's finally here!
We've been working on improving your experience with Eclipse 4diac. For 4diac IDE, the following major changes were introduced:
- Improved usabilty and editing efficiency of all editors
- Introduced monitoring for Structured Datatypes
- Introduced editing history during undo/redo to quickly find the last editing position
- Improved layout generation results
- Improved/introduced input validation, show error messages
- Introduced error markers to handle broken projects more gracefully
- Of course, we have also implemented numerous bug fixes.
For 4diac FORTE, we have mostly provided bug fixes and stabilization patches:
- Gracefully handling full external event queues
- Fixed issues for compiling on Mac OS
- Implicit upcasts are allowed for constant inputs at FBs (e.g., WORD#AFFE on a DWORD input)
For details, please consider the release page of our New and Noteworthy.
We sincerely hope that you enjoy our graduation release. We are looking foward to sharing more documentation on the new features in the upcoming weeks.
Cheers,
The Eclipse 4diac Team
We are happy to announce that the Eclipse 4diac passed the graduation review today. This is a major step for the project and its community. We could show that we are working as open source project following the Eclipse development process. It also means that we are leaving the incubation phase.
Thanks to the great 4diac community for making this possible.
Cheers,
The Eclipse 4diac Team
As every year, the beginning of September starts the feature freeze phase for the 4diac autumn release. We have many new features and bug fixes in this release:
- 4diac IDE:
- Reworked nearly all icons
- Monitoring inside of typed subapps and composite FB instances
- Monitoring of subapp interface pins
- Error markers are created if FB types are missing or if pins of connections can not be found
- Constants at FB inputs are validated whether they match the data type
- Many smaller usability improvements
- 4diac FORTE:
- Mostly stability improvements
More details will follow in the next weeks as separate news items.
We provide a nightly build update site which allows you to automatically update your 4diac IDE.
Just add
http://download.eclipse.org/4diac/nightly/update
to your update sites.
Cheers,
The Eclipse 4diac Team
The last few months we've been working hard on redesigning the icons of the 4diac IDE.
As this is the first major revisit of the existing icons, we had to change a lot. Major motivations for the redesign were to increase readability and consistency throughout the icons.
Icons Done
This is the list of icons already redesigned.
Function Blocks
- Application
- Basic Function Block
- Composite Function Block
- Service Interface Function Block
- Simple Function Block
- Subapplication typed Function Block
- Subapplication untyped Function Block
- Type Library
- Data Type
System
- System
- System Configuration
Device
- Device
- Resource
Event/Data/Adapters
- Event
- Event in
- Event Out
- Data
- Data In
- Data Out
- Adapter
- Adapter In
- Adapter Out
- Interface
ECC
- ECC
- ECC Action
- ECC State
- ECC Add State
- ECC Algorithm
All these icons are Work in Progress, they may be subject to change.
Cheers,
The Eclipse 4diac Team
We are very proud to announce the Eclipse 4diac 1.14.0 release!
With Eclipse 4diac 1.14.0 we provide you with a large set of improvements in 4diac IDE and 4diac FORTE:
- 4diac IDE:
- System file content is shown in one single editor with bread-crumb navigation
- The infinite drawing canvas was replaced by an incremental growing canvas. This gives better feedback on the size of the network or ECC.
- Possibility of expanding subapps for showing subapp content in-line with its parent
- Inside untyped subapps the subapp's comment is shown at the top of the editing area
- Typed subapps can now contain untyped subapps
- The content of typed subapps can be watched as part of the instance similar to a composite fb in a dedicated viewer
- Parse errors are shown as errors in the problem view which is added to the system perspective
- A default CMakeList.txt file can be generated during export
- Reworked simulated device manager to better show currently running simulated devices
- Implicit upcast are now allowed during connection creation (e.g., INT to DINT)
- Transition conditions can now directly be edited in ECC graphics
- A struct can be created by selecting several interface elements of a subapp
- Many bug fixes and smaller improvements:
- Text labels in diagrams are not cut off any more
- Boot-file and FM generation is again available
- Improved automatic layout generation
- Modernized function block appearance with a drop shadow
- Several issues in the type library leading to broken projects and FBs
- 4diac FORTE:
- Improved timer handler to use less resources, which should lead to less jitter
- CMake modules have now an option to be enabled per default
- Several compile/portabilty issues where fixed: Modbus, Windows XP, ming64, Piface
All in all we could address 150 issues in the work for the new Eclipse 4diac version. A full list of all bugs addressed in this release can be found on the 1.14.0 release page.
As always please download, test, and report any issues. For users of the previous releases a simple Help -> Check of Updates should upgrade you to 1.14.0.
Cheers,
The 4diac Team
PS: With Eclipse 4diac 1.14.0 the 4diac IDE requires at least Java 11 installed on your machine! If you download the official 4diac IDE package a correct Java version is already included. Many thanks to the Eclipse JustJ project for that support.
PPS: Windows 10 users: Windows 10 Defender significantly slows down Eclipse and therfore also 4diac IDE. The reason is Windows 10 Defender scanning the JAR files. The problem has been reported to Microsoft here. Until then, a workaround to this problem is to add 4diac IDE root directory to Windows 10 Defender's exclusion list, detailed steps are shared here.
Note: This is not just an Eclipse 4diac issue on Windows 10.
Your patience is paying of. In the last weeks we could fix a few major issues in 4diac IDE. One clearly visible example you can see below. Thanks to Bianca's detective skills we where finally able to fix the cut of texts when zooming in or out of our graphical editors.
Cheers,
The Eclipse 4diac Team
In the last two weeks we noticed a few major issues in the release version of 4diac IDE. As we want to further investigate this we have to decided to further postpone the 4diac 1.14.0 release to May 3rd.
We are sorry for the inconvenience. 4diac 1.14.0 will have an amazing list of new features. So it is definitly worth the waiting.
Cheers,
The Eclipse 4diac Team
We are proud to announce the first maintenance release for Eclipse 4diac 1.13 providing 12 bug fixes for 4diac IDE. This include fixes for the virtualDNS handling, corner cases in the new selection feedback and in the 4diac FORTE code exporter. A full list of all fixed issues can be found here.
As always please download, test, and report problems and bugs.
For users of the previouse releases a simple Help -> Check of Updates
should upgrade you to 1.13.1.
Cheers,
The Eclipse 4diac Team