Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

ICon-L

iCon-L ist ein grafisches Programmiersystem, das vorwiegend für die Programmierung von Mikrocontrollern in eingebetteten Systemen verwendet wird.

Inhalt5 Abschnitte
  1. 1. Grundidee und Einsatz
  2. 2. Ziele und besondere Ansätze
  3. 3. Technisches Konzept und Programmausführung
  4. 4. Zielsysteme und Verbreitung
  5. 5. Entwicklung und Versionen

Grundidee und Einsatz

iCon-L ist ein grafisches Programmiersystem zur vorwiegenden Programmierung von Mikrocontrollern in eingebetteten Systemen. Es wurde 1994 eingeführt, von der ProSign GmbH entwickelt und steht unter einer proprietären Lizenz. Die Programmierung erfolgt deklarativ: Statt Quelltext zu schreiben, erstellt man im grafischen Editor Blockdiagramme. Das System ist stark typisiert und unterstützt unter anderem Datenfluss, Ablaufketten, Funktionsbausteinsprache, Programmablaufplan und domänenspezifische Sprachen.

Blockdiagramme eignen sich besonders zur Beschreibung technischer und physikalischer Prozesse, etwa von Regelungsalgorithmen oder Signalaufbereitung. Dadurch können auch Ingenieure und Techniker Programme erstellen, ohne aus der klassischen IT zu kommen. Fachspezifische Symbole, beispielsweise ein als Ventil dargestellter Baustein, enthalten viel implizite Information über die Bedeutung und die Beziehungen eines Bausteins.

Bei einer Echtzeitkopplung mit dem Zielsystem können Zustände und Werte der Blöcke online angezeigt werden. Das erleichtert Review, Abnahme, Zertifizierung, Wartung und Inbetriebnahme. Anforderungsspezifikationen können unmittelbar in die Programmierumgebung übernommen werden; das Anforderungsmodell wird damit zur Grundlage der Programmierung.

Im engeren Sinn ist iCon-L kein vollständig festgelegtes Programmiersystem, sondern ein Framework beziehungsweise Software-Technologiepaket. Der Bezug zu einer bestimmten Hardware oder Anwendung entsteht erst durch projektbezogene Konfigurationen, Plug-ins und Bibliotheken. Beim Laden eines Projekts passt sich der Framework automatisch an die jeweiligen Hardwaresysteme und Anwendungen an.

Ziele und besondere Ansätze

Ein wesentliches Ziel von iCon-L ist die Verbesserung der Softwarequalität durch anerkannte Methoden und Prinzipien des Softwareengineerings. Außerdem sollen Vorgehensmodelle wie das V-Modell praxisorientiert umgesetzt werden.

Das System richtet sich an Ingenieure und Techniker, die technische und physikalische Systeme in einer ihnen vertrauten Beschreibungssprache modellieren sollen. Eingebettete Systeme sind eng mit mechanischen, physikalischen, biologischen oder chemischen Prozessen verbunden. Deshalb werden sie häufig von interdisziplinären Teams entwickelt. Die Modellierung in domänenspezifischen Sprachen soll die Kommunikation zwischen den beteiligten Spezialisten verbessern.

iCon-L unterstützt modellgetriebene beziehungsweise modellbasierte Softwareentwicklung auch für sehr kleine Controller. Es kann bereits auf Systemen mit 4 kByte RAM und 32 kByte Programmspeicher eingesetzt werden. Anders als viele andere modellbasierte Programmiersysteme erzeugt iCon-L keinen C-Code. Die Entwicklung bleibt in allen Phasen auf der grafischen Modellebene.

Das Framework ist außerdem als Grundlage für domänenspezifische Sprachen konzipiert. Statt standardisierte Bausteine vorzugeben, werden Bausteine an die jeweilige Anwendung angepasst. Mit einer universellen Makrobaustein-Technik lässt sich die spezifische Semantik der Bausteine erstellen. Wegen seiner Offenheit wird iCon-L auch zur Entwicklung neuer Architekturmuster genutzt, beispielsweise der Data Page Architectur (DPA).

Technisches Konzept und Programmausführung

