TU München english  
 
IKB-Dürnast
  IKB-Duernast Logo

 
 
IKB-Dürnast

Forschung

Teilprojekt 2  
 
Kurzbeschreibung
Aktivitäten
Informationen
Übersicht
Workshop
Publikationen

letzte Änderungen:
07.05.2001

Webmaster

  !#################

Teilprojekt 2

Prozessdatenerfassung im Landwirtschaftlichen BUS-System

Teilprojektbearbeiter

Teilprojektleiter

Dipl.-Inform. Achim Spangler Prof. Dr. H. Auernhammer
achim.spangler@web.de hermann.auernhammer@wzw.tum.de
Institut für Landtechnik, Abteilung für Technik in Pflanzenbau und Landschaftspflege

Informationen zur objektorientierten Open Source Programmbibliothek für LBS
LBS-Lib

Im Rahmen der Forschergruppe IKB-Dürnast (http://ikb.weihenstephan.de) wird im Teilprojekt 2 "Prozessdatenerfassung im Landwirtschaftlichen BUS-System" eine umfassende automatische Datenerfassung mit dem Landwirtschaftlichen BUS System durchgeführt.

Hierbei wird mit einem System aus virtuellem Terminal zur Kontrolle der Arbeit, GPS zur georeferenzierten Datenerfassung, Task-Controller zur Datenaufeichnung und Implement Indikatoren (IMI) eine leistungsfähige Aufzeichnung durchgeführt. Die hierzu entwickelte Programmbibliothek unterstützt umfassend, modular, objektorientiert und bei Bedarf erweiterbar die gesamte LBS Kommunikation. Hervorzuheben sind hier die sehr flexible Unterstützung aller Techniken zur bedarfsgerechten datenerfassung und Steuerung über Prozessdaten, und die Ansteuerung einer Benutzerstation ("Windows on a tractor").

Zur Förderung des Einsatzes von LBS wird die Programmbibliothek nun als Open Source unter der "Lesser GPL" (LGPL) Lizenz als Betaversion (weitgehend stabil, aber produktionsreife erst durch umfangreiche Tests erreichbar) veröffentlicht.

Konfigurierbarer Aufbau der Programmbibliothek LBS-Lib

Im Vollausbau unterstützt die LBS-Lib:

  • Systemverwaltung (Anmelden eines Teilnehmers mit einem Funktionsaufruf, automatisches Senden von Alive, etc.)
  • Basisdaten (autom Senden und Empfangen/Verarbeiten von LBS Traktor Basisdaten wie Motor, Zapfwellendrehzahl, Fahrtgeschwindigkeit, Hubwerk, etc.)
  • Prozessdaten (nur regelmäßiges Aktualisieren des Abtastwertes nötig à Messprogramme werden vollautomatisch, und Sollwerte halbautomatisch verarbeitet)
  • virtuelles Terminal (Aufbau von komplexen Dialogen mit einfachen Funktionsaufrufen, Anordnung der Layoutprimitive kann durch Erweiterungen dieses Teils Plazierungen analog zu HTML Seiten ermöglichen)
  • Sensor Input (digital und analog)
  • Aktor Output (aktuell digital-PWM)
  • EEPROM I/O
  • RS232 (z.B. um Daten einer Task Controller Anwendung über RS232 zu Speichermedium zu transportieren)
  • CAN I/O (flexible Filter-Boxen mit jeweils individuell wählbaren Filter/Maske Paaren und der Möglichkeit bei Eingang einer Botschaft direkt eine registrierte Verarbeitungsfunktion aufzurufen ((losgelöst von Interrupt Function, zentral aufgerufene Verarbeitungsfunktion steuert Verarbeitung)), zweiter CAN-BUS kann auch für andere Aufgaben verwendet werden)

Es können jedoch in einer zentralen anwendungsspezifischen Konfigurationsdatei alle Elemente bis auf LBS-Systemverwaltung, Basisdaten, Prozessdaten und CAN I/O deaktiviert werden, was auch die Programmgröße verkleinert.

Die objektorientierte Programmbibliothek nutzt sehr effektiv die Modularisierung von Aufgaben, so dass:

  • die Code Größe verkleinert wird, da eine Aufgabe nur an einer Stelle einmalig implementiert werden muss
  • Fehlermanagement erleichtert wird, da ein Fehler in einer (Teil-)Aktion nur einmalig beseitigt werden muss (ebenso ist zentrale Optimierung von Einzelschritten möglich)
  • flexible Erweiterungen möglich sind, um z.B. als ISO PGN formatierte Basisdaten Telegramme zu verarbeiten oder um automatische Lösungsstrategien für Interessenkonflikte bei Prozessdaten-Sollwerten zu entwickeln

Seit Januar 2001 Januar unterstützt die LBS-Lib im Alpha-Stadium mit vorläufigen PGN Codes die wesentlichen LBS Funktionen von Systemanmeldung, Basisdaten und Prozessdaten auch für ISO 11783. Dazu wird CAN mit 250 kbit/s betrieben, bis ein mit 125 kbit/s (Standard DIN 9684) arbeitendes Gerät an CAN BUS Fehlermeldungen erkannt wird. Mit dieser physikalischen Kompatibilität wird soweit möglich der gemischte Betrieb von LBS und ISO 11783 Geräten ermöglicht. Zur Unterstützung dieses Mischbetriebs sollten alle zukünftigen LBS Jobrechner standardmäßig mit 250kbit/s arbeiten, bis ein Zurückschalten erforderlich wird. Damit könnte der Jobrechner einer Maschine oder eines Traktors dem Landwirt Investitionssicherheit gewähren, da er diesen sowohl mit alten LBS als auch mit neuen ISO 11783 Maschinen kombinieren kann. Prozessdatentelegramme werden von der LBS-Lib dem Empfänger entsprechend als LBS oder ISO 11783 Telegramm formatiert versandt, so dass der Mehraufwand durch die Unterstützung von LBS und ISO für die Anwendungsentwicklung sehr gering ausfällt. Sobald ISO 11783 Maschinen verfügbar sind, muss diese Erweiterung geprüft und optimiert werden, um ein den übrigen Teilen angemessenes Stabilitätslevel zu erreichen.

back

Entwicklungsperspektiven für die LBS-Lib

Bei einem breiten Einsatz dieser Programmbibliothek, kann sich diese zu einem de-facto Standard entwickeln. Damit kann dem Kunden eine weitgehend sichere und leistungsfähige Kommunikationen zwischen Geräten mit der LBS-Lib zugesichert werden.

Zudem zeichnet sich bei breiterem Einsatz der LBS Prozessdaten zur Steuerung von Arbeiten ein vermehrtes Auftreten von Interessenkonflikten an. Wollen etwa zwei Arbeitsgeräte dem Traktor unterschiedliche Sollwerte für die Geschwindigkeit vorgeben, sollte soweit möglich automatisch ein Kompromiss gefunden werden, ohne den Fahrer miteinbeziehen zu müssen. Ein derartiger Mechanismus könnte auf Basis einer ausreichend eingesetzten und leistungsfähigen Implementierung erprobt werden, bevor der Mechanismus in den Standard eingebracht wird.

back

Integration der LBS-Lib in bestehende Projekte

Projekte, die die LBS-Lib verwenden möchten müssen nicht neu geschrieben werden, da eine Integration von bestehenden Modulen und solchen, die die LBS-Lib einsetzen möglich ist.

Vereinfachte Integration von LBS Kommunikationsdiensten durch die LBS-Lib

Durch die Kapselung der objektorientierten Programmierung (OO) können globale Variablen weitgehend eliminiert werden. Neben der Vermeidung der Gefahr von gleichnamigen anderen globalen Variablen wird somit auch die Entwicklung von Mehrprozesssystemen mit LBS Nutzung erleichtert. Zudem ermöglicht die Trennung von Implementierung eines Objektes und der Schnittstelle eine vereinfachte (Fehler-) Wartung, da Fehler streng eingegrenzt werden können, und Verbesserungen an der Implementierung von Objekten keine Änderung der anderen Programmteile erfordert.

Verknüpfung von Modulen der Programmiersprachen C und C++

In einem Projekt können OO Module mit anderen Modulen (z.B. C) problemlos gemischt werden. Von jeder Stelle eines C++ Moduls kann eine C Funktion aus einem anderen Modul aufgerufen werden. Von C können normale C++ Funktionen aufgerufen werden.

Nur der direkte Aufruf von C++ Objekt-Element Funktionen aus C Modulen ist nicht möglich. Es können jedoch kleine C++ Funktionen als "Wrapper" geschrieben werden, die ggf. anhand einem (void*) eine Objektinstanz identifizieren, und eine passende Elementfunktion zu diesem Objekt aufrufen.

Einfacher Einstieg in LBS mit einem Gateway

Verwendet eine Maschine schon einen internen geschlossenen CAN BUS zu deren Steuerung, bietet es sich an, einen Gateway (2 x CAN BUS) zu verwenden, der ein einfaches auf der LBS-Lib basierendes Programm nutzt, um interne Informationen über LBS verfügbar zu machen. Dieses Programm kann erweitert werden, um die Maschine entsprechend empfangener Sollwerte über den internen CAN BUS zu steuern.

back

Unterstützung von C++ durch Compiler für Mikroprozessoren

Wichtiger Hinweis

Die folgende Zusammenstellung enthält Produkte die überwiegend im Institut für Landtechnik eingesetzt werden und erhebt auf keinen Fall den Anspruch auf Vollständigkeit. Sofern uns weitere C++ Compiler für in der Landtechnik eingesetzte Mikroprozessoren gemeldet werden, nehmen wir diese gerne in unsere Liste auf.

Unter http://www.embedded.com kann eine umfangreiche Liste mit C++ Compilern für diverse Target Systeme angefordert werden (kostenlose Registrierung nötig). Es sind auch einige C++ Compiler für 16Bit Systeme erhältlich.

Beispiele für C16x:

Für C-Compiler, die noch kein C++ ermöglichen, gibt es Firmen, die ein C++ Frontend verkaufen. Schliessen sich mehrere Firmen zusammen, können Sie z.B. bei "Comeau Computing" http://www.comeaucomputing.com/ eine C++ Frontend Anpassung an einen C Compiler anfordern/kaufen (siehe http://www.comeaucomputing.com/custom.html ). So kann z.B. ein C++ Frontend für den Keil Compiler entwickelt werden. Das Frontend bearbeitet C++ Module so, dass die resultierenden C(!) Module von dem gewünschten C Compiler verarbeitet und in das Projekt integriert werden können.

Comeau bietet auch einige interessante Antworten zum Einsatz von C++ an http://www.comeaucomputing.com/faqs/genfaq.html

Einige bekannte Compiler Hersteller verwenden für C++ angepasste Versionen von GNU g++ (z.B.HighTec) oder binden das C++ Forntend der Edison Design Group ein, die eine Auswahl ihrer Kunden unter http://www.edg.com/customers.html aufführt.

back

Literaturverweise

Neue Literaturtips vom 10.11.2000
  • C++ Under The Hood Ein interessanter Text über C++, mögliche Effizienzprobleme und deren Vermeidung durch gute Programmiertechnik und gute Compiler + Linker
  • TheKompany.com: A New Approach to Linux Business TheKompany.com bezahlt Entwickler, um eine integrierte Entwicklungsumgebung zu erstellen, von der viele Teilmodule auch als Open Source verfügbar sein werden.
  • Advantages of the Linux Community from a Buyer Perspective beschreibt Vorteile von Linux und damit auch von verbreiteten Open Source Lösungen in Bereichen Training, Support und "Product Release Cycles"
  • Should all software be open sourced? ein Aufruf zur Diskussion über Open Source mit etlichen Rückmeldungen im Diskussionsforum
  • The joys and perils of open-source life ein Bericht über die Entwicklung des "Linux Trace Toolkit (LTT)" von einem Forschungsprojekt zu einem kommerziell genutztem und unterstützten Open Source Projekt. Module zur Anpassung an unterschiedliche Hardware werden inzwischen auch von Entwicklern in Firmen wie "Nortel Networks" erstellt.
  • Open source software is NOT free! beschreibt Möglichkeiten, wie Firmen Open Source Projekte fördern können und sollten.
    Zitat dazu
    After all, if your company was somehow the fortunate recipient of golden eggs laid by a magical goose, wouldn't it make good business sense to keep that valuable goose healthy?
  • Open-source angst: Fear of forking eine Gegenüberstellung der Risiken und Chancen der Aufteilung von (Open Source) Projekten. UNIX als negatives Beispiel (Entwicklung inkompatibler propietärer UNIX Dialekte), Vorteil der zentralen Entscheidung über die Entwicklung des offiziellen Kernels bei Linux und die Gefahr der Aufspaltung eines Projektes, wenn einige der freiwilligen Entwickler experimentelle Änderungen nicht in die Standardversion einbringen können (SAMBA)
  • Maybe I Should Be Afraid of Linux? über die Geschwindigkeit mit der für Linux Patches für sicherheitskritische Fehler entwickelt und veröffentlicht werden.
  • US-Regierung soll Open Source fördern berichtet über das Ergebnis einer amerikanischen Studie derzufolge "das vorherrschende System der Software-Erstellung nicht angemessen sei, um den Bedarf der Gesellschaft an vielfältiger und ausgereifter Software zu erfüllen. Open Source sei eine wertvolle Strategie, durch das Kombinieren privater, öffentlicher und akademischer Anstrengungen hochwertige Programme zu erstellen. An der Studie haben so prominente Personen wie Irving Wladawsky-Berger mitgewirkt, bei IBM für das gesamte Linux-Geschäft verantwortlich. Mitglieder der Open-Source-Gemeinde finden sich allerdings nicht auf der Liste der Gremiumsmitglieder."

Für eine tiefergehende Recherche zu C++ und Open Source einige Links:

Sollten Sie noch weitere gezielte Fragen haben, fügen Sie diese bitte in das Diskussionsforum /HyperNews/get/tp_2.html ein, damit alle Interessierten von der Frage/Antwort profitieren können.

back



 
Übersicht | Beteiligte | Neuigkeiten | Forschung | Publikationen | Diskussionsforen | Suche | WWW Links | Sitemap | Glossar
 
TU München Homepge  Zurück zur Startseite Zurück zu Teilprojekt 2Zurück zu Informationen Zurück zum Seitenbeginn