zur Bewegungsregelung / Schnittstellen / für Motor
Willkommen bei AXAAT CONCEPT!
Gewährleistung
1. Die Gewährleistungsrechte des Kunden setzen voraus, dass dieser seinen nach §377 HBG geschuldeten Untersuchungs- und Rügeobliegenheiten ordnungsgemäß nachgekommen ist.
2. AXAAT CONCEPT GmbH gewährleistet, dass die Produkte, insbesondere Software, nicht mit Mängeln behaftet ist, die den Wert oder die Tauglichkeit zu dem gewöhnlichen oder nach dem Vertrag vorausgesetzten Gebrauch aufheben oder mindern. Eine unerhebliche Minderung des Wertes oder der Tauglichkeit bleibt außer Betracht. Dem Kunden ist bekannt, dass es nach dem Stand der Technik nicht möglich ist, ein von Fehlern vollkommen freies Programm /Software zu erstellen.
3. Keinen Mangel im Sinne dieser Vorschriften stellen Abweichungen der Produkte von den vertraglichen Regelungen und/oder Leistungsbeschreibung dar, die die Funktion des Produktes zu seinem vertragsgemäßen Gebrauch nicht oder nur unwesentlich beeinträchtigen.
4. Die Gewährleistungsansprüche des Kunden erstrecken sich nicht auf die Software, die der Kunde ändert oder die er nicht in der vertraglich vereinbarten Systemumgebung einsetzt, es sei denn, der Kunde weist nach, dass diese Nutzung für den gemeldeten Fehler nicht ursächlich ist.
5. Die Gewährleistungsansprüche des Kunden beziehen sich auch nicht auf Fälle, in denen der Kunde Software- oder Hardwarekomponenten in der vertraglich vereinbarten Systemumgebung einsetzt oder Konfigurationseinstellungen vornimmt, die die Tauglichkeit oder die Installation der Software beeinträchtigen oder beeinträchtigen können.
6. Voraussetzung für Gewährleistungsansprüche ist die Reproduzierbarkeit oder Feststellbarkeit der Fehler.
7. Dem Kunden ist bekannt, dass es sich bei Angaben in der Benutzungsdokumentation, den Handbüchern, Testversionen, Bedienungsanleitungen oder sonstigen Unterlagen und Urkunden um keine Eigenschaftszusicherungen oder sonstige Übernahme besonderer Einstandspflichten, sofern nicht ausdrücklich etwas anderes bestimmt ist, in keinem Falle um Eigenschaftsangaben der vertraglichen Produkte handelt, sondern lediglich um, zum Zeitpunkt der Erstellung der Benutzungsdokumentationen, Handbücher, Testversionen, Bedienungsanleitungen oder sonstigen Unterlagen, beabsichtigte und voraussichtliche Eigenschaften.
8. Der Kunde hat Fehler unverzüglich unter Angabe der ihm bekannten und für deren Erkennung zweckdienlichen Informationen schriftlich zu melden, soweit keine andere Form der Störungsmeldung vereinbart ist. Er hat im Rahmen des Zumutbaren die Maßnahmen zu treffen, die eine Feststellung der Fehler und ihrer Ursachen erleichtern.
9. Die regelmäßige Gewährleistungsfrist beträgt unter Kaufleuten 12 Monate ab Überlassung, sofern nichts anderes vereinbart ist. Die Gewährleistungsfrist für Fehler an Nachbesserungsleistungen, Umgehungen oder Neulieferungen endet ebenfalls mit Ablauf der regelmäßigen Gewährleistungsfrist.
10. Meldet der Kunde vor Ablauf der Gewährleistungsfrist einen Fehler, wird die Gewährleistungsfrist hinsichtlich des gemeldeten Fehlers gehemmt, wenn AXAAT CONCEPT GmbH im Einverständnis mit dem Kunden das Vorhandensein des Fehlers prüft oder nachbessert. Die Gewährleistungsfrist ist so lange gehemmt, bis AXAAT CONCEPT GmbH das Ergebnis seiner Prüfung dem Kunden mitteilt, die Nachbesserung für beendet erklärt oder die Fortsetzung der Nachbesserung verweigert.
11. Ist die Verpflichtung zur Fehlerbeseitigung vertraglich nicht ausgeschlossen, gilt Folgendes: AXAAT CONCEPT GmbH ist verpflichtet, gemeldete Fehler nach seiner Wahl durch unverzügliche Nachbesserung, Umgehung oder Neulieferung zu beseitigen. Auf Fehlermeldungen hat sie spätestens innerhalb von drei Tagen zu reagieren. Zur Fehlerbeseitigung gehört auch die Lieferung einer ausgedruckten oder ausdruckbaren Korrekturanweisung für die Dokumentation, soweit dies erforderlich ist.
Übernimmt der Kunde eine neue Fassung aus diesem Grunde nicht, bleiben anstelle der Nachbesserung seine übrigen Rechte aus Ziffer 7.11 unberührt. Schließt AXAAT CONCEPT GmbH die Fehlerbeseitigung nicht innerhalb angemessener Frist erfolgreich ab, kann ihm der Kunde eine Nachfrist mit der Erklärung setzen, dass er nach erfolglosem Ablauf dieser Frist die Beseitigung des Fehlers ablehnt. Nach Ablauf der Nachfrist kann der Kunde Herabsetzung der Vergütung, Rücktritt vom Vertrag oder - bei Vorliegen der gesetzlichen Voraussetzungen - Schadensersatz verlangen.
13. Sofern nicht § 8 Anwendung findet, ist der Schadensersatzanspruch begrenzt auf 8 % des Wertes der vom Fehler betroffenen Leistung, für sämtliche Schadensersatzansprüche aufgrund von Fehlern jedoch auf höchstens 8 % des Gesamtpreises gemäß Vertrag.
14. Bei Überlassung einer neuen Fassung der Software ist die jeweils ausgetauschte Fassung zu vernichten oder auf Verlangen an AXAAT CONCEPT GmbH herauszugeben.
15. Die Haftungsbeschränkungen in Ziffer 7.13 gelten nicht bei arglistigem Verschweigen eines Fehlers sowie bei Vorsatz oder grober Fahrlässigkeit. Ansprüche des Kunden auf Ersatz entgangenen Gewinns sind ausgeschlossen.
C-Programmierung mit AVR-GCC/ Hello World – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher
In der Programmierung ist es üblich mit einem einfachen Beispiel anzufangen, um die Basics zu lernen. Das bekannteste Beispielprogramm ist das "Hello World"-Programm. Anhand dieses kleinen Beispiels möchte ich verdeutlichen, wie du eigne Programme übersetzen und auf einen Mikrocontroller programmieren kannst.
/* * File: * Description: Toggels pin PB0 every 500ms * From: C-Programmierung mit AVR-GCC */ #define F_CPU 8000000UL #include
Nehmen wir einmal an wir haben obiges Programm geschrieben und möchten es auf unserem Mikrocontroller einsetzen. Das Programm ist natürlich sehr rudimentär, trotzdem ist es geeignet die ersten Gehversuche beim Übersetzen und Programmieren zu wagen.
Übersetzen [ Bearbeiten ]
Als erstes muss unser Programm übersetzt werden. Dazu müssen wir den Compiler aufrufen und ihm unsere Quelltextdatei übergeben. Ich werde im folgenden den Ablauf unter Ubuntu zeigen. Unter Windows funktionieren die Konsolenbefehle allerdings genauso.
Im Terminal navigieren wir zuerst zum Verzeichnis, in dem die Quellcodedatei liegt. Danach führen wir folgenden Befehl aus.
avr-gcc -mmcu=atmega328p -Os -c -o
Mit diesem Befehl erstellen wir aus unserem Quelltext ein Object-File. Dabei wird die Syntax unseres Programms geprüft und gleichzeitig optimiert, damit wir bestmöglich den Speicherplatz im Controller ausnutzen können. Daher ist auch die Angabe der verwendeten Version des Controllers wichtig. In diesem Beispiel kompilieren wir für den Arduino Uno, welcher auf einem ATMega328P aufgebaut ist.
Als nächstes werden die einzelnen Object-Files gelinkt. Das bedeutet, dass alle Programmteile nun zu einem einzelnen Programm verbunden werden. Dies geschieht ebenfalls wieder mit avr-gcc.
avr-gcc -o
Hier muss der verwendete Mikrocontroller und die Optimierungsanweisung nicht mehr angegeben werden. Es entsteht eine ELF-Datei, die alle Programmteile enthält. Um den Mikrocontroller mit einem Programmer zu konfigurieren benötigen wir aber noch eine Datei, die auch von der Programmiersoftware (avrdude) gelesen werden kann.
avr-objcopy -O ihex -j -j .data blink.hex
Die ELF-Datei wird mit diesem Kommando in eine Textdatei im Intel-Hex Format übersetzt.
Speicherverbrauch testen [ Bearbeiten ]
Der Compiler bietet auch die Möglichkeit, den Speicherverbrauch für das Programm zu ermitteln. Dies ist nützlich gerade, wenn du sicher gehen willst, dass dein Programm auch in den verfügbaren Speicher deines Controllers passt.
avr-size --mcu=atmega328p -C
Dieses Kommando listet dir übersichtlich auf, welche Speicher wie ausgelastet sind.
AVR Memory Usage ---------------- Device: atmega328p Program: 30 bytes (0.1% Full) + .data + .bootloader) Data: 0 bytes (0.0% Full) (.data + .bss +
Für unser Beispielprogramm beträgt der Speicherverbrauch also gerade einmal 30 Bytes und lastet den Speicher lediglich zu 0,1% aus. Eingangs hatte ich ja schon die etwas eingeschränkten Ressourcen angesprochen. Hier wird jetzt deutlich, dass die vermeintliche Einschränkung eigentlich gar keine ist.
Programm übertragen [ Bearbeiten ]
Nun wollen wir mithilfe eines Programmers und avrdude das Programm auch auf den Mikrocontroller laden.
avrdude -p m328p -c arduino -U flash:w:blink.hex:a
Teilweise ist es zusätzlich nötig die verwendete PC-Schnittstelle (USB, Seriell, ...) oder die Baudrate einzustellen.
avrdude -p m328p -c arduino -B 115200 -P /dev/ttyS0-U flash:w:blink.hex:a
Schließt man beispielsweise jetzt eine LED an den Pin PB0 an, blinkt diese im Takt von 500ms.
zur Bewegungsregelung / Schnittstellen / für Motor
SmartMotor™ Interface (SMI) Software zur Programmierung aller SmartMotors™ Die Moog Animatics SMI-Software bietet eine einfach zu bedienende Microsoft Windows-kompatible Benutzeroberfläche für Ihre Moog Animatics SmartMotor™. Mit SMI können Sie mehrachsige Bewegungssteuerung für 1 bis 100 SmartMotors definieren. SMI beinhaltet ein Terminalprogramm, einen Programmeditor und einen Debugger auf Quellcode-Ebene. Zu den Standard-SMI-Funktionen gehören ein Menü Tools zum Einstellen der PID-Tuning-Parameter und zum Plotten der Sprungantwort, Motorinformationen und dynamische Statusverfolgung sowie Online-Hilfe und Dokumentation. Die neueste Version von SMI kann mehrere Fenster zur Programmbearbeitung öffnen, sofort mehrere Motoren ansprechen und Programme von Motoren hochladen. Schreiben und laden Sie einfach Ihre Anwendung auf den konfigurierten SmartMotor und starten Sie den Motor neu, um Ihre Anwendung zu starten. Laden Sie SMI kostenlos von der Moog Animatics-Website oder von der Produkt-CD-ROM herunter und installieren Sie SMI, SMIEngine™ und Coordinated Motion mit dem Installationsassistenten. Die SMIEngine ist eine Komponentenbibliothek, die das Component Object Model (COM) verwendet, um Funktionen zu definieren, die die folgenden Aufgaben ausführen: Konfiguration und Kommunikation mit Moog Animatics SmartMotors Kompilieren/Download/Upload/Debuggen kompilierter Benutzerprogramme (.smx-Dateien) Steuerung der Motoren mit koordinierter Bewegung (Contouring oder Host-Modus) Erstellen von Kreis- und Linearwegkoordinaten für koordinierte Bewegungen Abfragefunktionen zur Überwachung von Funktionen Das Moog Animatics SmartMotor Interface verfügt über spezielle benutzerdefinierte Abfragefunktionen, mit denen Sie wichtige Funktionen komfortabel überwachen können. Überwachen Sie verschiedene Statusbits, Variablen und I/Os von jedem Motor in einer Kette, auch während der Ausführung der Anwendung.
---