Die technische Umsetzung beruht auf zwei Grundprinzipien: Die Anwendungsprogrammierung ist strikt von der System- beziehungsweise Firmwareprogrammierung getrennt, und der grafische Editor ist nicht dauerhaft an bestimmte Funktionsbausteine gebunden. Die Bausteine werden erst beim Laden eines Projekts in den Editor eingebunden.

Ein Funktionsbaustein ist die kleinste Softwareeinheit. Seine Zielfunktion wird in C oder C++ implementiert. Für jeden Bausteintyp gibt es eine C-Funktion, die gemeinsam mit der iCon-L-Laufzeitumgebung für den jeweiligen Mikrocontroller kompiliert und gelinkt wird. Die Laufzeitumgebung und alle verfügbaren Bausteintypen werden anschließend als kompilierte Maschinensprache auf den Mikrocontroller übertragen. Diese Systemprogrammierung gehört zu den Aufgaben von Personen mit Erfahrung in C und C++; für die Fehlersuche können die Werkzeuge der Controller-Entwicklungskette genutzt werden.

Die Anwendungsprogrammierung beginnt normalerweise, wenn der benötigte Vorrat an Funktionsbausteinen entwickelt, getestet und dokumentiert ist. Zu Testzwecken können auch Bausteine verwendet werden, die bisher nur durch ihre Ein- und Ausgänge beschrieben sind. Anwender können beliebig viele Instanzen eines in der Firmware nur einmal hinterlegten Funktionsbausteintyps einsetzen. Die IDE erzeugt dafür automatisch die erforderlichen Datenstrukturen.

Auf grafischer Ebene lassen sich Funktionsbausteine zu komplexeren Makro-Bausteinen verbinden. Diese Makro-Bausteine können anschließend wie normale Funktionsbausteine in anderen Projekten verwendet werden.

Zur Ausführung nutzt iCon-L eine verkettete Liste. Ein Dispatcher arbeitet diese Liste nacheinander ab und ruft die jeweiligen C-Funktionen mit den Datenstrukturen für Eingänge, Ausgänge, Parameter und interne Speicherelemente auf. Da die Funktionen bereits vollständig in Maschinensprache übersetzt sind und ein C-Zeiger einfach in einen Funktionsaufruf umgewandelt werden kann, ist die Ausführung nur geringfügig langsamer als bei einem übersetzten C-Programm. Gegenüber Programmen mit sehr vielen Aufrufschichten kann sie sogar schneller sein.

Die IDE fordert vom Mikrocontroller eine Gerätebeschreibungsdatei an. Sie enthält unter anderem die Speicheraufteilung, die vom Laufzeitkern bekannten Funktionsbausteintypen, den Controller-Typ mit 8, 16 oder 32 Bit sowie die Byte-Reihenfolge. Auf dieser Grundlage erstellt die IDE eine Verkettungsliste, die die realen Speicherbedingungen des Zielsystems berücksichtigt.

Zielsysteme und Verbreitung

Eine Besonderheit ist die Verwendung auf sehr kleinen Mikrocontrollern. Der Laufzeitkern kann auf Systemen mit 4 KByte RAM und 32 KByte Flash-Speicher eingesetzt werden. Erfolgreiche Portierungen gibt es für folgende Prozessoren:

  • 8 Bit: 8051 sowie PIC18F von Microchip Technology.
  • 16 Bit: x186/IPC@CHIP von BECK sowie C166/167 von Infineon.
  • 32 Bit: Arm7/9 von NXP, Atmel, Analog Devices und STMicroelectronics, außerdem PowerPC und Coldfire von Freescale, x86-Prozessoren von Intel und AMD sowie Atom von Intel.

Prozessorunabhängige Laufzeitkerne existieren außerdem für µLinux, Linux mit RTAI-Echtzeiterweiterung, Windows CE, QNX und RT-Kernel32.

iCon-L wird von Industrieunternehmen als Inhaus-Engineering-Lösung und von Unternehmen als OEM-Werkzeug unter eigenem Namen eingesetzt. Haupteinsatzgebiete sind Verkehrstechnik, Prüfstandsautomatisierung, Gebäudeautomation, Medizintechnik, Forschung und Ausbildung sowie Laborautomatisierung. Auf dem Framework basieren unter anderem test.con, GDS, DACHSview, IPOCS, SprintProsi, Lucky Logic, miCon-L und PACstudio. Als weitere Inhaus-Anwender nennt der Artikel Kiepe Electric, messMa, Eckert & Ziegler AG, IBP Medical, die Otto-von-Guericke-Universität Magdeburg, die Martin-Luther-Universität Halle, die Fachhochschule Köln und NSD-Fusion.

