Herunterladen Inhalt Inhalt Diese Seite drucken

Mapping Im Nanoj-Programm; Beispiel Eines Mappings - 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
Weitere Beispiele finden Sie auf www.nanotec.de.

9.2 Mapping im NanoJ-Programm

Mit dieser Methode wird eine Variable im NanoJ-Programm direkt mit einem Eintrag im
Objektverzeichnis verknüpft. Das Anlegen des Mappings muss dabei am Anfang der Datei stehen
- noch vor der #include "wrapper.h"-Anweisung. Ein Kommentar oberhalb des Mappings ist
erlaubt.
Nanotec empfiehlt:
Benutzen Sie das Mapping, falls Sie den Zugriff auf ein Objekt im Objektverzeichnis häufiger
benötigen, z. B. das Controlword 6040
Für den einzelnen Zugriff auf Objekte bieten sich eher die Funktionen od_write() und
od_read() an, siehe Zugriff auf das Objektverzeichnis.
9.2.1 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; U32, U16, U08, S32, S16 oder S08.
<NAME>
Der Name der Variable; wie sie 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 Objekts im Objektverzeichnis.
Jede deklarierte Variable wird im Benutzerprogramm über eine der drei Strukturen In, Out oder InOut
angesprochen, je nach definierter Schreib- und Leserichtung.

9.2.2 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;
Version: 1.1.0 / FIR-v1825
Tipp
oder das Statusword 6041
h
.
h
120

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis