Integration von Hochsprachen in Dachsview++

Integration beider Welten

In der Automatisierung werden zur Programmierung parallel Hochsprachen und IEC61131-3-Systeme eingesetzt. Komplexere Anforderungen lassen den Wunsch nach der Integration beider Welten stärker werden.

Integration von C und C++

Für reinen C-Code bot sich das JIT-Compile-Interface des TinyC-Compilers (TCC) an. Das Interface besteht aus einer Bibliothek mit Funktionen, über die sich in einen Puffer eingelesene C-Sourcen Just-In-Time zu Maschinencode kompilieren lassen. Wichtig ist, dass dieser Puffer im User-Space des Targets liegen muss. Die Puffer werden deshalb als Shared-Memory-Objects angelegt. Der embedded C-JIT-Compiler kann in der Initialisierungsphase und während der Laufzeit der Steuerungsapplikation wiederholt aufgerufen werden. Interessant ist die JIT-Kompilierung von C++-Code über die API des \’Compiler Infrastructure\‘ Projekts LLVM. Dort wurde auf die direkte Einbettung des Compilers CLANG verzichtet, da mit LLVM mehrere Compiler Frontends für unterschiedliche Sprachen zur Verfügung stehen. Neben C++ Code können diese z.B. Fortran oder Python in die Zwischensprache LLVM-IR (Bitcode) übersetzen. Der kleinere JIT-Compiler für den Bitcode wurde in den Dachsview++ Target aufgenommen. Die schnelle JIT-Kompilierung generiert optimierten Maschinen-Code. Bei C/C++-Applikationen ist es möglich, Submodule mit dem Clang-Compiler zu kompilieren, und deren Objects in Archive abzulegen. Zur Integration reicht es, nur die kleine Main-Routine zu Bitcode zu kompilieren. Der Bitcode-JIT-Compiler erzeugt im Arbeitsspeicher ausführbaren Maschinencode, der beim Aufruf mit den Objects der Submodule dynamisch verlinkt wird.

Programmierwelten verbinden

Mit dem Support von Hochsprachen und der Nutzung von Systemthreads stehen alle Wege offen, um Multitarget- und Multicore-Applikationen, sowie verteilte IoT-Applikationen kostengünstig in einer graphischen SPS-Funktionsblockapplikation zu realisieren. Dachsview++ verbindet unter QNX6 und Linux optimal die Automatisierungswelten der Funktionsblock- und C/C++-Programmierung. Die Targets sind nach IEC61499 Event-orientiert, und wurden für Events von Protokollstacks, sowie des Betriebssystems erweitert und laufen in Echtzeit.

Seiten: 1 2Auf einer Seite lesen

Steinhoff Automation- & Fieldbus-Systems
http://www.dachs.net

Das könnte Sie auch Interessieren

Weitere Beiträge

Bild: Ceratizit Deutschland GmbH
Bild: Ceratizit Deutschland GmbH
Werkzeuge – immer passend

Werkzeuge – immer passend

Eine digitalisierte Fertigung hat viele Gesichter… und Recker Technik aus Eschweiler setzt ihr auf jeden Fall einen Smiley auf. Dort bringt die Produktion mit digitalen Zwillingen mehr Effizienz in den Alltag sowie gleichzeitig mehr Überblick über das Toolmanagement und die Werkzeugkosten. Mit dabei: Zwei Tool-O-Maten, die intelligenten Werkzeugausgabesysteme von Ceratizit – dank denen immer das passende Werkzeug für den Job zur Hand ist.

mehr lesen
Bild: Hainbuch GmbH
Bild: Hainbuch GmbH
„Wie passende Spanntechnik die Automation voranbringt“

„Wie passende Spanntechnik die Automation voranbringt“

Zunehmend individuellere Kundenanforderungen, mehr Schwankungen im Auftragseingang und weniger Fachkräfte – diese Faktoren beeinflussen die Fertigungsplanung zunehmend. Gerade bei kleinen Herstellungschargen mit Losgrößen unter 100 macht in diesem Spannungsfeld die Automatisierung, etwa von Hainbuch, den Unterschied. Ein entscheidender Ansatzpunkt in der Umsetzung ist neben Maschine, Roboter und Bediener der Rüst- und Spannprozess.

mehr lesen
Bild: Schunk SE & Co. KG Spanntechnik
Bild: Schunk SE & Co. KG Spanntechnik
Futter für die Ewigkeit

Futter für die Ewigkeit

Siemens Energy setzt für die Präzisionsbearbeitung an einer Horizontaldrehmaschine Magnos Elektropermanent-Magnetspannfutter von Schunk ein. Dank der gleichmäßig dauerhaft wirkenden Magnetspannkraft erfolgt das Spannen der Werkstücke deformations- und vibrationsarm – für eine ausgezeichnete Bearbeitungs- und Oberflächenqualität. Mit der zugehörigen App lässt sich die Spannsituation simulieren und sicher parametrieren.

mehr lesen