Bei den Versionsangaben sind die Zeitpunkte zu beachten: Die Basisdaten nennen iCon-L 7.0 vom 11.12.2018 als aktuelle Version. Für Januar 2014 wird dagegen iCon-L 6.0 angegeben.

Entwicklung und Versionen

Die technischen Wurzeln reichen vor 1985 zurück. In verschiedenen Mikroprozessorsteuerungen der DDR wurde bereits eine interpretergesteuerte Verkettung von Funktionsbausteinen, die Modulverbindungsliste, verwendet. Dazu gehörten unter anderem EAW Compact S2000 mit PROMAR 5000, der Mikroprozessorregler RBS 05 und ursamar 5000/5001 mit der Sprache MARCO. Module und Laufzeitkern waren damals vollständig in Assembler realisiert.

Seit 1992 wurde C erstmals als Systemprogrammiersprache für das Laufzeitsystem eingesetzt. Die ersten Geräte mit Z80 und MC68332 wurden jedoch noch textuell programmiert; die Modulverbindungsliste entstand zunächst als ASCII-Datei in einem normalen Texteditor. Die grafische Entwicklung geht ebenfalls auf die 1980er Jahre zurück: 1988 wurde das grafische Simulationssystem PROSIGN vorgestellt, das zunächst nur auf einer Unix-Workstation lief. Ab 1993 wurden Editor und weitere IDE-Module auf Windows portiert. Anfang 1994 wurde mit der MR92 von ABB erstmals ein Steuerungssystem vollständig grafisch programmiert.

Die Entwicklungslinie umfasst unter anderem PROSIGN (1988–1992), OFS V1.00 (1993), iCon-L V2.10 (1994), V2.20 (1995), V2.30 und V2.40 (1996), V3 (2000), V4 ab 2001, V5.0.0.0 vom 16.05.2012, V6.0.0.0 vom 11.10.2013, V6.2.0.0 vom 16.02.2015 und V7.0.0.0 vom 11.12.2018.

Weiterlesen

Mikrocontroller Ein Mikrocontroller ist damit ein „Ein-Chip-Computersystem“ und bringt alle notwendigen Bausteine für einen kleinen Computer mit sich. Eine MCU unterscheidet … Modell (Wissenschaft) In der Physik spielen Modelle ähnlich wie in der Chemie zur ... Beispiele für Modelle sind etwa Atommodelle, das Optische Modell in der Kernphysik … Softwaretechnik ... Agile Softwareentwicklung. Die Softwaretechnik umfasst den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer konkreten … Semantik In einem engeren Sinn behandelt die Semantik die Bedeutung vor allem sprachlicher Zeichen, wie Sätzen, Satzteilen, Wörtern oder Lexemen. Sie ist dann Teil der … Implikation Als Varianten einer deduktionmäßigen formalen Implikation können auch die intuitionistische Implikation bzw. Subjunktion innerhalb der dialogischen Logik sowie … Deklarative Programmierung Die deklarative Programmierung ist ein Programmierparadigma, bei dem die Beschreibung des Problems im Vordergrund steht. Der Lösungsweg wird dann … Softwarequalität „Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, … Vorgehensmodell zur Softwareentwicklung Die agile Softwareentwicklung hingegen beschäftigt sich mit Methoden, die den Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten lassen. Je … V-Modell Ähnlich dem Wasserfallmodell organisiert es den Softwareentwicklungsprozess in Phasen. Zusätzlich zu diesen Entwicklungsphasen definiert das V-Modell auch … C (Programmiersprache) C ist eine imperative und prozedurale Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 1970er Jahren an den Bell Laboratories entwickelte. Maschinensprache Mit einem Assembler: Assemblersprachen formulieren die Prozessorbefehle des Maschinencodes als Mnemonics in einer einfachen Syntax. Dieser Quelltext wird … Byte-Reihenfolge Die Byte-Reihenfolge (englisch byte order oder endianness) bezeichnet in der Informatik die Speicherorganisation für einfache Zahlenwerte, in erster Linie …