Maschinen Software
Die Maschinensoftware ist für die Abläufe und Koordination der Peripherie (Achsen, I/Os, ...) in Echtzeit zuständig. Die Abläufe sind maschinenspezifisch und werden somit von der Kundenapplikation definiert. Diese wird in einem Indel-System stets auf einem Indel-CPU-Board ausgeführt.
Jedes Indel-CPU-Board wird durch das von Indel selbst entwickelte INOS betrieben (INdel OperatingSystem). INOS ist ein vollwertiges, komplett in C++ implementiertes Echtzeit Betriebssystem, das unseren Kunden im Quellcode zur Verfügung steht. INOS bietet unter anderem die Bibliotheken McRobot für die Ablaufsteuerung, sowie die I/O- und die Motion-Library.
✓ | Entwicklung | Erfolgt komplett in der Indel Entwicklungsumgebung |
✓ | Architektur & | Individuell an Kunden-Bedürfnisse anpassbar |
✓ | McRobot | Mächtiges Framework für die Umsetzung von Maschinen-Software - auch für Programmierer ohne Kenntnisse in C++ |
✓ | Programmiersprachen | C/C++, Lua |
✓ | Simulation | Gleichbleibendes zeitliches Verhalten der Abläufe im Simulationsmodus |
Dank der Tatsache, dass jedes Indel-CPU-Board mit INOS und seinen Frameworks betrieben wird, kann die Kundenapplikation auf ein schnelleres oder langsameres CPU-Board transferiert werden. Damit kann für jede neue Maschine oder Maschinen-Generation stets das am besten passende CPU-Board gewählt werden und gleichzeitig kann bestehender Code und erlerntes Know-how wiederverwendet werden.
Flexible Entwicklungsmodelle
Die Architektur der Software, die benutzten Frameworks und die Programmiersprachen können vom Kunden, je nach Anspruch, flexibel gewählt werden.
Der von Indel gelieferte Software-Stack enthält viele Komponenten, welche die Entwicklung einer Maschinen-Software massgeblich erleichtern. Der Kunde kann selbst entscheiden, in welchem Umfang er diese einsetzen möchte:
Background | Empfohlene Art der Programmierung |
---|---|
SPS- | Die einfach zu erlernende Skriptsprache Lua dient zum Verknüpfen der zahlreichen McRobot-Standard-Funktionen. Bedingungen sowie zeitliche Abhängigkeiten können einfach und verständlich in Lua implementiert werden. Falls spezielle, im Standardumfang nicht enthaltene Abläufe benötigt werden, können diese durch einen C++-Programmierer oder einen Indel-Entwickler umgesetzt werden. |
C++-Programmierer | Spezielle Abläufe oder solche mit strengen zeitlichen Anforderungen werden in C++ programmiert und erweitern so den McRobot-Funktionsumfang. Diese in C++ programmierten McRobot-Bausteine können dann per Lua-Skripts oder C++-Code miteinander verknüpft werden. |
C++-Programmierer mit Anspruch auf eigenes Design | Beim Anspruch auf eine kundenspezifische Software-Architektur, die nicht mit McRobot kompatibel ist, kann die Programmierung auch komplett ohne McRobot erfolgen. Dazu kann direkt auf die Motion- und IO-library zugegriffen werden. |
Verwendung eigener Frameworks | Der Kunden kann beliebige Frameworks in das Indel-System integrieren, sodass diese seiner Applikation zur Verfügung stehen. |
Bestehende Maschinen-Software portieren | Wenn eine bestehende Software auf das Indel-System portiert werden soll, so ist abzuwägen ob bzw. inwiefern die von Indel bereitgestellten Frameworks verwendet werden können. Es kann sinnvoll sein, die Frameworks des Ursprungssystems durch einen Software-Layer nachzubilden, um den Ursprungs-Code möglichst wenig verändern zu müssen. |
Zu Beginn der Entwicklung einer Maschinen-Software steht die zugrunde liegende Mechanik und Elektronik oft noch nicht zur Verfügung, da sich diese ebenfalls noch in der Entwicklung befindet. Auch im späteren Projektverlauf steht meistens nicht jedem Software-Entwickler ständig eine eigene Maschine zur Verfügung. Es kann vorkommen, dass dem gesamten Team nur eine Maschine zum Testen bereitsteht. Die gemeinsame Nutzung der Maschine erschwert den Testprozess und verzögert ihn, dies erhöht die Projektkosten. Eine Lösung für dieses Problem bietet die Simulation.
Die Simulation ist ein fester Bestandteil der Indel-Software. Es ist jederzeit möglich, auch im laufenden Betrieb, einzelne Peripherien (Achsen, I/O, ...), ganze Teile der Maschine oder die ganze Maschine in den Simulations-Modus zu schalten. Dabei bleibt das zeitliche Verhalten der Abläufe und der Achsen-Bewegungen komplett erhalten. Die Maschine verhält sich, aus Sicht der Software, genau so als wäre die Elektronik und Mechanik in Betrieb.
Dank dieser umfassenden Simulation ist es möglich, eine ganze Maschinen-Software ohne Hardware zu entwickeln.