Herunterladen Inhalt Inhalt Diese Seite drucken

Nanoj-Programm Ausführen - Nanotec PD4-E591L42-E-65-4 Handbuch

Vorschau ausblenden Andere Handbücher für PD4-E591L42-E-65-4:
Inhaltsverzeichnis

Werbung

Technisches Handbuch PD4-E (Modbus TCP)
9 Programmierung mit NanoJ
Sollte das NanoJ-Programm zu lange die Rechenzeit nicht abgeben, wird es vom Betriebssystem
beendet. In diesem Fall wird in das Statusword bei Objekt 2301
Fehlerregister bei Objekt 2302
2302h NanoJ Error Code.
9.1.2 Sandbox
Durch prozessorspezifische Eigenschaften wird eine sogenannte Sandbox generiert. Ein
Benutzerprogramm in der Sandbox hat nur die Möglichkeit, auf speziell zugewiesene Speicherbereiche
und Systemressourcen zuzugreifen. Beispielsweise wird ein Versuch, auf ein Prozessor-IO-
Register direkt zu schreiben, mit einem MPU Fault quittiert und das Benutzerprogramm wird mit dem
entsprechenden Fehlercode im Objektverzeichnis abgebrochen.
9.1.3 NanoJ-Programm - Kommunikationsmöglichkeiten
Ein NanoJ-Programm hat mehrere Möglichkeiten, mit der Steuerung zu kommunizieren:
Lesen und Schreiben von OD-Werten per PDO-Mapping
direktes Lesen und Schreiben von OD-Werten über Systemcalls
Aufruf sonstiger Systemcalls (z. B. Debug-Ausgabe schreiben)
Über ein PDO-Mapping werden dem Benutzerprogramm OD-Werte in Form von Variablen zur
Verfügung gestellt. Bevor ein Benutzerprogramm die 1 ms-Zeitscheibe erhält, werden dazu von der
Firmware die Werte aus dem Objektverzeichnis in die Variablen des Benutzerprogramms übertragen.
Sobald das Benutzerprogramm Rechenzeit erhält, kann es diese Variablen wie gewöhnliche C-
Variablen manipulieren. Am Ende der Zeitscheibe werden letztendlich die neuen Werte von der
Firmware wieder automatisch in die jeweiligen OD-Einträge kopiert.
Um die Performance zu optimieren, werden dabei drei Arten von Mappings definiert: Input, Output und
Input/Output (In, Out, InOut).
Input Mappings lassen sich nur lesen und werden nicht zurück ins Objektverzeichnis übertragen.
Output Mappings lassen sich nur schreiben.
Input/Output Mappings erlauben hingegen Lesen und Schreiben.
Die gesetzten Mappings können über die GUI bei den Objekten 2310
und überprüft werden. Für jedes Mapping sind maximal 16 Einträge erlaubt.
Über die Angabe der Linker-Section wird in NanoJEasy gesteuert, ob eine Variable im Input-, Output-
oder Datenbereich abgelegt wird.
9.1.4 NanoJ-Programm ausführen
Zusammengefasst besteht das NanoJ-Programm bei der Ausführung eines Zyklus hinsichtlich des
PDO-Mappings aus folgenden drei Schritten:
1. Werte aus dem Objektverzeichnis lesen und in die Bereiche Inputs und Outputs kopieren
2. Benutzerprogramm ausführen
3. Werte aus den Bereichen Outputs und Inputs zurück in das Objektverzeichnis kopieren
Die Konfiguration der Kopiervorgänge ist dem CANopen-Standard angelehnt.
Zusätzlich kann über Systemcalls auf Werte des Objektverzeichnisses zugegriffen werden. Dies ist im
Allgemeinen deutlich langsamer und daher sind Mappings vorzuziehen. Die Anzahl an Mappings ist
begrenzt (jeweils 16 Einträge in In/Out/InOut).
Version: 1.1.0 / FIR-v1825
Hinweis
wird die Ziffer 5 (Timeout) notiert, siehe 2301h NanoJ Status und
h
die Ziffer 4 eingetragen, im
h
, 2320
, und 2330
ausgelesen
h
h
h
117

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis