Herunterladen Diese Seite drucken

Nanotec C5 Handbuch Seite 59

Feldbus: usb
Vorschau ausblenden Andere Handbücher für C5:

Werbung

10 Programmierung mit NanoJ
10.1 Einleitung
Der VMM (Virtual Machine Monitor) stellt eine geschützte Ausführungsumgebung innerhalb der
Firmware zur Verfügung. In diese kann der Anwender eigene Programme (Benutzerprogramm,
"User Program") laden. Diese können dann Funktionen in der Motorsteuerung auslösen, indem
beispielsweise Einträge im Objektverzeichnis gelesen oder geschrieben werden.
Durch Verwendung von Schutzmechanismen wird verhindert, dass Benutzerprogramme die eigentliche
Firmware zum Absturz bringen können. Im schlimmsten Fall wird lediglich die Ausführung des
Benutzerprogramms mit einem im Objektverzeichnis hinterlegten Fehlercode abgebrochen.
10.2 Verfügbare Rechenzeit
Ein Benutzerprogramm erhält zyklisch im 1 ms Takt Rechenzeit (siehe auch nachfolgende Abbildung).
Da durch Interrupts und Systemfunktionen der Firmware Rechenzeit verloren geht, stehen dem
Benutzerprogramm (abhängig von Betriebsart und Anwendungsfall) nur ca. 30% - 50% dieser Zeit
zur Verfügung. In dieser Zeit muss das Benutzerprogramm seine Arbeit erledigen und sich entweder
beenden oder durch Aufruf der Funktion yield() die Rechenzeit abgegeben haben. Bei ersterem
wird das Benutzerprogramm mit dem Beginn des nächsten 1 ms-Zyklus wieder neu gestartet, letzteres
bewirkt eine Fortsetzung des Programms an dem der Funktion yield() nachfolgenden Befehl beim
nächsten 1 ms-Zyklus.
Betriebssystem
VMM
Leerlauf
0
Sofern das System feststellt, dass das Benutzerprogramm mehr als die ihm zugeteilte Zeit benötigt,
wird dieses beendet und im Objektverzeichnis ein Fehlercode gesetzt. Bei der Entwicklung von
Benutzerprogrammen ist daher speziell bei zeitintensiveren Aufgaben eine sorgfältige Überprüfung
des Laufzeitverhaltens durchzuführen. So empfiehlt sich daher beispielsweise die Verwendung von
Tabellen, anstatt einen Sinuswert über eine sin Funktion zu berechnen.
Hinweis
Sollte das VMM-Programm zu lange die Rechenzeit nicht abgeben, wird
es vom Betriebssystem beendet. In diesem Fall wird in das Statuswort bei
Objekt 2301
der VMM die Ziffer "4" eingetragen, im Fehlerregister der VMM
h
bei Objekt 2302
wird die Ziffer "5" (Timeout) notiert.
h
Version 1.1.0 / 23.07.2014 / FIR-v1426
1
2
Handbuch C5 (USB)
10 Programmierung mit NanoJ
Eingänge Lesen
Ausgänge Schreiben
3
t in ms
59

Werbung

loading