Herunterladen Inhalt Inhalt Diese Seite drucken

Out.controlword = 1; U08 Tmpvar = In.statusword; Inout.modeofoperation = Tmpvar - Nanotec CANopen N5 Handbuch

Vorschau ausblenden Andere Handbücher für CANopen N5:
Inhaltsverzeichnis

Werbung

Benutzen Sie das Mapping, falls Sie den Zugriff auf ein Objekt
Tipp
im Objektverzeichnis häufiger benötigen, wie beispielsweise das
Controllword 6040
Für den einzelnen Zugriff auf Objekte bieten sich eher die Funktionen
od_write() und od_read() an (siehe Abschnitt "Zugriff auf das
Objektverzeichnis")
Deklaration des Mappings
Die Deklaration des Mappings gliedert sich dabei folgendermaßen:
map <TYPE> <NAME> as <input|output|inout> <INDEX>:<SUBINDEX>
Dabei gilt:
<TYPE>
Der Datentyp der Variable, also U32, U16, U08, S32, S16 oder S08.
<NAME>
Der Name der Variable, wie sie später im Benutzerprogramm verwendet wird.
<input|output|inout>
Die Schreib- und Leseberechtigung einer Variable: Eine Variable kann entweder als input, output
oder inout deklariert werden. Damit wird festgelegt, ob eine Variable lesbar (input), schreibbar
(output) oder beides ist (inout) und über welche Struktur sie im Programm angesprochen werden
muss.
<INDEX>:<SUBINDEX>
Index und Subindex des zu mappenden Objektes im Objektverzeichnis.
Jede deklarierte Variable wird im Benutzerprogramm über eine der drei Strukturen "In", "Out" oder
"InOut" angesprochen, je nach definierter Schreib- und Leserichtung.
Beispiel eines Mappings
Beispiel eines Mappings und der zugehörigen Variablenzugriffe:
map U16 controlWord as output 0x6040:00
map U08 statusWord as input 0x6041:00
map U08 modeOfOperation as inout 0x6060:00
#include "wrapper.h"
void user()
{
[...]
Out.controlWord = 1;
U08 tmpVar = In.statusword;
InOut.modeOfOperation = tmpVar;
[...]
}
Eventuelle Fehlerquelle
Eine mögliche Fehlerquelle ist ein schreibender Zugriff mittels der Funktion od_write() auf
ein Objekt im Objektverzeichnis, welches gleichzeitig als Mapping angelegt wurde. Nachfolgend
aufgelisteter Code ist fehlerhaft:
map U16 controlWord as output 0x6040:00
#include " wrapper.h"
void user()
Version 1.2.0 / 23.07.2014 / FIR-v1426
oder das Statusword 6041
h
Handbuch N5 (CANopen)
10 Programmierung mit NanoJ
.
h
82

Werbung

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

N5N5-1-2N5-2-2

Inhaltsverzeichnis