Machine Software
The machine software is responsible for the sequences and coordination of the peripherals (axes, I/Os etc) in real time. The sequences are machine-specific and are thus defined by the customer application. On an Indel system this is always implemented on an Indel CPU board.
Each Indel CPU board itself operates on Indel’s own developed INOS (INdel Operating System). INOS is a complete real-time operating system implemented entirely in C++ that is available to our customers in the source code. INOS includes the McRobot libraries for sequence control and the I/O and motion library.
✓ | Development | Complitely withing the Indel IDE |
✓ | Architecture & frameworks | Customizable |
✓ | McRobot | Powerful framework for machine software - even for programmers without C++ knowledge |
✓ | Programming languages | C/C++, Lua |
✓ | Simulation | Same timing in simulation mode |
Since each Indel CPU board runs on INOS and its frameworks, the customer application can be transferred to a faster or slower CPU board. Thus for each new machine or machine generation, the most suitable CPU board can always be selected, while existing code and know-how can at the same time be reused.
Flexible development models
The architecture of the software, the frameworks used and the programming languages can be flexibly selected by the customer, depending on requirements.
The software stack supplied by Indel contains many components that will significantly facilitate the development of suitable machine software. The customer can decide to what extent to employ these:
Background | Recommended programming |
---|---|
PLC programmers, | The easy-to-learn Lua scripting language is used to link to the numerous McRobot standard functions. Conditions and time dependencies can be easily and clearly implemented in Lua. If special sequences are required that are not included in the standard scope of delivery, these can be implemented by a C++ programmer or an Indel developer. |
C++ programmers | Special sequences or those with strict time requirements are programmed in C++ and so extend the range of functions of McRobot. These building blocks of McRobot programmed in C++ can then be linked together using Lua scripts or C++ code. |
C++ programmers with requirement for own design | Where a customer-specified software architecture is required that is not compatible with McRobot, the programming can also be done entirely without McRobot. For this, the motion and I/O libraries can be accessed directly. |
Use of own frameworks | The customer can integrate any frameworks into the Indel system so that these are available to the application. |
Porting existing machine software | Since each Indel CPU board runs on INOS and its frameworks, the customer application can be transferred to a faster or slower CPU board. Thus for each new machine or machine generation, the most suitable CPU board can always be selected, while existing code and know-how can at the same time be reused. |
At the start of the development process for machine software, the associated mechanical and electronic elements are often not available, as these are also in the process of development. In the subsequent project stages there is usually not a machine available to every software developer all the time. It can sometimes indeed happen than only one machine is available to the entire team for testing. The need to share the machine complicates the testing process and creates delays, thus also increasing project costs. A solution to this problem is provided by simulation.
Simulation is an integral part of the Indel software. It allows individual peripherals (axes, I/Os etc), whole parts of the machine or the entire machine to be switched into simulation mode at any time, even while running. At the same time, the time behaviour of the sequences and axis movements are preserved entirely. The machine behaves, as seen by the software, just as if the electronic and mechanical elements were present.
Thanks to this comprehensive simulation it is possible to develop the entire machine software without hardware.