Softwareumgebung: Unterschied zwischen den Versionen

Aus Kicker
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 5: Zeile 5:
== TwinCAT ==
== TwinCAT ==
[http://www.beckhoff.de/default.asp?twincat/default.htm TwinCAT] ist eine Software-SPS der Firma [http://www.beckhoff.de/ Beckhoff Automation]. Sie bietet sowohl die Funktionalität einer SPS, sowie einer numerischen Bahnregelung (NC), zur Regelung der Elektromotoren. TwinCAT läuft unter Windows XP und erweitert dieses um eine Laufzeitumgebung. Es wird [http://www.beckhoff.de/default.asp?twincat/twincat_nc_ptp.htm TwinCAT NC PTP] (Numerical
[http://www.beckhoff.de/default.asp?twincat/default.htm TwinCAT] ist eine Software-SPS der Firma [http://www.beckhoff.de/ Beckhoff Automation]. Sie bietet sowohl die Funktionalität einer SPS, sowie einer numerischen Bahnregelung (NC), zur Regelung der Elektromotoren. TwinCAT läuft unter Windows XP und erweitert dieses um eine Laufzeitumgebung. Es wird [http://www.beckhoff.de/default.asp?twincat/twincat_nc_ptp.htm TwinCAT NC PTP] (Numerical
Control, Point-To-Point) in der Version 2.10.0 verwendet. Die Programmierung erfolgt hier in "Strukturierter Text", war Gegenstand der Diplomarbeit von Karsten Schätzle und ist im [https://kicker.ee.hm.edu/svn/tags/TwinCAT/ SVN] abgelegt. Als Schnittstelle zur SPS, steht [http://www.beckhoff.de/default.asp?twincat/twincat_ads_communication_library.htm ADS] zur Verfügung.
Control, Point-To-Point) in der Version 2.10.0 verwendet. Als Schnittstelle zur SPS, steht [http://www.beckhoff.de/default.asp?twincat/twincat_ads_communication_library.htm ADS] zur Verfügung.

Die Programmierung erfolgte in "Strukturierter Text" und ist im [https://kicker.ee.hm.edu/svn/tags/TwinCAT/ SVN] abgelegt. Programmierer war hier Karsten Schätzle.


== SPSchnittstelle ==
== SPSchnittstelle ==


Um den Zugriff auf die SPS zu vereinfachen, wurde die SPSchnittstelle programmiert. Sie übersetzt die ADS-Schnittstelle und stellt ein UDP-Server dar, um eine einheitliche [[Softwareumgebung#Interprozesskommunikation|Interprozesskommunikation]] im Projekt zu gewährleisten. Die Programmierung erfolgte in C/C++ und ist im [https://kicker.ee.hm.edu/svn/tags/SPSchnittstelle/ SVN] abgelegt. Programmierer war hier, wie bei der SPS, Karsten Schätzle (erste Version, mit TCP-IP). Die Umstellung auf UDP erfolgte von Scharel Clemens.
Um den Zugriff auf die SPS zu vereinfachen, wurde die SPSchnittstelle programmiert. Sie übersetzt die ADS-Schnittstelle und stellt ein UDP-Server dar, um eine einheitliche [[Softwareumgebung#Interprozesskommunikation|Interprozesskommunikation]] im Projekt zu gewährleisten.

Die Programmierung erfolgte in C/C++ und ist im [https://kicker.ee.hm.edu/svn/tags/SPSchnittstelle/ SVN] abgelegt. Programmierer war hier Karsten Schätzle (erste Version, mit TCP-IP). Die Umstellung auf UDP erfolgte von Scharel Clemens.


== Ballerkennung ==
== Ballerkennung ==

Die Ballerkennung ermittelt die Ballposition auf dem Spielfeld mit Hilfe von zwei Embedded-Kameras im 10ms-Takt. Die Position des Balls wird mittels einer Visualisierung am Bildschirm dargestellt und für weitere Programme per UDP-Server zur Verfügung gestellt.

Die Programmierung erfolgte in C/C++ und ist im [https://kicker.ee.hm.edu/svn/tags/Ballerkennung/ SVN] abgelegt. Programmierer war hier Manuel Zimmermann (erste Version, mit Shared Memory). Die Umstellung auf UDP erfolgte von Manuel Zimmermann und Scharel Clemens.


== Spielsteuerung ==
== Spielsteuerung ==


Die Spielsteuerung, ist das Programm, welches die Spielzüge bestimmt. Sie berechnet, mit Hilfe der Ball- und Spielstangenpositionen, welche Bewegungen als nächstes auszuführen sind. Sie stellt also die künstliche Intelligenz dar. Die Konzeption und Programmierung, dieser Software, war Gegenstand einer Diplomarbeit ("Konzeption einer Softwareumgebung zur intelligenten Ansteuerung eines automatisierten Tischkickers" von Scharel Clemens, 30.09.2012). Da die Diplomarbeit sich eher mit den Grundlagen befasst, und die Programmierung nur oberflächlich behandelt, wird hier der Programmablauf erklärt und gezeigt, wie praktisch vorzugehen ist, um Änderungen und Erweiterungen einzubringen.
Die Spielsteuerung, ist das Programm, welches die Spielzüge bestimmt. Sie berechnet, mit Hilfe der Ball- und Spielstangenpositionen, welche Bewegungen als nächstes auszuführen sind. Sie stellt also die künstliche Intelligenz dar.

Die Programmierung erfolgte in C/C++ und ist im [https://kicker.ee.hm.edu/svn/branches/ProCK-KI/ SVN] abgelegt. Programmierer war hier Scharel Clemens.


=== Programmablauf ===
=== Programmablauf ===

Version vom 21. November 2012, 14:09 Uhr

In Bearbeitung!!!

Um den Kicker zu betreiben, sind drei grundlegende Software-Komponenten nötig. Die SPS (TwinCAT), die Ballerkennung und die Spielsteuerung. Um den Zugriff auf die SPS, für die anderen Programme zu vereinfachen, gibt es die SPSchnittstelle.

TwinCAT

TwinCAT ist eine Software-SPS der Firma Beckhoff Automation. Sie bietet sowohl die Funktionalität einer SPS, sowie einer numerischen Bahnregelung (NC), zur Regelung der Elektromotoren. TwinCAT läuft unter Windows XP und erweitert dieses um eine Laufzeitumgebung. Es wird TwinCAT NC PTP (Numerical Control, Point-To-Point) in der Version 2.10.0 verwendet. Als Schnittstelle zur SPS, steht ADS zur Verfügung.

Die Programmierung erfolgte in "Strukturierter Text" und ist im SVN abgelegt. Programmierer war hier Karsten Schätzle.

SPSchnittstelle

Um den Zugriff auf die SPS zu vereinfachen, wurde die SPSchnittstelle programmiert. Sie übersetzt die ADS-Schnittstelle und stellt ein UDP-Server dar, um eine einheitliche Interprozesskommunikation im Projekt zu gewährleisten.

Die Programmierung erfolgte in C/C++ und ist im SVN abgelegt. Programmierer war hier Karsten Schätzle (erste Version, mit TCP-IP). Die Umstellung auf UDP erfolgte von Scharel Clemens.

Ballerkennung

Die Ballerkennung ermittelt die Ballposition auf dem Spielfeld mit Hilfe von zwei Embedded-Kameras im 10ms-Takt. Die Position des Balls wird mittels einer Visualisierung am Bildschirm dargestellt und für weitere Programme per UDP-Server zur Verfügung gestellt.

Die Programmierung erfolgte in C/C++ und ist im SVN abgelegt. Programmierer war hier Manuel Zimmermann (erste Version, mit Shared Memory). Die Umstellung auf UDP erfolgte von Manuel Zimmermann und Scharel Clemens.

Spielsteuerung

Die Spielsteuerung, ist das Programm, welches die Spielzüge bestimmt. Sie berechnet, mit Hilfe der Ball- und Spielstangenpositionen, welche Bewegungen als nächstes auszuführen sind. Sie stellt also die künstliche Intelligenz dar.

Die Programmierung erfolgte in C/C++ und ist im SVN abgelegt. Programmierer war hier Scharel Clemens.

Programmablauf

Der allgemeine Programmablauf, ist diesem Sequenzdiagramm zu entnehmen. Es erläutert, welche Klasse wann erzeugt und welche Memberfunktionen wann aufgerufen werden. Die eigentliche Funktionalität (Fahrbefehle für die Spielstangen) befindet sich in der Funktion runAgent(), der Klasse AxisAgent. Es gibt vier Instanzen dieser Klasse, und somit 4 Threads, in denen die Funktion runAgent() parallel ausgeführt wird. Jede Instanz ist für eine Spielstange zuständig.

Interprozesskommunikation

Der Begriff "Interprozesskommunikation" wird nachgehend mit "IPC" abgekürzt.

Einleitung

Für jede Teilaufgabe gibt es beim Kicker ein eigenständiges Programm.

Beispiel der IPC zwischen Ballerkennung und Spielsteuerung

Dieses Sequenzdiagramm beschreibt den sequentiellen Ablauf der IPC zwischen Spielsteuerung und Ballerkennung, innerhalb der Spielsteuerung.