JVM-407 - Jetter

Transcrição

JVM-407 - Jetter
JVM-407
Bediengerät
Vorspann
Variante: Jetter
Artikel-Nr.: 60877111
Version 1.17.4
November 2011 / Printed in Germany
Die Firma Jetter AG behält sich das Recht vor, Änderungen an Ihren Produkten vorzunehmen, die der technischen
Weiterentwicklung dienen. Diese Änderungen werden nicht notwendigerweise in jedem Einzelfall dokumentiert.
Diese Betriebsanleitung und die darin enthaltenen Informationen wurden mit der gebotenen Sorgfalt zusammengestellt.
Die Firma Jetter AG übernimmt jedoch keine Gewähr für Druckfehler oder andere Fehler oder daraus entstehende
Schäden.
Die in diesem Buch genannten Marken und Produktnamen sind Warenzeichen oder eingetragene Warenzeichen der
jeweiligen Titelhalter.
2
Jetter AG
JVM-407
Adresse
Vorspann
So können Sie uns erreichen:
Jetter AG
Gräterstraße 2
D-71642 Ludwigsburg
Germany
Zugehörigkeit
Telefon - Zentrale:
+49 7141 2550-0
Telefon - Vertrieb:
+49 7141 2550-433
Telefon - Technische Hotline:
+49 7141 2550-444
Telefax - Vertrieb:
+49 7141 2550-484
E-Mail - Vertrieb:
[email protected]
E-Mail - Technische Hotline:
[email protected]
Diese Betriebsanleitung gehört zum JVM-407:
Typ:
Serien-Nr.:
Baujahr:
Auftrags-Nr.:
Vom Kunden einzutragen:
Inventar-Nr.:
Ort der Aufstellung:
Jetter AG
3
Vorspann
Bedeutung
Bedeutung der Betriebsanleitung
Die Betriebsanleitung ist Bestandteil des JVM-407:
 Bewahren Sie die Betriebsanleitung immer, also bis zur Entsorgung des

JVM-407, griffbereit auf.
Geben Sie die Betriebsanleitung bei Verkauf, Veräußerung oder Verleih
des JVM-407 weiter.
Wenden Sie sich unbedingt an den Hersteller, wenn Sie etwas aus der Betriebsanleitung nicht eindeutig verstehen.
Wir sind dankbar für jede Art von Anregung und Kritik von Ihrer Seite und bitten Sie, diese uns unter der E-Mail-Adresse [email protected] mitzuteilen bzw. zu
schreiben. Dieses hilft uns, die Handbücher noch anwenderfreundlicher zu
gestalten und auf Ihre Wünsche und Erfordernisse einzugehen.
Diese Betriebsanleitung enthält wichtige Informationen, wenn Sie das
JVM-407 transportieren, aufstellen, installieren, bedienen, warten und reparieren wollen. Deshalb müssen Sie die Betriebsanleitung und besonders die
Sicherheitshinweise sorgfältig lesen, verstehen und beachten.
Fehlende oder unzureichende Kenntnisse der Betriebsanleitung führen zum
Verlust jeglicher Haftungsansprüche gegen die Firma Jetter AG. Dem Betreiber wird deshalb empfohlen, sich die Einweisung der Personen schriftlich bestätigen zu lassen.
4
Jetter AG
JVM-407
Inhaltsverzeichnis
Inhaltsverzeichnis
1
Sicherheitshinweise
11
Grundlegende Sicherheitshinweise ............................................................................................. 12
Hinweise zur EMV ........................................................................................................................ 14
2
Produktbeschreibung und Geräteaufbau
17
Produktbeschreibung JVM-407.................................................................................................... 18
Teile und Schnittstellen ................................................................................................................ 19
Bestellbezeichnung / Optionen .................................................................................................... 23
Mechanische Abmessungen ........................................................................................................ 24
3
Identifikation des JVM-407
3.1
3.2
4
Identifikation über das Typenschild ......................................................................................... 28
Typenschild .................................................................................................................................. 29
Versionsregister ......................................................................................................................... 30
Software-Versionen ...................................................................................................................... 31
Montage und Installation des JVM-407
4.1
4.2
4.3
4.4
5
27
33
Schnittstellen .............................................................................................................................. 34
Beispiel einer Verdrahtung ........................................................................................................... 35
Anschluss Spannungsversorgung................................................................................................ 36
Anschluss digitale Ein- und Ausgänge ......................................................................................... 38
Ausschaltverzögerung des Bediengeräts .................................................................................... 41
Ethernet-Schnittstelle ................................................................................................................... 43
CAN-Schnittstelle ......................................................................................................................... 45
Spezifikation - CAN-Buskabel ...................................................................................................... 49
Anschluss Video........................................................................................................................... 51
Schnittstellen an der Mittelkonsole bei montiertem Tragarm ............................................... 54
Verbindungskabel Spannungsversorgung ................................................................................... 55
Verbindungskabel Ein- und Ausgänge ......................................................................................... 57
Verbindungskabel CANopen® ..................................................................................................... 59
Verbindungskabel Video .............................................................................................................. 61
Montage des JVM-407................................................................................................................ 62
Montage des Bediengeräts .......................................................................................................... 63
Montage des Tragarms ................................................................................................................ 66
IP-Konfiguration ......................................................................................................................... 68
Auslieferungszustand ................................................................................................................... 69
Der Konfigurations-Speicher ........................................................................................................ 70
Konfigurations-Datei cfgvar.ini ..................................................................................................... 71
Konfigurations-Register ............................................................................................................... 75
IP-Adresse der Steuerung ändern ............................................................................................... 76
IP-Adresse über die Datei cfgvar.ini einstellen ............................................................................ 77
IP-Adresse zur Laufzeit einstellen ............................................................................................... 78
Namen für IP-Adressen verwenden ............................................................................................. 79
Erstinbetriebnahme
81
Vorbereitungen zur Erstinbetriebnahme ...................................................................................... 82
Jetter AG
5
Inhaltsverzeichnis
Erstinbetriebnahme in JetViewSoft ............................................................................................. 83
Erstinbetriebnahme in JetSym .................................................................................................... 86
6
CANopen®-STX-API
93
STX-Funktion CanOpenInit ......................................................................................................... 94
STX-Funktion CanOpenSetCommand ........................................................................................ 96
STX-Funktion CanOpenUploadSDO ........................................................................................... 98
STX-Funktion CanOpenDownloadSDO .................................................................................... 103
STX-Funktion CanOpenAddPDORx ......................................................................................... 108
STX-Funktion CanOpenAddPDOTx ........................................................................................... 114
CANopen®-Objektverzeichnis des JVM-407 ............................................................................ 120
7
SAE J1939-STX-API
123
Aufbau einer J1939-Nachricht ................................................................................................... 124
STX-Funktion SAEJ1939Init...................................................................................................... 126
STX-Funktion SAEJ1939SetSA ................................................................................................ 128
STX-Funktion SAEJ1939GetSA ................................................................................................ 129
STX-Funktion SAEJ1939AddRx ............................................................................................... 130
STX-Funktion SAEJ1939AddTx ................................................................................................ 133
STX-Funktion SAEJ1939RequestPGN ..................................................................................... 136
STX-Funktion SAEJ1939GetDM1 ............................................................................................. 139
STX-Funktion SAEJ1939GetDM2 ............................................................................................. 142
STX-Funktion SAEJ1939SetSPNConversion ........................................................................... 145
STX-Funktion SAEJ1939GetSPNConversion ........................................................................... 147
8
Dateisystem
8.1
8.2
8.3
8.4
8.5
9
149
Eigenschaften .......................................................................................................................... 150
Eigenschaften der Flash-Disk ................................................................................................... 151
Eigenschaften der SD-Karte...................................................................................................... 152
Eigenschaften des USB-Sticks .................................................................................................. 153
Benutzerverwaltung ................................................................................................................ 154
Benutzer verwalten .................................................................................................................... 156
Auslieferungszustand / Vordefinierte Benutzer und Schlüssel .................................................. 158
Schloss anbringen ..................................................................................................................... 159
Namen einrichten für Schlüssel/Schlösser................................................................................ 161
Belegung der Flash-Disk einsehen ....................................................................................... 163
Belegung der Flash-Disk ........................................................................................................... 164
Betriebssystem-Update und Anwenderprogramm .............................................................. 167
Formatieren und Prüfen.......................................................................................................... 168
Flash-Disk formatieren .............................................................................................................. 169
SD-Karte formatieren ................................................................................................................ 170
USB-Stick formatieren ............................................................................................................... 171
SD-Karte überprüfen ................................................................................................................. 172
USB-Stick überprüfen ................................................................................................................ 173
FTP-Server
175
Anmeldung ................................................................................................................................ 176
Unterstützte Kommandos .......................................................................................................... 177
Beispiel: Windows FTP-Client ................................................................................................... 178
6
Jetter AG
JVM-407
10
Inhaltsverzeichnis
HTTP-Server
10.1
11
Server Side Includes ................................................................................................................ 180
Name Space Tag ........................................................................................................................ 181
Einfügen von Echtzeit-Steuerungswerten .................................................................................. 182
Beispiel einer HTML-Seite ......................................................................................................... 187
Programmierung
11.1
11.2
11.3
11.4
11.5
11.6
11.6.1
11.6.2
11.6.3
11.6.4
11.7
11.7.1
Jetter AG
179
189
Abkürzungen, Modulregister-Eigenschaften und Formatierungen ............................................ 190
Speicherübersicht .................................................................................................................... 191
Speicher des Betriebssystems ................................................................................................... 192
Speicher des Dateisystems........................................................................................................ 193
Speicher des Anwenderprogramms ........................................................................................... 194
Speicher für flüchtige Variablen des Anwenderprogramms ....................................................... 195
Speicher für nichtflüchtige Register des Anwenderprogramms ................................................. 196
Speicher für nichtflüchtige Variablen des Anwenderprogramms ............................................... 197
Spezialregister............................................................................................................................ 199
Ein- und Ausgänge ..................................................................................................................... 200
Merker ........................................................................................................................................ 201
Ein- und Ausgabe ..................................................................................................................... 203
Funktionstasten .......................................................................................................................... 204
Digipot ........................................................................................................................................ 205
Digitale Ein- und Ausgänge ........................................................................................................ 206
Zündung und Ausschaltverzögerung ......................................................................................... 207
Echtzeituhr................................................................................................................................ 209
Technische Daten....................................................................................................................... 210
Beispielprogramm Echtzeituhr ................................................................................................... 211
Laufzeitregister ........................................................................................................................ 213
Beschreibung der Laufzeitregister ............................................................................................. 214
Beispielprogramm Laufzeitregister ............................................................................................ 216
Überwachung der Schnittstellenaktivität .............................................................................. 217
Funktionsweise .......................................................................................................................... 218
Programmierung ........................................................................................................................ 220
E-Mail......................................................................................................................................... 222
Konfigurieren der E-Mail-Funktion ......................................................................................... 223
Die Konfigurations-Datei "/EMAIL/email.ini" .............................................................................. 224
Sektion [SMTP] .......................................................................................................................... 225
Sektion [POP3]........................................................................................................................... 227
Sektion [DEFAULT] .................................................................................................................... 229
Beispiele für eine Konfigurations-Datei ...................................................................................... 230
Erstellen von E-Mails ............................................................................................................... 231
Name der E-Mail-Vorlagendatei ................................................................................................. 232
Struktur der E-Mail-Vorlagendatei .............................................................................................. 233
Einfügen von Echtzeit-Steuerungswerten .................................................................................. 235
Versenden einer E-Mail............................................................................................................ 238
Versenden mittels Systemfunktion ............................................................................................. 239
Beispielprogramm ...................................................................................................................... 240
Register ..................................................................................................................................... 242
Registerübersicht ....................................................................................................................... 243
Registerbeschreibung ................................................................................................................ 244
Modbus/TCP ............................................................................................................................. 247
Modbus/TCP-Server ................................................................................................................. 248
Adressierung .............................................................................................................................. 249
Unterstützte Kommandos - Class 0 ........................................................................................... 250
Unterstützte Kommandos - Class 1 ........................................................................................... 251
7
Inhaltsverzeichnis
11.7.2
11.8
11.8.1
11.8.2
11.8.3
11.9
12
Automatisches Kopieren von Steuerungsdaten
12.1
12.2
12.3
12.4
13
310
Funktionsweise ....................................................................................................................... 312
AutoCopy-Funktion starten........................................................................................................ 313
AutoCopy-Funktion ausführen .................................................................................................. 314
Betriebsart AutoCopy beenden ................................................................................................. 315
Die Datei "autocopy.ini" .......................................................................................................... 316
Die Sektion [OPTIONS] ............................................................................................................. 317
Die Kommandosektionen .......................................................................................................... 318
Beispiel für eine Kommandodatei ............................................................................................. 326
Protokolldatei .......................................................................................................................... 328
Dateiinhalt ................................................................................................................................. 329
Datendateien ............................................................................................................................ 330
Dateiformat ................................................................................................................................ 331
Betriebssystem-Update
13.1
14
Unterstützte Kommandos - Class 2 .......................................................................................... 252
Modbus/TCP-Client ................................................................................................................. 253
Systemfunktion 65: Azyklisch Register lesen ............................................................................ 255
Systemfunktion 67: Azyklisch Register lesen ............................................................................ 257
Systemfunktion 66: Azyklisch Register schreiben ..................................................................... 259
Systemfunktion 68: Azyklisch Register schreiben ..................................................................... 261
Applikationsbeispiel ................................................................................................................... 263
Freiprogrammierbare IP-Schnittstelle ................................................................................... 266
Programmierung ..................................................................................................................... 268
Initialisieren der freiprogrammierbaren IP-Schnittstelle ............................................................ 269
Verbindung öffnen ..................................................................................................................... 270
Daten senden ............................................................................................................................ 274
Daten empfangen ...................................................................................................................... 276
Verbindung schließen ................................................................................................................ 279
Register .................................................................................................................................... 280
Registernummern ...................................................................................................................... 281
Registerbeschreibung ............................................................................................................... 282
Programmbeispiele ................................................................................................................. 285
Server ........................................................................................................................................ 286
Client ......................................................................................................................................... 290
Freiprogrammierbare CAN-PRIM-Schnittstelle .................................................................... 294
Funktion der CAN-PRIM-Schnittstelle ....................................................................................... 295
Einschränkungen der CAN-PRIM-Schnittstelle ......................................................................... 296
Programmierung der CAN-PRIM-Schnittstelle .......................................................................... 297
Interne Prozesse der CAN-PRIM-Schnittstelle ......................................................................... 300
Registerbeschreibung der CAN-PRIM-Schnittstelle.................................................................. 301
Beispiel zur CAN-PRIM-Schnittstelle ........................................................................................ 307
333
Update des Betriebssystems des Bediengeräts .................................................................. 334
Betriebssystem-Update mit JetSym .......................................................................................... 335
Betriebssystem-Update über FTP ............................................................................................. 336
Automatisches Betriebssystem-Update von SD-Karte und USB-Stick ..................................... 337
Betriebssystem-Update aus dem Anwenderprogramm ............................................................ 338
Anwenderprogramm
341
Anwenderprogramm laden ........................................................................................................ 342
Standardablage des Anwenderprogramms ............................................................................... 343
Anwenderprogramm auf der SD-Karte ablegen ........................................................................ 344
8
Jetter AG
JVM-407
15
Inhaltsverzeichnis
Kurz-Referenz JVM-407
Anhang
A:
B:
Jetter AG
347
351
Technische Daten ..................................................................................................................... 352
Technische Daten....................................................................................................................... 353
Mechanische Abmessungen ...................................................................................................... 355
Betriebsparameter Umwelt und Mechanik ................................................................................. 358
Betriebsparameter EMV ............................................................................................................. 359
Index .......................................................................................................................................... 360
9
JVM-407
1
Sicherheitshinweise
Sicherheitshinweise
Einleitung
Dieses Kapitel enthält die allgemeinen Sicherheitshinweise und warnt, wenn
erforderlich, vor Restgefahren. Außerdem enthält es auch Hinweise zur EMV.
Inhalt
Thema
Seite
Grundlegende Sicherheitshinweise .............................................................. 12
Hinweise zur EMV ........................................................................................ 14
Jetter AG
11
1 Sicherheitshinweise
Grundlegende Sicherheitshinweise
Einleitung
Das Gerät erfüllt die geltenden Sicherheitsbestimmungen und Normen. Auf die
Sicherheit der Anwender wurde besonderer Wert gelegt.
Für den Anwender gelten zusätzlich die folgenden Vorschriften:
 einschlägigen Unfallverhütungsvorschriften
 allgemein anerkannten sicherheitstechnischen Regeln
 EG-Richtlinien oder sonstigen länderspezifischen Bestimmungen
Bestimmungsgemäße
Verwendung
Die bestimmungsgemäße Verwendung beinhaltet das Vorgehen gemäß dieser
Betriebsanleitung.
Das Gerät ist zum Einbau in Nutzfahrzeugen und mobilen Arbeitsmaschinen
bestimmt. Das Gerät JVM-407 ist ein Bediengerät mit integrierter Steuerung
zum Datenaustausch mit Peripheriegeräten.
Das Bediengerät JVM-407 erfüllt die Anforderungen der KFZ-Richtlinie für
elektrische/elektronische Unterbaugruppen.
Das Bediengerät JVM-407 darf nur innerhalb der angegebenen Grenzen der
technischen Daten betrieben werden. Aufgrund der niedrigen Betriebsspannung des Bediengeräts JVM-407 fällt dieses unter die Kategorie SELV (Safety
Extra Low Voltage). Das Bediengerät JVM-407 fällt also nicht unter die
EG-Niederspannungsrichtlinie.
Nicht bestimmungsgemäße Verwendung
Verwenden Sie das Gerät nicht in technischen Systemen, für die eine hohe
Ausfallsicherheit vorgeschrieben ist, wie z. B. bei Seilbahnen und Flugzeugen.
Das Gerät JVM-407 ist kein Sicherheitsbauteil gemäß Maschinenrichtlinie
2006/42/EG. Deshalb ist der Einsatz des Geräts für sicherheitsrelevante Aufgaben im Sinne des Personenschutzes ungeeignet und unzulässig.
Soll das Gerät bei Umgebungsbedingungen betrieben werden, die von den
zulässigen Betriebsbedingungen abweichen, ist mit der Jetter AG vorher
Rücksprache zu halten.
Personalqualifikation
Je nach Produktlebenszyklus ergeben sich andere Anforderungen an das
Personal. Diese müssen erfüllt sein, um einen sicheren Umgang mit dem
Gerät in den jeweiligen Produktlebensphasen gewährleisten zu können.
12
Produktlebensphase
Mindestanforderung an das Personal
Transport / Lagerung:
Geschultes und eingewiesenes Personal mit Kenntnissen im richtigen Umgang mit elektrostatisch gefährdeten Bauelementen.
Montage / Installation:
Geschultes Fachpersonal mit elektrotechnischer
Ausbildung im Bereich Fahrzeugtechnik wie z. B.
KFZ-Mechatroniker/in.
Inbetriebnahme / Programmierung:
Geschultes und eingewiesenes Fachpersonal mit
weit reichenden Kenntnissen und Erfahrung in den
Bereichen Fahrzeugtechnik / Automatisierung wie
z. B. Fahrzeugtechniker/in für Arbeitsmaschinen.
Betrieb:
Geschultes, eingewiesenes und beauftragtes Personal mit Kenntnissen im richtigen Umgang mit elektronischen Geräten für Arbeitsmaschinen.
Jetter AG
JVM-407
Sicherheitshinweise
Produktlebensphase
Mindestanforderung an das Personal
Außerbetriebnahme / Stilllegung:
Geschultes Fachpersonal mit elektrotechnischer
Ausbildung im Bereich Fahrzeugtechnik wie z. B.
KFZ-Mechatroniker/in.
Umbauten und Veränderungen am Gerät
Aus Sicherheitsgründen sind keine Umbauten und Veränderungen am
Gerät und dessen Funktion gestattet.
Nicht ausdrücklich durch die Jetter AG genehmigte Umbauten am Gerät führen zum Verlust jeglicher Haftungsansprüche gegen die Firma Jetter AG.
Die Originalteile sind speziell für das Gerät konzipiert. Teile und Ausstattungen anderer Hersteller sind von uns nicht geprüft und deshalb
auch nicht freigegeben.
Ihr An- und Einbau kann die Sicherheit und einwandfreie Funktion des Geräts
beeinträchtigen.
Für Schäden, die durch die Verwendung von nicht originalen Teilen und Ausstattungen entstehen, ist jegliche Haftung durch die Firma Jetter AG ausgeschlossen.
Transport
Das Gerät JVM-407 enthält elektrostatisch gefährdete Bauelemente, die durch
unsachgemäße Behandlung beschädigt werden können.
Der Transport des Geräts JVM-407, insbesondere auf dem Postweg, sollte
daher nur in Original-Verpackung bzw. geeigneter elektrostatischer Schutzverpackung erfolgen.
 Schützen Sie das Gerät JVM-407 vor äußeren Schlag- und Stoßeinwir
kungen durch geeignete Umverpackung.
Prüfen Sie bei beschädigter Verpackung das Gerät auf sichtbare Schäden.
Informieren Sie den Transporteur und gegebenenfalls den Hersteller.
Einlagerung
Beachten Sie bei der Einlagerung des Geräts JVM-407 die klimatischen Bedingungen aus den technischen Daten.
Reparatur und Wartung
Reparaturen an dem Gerät dürfen nicht vom Betreiber selbst durchgeführt
werden. Das Gerät enthält keine vom Betreiber reparierbaren Teile.
Das Gerät ist zur Reparatur an die Firma Jetter AG einzuschicken.
Entsorgung
Für die Entsorgung des Gerätes gelten für den Standort der Betreiberfirma die
Umweltrichtlinien des jeweiligen Landes.
Jetter AG
13
1 Sicherheitshinweise
Hinweise zur EMV
Verdrahtungsvorschrift
CAN-Kabel
Um die Anforderungen an die EMV zu erfüllen, muss die Abschirmung des
CAN-Kabels mit dem Modulgehäuse verbunden werden. Der alleinige Anschluss des Pins 16 (Abschirmung) ist für eine wirkungsvolle Abschirmung
nicht geeignet.
Verbinden Sie die Abschirmung des CAN-Kabels mit dem Gewindebolzen des
Modulgehäuses:
Es bedeutet:
Nummer
Verdrahtungsvorschrift
Videokabel
14
Teil
1
Gewindebolzen des Modulgehäuses
2
Unterlegscheibe
3
Kabelschuh
4
Sicherungsscheibe
5
Mutter
Um die Anforderungen an die EMV zu erfüllen, muss die Abschirmung des
Videokabels mit dem Modulgehäuse verbunden werden. Die Masseanschlüsse (Pin 4 und Pin 7) sind für eine wirkungsvolle Abschirmung nicht geeignet.
Verbinden Sie die Abschirmung des Videokabels mit dem Gewindebolzen des
Modulgehäuses:
Jetter AG
JVM-407
Sicherheitshinweise
Es bedeutet:
Nummer
Jetter AG
Teil
1
Gewindebolzen des Modulgehäuses
2
Unterlegscheibe
3
Kabelschuh
4
Sicherungsscheibe
5
Mutter
15
JVM-407
2
Produktbeschreibung und Geräteaufbau
Produktbeschreibung und Geräteaufbau
Einleitung
Dieses Kapitel beschreibt den Geräteaufbau und den Aufbau der Bestellbezeichnung mit ihren Optionen.
Inhalt
Thema
Seite
Produktbeschreibung JVM-407 .................................................................... 18
Teile und Schnittstellen ................................................................................. 19
Bestellbezeichnung / Optionen ..................................................................... 23
Mechanische Abmessungen......................................................................... 24
Jetter AG
17
2 Produktbeschreibung und Geräteaufbau
Produktbeschreibung JVM-407
Das Bediengerät
JVM-407
Das Bediengerät JVM-407 ist aufgrund seiner kompakten Bauform und der
integrierten Steuerung vielseitig einsetzbar.
Bei Bedarf kann auch ein komplettes Kombiinstrument durch das JVM-407
ersetzt werden.
Das JVM-407 wurde speziell für den rauen Einsatz in Nutzfahrzeugen und
mobilen Arbeitsmaschinen entwickelt.
Produkteigenschaften
In folgender Liste sind die Produkteigenschaften dargestellt:
18





Display: 7"-TFT mit LED-Backlight



Nachtbeleuchtung einstellbar






nicht flüchtige Register: 6.000







1 digitaler und gesicherter Ausgang mit 3 A
Auflösung: WVGA (800 x 480 Pixel)
4 Funktionstasten
1 Digipot
10 Zustands-LEDs ansteuerbar über 10 digitale
Eingänge, ausgelegt auf die Spannungsversorgung 12 V und 24 V am Fahrzeug
Buzzer (93 dB)
Leistungsfähige Programmiersprache JetSym
STX
RAM-Speicher: 16 MByte
Flash-Speicher: 64 MByte
1 Ethernet-Schnittstelle
3 CAN-2.0B-Schnittstellen
Weitere 5 digitale Eingänge zur freien Verfügung, ausgelegt auf die Spannungsversorgung
12 V und 24 V am Fahrzeug
1 FBAS-Videoeingang für die Rückfahrkamera
1 USB-Schnittstelle
SD-Karten-Slot für SD-Karten bis 8 GByte
Batteriegepufferte Echtzeituhr
Integrierter Webserver / E-Mail versenden
Modbus/TCP
Jetter AG
JVM-407
Produktbeschreibung und Geräteaufbau
Teile und Schnittstellen
Einleitung
Dieses Kapitel beschreibt die Teile und Schnittstellen des JVM-407.
Bedienelemente
Die Abbildung zeigt die Bedienelemente auf der Frontseite.
1
2
3
Nummer
Jetter AG
6
4
5
Bedienelement
1
USB-Buchse hinter Abdeckkappe
2
Funktionstaste F1
3
Funktionstaste F2
4
Funktionstaste F3
5
Funktionstaste F4
6
Digipot (Drehregler und Taster)
Die Funktionen des Digipots und
der Funktionstasten werden kundenseitig im Programm definiert.
19
2 Produktbeschreibung und Geräteaufbau
Anzeigen
Die Abbildung zeigt die Anzeigen auf der Frontseite.
1
2
7
11
3
8
4
9
5
10
Nummer
20
6
Bedienelement bzw. Anzeige
1
LED 1
2
LED 2
3
LED 3
4
LED 4
5
LED 5
6
LED 6
7
LED 7
8
LED 8
9
LED 9
10
LED 10
11
Display
Die LEDs durchleuchten die
Piktogramme auf der Display-Fläche.
Jetter AG
JVM-407
Anschlüsse und Teile auf
der Rückseite
Produktbeschreibung und Geräteaufbau
Die Abbildung zeigt die Anschlüsse und Teile auf der Rückseite.
Nummer
Anschlüsse und Teile auf
der Unterseite
Jetter AG
Anschluss bzw. Teil
1
Anschlussstecker CANopen®
2
Typenschild
3
Anschlussstecker Video
4
Anschlussstecker Spannungsversorgung, Ein- und Ausgänge
5
4 Gewindebolzen für Montageblech
6
Pufferbatterie auf der Platine
7
Summer
Die Abbildung zeigt die Anschlüsse und Teile auf der Unterseite.
21
2 Produktbeschreibung und Geräteaufbau
Nummer
LEDs auf der Unterseite
1
Anschlussbuchse für das Ethernet-Kabel
2
Einschub für SD-Karte
Die Abbildung zeigt die LEDs der Anschlussbuchse für das Ethernet-Kabel.
Nummer
22
Anschluss bzw. Teil
Farbe
Bedeutung
1
gelb
blinkt bei Aktivität (Datentransfer)
2
grün
leuchtet bei hergestellter Verbindung
Jetter AG
JVM-407
Produktbeschreibung und Geräteaufbau
Bestellbezeichnung / Optionen
Bestellbezeichnung
Vom JVM-407 gibt es die folgenden Varianten. Sie sind unter folgenden Teilenummern bei der Jetter AG bestellbar.
Teilenummer
Jetter AG
Bestellbezeichnung
Name
10000821
JVM-407-K00-O01
Terminal auf Tragarm
10000822
JVM-407-K00-O12
Terminal zum Einbau
23
2 Produktbeschreibung und Geräteaufbau
Mechanische Abmessungen
Einleitung
Dieses Kapitel beschreibt die mechanischen Abmessungen des JVM-407 und
die Bedingungen für den Einbau.
Mechanische
Abmessungen
Die Abbildung zeigt die Abmessungen des JVM-407.
Zulässige Einbaulagen
Die Abbildung zeigt die zulässigen Einbaulagen.
24
Jetter AG
JVM-407
Produktbeschreibung und Geräteaufbau
Es bedeutet:
Nummer
Verbotene Einbaulagen
Zulässige Einbaulage
1
waagerecht oder geneigt
2
senkrecht oder geneigt
Die Abbildung zeigt die verbotene Einbaulage.
Das Bediengerät JVM-407 ist rückseitig nicht gegen Feuchtigkeit, insbesondere Spritz- oder Tropfwasser, geschützt. Sollte am Einbauort Feuchtigkeit
nicht auszuschließen sein, ist diese Einbauart (siehe Bild oben) nicht zulässig.
Die Ansammlung von Feuchtigkeit und Tropfwasser im Gerät kann zu Kriechströmen und Korrosion führen.
Platzbedarf für Einbau
und Service
Die Abbildung zeigt den Platzbedarf für das Bediengerät JVM-407.
Halten Sie den Raum um das Gehäuse für den Servicefall frei.
 Die Stecker müssen sich jederzeit abziehen lassen.
 Die SD-Karte muss sich jederzeit austauschen lassen.
 Die Flügelmutter der SD-Karten-Sicherung muss sich leicht lösen lassen.
Es bedeutet:
Jetter AG
25
2 Produktbeschreibung und Geräteaufbau
Nummer
Platzbedarf für Überhitzungsschutz
Beschreibung
1
Stecker für CANopen®, Video, Spannungsversorgung, Ein- und Ausgänge
2
Flügelmutter zur Sicherung der SD-Karte
3
Netzwerkstecker
4
SD-Karte
Die Abbildung deutet den Sicherheitsabstand für den Überhitzungsschutz an.
Beachten Sie:
 Das JVM-407 erhöht die Umgebungstemperatur durch Wärmeabstrahlung
unter Last.
Die Leistungsaufnahme beträgt 7,8 W.
 Das JVM-407 arbeitet störungsfrei bei einer Umgebungstemperatur bis
+65 °C.
Bedenken Sie die Wärmeabstrahlung des Geräts insbesondere beim Einbau
in kritischer Umgebung:




Einbauort
26
In der Nähe des Kraftstofftanks
In der Nähe der Kraftstoffleitung
In der Nähe brennbarer Fahrzeugteile
In der Nähe thermisch verformbarer Fahrzeugteile
Das JVM-407 ist in der Fahrerkabine einzubauen.
Jetter AG
JVM-407
3
Identifikation des JVM-407
Identifikation des JVM-407
Zweck des Kapitels
Dieses Kapitel unterstützt die Identifikation des JVM-407 in folgenden Punkten:
 Bestimmung der Hardware-Revision.
 Auslesen des elektronischen Typenschilds EDS. Im EDS sind zahlreiche
fertigungsrelevante Daten abgelegt.
 Bestimmung der Betriebssystem-Version der Steuerung und der Software-Komponenten.
Voraussetzungen
Zur Identifikation des Bediengeräts JVM-407 müssen folgende Voraussetzungen erfüllt sein:
 Die Steuerung ist mit einem PC verbunden.
 Auf dem PC ist die Programmier-Software JetSym ab der Version 4.1.2 installiert.
Infos für die Hotline
Falls Sie sich wegen eines Problems an die Hotline der Jetter AG wenden
müssen, halten Sie folgende Informationen des Bediengeräts JVM-407 bereit:
 Seriennummer
 Betriebssystem-Version des Bediengeräts
 Hardware-Revision
Inhalt
Thema
Seite
Identifikation über das Typenschild .............................................................. 28
Versionsregister ............................................................................................ 30
Jetter AG
27
3 Identifikation des JVM-407
3.1 Identifikation über das Typenschild
Einleitung
Jedes Bediengerät JVM-407 identifiziert sich über das Typenschild am Gehäuse. Sie benötigen die Daten der Hardware-Revision und die Seriennummer, falls Sie sich wegen eines Problems an die Hotline der Jetter AG wenden
müssen.
Inhalt
Thema
Seite
Typenschild ................................................................................................... 29
28
Jetter AG
JVM-407
Identifikation des JVM-407
Typenschild
Typenschild
Das Typenschild eines Bediengeräts JVM-407 beinhaltet folgende Informationen:
Nummer
Jetter AG
Beschreibung
1
Seriennummer
2
Hardware-Revision
3
Bediengerätename
4
Teilenummer
29
3 Identifikation des JVM-407
3.2 Versionsregister
Einleitung
Das Betriebssystem des JVM-407 stellt einige Register zur Verfügung, über
welche die Versionsnummern des Betriebssystems und seiner Komponenten
gelesen werden können. Sie benötigen diese Angaben, falls Sie sich wegen
eines technischen Problems an die Hotline der Jetter AG wenden.
Inhalt
Thema
Seite
Software-Versionen ....................................................................................... 31
30
Jetter AG
JVM-407
Identifikation des JVM-407
Software-Versionen
Einleitung
Das Bediengerät JVM-407 beinhaltet Software mit eindeutigen Versionsnummern, die über Spezialregister lesbar sind.
Format von SoftwareVersionsnummern
Die Software-Versionsnummern des JVM-407 werden durch vier Zahlen dargestellt.
1
.
2
.
3
.
4
Teil
Funktion
1
Major- bzw. Hauptversionsnummer
2
Minor- bzw. Nebenversionsnummer
3
Branch- bzw. Zwischenversionsnummer
4
Build-Versionsnummer
Freigegebene Version
Bei einer freigegebenen Version haben die Branch- und die
Build-Versionsnummer den Wert 0.
Registerübersicht
Zum Auslesen der Software-Versionen werden folgende Register verwendet:
Register
Versionsnummern im
JetSym Setup
200168
Version des Bootloaders
200169
Version des Betriebssystems
210001
Version der Ausführungseinheit für das
STX-Anwenderprogramm (JetVM-Version)
Die folgende Grafik zeigt ein Setup-Fenster in JetSym, das die Versionsregister darstellt. Wählen Sie zur Anzeige einer Versionsnummer im JetSym Setup
das Format "IP-Adresse" aus.
Nummer
1
Jetter AG
Beschreibung
Teil
V 1.15.01.00
Funktion
Betriebssystem-Version des Bediengeräts.
Wird von JetSym in der Titelzeile eines jeden
Setup-Fensters angezeigt.
31
JVM-407
4
Montage und Installation des JVM-407
Montage und Installation des JVM-407
Zweck des Kapitels
Dieses Kapitel unterstützt die Installation des Bediengeräts JVM-407 im
Fahrzeug in folgenden Punkten:
 Planung der Verdrahtung des JVM-407
 Montage
 Konfiguration der IP-Schnittstelle des JVM-407
Inhalt
Thema
Seite
Schnittstellen ................................................................................................ 34
Schnittstellen an der Mittelkonsole bei montiertem Tragarm ....................... 54
Montage des JVM-407.................................................................................. 62
IP-Konfiguration ............................................................................................ 68
Jetter AG
33
4 Montage und Installation des JVM-407
4.1 Schnittstellen
Stecker für Spannungsversorgung und digitale
Ein-/Ausgänge
Ethernet-Schnittstelle
Der Stecker hat folgende Funktion:
 Spannungsversorgung des JVM-407
 Digitale Ein-/Ausgänge
Die RJ45-Buchse hat folgende Funktion:
 Ethernet-Schnittstelle zu einem PC
Drei CAN-Schnittstellen
Die CAN-Schnittstellen haben die folgende Funktion:
 Schnittstelle CAN 0: Konfigurierbar als CAN-PRIM-Schnittstelle
 Schnittstelle CAN 0 bis CAN 2: Konfigurierbar als
CANopen®-Busschnittstelle
Stecker für Videokamera
Der Stecker hat folgende Funktion:
 Anschlussmöglichkeit einer Videokamera, z. B. einer Rückfahrkamera, mit
einer Betriebsspannung von 12 VDC.
Inhalt
Thema
Seite
Beispiel einer Verdrahtung ............................................................................ 35
Anschluss Spannungsversorgung ................................................................ 36
Anschluss digitale Ein- und Ausgänge .......................................................... 38
Ausschaltverzögerung des Bediengeräts ..................................................... 41
Ethernet-Schnittstelle .................................................................................... 43
CAN-Schnittstelle .......................................................................................... 45
Spezifikation - CAN-Buskabel ....................................................................... 49
Anschluss Video ........................................................................................... 51
34
Jetter AG
JVM-407
Montage und Installation des JVM-407
Beispiel einer Verdrahtung
Einleitung
Dieses Kapitel beschreibt anhand eines Beispiels, wie das JVM-407 angeschlossen wird.
Beispiel
Die Abbildung zeigt ein Beispiel für eine Verdrahtung.
Es bedeutet:
Jetter AG
1
CANopen®-Bus
2
Videokamera
3
Spannungsversorgung (Batterie)
4
Zündschloss
5
Eingang zur Ansteuerung der Display-LEDs
6
Ausgang, z. B. zur Ansteuerung eines Bypass-Relais
35
4 Montage und Installation des JVM-407
Anschluss Spannungsversorgung
Einleitung
Dieses Kapitel beschreibt die Pinbelegung des Anschlusssteckers für die
Spannungsversorgung des JVM-407. Steckertyp ist der 22-polige Stecker
Molex Micro-Fit 3.0 (Hersteller-Artikel-Nr. 43045-2218).
Verwendung des
Steckers
Dieser Stecker wird auch für die digitalen Ein- und Ausgänge benutzt.
Spannungsversorgung
Die Abbildung zeigt die Pinbelegung des Anschlusssteckers für die Spannungsversorgung (Blick auf die Kabelseite):
Die Pinbelegung ist wie folgt:
Pin
Funktion
Klemmenbezeichnung in KFZ
1
Versorgungsspannung +U BATT
(+12 VDC bzw. +24 VDC)
KL 30
2
Zündung (+)
KL 15
11
GND
KL 31
12
Versorgungsspannung U BATT
(+12 VDC bzw. +24 VDC)
KL 30
22
GND
KL 31
Wichtiger Hinweis zur
Versorgungsspannung
Um die Strombelastung der Pins 1 und 12 sowie der Pins 11 und 22 zu halbieren, sind alle der vier Pins entsprechend obiger Pinbelegung an die Versorgungsspannung anzuschließen.
Hinweis zur Zündung
Zum Starten des JVM-407 muss Pin 2 (Zündung +) mit Pin 1 oder Pin 12
verbunden sein. Das Steuersignal Zündung (+) wird mit der Schlüsselstellung
"Zündung EIN" verbunden. In Schlüsselstellung "Zündung AUS" kann sich das
JVM-407 selbstständig im eingeschalteten Zustand halten.
36
Jetter AG
JVM-407
Montage und Installation des JVM-407
Technische Daten
Parameter
Beschreibung
Nennspannung
DC 12 V bzw. DC 24 V
Zulässiger Spannungsbereich
9 ... 32 VDC
Eingangsstrom ohne Kamera
typ. 650 mA bei DC 12 V
Eingangsstrom ohne Kamera
typ. 320 mA bei DC 24 V
Leistungsaufnahme ohne Kamera
7,8 W
Hinweis zur
Stromaufnahme
Die Stromaufnahme beim Einschalten des JVM-407 ist kurzzeitig höher. Es
sollte mindestens das 3-fache des benötigten typischen Stromes bereitgestellt
werden, um einen Start des JVM-407 zu gewährleisten.
Gegenstücke
Kompatible Gegenstücke des 22-poligen Steckers Molex Micro-Fit 3.0 sind die
folgenden Komponenten:
Jetter AG
Hersteller
Molex
Hersteller-Artikel-Nr. Gehäuse
43025-2200
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
43030-0007
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
Hersteller
Würth
Hersteller-Artikel-Nr. Gehäuse
662 022 113 322
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
662 001 137 22
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
2
2
37
4 Montage und Installation des JVM-407
Anschluss digitale Ein- und Ausgänge
Einleitung
Dieses Kapitel beschreibt die Pinbelegung des Anschlusssteckers für die Einund Ausgänge am JVM-407. Steckertyp ist der 22-polige Stecker Molex
Micro-Fit 3.0 (Hersteller-Artikel-Nr. 43045-2218).
Verwendung des
Steckers
Dieser Stecker wird auch für die Spannungsversorgung benutzt.
Pinbelegung Ein- und
Ausgänge
Die Abbildung zeigt die Pinbelegung des Anschlusssteckers für Ein- und Ausgänge (Blick auf die Kabelseite):
Die Pinbelegung ist wie folgt:
Pin
38
Funktion
3
Ausgang 1
4
Eingang 2
5
Eingang 4
6
Eingang 6
7
Eingang 8
8
Eingang 10
9
Eingang 12
10
Eingang 14
11
GND
12
Versorgungsspannung (+12 VDC bzw. +24 VDC)
13
Ausgang 1
14
Eingang 1
15
Eingang 3
16
Eingang 5
17
Eingang 7
18
Eingang 9
Jetter AG
JVM-407
Montage und Installation des JVM-407
Pin
Funktion
19
Eingang 11
20
Eingang 13
21
Eingang 15
Hinweis zum Ausgang 1
Weil über den Ausgang 1 ein Strom bis zu 3 A gezogen werden kann, ist der
Ausgang 1 auf die Pins 3 und 13 gelegt worden. Dies dient zur Halbierung der
Strombelastung des einzelnen Pins. Deshalb sind beide Pins anzuschließen.
Hinweis zu den LEDs
Weil die Eingänge 1 bis 10 direkt mit LEDs verbunden sind, ermöglicht das
eine Anzeige des Fahrzeugstatus selbst bei abgeschaltetem Display. Ein
möglicher Fahrzeugstatus kann z. B. Fernlicht, Blinker, Störung, etc. sein.
Technische Daten
digitale Eingänge
Technische Daten
digitale Ausgänge
Jetter AG
Parameter
Beschreibung
Art der Eingänge
Transistor, npn
Nennspannung
DC 9 ... 32 V
Schaltschwelle AUS
~ 8,5 V, 10 mA
Schaltschwelle EIN
~ 8,3 V, min. 50 mA
Potentialtrennung
keine
Parameter
Beschreibung
Art der Ausgänge
Transistor, pnp
Nennspannung
Versorgungsspannung
Signalspannung AUS
< 1,0 V
Signalspannung EIN
UVersorgung - 0,025 V
Laststrom
max. 3,0 A
39
4 Montage und Installation des JVM-407
Gegenstücke
40
Kompatible Gegenstücke des 22-poligen Steckers Molex Micro-Fit 3.0 sind die
folgenden Komponenten:
Hersteller
Molex
Hersteller-Artikel-Nr. Gehäuse
43025-2200
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
43030-0007
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
Hersteller
Würth
Hersteller-Artikel-Nr. Gehäuse
662 022 113 322
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
662 001 137 22
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
2
2
Jetter AG
JVM-407
Montage und Installation des JVM-407
Ausschaltverzögerung des Bediengeräts
Einleitung
Dieses Kapitel beschreibt, wie die Ausschaltverzögerung des Bediengeräts
JVM-407 realisiert wird.
Ziel
Nach dem Ausschalten der Zündung soll das Bediengerät noch eine bestimmte Zeit lang eingeschaltet bleiben. Erst nach Ablauf dieser Zeit soll es
sich selbsttätig ausschalten.
Dauer der Ausschaltverzögerung
Die Dauer der Ausschaltverzögerung wird im Programm des JVM-407 definiert.
Verdrahtung
Die Abbildung zeigt die Verdrahtung für die Ausschaltverzögerung (Blick auf
die Kabelseite der Buchse):
2
3
4
1
Es bedeutet:
Jetter AG
1
Batterie
2
Zündschloss
3
Bypass-Relais
4
Fahrzeug
41
4 Montage und Installation des JVM-407
Pinbelegung
Die Pinbelegung ist wie folgt:
Pin
42
Funktion
Klemmenbezeichnung in KFZ
1
Versorgungsspannung +U BATT
(+12 VDC bzw. +24 VDC)
KL 30
2
Zündung (+)
KL 15
3
Bypass-Relais
-
11
GND
KL 31
12
Versorgungsspannung +U BATT
(+12 VDC bzw. +24 VDC)
KL 30
22
GND
KL 31
Jetter AG
JVM-407
Montage und Installation des JVM-407
Ethernet-Schnittstelle
Einleitung
Dieses Kapitel beschreibt die Pinbelegung der Anschlussbuchse für das
Ethernet-Kabel am Bediengerät JVM-407.
Pinbelegung EthernetSchnittstelle
Die Abbildung zeigt die Pinbelegung der Anschlussbuchse für das Ethernet-Kabel:
Die Pinbelegung ist wie folgt:
Pin
Funktion
1
TX+
2
TX-
3
RX+
6
RX-
Technische Daten
Kabel für EthernetSchnittstelle
Parameter
Klemmenart
RJ45-Buchse
Anzahl Ports
1
Übertragungsrate
10 MBit/s, 100 MBit/s
auto cross over
ja
Zum Anschluss von Geräten an die Ethernet-Schnittstelle können Sie folgende
Kabel separat bei der Jetter AG bestellen:
Artikel-Nr.
Jetter AG
Beschreibung
Artikel
60537500
Patchkabel 1:1, 1 m grau Hirose, Cat 5e, geschirmt
60854512
Patchkabel 1:1, 2 m grau Hirose, Cat 5e, geschirmt
60854514
Patchkabel 1:1, 5 m grau Hirose, Cat 5e, geschirmt
60854515
Patchkabel 1:1, 10 m grau Hirose, Cat 5e, geschirmt
60854078
Patchkabel Cross over, 1 m grau Hirose, Cat 5e, geschirmt
43
4 Montage und Installation des JVM-407
Artikel-Nr.
44
Artikel
60851216
Patchkabel Cross over, 3 m blau Hirose, Cat 5e, geschirmt
60854079
Patchkabel Cross over, 5 m grau Hirose, Cat 5e, geschirmt
Jetter AG
JVM-407
Montage und Installation des JVM-407
CAN-Schnittstelle
Einleitung
Dieses Kapitel beschreibt die Pinbelegung des Anschlusssteckers für den
CANopen®-Bus am JVM-407. Steckertyp ist der 16-polige Stecker Molex
Micro-Fit 3.0 (Hersteller-Artikel-Nr. 43045-1618).
Pinbelegung
CANopen® 0
Die Abbildung zeigt die Pinbelegung des Anschlusssteckers für den
CANopen®-Bus 0 (Blick auf die Kabelseite):
Die Pinbelegung ist wie folgt:
Pin
Jetter AG
Funktion
1
IN_CAN_0_H
2
TERM_CAN_0
3
OUT_CAN_0_L
9
IN_CAN_0_L
10
OUT_CAN_0_H
16
Abschirmung
45
4 Montage und Installation des JVM-407
Pinbelegung
CANopen® 1
Die Abbildung zeigt die Pinbelegung des Anschlusssteckers für den
CANopen®-Bus 1 (Blick auf die Kabelseite):
Die Pinbelegung ist wie folgt:
Pin
Pinbelegung
CANopen® 2
46
Funktion
11
IN_CAN_1_H
4
IN_CAN_1_L
12
TERM_CAN_1
5
OUT_CAN_1_H
13
OUT_CAN_1_L
16
Abschirmung
Die Abbildung zeigt die Pinbelegung des Anschlusssteckers für den
CANopen®-Bus 2 (Blick auf die Kabelseite):
Jetter AG
JVM-407
Montage und Installation des JVM-407
Die Pinbelegung ist wie folgt:
Pin
Funktion
6
IN_CAN_2_H
7
TERM_CAN_2
8
OUT_CAN_2_L
14
IN_CAN_2_L
15
OUT_CAN_2_H
16
Abschirmung
Busabschlusswiderstand
hinzuschalten
Um den im JVM-407 befindlichen Widerstand als Busabschlusswiderstand
hinzuzuschalten, ist der Pin TERM_CAN_x mit Pin OUT_CAN_x_H zu verbinden.
Abschirmung
Um die Anforderungen an die EMV zu erfüllen, muss die Abschirmung des
CAN-Kabels mit dem Modulgehäuse verbunden werden. Der alleinige Anschluss des Pins 16 (Abschirmung) ist für eine wirkungsvolle Abschirmung
nicht geeignet.
Verbinden Sie die Abschirmung des CAN-Kabels mit dem Gewindebolzen des
Modulgehäuses:
Es bedeutet:
Nummer
Jetter AG
Teil
1
Gewindebolzen des Modulgehäuses
2
Unterlegscheibe
3
Kabelschuh
4
Sicherungsscheibe
5
Mutter
47
4 Montage und Installation des JVM-407
Gegenstücke
48
Kompatible Gegenstücke des 16-poligen Steckers Molex Micro-Fit 3.0 sind die
folgenden Komponenten:
Hersteller
Molex
Hersteller-Artikel-Nr. Gehäuse
43025-1600
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
43030-0007
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
Hersteller
Würth
Hersteller-Artikel-Nr. Gehäuse
662 016 113 322
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
662 001 137 22
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
2
2
Jetter AG
JVM-407
Montage und Installation des JVM-407
Spezifikation - CAN-Buskabel
Schema der
CAN-Busverdrahtung
Die CANopen®-Geräte der Jetter AG werden entsprechend der folgenden
Abbildung verdrahtet.
IN_CAN_L
OUT_CAN_L
CAN_H
CAN_H
120 Ohm
120 Ohm
CAN_L
Nummer
IN_CAN_H
OUT_CAN_H
IN_CAN_L
OUT_CAN_L
IN_CAN_H
OUT_CAN_H
IN_CAN_L
IN_CAN_H
1
OUT_CAN_L
OUT_CAN_H
2
CAN_L
Beschreibung
1
CAN-Bus
2
CANopen®-Geräte der Jetter AG
Als Busabschlusswiderstand von 120 Ohm kann wahlweise ein im Gerät befindlicher Widerstand hinzugeschaltet werden.
Die Stichleitungslänge ist bei dieser Art von Verdrahtung praktisch Null.
Die Leitungen CAN_L und CAN_H müssen miteinander verdrillt sein.
Jetter AG
49
4 Montage und Installation des JVM-407
Spezifikation
CAN-Buskabel
Parameter
Beschreibung
Querschnitt
1000 kBaud: 0,25 ... 0,34 mm
2
500 kBaud: 0,34 ... 0,50 mm
2
250 kBaud: 0,34 ... 0,60 mm
2
125 kBaud: 0,50 ... 0,60 mm
Kapazität des Kabels
max. 60 pF/m
Spezifischer Widerstand
1000 kBaud: max. 70 Ω/km
2
500 kBaud: max. 60 Ω/km
250 kBaud: max. 60 Ω/km
125 kBaud: max. 60 Ω/km
Leitungslängen
50
Adernzahl
2
Schirmung
Gesamt, nicht paarig
Drillung
Adernpaar CAN_L und CAN_H verdrillt
Die maximal zulässige Leitungslänge ist abhängig von der verwendeten
Baudrate und der Anzahl der angeschlossenen CANopen®-Geräte.
Baudrate
Leitungslänge
Stichleitungslänge
GesamtStichleitungslänge
1000 kBaud
max. 25 m
max. 0,3 m
3m
500 kBaud
max. 100 m
max. 1,0 m
39 m
250 kBaud
max. 200 m
max. 3,0 m
78 m
125 kBaud
max. 200 m
-
-
Jetter AG
JVM-407
Montage und Installation des JVM-407
Anschluss Video
Einleitung
Dieses Kapitel beschreibt die Pinbelegung des Anschlusssteckers für die
Videokamera am JVM-407. Steckertyp ist der 8-polige Stecker Molex Micro-Fit
3.0 (Hersteller-Artikel-Nr. 43045-0818).
Pinbelegung Video
Die Abbildung zeigt die Pinbelegung des Anschlusssteckers für die Videokamera (Blick auf die Kabelseite):
Die Pinbelegung ist wie folgt:
Pin
Funktion
1
Versorgungsspannung (+12 VDC) z. B. für eine Kamera
2
Videosignal (+)
3
Abschirmung
4
Masse (GND)
5
Videosignal (-)
6
Masse (GND)
7
Videosignal (-)
8
Reserviert (nicht anschließen!)
Hinweis zum Videosignal
Wird kein differentielles Videosignal verwendet, so sind Videosignal (-) (Pin 7)
und GND (Pin 6) zu verbinden.
Abschirmung
Um die Anforderungen an die EMV zu erfüllen, muss die Abschirmung des
Videokabels mit dem Modulgehäuse verbunden werden. Die Masseanschlüsse (Pin 4 und Pin 7) sind für eine wirkungsvolle Abschirmung nicht geeignet.
Verbinden Sie die Abschirmung des Videokabels mit dem Gewindebolzen des
Modulgehäuses:
Jetter AG
51
4 Montage und Installation des JVM-407
Es bedeutet:
Nummer
Technische Daten
Gegenstücke
52
Teil
1
Gewindebolzen des Modulgehäuses
2
Unterlegscheibe
3
Kabelschuh
4
Sicherungsscheibe
5
Mutter
Parameter
Beschreibung
Spannungsversorgung für eine Kamera
DC 12 V, max. 1 A
Art des Videoeingangs
analoger, differentieller
FBAS-Videoeingang mit PAL-Signal
oder NTSC-Signal
Kompatible Gegenstücke des 8-poligen Steckers Molex Micro-Fit 3.0 sind die
folgenden Komponenten:
Hersteller
Molex
Hersteller-Artikel-Nr. Gehäuse
43025-0800
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
43030-0007
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
2
Jetter AG
JVM-407
Jetter AG
Montage und Installation des JVM-407
Hersteller
Würth
Hersteller-Artikel-Nr. Gehäuse
662 008 113 322
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
662 001 137 22
Anschließbarer Adernquerschnitt
0,2 ... 0,5 mm
(AWG 24 ... 20)
2
53
4 Montage und Installation des JVM-407
4.2 Schnittstellen an der Mittelkonsole bei montiertem
Tragarm
Verbindungskabel zur
Mittelkonsole
In diesem Kapitel ist der Aufbau der Verbindungskabel beschrieben, die schon
innerhalb des Tragarms verlegt sind, wenn das Bediengerät JVM-407 auf dem
Tragarm montiert ist.
Auch werden die Steckertypen beschrieben, die benötigt werden, um das
JVM-407 an der Mittelkonsole anzuschließen.
Für folgende Zwecke sind Verbindungskabel im Tragarm verlegt:




Spannungsversorgung
Digitale Ein-/Ausgänge
CANopen®-Schnittstellen
Video
Inhalt
Thema
Seite
Verbindungskabel Spannungsversorgung .................................................... 55
Verbindungskabel Ein- und Ausgänge .......................................................... 57
Verbindungskabel CANopen® ...................................................................... 59
Verbindungskabel Video ............................................................................... 61
54
Jetter AG
JVM-407
Montage und Installation des JVM-407
Verbindungskabel Spannungsversorgung
Verdrahtung
Die Abbildung zeigt die Verdrahtung der Spannungsversorgung im Tragarm
(Blick jeweils auf die Kabelseite):
Es bedeutet:
Pinbelegung
A
Anschlussstecker für das Bediengerät JVM-407
B
Anschlussstecker für die Mittelkonsole
Die Pinbelegung ist wie folgt:
Pin (A)
Verwendung
Anschlussstecker B
Spezifikation
Anschlussstecker B
Jetter AG
Funktion
Klemmenbezeichnung in KFZ
Pin (B)
1
+U BATT
KL 30
1
2
Zündung (+)
KL 15
3
11
GND
KL 31
21
12
+U BATT
KL 30
2
22
GND
KL 31
22
Dieser Stecker wird auch für die digitalen Ein- und Ausgänge benutzt.
Typ
AMP Junior Power Timer (male)
Anzahl der Pole
22
55
4 Montage und Installation des JVM-407
Gegenstück
56
Kompatibles Gegenstück des 22-poligen Steckers AMP Junior Power Timer ist
der folgende:
Hersteller
AMP
Hersteller-Artikel-Nr. Buchsengehäuse
929504-7
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
927771 (Bandware)
927779 (einzeln)
Anschließbarer Adernquerschnitt
0,5 ... 1,0 mm
(AWG 20 ... 16)
2
Jetter AG
JVM-407
Montage und Installation des JVM-407
Verbindungskabel Ein- und Ausgänge
Verdrahtung
Die Abbildung zeigt die Verdrahtung der digitalen Eingänge und des digitalen
Ausgangs im Tragarm (Blick jeweils auf die Kabelseite):
Es bedeutet:
Pinbelegung
A
Anschlussstecker für das Bediengerät JVM-407
B
Anschlussstecker für die Mittelkonsole
Die Pinbelegung ist wie folgt:
Pin (A)
Jetter AG
Funktion
Pin (B)
3
Ausgang 1
4
4
Eingang 2
7
5
Eingang 4
6
Eingang 6
7
Eingang 8
8
Eingang 10
9
Eingang 12
10
Eingang 14
11
GND
21
13
Ausgang 1
5
14
Eingang 1
6
15
Eingang 3
16
Eingang 5
17
Eingang 7
18
Eingang 9
Zur Ansteuerung der LEDs für die Piktogramm-Durchleuchtung auf der Display-Fläche
9
11
13
15
Zur freien Verwendung
Zur Ansteuerung der LEDs für die Piktogramm-Durchleuchtung auf der Display-Fläche
17
19
8
10
12
14
57
4 Montage und Installation des JVM-407
Pin (A)
Funktion
19
Eingang 11
20
Eingang 13
21
Eingang 15
Pin (B)
16
18
Zur freien Verwendung
20
Hinweis zum Ausgang 1
Weil über den Ausgang 1 die Zündspule angesteuert wird, die sehr viel Strom
zieht, ist der Ausgang 1 auf die Pins 3 und 13 (A) bzw. 4 und 5 (B) gelegt
worden. Dies dient zur Halbierung der Strombelastung des einzelnen Pins.
Deshalb sind beide Pins anzuschließen.
Verwendung
Anschlussstecker B
Dieser Stecker wird auch für die Spannungsversorgung benutzt.
Spezifikation
Anschlussstecker B
Gegenstück
58
Typ
AMP Junior Power Timer (male)
Anzahl der Pole
22
Kompatibles Gegenstück des 22-poligen Steckers AMP Junior Power Timer ist
der folgende:
Hersteller
AMP
Hersteller-Artikel-Nr. Buchsengehäuse
929504-7
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
927771 (Bandware)
927779 (einzeln)
Anschließbarer Adernquerschnitt
0,5 ... 1,0 mm
(AWG 20 ... 16)
2
Jetter AG
JVM-407
Montage und Installation des JVM-407
Verbindungskabel CANopen®
Verdrahtung
Die Abbildung zeigt die Verdrahtung des CAN-Kabels im Tragarm (Blick jeweils auf die Kabelseite):
CAN_0_H muss mit CAN_0_L verdrillt sein.
CAN_1_H muss mit CAN_1_L verdrillt sein.
Es bedeutet:
Pinbelegung
A
Anschlussstecker für das Bediengerät JVM-407
B
Anschlussstecker für die Mittelkonsole
Die Pinbelegung ist wie folgt:
Pin (A)
Jetter AG
Funktion
Pin (B)
1
IN_CAN_0_H
1
2
TERM_CAN_0
3
OUT_CAN_0_L
4
4
IN_CAN_1_L
6
5
OUT_CAN_1_H
6
IN_CAN_2_H
7
TERM_CAN_2
8
OUT_CAN_2_L
9
IN_CAN_0_L
2
10
OUT_CAN_0_H
3
11
IN_CAN_1_H
5
12
TERM_CAN_1
13
OUT_CAN_1_L
14
IN_CAN_2_L
59
4 Montage und Installation des JVM-407
Pin (A)
Funktion
15
OUT_CAN_2_H
16
Abschirmung
Pin (B)
9
10
CAN 1 wird am Anschlussstecker für JVM-407 terminiert (Brücke zwischen Pin
6 und 8).
Spezifikation
Anschlussstecker B
Gegenstück
60
Typ
AMP Junior Power Timer (male)
Anzahl der Pole
10
Kompatibles Gegenstück des 10-poligen Steckers AMP Junior Power Timer ist
der folgende:
Hersteller
AMP
Hersteller-Artikel-Nr. Buchsengehäuse
929504-4
Hersteller-Artikel-Nr. Crimpkontakt
(Buchse)
927771 (Bandware)
927779 (einzeln)
Anschließbarer Adernquerschnitt
0,5 ... 1,0 mm
(AWG 20 ... 16)
2
Jetter AG
JVM-407
Montage und Installation des JVM-407
Verbindungskabel Video
Verdrahtung
Die Abbildung zeigt die Verdrahtung des Videokabels im Tragarm (Blick jeweils auf die Kabelseite):
Es bedeutet:
Pinbelegung
A
Anschlussstecker für das Bediengerät JVM-407
B
Anschlussstecker für die Mittelkonsole
Die Pinbelegung ist wie folgt:
Pin (A)
Hinweis zum Videosignal
Funktion
1
Versorgungsspannung +12 V
2
2
Videosignal (+)
4
3
Abschirmung
1
4
Masse
3
5
Videosignal (-)
5
6
Masse
3
7
Videosignal (-)
5
8
Reserviert (nicht anschließen!)
Beim im Tragarm verlegten Kabel sind an A Pin 6 und 7 standardmäßig verbunden, d.h. es wird kein differentielles Videosignal verwendet.
Spezifikation
Anschlussstecker B
Typ
Buchse M12
Anzahl der Pole
5
Gegenstück
Kompatibles Gegenstück ist der 5-polige Steckertyp M12.
Jetter AG
Pin (B)
61
4 Montage und Installation des JVM-407
4.3 Montage des JVM-407
Einleitung
Dieses Kapitel beschreibt die Montage des JVM-407.
Inhalt
Thema
Seite
Montage des Bediengeräts ........................................................................... 63
Montage des Tragarms ................................................................................. 66
62
Jetter AG
JVM-407
Montage und Installation des JVM-407
Montage des Bediengeräts
Einleitung
Dieses Kapitel beschreibt, wie das Bediengerät JVM-407 montiert wird.
Einbauort wählen
Wählen Sie einen geeigneten Einbauort.
Ein Einbauort ist geeignet, wenn er folgende Bedingungen erfüllt:
 Die Montagefläche muss aus einem der folgenden Materialien bestehen:
 Aluminiumblech
 verzinktes Stahlblech
 lackiertes Stahlblech
 Kunststoff
 Die Montagefläche muss eben sein.
 Die Montagefläche darf maximal 5 mm dick sein.
 Der Einbauort muss Luftzirkulation erlauben.
 Der Einbauort muss für den Servicefall zugänglich sein.
 Der Einbauort muss ausreichend groß sein.
Ungeeignete Einbauorte
meiden
Meiden Sie ungeeignete Einbauorte.
Folgende Einbauorte sind für die Montage des Bediengeräts ungeeignet:
Ungeeigneter Einbauort
Ergonomische
Grundsätze beachten
Grund
Einbauort im Freien
Das Bediengerät darf nicht Regen bzw. einem Wasserstrahl ausgesetzt sein. Deswegen darf das Bediengerät nicht mit einem Dampfstrahler oder ähnlichem gereinigt werden.
Unbelüfteter Einbauort
Das Bediengerät kann bei Wärmestau überhitzen.
Einbauort in der Nähe hitzeempfindlicher Materialien
Die Materialien können sich durch die Wärmeentwicklung des Bediengeräts verformen.
Unebene Montagefläche mit
Sicken und Erhebungen
Die Montagefläche kann sich beim Festschrauben
des Bediengeräts verformen.
Die Befestigung ist instabil und unsicher.
Beachten Sie ergonomische Grundsätze.
Wählen Sie einen benutzerfreundlichen Einbauort:
 Die Bedienelemente müssen leicht erreichbar sein.
 Das Bediengerät muss leicht ablesbar sein.
Vermeiden Sie ergonomisch ungünstige Einbauorte:
 Extreme Winkel, die das Ablesen des Bediengeräts erschweren
 Ungünstige Lichtverhältnisse mit Spiegelung und Blendwirkung
 Verdeckte Einbauorte, die dem Benutzer schwer zugänglich sind
Jetter AG
63
4 Montage und Installation des JVM-407
Montage vorbereiten
Stellen Sie eine rechteckige Öffnung her.
Die Abbildung zeigt die Maße:
Es bedeutet:
Bediengerät montieren
1
Öffnung
2
Umriss der Frontplatte
Die Abbildung zeigt die Montage:
Es bedeutet:
1
64
Gewindebolzen am Gehäuse des JVM-407
Jetter AG
JVM-407
Montage und Installation des JVM-407
2
Öffnung
3
Montageblech
5
Haltebügel für SD-Karte
6
4 x Flügelmutter
Schritt
Zugentlastung montieren
Jetter AG
Vorgehen
1
Stecken Sie das Bediengerät von vorne in die Öffnung.
2
Stecken Sie das Montageblech von hinten auf.
Achten Sie auf die richtige Position: Loch über dem Summer.
3
Stecken Sie den Haltebügel für die SD-Karte auf den Gewindebolzen beim
SD-Karteneinschub.
4
Schrauben Sie den Haltebügel mit einer Flügelmutter fest.
5
Schrauben Sie das Montageblech mit den restlichen drei Flügelmuttern
fest.
Montieren Sie Zugentlastungen für die Anschlusskabel.
Achten Sie auf ausreichenden Abstand zu den Steckern.
Die Stecker müssen sich im Servicefall ungehindert abziehen lassen.
65
4 Montage und Installation des JVM-407
Montage des Tragarms
Einleitung
Dieses Kapitel beschreibt, wie der Tragarm für das Bediengerät JVM-407
montiert wird.
Einbauort wählen
Wählen Sie einen geeigneten Einbauort.
Ein Einbauort ist geeignet, wenn er folgende Bedingungen erfüllt:
 Die Montagefläche muss eben sein. Sie darf keine Sicken und Erhebungen



Ergonomische
Grundsätze beachten
aufweisen.
Die Montagefläche muss biegesteif sein, um Hebelkräften des Tragarms
standhalten zu können.
Unter der Montagefläche muss Freiraum für die Kabelführung vorhanden
sein.
Der Einbauort muss für das Eindrehen der Schrauben zugänglich sein.
Beachten Sie ergonomische Grundsätze.
Wählen Sie einen benutzerfreundlichen Einbauort:
 Die Bedienelemente müssen leicht erreichbar sein.
 Das Bediengerät muss leicht ablesbar sein.
Vermeiden Sie ergonomisch ungünstige Einbauorte:
 Extreme Winkel, die das Ablesen des Bediengeräts erschweren
 Ungünstige Lichtverhältnisse mit Spiegelung und Blendwirkung
 Verdeckte Einbauorte, die dem Benutzer schwer zugänglich sind
Montage vorbereiten
Stellen Sie Bohrungen her. Die Abbildung zeigt die Maße:
35
35
5,5
Entgraten Sie die Bohrungen.
66
Jetter AG
JVM-407
Montage und Installation des JVM-407
Es bedeutet:
Tragarmfuß montieren
1
Bohrungen für die Schrauben und den Kabeldurchlass
2
Umriss des Tragarmfußes
Die Abbildung zeigt die Montage:
Es bedeutet:
1
4 x Schraube M 5 x 14 mm + Stärke der Montagefläche
(Zulässig ist z. B. eine Schraube mit Inbus-Zylinderkopf DIN 912)
2
4 x Sicherungsscheibe
3
4 x Bohrung für Schraube
5
Tragarmfuß
6
Tragarm
Schritt
Jetter AG
Vorgehen
1
Stellen Sie den Tragarmfuß auf die Montagefläche.
2
Schrauben Sie den Tragarmfuß von unten mit 4 Schrauben und 4 Sicherungsscheiben fest.
3
Führen Sie das Kabel durch den Tragarmfuß.
4
Stecken Sie den Tragarm auf den Tragarmfuß. Er muss einrasten.
5
Lösen Sie den Arretierhebel.
6
Stellen Sie die Neigung des Bediengeräts bedienerfreundlich ein.
7
Arretieren Sie die Einstellung durch Festziehen des Arretierhebels.
67
4 Montage und Installation des JVM-407
4.4 IP-Konfiguration
Einleitung
Dieses Kapitel beschreibt, wie die IP-Konfiguration des Bediengeräts JVM-407
durchgeführt wird. Dabei können folgende Parameter eingestellt werden:







Voraussetzungen an den
Projektierer
IP-Adresse des Bediengeräts
Subnetzmaske
IP-Adresse des Default Gateway
IP-Adresse des DNS-Servers
Name des Bediengeräts
IP-Portnummer für den Debugger von JetSym
IP-Basisportnummer für die JetIP Kommunikation
Voraussetzung für die IP-Konfiguration des Bediengeräts JVM-407 sind
Kenntnisse über IP-Netzwerke wie zum Beispiel:
 IP-Adressierung (z. B. IP-Adresse, Portnummer, Subnetzmaske, usw.)
 FTP (Verbindungsaufbau, Dateiübertragung, usw.)
Inhalt
Thema
Seite
Auslieferungszustand .................................................................................... 69
Der Konfigurations-Speicher ......................................................................... 70
Konfigurations-Datei cfgvar.ini ...................................................................... 71
Konfigurations-Register ................................................................................ 75
IP-Adresse der Steuerung ändern ................................................................ 76
IP-Adresse über die Datei cfgvar.ini einstellen ............................................. 77
IP-Adresse zur Laufzeit einstellen ................................................................ 78
Namen für IP-Adressen verwenden .............................................................. 79
68
Jetter AG
JVM-407
Montage und Installation des JVM-407
Auslieferungszustand
Einleitung
Vor der Auslieferung werden auf dem Bediengerät JVM-407 verschiedene
Parameter auf einen bestimmten Wert eingestellt.
Die Parameter können vom Anwender geändert werden.
Auslieferungszustand
Jetter AG
Parameter
Wert
IP-Adresse der Steuerung
192.168.10.15
Subnetzmaske
255.255.255.0
IP-Adresse des Default Gateway
0.0.0.0
IP-Adresse des DNS-Servers
0.0.0.0
Name der Steuerung
JVM-4xx
IP-Portnummer für den Debugger
52000
IP-Portnummer für JetIP
50000
Admin-Passwort
admin
System-Passwort
system
69
4 Montage und Installation des JVM-407
Der Konfigurations-Speicher
Einleitung
Die Parameter für die Initialisierung der IP-Schnittstelle, werden vom Bediengerät während der Bootphase aus dem Konfigurations-Speicher gelesen. Auf
die Daten des Konfigurations-Speichers kann auf folgende Arten zugegriffen
werden:
 Über eine Datei im Systemverzeichnis des Dateisystems können die Daten

ausgelesen und geändert werden.
Über Register können die Daten ausgelesen werden.
Wirksamkeit
Das Bediengerät liest die Daten im Konfigurations-Speicher nur während der
Bootphase aus. Wenn Änderungen im Konfigurations-Speicher gemacht
werden, so muss das Bediengerät anschließend neu gebootet werden, damit
diese Änderungen wirksam werden.
Standardwerte
Bevor die Daten aus dem Konfigurations-Speicher verwendet werden, prüft
das Bediengerät sie auf Plausibilität. Bei ungültigen oder nicht vorhandenen
Einträgen, werden folgende Standardwerte verwendet:
Parameter
Standardwert
IP-Adresse der Steuerung
192.168.10.15
Subnetzmaske
255.255.255.0
IP-Adresse des Default Gateway
0.0.0.0
IP-Adresse des DNS-Servers
0.0.0.0
Name der Steuerung
JVM-4xx
Suffixtyp des Namens
0
IP-Portnummer für den Debugger
52000
IP-Portnummer für JetIP
50000
Verwandte Topics
 Konfigurations-Datei cfgvar.ini auf Seite 71
 Konfigurations-Register auf Seite 75
70
Jetter AG
JVM-407
Montage und Installation des JVM-407
Konfigurations-Datei cfgvar.ini
Einleitung
Über die Konfigurations-Datei cfgvar.ini kann auf den Konfigurations-Speicher
des JVM-407 zugegriffen werden.
Eigenschaften
 Die Datei ist über das Dateisystem des Bediengeräts erreichbar.
 Bei einer FTP-Verbindung muss der User Administrator- oder
System-Rechte haben.
 Die Datei befindet sich im Unterverzeichnis "/System".
 Die Datei kann nicht gelöscht, sondern nur überschrieben werden.
 Die Datei wird durch das Formatieren der Flash-Disk nicht beeinflusst.
Aufbau der Datei
Die Konfigurations-Datei ist eine Textdatei, deren Einträge in verschiedenen
Sektionen gruppiert sind. Parameter der IP-Konfiguration, für welche kein
Eintrag in der Datei vorhanden ist, werden mit den Standardwerten besetzt.
Beispiel für cfgvar.ini
Dies ist ein Beispiel für eine Konfigurations-Datei cfgvar.ini:
;JVM-407 System Configuration
;Copyright (c) 2009 by Jetter AG, Ludwigsburg, Germany
[IP]
Address
SubnetMask
DefGateway
DNSServer
=
=
=
=
192.168. 50. 1
255.255.255. 0
192.168. 50. 11
192.168. 1. 44
[HOSTNAME]
SuffixType = 0
Name
= JVM-4xx
[PORTS]
JetIPBase = 50000
JVMDebug = 52000
Jetter AG
71
4 Montage und Installation des JVM-407
Sektion [IP]
In der Sektion [IP] werden die benötigten IP-Adressen und die Subnetzmaske
angegeben.
Address
im Beispiel
192.168.50.1
Funktion
IP-Adresse des Bediengeräts
gültige Werte




nicht gültige Werte
bei ungültigem Wert
> 1.0.0.0
< 223.255.255.255
Netzwerkadresse
Broadcast-Adresse
alle 4 Werte werden vom Bediengerät auf ihre
Default-Werte gesetzt
SubnetMask
im Beispiel
255.255.255.0
Funktion
Legt die Subnetzmaske fest
gültige Werte


nicht gültige Werte
bei ungültigem Wert
>= 128.0.0.0
1 und 0 gemischt
alle 4 Werte werden vom Bediengerät auf ihre
Default-Werte gesetzt
DefGateWay
im Beispiel
192.168.50.11
Funktion
IP-Adresse des Gateways in andere Subnetze;
muss vom Bediengerät (Address/SubnetMask) erreichbar sein, sonst wird sie vom Bediengerät auf
0.0.0.0 gesetzt.
gültige Werte





> 1.0.0.0 und

Wert von Address
nicht gültige Werte
bei ungültigem Wert
< 223.255.255.255
Netzwerkadresse
Broadcast-Adresse
vom Bediengerät nicht erreichbar
(Address/SubnetMask)
wird von der Steuerung auf 0.0.0.0 gesetzt
DNSServer
72
im Beispiel
192.168.1.44
Funktion
IP-Adresse des Servers für das Domain Name System
gültige Werte


bei ungültigem Wert
wird vom Bediengerät auf 0.0.0.0 gesetzt
1.0.0.0
223.255.255.255
Jetter AG
JVM-407
Sektion [HOSTNAME]
Montage und Installation des JVM-407
In der Sektion [HOSTNAME] wird der Name des Bediengeräts angegeben.
Dabei kann vom Bediengerät ein individueller Name automatisch generiert
werden. Dieser Hostname wird zurzeit nicht verwendet.
SuffixType
im Beispiel
0
Funktion
Typ des automatisch generierten Anhangs an den
Namen des Bediengeräts
gültige Werte


0: kein Anhang

2: niederwertiges Byte der IP-Adresse in Hexadezimal-Darstellung
bei ungültigem Wert
1: niederwertiges Byte der IP-Adresse in Dezimal-Darstellung
0
Name
im Beispiel
JVM-4xx
Funktion
legt den Namen des Bediengeräts fest
gültige Werte


bei ungültigem Wert
Sektion [PORTS]
erstes Zeichen: 'A' ... 'Z', 'a' ... 'z'
nächste Zeichen: 'A' ... 'Z', 'a' ... 'z', '0' ... '9', '-'
JVM-4xx
In der Sektion [PORTS] werden die IP-Portnummern der Daten- und Debug-Server innerhalb des Bediengeräts angegeben. Diese müssen mit den
z. B. in JetSym eingestellten Portnummern übereinstimmen.
JetIPBase
im Beispiel
50000
Funktion
IP-Port für den Betriebssystem-Update und die Kommunikation mit dem PC
gültige Werte

bei ungültigem Wert
50000
1024 ... 65535
JVMDebug
Jetter AG
im Beispiel
52000
Funktion
IP-Port für Debugger/Setup in JetSym
gültige Werte

bei ungültigem Wert
52000
1024 ... 65535
73
4 Montage und Installation des JVM-407
IP-Konfiguration ändern
Schritt
Vorgehen
1
Erstellen Sie mit einem Texteditor auf dem PC eine Konfigurations-Datei
cfgvar.ini mit dem gewünschten Inhalt.
2
Öffnen Sie eine FTP-Verbindung vom PC zum JVM-407.
3
Melden Sie sich als User an, der über Administrator- oder System-Rechte
verfügt.
Standard:
User: admin; Passwort: admin
4
Verzweigen Sie in das Unterverzeichnis "/System" des JVM-407.
5
Kopieren Sie die von Ihnen erstellte Konfigurations-Datei cfgvar.ini auf das
JVM-407.
6
Schließen Sie die FTP-Verbindung.
7
Booten Sie das Gerät neu.
Ergebnis: Die neue Konfiguration ist aktiv.
Verwandte Topics
 Der Konfigurations-Speicher auf Seite 70
 Konfigurations-Register auf Seite 75
74
Jetter AG
JVM-407
Montage und Installation des JVM-407
Konfigurations-Register
Einleitung
Über die Konfigurations-Register können die Parameter der IP-Konfiguration
gelesen werden. Ein Bereich von Registern enthält die Daten im Konfigurations-Speicher. Ein weiterer Bereich enthält die tatsächlich zur Initialisierung der
IP-Schnittstelle verwendeten Parameter.
Registernummern
Die Basisregisternummern der beiden Bereiche sind geräteabhängig. Die
Registernummer ergibt sich aus der Addition der Modulregister-Nummer (MR)
zur Basisregisternummer.
Bediengerät
Datenbereich
JVM-407
Konfigurations-Register
Basisregisternummer
Registernummern
Konfigurations-Speicher
101100
101100 ... 101165
verwendete
Parameter
101200
101200 ... 101265
Die nachfolgende Tabelle zeigt eine Übersicht über die Register der beiden
Bereiche und ihren Zusammenhang zu den Einträgen in der Konfigurations-Datei '/System/cfgvar.ini':
Register
Sektion in
config.ini
MR 0
IP
Name in
config.ini
Funktion
Address
IP-Adresse der Steuerung
MR 1
SubnetMask
Legt die Subnetzmaske fest
MR 2
DefGateway
IP-Adresse des Gateways in andere
Subnetze
MR 3
DNSServer
IP-Adresse des Servers für das Domain
Name System
SuffixType
Typ des automatisch generierten Anhangs an den Namen der Steuerung
Name
Legt den Namen der Steuerung fest
JetIPBase
IP-Port für den Betriebssystem-Update
und die Kommunikation zwischen den
Steuerungen
JVMDebug
IP-Port für Debugger/Setup in JetSym
MR 32
HOSTNAME
MR 33 bis
MR 51
MR 64
MR 65
PORTS
Verwandte Topics
 Der Konfigurations-Speicher auf Seite 70
 Konfigurations-Datei cfgvar.ini auf Seite 71
Jetter AG
75
4 Montage und Installation des JVM-407
IP-Adresse der Steuerung ändern
Einleitung
Um mit dem Bediengerät JVM-407 über Ethernet zu kommunizieren, muss am
Bediengerät eine eindeutige IP-Adresse eingestellt werden.
KonfigurationsMöglichkeiten
Die IP-Adresse kann auf folgende Arten konfiguriert werden:
 Default IP-Adresse
 Konfiguration über die Datei cfgvar.ini
 Konfiguration zur Laufzeit über Spezialregister
Verwandte Themen
 IP-Adresse über die Datei cfgvar.ini einstellen auf Seite 77
 IP-Adresse zur Laufzeit einstellen auf Seite 78
76
Jetter AG
JVM-407
Montage und Installation des JVM-407
IP-Adresse über die Datei cfgvar.ini einstellen
Die Datei cfgvar.ini
Sie können die IP-Adresse des Bediengeräts JVM-407 über die Datei
cfgvar.ini einstellen.
[IP]
Address
...
= aaa.bbb.ccc.ddd
Teil
Hinweis
Datei cfgvar.ini übertragen
Jetter AG
Funktion
Address
Zeile zum Eintragen der IP-Adresse
aaa
1. Byte der IP-Adresse
bbb
2. Byte der IP-Adresse
ccc
3. Byte der IP-Adresse
ddd
4. Byte der IP-Adresse
Die Einstellung der IP-Adresse in der Datei cfgvar.ini wird nur übernommen,
wenn die Daten im Konfigurations-Speicher nicht o.k. sind.
Schritt
Vorgehen
1
Stellen Sie eine FTP-Verbindung zum JVM-407 her.
2
Melden Sie sich als User an, der über Administrator- oder System-Rechte
verfügt.
Standard:
User: admin; Passwort: admin (Default)
3
Öffnen Sie das Verzeichnis /System.
4
Kopieren Sie die Datei cfgvar.ini in das Verzeichnis /System.
5
Trennen Sie die FTP-Verbindung.
6
Starten Sie das JVM-407 neu.
77
4 Montage und Installation des JVM-407
IP-Adresse zur Laufzeit einstellen
Einleitung
Die Initialisierung der IP-Schnittstelle erfolgt während der Bootphase aus dem
Konfigurations-Speicher. Folgende Einstellungen können auch während der
Laufzeit des JVM-407 über Register geändert werden:
 IP-Adresse
 Subnetzmaske
 IP-Adresse des Default Gateway
Die Einstellungen zur Laufzeit verändern nicht die Parameter im Konfigurations-Speicher, sondern gehen beim Ausschalten des JVM-407 wieder verloren.
Voraussetzungen
 Nehmen Sie die Einstellungen nur vor, wenn keine Kommunikation über
die IP-Schnittstelle aktiv ist, da es sonst zu Datenverlust kommen kann.
 Die Gültigkeit der geschriebenen Werte ist sichergestellt (z. B. durch ent-
sprechende Programmierung im Anwenderprogramm), da beim Einstellen
zur Laufzeit des JVM-407 keine Überprüfung durchgeführt wird.
Registerübersicht
IP-Adressen und die
Subnetzmaske einstellen
Register
Beschreibung
104531
IP-Adresse des JVM-407
104532
Subnetzmaske
104533
IP-Adresse des Default Gateway
Zur Änderung der IP-Adressen und der Subnetzmaske gehen Sie wie folgt
vor:
Schritt
Vorgehen
1
Beschreiben Sie 104533 mit dem Wert 0.0.0.0
2
Beschreiben Sie 104532 mit dem Wert 0.0.0.0
3
Beschreiben Sie 104531 mit der gewünschten IP-Adresse des JVM-407
4
Beschreiben Sie 104532 mit der gewünschten Subnetzmaske
5
Beschreiben Sie 104533 mit der gewünschten IP-Adresse des Default
Gateways
Ergebnis: Die Einstellung ist durchgeführt und es kann wieder kommuniziert
werden.
Verwandte Topics
 Der Konfigurations-Speicher auf Seite 70
78
Jetter AG
JVM-407
Montage und Installation des JVM-407
Namen für IP-Adressen verwenden
Einleitung
Bei der Angabe von IP-Adressen von Zielsystemen (z. B. bei der Konfiguration
des E-Mail Clients) können auch Namen angegeben werden, die bei ihrer
Verwendung von dem JVM-407 in IP-Adressen umgesetzt werden. Die Zuordnung zwischen Namen und ihren IP-Adressen erfolgt über eine Konfigurations-Datei oder das Domain Name System.
Namensauflösung
Die Auflösung der Namen zu IP-Adressen erfolgt nach folgendem Ablauf:
Stufe
Beschreibung
1
In der Bootphase liest das JVM-407 die IP-Adresse des DNS-Servers aus
dem Konfigurations-Speicher.
2
In der Bootphase liest das JVM-407 die Datei '/etc/hosts' und legt eine
Umsetzungstabelle mit den in der Datei gefundenen Namen und
IP-Adressen an.
3
Nach der Bootphase erkennt das JVM-407 einen Namen anstelle einer
IP-Adresse.
4
Das JVM-407 versucht aus der Umsetzungstabelle den Namen in eine
zugehörige IP-Adresse aufzulösen.
Wenn ...
5
der Namen aufgelöst werden
konnte
macht das JVM-407 weiter bei Stufe
6
der Namen nicht aufgelöst
werden konnte
macht das JVM-407 weiter bei Stufe
5
Das JVM-407 versucht über eine Anfrage beim DNS-Server den Namen in
eine zugehörige IP-Adresse aufzulösen.
Wenn ...
6
Konfigurations-Datei
'hosts'
Jetter AG
... Dann ...
... Dann ...
der Namen aufgelöst werden
konnte
trägt es den Namen und die
IP-Adresse in die Umsetzungstabelle ein und macht weiter bei Stufe 6
der Namen nicht aufgelöst
werden konnte
bricht die Steuerung die Funktion (z.
B. Systemfunktion zum Versenden
einer E-Mail) mit einer Fehlermeldung ab
Die gefundene IP-Adresse wird zur Kommunikation verwendet.
In dieser Datei wird die statische Zuordnung zwischen Namen und
IP-Adressen gemacht. Die Datei wird einmalig während der Bootphase des
JVM-407 gelesen.
Dateiformat:
Text
Pfad:
/etc
79
4 Montage und Installation des JVM-407
Dateiname:
hosts
Beispiel:
# Example hosts file for JC-9xx
192.168.33.209
jetter_mail
192.168.33.208
jetter_demo
192.168.1.1
JC940MC
192.168.1.2
JC940MC
Domain Name System
(DNS)
Kann ein Name nicht über einen Eintrag in der Datei '/etc/hosts' aufgelöst
werden, so wird versucht über eine Anfrage bei einem DNS-Server die entsprechende IP-Adresse zu ermitteln. Die IP-Adresse des DNS-Servers wird
während der Bootphase des JVM-407 aus dem Konfigurations-Speicher gelesen.
Verwandte Topics
 Der Konfigurations-Speicher auf Seite 70
80
Jetter AG
JVM-407
5
Erstinbetriebnahme
Erstinbetriebnahme
Zweck des Kapitels
Dieses Kapitel beschreibt die Erstinbetriebnahme des JVM-407 anhand der
folgenden Schritte:






In JetViewSoft die IOP-Dateien für das Gerät JVM-407 erstellen.
Die IOP-Dateien auf das Gerät JVM-407 übertragen.
In JetSym ein STX-Projekt anlegen und die Hardware konfigurieren.
Einbinden der .iop.h-Datei in das STX-Projekt.
Einbinden der ISO-Bibliothek in das STX-Projekt.
Kompilierfähiges Programm erzeugen.
Es ist dann soweit alles für die Erstellung eines Programms vorbereitet.
Mindestanforderungen
Die Anleitung zur Erstinbetriebnahme bezieht sich auf JetSym ab der Version
4.3 und JetViewSoft ab der Version 3.2.
ISO-Funktionen
Die ISO-Funktionen sind in der Norm ISO 11783-6 definiert.
Inhalt
Thema
Seite
Vorbereitungen zur Erstinbetriebnahme ....................................................... 82
Erstinbetriebnahme in JetViewSoft ............................................................... 83
Erstinbetriebnahme in JetSym ...................................................................... 86
Jetter AG
81
5 Erstinbetriebnahme
Vorbereitungen zur Erstinbetriebnahme
Ethernet-Verbindung zur
Steuerung
Das Bediengerät JVM-407 hat im Auslieferungszustand die IP-Adresse
192.168.10.15. Konfigurieren Sie die Ethernet-Schnittstelle Ihres PCs so, dass
er mit dem JVM-407 über diese IP-Adresse kommunizieren kann.
Voraussetzung für das
Einschalten
Das JVM-407 schaltet nur dann ein, wenn an Zündung (+) die Versorgungsspannung +U BATT anliegt.
Verhalten nach dem
Einschalten
Wenn Sie beim Einschalten die Funktionstasten F1 und F3 gleichzeitig drücken, wird das Anwenderprogramm nicht gestartet.
Darstellung bei Auslieferung
Das Anwenderprogramm, das bei der Auslieferung nach dem Einschalten auf
dem JVM-407 gestartet wird, stellt die folgende Eingabemaske auf dem Display des JVM-407 dar.
NodeID:
30
IP-Adresse: 192.168.10.15
MAC-Adresse: 00-50-cb-00-af-30
OS-Version: 1.15.1.0
+10
F1
+
F2
F3
-10
F4
Die dargestellte Node-ID ist die im JVM-407 eingestellte Adresse des Busses
CANopen® 0. Diese Adresse kann über die Funktionstasten F1 bis F4 eingestellt werden.
Über die Funktionstaste F1 wird die Adresse in Zehnerschritten erhöht. Über
die Funktionstaste F4 wird die Adresse in Zehnerschritten verringert.
Über die Funktionstaste F2 wird die Adresse in Einerschritten erhöht. Über die
Funktionstaste F3 wird die Adresse in Einerschritten verringert.
Außerdem wird noch die IP-Adresse, MAC-Adresse und OS-Version dargestellt.
82
Jetter AG
JVM-407
Erstinbetriebnahme
Erstinbetriebnahme in JetViewSoft
Einleitung
Mit JetViewSoft werden die IOP-Dateien für das Bediengerät JVM-407 erstellt
und auf das Gerät übertragen. An dieser Stelle wird folgendes beschrieben:
 Ein Projekt in JetViewSoft anlegen
 Die Projekteinstellungen tätigen
 Eine IOP-Datei erstellen und auf das Bediengerät übertragen
Die erstellte Visualisierung wird mit JetSym STX programmiert.
Voraussetzungen
Folgende Voraussetzungen müssen gegeben sein:
 JetViewSoft ist auf dem verwendeten PC installiert
 JetViewSoft wurde lizenziert (siehe Online-Hilfe in JetView Soft)
 Eine aktive Ethernet-Verbindung zwischen dem PC und dem Bediengerät
ist eingerichtet
Projekt anlegen
So legen Sie in JetViewSoft ein neues Projekt für das Bediengerät an:
Schritt
Vorgehen
1
Starten Sie JetViewSoft
2
Öffnen Sie das Menü File und wählen Sie den Menüpunkt New aus.
Ergebnis:
Es öffnet sich der folgende Dialog:
Jetter AG
3
Geben Sie bei Project name den Namen des Projekts ein.
4
Passen Sie wenn nötig bei Location den Pfad des Projekts an.
5
Wählen Sie bei Target platform JetView ER-STX(S) aus.
6
Wählen Sie bei Display template das passende für das Bediengerät aus.
7
Wählen Sie bei Display name einen programminternen Namen für das
Bediengerät aus. In einem Projekt können mehrere Displays angelegt
werden.
83
5 Erstinbetriebnahme
Schritt
Vorgehen
8
Bestätigen Sie die Einstellungen mit OK.
Ergebnis:
Der Dialog schließt sich und es öffnet sich der Dialog Add New Mask.
9
Geben Sie bei Name den Namen der ersten DataMask an. Die anderen
Einstellungen können Sie beibehalten. Diese Maske wird automatisch
beim Start des Bediengeräts die aktive Maske.
10
Bestätigen Sie mit OK.
Ergebnis: Nun ist ein Projekt angelegt.
Deployment konfigurieren
Um die mit JetViewSoft erstellten IOP-Dateien auf das Bediengerät übertragen zu können, müssen noch die nötigen Deployment-Einstellungen getroffen
werden:
Schritt
Vorgehen
1
Öffnen Sie das Menü Project und wählen Sie den Menüpunkt Properties
aus.
Ergebnis:
Es öffnet sich der gleichnamige Dialog.
2
Öffnen Sie das Fenster Deployment über die Navigation auf der linken
Seite des Dialogs.
3
Wählen Sie bei Deployment Target (ganz oben im Dialog) FTP aus.
4
Klappen Sie die Target-Einstellungen über das +-Zeichen daneben auf.
5
Geben Sie bei Host Name/IP die IP-Adresse des Bediengeräts ein.
Default-IP-Adresse eines JVM-407 ist 192.168.10.15.
6
Bestätigen Sie die Einstellungen mit OK.
Ergebnis: Nun sind die Deployment-Einstellungen getroffen und die
IOP-Dateien können auf das Bediengerät übertragen werden.
84
Jetter AG
JVM-407
IOP-Dateien
Erstinbetriebnahme
Die IOP-Dateien werden folgendermaßen von einem JetViewSoft-Projekt
erzeugt und übertragen:
Schritt
Vorgehen
1
Öffnen Sie das Menü File und wählen Sie den Menüpunkt Save all aus.
2
Drücken Sie die Taste F7 für einen Projekt-Build.
Ergebnis:
Die IOP-Dateien werden erstellt sofern kein Fehler auftritt.
3
Öffnen Sie das Menü Build und wählen Sie den Menüpunkt Deploy aus.
Ergebnis:
Die IOP-Dateien werden auf das Bediengerät übertragen sofern kein
Fehler auftritt.
4
Starten Sie das Bediengerät neu damit die IOP-Dateien eingelesen
werden
Ergebnis: Nun werden die IOP-Dateien auf dem Gerät angezeigt.
Jetter AG
85
5 Erstinbetriebnahme
Erstinbetriebnahme in JetSym
Einleitung
Mit JetSym wird das STX-Programm für die Visualisierung des Bediengeräts
JVM-407 erstellt. An dieser Stelle wird folgendes beschrieben:





Voraussetzungen
Projekt in JetSym anlegen
Hardware konfigurieren
Einbinden der .iop.h-Datei von JetViewSoft
ISO-Bibliothek einbinden
Kompilierfähiges Programm erstellen und auf Bediengerät übertragen
Folgende Voraussetzungen müssen gegeben sein:
 JetSym ist auf dem verwendeten PC installiert.
 JetSym wurde lizenziert (siehe Online-Hilfe in JetSym).
 Eine aktive Ethernet-Verbindung zwischen dem PC und dem Bediengerät
ist eingerichtet.
 Die Erstinbetriebnahme in JetViewSoft wurde durchgeführt.
Projekt anlegen
So legen Sie in JetSym ein neues Projekt für die Programmierung an:
Schritt
Vorgehen
1
Starten Sie JetSym.
2
Öffnen Sie das Menü Datei und wählen Sie den Menüpunkt Neu aus.
Ergebnis:
Es öffnet sich der Dialog Neu
3
Wählen Sie als Projekttyp JetSym STX Projekt aus.
4
Geben Sie den Projektnamen ein.
5
Bestätigen Sie die Einstellungen mit OK.
Ergebnis: Nun ist ein Projekt angelegt.
86
Jetter AG
JVM-407
Hardware konfigurieren
Erstinbetriebnahme
Um eine Verbindung zwischen JetSym und dem Bediengerät aufzubauen
müssen Sie die Hardware folgendermaßen konfigurieren:
Schritt
Vorgehen
1
Wechseln Sie in die Ansicht Hardware über den gleichnamigen Reiter.
2
Klappen Sie den Hardware-Baum komplett auf.
3
Doppelklicken Sie auf CPU, wenn als Hardware nicht das Bediengerät
JVM-407 eingestellt ist.
Ergebnis:
Es öffnet sich das Fenster Konfiguration.
4
Wählen Sie bei Steuerung/Typ JVM-407 aus.
5
Geben Sie bei Schnittstelle/IP-Adresse die IP-Adresse des Bediengeräts ein. Defaul-IP-Adresse eines JVM-407 ist 192.168.10.15.
6
Führen Sie über den Button Test einen Verbindungstest durch. Falls
dieser nicht erfolgreich ist, überprüfen Sie die IP-Adresse und die Ethernet-Verbindung zu dem JVM-407.
7
Speichern Sie die Einstellungen mit der Tastenkombination Strg+S ab.
Ergebnis: Nun sind die Hardware-Einstellungen in JetSym konfiguriert.
Jetter AG
87
5 Erstinbetriebnahme
Header-Datei .iop.h
Damit die Bezeichnung der ISO-Objekte und Masken der Visualisierung bei
der Programmierung zur Verfügung stehen, muss noch die .iop.h-Datei folgendermaßen eingebunden werden:
Schritt
Vorgehen
1
Wechseln Sie in die Ansicht Dateien.
2
Klappen Sie den Ordner Programm auf.
3
Markieren Sie den Ordner Include und öffnen Sie das Kontextmenü
(rechte Maustaste).
4
Wählen Sie im Kontextmenü den Eintrag Dateien dem Verzeichnis
hinzufügen aus.
Ergebnis:
Es öffnet sich ein Explorer-Fenster zur Auswahl einer Datei.
5
Navigieren Sie zu dem Output-Ordner des JetViewSoft-Projekts. Standardmäßig ist dieser unter Eigene Dateien/JetViewSoft Projects/Name
des JVS-Projekts/Output zu finden.
6
Wählen Sie bei Dateityp Alle Dateien (*.*) aus.
7
Wählen Sie die .iop.h-Datei aus.
8
Betätigen Sie den Button Öffnen.
Ergebnis: Nun wird die .iop.h-Datei in das JetSym-Projekt eingebunden.
88
Jetter AG
JVM-407
ISO-Bibliothek einbinden
Erstinbetriebnahme
Damit die ISO-Bibliothek mit den ISO-Funktionen in JetSym zur Verfügung
steht, muss diese noch folgendermaßen eingebunden werden:
Schritt
1
Vorgehen
Öffnen Sie das Menü Extras und wählen Sie den Menüpunkt Bibliotheksmanager aus.
Ergebnis:
Es öffnet sich der gleichnamige Dialog.
2
Betätigen Sie den Button Hinzufügen.
Ergebnis:
Es öffnet sich ein Explorer-Fenster im Ordner Lib der JetSym-Installation.
3
Wählen Sie das ISO_Library_1.0.0.0.libpackage aus.
4
Betätigen Sie den Button Öffnen.
Ergebnis:
Die Libpackage-Datei wird in den Bibliotheksmanager eingebunden und
kann nun ins JetSym-Projekt eingebunden werden.
Jetter AG
5
Wechseln Sie in die Dateien-Ansicht.
6
Wählen Sie den Ordner Bibliothek aus und öffnen Sie das Kontextmenü
mit der rechten Maustaste.
7
Wählen Sie den Menüpunkt Bibliotheken hinzufügen aus.
Ergebnis:
Es öffnet sich der Bibliotheksmanager.
89
5 Erstinbetriebnahme
Schritt
8
Vorgehen
Markieren Sie die Libpackage-Datei und betätigen Sie den Button Verwenden.
Ergebnis: Nun ist die Datei ins Projekt eingebunden.
90
Jetter AG
JVM-407
Kompilierfähiges
Programm erstellen
Erstinbetriebnahme
Ein kompilierfähiges Programm wird folgendermaßen erstellt und compiliert:
Schritt
Vorgehen
1
Wechseln Sie in die Dateien-Ansicht.
2
Doppelklicken Sie auf die Programmdatei (hier
JS_Sample_Project_JVM407_Manual.stxp). Die Programmdatei hat
den gleichen Namen wie das Projekt plus die Endung stxp.
Ergebnis:
Es öffnet sich die Programmdatei im JetSym-Editor.
3
Geben Sie folgenden Programmcode ein. Die .iop.h-Datei hat den gleichen Namen wie das Projekt plus die Endung iop.h.
Bei der Include-Anweisung ist dies zu beachten.
#Include "JVS_Sample_Project_JVM407_Manual.iop.h";
Task Main Autorun
End_Task;
4
Betätigen Sie die Taste F7 für einen Build-Vorgang des Projekts.
Ergebnis:
Die ISO-Funktionen und die IOP-Header-Datei stehen nun bei der Programmierung zur Verfügung.
Ergebnis:
Das Programm kann nun erweitert werden. Im IntelliSense (Strg- +
Space-Taste) stehen die ISO-Funktionen und die Informationen aus der
IOP-Header-Datei nun zur Verfügung. Das Programm kann durch die Tastenkombination Strg+F5 auf das Bediengerät übertragen werden. Es hat aber
momentan noch keine Funktion.
Verwandte Themen:
 Erstinbetriebnahme in JetViewSoft auf Seite 83
Jetter AG
91
JVM-407
6
CANopen®-STX-API
CANopen®-STX-API
Einleitung
Dieses Kapitel beschreibt die STX-Funktionen der CANopen®-STX-API.
Der CANopen®-Standard
CANopen® ist ein offener Standard für die Vernetzung und Kommunikation
z. B. im Kraftfahrzeugbereich.
Das CANopen®-Protokoll wird von der CiA e.V. (CAN in Automation) weiterentwickelt und arbeitet auf dem Physical Layer mit CAN-Highspeed nach
ISO 11898.
Anwendung
Diese STX-Funktionen werden in der Kommunikation zwischen der Steuerung
JVM-407 und z. B. den Peripheriemodulen JXM-IO-E02, JXM-IO-E09,
JXM-IO-E10, JXM-IO-E11 und JXM-MUX angewendet.
Dokumente
Die CANopen®-Spezifikationen können von der Homepage des CiA e.V.
http://www.can-cia.org bezogen werden. Die wichtigsten Spezifikationsdokumente sind dabei:
 CiA DS 301 - Dieses Dokument ist auch als Kommunikationsprofil bekannt
und beschreibt die grundlegenden Dienste und Protokolle, die unter
CANopen® verwendet werden.
 CiA DS 302 - Framework für programmierbare Geräte
(CANopen®-Manager, SDO-Manager)
 CiA DR 303 - Informationen zu Kabeln und Steckverbindern
 CiA DS 4xx - Diese Dokumente beschreiben das Verhalten vieler Geräteklassen über sogenannte Geräteprofile.
Inhalt
Thema
Seite
STX-Funktion CanOpenInit .......................................................................... 94
STX-Funktion CanOpenSetCommand ......................................................... 96
STX-Funktion CanOpenUploadSDO ............................................................ 98
STX-Funktion CanOpenDownloadSDO ..................................................... 103
STX-Funktion CanOpenAddPDORx........................................................... 108
STX-Funktion CanOpenAddPDOTx ............................................................ 114
CANopen®-Objektverzeichnis des JVM-407 ............................................. 120
Jetter AG
93
6 CANopen®-STX-API
STX-Funktion CanOpenInit
Einleitung
Mit dem Aufruf der Funktion CanOpenInit () wird einer der vorhandenen
CAN-Busse initialisiert. Die JVM-407 sendet dann automatisch jede Sekunde
die Heartbeat-Nachricht mit dem folgenden Kommunikationsobjekt-Identifier
(COB-ID): Node-ID + 0x700
Funktionsdeklaration
Function CanOpenInit (
CANNo:Int,
NodeID:Int,
const ref SWVersion:String,
) :Int;
Funktionsparameter
Die Funktion CanOpenInit () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
0 ... CANMAX
NodeID
Eigene Node-ID
1 ... 127
SWVersion
Referenz auf die eigene SoftString bis zu 255 Zeichen
wareversion
Diese Softwareversion wird unter
dem Index 0x100A in das Objekt-Verzeichnis eingetragen.
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
94
0
ok
-1
Fehler bei der Parameterüberprüfung
-3
Die Initialisierung hat nicht funktioniert
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
0
JCM-350
4
JCM-620
2
Jetter AG
JVM-407
Verwenden der Funktion
CANopen®-STX-API
Initialisieren des CAN-Busses 0. Die JVM-407 hat die Node-ID 20 (0x14).
Result := CanOpenInit(0, 20, 'Version: 01.00.0.00');
Funktionsweise
Während der Initialisierung durchläuft die JVM-407 folgende Prozessstufen:
Stufe
Beschreibung
1
Zuerst wird die Bootup-Meldung als Heartbeat-Nachricht gesendet.
2
Sobald die JVM-407 in den Zustand Pre-Operational geht, sendet es die
Heartbeat-Nachricht Pre-Operational.
Zugriff auf das Objekt-Verzeichnis
Auf das Objekt-Verzeichnis kann erst über SDO zugegriffen werden, wenn die
JVM-407 im Zustand "Pre-Operational" ist.
NMT-Nachrichten
Nach der Initialisierung können NMT-Nachrichten gesendet und empfangen
werden. Der eigene Heartbeat-Zustand kann mit der Funktion
"CanOpenSetCommand" geändert werden.
Verwandte Themen:
 STX-Funktion CanOpenSetCommand auf Seite 96
Jetter AG
95
6 CANopen®-STX-API
STX-Funktion CanOpenSetCommand
Einleitung
Mit dem Aufruf der Funktion CanOpenSetCommand () kann der eigene
Heartbeat-Zustand und der Heartbeat-Zustand aller anderen Geräte
(NMT-Slaves) am CAN-Bus geändert werden.
Funktionsdeklaration
Function CanOpenSetCommand (
CANNo:Int,
iType:Int,
Value:Int,
) :Int;
Funktionsparameter
Die Funktion CanOpenSetCommand () hat die folgenden Parameter.
Parameter
Beschreibung
Wert
CANNo
CAN-Kanalnummer
0 ... CANMAX
iType
Auswahl des Kommandos
CAN_CMD_HEARTBEAT:
Nur der eigene Heartbeat-Zustand wird geändert.
CAN_CMD_NMT:
Bei allen Geräten oder bei
einem speziellen Gerät am
CAN-Bus wird der Heartbeat-Zustand geändert.
Value
Auswahl des Heartbeat-Zustandes bei Kommando
CAN_CMD_HEARTBEAT:
CAN_HEARTBEAT_STOPPED (0x04)
CAN_HEARTBEAT_OPERATIONAL (0x05)
CAN_HEARTBEAT_PREOPERATIONAL (0x7F)
Auswahl des Heartbeat-Zustandes bei Kommando
CAN_CMD_NMT (NMT-Master):
CAN_NMT_OPERATIONAL (0x01) oder CAN_NMT_START
(0x01)
CAN_NMT_STOP (0x02)
CAN_NMT_PREOPERATIONAL (0x80)
CAN_NMT_RESET (0x81)
CAN_NMT_RESETCOMMUNICATION (0x82)
Hinweis
96
Die Auswahl des Kommandos CAN_CMD_NMT erfolgt über die Makrofunktion
CAN_CMD_NMT_Value (NodeID, CAN_CMD_NMT).
Für den Parameter Node-ID sind Werte von 0 bis 127 zulässig. 1 bis 127 ist
die Node-ID für ein bestimmtes Gerät. Soll das Kommando an alle Geräte am
CAN-Bus gesendet werden, wird der Parameter
CAN_CMD_NMT_ALLNODES (0) verwendet.
Jetter AG
JVM-407
Parameter CANNo
Rückgabewert
CANopen®-STX-API
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
0
JCM-350
4
JCM-620
2
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Verwenden der Funktion
(Beispiel 1)
0
ok
-1
Fehler bei der Parameterüberprüfung
Kommando nicht bekannt
Der eigene Heartbeat-Zustand soll auf "Operational" gesetzt werden.
Result := CanOpenSetCommand(0, CAN_CMD_HEARTBEAT,
CAN_HEARTBEAT_OPERATIONAL);
Verwenden der Funktion
(Beispiel 2)
Der eigene Heartbeat-Zustand und der Zustand von allen anderen Geräten
am CAN-Bus soll auf "Operational" gesetzt werden.
Result := CanOpenSetCommand(0,
CAN_CMD_NMT_Value(CAN_CMD_NMT_ALLNODES, CAN_CMD_NMT),
CAN_NMT_OPERATIONAL);
Verwenden der Funktion
(Beispiel 3)
Der Heartbeat-Zustand von dem Gerät mit der Node-ID 60 (0x3C) soll auf
"Operational" gesetzt werden.
Result := CanOpenSetCommand(0, CAN_CMD_NMT_Value(60, CAN_CMD_NMT),
CAN_NMT_OPERATIONAL);
Jetter AG
97
6 CANopen®-STX-API
STX-Funktion CanOpenUploadSDO
Einleitung
Mit dem Aufruf der Funktion CanOpenUploadSDO () wird gezielt auf ein bestimmtes Objekt im Objekt-Verzeichnis des Nachrichtenempfängers zugegriffen und der Wert des Objekts ausgelesen. Der Datenaustausch erfolgt entsprechend dem SDO-Upload-Protokoll. Als Transfertyp wird "segmented"
(mehr als 4 Datenbytes) und "expedited" (bis 4 Datenbytes) unterstützt.
Funktionsdeklaration
Function CanOpenUploadSDO (
CANNo:Int,
NodeID:Int,
wIndex:Word,
SubIndex:Byte,
DataType:Int,
DataLength:Int,
const ref DataAddr,
ref Busy: Int,
) :Int;
Funktionsparameter
Die Funktion CanOpenUploadSDO () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
0 ... CANMAX
NodeID
Node-ID des Nachrichtenempfängers
1 ... 127
wIndex
Index-Nummer des Objekts
0 ... 0xFFFF
SubIndex
Subindex-Nummer des Objekts
0 ... 255
DataType
Typ des zu empfangenden
Objekts
2 ... 27
DataLength
Datengröße der globalen Variablen DataAddr
DataAddr
Globale Variable, in die der
empfangene Wert eingetragen
werden soll
Busy
Zustand der SDO-Übertragung
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
98
0
ok
-1
Fehler bei der Parameterüberprüfung
-2
Steuerung im Stopp-Zustand
-3
DataType ist größer als DataLength
-4
nicht genug Speicher vorhanden
Jetter AG
JVM-407
Parameter CANNo
Parameter DataType
CANopen®-STX-API
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Jetter AG
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
0
JCM-350
4
JCM-620
2
Folgende Datentypen können empfangen werden.
Byte-Typen
Busy
Gerät
CANopen®-Format
Jetter-Format
1
CANOPEN_INTEGER8
CANOPEN_UNSIGNED8
Byte
2
CANOPEN_INTEGER16
CANOPEN_UNSIGNED16
Word
3
CANOPEN_INTEGER24
CANOPEN_UNSIGNED24
-
4
CANOPEN_INTEGER32
CANOPEN_UNSIGNED32
CANOPEN_REAL
Int
5
CANOPEN_INTEGER40
CANOPEN_UNSIGNED40
-
6
CANOPEN_INTEGER48
CANOPEN_UNSIGNED48
CANOPEN_TIME_OF_DAY
CANOPEN_TIME_DIFFERENCE
-
7
CANOPEN_INTEGER56
CANOPEN_UNSIGNED46
-
8
CANOPEN_INTEGER64
CANOPEN_UNSIGNED64
CANOPEN_REAL64
-
n
CANOPEN_VISIBLE_STRING
CANOPEN_OCTET_STRING
CANOPEN_UNICODE_STRING
CANOPEN_DOMAIN
String
Nach Aufruf der Funktion wird der Parameter Busy auf SDOACCESS_INUSE
gesetzt. Bei fehlerhafter Übertragung wird Busy auf SDOACCESS_ERROR
gesetzt. Bei erfolgreicher Übertragung erhält man die Anzahl der übertragenen Bytes zurück.
99
6 CANopen®-STX-API
Busy-Fehlercodes
Bei fehlerhafter Übertragung liefert Busy einen Fehlercode zurück. Die folgenden Fehlercodes gibt es:
SDOACCESS_STILLUSED
Ein anderer Task kommuniziert mit derselben Node-ID.
SDOACCESS_TIMEOUT
Es ist ein Timeout erfolgt, weil das Gerät mit der angegebenen Node-ID keine
Antwort gibt.
Antwortet das Gerät nicht innerhalb 1 Sekunde wird der Timeout gesetzt.
SDOACCESS_ILLCMD
Die Antwort auf die Anfrage ist ungültig.
SDOACCESS_ABORT
Ein Abbruch des Geräts mit der Node-ID ist erfolgt.
SDOACCESS_SYSERROR
Allgemeiner interner Fehler
Makrodefinitionen
Folgende Makros wurden im Zusammenhang mit dieser Funktion definiert:
SDOACCESS_FINISHED (busy)
Dieses Makro prüft, ob die Kommunikation beendet wurde.
SDOACCESS_ERROR (busy)
Dieses Makro prüft, ob ein Fehler aufgetreten ist.
Verwenden der Funktion
100
Result := CanOpenUploadSDO (
0,
66,
0x100A,
0,
CANOPEN_STRING,
sizeof(var_Versionstring),
var_Versionstring,
busy);
Jetter AG
JVM-407
JetSym STX-Programm
CANopen®-STX-API
Im folgenden Beispiel wird die Hersteller-Softwareversion aus dem
CANopen®-Objekt-Verzeichnis des Geräts mit der adressierten Node-ID
ausgelesen.
#Include "CanOpen.stxp"
Const
// CAN-No.
CAN_CONTROLLER_0 = 0;
// Node-ID Node_1
NodeID_Node_0 = 10;
// Node-ID Node 2
NodeID_Node_1 = 66;
End_Const;
Var
busy: Int;
Versionstring: String;
Objektindex: Word;
Subindex: Byte;
End_Var;
Task main autorun
Var
SW_Version: String;
End_Var;
SW_Version := 'v4.3.0.2004';
// Initialisierung CAN 0
CanOpenInit(CAN_CONTROLLER_0, NodeID_Node_0, SW_Version);
// Alle Geräte am CAN-Bus sind im Status PREOPERATIONAL
// Hersteller-Softwareversion per SDO anfordern
Objektindex := 0x100A;
Subindex := 0;
CanOpenUploadSDO(CAN_CONTROLLER_0, NodeID_Node_1, Objektindex,
Subindex, CANOPEN_STRING, sizeof(Versionstring), Versionstring,
busy);
When SDOACCESS_FINISHED(busy) Continue;
If (SDOACCESS_ERROR(busy)) Then
// Fehlerbehandlung
End_If;
//
Jetter AG
...
101
6 CANopen®-STX-API
//
//
...
...
End_Task;
102
Jetter AG
JVM-407
CANopen®-STX-API
STX-Funktion CanOpenDownloadSDO
Einleitung
Mit dem Aufruf der Funktion CanOpenDownloadSDO () wird gezielt auf ein
bestimmtes Objekt im Objekt-Verzeichnis des Nachrichtenempfängers zugegriffen und der Wert des Objekts beschrieben. Der Datenaustausch erfolgt
entsprechend dem SDO-Download-Protokoll. Als Transfertyp wird
"segmented" bzw. "block" (mehr als 4 Datenbytes) und "expedited" (bis 4 Datenbytes) unterstützt.
Funktionsdeklaration
Function CanOpenDownloadSDO (
CANNo:Int,
NodeID:Int,
wIndex:Word,
SubIndex:Byte,
DataType:Int,
DataLength:Int,
const ref DataAddr,
ref Busy: Int,
) :Int;
Funktionsparameter
Die Funktion CanOpenDownloadSDO () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
0 ... CANMAX
NodeID
Node-ID des Nachrichtenempfängers
1 ... 127
wIndex
Index-Nummer des Objekts
0 ... 0xFFFF
SubIndex
Subindex-Nummer des Objekts
0 ... 255
DataType
Typ des zu sendenden Objekts
2 ... 27
DataLength
Datengröße der globalen Variablen DataAddr
DataAddr
Globale Variable, in die der zu
sendende Wert eingetragen
werden soll
Busy
Zustand der SDO-Übertragung
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Jetter AG
0
ok
-1
Fehler bei der Parameterüberprüfung
-2
Bediengerät im Stopp-Zustand (eigener Heartbeat-Zustand)
-3
DataType ist größer als DataLength
-4
nicht genug Speicher vorhanden
103
6 CANopen®-STX-API
Parameter CANNo
Parameter DataType
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
104
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
0
JCM-350
4
JCM-620
2
Folgende Datentypen können empfangen werden.
Byte-Typen
Busy
Gerät
CANopen®-Format
Jetter-Format
1
CANOPEN_INTEGER8
CANOPEN_UNSIGNED8
Byte
2
CANOPEN_INTEGER16
CANOPEN_UNSIGNED16
Word
3
CANOPEN_INTEGER24
CANOPEN_UNSIGNED24
-
4
CANOPEN_INTEGER32
CANOPEN_UNSIGNED32
CANOPEN_REAL
Int
5
CANOPEN_INTEGER40
CANOPEN_UNSIGNED40
-
6
CANOPEN_INTEGER48
CANOPEN_UNSIGNED48
CANOPEN_TIME_OF_DAY
CANOPEN_TIME_DIFFERENCE
-
7
CANOPEN_INTEGER56
CANOPEN_UNSIGNED46
-
8
CANOPEN_INTEGER64
CANOPEN_UNSIGNED64
CANOPEN_REAL64
-
n
CANOPEN_VISIBLE_STRING
CANOPEN_OCTET_STRING
CANOPEN_UNICODE_STRING
CANOPEN_DOMAIN
String
Nach Aufruf der Funktion wird der Parameter Busy auf SDOACCESS_INUSE
gesetzt. Bei fehlerhafter Übertragung wird Busy auf SDOACCESS_ERROR
gesetzt. Bei erfolgreicher Übertragung erhält man die Anzahl der übertragenen Bytes zurück.
Jetter AG
JVM-407
Busy-Fehlercodes
CANopen®-STX-API
Bei fehlerhafter Übertragung liefert Busy einen Fehlercode zurück. Die folgenden Fehlercodes gibt es:
SDOACCESS_STILLUSED
Ein anderer Task kommuniziert mit derselben Node-ID.
SDOACCESS_TIMEOUT
Es ist ein Timeout erfolgt, weil das Gerät mit der Node-ID keine Antwort gibt.
Antwortet die angegebene Node-ID nicht innerhalb 1 Sekunde wird der Timeout gesetzt.
SDOACCESS_ILLCMD
Die Antwort auf die Anfrage ist ungültig.
SDOACCESS_ABORT
Ein Abbruch des Geräts mit der Node-ID ist erfolgt.
SDOACCESS_BLKSIZEINV
Kommunikationsfehler bei Block Download
SDOACCESS_SYSERROR
Allgemeiner interner Fehler
Makrodefinitionen
Folgende Makros wurden im Zusammenhang mit dieser Funktion definiert:
SDOACCESS_FINISHED (busy)
Dieses Makro prüft, ob die Kommunikation beendet wurde.
SDOACCESS_ERROR (busy)
Dieses Makro prüft, ob ein Fehler aufgetreten ist.
Verwenden der Funktion
Jetter AG
Result := CanOpenDownloadSDO (
0,
68,
0x1017,
0,
CANOPEN_WORD,
sizeof(var_Heartbeat_time),
var_Heartbeat_time,
busy);
105
6 CANopen®-STX-API
JetSym STX-Programm
Im folgenden Beispiel wird die Heartbeat-Zeit in das
CANopen®-Objekt-Verzeichnis des Geräts mit der adressierten Node-ID
eingetragen.
#Include "CanOpen.stxp"
Const
// CAN-No.
CAN_CONTROLLER_0 = 0;
// Node-ID Node_1
NodeID_Node_0 = 10;
// Node-ID Node 2
NodeID_Node_1 = 68;
End_Const;
Var
busy: Int;
Heartbeat_time: Int;
Objektindex: Word;
Subindex: Byte;
End_Var;
Task main autorun
Var
SW_Version: String;
End_Var;
SW_Version := 'v4.3.0.2004';
// Initialisierung CAN 0
CanOpenInit(CAN_CONTROLLER_0, NodeID_Node_0, SW_Version);
// Gerät mit der Node-ID NodeID_Node_1 am CAN-Bus in den Status
PREOPERATIONAL setzen
CanOpenSetCommand(0, CAN_CMD_NMT_Value(NodeID_Node_1,
CAN_CMD_NMT), CAN_NMT_PREOPERATIONAL);
// Heartbeat-Zeit des adressierten Geräts per SDO ändern
Objektindex := 0x1017;
Subindex := 0;
CanOpenDownloadSDO(CAN_CONTROLLER_0, NodeID_Node_1, Objektindex,
Subindex, CANOPEN_WORD, sizeof(Heartbeat_time), Heartbeat_time,
busy);
When SDOACCESS_FINISHED(busy) Continue;
If (SDOACCESS_ERROR(busy)) Then
// Fehlerbehandlung
106
Jetter AG
JVM-407
CANopen®-STX-API
End_If;
// Alle Geräte am CAN-Bus wieder in den Status OPERATIONAL setzen
CanOpenSetCommand(CAN_CONTROLLER_0,
CAN_CMD_NMT_Value(CAN_CMD_NMT_ALLNODES, CAN_CMD_NMT),
CAN_NMT_OPERATIONAL);
//
//
//
...
...
...
End_Task;
Jetter AG
107
6 CANopen®-STX-API
STX-Funktion CanOpenAddPDORx
Einleitung
Hinweise
Mit dem Aufruf der Funktion CanOpenAddPDORx () können Prozessdaten,
die andere CANopen®-Geräte senden, zum Empfang eingetragen werden.
Die Prozessdaten werden nur empfangen, wenn diese von einem
CANopen®-Gerät gesendet werden.
 Das PDO-Telegramm wird aber erst dann übertragen, wenn die
CANopen®-Geräte am Bus sich im Zustand "Operational" befinden.
 Die kleinste Zeiteinheit der Event-Time ist 1 ms.
 Die kleinste Zeiteinheit der Inhibit-Time ist 1 ms.
Funktionsdeklaration
Function CanOpenAddPDORx (
CANNo:Int,
CANID:Int,
BytePos:Int,
DataType:Int,
DataLength:Int,
const ref VarAddr,
EventTime: Int,
InhibitTime: Int,
Paramset: Int,
) :Int;
Funktionsparameter
Die Funktion CanOpenAddPDORx () hat die folgenden Parameter.
Parameter
108
Beschreibung
Wert
CANNo
CAN-Kanalnummer
0 ... CANMAX
CANID
CAN-Identifier 11 Bit
CAN-Identifier 29 Bit
0 ... 0x7FF
0 ... 0x1FFFFFFF
BytePos
Startposition der zu empfangenden Daten
0 ... 7
DataType
Datentyp der zu empfangenden
Daten
2 ... 13, 15 ... 27
DataLength
Datengröße der globalen Variablen VarAddr
VarAddr
Globale Variable, in die der
empfangene Wert eingetragen
wird
EventTime
Zeitlicher Abstand zw. zwei
Telegrammen (> Inhibit Time)
InhibitTime
Mindestabstand zwischen zwei
empfangenen Telegrammen (<
EventTime)
Paramset
Parameter bitcodiert
Jetter AG
JVM-407
Rückgabewert
CANopen®-STX-API
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Parameter CANID
0
ok
-1
Fehler bei der Parameterüberprüfung
-3
DataType ist größer als DataLength
-4
nicht genug Speicher vorhanden
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
0
JCM-350
4
JCM-620
2
Mit dem Parameter CANID wird der CAN-Identifier übergeben. Der
CAN-Identifier wird mit einem Makro erstellt. Der CAN-Identifier ist abhängig
von der Node-ID des anderen Kommunikationsteilnehmers und abhängig davon, ob es sich um eine PDO1-, PDO2-, PDO3- oder PDO4-Nachricht handelt.
Makrodefinitionen:
#Define CANOPEN_PDO1_RX (NodeID)
((NodeID) + 0x180)
#Define CANOPEN_PDO3_RX (NodeID)
((NodeID) + 0x380)
#Define CANOPEN_PDO2_RX (NodeID)
#Define CANOPEN_PDO4_RX (NodeID)
((NodeID) + 0x280)
((NodeID) + 0x480)
#Define CANOPEN_PDO1_TX (NodeID)
((NodeID) + 0x200)
#Define CANOPEN_PDO3_TX (NodeID)
((NodeID) + 0x400)
#Define CANOPEN_PDO2_TX (NodeID)
#Define CANOPEN_PDO4_TX (NodeID)
((NodeID) + 0x300)
((NodeID) + 0x500)
Beispiel für den Aufruf des Makros:
CANOPEN_PDO2_RX (64)
 Der daraus resultierende CAN-Identifier ist: 2C0h = 40h + 280h
Default-CAN-IdentifierVerteilung
Jetter AG
Bei CANopen® ist die folgende CAN-Identifier-Verteilung vordefiniert. Dabei
wird die Knotennummer in den Identifier eingebettet.
109
6 CANopen®-STX-API
Identifier 11-Bit
(binär)
Identifier
(dezimal)
Identifier
(hexadezimal)
Funktion
000000000000
0
0
Netzwerkmanagement
000100000000
128
80h
Synchronisation
0001xxxxxxxx
129 - 255
81h - FFh
Emergency
0011xxxxxxxx
385 - 511
181h - 1FFh
PDO1 (tx)
0100xxxxxxxx
513 - 639
201h - 27Fh
PDO1 (rx)
0101xxxxxxxx
641 - 767
281h - 2FFh
PDO2 (tx)
0110xxxxxxxx
769 - 895
301h - 37Fh
PDO2 (rx)
0111xxxxxxxx
897 - 1023
381h - 3FFh
PDO3 (tx)
1000xxxxxxxx
1025 - 1151
401h -47Fh
PDO3 (rx)
1001xxxxxxxx
1153 - 1279
481h - 4FFh
PDO4 (tx)
1010xxxxxxxx
1281 - 1407
501h - 57Fh
PDO4 (rx)
1011xxxxxxxx
1409 - 1535
581h - 5FFh
SDO senden
1100xxxxxxxx
1537 - 1663
601h - 67Fh
SDO empfangen
1110xxxxxxxx
1793 - 1919
701h - 77Fh
NMT Error Control
xxxxxxxx = Knotennummer 1 - 127
Parameter DataType
Folgende Datentypen können empfangen werden.
Byte-Typen
110
CANopen®-Format
Jetter-Format
1
CANOPEN_INTEGER8
CANOPEN_UNSIGNED8
Byte
2
CANOPEN_INTEGER16
CANOPEN_UNSIGNED16
Word
3
CANOPEN_INTEGER24
CANOPEN_UNSIGNED24
-
4
CANOPEN_INTEGER32
CANOPEN_UNSIGNED32
CANOPEN_REAL
Int
5
CANOPEN_INTEGER40
CANOPEN_UNSIGNED40
-
6
CANOPEN_INTEGER48
CANOPEN_UNSIGNED48
CANOPEN_TIME_OF_DAY
CANOPEN_TIME_DIFFERENCE
-
7
CANOPEN_INTEGER56
CANOPEN_UNSIGNED46
-
Jetter AG
JVM-407
CANopen®-STX-API
Byte-Typen
Parameter Paramset
CANopen®-Format
Jetter-Format
1
CANOPEN_INTEGER8
CANOPEN_UNSIGNED8
Byte
8
CANOPEN_INTEGER64
CANOPEN_UNSIGNED64
CANOPEN_REAL64
-
n
CANOPEN_VISIBLE_STRING
CANOPEN_OCTET_STRING
CANOPEN_UNICODE_STRING
CANOPEN_DOMAIN
String
Folgende Parameter können an die Funktion übergeben werden. Mehrere
Parameter können miteinander über die Oder-Funktion verknüpft werden.
CANOPEN_ASYNCPDORTRONLY
Empfange asynchrone PDOs durch das Senden eines RTR-Frames (nach
abgelaufener EventTime) an den Sender.
CANOPEN_ASYNCPDO
Empfange asynchrone PDO.
CANOPEN_PDOINVALID
PDO wird nicht empfangen. Speicherplatz wird reserviert.
CANOPEN_NORTR
PDO kann nicht per RTR (Remote Request) angefordert werden.
CANOPEN_29BIT
Verwende 29 Bit-Identifier
Default: 11 Bit-Identifier
Verwenden der Funktion
Jetter AG
Result := CanOpenAddPDORx (
0,
662,
0,
CANOPEN_DWORD,
sizeof(var_Data_1_of_Node_1),
var_Data_1_of_Node_1,
1000,
10,
CANOPEN_ASYNCPDO | CANOPEN_NORTR);
111
6 CANopen®-STX-API
JetSym STX-Programm
JVM-407 mit der Node-ID 10 möchte von zwei CANopen®-Geräten mit der
Node-ID 64 und 102 ein PDO empfangen. Dazu wird die Funktion
CanOpenAddPDORx () aufgerufen. Nach Ablauf des Programms empfängt
der JVM-407 die zyklischen PDO-Telegramme.
NodeID_Node_0
NodeID_Node_2
NodeID_Node_1
JVM-407
JXM-IO-E02
JXM-IO-E09
CAN 0
120 Ohm
120 Ohm
CAN-Bus
#Include "CanOpen.stxp"
Const
// CAN-No.
CAN_CONTROLLER_0 = 0;
// Node-ID Node_1
NodeID_Node_0 = 10;
// Node-ID Node 2
NodeID_Node_1 = 64;
// Node-ID Node 3
NodeID_Node_2 = 102;
// Event_Zeit in ms
Event_Time = 1000;
// Inhibit-Zeit in ms
Inhibit_Time = 10;
End_Const;
Var
Data_1_of_Node_1: Int;
Data_2_of_Node_1: Int;
Data_1_of_Node_2: Int;
End_Var;
Task main autorun
Var
112
Jetter AG
JVM-407
CANopen®-STX-API
SW_Version: String;
End_Var;
SW_Version := 'v4.3.0.2004';
// Initialisierung CAN 0
CanOpenInit(CAN_CONTROLLER_0, NodeID_Node_0, SW_Version);
// Prozessdaten zum Empfang eintragen
CanOpenAddPDORx(CAN_CONTROLLER_0,
CANOPEN_PDO2_RX(NodeID_Node_1), 0, CANOPEN_DWORD,
sizeof(Data_1_of_Node_1), Data_1_of_Node_1, Event_Time,
Inhibit_Time, CANOPEN_ASYNCPDORTRONLY | CANOPEN_NORTR);
CanOpenAddPDORx(CAN_CONTROLLER_0,
CANOPEN_PDO2_RX(NodeID_Node_1), 4, CANOPEN_DWORD,
sizeof(Data_2_of_Node_1), Data_2_of_Node_1, Event_Time,
Inhibit_Time, CANOPEN_ASYNCPDORTRONLY | CANOPEN_NORTR);
CanOpenAddPDORx(CAN_CONTROLLER_0,
CANOPEN_PDO3_RX(NodeID_Node_2), 0, CANOPEN_BYTE,
sizeof(Data_1_of_Node_2), Data_1_of_Node_2, Event_Time,
Inhibit_Time, CANOPEN_ASYNCPDO | CANOPEN_NORTR);
// Alle Geräte am CAN-Bus sind im Status PREOPERATIONAL
// Alle Geräte am CAN-Bus in den Status OPERATIONAL setzen
CanOpenSetCommand(CAN_CONTROLLER_0,
CAN_CMD_NMT_Value(CAN_CMD_NMT_ALLNODES, CAN_CMD_NMT),
CAN_NMT_START);
//Ab jetzt werden PDO-Telegramme übertragen.
//
...
//
...
//
...
End_Task;
Jetter AG
113
6 CANopen®-STX-API
STX-Funktion CanOpenAddPDOTx
Einleitung
Hinweise
Mit dem Aufruf der Funktion CanOpenAddPDOTx () können Prozessdaten auf
den Bus gelegt werden.
Das muss aber nicht heißen, dass andere CANopen®-Geräte am Bus diese
Prozessdaten auch lesen.
 Das PDO-Telegramm wird aber erst dann übertragen, wenn die
CANopen®-Geräte am Bus sich im Zustand "Operational" befinden.
 Sobald sich die Prozessdaten ändern, wird sofort wieder ein
PDO-Telegramm übertragen.
 Die kleinste Zeiteinheit der Event-Time ist 1 ms.
 Die kleinste Zeiteinheit der Inhibit-Time ist 1 ms.
 Alle nicht belegten Bytes eines Telegramms werden mit Null gesendet.
Funktionsdeklaration
Function CanOpenAddPDOTx (
CANNo:Int,
CANID:Int,
BytePos:Int,
DataType:Int,
DataLength:Int,
const ref VarAddr,
EventTime: Int,
InhibitTime: Int,
Paramset: Int,
) :Int;
Funktionsparameter
Die Funktion CanOpenAddPDOTx () hat die folgenden Parameter.
Parameter
114
Beschreibung
Wert
CANNo
CAN-Kanalnummer
0 ... CANMAX
CANID
CAN-Identifier 11 Bit
CAN-Identifier 29 Bit
0 ... 0x7FF
0 ... 0x1FFFFFFF
BytePos
Startposition der zu sendenden
Daten
0 ... 7
DataType
Datentyp der zu sendenden
Daten
2 ... 13, 15 ... 27
DataLength
Datengröße der globalen Variablen VarAddr
VarAddr
Globale Variable, in die der zu
sendende Wert eingetragen wird
EventTime
Zeitlicher Abstand zw. zwei
Telegrammen (> Inhibit Time)
InhibitTime
Mindestabstand zwischen zwei
zu sendenden Telegrammen (<
EventTime)
Paramset
Parameter bitcodiert
Jetter AG
JVM-407
Rückgabewert
CANopen®-STX-API
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Parameter CANID
0
ok
-1
Fehler bei der Parameterüberprüfung
-3
DataType ist größer als DataLength
-4
nicht genug Speicher vorhanden
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
0
JCM-350
4
JCM-620
2
Mit dem Parameter CANID wird der CAN-Identifier übergeben. Der
CAN-Identifier wird mit einem Makro erstellt. Der CAN-Identifier ist abhängig
von der Node-ID des anderen Kommunikationsteilnehmers und abhängig davon, ob es sich um eine PDO1-, PDO2-, PDO3- oder PDO4-Nachricht handelt.
Makrodefinitionen:
#Define CANOPEN_PDO1_RX (NodeID)
((NodeID) + 0x180)
#Define CANOPEN_PDO3_RX (NodeID)
((NodeID) + 0x380)
#Define CANOPEN_PDO2_RX (NodeID)
#Define CANOPEN_PDO4_RX (NodeID)
((NodeID) + 0x280)
((NodeID) + 0x480)
#Define CANOPEN_PDO1_TX (NodeID)
((NodeID) + 0x200)
#Define CANOPEN_PDO3_TX (NodeID)
((NodeID) + 0x400)
#Define CANOPEN_PDO2_TX (NodeID)
#Define CANOPEN_PDO4_TX (NodeID)
((NodeID) + 0x300)
((NodeID) + 0x500)
Beispiel für den Aufruf des Makros:
CANOPEN_PDO2_RX (64)
 Der daraus resultierende CAN-Identifier ist: 2C0h = 40h + 280h
Default-CAN-IdentifierVerteilung
Jetter AG
Bei CANopen® ist die folgende CAN-Identifier-Verteilung vordefiniert. Dabei
wird die Knotennummer in den Identifier eingebettet.
115
6 CANopen®-STX-API
Identifier 11-Bit
(binär)
Identifier
(dezimal)
Identifier
(hexadezimal)
Funktion
000000000000
0
0
Netzwerkmanagement
000100000000
128
80h
Synchronisation
0001xxxxxxxx
129 - 255
81h - FFh
Emergency
0011xxxxxxxx
385 - 511
181h - 1FFh
PDO1 (tx)
0100xxxxxxxx
513 - 639
201h - 27Fh
PDO1 (rx)
0101xxxxxxxx
641 - 767
281h - 2FFh
PDO2 (tx)
0110xxxxxxxx
769 - 895
301h - 37Fh
PDO2 (rx)
0111xxxxxxxx
897 - 1023
381h - 3FFh
PDO3 (tx)
1000xxxxxxxx
1025 - 1151
401h -47Fh
PDO3 (rx)
1001xxxxxxxx
1153 - 1279
481h - 4FFh
PDO4 (tx)
1010xxxxxxxx
1281 - 1407
501h - 57Fh
PDO4 (rx)
1011xxxxxxxx
1409 - 1535
581h - 5FFh
SDO senden
1100xxxxxxxx
1537 - 1663
601h - 67Fh
SDO empfangen
1110xxxxxxxx
1793 - 1919
701h - 77Fh
NMT Error Control
xxxxxxxx = Knotennummer 1 - 127
Parameter DataType
Folgende Datentypen können empfangen werden.
Byte-Typen
116
CANopen®-Format
Jetter-Format
1
CANOPEN_INTEGER8
CANOPEN_UNSIGNED8
Byte
2
CANOPEN_INTEGER16
CANOPEN_UNSIGNED16
Word
3
CANOPEN_INTEGER24
CANOPEN_UNSIGNED24
-
4
CANOPEN_INTEGER32
CANOPEN_UNSIGNED32
CANOPEN_REAL
Int
5
CANOPEN_INTEGER40
CANOPEN_UNSIGNED40
-
6
CANOPEN_INTEGER48
CANOPEN_UNSIGNED48
CANOPEN_TIME_OF_DAY
CANOPEN_TIME_DIFFERENCE
-
7
CANOPEN_INTEGER56
CANOPEN_UNSIGNED46
-
Jetter AG
JVM-407
CANopen®-STX-API
Byte-Typen
Parameter Paramset
CANopen®-Format
Jetter-Format
1
CANOPEN_INTEGER8
CANOPEN_UNSIGNED8
Byte
8
CANOPEN_INTEGER64
CANOPEN_UNSIGNED64
CANOPEN_REAL64
-
n
CANOPEN_VISIBLE_STRING
CANOPEN_OCTET_STRING
CANOPEN_UNICODE_STRING
CANOPEN_DOMAIN
String
Folgende Parameter können an die Funktion übergeben werden. Mehrere
Parameter können miteinander über die Oder-Funktion verknüpft werden.
CANOPEN_ASYNCPDORTRONLY
Sende asynchrone PDOs durch das Empfangen eines RTR-Frames.
CANOPEN_ASYNCPDO
Sende asynchrone PDO.
CANOPEN_PDOINVALID
PDO wird nicht gesendet.
CANOPEN_NORTR
PDO kann nicht per RTR (Remote Request) angefordert werden.
CANOPEN_29BIT
Verwende 29 Bit-Identifier
Default: 11 Bit-Identifier
Verwenden der Funktion
Result := CanOpenAddPDOTx (
0,
842,
0,
CANOPEN_DWORD,
sizeof(var_Data_1_of_Node_3),
var_Data_1_of_Node_3,
1000,
100,
CANOPEN_ASYNCPDO | CANOPEN_NORTR);
JetSym STX-Programm
JVM-407 sendet an zwei CANopen®-Geräte mit der Node-ID 74 und 112
Prozessdaten. Nach Ablauf des Programms und bei Änderungen sendet der
JVM-407 zyklisch alle 3.000 ms (Event-Time) die PDO-Telegramme. Maximal
wird alle 10 ms (Inhibit-Time) das PDO-Telegramm gesendet.
Jetter AG
117
6 CANopen®-STX-API
NodeID_Node_0
NodeID_Node_2
NodeID_Node_1
JVM-407
JXM-IO-E02
JXM-IO-E09
CAN 0
120 Ohm
120 Ohm
CAN-Bus
#Include "CanOpen.stxp"
Const
// CAN-No.
CAN_CONTROLLER_0 = 0;
// Node-ID Node_1
NodeID_Node_0 = 10;
// Node-ID Node 4
NodeID_Node_1 = 74;
// Node-ID Node 5
NodeID_Node_2 = 112;
// Event_Zeit in ms
Event_Time = 3000;
// Inhibit-Zeit in ms
Inhibit_Time = 100;
End_Const;
Var
Data_1_of_Node_1: Int;
Data_2_of_Node_1: Int;
Data_1_of_Node_2: Byte;
End_Var;
Task main autorun
Var
SW_Version: String;
End_Var;
SW_Version := 'v4.3.0.2004';
118
Jetter AG
JVM-407
CANopen®-STX-API
// Initialisierung CAN 0
CanOpenInit(CAN_CONTROLLER_0, NodeID_Node_0, SW_Version);
// Daten per PDO senden
CanOpenAddPDOTx(CAN_CONTROLLER_0,
CANOPEN_PDO2_TX(NodeID_Node_1), 0, CANOPEN_DWORD,
sizeof(Data_1_of_Node_1), Data_1_of_Node_1 Event_Time,
Inhibit_Time, CANOPEN_ASYNCPDORTRONLY | CANOPEN_NORTR);
CanOpenAddPDOTx(CAN_CONTROLLER_0,
CANOPEN_PDO2_TX(NodeID_Node_1), 4, CANOPEN_DWORD,
sizeof(Data_2_of_Node_1), Data_2_of_Node_1, Event_Time,
Inhibit_Time, CANOPEN_ASYNCPDORTRONLY | CANOPEN_NORTR);
CanOpenAddPDOTx(CAN_CONTROLLER_0,
CANOPEN_PDO3_TX(NodeID_Node_2), 0, CANOPEN_BYTE,
sizeof(Data_1_of_Node_2), Data_1_of_Node_2, Event_Time,
Inhibit_Time, CANOPEN_ASYNCPDO | CANOPEN_NORTR);
// Alle Geräte am CAN-Bus sind im Status PREOPERATIONAL
// Alle Geräte am CAN-Bus in den Status OPERATIONAL setzen
CanOpenSetCommand(CAN_CONTROLLER_0,
CAN_CMD_NMT_Value(CAN_CMD_NMT_ALLNODES, CAN_CMD_NMT),
CAN_NMT_START);
//Ab jetzt werden PDO-Telegramme übertragen.
//
...
//
...
//
...
End_Task;
Jetter AG
119
6 CANopen®-STX-API
CANopen®-Objektverzeichnis des JVM-407
Unterstützte Objekte
Folgende Objekte werden vom Betriebssystem des JVM-407 unterstützt:
Index
(hex)
Device Type Object
(Index 0x1000)
Objekt-Name
Typ
Attribute
1000
VAR
Device Type
Unsigned32
ro
1001
VAR
Error Register
Unsigned8
ro
1002
VAR
Manufacturer Status
Unsigned32
ro
1003
ARRAY
Pre-defined Error Field
Unsigned32
ro
1008
VAR
Manufacturer Device Name
String
const
1009
VAR
Manufacturer Hardware Version
String
const
100A
VAR
Manufacturer Software Version
String
const
100B
VAR
Node-ID
Unsigned32
ro
1017
VAR
Producer Heartbeat Time
Unsigned16
rw
1018
RECORD
Identity
Identity
ro
1200
RECORD
Server 1 - SDO Parameter
SDO Parameter
ro
1201
RECORD
Server 2 - SDO Parameter
SDO Parameter
rw
1203
RECORD
Server 3 - SDO Parameter
SDO Parameter
rw
1203
RECORD
Server 4 - SDO Parameter
SDO Parameter
rw
In der folgenden Tabelle ist die Struktur des "Device Type Object" dargestellt.
Index
0x1000
Error Register Object
(Index 0x1001)
Objekt
(Kürzel)
Sub-Index
0
Default
Beschreibung
0x0000012D
Geräteart (schreibgeschützt)
In der folgenden Tabelle ist die Struktur des "Error Register Object" dargestellt.
Index
0x1001
Sub-Index
0
Default
0
Beschreibung
Fehlerregister (schreibgeschützt)
Dieses Objekt übernimmt die Fehlerregisterfunktion von CANopen®.
Bit 0 = Nicht näher spezifizierter Fehler
Die anderen Bits werden derzeit nicht verwendet.
120
Jetter AG
JVM-407
Pre-defined Error Field
Object (Index 0x1003)
CANopen®-STX-API
In der folgenden Tabelle ist die Struktur des "Pre-defined Error Field Object"
dargestellt.
Index
0x1003
Sub-Index
Default
Beschreibung
0
0
Anzahl Fehler, die in das Standard-Fehlerfeld des Arrays eingetragen
wurden
1
0
Aktuellster Fehler
0 gibt an, dass kein Fehler vorliegt
2 ... 254
-
Ältere Fehler
Dieses Objekt zeigt die Liste mit der Historie der vom JVM-407 erkannten
Fehler. Die maximale Länge der Liste beträgt 254 Fehler. Bei einem Neustart
wird der Inhalt der Liste gelöscht.
Aufbau des Standard-Fehlerfeldes
2-Byte LSB: Fehlercode
2-Byte MSB: Ergänzende Informationen
Manufacturer Device
Name Object (Index
0x1008)
In der folgenden Tabelle ist die Struktur des "Manufacturer Device Name
Object" dargestellt.
Index
0x1008
Manufacturer Hardware
Version Object (Index
0x1009)
0
Default
JVM-407
Beschreibung
Name der Hardware
In der folgenden Tabelle ist die Struktur des "Manufacturer Hardware Version
Object" dargestellt.
Index
0x1009
Manufacturer Software
Version Object (Index
0x100A)
Sub-Index
Sub-Index
Default
0
Beschreibung
OS-Version des Geräts
In der folgenden Tabelle ist die Struktur des "Manufacturer Software Version
Object" dargestellt.
Index
0x100A
Sub-Index
Default
0
Beschreibung
Software-Version des Anwenderprogramms, das auf dem JVM-407 läuft
Der Eintrag unter diesem Index erfolgt über den Parameter "SWVersion" der
STX-Funktion CanOpenInit ().
Node-ID Object (Index
0x100B)
In der folgenden Tabelle ist die Struktur des "Node-ID Object" dargestellt.
Index
0x100B
Jetter AG
Sub-Index
0
Default
Beschreibung
Eigene Node-ID
121
6 CANopen®-STX-API
Producer Heartbeat Time
Object (Index 0x1017)
In der folgenden Tabelle ist die Struktur des "Producer Heartbeat Time Object"
dargestellt.
Index
0x1017
122
Sub-Index
0
Default
1.000 [ms]
Beschreibung
Heartbeat-Zeit
Jetter AG
JVM-407
7
SAE J1939-STX-API
SAE J1939-STX-API
Einleitung
Dieses Kapitel beschreibt die STX-Funktionen der SAE J1939-STX-API.
Der SAE J1939-Standard
SAE J1939 ist ein offener Standard für die Vernetzung und Kommunikation im
Nutzfahrzeugbereich. Schwerpunkt der Anwendung ist die Vernetzung von
Antriebsstrang und Chassis. Das Protokoll J1939 stammt von der internationalen Society of Automotive Engineers (SAE) und arbeitet auf dem Physical
Layer mit CAN-Highspeed nach ISO 11898.
Anwendung
Diese STX-Funktionen werden in der Kommunikation zwischen der Steuerung
JVM-407 und anderen Steuergeräten im Fahrzeug angewendet. Es werden in
der Regel Motordaten, z. B. Motordrehzahl, Geschwindigkeit oder Kühlwassertemperatur, ausgelesen und auf dem Display angezeigt.
Dokumente
Die wichtigsten SAE J1939-Spezifikationen sind:





J1939-11 - Informationen zum Physical Layer
J1939-21 - Informationen zum Data Link Layer
J1939-71 - Informationen zum Application Layer Fahrzeuge
J1939-73 - Informationen zum Application Layer Bereich Diagnose
J1939-81 - Netzwerkmanagement
Inhalt
Thema
Seite
Aufbau einer J1939-Nachricht .................................................................... 124
STX-Funktion SAEJ1939Init ....................................................................... 126
STX-Funktion SAEJ1939SetSA ................................................................. 128
STX-Funktion SAEJ1939GetSA ................................................................. 129
STX-Funktion SAEJ1939AddRx ................................................................. 130
STX-Funktion SAEJ1939AddTx ................................................................. 133
STX-Funktion SAEJ1939RequestPGN ...................................................... 136
STX-Funktion SAEJ1939GetDM1 .............................................................. 139
STX-Funktion SAEJ1939GetDM2 .............................................................. 142
STX-Funktion SAEJ1939SetSPNConversion ............................................ 145
STX-Funktion SAEJ1939GetSPNConversion ............................................ 147
Jetter AG
123
7 SAE J1939-STX-API
Aufbau einer J1939-Nachricht
Aufbau einer
J1939-Nachricht
Die folgende Grafik zeigt den Aufbau einer J1939-Nachricht:
Abkürzung
DA
Destination Address (Zieladresse)
GE
Group Extensions (Gruppenerweiterungen)
PDU
Protocol Data Unit (Protokolldateneinheit)
PGN
Parameter Group Number (Parametergruppennummer)
SA
Bedeutung der PGN Parameter Group
Number
Bezeichnung (Bedeutung)
Source Address (Quelladresse)
Die PGN ist eine in der SAE J1939-Norm definierte Nummer, die mehrere
SPNs zu einer sinnvollen Gruppe zusammenfügt. Die PGN ist Teil des
CAN-Identifiers. Die 8-Byte-Daten (PDU) beinhalten die Werte der einzelnen
SPN.
Es folgt ein Beispiel für die PGN 65262 (0xFEEE):
PGN 65262
- ET1
124
Engine Temperature 1
Teil der PGN
Wert
Transmission Repetition Rate
1s
Data Length
8
Extended Data Page
0
Data Page
0
PDU Format
254
PDU Specific
238
Default Priority
6
Parameter Group Number
65262
Bemerkung
PGN Supporting Information
in Hex: 0xFEEE
Jetter AG
JVM-407
Jetter AG
SAE J1939-STX-API
Startposition
Länge
Parametername
SPN
1
1 Byte
Engine Coolant Temperature
110
2
1 Byte
Engine Fuel Temperature 1
174
3-4
2 Bytes
Engine Oil Temperature 1
175
5-6
2 Bytes
Engine Turbocharger Oil Temperature
176
7
1 Byte
Engine Intercooler Temperature
52
8
1 Byte
Engine Intercooler Thermostat Opening
1134
125
7 SAE J1939-STX-API
STX-Funktion SAEJ1939Init
Einleitung
Mit dem Aufruf der Funktion SAEJ1939Init () wird einer der vorhandenen
CAN-Busse (nicht CAN 0 weil reserviert für CANopen®) für das
J1939-Protokoll initialisiert. Die JVM-407 hat ab dann die durch den Funktionsparameter mySA zugeteilte SA (Source Address). Es handelt sich dabei
um die eigene Geräteadresse am Bus.
Funktionsdeklaration
Function SAEJ1939Init (
CANNo:Int,
mySA:Byte,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939Init () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
mySA
Eigene Source-Adresse
0 ... 253
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Verwenden der Funktion
0
ok
-1
Fehler bei der Parameterüberprüfung
-3
Nicht genug Speicher für SAE J1939
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
Initialisieren des CAN-Busses 1. Das Gerät JVM-407 hat die SA 20 (0x14).
Das Gerät JVM-407 kann jetzt Nachrichten mit der eingestellten SA (und nur
diese Nachrichten) senden.
Result := SAEJ1939Init(1, 20);
126
Jetter AG
JVM-407
Address Claiming
Jetter AG
SAE J1939-STX-API
Address Claiming ist nicht implementiert.
127
7 SAE J1939-STX-API
STX-Funktion SAEJ1939SetSA
Einleitung
Mit dem Aufruf der Funktion SAEJ1939SetSA wird die eigene SA (Source
Address) zur Laufzeit geändert.
Funktionsdeklaration
Function SAEJ1939SetSA (
CANNo:Int,
mySA:Byte,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939SetSA () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
mySA
Neue SA
0 ... 253
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Verwenden der Funktion
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
Die SA wird zur Laufzeit geändert.
Result := SAEJ1939SetSA(1, 20);
Wichtiger Hinweis
128
Nachrichten werden sofort mit der neuen SA gesendet bzw. empfangen.
Jetter AG
JVM-407
SAE J1939-STX-API
STX-Funktion SAEJ1939GetSA
Einleitung
Mit dem Aufruf der Funktion SAEJ1939GetSA () kann die eigene SA (Source
Address) festgestellt werden.
Funktionsdeklaration
Function SAEJ1939GetSA (
CANNo:Int,
ref mySA:Byte,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939GetSA () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
mySA
Aktuell eingestellte SA
0 ... 253
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Verwenden der Funktion
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
Es wird die aktuell eingestellte SA zurückgegeben.
Result := SAEJ1939SetSA(1, actual_SA);
Jetter AG
129
7 SAE J1939-STX-API
STX-Funktion SAEJ1939AddRx
Einleitung
Mit dem Aufruf der Funktion SAEJ1939AddRx () wird das JVM-407 aufgefordert, eine bestimmte Nachricht zu empfangen. Diese Nachricht wird von einem anderen Busteilnehmer gesendet. Die Adresse dieses Busteilnehmers
wird als Parameter bySA dieser Funktion übergeben. Wird die Nachricht nicht
gesendet, bleibt der zuletzt empfangene Wert bestehen. Das zyklische Lesen
erfolgt solange, bis die Funktion SAEJ1939Init () erneut aufgerufen wird.
Funktionsdeklaration
Function SAEJ1939AddRx (
CANNo:Int,
IPGN:Long,
bySA:Byte,
BytePos:Int,
BitPos:Int,
DataType:Int,
DataLength:Int,
const ref VarAddr,
ref stJ1939:TJ1939Rx
EventTime: Int,
InhibitTime: Int,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939AddRx () hat die folgenden Parameter.
Parameter
130
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
IPGN
PGN
Parameter Group Number
0 ... 0x3FFFF
bySA
Source Address vom Sender der
Nachricht
0 ... 253
BytePos
Startposition des Bytes der zu
empfangenden Daten
1 ... n
BitPos
Startposition des Bits der zu
empfangenden Daten
1 ... 8
DataType
Datentyp der zu empfangenden
Daten
1 ... 3, 10 ... 16
DataLength
Datengröße der globalen Variablen VarAddr
VarAddr
Globale Variable, in die der
empfangene Wert eingetragen
wird
TJ1939Rx
Kontrollstruktur
EventTime
Zeitlicher Abstand zw. zwei
Telegrammen (> Inhibit Time)
Default-Wert: 1.000 ms
InhibitTime
Mindestabstand zwischen zwei
empfangenen Telegrammen (<
EventTime)
Default-Wert: 100 ms
Jetter AG
JVM-407
Rückgabewert
SAE J1939-STX-API
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Parameter DataType
Kontrollstruktur
TJ1939Rx
Jetter AG
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
Die folgenden Datentypen sind möglich.
Byte-Typen
Bit-Typen
SAEJ1939
1
-
SAEJ1939_UNSIGNED8
SAEJ1939_BYTE
2
-
SAEJ1939_UNSIGNED16
SAEJ1939_WORD
4
-
SAEJ1939_UNSIGNED32
SAEJ1939_DWORD
n
-
SAEJ1939_STRING
-
1
SAEJ1939_1BIT
-
2
SAEJ1939_2BIT
-
3
SAEJ1939_3BIT
-
4
SAEJ1939_4BIT
-
5
SAEJ1939_5BIT
-
6
SAEJ1939_6BIT
-
7
SAEJ1939_7BIT
TJ1939Rx : Struct
// Status der empfangenen Nachricht
byStatus
: Byte;
// Priorität der empfangenen Nachricht
byPriority
: Byte;
End_Struct;
131
7 SAE J1939-STX-API
Verwenden der Funktion
Result := SAEJ1939AddRx (
1,
0xFEEE,
0x00,
2
0
SAEJ1939_BYTE,
sizeof(var_Fueltemp),
var_Fueltemp,
struct_TJ1939Rx_EngineTemperatureTbl,
1500,
120);
JetSym STX-Programm
Das Gerät JVM-407 mit der eigenen SA von 20 möchte die aktuelle Treibstofftemperatur empfangen und anzeigen. Die Parameter InhibitTime und
EventTime werden beim Funktionsaufruf nicht explizit aufgeführt. In diesem
Fall werden die Default-Werte verwendet. Die Steuerung, die die Treibstofftemperatur erfasst, hat die SA von 0. In der Praxis ist die Adresse der Steuerung aus der Dokumentation des Motorherstellers zu erfahren.
Die Treibstofftemperatur hat die SPN 174 und ist Bestandteil (2. Byte) der
PGN 65262 Motortemperatur 1.
#Include "SAEJ1939.stxp"
Var
bySAEJ1939Channel : Byte;
own_Source_Address : Byte;
// PGN 65262 Engine Temperature 1
Fueltemp : Byte;
EngineTemperatureTbl : TJ1939Rx;
End_Var;
Task main autorun
// Initialisierung CAN 1
bySAEJ1939Channel := 1;
own_Source_Address := 20;
SAEJ1939Init (bySAEJ1939Channel, own_Source_Address);
// Treibstofftemperatur empfangen
SAEJ1939AddRx (bySAEJ1939Channel, 65262, 0x00, 2, 1, SAEJ1939_BYTE,
sizeof(Fueltemp), Fueltemp, EngineTemperatureTbl);
End_Task;
Anleitung des Motorherstellers
132
Der Kunde erfährt die Daten (Priorität, PGN, SA und den Aufbau der Datenbytes) aus der Anleitung des Motorherstellers.
Jetter AG
JVM-407
SAE J1939-STX-API
STX-Funktion SAEJ1939AddTx
Einleitung
Mit dem Aufruf der Funktion SAEJ1939AddTx () wird das Gerät JVM-407
aufgefordert, eine bestimmte Nachricht zyklisch über den Bus zu senden.
Das zyklische Senden erfolgt solange, bis die Funktion SAEJ1939Init () erneut
aufgerufen wird.
Die Daten werden nach Ablauf der Event Time bzw. bei Änderung der abgegebenen Variablen und Ablauf der Inhibit Time gesendet.
Funktionsdeklaration
Function SAEJ1939AddTx (
CANNo:Int,
IPGN:Long,
BytePos:Int,
BitPos:Int,
dataType:Int,
DataLength:Int,
const ref VarAddr,
ref stJ1939:TJ1939Tx
EventTime: Int,
InhibitTime: Int,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939AddTx () hat die folgenden Parameter.
Parameter
Jetter AG
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
IPGN
PGN
Parameter Group Number
0 ... 0x3FFFF
BytePos
Startposition des Bytes der zu
sendenden Daten
1 ... n
BitPos
Startposition des Bits der zu
sendenden Daten
1 ... 8
dataType
Datentyp der zu sendenden
Daten
1 ... 3, 10 ... 16
DataLength
Datengröße der globalen Variablen VarAddr
VarAddr
Globale Variable, in die der
sendende Wert eingetragen wird
TJ1939Tx
Kontrollstruktur
EventTime
Zeitlicher Abstand zw. zwei
Telegrammen (> Inhibit Time)
Default-Wert: 1.000 ms
InhibitTime
Mindestabstand zwischen zwei
empfangenen Telegrammen (<
EventTime)
Default-Wert: 100 ms
133
7 SAE J1939-STX-API
Rückgabewert
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Parameter DataType
Kontrollstruktur
TJ1939Tx
134
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
Die folgenden Datentypen sind möglich.
Byte-Typen
Bit-Typen
SAEJ1939
1
-
SAEJ1939_UNSIGNED8
SAEJ1939_BYTE
2
-
SAEJ1939_UNSIGNED16
SAEJ1939_WORD
4
-
SAEJ1939_UNSIGNED32
SAEJ1939_DWORD
n
-
SAEJ1939_STRING
-
1
SAEJ1939_1BIT
-
2
SAEJ1939_2BIT
-
3
SAEJ1939_3BIT
-
4
SAEJ1939_4BIT
-
5
SAEJ1939_5BIT
-
6
SAEJ1939_6BIT
-
7
SAEJ1939_7BIT
TJ1939Tx : Struct
// Status der gesendeten Nachricht
byStatus
: Byte;
// Priorität der gesendeten Nachricht
byPriority
: Byte;
End_Struct;
Jetter AG
JVM-407
SAE J1939-STX-API
Verwenden der Funktion
Result := SAEJ1939AddTx (
1,
0xFEEE,
0x00,
2
0
SAEJ1939_BYTE,
sizeof(var_Fueltemp),
var_Fueltemp,
struct_TJ1939Tx_EngineTemperatureTbl,
1500,
120);
JetSym STX-Programm
Festlegung einer neuen Priorität: Der Prioritätswert 0 hat die höchste Priorität,
der Prioritätswert 7 die niedrigste Priorität. Die Nachricht mit der Priorität 6
kann von einer Nachricht der Priorität 4 verdrängt werden (wenn die Nachrichten gleichzeitig gesendet werden). Die Parameter InhibitTime und
EventTime werden beim Funktionsaufruf nicht explizit aufgeführt. In diesem
Fall werden die Default-Werte verwendet.
#Include "SAEJ1939.stxp"
Var
bySAEJ1939Channel : Byte;
own_Source_Address : Byte;
// PGN 65262 Engine Temperature 1
Fueltemp : Byte;
EngineTemperatureTbl : TJ1939Tx;
End_Var;
Task main autorun
// Initialisierung CAN 1
bySAEJ1939Channel := 1;
own_Source_Address := 20;
SAEJ1939Init (bySAEJ1939Channel, own_Source_Address);
// PGN 65262 Engine Temperature
// Eine neue Priorität der festlegen
EngineTemperatureTbl.byPriority := 6;
SAEJ1939AddTx (bySAEJ1939Channel, 65262, 0x00, 2, 1, SAEJ1939_BYTE,
sizeof(Fueltemp), Fueltemp, EngineTemperatureTbl);
End_Task;
Anleitung des Motorherstellers
Jetter AG
Der Kunde erfährt die Daten (Priorität, PGN, SA und den Aufbau der Datenbytes) aus der Anleitung des Motorherstellers.
135
7 SAE J1939-STX-API
STX-Funktion SAEJ1939RequestPGN
Einleitung
Mit dem Aufruf der Funktion SAEJ1939RequestPGN () wird nach einer PGN
eine Anfrage an die DA (Destination Address) gesendet.
Die Funktion wird erst beendet, wenn ein gültiger Wert empfangen oder der
Timeout von 1.250 ms abgelaufen ist.
Um den Wert der angefragten Nachricht zu erhalten, muss diese mit der
Funktion SAEJ1939AddRx () für den Empfang angemeldet sein.
Diese Funktion muss zyklisch immer wieder neu aufgerufen werden.
Funktionsdeklaration
Function SAEJ1939RequestPGN (
CANNo:Int,
byDA:Byte,
ulPGN:Long,
byPriority:Byte,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939RequestPGN () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
byDA
Destination Address
Adresse, von dem die Nachricht
angefordert wird
0 ... 253
Die eigene SA kann nicht
verwendet werden
uIPGN
PGN
Parameter Group Number
0 ... 0x3FFFF
byPriority
Priorität
0 ... 7
Default-Wert: 6
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
136
0
Nachricht wurde empfangen
-1
Timeout, weil keine Antwort erhalten
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
Jetter AG
JVM-407
Parameter DataType
SAE J1939-STX-API
Die folgenden Datentypen sind möglich.
Byte-Typen
Bit-Typen
SAEJ1939
1
-
SAEJ1939_UNSIGNED8
SAEJ1939_BYTE
2
-
SAEJ1939_UNSIGNED16
SAEJ1939_WORD
4
-
SAEJ1939_UNSIGNED32
SAEJ1939_DWORD
n
-
SAEJ1939_STRING
-
1
SAEJ1939_1BIT
-
2
SAEJ1939_2BIT
-
3
SAEJ1939_3BIT
-
4
SAEJ1939_4BIT
-
5
SAEJ1939_5BIT
-
6
SAEJ1939_6BIT
-
7
SAEJ1939_7BIT
Verwenden der Funktion
Result := SAEJ1939RequestPGN (
1,
0x00,
0xFEE5,
5);
JetSym STX-Programm
JVM-407 mit der eigenen SA von 20 möchte die PGN 65253 "Engine Hours"
von einer Motorsteuerung mit der SA 0 anfordern. Aus dieser PGN soll die
SPN 247 "Engine Total Hours of Operation" ausgelesen werden. Deshalb ist
es notwendig durch Aufruf der Funktion SAEJ1939AddRx () den Empfang der
SPN 247 anzumelden.
Der Parameter "byPriority" wird beim Funktionsaufruf nicht explizit aufgeführt.
In diesem Fall wird der Default-Wert verwendet.
#Include "SAEJ1939.stxp"
Var
bySAEJ1939Channel : Byte;
own_Source_Address : Byte;
// PGN 65253 Engine Hours, Revolutions
EngineTotalHours : Int;
EngineHoursTbl : TJ1939Rx;
End_Var;
Task main autorun
Jetter AG
137
7 SAE J1939-STX-API
// Initialisierung CAN 1
bySAEJ1939Channel := 1;
own_Source_Address := 20;
SAEJ1939Init (bySAEJ1939Channel, own_Source_Address);
// Engine Hours, Revolutions -- on Request
SAEJ1939AddRx (bySAEJ1939Channel, 65253, 0x00, 1, 0,
SAEJ1939_DWORD, sizeof(EngineTotalHours), EngineTotalHours,
EngineHoursTbl, 5000, 150);
// Wird benötigt für einen zyklischen Task
TaskAllEnableCycle ();
EnableEvents;
End_Task;
Task t_RequestPGN_5000 cycle 5000
Var
Return_value : Int;
End_Var;
// Gesamte Betriebsstunden der Maschine anfordern
Return_value := SAEJ1939RequestPGN (bySAEJ1939Channel, 0x00,
65253);
If Return_value Then
Trace ('PGN Request failed');
End_If;
End_Task;
138
Jetter AG
JVM-407
SAE J1939-STX-API
STX-Funktion SAEJ1939GetDM1
Einleitung
Mit dem Aufruf der Funktion SAEJ1939GetDM1 () werden die aktuellen Diagnose-Fehlercodes angefordert (siehe auch SAE J1939-73 Nr. 5.7.1). Die
entsprechende PGN-Nummer ist 65226. Diese Funktion muss zyklisch immer
wieder neu aufgerufen werden.
Funktionsdeklaration
Function SAEJ1939GetDM1 (
CANNo:Int,
bySA:Byte,
ref stJ1939DM1stat:TJ1939DM1STAT
ref stJ1939DM1msg:TJ1939DM1MSG
) :Int;
Funktionsparameter
Die Funktion SAEJ1939GetDM1 () hat die folgenden Parameter.
Parameter
Beschreibung
CANNo
CAN-Kanalnummer
1 ... CANMAX
bySA
Source Address vom Sender der
Nachricht
0 ... 253
Die eigene SA kann nicht
verwendet werden
stJ1939DM1stat
lStatus
lMsgCnt
lBuffer
Lamp Status
Anzahl der empfangenen
Nachrichten
Größe von Variable
stJ1939DM1msg
lSPN
byOC
byFMI
Fehlercode
Fehlerzähler
Fehlertyp
stJ1939DM1msg
Rückgabewert
Wert
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Jetter AG
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
139
7 SAE J1939-STX-API
stJ1939DM1stat.lStatus
Gerät
CANMAX
JCM-620
2
Default: 0xFF00
Typ
Byte
Bitgruppe
Status
1
8-7
Malfunction Indicator Lamp Status
6-5
Red Stop Lamp Status
4-3
Amber Warning Lamp Status
2-1
Protect Lamp Status
8-7
Flash Malfunction Indicator Lamp
6-5
Flash Red Stop Lamp
4-3
Flash Amber Warning Lamp
2-1
Flash Protect Lamp
Flash
2
Beschreibung
Typ
Byte
Bitgruppe
Wert
Status
1
00
Lamps off
01
Lamps on
00
Slow Flash (1 Hz, 50 % duty cycle)
01
Fast Flash (2 Hz or faster, 50 % duty cycle)
10
Reserved
11
Unavailable / Do not Flash
Flash
2
Beschreibung
stJ1939DM1msg
Default-Wert:
ISPN = 0
byOC = 0
byFMI = 0
Bei älteren Controllern (Grandfathered Setting):
ISPN = 524287 (0x7FFFF)
byOC = 31 (0x1F)
byFMI = 127 (0x7F)
Verwenden der Funktion
Result := SAEJ1939GetDM1 (
1,
0x00,
stdm1stat_pow,
stdm1msg_pow,);
140
Jetter AG
JVM-407
JetSym STX-Programm
SAE J1939-STX-API
JVM-407 fordert mit dem Aufruf der Funktion SAEJ1939GetDM1 () die aktuellen Diagnose-Fehlercodes an (PGN 65226).
#Include "SAEJ1939.stxp"
Var
bySAEJ1939Channel : Byte;
own_Source_Address : Byte;
stdm1stat_pow : TJ1939DM1STAT;
stdm1msg_pow : Array[10] of STJ1939DM1MSG;
MyTimer : TTimer;
End_Var;
Task main autorun
// Initialisierung CAN 1
bySAEJ1939Channel := 1;
own_Source_Address := 20;
SAEJ1939Init (bySAEJ1939Channel, own_Source_Address);
TimerStart (MyTimer, T#2s);
Loop
When (TimerEnd (MyTimer)) Continue;
// Die Diagnose-Fehlercodes DM1 POW anfordern
stdm1stat_pow.lBuffer := sizeof (stdm1msg_pow);
SAEJ1939GetDM1 (bySAEJ1939Channel, 0x00, stdm1stat_pow,
stdm1msg_pow);
TimerStart (MyTimer, T#2s);
End_Loop;
End_Task;
Jetter AG
141
7 SAE J1939-STX-API
STX-Funktion SAEJ1939GetDM2
Einleitung
Mit dem Aufruf der Funktion SAEJ1939GetDM2 () werden die Diagnose-Fehlercodes, die den aktuellen vorausgingen, angefordert (siehe auch
SAE J1939-73 Nr. 5.7.2). Die entsprechende PGN-Nummer ist 65227.
Funktionsdeklaration
Function SAEJ1939GetDM2 (
CANNo:Int,
bySA:Byte,
ref stJ1939DM2stat:TJ1939DM2STAT
ref stJ1939DM2msg:TJ1939DM2MSG
) :Int;
Funktionsparameter
Die Funktion SAEJ1939GetDM2 () hat die folgenden Parameter.
Parameter
Beschreibung
CANNo
CAN-Kanalnummer
1 ... CANMAX
bySA
Source Address vom Sender der
Nachricht
0 ... 253
Die eigene SA kann nicht
verwendet werden
stJ1939DM2stat
lStatus
lMsgCnt
lBuffer
Lamp Status
Anzahl der empfangenen
Nachrichten
Größe von Variable
stJ1939DM2msg
lSPN
byOC
byFMI
Fehlercode
Fehlerzähler
Fehlertyp
stJ1939DM2msg
Rückgabewert
Wert
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
142
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
Jetter AG
JVM-407
stJ1939DM2stat.lStatus
SAE J1939-STX-API
Gerät
CANMAX
JCM-620
2
Default: 0xFF00
Typ
Byte
Bitgruppe
Status
1
8-7
Malfunction Indicator Lamp Status
6-5
Red Stop Lamp Status
4-3
Amber Warning Lamp Status
2-1
Protect Lamp Status
8-7
Flash Malfunction Indicator Lamp
6-5
Flash Red Stop Lamp
4-3
Flash Amber Warning Lamp
2-1
Flash Protect Lamp
Flash
2
Beschreibung
Typ
Byte
Bitgruppe
Wert
Status
1
00
Lamps off
01
Lamps on
00
Slow Flash (1 Hz, 50 % duty cycle)
01
Fast Flash (2 Hz or faster, 50 % duty cycle)
10
Reserved
11
Unavailable / Do not Flash
Flash
2
Beschreibung
stJ1939DM2msg
Default-Wert:
ISPN = 0
byOC = 0
byFMI = 0
Bei älteren Controllern (Grandfathered Setting):
ISPN = 524287 (0x7FFFF)
byOC = 31 (0x1F)
byFMI = 127 (0x7F)
Verwenden der Funktion
Result := SAEJ1939GetDM2 (
1,
0x00,
stdm2stat_pow,
stdm2msg_pow,);
Jetter AG
143
7 SAE J1939-STX-API
JetSym STX-Programm
JVM-407 fordert mit dem Aufruf der Funktion SAEJ1939GetDM2 () die aktuellen Diagnose-Fehlercodes an (PGN 65227).
#Include "SAEJ1939.stxp"
Var
bySAEJ1939Channel : Byte;
own_Source_Address : Byte;
stdm2stat_pow : TJ1939DM2STAT;
stdm2msg_pow : Array[10] of STJ1939DM2MSG;
End_Var;
// Initialisierung CAN 1
bySAEJ1939Channel := 1;
own_Source_Address := 20;
SAEJ1939Init (bySAEJ1939Channel, own_Source_Address);
// Wird benötigt für einen zyklischen Task
TaskAllEnableCycle ();
EnableEvents;
End_Task;
Task t_RequestPGN_5000 cycle 5000
Var
Return_wert
End_Var;
: Int;
// Die Diagnose-Fehlercodes DM2 POW anfordern
stdm2stat_pow.lBuffer := sizeof (stdm2msg_pow);
Return_wert := SAEJ1939GetDM2 (bySAEJ1939Channel, 0x00,
stdm2stat_pow, stdm2msg_pow);
If Return_wert Then
Trace ('DM2 Request failed');
End_If;
End_Task;
144
Jetter AG
JVM-407
SAE J1939-STX-API
STX-Funktion SAEJ1939SetSPNConversion
Einleitung
Mit dem Aufruf der Funktion SAEJ1939SetSPNConversion () wird die Anordnung der Bytes der Nachricht, die mit der Funktion SAEJ1939GetDM1 () oder
SAEJ1939GetDM2 () angefordert wird, festgelegt. Anders ausgedrückt, es
wird die Konvertierungsmethode festgelegt.
Funktionsdeklaration
Function SAEJ1939SetSPNConversion (
CANNo:Int,
bySA:Byte,
iConversionMethod:Int,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939SetSPNConversion () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
bySA
Source Address vom Sender der
Nachricht
0 ... 253
iConversionMethod
Konvertierungsmethode
1 ... 4
4: Automatisch erkannt
2: Default
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Jetter AG
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
145
7 SAE J1939-STX-API
Verwenden der Funktion
146
Result := SAEJ1939SetSPNConversion (
1,
0xAE,
4);
Jetter AG
JVM-407
SAE J1939-STX-API
STX-Funktion SAEJ1939GetSPNConversion
Einleitung
Mit dem Aufruf der Funktion SAEJ1939GetSPNConversion () wird die aktuell
eingestellte Konvertierungsmethode festgestellt.
Funktionsdeklaration
Function SAEJ1939SetSPNConversion (
CANNo:Int,
bySA:Byte,
iConversionMethod:Int,
) :Int;
Funktionsparameter
Die Funktion SAEJ1939GetSPNConversion () hat die folgenden Parameter.
Parameter
Rückgabewert
Beschreibung
Wert
CANNo
CAN-Kanalnummer
1 ... CANMAX
bySA
Source Address vom Sender der
Nachricht
0 ... 253
iConversionMethod
Konvertierungsmethode
1 ... 4
4: Automatisch erkannt
2: Default
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
Parameter CANNo
Verwenden der Funktion
Jetter AG
0
ok
-1
Fehler bei der Parameterüberprüfung
Der Wert des Parameters CANMAX ist geräteabhängig. Die folgende Tabelle
gibt Auskunft darüber.
Gerät
CANMAX
JVM-407
2
BTM 07
2
BTM 012
1-2
BTM 011
nicht möglich
JCM-350
4
JCM-620
2
Result := SAEJ1939GetSPNConversion (
1,
0xAE,
actual_conversion_method);
147
JVM-407
8
Dateisystem
Dateisystem
Einleitung
Dieses Kapitel beschreibt das Dateisystem des Bediengeräts JVM-407. Das
Dateisystem ermöglicht den Zugriff auf die Dateien der internen Flash-Disk,
der SD-Karte und eines USB-Sticks.
Aufteilung
Das Dateisystem unterscheidet zwischen Systemverzeichnissen/-dateien, die
vom Betriebssystem verwendet werden, und dem Bereich, der dem Anwender
zur freien Verfügung steht.
Systemverzeichnisse
Systemverzeichnisse können nicht gelöscht werden und sind auch nach dem
Formatieren noch vorhanden:
Verzeichnis
/System
/SD
/USB
Beschreibung




System-Konfiguration
Systeminformationen
Root-Verzeichnis der SD-Karte
Root-Verzeichnis des USB-Sticks
Inhalt
Thema
Seite
Eigenschaften ............................................................................................. 150
Benutzerverwaltung .................................................................................... 154
Belegung der Flash-Disk einsehen............................................................. 163
Betriebssystem-Update und Anwenderprogramm...................................... 167
Formatieren und Prüfen .............................................................................. 168
Jetter AG
149
8 Dateisystem
8.1 Eigenschaften
Einleitung
Dieses Kapitel beschreibt die Eigenschaften des Dateisystems. Es wird dabei
zwischen der internen Flash-Disk, der SD-Karte und des USB-Sticks unterschieden.
Allgemeine
Eigenschaften
Für die interne Flash-Disk, die SD-Karte und den USB-Stick gelten folgende
Eigenschaften:
 Maximal 8 gleichzeitig geöffnete Dateien.
 Verzeichnisnamen werden durch einen Schrägstrich "/" und nicht durch


einen umgekehrten Schrägstrich "\" getrennt.
Beim Schreiben einer Datei erhält diese Datum und Uhrzeit der Echtzeituhr
des Bediengeräts.
Datum, Uhrzeit und/oder Dateigröße sind nicht bei allen Systemdateien
verfügbar.
Inhalt
Thema
Seite
Eigenschaften der Flash-Disk ..................................................................... 151
Eigenschaften der SD-Karte ....................................................................... 152
Eigenschaften des USB-Sticks ................................................................... 153
150
Jetter AG
JVM-407
Dateisystem
Eigenschaften der Flash-Disk
Größe
Dem Anwender steht folgende Größe zur freien Verfügung:
Parameter
Größe der Flash-Disk
Eigenschaften
Wert
13184 KByte
Die interne Flash-Disk hat folgende weitere Eigenschaften:




Es sind bis zu 7 Verzeichnisebenen und 1 Dateiebene zulässig.
Verzeichnis- und Dateinamen mit jeweils maximal 63 Zeichen Länge.
Groß- und Kleinschreibung wird unterschieden.
Für Verzeichnis- und Dateinamen sind alle Zeichen außer "/" und ".." erlaubt.
 Benutzer-/Zugriffsverwaltung mit maximal 31 Schlössern für maximal 33
Benutzer.
Jetter AG
151
8 Dateisystem
Eigenschaften der SD-Karte
Größe
Die Größe ist abhängig von der verwendeten SD-Karte:
Parameter
Getestete Größe
Eigenschaften
Wert
8 MByte ... 4 GByte
Die SD-Karte hat folgende weitere Eigenschaften:




FAT-16 und 32 kompatibel.
Die maximale Länge des Pfades beträgt 260 Zeichen.
Groß- und Kleinschreibung wird nicht unterschieden.
In Verzeichnis- und Dateinamen sind nicht erlaubt: "/", "\", ":", "*", "?", """,
"<", ">" und "|"
 Es gibt keine Benutzer-/Zugriffsverwaltung.
152
Jetter AG
JVM-407
Dateisystem
Eigenschaften des USB-Sticks
Größe
Die Größe ist abhängig von dem verwendeten USB-Stick:
Parameter
Getestete Größe
Eigenschaften
Wert
1 GByte ... 8 GByte
Der USB-Stick hat folgende weitere Eigenschaften:




FAT-16 + 32 kompatibel.
Die maximale Länge des Pfades beträgt 260 Zeichen.
Groß- und Kleinschreibung wird nicht unterschieden.
In Verzeichnis- und Dateinamen sind nicht erlaubt: "/", "\", ":", "*", "?", """,
"<", ">" und "|"
 Es gibt keine Benutzer-/Zugriffsverwaltung.
Jetter AG
153
8 Dateisystem
8.2 Benutzerverwaltung
Einleitung
Im Dateisystem für die interne Flash-Disk besteht die Möglichkeit, Zugriffsrechte (Schlösser) für Verzeichnisse zu definieren und Benutzer einzurichten,
deren Zugriffsrechte (Schlüssel) eingestellt werden können.
Auf Verzeichnisse und Dateien, für die der Benutzer nicht den benötigten
Schlüssel besitzt, kann nicht zugegriffen werden. Diese Verzeichnisse und
Dateien werden bei einer FTP-Verbindung auch nicht angezeigt.
Voraussetzungen
Für die Benutzerverwaltung sind Administrator-Rechte nötig.
Eigenschaften
Die Benutzerverwaltung hat folgende Eigenschaften:
Eigenschaft
Dateien
Maximalwert
Anzahl Benutzer
33
Anzahl vordefinierter Benutzer
2
Länge Benutzername
31 alphanummerische Zeichen
Länge Passwort
31 alphanummerische Zeichen
Anzahl Leseschlüssel
31
Anzahl Schreibschlüssel
31
Anzahl vordefinierter Schlüssel
2
Die Einstellungen der Benutzerverwaltung werden in 3 Dateien im Verzeichnis
"/System" vorgenommen:
Datei
Funktion
flashdisklock.ini
Schlösser an Verzeichnisse anbringen
keys.ini
Namen für Schlösser/Schlüssel vergeben
users.ini
Benutzer verwalten
Die Dateien sind immer vorhanden. Sie können nicht gelöscht, sondern nur
geändert oder überschrieben werden.
Einschränkungen
Beachten Sie bitte die folgenden Einschränkungen:
 Die Benutzerverwaltung ist nur für die interne Flash-Disk möglich. Sie ist
nicht auf die SD-Karte anwendbar.
 Nach Übertragen einer Datei der Benutzerverwaltung kann ihr Inhalt sofort
gelesen werden. Die Einstellungen werden jedoch erst nach dem nächsten
Boot-Vorgang gültig.
154
Jetter AG
JVM-407
Dateisystem
Inhalt
Thema
Seite
Benutzer verwalten ..................................................................................... 156
Auslieferungszustand / Vordefinierte Benutzer und Schlüssel ................... 158
Schloss anbringen ...................................................................................... 159
Namen einrichten für Schlüssel/Schlösser ................................................. 161
Jetter AG
155
8 Dateisystem
Benutzer verwalten
Einleitung
Die Benutzer des Dateisystems des JVM-407 verwalten Sie in der Konfigurations-Datei "/System/users.ini".
Voraussetzungen
Wenn Sie Namen für die Schlüssel verwenden wollen, müssen diese zuvor
dem Gerät bekannt gemacht werden. Richten Sie die Namen deshalb zuerst
ein (Einrichten von Namen für Schlüssel/Schlösser auf Seite 161).
Benutzer verwalten
Führen Sie folgende Schritte aus, um die Benutzer zu verwalten:
Schritt
Vorgehen
1
Stellen Sie eine FTP-Verbindung zum Gerät her; melden Sie sich hierbei
mit Administrator-Rechten an.
2
Öffnen Sie die Datei "/System/users.ini".
3
Führen Sie die Änderungen in der Datei durch.
4
Speichern Sie die geänderte Datei wieder auf dem Gerät.
5
Booten Sie das Gerät neu.
Ergebnis: Die geänderten Benutzereinstellungen sind aktiv.
Aufbau der Datei
"/System/users.ini"
Die Konfigurations-Datei ist eine Textdatei, deren Einträge in Sektionen gruppiert sind.
 Für jeden Benutzer wird eine eigene Sektion verwendet.
 In diesen Sektionen werden Werte gesetzt, mit denen das Dateisystem
arbeitet.
Leerzeilen können beliebig eingefügt werden.

 Kommentarzeilen werden mit "!", "#" oder ";" eingeleitet.
Sektionen
Die Namen der Sektionen sind "[USER1]" bis "[USER33]". Hier legen Sie
jeweils Benutzername und Passwort sowie die Lese- und Schreibrechte fest.
Beispiel:
[USER4]
NAME=TestUser3
PW=testpass
READKEYS=5,openLock2,10,11
WRITEKEYS=openLock2,10,11
SYSKEYS=
156
Jetter AG
JVM-407
Dateisystem
NAME
im Beispiel
TestUser3
Funktion
Anmeldename des Benutzers
gültige Werte
maximal 31 alphanummerische Zeichen
bei ungültigem Wert oder
nicht vorhandenem Eintrag
wird der Benutzer nicht angelegt
PW
im Beispiel
testpass
Funktion
Anmeldepasswort des Benutzers
gültige Werte
maximal 31 alphanummerische Zeichen
bei nicht vorhandenem
Eintrag
wird für die Anmeldung des Benutzers kein Passwort
benötigt
READKEYS
im Beispiel
5,openLock2,10,11
Funktion
Schlüssel für Lesezugriffe
gültige Werte
1 ... 31 (oder entsprechende Namen)
bei nicht vorhandenem
Eintrag
erhält der Benutzer keine Leseschlüssel
WRITEKEYS
im Beispiel
openLock2,10,11
Funktion
Schlüssel für Schreibzugriffe
gültige Werte
1 ... 31 (oder entsprechende Namen)
bei nicht vorhandenem
Eintrag
erhält der Benutzer keine Schreibschlüssel
SYSKEYS
Funktion
Jetter AG
keine Funktion; reserviert für zukünftige Erweiterungen
157
8 Dateisystem
Auslieferungszustand / Vordefinierte Benutzer und Schlüssel
Einleitung
Im Dateisystem sind 2 Benutzer mit festgelegten Rechten bereits vordefiniert,
die auch nicht gelöscht werden können. Mit Hilfe der Benutzerverwaltung
können Sie für diese Benutzer lediglich ein anderes Passwort festlegen.
Auslieferungszustand
Im Auslieferungszustand des Bediengeräts hat die Konfigurations-Datei folgenden Inhalt:
[USER1]
NAME=admin
PW=admin
READKEYS=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,2
2,23,24,25,26,27,28,29,30,31
WRITEKEYS=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,
22,23,24,25,26,27,28,29,30,31
SYSKEYS=
[USER33]
NAME=system
PW=system
READKEYS=2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,
23,24,25,26,27,28,29,30,31
WRITEKEYS=2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
,23,24,25,26,27,28,29,30,31
SYSKEYS=
Benutzer "admin"
Dieser hat alle Schlüssel und kann somit auf alle Verzeichnisse und Dateien
lesend und schreibend zugreifen.
Benutzer "system"
Dieser hat bis auf Schlüssel "1" ebenfalls alle Schlüssel.
Vordefinierte Schlüssel
Von den 31 Schlüsseln haben 2 eine vordefinierte Bedeutung:
Schloss / Schlüssel
1
2
158
Funktion



IP-Konfiguration
Benutzerverwaltung
Betriebssystem-Update der CPU
Jetter AG
JVM-407
Dateisystem
Schloss anbringen
Einleitung
In der Konfigurations-Datei "/System/flashdisklock.ini" versehen Sie Verzeichnisse der Flash-Disk mit Schlössern. Nur Benutzer mit dem passenden
Schlüssel können Dateien und Unterverzeichnisse in diesen Verzeichnissen
lesen und/oder schreiben (löschen).
Voraussetzungen
Wenn Sie Namen für die Schlösser verwenden wollen, müssen diese zuvor
dem Gerät JVM-407 bekannt gemacht werden. Richten Sie die Namen deshalb zuerst ein (Namen einrichten für Schlüssel/Schlösser auf Seite 161).
Schloss anbringen
Führen Sie folgende Schritte aus, um ein Schloss an ein Verzeichnis anzubringen:
Schritt
Vorgehen
1
Stellen Sie eine FTP-Verbindung zu dem Gerät her; melden Sie sich
hierbei mit Administratorrechten an.
2
Öffnen Sie die Datei "/System/flashdisklock.ini".
3
Führen Sie die Änderungen in der Datei durch.
4
Speichern Sie die geänderte Datei wieder auf dem Gerät.
5
Booten Sie das Gerät neu.
Ergebnis: Das Verzeichnis ist mit einem Schloss versehen.
Aufbau der Datei
"/System/flashdisklock.ini"
Die Konfigurations-Datei ist eine Textdatei, die eine Sektion enthält.
 In dieser Sektion werden Werte gesetzt, mit denen das Dateisystem
arbeitet.

Jedes Verzeichnis wird mit seiner Schlossnummer auf einer eigenen Zeile
angegeben.
 Leerzeilen können beliebig eingefügt werden.
 Kommentarzeilen werden mit "!", "#" oder ";" eingeleitet.
Sektion
Der Name der Sektion ist "[LOCKS]". Hier ordnen Sie die Schlösser den Verzeichnissen nach folgendem Schema zu:
Verzeichnis=Schloss
Beispiel:
[LOCKS]
test1=0
test1/sub1=2
test1/sub2=5
test2=userlock2
Jetter AG
159
8 Dateisystem
Schlossnummern
Verwenden Sie folgende Schlossnummern:
 Gültige Schlossnummern: 0 ... 31.
 Schlossnummer 0: Am Verzeichnis ist kein Schloss angebracht. Es ist keine besondere Zugangsberechtigung notwendig.
 Es können Nummern oder zuvor definierte Namen verwendet werden.
160
Jetter AG
JVM-407
Dateisystem
Namen einrichten für Schlüssel/Schlösser
Einleitung
Die Schlüssel/Schlösser sind von 1 bis 31 durchnummeriert. Um einfacher mit
Schlüssel/Schloss umgehen zu können, kann jedem Schlüssel/Schloss ein
Name zugeordnet werden. In der Konfigurations-Datei "/System/keys.ini"
richten Sie die Namen ein.
Namen einrichten
Führen Sie folgende Schritte aus, um Namen für Schlüssel/Schlösser einzurichten:
Schritt
Vorgehen
1
Stellen Sie eine FTP-Verbindung zu dem Gerät JVM-407 her; melden Sie
sich hierbei mit Administratorrechten an.
2
Öffnen Sie die Datei "/System/keys.ini".
3
Führen Sie die Änderungen in der Datei durch.
4
Speichern Sie die geänderte Datei wieder auf dem Gerät.
5
Booten Sie das Gerät neu.
Ergebnis: Die Namen stehen jetzt zur Verfügung und können beim Anbringen
von Schlössern und Verwalten von Benutzern verwendet werden.
Aufbau der Datei
"/System/keys.ini"
Die Konfigurations-Datei ist eine Textdatei, die eine Sektion enthält.
 In dieser Sektion werden Werte gesetzt, mit denen das Dateisystem arbei-
tet.
Jeder Schlüssel ist mit seinem Namen auf einer eigenen Zeile angegeben.

 Leerzeilen können beliebig eingefügt werden.
 Kommentarzeilen werden mit "!", "#" oder ";" eingeleitet.
Sektion
Der Name der Sektion ist "[KEYS]". Hier ordnen Sie die Namen den Schlüsseln/Schlössern nach folgendem Schema zu:
KEYxx=Name
xx: Nummer des Schlüssels (01 ... 31)
Beispiel:
[KEYS]
KEY01=Admin
KEY02=System
KEY03=
KEY04=
KEY05=service
...
KEY31=
Jetter AG
161
8 Dateisystem
Namen für Schlösser
und Schlüssel
162
Für die Namen gelten folgende Festlegungen:
 Maximal 15 alphanummerische Zeichen.
 Für Schloss und Schlüssel wird der selbe Name verwendet.
Jetter AG
JVM-407
Dateisystem
8.3 Belegung der Flash-Disk einsehen
Einleitung
Dieses Kapitel beschreibt wie die Belegung des Anwenderbereichs der internen Flash-Disk eingesehen werden kann.
Inhalt
Thema
Seite
Belegung der Flash-Disk ............................................................................ 164
Jetter AG
163
8 Dateisystem
Belegung der Flash-Disk
Info-Datei
Die Belegung des Anwenderbereichs der internen Flash-Disk lesen Sie aus
der Datei "/System/flashdiskinfo.txt".
Beispiel
Das Beispiel zeigt die mögliche Belegung der Flash-Disk eines JetControl 340
(4 MByte):
Name :
Date :
Time :
Tracks:
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
164
flash disk
25.11.2008
15:04
64
0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
81
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
64
85
128
128
128
128
128
128
128
128
128
128
128
105
0
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
47
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
64
43
0
0
0
0
0
0
0
0
0
0
0
0
0
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free:
0)
free: 23)
free: 128)
Jetter AG
JVM-407
Dateisystem
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
Track
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
Total:
2120900
78232
1962404
4161536
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
(used:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
blocked:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
free:
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
128)
(used: 4175 / blocked: 154 / free: 3863)
byte
byte
byte
byte
Tracks und Sectors bilden die Verwaltungseinheiten der Flash-Disk. Die
Info-Datei ist entsprechend aufgebaut. Die Datei enthält folgende Elemente:
Teil
Jetter AG
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
128
sectors: 8192
Used
:
Blocked:
Free
:
Total :
Elemente der Info-Datei
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
sectors:
Funktion
Name
Fester Name der Flash-Disk
Date / Time
Zeitpunkt, wann die Flash-Disk zuletzt formatiert
wurde
Tracks
Gesamtzahl der Tracks
Track xx: sectors: 128
Belegung der Sectors eines Tracks
Total: sectors:
Gesamtstatistik der Sectors
Used
Gesamtzahl der belegten Byte
165
8 Dateisystem
Teil
Zustände der Sectors
Blocked
Gesamtzahl der blockierten Byte
Free
Gesamtzahl der freien Byte
Total
Gesamtgröße der Flash-Disk
Die kleinste Verwaltungseinheit der Flash-Disk, der Sector, kann folgende
Zustände einnehmen:
Zustand
166
Funktion
Bedeutung
used
Der Sector ist durch Daten belegt.
blocked
Der Sector ist nicht mehr belegt, kann aber aus
Verwaltungsgründen noch nicht wieder benutzt
werden.
free
Der Sector ist nicht belegt und kann benutzt werden.
Jetter AG
JVM-407
Dateisystem
8.4 Betriebssystem-Update und Anwenderprogramm
Einleitung
Das Betriebssystem-Update bei einer Steuerung einem Bediengerät oder bei
einem I/O-Modul und der Zugriff auf das Anwenderprogramm kann über das
Dateisystem durchgeführt werden. Eine detaillierte Beschreibung finden Sie in
den jeweiligen Kapiteln:
 Betriebssystem-Update auf Seite 333
 Anwenderprogramm auf Seite 341
Jetter AG
167
8 Dateisystem
8.5 Formatieren und Prüfen
Einleitung
Dieses Kapitel beschreibt wie die interne Flash-Disk, die SD-Karte und ein
USB-Stick formatiert und überprüft werden können.
Die interne Flash-Disk braucht nicht durch eine separate Funktion überprüft
werden, da sie bereits auf maximale Sicherheit der Verwaltungsstrukturen
ausgelegt ist.
Funktionsweise
Beim Booten des Geräts JVM-407 wird vom Betriebssystem der Inhalt des
Steuerregisters des Dateisystems geprüft. Abhängig vom Wert in diesem
Register werden die folgenden Funktionen ausgeführt:





Registernummer
Flash-Disk formatieren
SD-Karte formatieren
USB-Stick formatieren
SD-Karte überprüfen
USB-Stick überprüfen
Die Nummer des Steuerregisters des Dateisystems ist steuerungsabhängig:
Steuerung
Registernummer
JC-24x
2936
JM-D203-JC24x
2936
JC-340, JC-350, JC-360
202936
JVM-407
202936
Inhalt
Thema
Seite
Flash-Disk formatieren ................................................................................ 169
SD-Karte formatieren .................................................................................. 170
USB-Stick formatieren................................................................................. 171
SD-Karte überprüfen ................................................................................... 172
USB-Stick überprüfen ................................................................................. 173
168
Jetter AG
JVM-407
Dateisystem
Flash-Disk formatieren
Einleitung
Unter Umständen kann es notwendig sein, die Flash-Disk neu zu formatieren.
Dies kann dann der Fall sein, wenn eine Betriebssystemversion eingespielt
wird, die ein geändertes Flash-Disk Format hat. Oder wenn Informationen zur
Verwaltung der Flash-Disk zerstört wurden.
Auswirkungen
 Alle Dateien und Verzeichnisse des Anwenderbereichs werden gelöscht.
 Systemdateien und Systemverzeichnisse werden nicht beeinflusst.
Flash-Disk formatieren
Führen Sie folgende Schritte aus, um die Steuerung zum Formatieren der
internen Flash-Disk zu veranlassen:
Schritt
Vorgehen
1
Schalten Sie das Gerät JVM-407 ein.
2
Beschreiben Sie das Steuerregister des Dateisystems mit dem Wert
-999720373 (0xc4697a4b).
3
Schalten Sie das Gerät aus.
4
Schalten Sie das Gerät ein.
Ergebnis: Während der Boot-Phase des JVM-407 wird die Flash-Disk formatiert und das Steuerregister auf 0 gesetzt.
Jetter AG
169
8 Dateisystem
SD-Karte formatieren
Einleitung
Unter Umständen kann es notwendig sein, die SD-Karte neu zu formatieren.
Dies kann dann der Fall sein, wenn Informationen zur Verwaltung der
SD-Karte zerstört wurden.
Auswirkungen
Alle Dateien und Verzeichnisse auf der SD-Karte werden gelöscht.
SD-Karte formatieren
Führen Sie folgende Schritte aus, damit das Gerät JVM-407 die SD-Karte
formatiert:
Schritt
Vorgehen
1
Schalten Sie das Gerät ein.
2
Beschreiben Sie das Steuerregister des Dateisystems mit dem Wert
-748362163 (0xd364e64d).
3
Schalten Sie das Gerät aus.
4
Schalten Sie das Gerät ein.
Ergebnis: Während der Boot-Phase des JVM-407 wird die SD-Karte formatiert und das Steuerregister auf 0 gesetzt.
170
Jetter AG
JVM-407
Dateisystem
USB-Stick formatieren
Einleitung
Unter Umständen kann es notwendig sein, den USB-Stick neu zu formatieren.
Dies kann dann der Fall sein, wenn Informationen zur Verwaltung des
USB-Sticks zerstört wurden.
Auswirkungen
Alle Dateien und Verzeichnisse auf dem USB-Stick werden gelöscht.
Formatieren
Führen Sie folgende Schritte aus, damit der USB-Stick formatiert wird:
Schritt
Vorgehen
1
Schalten Sie das Bediengerät ein.
2
Beschreiben Sie das Steuerregister des Dateisystems mit dem Wert
(0x8f3d5185).
3
Schalten Sie das Bediengerät aus.
4
Schalten Sie das Bediengerät ein.
Ergebnis: Während der Boot-Phase des Bediengeräts wird der USB-Stick
formatiert und das Steuerregister auf 0 gesetzt.
Jetter AG
171
8 Dateisystem
SD-Karte überprüfen
Einleitung
Unter Umständen kann es notwendig sein, die SD-Karte auf Fehler zu überprüfen. Dies kann dann der Fall sein, wenn das Gerät JVM-407 ausgeschaltet
wurde während auf die SD-Karte zugegriffen wurde.
Auswirkungen
 Alle Dateien und Verzeichnisse auf der SD-Karte werden überprüft und
Fehler gegebenenfalls korrigiert.
Anschließend sind die Verwaltungsstrukturen auf der SD-Karte in einem
konsistenten Zustand.
 Abhängig von der Größe der SD-Karte und der Anzahl der Verzeichnisse
und Dateien kann die Boot-Phase des JVM-407 bis auf mehrere Minuten
verlängert werden.
SD-Karte überprüfen
Führen Sie folgende Schritte aus, damit das Gerät JVM-407 die SD-Karte
überprüft:
Schritt
Vorgehen
1
Schalten Sie das Gerät ein.
2
Beschreiben Sie das Steuerregister des Dateisystems mit dem Wert
748371092 (0x2c9b3c94).
3
Schalten Sie das Gerät aus.
4
Schalten Sie das Gerät ein.
Ergebnis: Während der Boot-Phase des JVM-407 wird die SD-Karte überprüft. Der Wert im Steuerregister bleibt erhalten, so dass die Überprüfung bei
jedem Neustart des JVM-407 durchgeführt wird.
Einschränkungen
172
Die Funktion "repariert" die Verwaltungsstrukturen der SD-Karte, damit diese
weiter verwendet werden kann. Zum Beispiel können die Daten einer unvollständig geschriebenen Datei nicht immer restauriert werden.
Jetter AG
JVM-407
Dateisystem
USB-Stick überprüfen
Einleitung
Unter Umständen kann es notwendig sein, den USB-Stick auf Fehler zu überprüfen. Dies kann dann der Fall sein, wenn das Bediengerät ausgeschaltet
wurde während auf den USB-Stick zugegriffen wurde.
Auswirkungen
 Alle Dateien und Verzeichnisse auf dem USB-Stick werden überprüft und
Fehler gegebenenfalls korrigiert.
Anschließend sind die Verwaltungsstrukturen auf dem USB-Stick in einem
konsistenten Zustand.
 Abhängig von der Größe des USB-Sticks und der Anzahl der Verzeichnisse
und Dateien kann die Boot-Phase des Bediengeräts bis auf mehrere
Minuten verlängert werden.
Überprüfung
Führen Sie folgende Schritte aus, damit das Bediengerät den USB-Stick
überprüft:
Schritt
Vorgehen
1
Schalten Sie das Bediengerät ein.
2
Beschreiben Sie das Steuerregister des Dateisystems mit dem Wert
(0x17dbd42a).
3
Schalten Sie das Bediengerät aus.
4
Schalten Sie das Bediengerät ein.
Ergebnis: Während der Boot-Phase des JVM-407 wird der USB-Stick überprüft. Der Wert im Steuerregister bleibt erhalten, so dass die Überprüfung bei
jedem Neustart des Bediengeräts durchgeführt wird.
Einschränkungen
Jetter AG
Die Funktion "repariert" nur die Verwaltungsstrukturen des USB-Sticks, damit
dieser weiter verwendet werden kann. Zum Beispiel können die Daten einer
unvollständig geschriebenen Datei nicht immer restauriert werden.
173
JVM-407
9
FTP-Server
FTP-Server
Einleitung
Der FTP-Server erlaubt den Zugriff auf Verzeichnisse und Dateien der im
JVM-407 eingebauten Flash-Disk oder der SD-Karte mittels eines
FTP-Clients.
Dieses Kapitel beschreibt den Vorgang der Anmeldung und die vom
FTP-Server unterstützten Kommandos.
FTP-Clients
Außer dem Kommandozeilen FTP-Client, wie er bei vielen
PC-Betriebssystemen mitgeliefert wird, können auch grafische FTP-Tools
verwendet werden.
Anzahl möglicher
Verbindungen
Der FTP-Server des JVM-407 kann maximal vier gleichzeitig geöffnete
FTP-Verbindungen verwalten. Das bedeutet, dass gleichzeitig bis zu vier
FTP-Clients mit dem JVM-407 verbunden sein können.
Jeder weitere Client, der sich versucht mit dem FTP-Server zu verbinden, erhält auf seine Anfrage zum Aufbau einer Verbindung keine Antwort.
Kenntnisse des
Programmierers
In diesem Kapitel werden folgende Kenntnisse vorausgesetzt:
 Kenntnisse über das Dateisystem der Steuerung sind notwendig.
 Kenntnisse über IP-Netzwerke sind notwendig.
Inhalt
Thema
Seite
Anmeldung.................................................................................................. 176
Unterstützte Kommandos ........................................................................... 177
Beispiel: Windows FTP-Client .................................................................... 178
Jetter AG
175
9 FTP-Server
Anmeldung
Anmeldung
Um auf das Dateisystem über FTP zugreifen zu können, muss sich der
FTP-Client bei der Aufnahme der Kommunikation über Benutzername und
Passwort anmelden.
Auslieferungszustand
Im Auslieferungszustand der Steuerung sind zwei Benutzer (User) eingerichtet:
[USER1]
NAME=admin
PW=admin
[USER33]
NAME=system
PW=system
Benutzer verwalten
Über die Benutzerverwaltung des Dateisystems kann das Passwort geändert
und weitere Benutzer hinzugefügt werden.
Verwandte Themen
 Benutzerverwaltung auf Seite 154
176
Jetter AG
JVM-407
FTP-Server
Unterstützte Kommandos
Unterstützte Kommandos
In der folgenden Tabelle sind die dem FTP-Server bekannten Kommandos
und ihre Bedeutung beschrieben.
Kommando
Bedeutung
USER
Sende Benutzername; wird zu Beginn des Login-Vorgangs
benutzt
PASS
Sende Passwort; wird nach USER gesendet, um den Login-Vorgang abzuschließen
QUIT
Beendet die Verbindung
PORT
Spezifiziert die IP-Adresse und Portnummer, zu welchem sich
der FTP-Server für die nächste Dateiübertragung verbinden
soll
TYPE
Setzt den Transfertyp; dabei sind möglich:



Jetter AG
Typ A mit Interpretation N
Typ I
Typ L mit 8 Bit pro Zeichen
MODE
Setzt den Transfermodus; hier ist nur "S" (Stream) möglich
STRU
Setzt die Dateistruktur bei der Übertragung; hier ist nur "F"
(File) möglich
NLST
Gibt eine Liste der Dateinamen eines Verzeichnisses zurück
LIST
Gibt eine Liste der Dateinamen und der Dateiinformationen
eines Verzeichnisses zurück
PWD
Gibt den Namen des aktuellen Verzeichnisses zurück
CWD
Wechselt das aktuelle Verzeichnis
CDUP
Wechselt eine Verzeichnisebene höher
MKD
Legt ein Verzeichnis an
RMD
Löscht ein Verzeichnis
STOR
Speichert eine Datei
RETR
Liest eine Datei
DELE
Löscht eine Datei
RNFR
Gibt den Dateinamen an, der geändert werden soll; muss von
dem Kommando "RNTO" gefolgt werden
RNTO
Gibt den neuen Namen der Datei an, die zuvor mit dem
Kommando "RNFR" spezifiziert worden war
PASV
FTP-Server wechselt in den "passive mode"
177
9 FTP-Server
Beispiel: Windows FTP-Client
Aufgabe
Mit dem FTP-Client von z. B. Windows XP sollen folgende Aufgaben durchgeführt werden:






Aufruf des FTP-Clients mit Öffnen der Verbindung
Login mit Benutzer "admin" und Passwort "admin"
Anzeigen des Inhalts des aktuellen Verzeichnisses mit "dir"
Übertragen der Datei "jetter1.jpg" auf den JetControl mit Kommando "put"
Nochmaliges Anzeigen des Inhalts des aktuellen Verzeichnisses mit "dir"
Beenden der Sitzung und des FTP-Clients mit "bye"
Vorgehen
178
Jetter AG
JVM-407
HTTP-Server
10 HTTP-Server
Einleitung
Auf den HTTP-Server kann mit einem Standard-Browser zugegriffen werden.
Mit dem Browser können Dateien, die mittels FTP auf die Steuerung geladen
wurden, gelesen und angezeigt werden.
Um Zugriff auf bestimmte Seiten zu erhalten, kann es, je nach Konfiguration
des Dateisystems, notwendig sein, Benutzername und Passwort eingeben zu
müssen.
Dieses Kapitel beschreibt die im HTTP-Server enthaltenen Funktionalität
"Server Side Includes" (SSI).
Vorgegebene Dateinamen
Die vorgegebenen Dateinamen sind index.htm und index.html.
Unterstützte Dateitypen
Folgende Dateitypen werden unterstützt:










Funktion HTTP-Server
aktivieren
*.htm, *.html, *.shtml
*.txt, *.ini
*.gif, *.tif, *.tiff, *.bmp, *.wbmp
*.jpg, *.jpe, *.jpeg, *.png
*.xml
*.js, *.jar, *.java, *.class, *.cab
*.ocx
*.pdf, *.zip, *.doc, *.rtf
*.css
*.wml, *.wmlc, *.wmls, *.wmlsc
Für die Aktivierung der Funktion HTTP-Server in der Steuerung muss die
folgende Voraussetzung erfüllt sein:
 Die Steuerung wurde mit der Option -W bestellt.
Ist diese Voraussetzungen erfüllt, wird das Bit 1 im Web-Statusregister 202930
gesetzt.
Kenntnisse des
Programmierers
In diesem Kapitel werden folgende Kenntnisse vorausgesetzt:
 Kenntnisse über das Dateisystem der Steuerung sind notwendig.
 Kenntnisse über IP-Netzwerke sind notwendig.
Inhalt
Thema
Seite
Server Side Includes .................................................................................. 180
Jetter AG
179
10 HTTP-Server
10.1 Server Side Includes
Einleitung
Mit Hilfe der im HTTP-Server enthaltenen Funktionalität der Server Side
Includes (SSI) können in einer HTML-Seite aktuelle Echtzeit-Steuerungswerte angezeigt werden.
Regeln
Am Beginn einer HTML-Seite, in die aktuelle Echtzeit-Steuerungswerte eingebunden werden sollen, muss ein Name Space Tag angegeben werden, in
dem der in der HTML-Seite verwendete Name Space definiert wird.
Im Body-Bereich der HTML-Seite folgen die Data Tags.
EchtzeitSteuerungswerte
aktualisieren
Beim Laden der Seite in den Browser werden die Data Tags durch den
HTTP-Server einmalig durch aktuelle Echtzeit-Steuerungswerte ersetzt.
Um die Werte zu aktualisieren, muss die HTML-Seite jeweils neu geladen
werden.
Inhalt
Thema
Seite
Name Space Tag ......................................................................................... 181
Einfügen von Echtzeit-Steuerungswerten ................................................... 182
Beispiel einer HTML-Seite .......................................................................... 187
180
Jetter AG
JVM-407
HTTP-Server
Name Space Tag
Aufbau Name Space Tag
Der Name Name Space Tag muss der erste Eintrag in der HTML-Datei sein
und hat folgenden Aufbau:
<NS:DTAG xmlns:NS=http://jetter.de/ssi/jetcontrol/
Wobei NS den Name Space darstellt. Hierfür kann eine Zeichenfolge mit einer
maximalen Länge von 63 Zeichen gewählt werden.
Der hier eingeführte Name Space wird bei den nachfolgenden Data Tags
wieder benutzt. Die übrigen Teile der Zeile sind festgelegt und müssen genauso angegeben werden.
Der in den folgenden Beispielen verwendete Name Space ist JW.
Jetter AG
181
10 HTTP-Server
Einfügen von Echtzeit-Steuerungswerten
Einleitung
Aktuelle Echtzeit-Steuerungswerte können über Tag-Funktionen in die Parameter der Sektionen integriert werden. Damit können Zustände von Registern,
Textregistern, Eingängen, Ausgängen und Merkern angezeigt werden.
Tag-Kennzeichnung
Alle Tags beginnen und enden mit bestimmten Zeichenfolgen. Zwischen diesen Tag-Begrenzern werden die Variablen definiert:
Kennzeichnung
Variablendefinition
Zeichenfolge
Beginn eines Tags
<JW:DTAG
Ende eines Tags
/>
Die Variablendefinition in einem Tag enthält Attribute, über die beispielsweise
die Art der Darstellung des Variablenwertes eingestellt werden kann:
name
Funktion
Variablenname
Bemerkungen
Kennbuchstabe gefolgt von der Variablennummer
Beispiel
name="R1000023"
type
Funktion
Variablentyp der Darstellung
Beispiel
type="REAL"
format
Funktion
Darstellungsformat
Bemerkungen
siehe Formatdefinition
Beispiel
format="+0####.###"
factor
Funktion
Faktor mit dem der Echtzeit-Steuerungswert multipliziert
wird
Bemerkungen
wird vor der Addition des Offset ausgeführt
Beispiel
factor="1.5"
offset
182
Funktion
Wert, der zum Echtzeit-Steuerungswert addiert wird
Bemerkungen
erfolgt nach der Multiplikation mit dem Faktor
Beispiel
offset="1000"
Jetter AG
JVM-407
Formatdefinition
HTTP-Server
Die Darstellung der Variablen kann über das Attribut gesteuert werden.
 Die Anzahl der Stellen/Zeichen, mit denen eine Variable dargestellt wird,
lässt sich mit dem Zeichen "#" definieren.
 Durch Voranstellen einer "0" kann bei den Registertypen INT, INTX und
REAL die Ausgabe von führenden Nullen eingestellt werden.
 Durch Voranstellen eines Plus-Zeichens "+" kann bei den Registertypen
INT und REAL die Ausgabe eines Vorzeichens eingestellt werden.

Register / Textregister
Durch Voranstellen eines Leerzeichens kann bei den Registertypen INT
und REAL die Ausgabe eines Leerzeichens für positive Werte eingestellt
werden.
Der Variablenname beginnt mit einem großen "R" gefolgt von der Registernummer.
Folgende Typen sind möglich:
Typ
Darstellung
INT
Ganzzahl dezimal
INTX
Ganzzahl hexadezimal
INTB
Ganzzahl binär
BOOL
Registerinhalt = 0 --> Anzeige: 0
Registerinhalt != 0 --> Anzeige: 1
REAL
Gleitkommazahl dezimal
STRING
Textregister
Standardtyp: INT
Beispiel:
<JW:DTAG name="R1000250" type="REAL" format="+0####.###"
factor="3.25" offset="500" />
Ergebnis:
Der Inhalt von Register 1000250 wird mit 3,25 multipliziert, zu dem Produkt
500 hinzuaddiert und das Ergebnis mit Vorzeichen und mindestens fünf Vorkommastellen angezeigt. Falls nötig, wird mit führenden Nullen aufgefüllt.
Darüberhinaus werden drei Nachkommastellen angefügt.
Merker
Der Variablenname beginnt mit einem großen "F" gefolgt von der Merkernummer.
Folgende Typen sind möglich:
Typ
Jetter AG
Darstellung
BOOL
Merker = 0 --> Anzeige: 0
Merker = 1 --> Anzeige: 1
STRING
Merker = 0 --> Anzeige: FALSE
Merker = 1 --> Anzeige: TRUE
183
10 HTTP-Server
Standardtyp: BOOL
Beispiel:
<JW:DTAG name="F100" type="STRING" format="#" />
Ergebnis:
Der Zustand des Merkers 100 wird als String "T" oder "F" eingefügt.
Eingänge
Der Variablenname beginnt mit einem großen "I" gefolgt von der Eingangsnummer.
Folgende Typen sind möglich:
Typ
Darstellung
BOOL
Eingang = 0 --> Anzeige: 0
Eingang = 1 --> Anzeige: 1
STRING
Eingang = 0 --> Anzeige: OFF
Eingang = 1 --> Anzeige: ON
Standardtyp: BOOL
Beispiel:
<JW:DTAG name="I100000308" type="STRING" />
Ergebnis:
Der Zustand des Eingangs 100000308 wird als String "ON" oder "OFF" eingefügt.
Ausgänge
Der Variablenname beginnt mit einem großen "O" gefolgt von der Ausgangsnummer.
Folgende Typen sind möglich:
Typ
Darstellung
BOOL
Ausgang = 0 --> Anzeige: 0
Ausgang = 1 --> Anzeige: 1
STRING
Ausgang = 0 --> Anzeige: OFF
Ausgang = 1 --> Anzeige: ON
Standardtyp: BOOL
Beispiel:
<JW:DTAG name="O100000308" />
Ergebnis:
Der Zustand des Ausgangs 100000308 wird als "1" oder "0" eingefügt.
184
Jetter AG
JVM-407
Zugriff über Zeigerregister
HTTP-Server
Zugriff über ein Zeigerregister ist möglich durch Einfügen eines großen "P" vor
dem Variablennamen. Es wird jeweils der Wert der Variablen angezeigt, deren
Nummer dem Inhalt des im Variablennamen spezifizierten Registers entspricht.
Beispiele:
<JW:DTAG name="PR1000300" />
Ergebnis: Der Inhalt des Registers, dessen Nummer im Register 1000300
enthalten ist, wird angezeigt.
<JW:DTAG name="PF1000300" />
Ergebnis: Der Zustand des Merkers, dessen Nummer im Register 1000300
enthalten ist, wird angezeigt.
<JW:DTAG name="PI1000300" />
Ergebnis: Der Zustand des Eingangs, dessen Nummer im Register 1000300
enthalten ist, wird angezeigt.
<JW:DTAG name="PO1000300" />
Ergebnis: Der Zustand des Ausgangs, dessen Nummer im Register 1000300
enthalten ist, wird angezeigt.
Zugriff über Zeigerregister und Offset
Zusätzlich zum Wert aus dem Zeigerregister kann noch ein konstanter Wert
oder ein weiterer Registerinhalt addiert werden, um die Nummer der anzuzeigenden Variablen zu bilden.
Beispiele:
<JW:DTAG name="PR1000300 + 100" />
Ergebnis: Der Inhalt des Registers, dessen Nummer sich aus der Addition des
Inhalts von Register 1000300 und dem Wert 100 ergibt, wird angezeigt.
<JW:DTAG name="PR1000300 + R1000100" />
Ergebnis: Der Inhalt des Registers, dessen Nummer sich aus der Addition des
Inhalts von Register 1000300 und dem Inhalt von Register 1000100 ergibt,
wird angezeigt.
<JW:DTAG name="PF1000300 + 100" />
Ergebnis: Der Zustand des Merkers, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem 100 ergibt, wird angezeigt.
<JW:DTAG name="PF1000300 + R1000100" />
Ergebnis: Der Zustand des Merkers, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem Inhalt von Register 1000100
ergibt, wird angezeigt.
<JW:DTAG name="PI1000300 + 100" />
Ergebnis: Der Zustand des Eingangs, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem Wert 100 ergibt, wird angezeigt.
Jetter AG
185
10 HTTP-Server
<JW:DTAG name="PI1000300 + R1000100" />
Ergebnis: Der Zustand des Eingangs, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem Inhalt von Register 1000100
ergibt, wird angezeigt.
<JW:DTAG name="PO1000300 + 100" />
Ergebnis: Der Zustand des Ausgangs, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem Wert 100 ergibt, wird angezeigt.
<JW:DTAG name="PO1000300 + R1000100" />
Ergebnis: Der Zustand des Ausgangs, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem Inhalt von Register 1000100
ergibt, wird angezeigt.
186
Jetter AG
JVM-407
HTTP-Server
Beispiel einer HTML-Seite
Aufgabe
Es sollen aktuelle Echtzeit-Steuerungswerte in eine HTML-Seite eingebunden
werden.
Die HTML-Seite soll dann mit Hilfe der im HTTP-Server enthaltenen Funktionalität der Server Side Includes mit einem Browser dargestellt werden.
Vorgehen
<JC:DTAG xmlns:JC="http://jetter.de/ssi/jetcontrol" />
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgID" content="FrontPage.Editor.Document">
<title>Index</title>
</head>
<body>
Hallo Welt,&nbsp;
<p>So können aktuelle Steuerungswerte in eine html-Seite
eingebunden werden:&nbsp;</p>
<p>Register 201000 = <JC:DTAG name="R201000" type = INT
format="+####" />,
oder Hex: 0x<JC:DTAG name="PR201000+10" type="INTX" format="0###"
/>,
oder lieber so <JC:DTAG name="R201000" type="BOOL" />, wenn man nur
boolsch abfragt.
Es geht aber auch binär: <JC:DTAG name="R201000" type="INTB"
format=######## />b.&nbsp;</p>
<p>Strings könnte man auch definieren "<JC:DTAG name="R201000"
type="STRING" />".&nbsp;</p>
<p>So sieht eine Realzahl aus: <JC:DTAG name="R1001500" type="REAL"
/>
oder so <JC:DTAG name="R1001500" type="REAL" factor="1.3"
format="###.##" />.&nbsp;</p>
<p>Der Wert eines Merkers wird so dargestellt: <JC:DTAG name="F10"
/>
oder <JC:DTAG name="PF1000000" type="STRING" />.&nbsp;</p>
<p>Bei den Ein- und Ausgängen erfolgt es analog: <JC:DTAG
name="PI1000130" type="BOOL" />
bzw. <JC:DTAG name="100000205" type="STRING" />.&nbsp;</p>
<p>R201000 = <JC:DTAG name="R201000" type="INT"
format="+0##########" />&nbsp;</p>
<p>Viele Grüße&nbsp;</p>
<p>Dein JetControl</p>
</body>
</html>
Jetter AG
187
JVM-407
Programmierung
11 Programmierung
Zweck des Kapitels
Dieses Kapitel unterstützt die Programmierung des Bediengeräts JVM-407 in
folgenden Punkten:
 Programmierung der Zusatzfunktionen
Voraussetzungen
Zur Programmierung des Bediengeräts JVM-407 müssen folgende Voraussetzungen erfüllt sein:
 Das Bediengerät ist mit einem PC verbunden.
 Auf dem PC ist die Programmier-Software JetSym installiert.
Inhalt
Thema
Seite
Abkürzungen, Modulregister-Eigenschaften und Formatierungen ............. 190
Speicherübersicht ....................................................................................... 191
Ein- und Ausgabe ....................................................................................... 203
Echtzeituhr .................................................................................................. 209
Laufzeitregister ........................................................................................... 213
Überwachung der Schnittstellenaktivität..................................................... 217
E-Mail .......................................................................................................... 222
Modbus/TCP ............................................................................................... 247
Freiprogrammierbare IP-Schnittstelle ......................................................... 266
Freiprogrammierbare CAN-PRIM-Schnittstelle .......................................... 294
Jetter AG
189
11 Programmierung
Abkürzungen, Modulregister-Eigenschaften und Formatierungen
Abkürzungen
In der folgenden Tabelle sind die in diesem Dokument benutzten Abkürzungen
aufgelistet:
Abkürzung
ModulregisterEigenschaften
R 100
Register 100
MR 150
Modulregister 150
Jedes Modulregister ist durch bestimmte Eigenschaften gekennzeichnet. Die
meisten Eigenschaften sind bei vielen Modulregistern identisch, beispielsweise dass der Wert nach Reset 0 ist. In der Beschreibung sind die Modulregister-Eigenschaften nur dann aufgeführt, wenn eine Eigenschaft von den folgenden Standard-Eigenschaften abweicht.
Modulregister-Eigenschaften
Zahlenformate
Bedeutung
Standard für die meisten Modulregister
Zugriff
lesen / schreiben
Wert nach Reset
0, oder undefiniert (z. B. Versionsnummer)
Wird wirksam
sofort
Schreibzugriff
immer
Datentyp
integer
In der folgenden Tabelle sind die in diesem Dokument benutzten Zahlenformate aufgelistet:
Darstellung
JetSymBeispielprogramme
Zahlenformat
100
dezimal
0x100
hexadezimal
0b100
binär
In der folgenden Tabelle ist die in diesem Dokument benutzte Darstellung für
Beispielprogramme aufgelistet:
Darstellung
190
Bedeutung
Var, When, Task
Schlüsselwort
BitClear();
Befehle
100 0x100 0b100
konstante Zahlenwerte
// dies ist ein Kommentar
Kommentar
// ...
weitere Programmbearbeitung
Jetter AG
JVM-407
Programmierung
11.1 Speicherübersicht
Einleitung
Das Gerät JVM-407 enthält verschiedene Arten von Programm- und Datenspeicher. Es gibt flüchtigen Speicher, der beim Ausschalten seinen Inhalt
verliert und nichtflüchtigen Speicher, der auch ohne Stromversorgung seinen
Inhalt behält. Der Speicher befindet sich direkt auf der CPU oder auf separaten Speicher- oder I/O-Modulen.
Dieses Kapitel gibt eine Übersicht über den zur Verfügung stehenden Speicher.
Inhalt
Thema
Seite
Speicher des Betriebssystems ................................................................... 192
Speicher des Dateisystems ........................................................................ 193
Speicher des Anwenderprogramms ........................................................... 194
Speicher für flüchtige Variablen des Anwenderprogramms ........................ 195
Speicher für nichtflüchtige Register des Anwenderprogramms .................. 196
Speicher für nichtflüchtige Variablen des Anwenderprogramms ................ 197
Spezialregister ............................................................................................ 199
Ein- und Ausgänge ..................................................................................... 200
Merker......................................................................................................... 201
Jetter AG
191
11 Programmierung
Speicher des Betriebssystems
Einleitung
Das Betriebssystem liegt im nichtflüchtigen Flash-Speicher der CPU und kann
daher nach dem Einschalten sofort ausgeführt werden.
Eigenschaften
 Interner Flash-Speicher für das Betriebssystem
 Interner flüchtiger RAM-Speicher für die Daten des Betriebssystems
Speicherzugriff
 Auf den Speicherbereich des Betriebssystems kann der Anwender nicht
direkt zugreifen.
 Das Betriebssystem kann über einen Betriebssystem-Update geändert
werden.
Verwandte Topics
 Update des Betriebssystems auf Seite 334
192
Jetter AG
JVM-407
Programmierung
Speicher des Dateisystems
Einleitung
Im Speicher des Dateisystems werden Daten- und Programmdateien abgelegt.
Eigenschaften






interne Flash-Disk und SD-Karte
nichtflüchtig
Zugriff langsam: Millisekunden bis Sekunden
begrenzte Anzahl von Schreib-/Löschzyklen: ca. 1 Million






durch das Betriebssystem
Speicherzugriff
Jetter AG
Größe der internen Flash-Disk: 12,875 MByte
Größe der SD-Karte: 32 MByte bis 4 GByte
durch JetSym
über eine FTP-Verbindung
durch den E-Mail-Client
Browser (über den HTTP-Server)
mittels der Dateibefehle aus dem Anwenderprogramm
193
11 Programmierung
Speicher des Anwenderprogramms
Einleitung
Das Anwenderprogramm wird standardmäßig von JetSym an das Bediengerät
übertragen und dort gespeichert.
Eigenschaften




Ablage als Datei im Dateisystem
Standardverzeichnis: "/app"
in anderen Verzeichnissen (auch SD-Karte) möglich
Größe: max. 256 KByte
Speicherzugriff




durch das Betriebssystem
durch JetSym
über eine FTP-Verbindung
mittels der Dateibefehle aus dem Anwenderprogramm
Verwandte Topics
 Anwenderprogramm auf Seite 341
194
Jetter AG
JVM-407
Programmierung
Speicher für flüchtige Variablen des Anwenderprogramms
Einleitung
In flüchtigen Variablen werden Daten abgelegt, die nach dem Ausschalten des
JVM-407 nicht erhalten bleiben müssen.
Eigenschaften
 Globale Variablen, die nicht fest Adressen zugeordnet worden sind (nicht
%VL oder %RL)
 Lokale Variablen
 Variablen werden kompakt abgelegt
 Variablen werden beim Anlegen mit dem Wert 0 initialisiert
Speicherzugriff
 durch JetSym
 aus dem Anwenderprogramm
JetSym STX-Programm
In dem folgenden Programm wird eine globale Variable alle 2 Sekunden um 1
inkrementiert.
Var
Count:
End_Var;
Int;
Task Inkrement Autorun
Loop
Inc(Count);
Delay(T#2s);
End_Loop;
End_Task;
Anzeige im Setup
Das Setup-Fenster von JetSym zeigt den Inhalt der Variablen an.
Nummer
1
Jetter AG
Teil
Aktueller Inhalt der
Variablen
Funktion
Der Inhalt der Variablen wird alle 2 Sekunden
um 1 inkrementiert.
195
11 Programmierung
Speicher für nichtflüchtige Register des Anwenderprogramms
Einleitung
In nichtflüchtigen Registern werden Daten abgelegt, die nach dem Ausschalten des JVM-407 erhalten bleiben müssen.
Eigenschaften





Globale Variablen, die fest Adressen zugeordnet worden sind (%VL)
Registervariablen belegen immer 4 Byte
Registervariablen werden vom Betriebssystem nicht initialisiert
Anzahl Registervariablen: 6.000






durch JetSym
durch den E-Mail-Client
Speicherzugriff
JetSym STX-Programm
Registernummern: 1.000.000 bis 1.005.999
Browser (über den HTTP-Server)
von Anzeige- und Bediengeräten
aus dem Anwenderprogramm
von anderen Steuerungen/Bediengeräten
In dem folgenden Programm wird eine Registervariable bei jedem Start des
Anwenderprogramms um eins erhöht. Sie wird also verwendet, um die Anzahl
der Programmstarts zu zählen.
Var
ProgramStartCounter:
End_Var;
Int At %VL 1000000;
Task Work Autorun
ProgramStartCounter := ProgramStartCounter + 1;
Loop
// ...
End_Loop;
End_Task;
Anzeige im Setup
Das Setup-Fenster von JetSym zeigt den Inhalt der Registervariablen an.
Nummer
1
196
Teil
Aktueller Inhalt der
Registervariablen
Funktion
Der Inhalt der Registervariablen wird bei
jedem Programmstart um 1 erhöht.
Jetter AG
JVM-407
Programmierung
Speicher für nichtflüchtige Variablen des Anwenderprogramms
Einleitung
In nichtflüchtigen Variablen werden Daten abgelegt, die nach dem Ausschalten des JVM-407 erhalten bleiben müssen.
Eigenschaften




Speicherzugriff
 durch JetSym
 von Anzeige- und Bediengeräten
 aus dem Anwenderprogramm
JetSym STX-Programm
In dem folgenden Programm werden 4 nichtflüchtige Variablen jede Sekunde
erhöht. Die Zähler können jeweils Werte zwischen 0 und 255 (Variablentyp
Byte) annehmen. Für die 4 Variablen werden die 4 Bytes des Registers mit
der Nummer 1000010 verwendet.
Globale Variablen, die auf Register fest zugeordnet worden sind (%RL)
Variable werden kompakt abgelegt
Größe: 24.000 Bytes
Registernummern: 1.000.000 bis 1.005.999
Var
Cnt1, Cnt2, Cnt3, Cnt4:
End_Var;
Byte At %RL 1000010;
Task Count4 Autorun
Loop
Inc(Cnt1);
Inc(Cnt2, 2);
Inc(Cnt3, 5);
Inc(Cnt4, 10);
Delay(T#1s);
End_Loop;
End_Task;
Anzeige im Setup
Jetter AG
Das Setup-Fenster von JetSym zeigt den Inhalt der Variablen an. Da die 4
Zähler vom Typ Byte sind, ergeben sich schon nach relativ kurzer Zeit Zahlenüberläufe:
197
11 Programmierung
Nummer
198
Teil
Funktion
1
Aktueller Inhalt der
Variablen Cnt1
Der Inhalt der Variablen wird jede Sekunde
um 1 erhöht.
2
Aktueller Inhalt der
Variablen Cnt2
Der Inhalt der Variablen wird jede Sekunde
um 2 erhöht.
3
Aktueller Inhalt der
Variablen Cnt3
Der Inhalt der Variablen wird jede Sekunde
um 5 erhöht.
4
Aktueller Inhalt der
Variablen Cnt4
Der Inhalt der Variablen wird jede Sekunde
um 10 erhöht.
Jetter AG
JVM-407
Programmierung
Spezialregister
Einleitung
Über Spezialregister können Funktionen im Betriebssystem gesteuert und
Statusinformationen abgerufen werden.
Eigenschaften
 Globale Variablen, die fest Adressen zugeordnet worden sind (%VL)
 Spezialregister werden beim Start des Betriebssystems mit Standardwerten
vorbesetzt
 Registernummern: 100.000 bis 999.999
Speicherzugriff
JetSym STX-Programm






durch JetSym
durch den E-Mail Client
Browser (über den HTTP-Server)
von Anzeige- und Bediengeräten
aus dem Anwenderprogramm
von anderen Steuerungen
In dem folgenden Programm werden 2 Spezialregisters verwendet. Einmal
das Spezialregister für die Status-Leds und einmal das Spezialregister für den
Digipot-Wert. In dem Task wird einfach der Wert des Spezialregisters für den
Digipot in das Spezialregister für die Status-Leds kopiert. Läuft nun das Anwenderprogramm auf dem Bediengerät und der Digipot wird gedreht, dann
wird der Wert des Digipot-Spezialregisters durch die Status-Leds angezeigt.
Var
Digipot:
Int at %VL 363000;
Status_LEDs:Int at %VL 362100;
End_Var;
Task Main Autorun
Loop
Status_LEDs:= Digipot;
End_Loop;
End_Task;
Jetter AG
199
11 Programmierung
Ein- und Ausgänge
Einleitung
Ein- und Ausgänge sind 1-Bit-Variablen, die den Wert TRUE oder FALSE
annehmen können.
Eigenschaften der virtuellen Ein-/Ausgänge




Globale Variablen, die fest Adressen zugeordnet worden sind (%IX , %QX)
Verwendung beim RemoteScan über Modbus/TCP
Anzahl: 16.000
I/O-Nummern: 20001 bis 36000
Speicherzugriff





durch JetSym
durch den E-Mail Client
Browser (über den HTTP-Server)
JetSym STX-Programm
von Anzeige- und Bediengeräten
aus dem Anwenderprogramm
Im folgenden Programm wird die Hintergrundbeleuchtung des Bediengeräts
gedimmt, wenn der Eingang In11 gesetzt ist.
Var
In11
:Bool at %XL 362100.10;
//Hintergrundbeleuchtung
BackgroundLighting
:Int at %VL 364000;
End_Var;
Task Main Autorun
Loop
//Falls In11 gesetzt dann
If In11 Then
//dimme Hintergrundbeleuchtung
Inc(BackgroundLighting);
Delay(T#30ms);
End_If;
End_Loop;
End_Task;
200
Jetter AG
JVM-407
Programmierung
Merker
Einleitung
Merker belegen 1 Bit im Speicher und können den Wert TRUE oder FALSE
annehmen.
Eigenschaften Anwendermerker




Globale Variablen, die fest Adressen zugeordnet worden sind (%MX)
nicht flüchtig
Anzahl: 256
Merkernummern: 0 bis 255
Eigenschaften überlagerter Anwendermerker





Globale Variablen, die fest Adressen zugeordnet worden sind (%MX)
nicht flüchtig
überlagert mit den Registern 1000000 bis 1000055
Eigenschaften Spezialmerker
Anzahl: 1.792
Merkernummern: 256 bis 2047
 Globale Variablen, die fest Adressen zugeordnet worden sind (%MX)
 Spezialmerker werden beim Start des Betriebssystems mit Standardwerten
vorbesetzt
 Anzahl: 256
 Merkernummern: 2048 bis 2303
Speicherzugriff
JetSym STX-Programm





durch JetSym
durch den E-Mail-Client
Browser (über den HTTP-Server)
von Anzeige- und Bediengeräten
aus dem Anwenderprogramm
In dem folgenden Programm wird beim Drücken der Taste F1 ein Merker
gesetzt und mit der Taste F2 auf einem Bediengerät rückgesetzt. Solange der
Merker gesetzt ist wird das Spezialregister 361000 (Status-LEDs) hochgezählt. Erst wenn der Merker wieder zurückgesetzt wird dann wird das Hochzählen des Spezialregisters gestoppt.
Var
Merker1:
Input_Button_1:
Input_Button_2:
Status_LEDs:
End_Var;
Bool
Bool
Bool
Int
at
at
at
at
%MX
%XL
%XL
%VL
1;
361000.0;
361000.1;
362100;
Task Main Autorun
Merker1:= False;
Loop
If Input_Button_1 Then
Merker1 := True;
ElseIf Input_Button_2 Then
Jetter AG
201
11 Programmierung
Merker1 := False;
End_IF;
If Merker1 Then
Inc(Status_LEDs);
Delay(T#100ms);
End_If;
End_Loop;
End_Task;
202
Jetter AG
JVM-407
Programmierung
11.2 Ein- und Ausgabe
Einleitung
Dieses Kapitel beschreibt die Programmierung der Ein- und Ausgänge, der
Bedienelemente und der Zündung und Ausschaltverzögerung des JVM-407.
Inhalt
Thema
Seite
Funktionstasten .......................................................................................... 204
Digipot ......................................................................................................... 205
Digitale Ein- und Ausgänge ........................................................................ 206
Zündung und Ausschaltverzögerung .......................................................... 207
Jetter AG
203
11 Programmierung
Funktionstasten
Einleitung
Das Bediengerät JVM-407 verfügt über die vier Funktionstasten F1 bis F4. Die
Funktionstasten können frei programmiert werden.
Spezialregister
Im Register 361000 des JVM-407 ist ein bitcodiertes Abbild der Funktionstasten vorhanden und kann zur Programmierung verwendet werden.
JetSym STX-Programm
Voraussetzungen:
Damit die Status-LEDs nicht zusätzlich über die Eingänge des JVM-407 angesteuert werden, sollten die Eingänge IN1 bis IN10 während der Ausführung
des Beispielprogramms nicht gesetzt sein.
Im folgenden Beispielprogramm werden die Funktionstasten in einem Task
permanent abgefragt. Wird eine oder mehrere Tasten betätigt, dann werden
die im Programm zugeordneten Status-LEDs angesteuert.
Var
F_Button_Register: Int At %VL 361000;
Status_Led_1:
Status_Led_2:
Status_Led_3:
Status_Led_4:
End_Var;
Bool
Bool
Bool
Bool
At
At
At
At
%XL
%XL
%XL
%XL
362100.0;
362100.1;
362100.2;
362100.3;
Task Main Autorun
F_Button_Register := 0;
Loop
If F_Button_Register.0 Then
Status_Led_1 := True;
Else Status_Led_1 := False;
End_If;
If F_Button_Register.1 Then
Status_Led_2 := True;
Else Status_Led_2 := False;
End_If;
If F_Button_Register.2 Then
Status_Led_3 := True;
Else Status_Led_3 := False;
End_If;
If F_Button_Register.3 Then
Status_Led_4 := True;
Else Status_Led_4 := False;
End_If;
End_Loop;
End_Task;
204
Jetter AG
JVM-407
Programmierung
Digipot
Einleitung
Bei dem JVM-407 ist ein Digipot mit Bestätigungs-Taste vorhanden, der eine
komfortable Eingabemöglichkeit darstellt. An dieser Stelle werden die Spezialregister des Digipot beschrieben, sowie ein entsprechendes Beispielprogramm.
Digipot-Register
Es gibt folgende Spezialregister für den Digipot:
Register
363000
Bedeutung
Dieses Register wird beim Drehen des Digipot hoch- und runtergezählt
und enthält den aktuellen Zählerwert. Dabei gilt:


JetSym STX-Programm
Digipot im Uhrzeigersinn drehen = Register hochzählen
Digipot gegen Uhrzeigersinn drehen = Register abwärts zählen
363001
Bit 0: 0 = Bestätigungs-Taste nicht betätigt
Bit 0: 1 = Bestätigungs-Taste betätigt
363002
Hier wird das untere Limit für den Zählerwert des Digipots vorgegeben.
Wird der Digipot gegen den Uhrzeigersinn weitergedreht wird, bleibt das
Register 363000 bei diesem Minimumwert stehen.
363003
Hier wird das obere Limit für den Zählerwert des Digipots vorgegeben.
Auch wenn der Digipot im Uhrzeigersinn weitergedreht wird, bleibt das
Register 363000 bei diesem Maximumwert stehen.
Im folgenden Beispielprogramm wird die Hintergrundbeleuchtung des
JVM-407 über den Digipot gedimmt. Dabei ist ein unteres und oberes Limit für
den Digipot vorgegeben. Bei Betätigung der Digipot-Taste wird die volle Hintergrundbeleuchtung eingestellt.
Var
Digipot_Count
:
Digipot_Limit_min:
Digipot_Limit_max:
Digipot_Button
:
BackgroundLighting:
End_Var;
Int
Int
Int
Int
Int
At
At
At
At
At
%VL
%VL
%VL
%VL
%VL
363000;
363002;
363003;
363001;
364000;
Task Main Autorun
Digipot_Count := 0;
Digipot_Limit_max := 17;
Digipot_Limit_min := 0;
Loop
If Digipot_Button Then
BackgroundLighting := 255;
Else BackgroundLighting := Digipot_Count*15;
End_If
End_Loop
End_Task;
Jetter AG
205
11 Programmierung
Digitale Ein- und Ausgänge
Einleitung
Das Bediengerät JVM-407 verfügt über folgende Ein- und Ausgänge:
 15 digitale Eingänge. Davon sind zehn fest mit den Status-LEDs verbun
Spezialregister
den und fünf sind frei programmierbar.
1 digitaler Ausgang, z. B. zur Ansteuerung eines Bypass-Relais. Die Ausgänge werden aber immer gleichzeitig gesetzt, um einen höheren Strom
liefern zu können.
Folgende Register stehen für die digitalen Ein- und Ausgänge zur Verfügung:
Register
362100
Beschreibung
Bitcodiertes Abbild der digitalen Eingänge IN1 - IN15.
IN1 - IN10 sind mit den Status-LEDs des JVM-407 verbunden.
Beispiel:
Bit 0 = 1: IN1 ein und Status LED 1 an.
362200
JetSym STX-Programm
Bit 0 des Registers ist für das Setzen des digitalen Ausgangs zuständig.
Bit 0 = 1: Digitaler Ausgang ist gesetzt.
In dem Beispielprogramm wird der frei programmierbare Eingang IN11 permanent abgefragt. Wird dieser Eingang gesetzt, dann werden die 2 digitalen
Ausgänge gesetzt, welche zur Ansteuerung z. B. eines Bypass-Relais dienen.
Var
IN11:
Bool At %XL 362100.10;
// Digitale Ausgänge
Output: Bool At %XL 362200.0;
End_Var;
Task Main Autorun
Loop
// Falls In11 gesetzt dann
If IN11 Then
// Setze der digitalen Ausgänge
Output := True;
Delay(T#100ms);
End_If;
End_Loop;
End_Task;
206
Jetter AG
JVM-407
Programmierung
Zündung und Ausschaltverzögerung
Einleitung
An dieser Stelle wird die Zündung und die Funktion Shutdown beschrieben.
Spezialregister
Das Spezialregister 361100 des JVM-407 ist für die Abfrage der Zündung
zuständig. Dabei gilt folgendes:
Wenn ...
Default-Zündungsfunktion
Bit 0 = 0
Zündung ist eingeschaltet und Spannung
liegt an KL 15 Zündung (+) an.
Bit 0 = 1
Zündung ist aus und keine Spannung liegt
an KL 15 Zündung (+) an.
Das Bediengerät hat im Zusammenhang mit der Zündung folgende
Default-Einstellungen:
Wenn ...
Optionen Funktion
Shutdown
... Dann ...
...und...
... Dann ...
die Spannungsversorgung
an das Bediengerät angelegt wird
die Zündung aus ist
bootet das Bediengerät
nicht.
die Spannungsversorgung
an das Bediengerät angelegt wird
die Zündung eingeschaltet ist
bootet das Bediengerät.
das Bediengerät läuft
die Zündung ausgeschaltet wird (nicht die
Spannungsversorgung)
dann bleibt das Bediengerät
angeschaltet.
Abweichend von der Default-Zündungsfunktion bietet die Funktion Shutdown
folgende Optionen:
 Das Bediengerät kann definiert heruntergefahren werden.
 Ein Neustart des Bediengeräts kann durchgeführt werden.
Funktionsdeklaration
Function Shutdown (Reboot:Bool) :Bool;
Funktionsparameter
Die Funktion Shutdown () hat den folgenden Parameter.
Parameter
Reboot
Jetter AG
Beschreibung
Neustart des Systems:
Abschalten des Systems:
Wert
True
False
207
11 Programmierung
Rückgabewert
Die Funktion übergibt die folgenden Rückgabewerte an das übergeordnete
Programm.
Rückgabewert
0
ok
-1
Zündung ist noch eingeschaltet
Hinweis
Wenn die Zündung noch eingeschaltet ist, wird das Gerät nicht abgeschaltet.
Ein Neustart wird allerdings immer durchgeführt und ist unabhängig von der
Zündung.
JetSym STX-Programm
In dem Beispielprogramm wird die Funktion Shutdown () nach 3 Sekunden
ausgeführt, wenn die Zündung des Fahrzeugs ausgeschaltet wird. Der Parameter Reboot der Funktion Shutdown () hat den Wert false. Das bedeutet,
dass das Gerät abgeschaltet wird.
Var
Ignition: Int At %VL 361100;
End_Var;
Task Ign Autorun
Loop
When Ignition Continue;
Delay(3000);
Shutdown(False);
End_Loop;
End_Task;
208
Jetter AG
JVM-407
Programmierung
11.3 Echtzeituhr
Einleitung
Das Gerät JVM-407 verfügt über einen Baustein, der Datum und Uhrzeit über
eine bestimmte Zeit weiterführt, auch wenn das Gerät ausgeschaltet ist.
Verwendung vom
Betriebssystem
Die Echtzeituhr wird vom Betriebssystem bei folgenden Funktionen verwendet:
 Dateidatum und -uhrzeit beim Schreiben einer Datei
Einschränkungen
Bei der Verwendung der Echtzeituhr sind folgende Einschränkungen zu beachten:
 Die Gangreserve bei ausgeschaltetem Gerät ist begrenzt
 Es erfolgt keine automatische Sommerzeit-Umschaltung
Inhalt
Thema
Seite
Technische Daten ....................................................................................... 210
Beispielprogramm Echtzeituhr ..................................................................... 211
Jetter AG
209
11 Programmierung
Technische Daten
Technische Daten der
Echtzeituhr
Verhalten nach Ende der
Gangreserve
Auslieferungszustand
210
Parameter
Beschreibung
Gangreserve
4 Jahre
Abweichung
max. 1 Minute pro Monat
Wenn das Bediengerät länger als die Gangreserve der Echtzeituhr abgeschaltet war, so führt das Bediengerät folgendes aus:
Stufe
Beschreibung
1
Das Bediengerät erkennt beim Booten, dass die Gangreserve abgelaufen
ist.
2
Datum und Uhrzeit werden auf den Standardwert gesetzt:
Datum: Samstag, 1. Januar 2000
Uhrzeit: 0 Uhr
Im Auslieferungszustand ist das Datum auf Samstag 1. Januar 2000 eingestellt.
Jetter AG
JVM-407
Programmierung
Beispielprogramm Echtzeituhr
Aufgabe
Die aktuelle Uhrzeit und das Datum des JVM-407 sollen in JetSym angezeigt
werden können.
Lösung
Ein Task des Anwenderprogramms liest zyklisch die Echtzeituhr aus und gibt
die Werte formatiert über eine Trace-Meldung aus. Diese kann in JetSym nach
Einschalten des Trace-Modus angezeigt werden.
JetSym STX-Programm
Type
// structure of RTC buffer
TimeAndDate:
Struct
Second:
Minute:
Hour:
DayOfWeek:
Day:
Month:
Year:
Trigger:
End_Struct;
End_Type;
Var
RTCregs:
End_Var;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
TimeAndDate At %VL 102921;
Task ShowTimeAndDate Autorun
Var
Dummy:
Int;
End_Var;
Loop
// wait one second
Delay(T#1s);
// copy actual time and date to buffer
Dummy := RTCregs.Trigger;
// show day of week
Case RTCregs.DayOfWeek Of
0: Trace('Sunday');
Break;
1: Trace('Monday');
Break;
2: Trace('Tuesday');
Break;
3: Trace('Wednesday');
Break;
4: Trace('Thursday');
Jetter AG
211
11 Programmierung
Break;
Trace('Friday');
Break;
6: Trace('Saturday');
Break;
End_Case;
// show date
Trace(StrFormat(' , %2d.%02d.%4d , ',
RTCregs.Day,
RTCregs.Month,
RTCregs.Year + 2000));
// show time (plus cr/lf)
Trace(StrFormat('%2d:%02d:%02d$n',
RTCregs.Hour,
RTCregs.Minute,
RTCregs.Second));
End_Loop;
End_Task;
5:
212
Jetter AG
JVM-407
Programmierung
11.4 Laufzeitregister
Einleitung
Das Gerät JVM-407 stellt mehrere Register zur Verfügung, die vom Betriebssystem in festen Zeitabständen hochgezählt werden.
Verwendung
Mit Hilfe dieser Register lassen sich auf einfache Weise im Anwenderprogramm Zeitmessungen durchführen.
Inhalt
Thema
Seite
Beschreibung der Laufzeitregister .............................................................. 214
Beispielprogramm Laufzeitregister ............................................................. 216
Jetter AG
213
11 Programmierung
Beschreibung der Laufzeitregister
Registerübersicht
In dieser Anleitung werden die folgenden Register verwendet:
Register
R 201000
Beschreibung
R 201000
Anwenderzeitbasis in Millisekunden
R 201001
Anwenderzeitbasis in Sekunden
R 201002
Anwenderzeitbasis in R 201003 * 10 Millisekunden
R 201003
Anwenderzeitbasis-Einheiten für R 201002
R 201004
Systemzeitbasis in Millisekunden
Anwenderzeitbasis in Millisekunden
Dieses Register wird jede Millisekunde um 1 inkrementiert.
Register-Eigenschaften
Werte
R 201001
-2.147.483.648 ... 2.147.483.647 (überlaufend)
Anwenderzeitbasis in Sekunden
Dieses Register wird jede Sekunde um 1 inkrementiert.
Register-Eigenschaften
Werte
R 201002
-2.147.483.648 ... 2.147.483.647 (überlaufend)
Anwenderzeitbasis in Anwenderzeitbasis-Einheiten
Dieses Register wird alle [R 201003] * 10 Millisekunden um 1 inkrementiert.
Mit dem Reset-Wert in Register 201003 von 10, wird dieses Register alle
100 Millisekunden inkrementiert.
Register-Eigenschaften
Werte
214
-2.147.483.648 ... 2.147.483.647 (überlaufend)
Jetter AG
JVM-407
R 201003
Programmierung
Anwenderzeitbasis-Einheiten für R 201002
Dieses Register enthält den Multiplikator für das Laufzeitregister R 201002.
Register-Eigenschaften
R 201004
Werte
1 ... 2.147.483.647 (* 10 ms)
Wert nach Reset
10 (--> 100 ms)
Wirksamkeit
nach min. 10 ms
Systemzeitbasis in Millisekunden
Dieses Register wird jede Millisekunde um 1 inkrementiert.
Register-Eigenschaften
Jetter AG
Werte
-2.147.483.648 ... 2.147.483.647 (überlaufend)
Zugriff
lesen
215
11 Programmierung
Beispielprogramm Laufzeitregister
Aufgabe
Es soll gemessen werden, wie lange das Abspeichern von Variablenwerten in
einer Datei dauert.
Lösung
Vor dem Abspeichern der Werte wird das Register 201000 auf 0 gesetzt.
Wenn die Werte abgespeichert sind, kann aus diesem Register die benötigte
Zeit in Millisekunden gelesen werden.
JetSym STX-Programm
Var
DataArray:
File1:
WriteTime:
WriteIt:
MilliSec:
End_Var;
Array[2000] Of Int;
File;
Int;
Bool;
Int At %VL 201000;
Task WriteToFile Autorun
Loop
// clear start flag
WriteIt := False;
// wait until start flag set by user
When WriteIt Continue;
// open file in write mode
If FileOpen(File1, '/Test.dat', fWrite) Then
// restart timer register
MilliSec := 0;
// write array data to file
FileWrite(File1, DataArray,
SizeOf(DataArray));
// capture time
WriteTime := MilliSec;
FileClose(File1);
// show measured time
Trace(StrFormat('Time : %d [ms]$n',
WriteTime));
Else
// show error message
Trace('Unable to open file!$n');
End_If;
End_Loop;
End_Task;
216
Jetter AG
JVM-407
Programmierung
11.5 Überwachung der Schnittstellenaktivität
Einleitung
Um die innerhalb des Bediengeräts verwendeten Variablen von außen zugänglich zu machen, sind im Bediengerät mehrere Variablen-Server integriert.
Diese Server unterstützen unterschiedliche Protokolle auf verschiedenen
Schnittstellen. Die Server benötigen keine Programmierung im Anwenderprogramm, sondern bearbeiten Anfragen von externen Clients selbstständig.
Dieses Kapitel erläutert eine Möglichkeit, im Anwenderprogramm festzustellen, ob über diese Schnittstellen mit den Servern kommuniziert wird.
Überwachte Schnittstellenaktivitäten
Es können folgende Schnittstellenaktivitäten überwacht werden:
 JetIP-Server auf der Ethernet-Schnittstelle
 STX Debug-Server auf der Ethernet-Schnittstelle
Verwendung
Die Überwachung der Schnittstellenaktivität kann beispielsweise bei folgenden
Szenarien Verwendung finden:
 Anlagen, die für den sicheren Betrieb eine Prozess-Visualisierung benötigen, können in einen sicheren Zustand überführt werden, wenn die Kommunikation ausfällt.
 Bei Anschluss eines Bediengeräts durch den Service-Techniker werden
vom Anwenderprogramm automatisch erweiterte Statusinformationen
ausgegeben.
Inhalt
Thema
Seite
Funktionsweise ........................................................................................... 218
Programmierung ......................................................................................... 220
Jetter AG
217
11 Programmierung
Funktionsweise
Einleitung
Mit Hilfe von zwei Spezialmerkern und einem Spezialregister pro Schnittstelle
kann die Aktivität eines Clients, der mit einem Server des Geräts JVM-407
kommuniziert, vom Anwenderprogramm aus überwacht werden.
Übersicht
Diese Grafik zeigt den Zusammenhang zwischen der Aktivität der Schnittstelle, den beiden Spezialmerkern und dem Spezialregister:
1
Telegrams
Timeout
2
OS Flag
3
User Flag
Application program:
WHEN OS_FLAG Continue
User_FLAG := TRUE;
Nummer
Beschreibung
Funktion
1
Telegrams
Anfragen des Clients an den Server
2
OS-Flag
Betriebssystem-Merker, der von dem Gerät
JVM-407 gesetzt wird, wenn eine Anfrage empfangen wurde.
3
User-Flag
Anwendermerker, der im Anwenderprogramm
gesetzt werden sollte, sobald der Betriebssystem-Merker gesetzt wurde; hierüber kann festgestellt werden, dass die Verbindung kurzzeitig
unterbrochen worden war. Auch wenn der Betriebssystem-Merker sehr schnell wieder gesetzt
wird.
4
Timeout
Zeit der Inaktivität, nach der beide Spezialmerker
vom Betriebssystem zurückgesetzt werden; die
Zeit ist in einem Spezialregister einstellbar.
Die Überwachung der Schnittstellenaktivität erfolgt wie nachfolgend beschrieben:
Stufe
218
Teil
4
Beschreibung
1
Im Anwenderprogramm wird das Timeout-Register mit dem gewünschten
Wert beschrieben und so der Überwachungs-Modus eingeschaltet.
2
Nach dem Empfang des nächsten Telegramms wird von dem Gerät
JVM-407der entsprechende Betriebssystem-Merker gesetzt.
3
Im Anwenderprogramm wird bei gesetztem Betriebssystem-Merker auch
der entsprechende Anwendermerker gesetzt.
Jetter AG
JVM-407
Programmierung
Stufe
Jetter AG
Beschreibung
4
Bei jedem weiteren Telegramm wird der Timeout neu gestartet.
5
Werden keine weiteren Telegramme mehr empfangen, so werden nach
Ablauf der Timeoutzeit beide Spezialmerker von dem Gerät zurückgesetzt.
6
Im Anwenderprogramm wird das Zurücksetzen der Spezialmerker erkannt
und entsprechende Maßnahmen eingeleitet.
7
Werden wieder Telegramme empfangen, so wird der Betriebssystem-Merker von dem Gerät wieder gesetzt; der Anwendermerker bleibt
jedoch zurückgesetzt.
219
11 Programmierung
Programmierung
Register-/
Merkerübersicht
In dieser Anleitung werden die folgenden Register und Merker verwendet:
Timeout-Register
Register
Schnittstelle
R 203000 JetIP über Ethernet
R 203005 STX-Debug über Ethernet
Verwendung



Visualisierung
Vernetzung
JetSym über Ethernet
Spezialmerker
Merker
F 2088
Schnittstelle
JetIP über Ethernet
F 2089
F 2098
Betriebssystem-Merker
Anwendermerker
STX-Debug über Ethernet
F 2099
R 203000
Verwendung
Betriebssystem-Merker
Anwendermerker
Timeout bei JetIP über Ethernet
Dieses Register enthält die Timeoutzeit für den JetIP-Server über Ethernet in
Millisekunden.
Register-Eigenschaften
R 203005
Werte
0 ... 2.147.483.647 [ms]
Wert nach Reset
0 (Überwachung abgeschaltet)
Timeout bei STX-Debug über Ethernet
Dieses Register enthält die Timeoutzeit für den STX-Debug-Server über
Ethernet in Millisekunden.
Register-Eigenschaften
220
Werte
0 ... 2.147.483.647 [ms]
Wert nach Reset
0 (Überwachung abgeschaltet)
Jetter AG
JVM-407
Einschalten der
Überwachung
Programmierung
So schalten Sie die Aktivitätsüberwachung für eine Schnittstelle ein:
Schritt
Erkennen eines Timeout
Vorgehen
1
Beschreiben Sie das Timeout-Register dieser Schnittstelle mit dem gewünschten Wert.
2
Warten Sie bis der Betriebssystem-Merker dieser Schnittstelle vom Bediengerät gesetzt wurde.
3
Setzen Sie den entsprechenden Anwendermerker.
So erkennen Sie einen Timeout:
Schritt
Vorgehen
1
Schalten Sie die Aktivitätsüberwachung ein (siehe oben).
2
Warten Sie bis der Anwendermerker dieser Schnittstelle vom Bediengerät
zurückgesetzt wurde.
Ergebnis: Ein Timeout ist aufgetreten
3
Überprüfen Sie den entsprechenden Betriebssystem-Merker
Wenn ...
Jetter AG
... Dann ...
der Betriebssystem-Merker
gesetzt ist
war die Verbindung kurz unterbrochen
der Betriebssystem-Merker
zurückgesetzt ist
ist die Verbindung immer noch unterbrochen
221
11 Programmierung
11.6 E-Mail
Einleitung
E-Mails werden in Vorlagendateien erstellt, in denen beim Versenden gegebenenfalls Variablenwerte eingefügt werden. Die E-Mails werden vom Bediengerät an einen E-Mail-Server gesendet, der die Weiterleitung übernimmt.
Dieses Kapitel beschreibt wie die E-Mail-Funktion im Bediengerät JVM-407
konfiguriert wird und E-Mails erstellt und gesendet werden.
Kenntnisse des
Programmierers
In diesem Kapitel werden folgende Kenntnisse vorausgesetzt:
 Da zur Konfiguration der E-Mail-Funktion Dateien verwendet werden und

die E-Mails selbst auf Dateien basieren, sind Kenntnisse des Dateisystems
des Bediengeräts notwendig.
Kenntnisse über IP-Netzwerke sind notwendig.
Inhalt
Thema
Seite
Konfigurieren der E-Mail-Funktion .............................................................. 223
Erstellen von E-Mails .................................................................................. 231
Versenden einer E-Mail............................................................................... 238
Register ....................................................................................................... 242
222
Jetter AG
JVM-407
Programmierung
11.6.1 Konfigurieren der E-Mail-Funktion
Einleitung
Dieses Kapitel beschreibt wie die E-Mail-Funktion konfiguriert wird, so dass
E-Mails im Anwenderprogramm versendet werden können.
Das Gerät JVM-407 liest die Konfigurations-Daten während der Bootphase
aus der Datei "/EMAIL/email.ini".
Voraussetzungen
Folgende Voraussetzungen für die Erstellung der Konfigurations-Datei müssen erfüllt sein:
 Die IP-Adresse des E-Mail-Servers muss bekannt sein.
 Wenn die IP-Adresse des E-Mail-Servers nicht bekannt ist, muss die Namensauflösung über einen DNS-Server möglich sein (siehe Verwenden
von Namen für IP-Adressen auf Seite 79).
 Die Parameter für Anmeldung und Authentifizierung am E-Mail-Server
müssen bekannt sein.
Diese Informationen erhalten Sie vom jeweiligen Netzwerkadministrator.
Inhalt
Thema
Seite
Die Konfigurations-Datei "/EMAIL/email.ini" ............................................... 224
Sektion [SMTP] ........................................................................................... 225
Sektion [POP3] ........................................................................................... 227
Sektion [DEFAULT] ..................................................................................... 229
Beispiele für eine Konfigurations-Datei ...................................................... 230
Jetter AG
223
11 Programmierung
Die Konfigurations-Datei "/EMAIL/email.ini"
Einleitung
Die Konfiguration des E-Mail-Clients in dem Gerät JVM-407 erfolgt mit den
Daten aus der Datei "/EMAIL/email.ini". Die Datei wird nur während der
Boot-Phase gelesen.
Aufbau der Datei
Die Konfigurations-Datei ist eine Textdatei, deren Einträge in Sektionen gruppiert sind.
 In diesen Sektionen werden Werte gesetzt, mit denen der E-Mail-Client
arbeitet.
Leerzeilen können beliebig eingefügt werden.

 Kommentarzeilen werden mit "!", "#" oder ";" eingeleitet.
Sektionen
Die Konfigurations-Datei enthält bis zu 3 Sektionen. Die Sektion [SMTP] muss
vorhanden sein. Die anderen Sektionen müssen nur angelegt werden, wenn
sie tatsächlich benötigt werden:
Sektion
[SMTP]
[POP3]
[DEFAULT]
224
Konfigurations-Werte





IP-Adresse und Portnummer des SMTP-Servers
Anmeldeparameter
IP-Adresse und Portnummer des POP3-Servers
Anmeldeparameter
Name einer E-Mail-Vorlagendatei, die Standardwerte enthält
Jetter AG
JVM-407
Programmierung
Sektion [SMTP]
Einleitung
In dieser Sektion werden die Parameter zur Verbindung mit dem
SMTP-Server angegeben.
Beispiel:
[SMTP]
IP
PORT
HELO
USER
PASSWORD
Authentifizierung
Bei dieser Art der Authentifizierung muss von dem JVM-407 vor dem Versenden einer E-Mail eine Benutzeranmeldung beim SMTP-Server durchgeführt
werden, wofür USER und PASSWORD benötigt wird. Der JetControl unterstützt folgende Authentifizierungsverfahren:
=
=
=
=
=
192.168.40.1
25000
JetControl_2
JetControl0815
MyPassWord
 LOGIN
 PLAIN
 CRAM-MD5
Konfigurations-Werte
IP
im Beispiel
192.168.40.1
Funktion
IP-Adresse des SMTP-Servers;
kann auch als Name angegeben werden
gültige Werte




nicht gültige Werte
bei ungültigem Wert oder
nicht vorhandenem Eintrag
> 1.0.0.0
< 223.255.255.255
Netzwerkadresse
Broadcast-Adresse
E-Mail-Funktion nicht verfügbar
PORT
im Beispiel
25.000
Funktion
Portnummer des SMTP-Servers
gültige Werte



nicht gültige Werte
bei nicht vorhandenem
Eintrag
>0
< 65.536
> 65.335
25
HELO
Jetter AG
im Beispiel
JetControl_2
Funktion
Name für die Anmeldung beim E-Mail-Server
gültige Werte
Zeichenkette mit maximal 63 Zeichen
225
11 Programmierung
bei nicht vorhandenem
Eintrag
wird beim Senden der E-Mail von dem JVM-407 der
Eintrag von [FROM] verwendet
USER
im Beispiel
JetControl0815
Funktion
Anmeldename bei SMTP-Authentifizierung; wenn
dieser Eintrag vorhanden ist, muss auch ein
PASSWORD angegeben werden
gültige Werte
Zeichenkette mit maximal 63 Zeichen
bei nicht vorhandenem
Eintrag
erfolgt keine SMTP-Authentifizierung
PASSWORD
226
im Beispiel
MyPassWord
Funktion
Anmeldepasswort bei SMTP-Authentifizierung; wenn
dieser Eintrag vorhanden ist, muss auch ein USER
angegeben werden
gültige Werte
Zeichenkette mit maximal 63 Zeichen
bei nicht vorhandenem
Eintrag
erfolgt keine SMTP-Authentifizierung
Jetter AG
JVM-407
Programmierung
Sektion [POP3]
Einleitung
In dieser Sektion werden die Parameter zur Verbindung mit dem POP3-Server
angegeben.
Diese Sektion wird nur benötigt, wenn der E-Mail-Server, an den die nachfolgenden E-Mails geschickt werden sollen, eine Authentifizierung über
POP3-vor-SMTP benötigt.
Beispiel:
[POP3]
IP
PORT
USER
PASSWORD
Authentifizierung
Bei dieser Art der Authentifizierung muss von dem JVM-407 zuerst eine Verbindung zum POP3-Server aufgebaut werden, wofür USER und PASSWORD
benötigt wird. Daraufhin wird vom SMTP-Server der Versand von E-Mails für
eine bestimmte Zeit (meist 10 bis 30 Minuten) freigeschaltet.
Konfigurations-Werte
=
=
=
=
192.168.40.1
25100
JetControl4711
Pop3PassWord
IP
im Beispiel
192.168.40.1
Funktion
IP-Adresse des POP3-Servers;
kann auch als Name angegeben werden
gültige Werte




nicht gültige Werte
bei ungültigem Wert oder
nicht vorhandenem Eintrag
> 1.0.0.0
< 223.255.255.255
Netzwerkadresse
Broadcast-Adresse
erfolgt keine POP3-Anmeldung
PORT
im Beispiel
25.100
Funktion
Portnummer des POP3-Servers
gültige Werte



nicht gültige Werte
bei nicht vorhandenem
Eintrag
>0
< 65.536
> 65.335
110
USER
Jetter AG
im Beispiel
JetControl4711
Funktion
Anmeldename bei POP3-Anmeldung; wenn dieser
Eintrag vorhanden ist, muss auch ein PASSWORD
angegeben werden
gültige Werte
Zeichenkette mit maximal 63 Zeichen
227
11 Programmierung
bei nicht vorhandenem
Eintrag
erfolgt keine POP3-Anmeldung
PASSWORD
228
im Beispiel
Pop3PassWord
Funktion
Anmeldepasswort bei POP3-Anmeldung; wenn dieser
Eintrag vorhanden ist, muss auch ein USER angegeben
werden
gültige Werte
Zeichenkette mit maximal 63 Zeichen
bei nicht vorhandenem
Eintrag
erfolgt keine POP3-Anmeldung
Jetter AG
JVM-407
Programmierung
Sektion [DEFAULT]
Einleitung
In dieser Sektion wird der Name einer E-Mail-Vorlagendatei angegeben, die
Standardeinstellungen für die E-Mail-Vorlagendateien enthält. Die hier gemachten Definitionen werden beim Versenden einer E-Mail eingesetzt, wenn
die entsprechende Sektion in der jeweiligen E-Mail-Vorlage nicht enthalten ist.
Beispiel
[DEFAULT]
MAILCFG = EmailDefaults.cfg
Verwandte Topics
 Struktur der Vorlagendatei auf Seite 233
Jetter AG
229
11 Programmierung
Beispiele für eine Konfigurations-Datei
Einleitung
Hier finden Sie einige Beispiele für die E-Mail-Konfigurations-Datei
"/EMAIL/email.ini".
Minimalkonfiguration
Wenn keine Authentifizierung benötigt wird und der IP-Port am SMTP-Server
dem Standardwert entspricht, beschränkt sich der Inhalt der Konfigurations-Datei auf die Angabe der IP-Adresse des SMTP-Servers:
[SMTP]
IP
Authentifizierung über
POP3-Anmeldung
= 192.168.40.1
Wenn der E-Mail-Server eine vorherige Anmeldung über POP3 verlangt und
eine E-Mail-Vorlagendatei mit Standardeinstellungen definiert ist:
[SMTP]
IP
= 192.168.40.1
[POP3]
IP
= 192.168.40.1
USER
= JetControl4711
PASSWORD = Pop3PassWord
[DEFAULT]
MAILCFG = EmailDefaults.cfg
Authentifizierung über
SMTP
230
Wenn der E-Mail-Server eine verschlüsselte Authentifizierung verlangt:
[SMTP]
IP
= 192.168.40.1
USER
= JetControl0815
PASSWORD = MyPassWord
Jetter AG
JVM-407
Programmierung
11.6.2 Erstellen von E-Mails
Einleitung
Dieses Kapitel beschreibt, wie E-Mails erstellt werden, die dann im Anwenderprogramm versendet werden können.
Für jede E-Mail ist vom Anwender eine E-Mail-Vorlagendatei zu erstellen.
Inhalt
Thema
Seite
Name der E-Mail-Vorlagendatei ................................................................. 232
Struktur der E-Mail-Vorlagendatei............................................................... 233
Einfügen von Echtzeit-Steuerungswerten .................................................. 235
Jetter AG
231
11 Programmierung
Name der E-Mail-Vorlagendatei
Einleitung
Der Name einer E-Mail-Vorlagendatei setzt sich aus einem konstanten und
einem variablen Namensteil zusammen. Über den variablen Namensteil können die unterschiedlichen E-Mails vom Anwenderprogramm beim Versenden
ausgewählt werden.
Dateiname
email_#.cfg
Namensteil
email_
#
.cfg
Speicherort
Funktion
fester Namens-Präfix
Nummer der E-Mail; Wert zwischen 0 und 255
feste Dateierweiterung
Die E-Mail-Vorlagendateien müssen im selben Verzeichnis der internen
Flash-Disk abgelegt sein, in dem auch die Konfigurations-Datei liegen muss:
/EMAIL
Beispiele
232
email_0.cfg
email_37.cfg
email_255.cfg
Jetter AG
JVM-407
Programmierung
Struktur der E-Mail-Vorlagendatei
Einleitung
Eine E-Mail-Vorlagendatei ist eine Textdatei, die in Sektionen strukturiert ist.
Aus den Informationen in diesen Sektionen wird beim Versenden die E-Mail
zusammengestellt.
E-Mail-Vorlagendatei
 Die Sektionen [FROM] und [TO] müssen vorhanden sein. Entweder in der

zu versendenden E-Mail selbst oder in der E-Mail-Vorlagendatei mit den
Standardeinstellungen.
Alle Parameter in diesen Sektionen können mit Tags, die Echtzeit-Steuerungswerte enthalten, versehen werden (siehe Einfügen von
Echtzeit-Steuerungswerten auf Seite 182).
[FROM]
Absender
[TO]
Empfänger
[CC]
Weitere(r) Empfänger
[SUBJECT]
Betreff
[ATTACHMENT]
Vollständiger Pfad- und Dateiname
[MESSAGE]
Inhalt der E-Mail
Sektionen
[FROM]
Funktion
Absender der E-Mail
Bemerkungen
Fragen Sie den zuständigen IT-Administrator, was hier
einzutragen ist.
Länge
63 Zeichen
Beispiel
[FROM]
[email protected]
[TO]
Jetter AG
Funktion
Empfänger der E-Mail
Bemerkungen
Mehrere Empfänger werden durch Semikolon ";" getrennt.
Länge
255 Zeichen
233
11 Programmierung
Beispiel
[TO]
[email protected]
[CC]
Funktion
Weitere(r) Empfänger der E-Mail
Bemerkungen
Mehrere Empfänger werden durch Semikolon ";" getrennt.
Länge
255 Zeichen
Beispiel
[CC]
[email protected];[email protected]
[SUBJECT]
Funktion
Betreff
Länge
255 Zeichen
Beispiel
[SUBJECT]
Fatal Error
[ATTACHMENT]
Funktion
Vollständiger Name einer anzuhängenden Datei
Bemerkungen
Es muss sich um eine Textdatei handeln.
Länge
511 Zeichen
Beispiel
[ATTACHMENT]
/logfiles/error_report.log
[MESSAGE]
234
Funktion
Inhalt der E-Mail
Bemerkungen
nur Text möglich
Länge
65.535 Zeichen
Beispiel
[MESSAGE]
Have a nice day !
JetControl.
Jetter AG
JVM-407
Programmierung
Einfügen von Echtzeit-Steuerungswerten
Einleitung
Aktuelle Echtzeit-Steuerungswerte können über Tag-Funktionen in die Parameter der Sektionen integriert werden. Damit können Zustände von Registern,
Textregistern und Merkern angezeigt werden.
Tag-Kennzeichnung
Alle Tags beginnen und enden mit bestimmten Zeichenfolgen. Zwischen diesen Tag-Begrenzern werden die Variablen definiert:
Kennzeichnung
Variablendefinition
Zeichenfolge
Beginn eines Tags
<JW:DTAG
Ende eines Tags
/>
Die Variablendefinition in einem Tag enthält Attribute, über die beispielsweise
die Art der Darstellung des Variablenwertes eingestellt werden kann:
name
Funktion
Variablenname
Bemerkungen
Kennbuchstabe gefolgt von der Variablennummer
Beispiel
name="R1000023"
type
Funktion
Variablentyp der Darstellung
Beispiel
type="REAL"
format
Funktion
Darstellungsformat
Bemerkungen
siehe Formatdefinition
Beispiel
format="+0####.###"
factor
Funktion
Faktor mit dem der Echtzeit-Steuerungswert multipliziert
wird
Bemerkungen
wird vor der Addition des Offset ausgeführt
Beispiel
factor="1.5"
offset
Jetter AG
Funktion
Wert, der zum Echtzeit-Steuerungswert addiert wird
Bemerkungen
erfolgt nach der Multiplikation mit dem Faktor
Beispiel
offset="1000"
235
11 Programmierung
Formatdefinition
Die Darstellung der Variablen kann über das Attribut gesteuert werden.
 Die Anzahl der Stellen/Zeichen, mit denen eine Variable dargestellt wird,
lässt sich mit dem Zeichen "#" definieren.
 Durch Voranstellen einer "0" kann bei den Registertypen INT, INTX und
REAL die Ausgabe von führenden Nullen eingestellt werden.
 Durch Voranstellen eines Plus-Zeichens "+" kann bei den Registertypen
INT und REAL die Ausgabe eines Vorzeichens eingestellt werden.
 Durch Voranstellen eines Leerzeichens kann bei den Registertypen INT
und REAL die Ausgabe eines Leerzeichens für positive Werte eingestellt
werden.
Register / Textregister
Der Variablenname beginnt mit einem großen "R" gefolgt von der Registernummer.
Folgende Typen sind möglich:
Typ
Darstellung
INT
Ganzzahl dezimal
INTX
Ganzzahl hexadezimal
INTB
Ganzzahl binär
BOOL
Registerinhalt = 0 --> Anzeige: 0
Registerinhalt != 0 --> Anzeige: 1
REAL
Gleitkommazahl dezimal
STRING
Textregister
Standardtyp: INT
Beispiel:
<JW:DTAG name="R1000250" type="REAL" format="+0####.###"
factor="3.25" offset="500" />
Ergebnis:
Der Inhalt von Register 1000250 wird mit 3,25 multipliziert, zu dem Produkt
500 hinzuaddiert und das Ergebnis mit Vorzeichen und mindestens fünf Vorkommastellen angezeigt. Falls nötig, wird mit führenden Nullen aufgefüllt.
Darüberhinaus werden drei Nachkommastellen angefügt.
Merker
Der Variablenname beginnt mit einem großen "F" gefolgt von der Merkernummer.
Folgende Typen sind möglich:
Typ
236
Darstellung
BOOL
Merker = 0 --> Anzeige: 0
Merker = 1 --> Anzeige: 1
STRING
Merker = 0 --> Anzeige: FALSE
Merker = 1 --> Anzeige: TRUE
Jetter AG
JVM-407
Programmierung
Standardtyp: BOOL
Beispiel:
<JW:DTAG name="F100" type="STRING" format="#" />
Ergebnis:
Der Zustand des Merkers 100 wird als String "T" oder "F" eingefügt.
Zugriff über Zeigerregister
Zugriff über ein Zeigerregister ist möglich durch Einfügen eines großen "P" vor
dem Variablennamen. Es wird jeweils der Wert der Variablen angezeigt, deren
Nummer dem Inhalt des im Variablennamen spezifizierten Registers entspricht.
Beispiele:
<JW:DTAG name="PR1000300" />
Ergebnis: Der Inhalt des Registers, dessen Nummer im Register 1000300
enthalten ist, wird angezeigt.
<JW:DTAG name="PF1000300" />
Ergebnis: Der Zustand des Merkers, dessen Nummer im Register 1000300
enthalten ist, wird angezeigt.
Zugriff über Zeigerregister und Offset
Zusätzlich zum Wert aus dem Zeigerregister kann noch ein konstanter Wert
oder ein weiterer Registerinhalt addiert werden, um die Nummer der anzuzeigenden Variablen zu bilden.
Beispiele:
<JW:DTAG name="PR1000300 + 100" />
Ergebnis: Der Inhalt des Registers, dessen Nummer sich aus der Addition des
Inhalts von Register 1000300 und dem Wert 100 ergibt, wird angezeigt.
<JW:DTAG name="PR1000300 + R1000100" />
Ergebnis: Der Inhalt des Registers, dessen Nummer sich aus der Addition des
Inhalts von Register 1000300 und dem Inhalt von Register 1000100 ergibt,
wird angezeigt.
<JW:DTAG name="PF1000300 + 100" />
Ergebnis: Der Zustand des Merkers, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem 100 ergibt, wird angezeigt.
<JW:DTAG name="PF1000300 + R1000100" />
Ergebnis: Der Zustand des Merkers, dessen Nummer sich aus der Addition
des Inhalts von Register 1000300 und dem Inhalt von Register 1000100
ergibt, wird angezeigt.
Jetter AG
237
11 Programmierung
11.6.3 Versenden einer E-Mail
Einleitung
Dieses Kapitel beschreibt, wie zuvor erstellte E-Mails im Anwenderprogramm
versendet werden.
Beim Versenden aus dem Anwenderprogramm, wird aus einer
E-Mail-Vorlagendatei von dem JVM-407 eine E-Mail zusammengestellt und
gegebenenfalls Variablenwerte eingefügt.
Verarbeitung im Anwenderprogramm
Das Versenden einer E-Mail kann relativ lange dauern. Deshalb werden,
während diese Funktion ausgeführt wird, die anderen Tasks des Anwenderprogramms bearbeitet. Es kann jedoch immer nur ein E-Mail-Funktionsaufruf
bearbeitet werden. Während ein E-Mail-Versand eines Tasks gerade läuft,
werden daher die Tasks, die die E-Mail-Funktion aufrufen, solange blockiert,
bis der E-Mail-Versand abgeschlossen ist.
Inhalt
Thema
Seite
Versenden mittels Systemfunktion .............................................................. 239
Beispielprogramm ....................................................................................... 240
238
Jetter AG
JVM-407
Programmierung
Versenden mittels Systemfunktion
Einleitung
Zum Versenden einer E-Mail wird eine Systemfunktion eingesetzt.
JetSym STX
Systemfunction(110, &RegEmailNo, &RegResult);
Parameter
Rückgabewert
RegEmailNo
Nummer des Registers, in dem die Nummer der zu
versendenden E-Mail enthalten ist. Die Nummer ist
Bestandteil des Dateinamens der
E-Mail-Vorlagendatei
RegResult
Nummer des Registers, in dem das Ergebnis der
Funktion abgelegt wird
Folgende Rückgabewerte sind möglich:
Ergebnis
Jetter AG
Funktion
Bedeutung
Mögliche Fehlerursache
0
kein Fehler
-1
nicht genügend Speicher
Betriebssystem-Fehler
-2
FROM nicht definiert
Die E-Mail-Vorlagendatei ist fehlerhaft oder
wurde nicht gefunden
-3
TO nicht definiert
Die E-Mail-Vorlagendatei ist fehlerhaft
-4
keine Verbindung zum
E-Mail-Server oder
Fehler bei der Datenübertragung zum
E-Mail Server


kein E-Mail Server verfügbar

Fehler beim Datentransfer
-10
E-Mail-Funktion nicht
verfügbar. Bit 2 im
Web-Statusregister
nicht gesetzt
Initialisierungsfehler. Z. B. Konfigurations-Datei "/EMAIL/email.ini" nicht vorhanden
oder fehlerhaft
-12
interner Fehler
Betriebssystem-Fehler
Konfiguration über "/EMAIL/email.ini"
fehlerhaft
239
11 Programmierung
Beispielprogramm
E-Mail-Vorlagendatei
Die E-Mail-Vorlagendatei wird unter "/EMAIL/email_0.cfg" auf dem JVM-407
abgespeichert.
[FROM]
JVM-407
[TO]
[email protected]
[CC]
[email protected]
[SUBJECT]
Test <JW:DTAG name="R1000000" />
[ATTACHMENT]
/System/config.ini
[MESSAGE]
Register 1000001 (int) = <JW:DTAG name="R1000001"
format="+0######" />
Register 1000001 (hex) = <JW:DTAG name="R1000001"
type="INTX" />
Text register: <JW:DTAG name="R1001000"
type="STRING" />"
Float register: <JW:DTAG name="R1001900" type="REAL"
factor="2.35" offset="100" />
Flag 10: <JW:DTAG name="F10" type = "STRING" />
Output R[1000113] = <JW:DTAG name="PO1000113"
type="BOOL" />
Have a nice day...
JVM-407
JetSym STX-Programm
Durch Setzen von "bSend" wird das Versenden einer E-Mail ausgelöst.
Var
Counter:
TestReg:
TextReg:
FloatReg:
RegEmail:
RegResult:
Send:
End_Var;
240
Int
Int
String
Float
At
At
At
At
%VL
%VL
%VL
%VL
1000000;
1000001;
1001000;
1001900;
Int
Int
Bool;
At %VL 1000200;
At %VL 1000201;
Jetter AG
JVM-407
Programmierung
Task SendMail Autorun
Counter := 0;
TestReg := 1234;
TextReg := 'Hello World !';
FloatReg := 20.5;
RegEmail := 0;
Loop
Send := False;
When Send Continue;
Inc(Counter);
SystemFunction(110, &RegEmail, &RegResult);
End_Loop;
End_Task;
Jetter AG
241
11 Programmierung
11.6.4 Register
Einleitung
Dieses Kapitel beschreibt die Register, über die der Status der Bearbeitung
der E-Mail Funktion abgefragt werden kann.
Inhalt
Thema
Seite
Registerübersicht ........................................................................................ 243
Registerbeschreibung ................................................................................. 244
242
Jetter AG
JVM-407
Programmierung
Registerübersicht
Einleitung
Registerübersicht
Jetter AG
Das Gerät JVM-407 stellt einige Register zu Verfügung, über die der Status
der E-Mail Funktion abgefragt werden kann.
Register
Beschreibung
202930
Web-Status
292932
IP-Adresse des SMTP-Servers
292933
IP-Adresse des POP3-Servers
292934
Portnummer des SMTP-Servers
292935
Portnummer des POP3-Servers
292937
Status der E-Mail-Bearbeitung
292938
ID des Tasks, der gerade eine E-Mail verschickt
243
11 Programmierung
Registerbeschreibung
R 202930
Web-Status
Im Web-Statusregister werden bitcodiert die Funktionen angezeigt, die verfügbar sind.
Bedeutung der Bits
Bit 0
FTP-Server
1=
Bit 1
HTTP-Server
1=
Bit 2
verfügbar
Modbus/TCP
1=
Bit 5
verfügbar
Datendateifunktion
1=
Bit 4
verfügbar
E-Mail
1=
Bit 3
verfügbar
vorhanden
Modbus/TCP
1=
verfügbar
Modulregister-Eigenschaften
R 292932
Zugriff
lesen
Wert nach Reset
je nach bestellter Option
IP-Adresse des SMTP-Servers
Hier kann die IP-Adresse des SMTP-Servers gelesen werden, wie sie in der
Datei "/EMAIL/email.ini" angegeben ist.
Modulregister-Eigenschaften
R 292933
Zugriff
lesen
Wert nach Reset
je nach Konfiguration
Wird wirksam
wenn R 202930.2 = 1
IP-Adresse des POP3-Servers
Hier kann die IP-Adresse des POP3-Servers gelesen werden, wie sie in der
Datei "/EMAIL/email.ini" angegeben ist.
244
Jetter AG
JVM-407
Programmierung
Modulregister-Eigenschaften
R 292934
Zugriff
lesen
Wert nach Reset
je nach Konfiguration
Wird wirksam
wenn R 202930.2 = 1
Portnummer des SMTP-Servers
Hier kann die Portnummer des SMTP-Servers gelesen werden, wie sie in der
Datei "/EMAIL/email.ini" angegeben ist.
Modulregister-Eigenschaften
R 292935
Zugriff
lesen
Wert nach Reset
je nach Konfiguration
Wird wirksam
wenn R 202930.2 = 1
Portnummer des POP3-Servers
Hier kann die Portnummer des POP3-Servers gelesen werden, wie sie in der
Datei "/EMAIL/email.ini" angegeben ist.
Modulregister-Eigenschaften
R 292937
Zugriff
lesen
Wert nach Reset
je nach Konfiguration
Wird wirksam
wenn R 202930.2 = 1
Status der E-Mail-Bearbeitung
Die Ausführung des E-Mail Versands kann hier mitverfolgt werden.
Modulregister-Eigenschaften
Werte
Zugriff
Jetter AG
0
Es wird keine E-Mail versendet
1
Übergabe der Parameter an den
E-Mail-Client des JVM-407
2
E-Mail wird zusammengestellt und die
Verbindung mit dem Server wird aufgenommen
3
E-Mail wurde an den Server gesendet
lesen
245
11 Programmierung
R 292938
Task-ID (E-Mail)
Die ID der Task, der gerade eine E-Mail verschickt, kann hier gelesen werden.
Modulregister-Eigenschaften
Werte
246
0 ... 99
Task-ID
255
kein Task verschickt gerade eine E-Mail
Wert nach Reset
255
Zugriff
lesen
Jetter AG
JVM-407
Programmierung
11.7 Modbus/TCP
Einleitung
Dieses Kapitel beschreibt die Funktionen des in dem JVM-407 vorhandenen
Modbus/TCP-Servers und Modbus/TCP-Clients.
Kenntnisse des
Programmierers
In diesem Kapitel werden folgende Kenntnisse vorausgesetzt:
 Kenntnisse über Modbus/TCP und die unterstützten Kommandos sind

notwendig.
Kenntnisse über IP-Netzwerke sind notwendig.
Inhalt
Thema
Seite
Modbus/TCP-Server ................................................................................... 248
Modbus/TCP-Client .................................................................................... 253
Jetter AG
247
11 Programmierung
11.7.1 Modbus/TCP-Server
Einleitung
Bei gültiger Lizenzierung (Funktion Modbus/TCP ist aktiviert) und erfolgreichem Start des Modbus/TCP-Servers kann durch einen externen Client auf
Register, Merker, Eingänge und Ausgänge zugegriffen werden.
Dieses Kapitel beschreibt den Vorgang der Adressierung und die vom
Modbus/TCP-Server unterstützten Kommandos.
Anzahl möglicher
Verbindungen
Es können gleichzeitig vier Verbindungen geöffnet sein.
Einschränkung
Bei Modbus/TCP werden nur Register mit 16-Bit-Breite übertragen. Deshalb
werden beim Senden von 32-Bit-Registern lediglich die niederwertigen 16 Bit
übertragen.
Beim Empfang von Registerwerten auf die internen 32-Bit-Registern wird keine Vorzeichenerweiterung durchgeführt.
Inhalt
Thema
Seite
Adressierung ............................................................................................... 249
Unterstützte Kommandos - Class 0 ............................................................ 250
Unterstützte Kommandos - Class 1 ............................................................ 251
Unterstützte Kommandos - Class 2 ............................................................ 252
248
Jetter AG
JVM-407
Programmierung
Adressierung
Einleitung
Die über den Modbus empfangenen Adressen können lokal im
Modbus/TCP-Server modifiziert werden. Dazu sind drei Register vorhanden,
in welche die jeweilige Basisadresse für den Zugriff auf Register, Eingänge
und Ausgänge geschrieben werden kann. Die Adresse im
Modbus/TCP-Telegramm gibt dann die Adresse relativ zu dieser Basisadresse
an.
R 272702
Registeroffset
In das R 272702 wird die Basisadresse für den Zugriff auf Register über
Modbus/TCP eingetragen.
Modulregister-Eigenschaften
Wert nach Reset
R 272704
1000000
Eingangsoffset
In das R 272704 wird die Basisadresse für den Zugriff auf Eingänge über
Modbus/TCP eingetragen.
Modulregister-Eigenschaften
Wert nach Reset
R 272705
100000000
Ausgangsoffset
In das R 272705 wird die Basisadresse für den Zugriff auf Ausgänge über
Modbus/TCP eingetragen.
Modulregister-Eigenschaften
Wert nach Reset
Beispiel 1
Jetter AG
100000000
Der Modbus/TCP-Server des JVM-407 erhält das Modbus/TCP-Kommando
read multiple registers mit der Startregisternummer 100 und der Anzahl 5
von einem Modbus/TCP-Client. Das Register 272702 Registeroffset enthält
den Wert 1000000.
Somit werden die Register 1000100 bis 1000104 gelesen.
249
11 Programmierung
Unterstützte Kommandos - Class 0
fc 3
read multiple registers
Registerblock lesen
Die Startregisternummer innerhalb dem JVM-407 ergibt sich aus der Addition
der Startregisternummer im Kommando zum Inhalt des Registers 272702
Registeroffset.
fc 16
write multiple registers
Registerblock schreiben
Die Startregisternummer innerhalb dem JVM-407 ergibt sich aus der Addition
der Startregisternummer im Kommando zum Inhalt des Registers 272702
Registeroffset.
250
Jetter AG
JVM-407
Programmierung
Unterstützte Kommandos - Class 1
fc 1
read coils
Ausgänge lesen.
Die Ausgangsnummer innerhalb dem JVM-407 ergibt sich aus der Addition
der Ausgangsnummer im Kommando zum Inhalt des Registers 272705
Ausgangsoffset.
fc 2
read input discretes
Eingänge lesen.
Die Eingangsnummer innerhalb dem JVM-407 ergibt sich aus der Addition der
Eingangsnummer im Kommando zum Inhalt des Registers 272704 Eingangsoffset.
fc 4
read input registers
Eingänge in 16-Bit-Worten zusammengefasst lesen.
Die Startregisternummer innerhalb dem JVM-407 ergibt sich aus der Addition
der Startregisternummer im Kommando zum Inhalt des Registers 272702
Registeroffset.
fc 5
write coil
Einen einzelnen Ausgang ein- und ausschalten.
Die Ausgangsnummer innerhalb dem JVM-407 ergibt sich aus der Addition
der Ausgangsnummer im Kommando zum Inhalt des Registers 272705
Ausgangsoffset.
fc 6
write single register
Niederwertige 16 Bit eines Registers beschreiben.
Die Startregisternummer innerhalb dem JVM-407 ergibt sich aus der Addition
der Startregisternummer im Kommando zum Inhalt des Registers 272702
Registeroffset.
Jetter AG
251
11 Programmierung
Unterstützte Kommandos - Class 2
fc 15
force multiple coils
Mehrere Ausgänge ein- und ausschalten
Die Ausgangsnummer innerhalb des JVM-407 ergibt sich aus der Addition der
Ausgangsnummer im Kommando zum Inhalt des Registers 272705
Ausgangsoffset.
fc 23
read / write registers
Gleichzeitig Register lesen und schreiben
Die Startregisternummer innerhalb des JVM-407 ergibt sich aus der Addition
der Startregisternummer im Kommando zum Inhalt des Registers 272702
Registeroffset.
252
Jetter AG
JVM-407
Programmierung
11.7.2 Modbus/TCP-Client
Einleitung
Der Modbus/TCP-Client im JVM-407 unterstützt nur Class 0 Conformance.
Das heißt, dass die Befehle zum Lesen und Schreiben von mehreren Registern genutzt werden. In einem Telegramm können bis zu 125 Register mit
16-Bit-Breite übertragen werden.
Als Protocol-ID wird eine "0" verwendet. Die Zuordnung der gesendeten und
empfangenen Telegramme erfolgt über die Transaction-ID.
Dieses Kapitel beschreibt wie mit Hilfe von Systemfunktionen eine azyklische
oder zyklische Übertragung zu einem Modbus/TCP-Server durchgeführt werden kann.
Anzahl möglicher
Verbindungen
Es können gleichzeitig Verbindungen zu elf unterschiedlichen
Modbus/TCP-Servern geöffnet sein.
Azyklische Datenübertragung
Zur Herstellung eines azyklischen Übertragungskanals zu einem
Modbus/TCP-Server können die Systemfunktionen 65 und 67 (Register lesen), sowie 66 und 68 (Register schreiben) benutzt werden.
Die Systemfunktionen öffnen eine Verbindung zu dem angegeben
Modbus/TCP-Server, übertragen die gewünschten Daten und schließen die
Verbindung wieder.
Besteht bereits eine durch RemoteScan aufgebaute Verbindung (zyklische
Datenübertragung), wird diese benutzt und der Verbindungsaufbau und
-abbau entfällt.
Zyklische Datenübertragung
Über die konfigurierbare Funktion RemoteScan werden zyklisch die in den
16-Bit-Registern 278000 bis 278999 zusammengefassten Ein- und Ausgänge
von 20001 bis 36000 von und zu den Modbus/TCP-Servern übertragen.
Zu jedem Modbus/TCP-Server (IP-Adresse und Port) wird eine Verbindung
aufgebaut. Dies geschieht unabhängig davon wie viele Kommunikationseinheiten auf diesem Server konfiguriert sind.
Sind mehrere Kommunikationseinheiten auf einem Modbus/TCP-Server konfiguriert, werden die Zugriffe serialisiert, da die Server oftmals kein "command
pipeling" unterstützen. Sind mehrere Server konfiguriert, wird parallel mit
ihnen kommuniziert.
Zusammengefasste Einund Ausgänge
Register
Ein- und Ausgänge
278000
20001 ... 20016
278001
20017 ... 20032
278002
20033 ... 20048
...
...
278999
35985 ... 36000
Bei den Registern und ihren überlagerten Ein- und Ausgängen handelt es sich
lediglich um Speicherzellen im RAM. Es findet keine direkte Abbildung auf die
Hardware statt. Deshalb ist nicht festgelegt, ob dem Register Eingänge oder
Ausgänge überlagert sind. Erst bei der Konfiguration in den Kommunikationseinheiten findet eine Zuordnung statt.
Jetter AG
253
11 Programmierung
Unit-ID
Der Befehlskopf eines Modbus/TCP-Telegramms enthält eine Unit-ID. Diese
wird von Modbus/TCP-Geräten nicht ausgewertet, da sie über die IP-Adresse
eindeutig adressiert werden. Deshalb wird bei den Systemfunktionen 65, 66
und 80 immer fest eine "1" gesendet.
Bei Umsetzern von Modbus/TCP auf Modbus RTU wird die Unit-ID dazu verwendet, die Modbus RTU Server zu adressieren. Deshalb gibt es entsprechende Systemfunktionen zum Lesen und Schreiben von Registern (Systemfunktion 67 und 68) und für die Initialisierung des RemoteScan (Systemfunktion 85). Mit Hilfe derer kann die Unit-ID eingestellt werden.
Einschränkung
Bei Modbus/TCP werden nur Register mit 16-Bit-Breite übertragen. Deshalb
werden beim Senden von 32-Bit-Registern lediglich die niederwertigen 16 Bit
übertragen.
Beim Empfang von Registerwerten auf die internen 32-Bit-Registern wird keine Vorzeichenerweiterung durchgeführt.
Inhalt
Thema
Seite
Systemfunktion 65: Azyklisch Register lesen ............................................. 255
Systemfunktion 67: Azyklisch Register lesen ............................................. 257
Systemfunktion 66: Azyklisch Register schreiben ...................................... 259
Systemfunktion 68: Azyklisch Register schreiben ...................................... 261
Applikationsbeispiel .................................................................................... 263
254
Jetter AG
JVM-407
Programmierung
Systemfunktion 65: Azyklisch Register lesen
Einleitung
Mit Hilfe der Systemfunktion 65 wird ein Registerblock von einem
Modbus/TCP-Server in die Register des lokalen Speichers kopiert.
Wichtige Hinweise
 Während diese Systemfunktion ausgeführt wird, werden parallele Aufrufe
dieser Funktion in anderen Tasks blockiert, bis die Funktion beendet ist.
 Während diese Systemfunktion ausgeführt wird, sollte kein TaskBreak oder

Funktionsdeklaration
TaskRestart auf diese Task oder ein Programm-Neustart mittels JetSym
durchgeführt werden. Die Verbindung bleibt in diesem Fall geöffnet und es
finden unter Umständen keine weiteren Übertragungen statt.
Die IP-Adresse ist immer direkt anzugeben. Die Angabe über Namen wird
nicht unterstützt.
Systemfunction(65, &StructModbusTCP, &RegResult);
Parameter
Typdeklaration
MODBUS_TCP
StructModbusTCP
Struktur vom Typ MODBUS_TCP
RegResult
Nummer des Registers, in dem das Ergebnis der
Funktion abgelegt wird
Type
MODBUS_TCP:
Struct
IPadress
Port
Timeout
Source
Destination
Values
End_Struct;
End_Type;
Funktionsparameter
Jetter AG
Funktion
:
:
:
:
:
:
Int;
Int;
Int;
Int;
Int;
Int;
Parameter
Wert
Bemerkung
IPadress
IP-Adresse des
Modbus/TCP-Servers
direkt angeben
Port
502
Timeout
in ms
Source
remote
Registernummer Quelle
Destination
local
Registernummer Ziel
Values
1 ... 125
Anzahl Register
255
11 Programmierung
Rückgabewert
Folgende Rückgabewerte sind möglich:
Rückgabewert
0
-1 oder -2
kein Fehler
Fehler beim Verbindungsaufbau
-4
Fehler bei Datenübertragung
-5
Fehlermeldung vom Modbus/TCP-Server
-8
Zeitüberschreitung
-10
Modbus/TCP nicht lizenziert
Verwandte Topics
 Applikationsbeispiel auf Seite 263
256
Jetter AG
JVM-407
Programmierung
Systemfunktion 67: Azyklisch Register lesen
Einleitung
Mit Hilfe der Systemfunktion 67 wird ein Registerblock von einem
Modbus/TCP-Server in die Register des lokalen Speichers kopiert.
Im Unterschied zur Systemfunktion 65 ist hier die Unit-ID einstellbar.
Wichtige Hinweise
 Während diese Systemfunktion ausgeführt wird, werden parallele Aufrufe
dieser Funktion in anderen Tasks blockiert, bis die Funktion beendet ist.
 Während diese Systemfunktion ausgeführt wird, sollte kein TaskBreak oder

Funktionsdeklaration
TaskRestart auf diese Task oder ein Programm-Neustart mittels JetSym
durchgeführt werden. Die Verbindung bleibt in diesem Fall geöffnet und es
finden unter Umständen keine weiteren Übertragungen statt.
Die IP-Adresse ist immer direkt anzugeben. Die Angabe über Namen wird
nicht unterstützt.
Systemfunction(67, &StructModbusTCP, &RegResult);
Parameter
Typdeklaration
MODBUS_TCP
Jetter AG
Funktion
StructModbusTCP
Struktur vom Typ MODBUS_TCP
RegResult
Nummer des Registers, in dem das Ergebnis der
Funktion abgelegt wird
Type
MODBUS_TCP:
Struct
IPadress
Port
Timeout
Source
Destination
Values
UnitID
Internal_1
Internal_2
End_Struct;
End_Type;
:
:
:
:
:
:
:
:
:
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
257
11 Programmierung
Funktionsparameter
Rückgabewert
Parameter
Wert
Bemerkung
IPadress
IP-Adresse des
Modbus/TCP-Servers
direkt angeben
Port
502
Timeout
in ms
Source
remote
Registernummer Quelle
Destination
local
Registernummer Ziel
Values
1 ... 125
Anzahl Register
UnitID
0 ... 255
Unit-ID
Internal_1
0
interne Verwendung
Internal_2
0
interne Verwendung
Folgende Rückgabewerte sind möglich:
Rückgabewert
0
-1 oder -2
258
kein Fehler
Fehler beim Verbindungsaufbau
-4
Fehler bei Datenübertragung
-5
Fehlermeldung vom Modbus/TCP-Server
-8
Zeitüberschreitung
-10
Modbus/TCP nicht lizenziert
Jetter AG
JVM-407
Programmierung
Systemfunktion 66: Azyklisch Register schreiben
Einleitung
Mit Hilfe der Systemfunktion 66 werden die Inhalte der Register des lokalen
Speichers als Registerblock zum Modbus/TCP-Server übertragen.
Wichtige Hinweise
 Während diese Systemfunktion ausgeführt wird, werden parallele Aufrufe
dieser Funktion in anderen Tasks blockiert, bis die Funktion beendet ist.
 Während diese Systemfunktion ausgeführt wird, sollte kein TaskBreak oder

Funktionsdeklaration
TaskRestart auf diese Task oder ein Programm-Neustart mittels JetSym
durchgeführt werden. Die Verbindung bleibt in diesem Fall geöffnet und es
finden unter Umständen keine weiteren Übertragungen statt.
Die IP-Adresse ist immer direkt anzugeben. Die Angabe über Namen wird
nicht unterstützt.
Systemfunction(66, &StructModbusTCP, &RegResult);
Parameter
Typdeklaration
MODBUS_TCP
StructModbusTCP
Struktur vom Typ MODBUS_TCP
RegResult
Nummer des Registers, in dem das Ergebnis der
Funktion abgelegt wird
Type
MODBUS_TCP:
Struct
IPadress
Port
Timeout
Source
Destination
Values
End_Struct;
End_Type;
Funktionsparameter
Jetter AG
Funktion
:
:
:
:
:
:
Int;
Int;
Int;
Int;
Int;
Int;
Parameter
Wert
Bemerkung
IPadress
IP-Adresse des
Modbus/TCP-Servers
direkt angeben
Port
502
Timeout
in ms
Source
local
Registernummer Quelle
Destination
remote
Registernummer Ziel
Values
1 ... 125
Anzahl Register
259
11 Programmierung
Rückgabewert
Folgende Rückgabewerte sind möglich:
Rückgabewert
0
-1 oder -2
kein Fehler
Fehler beim Verbindungsaufbau
-4
Fehler bei Datenübertragung
-5
Fehlermeldung vom Modbus/TCP-Server
-8
Zeitüberschreitung
-10
Modbus/TCP nicht lizenziert
Verwandte Topics
 Applikationsbeispiel auf Seite 263
260
Jetter AG
JVM-407
Programmierung
Systemfunktion 68: Azyklisch Register schreiben
Einleitung
Mit Hilfe der Systemfunktion 68 werden die Inhalte der Register des lokalen
Speichers als Registerblock zum Modbus/TCP-Server übertragen.
Im Unterschied zur Systemfunktion 66 ist hier die Unit-ID einstellbar.
Wichtige Hinweise
 Während diese Systemfunktion ausgeführt wird, werden parallele Aufrufe
dieser Funktion in anderen Tasks blockiert, bis die Funktion beendet ist.
 Während diese Systemfunktion ausgeführt wird, sollte kein TaskBreak oder

Funktionsdeklaration
TaskRestart auf diese Task oder ein Programm-Neustart mittels JetSym
durchgeführt werden. Die Verbindung bleibt in diesem Fall geöffnet und es
finden unter Umständen keine weiteren Übertragungen statt.
Die IP-Adresse ist immer direkt anzugeben. Die Angabe über Namen wird
nicht unterstützt.
Systemfunction(68, &StructModbusTCP, &RegResult);
Parameter
Typdeklaration
MODBUS_TCP
Jetter AG
Funktion
StructModbusTCP
Struktur vom Typ MODBUS_TCP
RegResult
Nummer des Registers, in dem das Ergebnis der
Funktion abgelegt wird
Type
MODBUS_TCP:
Struct
IPadress
Port
Timeout
Source
Destination
Values
UnitID
Internal_1
Internal_2
End_Struct;
End_Type;
:
:
:
:
:
:
:
:
:
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
261
11 Programmierung
Funktionsparameter
Rückgabewert
Parameter
Wert
Bemerkung
IPadress
IP-Adresse des
Modbus/TCP-Servers
direkt angeben
Port
502
Timeout
in ms
Source
local
Registernummer Quelle
Destination
remote
Registernummer Ziel
Values
1 ... 125
Anzahl Register
UnitID
0 ... 255
Unit-ID
Internal_1
0
interne Verwendung
Internal_2
0
interne Verwendung
Folgende Rückgabewerte sind möglich:
Rückgabewert
0
-1 oder -2
262
kein Fehler
Fehler beim Verbindungsaufbau
-4
Fehler bei Datenübertragung
-5
Fehlermeldung vom Modbus/TCP-Server
-8
Zeitüberschreitung
-10
Modbus/TCP nicht lizenziert
Jetter AG
JVM-407
Programmierung
Applikationsbeispiel
Aufgabe
Der JetControl soll zyklisch I/O-Daten mit zwei Modbus/TCP-Servern im
Netzwerk austauschen.
Auf externe Anforderung soll der Wert eines einzelnen Registers an einen der
beiden Kommunikationspartner verschickt werden.
Lösung
Für die zyklische Datenübertragung wird die Funktion RemoteScan eingesetzt. Die Systemfunktionen 80 und 81 werden nacheinander ausgeführt.
Der Wert eines einzelnen Registers wird mit Hilfe der Systemfunktion 66 azyklisch an den zweiten Kommunikationspartner verschickt.
Vorgehen
Zunächst werden die für die Konfiguration der Funktion RemoteScan benötigten Strukturen mit den Konfigurations-Daten belegt. Die Anfangsadresse
dieser Strukturen wird dann beim Aufruf der Systemfunktion 80 (InitRscan)
mitgegeben. Bei erfolgreicher Initialisierung wird über die Systemfunktion 81
(StartRscan) die Funktion RemoteScan gestartet und mit der zyklischen
Kommunikation begonnen.
Anschließend wird die Parameterstruktur für die azyklische Datenübertragung
vorbereitet. Durch Setzen des Merker "Send" wird einmalig das Schreiben eines Registerblocks an den zweiten Kommunikationspartner ausgelöst.
JetSym STX-Programm
Type
RSCAN_HEADER:
Struct
Protocol
Units
End_Struct;
RSCAN_ELEMENT:
Struct
Ipadress
Port
UpdateRate
OutRegs
OutSource
OutDestination
InRegs
InSource
InDestination
Status
Timeout
End_Struct;
RSCAN_STATUS:
Struct
Status
Error
ErrCnt
Jetter AG
:
:
Int;
Int;
:
:
:
:
:
:
:
:
:
:
:
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
Int;
:
:
:
Int;
Int;
Int;
263
11 Programmierung
End_Struct;
MODBUS_TCP:
Struct
Ipadress
Port
Timeout
Source
Destination
Values
End_Struct;
End_Type;
Const
RscanRegs
RscanStatRegs
Elements
Int;
Int;
Int;
Int;
Int;
Int;
= 1000100;
= 1001000;
= 2;
InitRscan
StartRscan
= 80;
= 81;
ProtModbusTCP
ModbusTCPort
= 5;
= 502;
Rscan
End_Const;
Var
:
:
:
:
:
:
= 0;
RemoteScan
: RSCAN_HEADER At %VL RscanRegs;
RscanElements
: Array[Elements] Of RSCAN_ELEMENT At
%VL RscanRegs + Regsizeof(RSCAN_HEADER);
RscanStatus
: Array[Elements] Of RSCAN_STATUS
%VL RscanStatRegs;
ModbusTCP
: MODBUS_TCP At %VL 1000500;
Result
Send
End_Var;
: Int
: Bool
At
At %VL 1000099;
At %MX 1;
Task tRscan Autorun
RemoteScan.Protocol := ProtModbusTCP;
RemoteScan.Units
:= Elements;
// first communication unit
RscanElements[0].Ipadress
264
:= IP#192.168.10.211;
Jetter AG
JVM-407
Programmierung
RscanElements[0].Port
RscanElements[0].UpdateRate
RscanElements[0].OutRegs
RscanElements[0].OutSource
RscanElements[0].OutDestination
RscanElements[0].InRegs
RscanElements[0].InSource
RscanElements[0].InDestination
RscanElements[0].Status
RscanElements[0].Timeout
:=
:=
:=
:=
:=
:=
:=
:=
:=
:=
ModbusTCPort;
50;
3;
278000;
20000;
3;
21000;
278100;
&RscanStatus[0];
20;
// second communication unit
RscanElements[1].Ipadress
RscanElements[1].Port
RscanElements[1].UpdateRate
RscanElements[1].OutRegs
RscanElements[1].OutSource
RscanElements[1].OutDestination
RscanElements[1].InRegs
RscanElements[1].InSource
RscanElements[1].InDestination
RscanElements[1].Status
RscanElements[1].Timeout
:=
:=
:=
:=
:=
:=
:=
:=
:=
:=
:=
IP#192.168.10.150;
ModbusTCPort;
20;
5;
278300;
20000;
10;
25000;
278400;
&RscanStatus[1];
200;
Systemfunction(InitRscan, &RemoteScan, &Result);
If Result > 0 Then
Systemfunction(StartRscan, 0, &Result);
End_If;
ModbusTCP.Ipadress
ModbusTCP.Port
ModbusTCP.Values
ModbusTCP.Source
ModbusTCP.Destination
ModbusTCP.Timeout
Send
:=
:=
:=
:=
:=
:=
:=
IP#192.168.10.150;
ModbusTCPort;
1;
1001500;
1500;
100;
False;
Loop
When Send Continue;
Systemfunction(66, &ModbusTCP, &Result);
Send := False;
End_Loop;
End_Task;
Jetter AG
265
11 Programmierung
11.8 Freiprogrammierbare IP-Schnittstelle
Die freiprogrammierbare
IP-Schnittstelle
Die freiprogrammierbare IP-Schnittstelle bietet die Möglichkeit, beliebige
Daten mittels TCP/IP oder UDP/IP über die Ethernet-Schnittstelle des
JVM-407 zu versenden oder zu empfangen. Die Verarbeitung der Daten erfolgt dabei vollständig im Anwenderprogramm.
Anwendungen
Die freiprogrammierbare IP-Schnittstelle erlaubt es dem Programmierer Daten
über Ethernet-Verbindungen auszutauschen, die sich nicht Standardprotokollen - wie z. B. FTP, HTTP, JetIP oder Modbus/TCP - bedienen. Folgende Anwendungen sind dabei möglich:




Voraussetzungen an den
Programmierer
Server
Client
TCP/IP
UDP/IP
Die Funktionalität der freiprogrammierbaren IP-Schnittstelle setzt folgende
Kenntnisse der Datenübertragung über IP-Netzwerke voraus:
 IP-Adressierung (z. B. IP-Adresse, Portnummer, Subnetzmaske, usw.)
 TCP (z. B. Verbindungsaufbau / -abbau, Datastream, Datensicherung,
usw.)
 UDP (z. B. Datagram, usw.)
Einschränkungen
Für die Kommunikation über die freiprogrammierbare IP-Schnittstelle dürfen
keine Ports verwendet werden, die bereits vom Betriebssystem der Steuerung
verwendet werden. Verwenden Sie deshalb folgende Ports nicht:
Protokoll
266
Portnummer
Standardwert
20
Benutzer
TCP
abhängig vom
FTP-Client
TCP
21
FTP-Server (Steuerung)
TCP
23
System-Logger
TCP
80
HTTP-Server
TCP
aus Datei
/EMAIL/email.ini
TCP
502
Modbus/TCP Server
TCP, UDP
1024 - 2047
diverse
TCP, UDP
IP-Konfiguration
50000, 50001
JetIP
TCP
IP-Konfiguration
52000
Debug-Server
25, 110
FTP-Server (Daten)
Email-Client
Jetter AG
JVM-407
Programmierung
Inhalt
Thema
Seite
Programmierung ......................................................................................... 268
Register ...................................................................................................... 280
Programmbeispiele ..................................................................................... 285
Jetter AG
267
11 Programmierung
11.8.1 Programmierung
Einleitung
Bei der freiprogrammierbaren IP-Schnittstelle werden die Daten über TCP/IPoder UDP/IP-Verbindungen zwischen dem Anwenderprogramm und einem
Netzwerkteilnehmer ausgetauscht. Verwendung finden hierbei Aufrufe von
Funktionen, die im Sprachumfang des JVM-407 enthalten sind. Führen Sie zur
Programmierung folgende Schritte aus:
Schritt
Technische Daten
Vorgehen
1
freiprogrammierbare IP-Schnittstelle initialisieren
2
Verbindung(en) öffnen
3
Daten übertragen
4
Verbindungen(en) schließen
Die technischen Daten der freiprogrammierbaren IP-Schnittstelle:
Funktion
Einschränkungen
Beschreibung
Anzahl Verbindungen
20
maximale Datengröße
4000 Byte
Im Anwenderprogramm sollten die Tasks, die die freiprogrammierbare
IP-Schnittstelle bedienen, nicht durch TaskBreak angehalten oder durch
TaskRestart neu gestartet werden, während von dem JVM-407 gerade eine
dieser Funktionen bearbeitet wird. Dies kann zu folgenden Fehlern führen:




Verbindungen werden nicht geöffnet
Datenverlust beim Senden oder Empfangen
Verbindungen, die geschlossen werden sollen, bleiben geöffnet
Verbindungen, die noch verwendet werden sollen, werden geschlossen
Inhalt
Thema
Seite
Initialisieren der freiprogrammierbaren IP-Schnittstelle .............................. 269
Verbindung öffnen ....................................................................................... 270
Daten senden .............................................................................................. 274
Daten empfangen ....................................................................................... 276
Verbindung schließen ................................................................................. 279
268
Jetter AG
JVM-407
Programmierung
Initialisieren der freiprogrammierbaren IP-Schnittstelle
Einleitung
Die Initialisierung muss mindestens einmal bei jedem Start des Anwenderprogramms durchgeführt werden.
Funktionsdeklaration
Function ConnectionInitialize():Int;
Rückgabewert
Folgender Rückgabewert sind möglich:
Rückgabewert
0
Verwenden der Funktion
immer
So kann die Funktion verwendet werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden:
Result := ConnectionInitialize();
Funktionsweise
Das Gerät JVM-407 arbeitet die Funktion in folgenden Stufen ab:
Stufe
Beschreibung
1
Alle geöffneten Verbindungen der freiprogrammierbaren IP-Schnittstelle
werden geschlossen
2
Alle betriebssysteminternen Datenstrukturen der freiprogrammierbaren
IP-Schnittstelle werden initialisiert
Verwandte Themen:




Jetter AG
Verbindung öffnen auf Seite 270
Verbindung schließen auf Seite 279
Daten senden auf Seite 274
Daten empfangen auf Seite 276
269
11 Programmierung
Verbindung öffnen
Einleitung
Bevor Daten gesendet oder empfangen werden können muss eine Verbindung geöffnet werden. Dabei gilt es zu unterscheiden welches Transportprotokoll (TCP oder UDP) verwendet werden soll und ob ein Client oder ein
Server eingerichtet werden soll.
Funktionsdeklaration
Function ConnectionCreate(ClientServerType:Int,
IPType:Int,
IPAddr:Int,
IPPort:Int,
Timeout:Int):Int;
Funktionsparameter
Beschreibung der Funktionsparameter:
Parameter
Rückgabewert
Wert
Bemerkung
ClientServerType
Client = 1 =
CONNTYPE_CLIENT
Server = 2 =
CONNTYPE_SERVER
IPType
UDP/IP = 1 =
IPTYPE_UDP
TCP/IP = 2 =
IPTYPE_TCP
IPAddr
gültige IP-Adresse
nur bei TCP/IP-Client nötig
IPPort
gültiger IP-Port
wird bei UDP/IP-Client
ignoriert
Timeout
0 .. 1.073.741.824 [ms]
0 = unendlich
Bei einem positiven Rückgabewert konnte die Verbindung geöffnet werden.
Bei einem negativen Rückgabewert ist ein Fehler aufgetreten und die Verbindung konnte nicht geöffnet werden.
Rückgabewert
270
>0
Ein positiver Rückgabewert muss in einer Variablen gesichert
werden, da es als Handle bei den Funktionen zum Empfangen und Senden von Daten über diese Verbindung und
Schließen der Verbindung mitgegeben werden muss
-1
Fehler beim Verbindungsaufbau
-2
interner Fehler
-3
ungültiger Parameter
-8
Zeitüberschreitung
Jetter AG
JVM-407
Verwenden der Funktion
bei einem TCP/IP-Client
Programmierung
So kann die Funktion verwendet werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn ein Client eine
TCP/IP-Verbindung zu einem Server aufbauen soll:
Result := ConnectionCreate(CONNTYPE_CLIENT,
IPTYPE_TCP,
IP#192.168.75.123,
46000,
T#10s);
Funktionsweise bei
einem TCP/IP-Client
Der Task bleibt bei der Programmzeile stehen, bis die Verbindung aufgebaut
werden konnte oder der angegebene Timeout abgelaufen ist. Die Funktion
wird in folgenden Stufen abgearbeitet:
Stufe
Beschreibung
1
Das Gerät JVM-407 versucht eine TCP/IP-Verbindung zu Port 46000 zu
dem Netzwerkteilnehmer mit der IP-Adresse 192.168.75.123 aufzubauen
2
Verwenden der Funktion
bei einem TCP/IP-Server
Wenn ...
... Dann ...
der Netzwerkteilnehmer die
Verbindung akzeptiert hat
wird die Funktion beendet und ein
positiver Wert als Handle zum weiteren Zugriff auf die Verbindung zurückgeliefert
die Verbindung nicht aufgebaut
werden konnte und die Timeoutzeit von 10 Sekunden noch
nicht abgelaufen ist
wird mit Stufe 1 fortgefahren
ein Fehler aufgetreten ist oder
der Timeout abgelaufen ist
wird die Funktion beendet und ein
negativer Wert zurückgeliefert
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn ein Server eine
TCP/IP-Verbindung mit einem Client aufbauen soll:
Result := ConnectionCreate(CONNTYPE_SERVER,
IPTYPE_TCP,
0,
46000,
T#100s);
Jetter AG
271
11 Programmierung
Funktionsweise bei
einem TCP/IP-Server
Der Task bleibt bei der Programmzeile stehen, bis die Verbindung aufgebaut
werden konnte oder der angegebene Timeout abgelaufen ist. Die Funktion
wird in folgenden Stufen abgearbeitet:
Stufe
1
2
Verwenden der Funktion
bei einem UDP/IP-Client
Beschreibung
Das Gerät JVM-407 richtet den TCP/IP-Port 46000 zum Empfang von
Verbindungsanfragen ein
Wenn ...
... Dann ...
der Client eines Netzwerkteilnehmers eine Verbindung
aufgebaut hat
werden keine weiteren Verbindungsanfragen auf diesen Port akzeptiert,
die Funktion beendet und ein positiver Wert als Handle zum weiteren
Zugriff auf die Verbindung zurückgeliefert
die Verbindung nicht aufgebaut
wurde und die Timeoutzeit von
100 Sekunden noch nicht
abgelaufen ist
wird auf einen Verbindungsaufbau
gewartet
ein Fehler aufgetreten ist oder
der Timeout abgelaufen ist
wird die Funktion beendet und ein
negativer Wert zurückgeliefert
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn ein Client eine
UDP/IP-Verbindung aufbauen soll:
Result := ConnectionCreate(CONNTYPE_CLIENT,
IPTYPE_UDP,
0,
0,
0);
Funktionsweise bei
einem UDP/IP-Client
Da es sich bei UDP um eine verbindungslose Art der Kommunikation handelt,
öffnet die Steuerung lediglich einen Kommunikationskanal über den Daten an
einen Netzwerkteilnehmer gesendet werden können. Die Funktion wird in
folgenden Stufen abgearbeitet:
Stufe
Beschreibung
1
Das Gerät JVM-407 richtet einen UDP/IP-Verbindungskanal zum Senden
von Daten ein
2
272
Wenn ...
... Dann ...
kein Fehler aufgetreten ist
wird die Funktion beendet und ein
positiver Wert als Handle zum weiteren Zugriff auf die Verbindung zurückgeliefert
ein Fehler aufgetreten ist
wird die Funktion beendet und ein
negativer Wert zurückgeliefert
Jetter AG
JVM-407
Verwenden der Funktion
bei einem UDP/IP-Server
Programmierung
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn ein Server eine
UDP/IP-Verbindung aufbauen soll:
Result := ConnectionCreate(CONNTYPE_SERVER,
IPTYPE_UDP,
0,
46000,
0);
Funktionsweise bei
einem UDP/IP-Server
Da es sich bei UDP um eine verbindungslose Art der Kommunikation handelt,
wird hierbei lediglich ein Kommunikationskanal eröffnet über den Daten von
einem Netzwerkteilnehmer empfangen werden können. Die Funktion wird in
folgenden Stufen abgearbeitet:
Stufe
1
2
Beschreibung
Das Gerät JVM-407 richtet einen UDP/IP-Verbindungskanal am Port
46000 zum Empfangen von Daten ein
Wenn ...
... Dann ...
kein Fehler aufgetreten ist
wird die Funktion beendet und ein
positiver Wert als Handle zum weiteren Zugriff auf die Verbindung zurückgeliefert
ein Fehler aufgetreten ist
wird die Funktion beendet und ein
negativer Wert zurückgeliefert
Verwandte Themen:




Jetter AG
Verbindung schließen auf Seite 279
Daten senden auf Seite 274
Daten empfangen auf Seite 276
Initialisieren der freiprogrammierbaren IP-Schnittstelle auf Seite 269
273
11 Programmierung
Daten senden
Einleitung
Daten können über eine zuvor geöffnete TCP/IP-Verbindung oder über die
UDP/IP-Verbindung eines Clients gesendet werden. Über die
UDP/IP-Verbindung eines Servers können keine Daten gesendet, sondern lediglich empfangen werden.
Funktionsdeklaration
Function ConnectionSendData(IPConnection:Int,
IPAddr:Int,
IPPort:Int,
Const Ref SendData,
DataLen:Int):Int;
Funktionsparameter
Beschreibung der Funktionsparameter:
Parameter
Rückgabewert
Wert
Bemerkung
IPConnection
Handle
Funktionsergebnis beim
Öffnen der Verbindung
IPAddr
gültige IP-Adresse
nur bei UDP/IP-Client nötig
IPPort
gültiger IP-Port
nur bei UDP/IP-Client nötig
SendData
Adresse des zu sendenden
Datenblocks
DataLen
1 .. 4.000
Länge des Datenblocks in
Byte
Folgende Rückgabewerte sind möglich:
Rückgabewert
Verwenden der Funktion
bei einer
TCP/IP-Verbindung
0
Daten erfolgreich gesendet
-1
Fehler beim Senden, z. B. Verbindung abgebrochen
-3
ungültiges Handle, z. B. senden über einen UDP/IP-Server
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn Daten über eine
TCP/IP-Verbindung gesendet werden sollen:
Result := ConnectionSendData(hConnection,
0,
0,
SendBuffer,
SendLen);
274
Jetter AG
JVM-407
Programmierung
Funktionsweise bei einer
TCP/IP-Verbindung
Bei TCP/IP werden die Daten über eine Verbindung übertragen, die vorher
aufgebaut worden war. Deshalb ist die Angabe von IP-Adresse und IP-Port
nicht mehr nötig und werden in der Funktion ignoriert. Der Task bleibt bei
dem Befehl stehen, bis die Daten gesendet worden sind und ihr Empfang bestätigt worden ist oder ein Fehler aufgetreten ist.
Verwenden der Funktion
bei einem UDP/IP-Client
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn Daten bei einem
Client über eine UDP/IP-Verbindung gesendet werden sollen:
Result := ConnectionData(hConnection,
IP#192.168.75.123,
46000,
SendBuffer,
SendLen);
Funktionsweise bei
einem UDP/IP-Client
Da bei UDP/IP keine Verbindung zwischen 2 Netzwerkteilnehmern besteht,
können Daten bei jedem Funktionsaufruf an einen anderen Teilnehmer oder
anderen Port gesendet werden. Der Task bleibt bei dem Befehl stehen, bis die
Daten gesendet worden sind. Eine Bestätigung, dass die Daten von dem anderen Netzwerkteilnehmer auch empfangen worden sind, erfolgt nicht.
Verwandte Themen:




Jetter AG
Initialisieren der freiprogrammierbaren IP-Schnittstelle auf Seite 269
Verbindung öffnen auf Seite 270
Verbindung schließen auf Seite 279
Daten empfangen auf Seite 276
275
11 Programmierung
Daten empfangen
Einleitung
Daten können über eine zuvor geöffnete TCP/IP-Verbindung oder über die
UDP/IP-Verbindung eines Servers empfangen werden. Über die
UDP/IP-Verbindung eines Clients können keine Daten empfangen, sondern
lediglich gesendet werden.
Funktionsdeklaration
Function ConnectionReceiveData(IPConnection:Int,
Ref IPAddr:Int,
Ref IPPort:Int,
Ref ReceiveData,
DataLen:Int,
Timeout:Int):Int;
Funktionsparameter
Beschreibung der Funktionsparameter:
Parameter
Rückgabewert
Wert
Bemerkung
IPConnection
Handle
Rückgabewert beim Öffnen
der Verbindung
IPAddr
Adresse einer Variablen zur nur bei UDP/IP-Server
Aufnahme der IP-Adresse nötig
des Senders
IPPort
Adresse einer Variablen zur nur bei UDP/IP-Server
Aufnahme des IP-Ports des nötig
Senders
ReceiveData
Adresse des Empfangsdatenblocks
DataLen
1 .. 4.000
maximale Länge des
Datenblocks in Byte
Timeout
0 .. 1.073.741.824 [ms]
0 = unendlich
Folgende Rückgabewerte sind möglich:
Rückgabewert
276
>0
Anzahl empfangener Datenbyte
-1
Fehler beim Empfang, z. B. Verbindung abgebrochen
-3
ungültiges Handle, z. B. empfangen über einen
UDP/IP-Client
-8
Timeout
Jetter AG
JVM-407
Verwenden der Funktion
bei einer
TCP/IP-Verbindung
Programmierung
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn Daten über eine
TCP/IP-Verbindung empfangen werden sollen:
Result := ConnectionReceiveData(hConnection,
Dummy,
Dummy,
ReceiveBuffer,
sizeof(ReceiveBuffer),
T#10s);
Funktionsweise bei einer
TCP/IP-Verbindung
Bei TCP/IP werden die Daten über eine Verbindung übertragen, die vorher
aufgebaut worden war. Deshalb ist die Angabe von IP-Adresse und IP-Port
nicht mehr nötig und werden in der Funktion ignoriert. Der Task bleibt bei
dem Befehl stehen, bis Daten empfangen worden sind oder ein Fehler aufgetreten ist. Die Daten werden bei einer TCP/IP-Verbindung als Datenstrom
übertragen.
Das Gerät JVM-407 arbeitet die Funktion in folgenden Stufen ab:
Stufe
1
2
Beschreibung
Das Gerät JVM-407 wartet bis Daten empfangen worden sind, längstens
jedoch die mitgegebene Timeout Zeit
Wenn ...
... Dann ...
der Timeout abgelaufen oder
wird die Funktion mit einer Fehlerdie Verbindung beendet worden meldung verlassen
ist
Daten empfangen worden sind
3
Wenn ...
werden sie in den mitgegebenen
Empfangspuffer kopiert (höchstens
jedoch bis zur mitgegebenen Anzahl)
und bei Stufe 3 fortgefahren
... Dann ...
mehr Daten empfangen worden werden diese vom JVM-407 gepuffert
sind als in den Empfangspuffer und können aus dem Anwenderprokopiert werden konnten
gramm durch weitere Aufrufe der
Funktion abgeholt werden
4
Verwenden der Funktion
bei einem UDP/IP-Server
Die Funktion wird verlassen und die Anzahl der in den Empfangspuffer
kopierten Daten zurückgegeben
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden, wenn Daten bei einem
Server über eine UDP/IP-Verbindung empfangen werden sollen:
Result := ConnectionReceiveData(hConnection,
IPAddr,
IPPort,
ReceiveBuffer,
sizeof(ReceiveBuffer),
Jetter AG
277
11 Programmierung
T#10s);
Funktionsweise bei
einem UDP/IP-Server
Der Task bleibt bei dem Befehl stehen, bis alle Daten empfangen worden sind
oder ein Fehler aufgetreten ist. Die Daten werden bei einer
UDP/IP-Verbindung als Datagramme übertragen.
Die Steuerung arbeitet die Funktion in folgenden Stufen ab:
Stufe
1
2
Beschreibung
Das Gerät JVM-407 wartet bis alle Daten eines Datagramms empfangen
worden sind, längstens jedoch die mitgegebene Timeout Zeit
Wenn ...
... Dann ...
der Timeout abgelaufen oder
wird die Funktion mit einer Fehlerdie Verbindung beendet worden meldung verlassen
ist
Daten empfangen worden sind
3
Wenn ...
werden sie in den mitgegebenen
Empfangspuffer kopiert (höchstens
jedoch bis zur mitgegebenen Anzahl)
und bei Stufe 3 fortgefahren
... Dann ...
mehr Daten empfangen worden werden diese verworfen
sind als in den Empfangspuffer
kopiert werden konnten (ist das
gesendete Datagramm also
größer)
4
IP-Adresse und IP-Port des Senders werden in die mitgegebenen Variablen übertragen
5
Die Funktion wird verlassen und die Anzahl der in den Empfangspuffer
kopierten Daten zurückgegeben
Verwandte Themen:




278
Initialisieren der freiprogrammierbaren IP-Schnittstelle auf Seite 269
Verbindung öffnen auf Seite 270
Verbindung schließen auf Seite 279
Daten senden auf Seite 274
Jetter AG
JVM-407
Programmierung
Verbindung schließen
Einleitung
Schließen Sie nicht mehr benötigte Verbindungen, da die Anzahl gleichzeitig
geöffneter Verbindungen begrenzt ist.
Funktionsdeklaration
Function ConnectionDelete(IPConnection:Int):Int;
Funktionsparameter
Beschreibung der Funktionsparameter:
Parameter
IPConnection
Rückgabewert
Wert
Handle
Bemerkung
Rückgabewert beim Öffnen
der Verbindung
Folgende Rückgabewerte sind möglich:
Rückgabewert
Verwenden der Funktion
0
Verbindung geschlossen und gelöscht
-1
ungültiges Handle
So kann die Funktion aufgerufen werden und der Rückgabewert einer Variablen zur weiteren Auswertung zugewiesen werden:
Result := ConnectionDelete(hConnection);
Verwandte Themen:




Jetter AG
Verbindung öffnen auf Seite 270
Daten senden auf Seite 274
Daten empfangen auf Seite 276
Initialisieren der freiprogrammierbaren IP-Schnittstelle auf Seite 269
279
11 Programmierung
11.8.2 Register
Einleitung
Dieses Kapitel beschreibt die Register des JVM-407, in denen die aktuelle
Verbindungsliste der freiprogrammierbaren IP-Schnittstelle ausgelesen werden kann. Die Register können zu Debug- oder Diagnosezwecken verwendet
werden. Weitere Funktionen, wie z. B. Verbindung öffnen oder schließen,
können hierüber nicht ausgelöst werden.
Inhalt
Thema
Seite
Registernummern ....................................................................................... 281
Registerbeschreibung ................................................................................. 282
280
Jetter AG
JVM-407
Programmierung
Registernummern
Einleitung
Die Daten jeweils einer Verbindung werden in den Registern eines zusammenhängenden Registerblocks angezeigt. Die Basisregisternummer dieses
Blocks ist steuerungsabhängig.
Registernummern
Registernummer ermitteln
Registerübersicht
Jetter AG
Steuerung
Basisregisternummer
Registernummern
JC-24x
10290
10290 ... 10297
JM-D203-JC24x
10290
10290 ... 10297
JC-340, JC-350, JC-360,
JC-940MC, JVM-407
350000
350000 ... 350007
In diesem Kapitel ist jeweils nur die letzte Ziffer der Registernummer angegeben. Zur Berechnung der tatsächlich verwendeten Registernummer ist die
Basisregisternummer des jeweiligen Geräts hinzuzuaddieren.
Register
Beschreibung
MR 0
Verbindungsauswahl
MR 1
Verbindungstyp
MR 2
Transportprotokoll
MR 3
IP-Adresse
MR 4
IP-Port
MR 5
Zustand
MR 6
Anzahl gesendeter Bytes
MR 7
Anzahl empfangener Bytes
281
11 Programmierung
Registerbeschreibung
Einleitung
Die geöffneten Verbindungen werden vom Betriebssystem in einer Liste verwaltet. Mit Hilfe des Modulregisters MR 0 Verbindungsauswahl werden die
Verbindungsdaten einer Verbindung in die anderen Register des
Registerblocks kopiert.
MR 0
Verbindungsauswahl
Durch Beschreiben des Registers werden die Verbindungen ausgewählt und
ihre Daten in den folgenden Registern sichtbar. Beim Lesen wird angezeigt,
ob die folgenden Register Verbindungsdaten enthalten.
Modulregister-Eigenschaften
Werte lesen
0
Verbindung vorhanden
-1
Verbindung nicht vorhanden
Modulregister-Eigenschaften
Werte schreiben
MR 1
0
erste Verbindung in der Liste anwählen
>0
nächste Verbindung in der Liste anwählen
<0
vorherige Verbindung in der Liste anwählen
Verbindungstyp
Der Wert in diesem Register zeigt an, ob es sich um eine Client- oder eine
Serververbindung handelt.
Modulregister-Eigenschaften
Werte
MR 2
1
Client
2
Server
Transportprotokoll
Der Wert in diesem Register zeigt an, ob TCP oder UDP als Transportprotokoll
verwendet wird.
Modulregister-Eigenschaften
Werte
282
1
UDP
2
TCP
Jetter AG
JVM-407
MR 3
Programmierung
IP-Adresse
Der Wert in diesem Register zeigt die konfigurierte IP-Adresse an.
Modulregister-Eigenschaften
Werte
MR 4
0.0.0.0 ... 255.255.255.255
IP-Port
Der Wert in diesem Register zeigt den konfigurierten IP-Port an.
Modulregister-Eigenschaften
Werte
MR 5
0 ... 65.535
Zustand
Der Wert in diesem Register zeigt an, in welchem Zustand sich die Verbindung befindet.
Modulregister-Eigenschaften
Werte
MR 6
0
Verbindung geschlossen
1
Verbindung wird geöffnet
2
Verbindung ist geöffnet
3
TCP/IP-Server: warte auf Verbindungsanfrage von Client
4
interne Verwendung
Anzahl gesendeter Bytes
Der Wert in diesem Register zeigt die Anzahl der über diese Verbindung gesendeten Datenbytes an. Da es sich um ein vorzeichenbehaftetes
32-Bit-Register handelt und die gesendeten Bytes jeweils hinzuaddiert werden, können Zahlenüberläufe vom positiven zum negativen Maximalwert auftreten.
Modulregister-Eigenschaften
Werte
Jetter AG
-2.147.483.648 ... 2.147.483.647
283
11 Programmierung
MR 7
Anzahl empfangener Bytes
Der Wert in diesem Register zeigt die Anzahl der über diese Verbindung
empfangenen Datenbytes an. Da es sich um ein vorzeichenbehaftetes
32-Bit-Register handelt und die empfangenen Bytes jeweils hinzuaddiert werden, können Zahlenüberläufe vom positiven zum negativen Maximalwert auftreten.
Modulregister-Eigenschaften
Werte
284
-2.147.483.648 ... 2.147.483.647
Jetter AG
JVM-407
Programmierung
11.8.3 Programmbeispiele
Einleitung
In diesem Kapitel sind Programmbeispiele für die Implementierung eines
Servers und eines dazu passenden Clients, die über TCP/IP kommunizieren,
angegeben.
Beispiel-Konfiguration
Diese Beispiele basieren auf folgender Konfiguration:
1
Jetter
JC-940MC
JC-350
2
X14
E D1 D2
U1
U2
U3
U4
Jetter
X19
S11
RUN
LOAD
X14
BUS OUT
STOP
ETHERNET
E
T
H
1
R
SD
X15
X11
X61
STOP
RUN
S10
LOAD
POWER
S11
RESET
Nummer
Teil
X10
SD-CARD
SER
Err D1 RUN
DC24V
1,2A
0V
Funktion
1
JC-940MC
Steuerung
2
JC-350
Steuerung
Da die Funktionalität der freiprogrammierbaren IP-Schnittstelle jedoch nicht
plattformspezifisch implementiert ist, sind diese Beispiele ohne Änderung
auch auf andere Konfigurationen übertragbar.
Inhalt
Thema
Seite
Server ......................................................................................................... 286
Client ........................................................................................................... 290
Jetter AG
285
11 Programmierung
Server
Aufgabe
Ein Server soll einen Datenblock mit einer festgelegten Anzahl von Zeichen
empfangen und die empfangenen Daten wieder an den Client zurückschicken.
Lösung
Programmierung eines Servers für die freiprogrammierbare IP-Schnittstelle,
der über TCP/IP kommuniziert.
Beispiel-Konfiguration
Das Beispiel basiert auf der Konfiguration unter Beispiel-Konfiguration auf
Seite 285.
JetSym STX-Programm
Const
TCP_PORT = 52100;
MSG_LEN = 4000;
End_Const;
Var
// connection handle
ConnHandle
: Int;
// send buffer
SendBuf
: Array[MSG_LEN] Of Char;
// receive buffer
RecvBuf
: Array[MSG_LEN] Of Char;
ResConnInit
ResConnCreate
ResConnReceive
ResConnSend
:
:
:
:
Int;
Int;
Int;
Int;
ConnTimeOut
RecvTimeOut
: Int;
: Int;
// receive error count
RecvErrors
: Int;
// send error count
SendErrors
: Int;
// valid communication counter
CommCnt
: Int;
AmountToReceive : Int;
// dummy
NotUsed
End_Var;
: Int;
Task TCPserver Autorun
Var
286
Jetter AG
JVM-407
Programmierung
RecvTimer
ReceiveCnt
End_Var;
: Timer;
: Int;
// connection timeout
ConnTimeOut := T#5s;
// receiption timeout
RecvTimeOut := T#5s;
// expected amount of data to receive
AmountToReceive := MSG_LEN;
// close all connections, init. data structures
ResConnInit := ConnectionInitialize();
If ResConnInit >= 0 Then
Trace('Server running.$n');
While (True) Do
// try to connect
ResConnCreate := ConnectionCreate
( CONNTYPE_SERVER,
IPTYPE_TCP,
0,
TCP_PORT,
ConnTimeOut );
If ResConnCreate > 0 Then
Trace('Connection established.');
// save connection handle
ConnHandle := ResConnCreate;
// loop, as long as connection established
Loop
// timeout for the complete data packet
TimerStart(RecvTimer, RecvTimeOut * 5);
// init. receive data counter
ReceiveCnt := 0;
// loop until all expected data received or timeout
While ReceiveCnt < AmountToReceive
And Not TimerEnd(RecvTimer) Do
ResConnReceive := ConnectionReceiveData
( ConnHandle,
NotUsed,
NotUsed,
Jetter AG
287
11 Programmierung
RecvBuf[ReceiveCnt],
SizeOf(RecvBuf),
RecvTimeOut );
If ResConnReceive > 0 Then
// something received, increment counter
ReceiveCnt := ReceiveCnt + ResConnReceive;
Else
// error on receive
ResConnReceive := -1;
// increment error counter
inc(RecvErrors);
// leave loop
Exit;
End_If;
End_While;
// here is the point to implement the server function;
// in this example we simply return the received data
If ReceiveCnt Then
// copy from receive to send buffer
MemCopy(SendBuf,RecvBuf,SizeOf(SendBuf));
ResConnSend := ConnectionSendData
( ConnHandle,
0,
0,
SendBuf,
ReceiveCnt );
If ResConnSend < 0 Then
// increment error counter
Inc(SendErrors);
End_If;
End_If;
If ResConnSend >= 0 And ResConnReceive >= 0 Then
// no error --> increment OK counter
Inc(CommCnt);
Else
// leave loop
Exit;
End_If;
End_Loop;
If ConnHandle > 0 Then
// close connection
ConnectionDelete(ConnHandle);
// no longer valid
ConnHandle := 0;
Trace('Connection closed.$n');
End_If;
288
Jetter AG
JVM-407
Programmierung
End_If;
// wait a little bit before trying to reconnect
Delay(T#3s);
End_While;
Else
Trace('ConnectionInitialize() failed, server stopped !$n');
End_If;
End_Task;
Verwandte Themen:
 Client auf Seite 290
Jetter AG
289
11 Programmierung
Client
Aufgabe
Ein Client soll einen Datenblock mit einer festgelegten Anzahl von Zeichen
versenden und die vom Server zurückgeschickten Daten empfangen.
Lösung
Programmierung eines Clients für die freiprogrammierbare IP-Schnittstelle,
der über TCP/IP kommuniziert.
Beispiel-Konfiguration
Das Beispiel basiert auf der Konfiguration unter Beispiel-Konfiguration auf
Seite 285.
JetSym STX-Programm
Const
TCP_ADDR = IP#192.168.10.210;
TCP_PORT = 52100;
MSG_LEN = 4000;
End_Const;
Var
// connection handle
ConnHandle
: Int;
// send buffer
SendBuf
: Array[MSG_LEN] Of Char;
// receive buffer
RecvBuf
: Array[MSG_LEN] Of Char;
ResConnInit
ResConnCreate
ResConnReceive
ResConnSend
:
:
:
:
Int;
Int;
Int;
Int;
ConnTimeOut
RecvTimeOut
: Int;
: Int;
// receive error count
RecvErrors
: Int;
// send error count
SendErrors
: Int;
// valid communication counter
CommCnt
: Int;
AmountToReceive : Int;
SendDelay
: Int;
// dummy
NotUsed
End_Var;
: Int;
Task TCPclient Autorun
290
Jetter AG
JVM-407
Programmierung
Var
RecvTimer
ReceiveCnt
End_Var;
: Timer;
: Int;
// connection timeout
ConnTimeOut := T#5s;
// receiption timeout
RecvTimeOut := T#5s;
// expected amount of data to receive
AmountToReceive := MSG_LEN;
SendDelay
:= T#500ms;
// close all connections, init. data structures
ResConnInit := ConnectionInitialize();
If ResConnInit >= 0 Then
Trace('Client running.$n');
While (True) Do
// try to connect
ResConnCreate := ConnectionCreate
( CONNTYPE_CLIENT,
IPTYPE_TCP,
TCP_ADDR,
TCP_PORT,
ConnTimeOut );
If ResConnCreate > 0 Then
Trace('Connection established.');
// save connection handle
ConnHandle := ResConnCreate;
// loop, as long as connection established
Loop
ResConnSend := ConnectionSendData
( ConnHandle,
0,
0,
SendBuf,
AmountToReceive );
If ResConnSend < 0 Then
// increment error counter
Inc(SendErrors);
End_If;
Jetter AG
291
11 Programmierung
// timeout for the complete data packet
TimerStart(RecvTimer, RecvTimeOut * 5);
// init. receive data counter
ReceiveCnt := 0;
// loop until all expected data received or timeout
While ReceiveCnt < AmountToReceive
And Not TimerEnd(RecvTimer) Do
ResConnReceive := ConnectionReceiveData
( ConnHandle,
NotUsed,
NotUsed,
RecvBuf[ReceiveCnt],
SizeOf(RecvBuf),
RecvTimeOut );
If ResConnReceive > 0 Then
// something received, increment counter
ReceiveCnt := ReceiveCnt + ResConnReceive;
Else
// error on receive
ResConnReceive := -1;
// increment error counter
Inc(RecvErrors);
// leave loop
Exit;
End_If;
End_While;
If ResConnSend >= 0 And ResConnReceive >= 0 Then
// no error --> increment OK counter
Inc(CommCnt);
Delay(SendDelay);
Else
// leave loop
Exit;
End_If;
End_Loop;
If ConnHandle > 0 Then
// close connection
ConnectionDelete(ConnHandle);
// no longer valid
ConnHandle := 0;
Trace('Connection closed.$n');
End_If;
End_If;
292
Jetter AG
JVM-407
Programmierung
// wait a little bit before trying to reconnect
Delay(T#3s);
End_While;
Else
Trace('ConnectionInitialize() failed, client stopped !$n');
End_If;
End_Task;
Verwandte Themen:
 Server auf Seite 286
Jetter AG
293
11 Programmierung
11.9 Freiprogrammierbare CAN-PRIM-Schnittstelle
Die
CAN-PRIM-Schnittstelle
Die freiprogrammierbare CAN-PRIM-Schnittstelle bietet die Möglichkeit, beliebige CAN-Nachrichten zu senden und zu empfangen. Das Verarbeiten der
CAN-Nachrichten erfolgt dabei vollständig im Anwenderprogramm.
Anwendungen, z. B.
Folgende Anwendungen sind mit der freiprogrammierbare
CAN-PRIM-Schnittstelle möglich:
 Anschluss von Modulen mit CAN-Schnittstelle
Voraussetzungen an den
Programmierer
Die Funktionalität der freiprogrammierbaren CAN-PRIM-Schnittstelle setzt
grundlegende Kenntnisse des Controller Area Networks CAN voraus. Dazu
zählen:
 Aufbau einer CAN-Nachricht
Inhalt
Thema
Seite
Funktion der CAN-PRIM-Schnittstelle ........................................................ 295
Einschränkungen der CAN-PRIM-Schnittstelle .......................................... 296
Programmierung der CAN-PRIM-Schnittstelle ........................................... 297
Interne Prozesse der CAN-PRIM-Schnittstelle ........................................... 300
Registerbeschreibung der CAN-PRIM-Schnittstelle ................................... 301
Beispiel zur CAN-PRIM-Schnittstelle .......................................................... 307
294
Jetter AG
JVM-407
Programmierung
Funktion der CAN-PRIM-Schnittstelle
Funktion
Bei der freiprogrammierbaren CAN-PRIM-Schnittstelle funktioniert der Datenaustausch zwischen dem CAN-Bus und dem Anwenderprogramm über Nachrichten-Boxen. Jede Nachrichten-Box bietet Platz für eine komplette
CAN-Nachricht.
Dem Anwender stehen 32 Nachrichten-Boxen zur Verfügung. Jede Nachrichten-Box kann als Sende- oder Empfangsbox konfiguriert werden und verfügt
über eine eigene CAN-ID.
Technische Daten
Jetter AG
Funktion
Beschreibung
CAN-ID
11-Bit oder 29-Bit
RTR-Nachrichten
werden nicht unterstützt
Anzahl Nachrichten-Boxen
32
295
11 Programmierung
Einschränkungen der CAN-PRIM-Schnittstelle
Nur CAN-0
Beim JVM-407 steht die CAN-PRIM-Schnittstelle nur bei CAN-0 zur Verfügung.
Zeitverhalten
Der Abstand zwischen zwei CAN-Nachrichten, die über die
CAN-PRIM-Schnittstelle empfangen werden, muss 10 ms betragen. Ist der
Abstand kleiner, dann empfängt das Bediengerät JVM-407 nicht alle
CAN-Nachrichten.
Reservierte CAN-IDs
Die folgenden CAN-IDs sind reserviert, da gleichzeitig CANopen® läuft:
Reservierte CAN-IDs
Beschreibung
0x00
Bei 11Bit NMT
0x600 + Node-ID und 0x580 + Node-ID
SDO
0x80
Sync
0x100
Time Stop
0x80 + Node-ID
Emergency Message
0x700 + Node-ID
Heartbeat
+ verwandte PDOs
Im Anwenderprojekt
+ IDs von anderen CANopen®-Teilnehmern
296
Jetter AG
JVM-407
Programmierung
Programmierung der CAN-PRIM-Schnittstelle
Registerübersicht
In dieser Anleitung werden die folgenden Register verwendet:
Register
Initialisierung
Beschreibung
R 200010500
Statusregister CAN-PRIM
R 200010501
Kommandoregister CAN-PRIM
R 200010502
Box-Nummer
R 200010503
Fifo-Füllstand
R 200010510
Box-Statusregister
R 200010511
Box-Konfigurationsregister
R 200010512
CAN-ID
R 200010513
Anzahl Datenbytes
R 200010514
...
R 200010521
Datenbyte 0
...
Datenbyte 7
Zur Initialisierung der CAN-PRIM-Schnittstelle müssen Sie die CAN-ID-Länge
für alle Nachrichten-Boxen folgendermaßen konfigurieren:
Wenn die CAN-ID-Länge...
Jetter AG
... Dann ...
11 Bit ist
R 200010501 := 8;
29 Bit ist
R 200010501 := 9;
297
11 Programmierung
Konfiguration einer
Nachrichten-Box zum
Senden
Führen Sie zur Konfiguration einer Nachrichten-Box zum Senden folgende
Schritte aus:
Schritt
Vorgehen
1
Auswahl der Nachrichten-Box
R 200010502 := Nummer der Nachrichten-Box;
2
Konfiguration der Nachrichten-Box als Sendebox
R 200010511 := 1;
3
Konfiguration der CAN-ID zum Senden
R 200010512 := CAN-ID;
4
Aktivierung der Box
R 200010501 := 1;
Ergebnis der erfolgreichen Konfiguration:
Bit 0 = 1 in R 200010510
Senden einer
CAN-Nachricht
Führen Sie zum Senden einer CAN-Nachricht folgende Schritte aus:
Schritt
Vorgehen
1
Auswahl der Nachrichten-Box
R 200010502 := Nummer der Nachrichten-Box;
2
Anzahl zu sendender Bytes
R 200010513 := Anzahl Bytes;
3
Schreiben der Datenbytes
R 200010514 := Datenbyte 0;
R 200010515 := Datenbyte 1;
...
R 200010521 := Datenbyte 7;
4
Senden der Daten aus der angewählten Nachrichten-Box
R 200010501 := 3;
Ergebnis des erfolgreichen Sendens:
Bit 3 = 0 in R 200010510
298
Jetter AG
JVM-407
Konfiguration einer
Nachrichten-Box zum
Empfangen
Programmierung
Führen Sie zur Konfiguration einer Nachrichten-Box zum Empfangen folgende
Schritte aus:
Schritt
Vorgehen
1
Auswahl der Nachrichten-Box
R 200010502 := Nummer der Nachrichten-Box;
2
Konfiguration der Nachrichten-Box als Empfangsbox
R 200010511 := 0;
3
Konfiguration der CAN-ID zum Empfangen
R 200010512 := CAN-ID;
4
Aktivierung der Box
R 200010501 := 1;
Ergebnis der erfolgreichen Konfiguration:
Bit 0 = 1 in R 200010510
Empfang einer
CAN-Nachricht
Führen Sie zum Empfang einer CAN-Nachricht folgende Schritte aus:
Schritt
1
Vorgehen
Überprüfung von Bit 1 NEWDAT in R 200010500
Wenn ...
Bit 1 = 1 in R 200010500
... Dann ...
wurde eine CAN-Nachricht empfangen.
Weiter mit Schritt 2.
2
Auswahl der Nachrichten-Box, die eine neue CAN-Nachricht empfangen
hat.
R 200010502 := R 200010504;
3
Überprüfung eines Überlaufs der Nachrichten-Box.
Wenn ...
Bit 2 = 1 in R 200010510
Jetter AG
... Dann ...
trat ein Überlauf auf.
4
Lesen der Anzahl der empfangenen Bytes
Anzahl Bytes := R 200010513;
5
Lesen der empfangen Bytes
Datenbyte 0 := R 200010514;
Datenbyte 1 := R 200010515;
...
Datenbyte 7 := R 200010521;
6
Quittierung des Empfangs
R 200010501 := 4;
7
Die Nachrichten-Box ist wieder empfangsbereit.
299
11 Programmierung
Interne Prozesse der CAN-PRIM-Schnittstelle
Einleitung
Die CAN-PRIM-Schnittstelle arbeitet die folgenden Aufgaben selbstständig ab.
 Empfang von CAN-Nachrichten
 Senden von CAN-Nachrichten
 Filtern von CAN-Nachrichten beim Empfang
Interner Empfang von
CAN-Nachrichten
Die CAN-PRIM-Schnittstelle empfängt folgendermaßen eine neue
CAN-Nachricht:
Stufe
1
Eine gültige CAN-Nachricht wurde vom CAN-Bus empfangen.
2
Die CAN-ID stimmt mit der Empfangsmaske überein.
3
Die CAN-ID stimmt mit der CAN-ID einer Nachrichten-Box, die auf Empfang konfiguriert wurde, überein.
4
300
Beschreibung
Wenn im R 200010510 der
Nachrichten-Box ...
... Dann ...
das NEW-DAT-Bit = 0
wird NEW-DAT-Bit = 1
weiter mit Stufe 5.
das NEW-DAT-Bit = 1
wird OVERRUN-Bit = 1;
die Daten der CAN-Nachricht werden
verworfen.
5
Das R 200010503 Fifo-Füllstand wird um Eins erhöht.
6
Die Nummer der Nachrichten-Box wird in das R 200010504 Fifo-Daten
eingetragen.
7
Im R 200010500 Status CAN-PRIM wird das NEW-DAT-Bit = 1.
Jetter AG
JVM-407
Programmierung
Registerbeschreibung der CAN-PRIM-Schnittstelle
R 200010500
Statusregister CAN-PRIM
Über das R 200010500 kann der Zustand der CAN-PRIM-Schnittstelle ausgewertet werden.
Bedeutung der Bits
Bit 1
NEW-DAT
1=
Bit 2
Mindestens eine Nachrichten-Box hat eine neue CAN-Nachricht
erhalten.
ID-Länge
0=
es werden CAN-IDs mit 11 Bit Länge gesendet / empfangen
1=
es werden CAN-IDs mit 29 Bit Länge gesendet / empfangen
Modulregister-Eigenschaften
Jetter AG
Zugriff
lesen
Wert nach Reset
CAN-PRIM-Schnittstelle ist aktiviert.
301
11 Programmierung
R 200010501
Kommandoregister CAN-PRIM
Über das R 200010501 werden bestimmte Kommandos zur
CAN-PRIM-Schnittstelle übertragen.
Kommandos der CAN-PRIM-Schnittstelle
1
Nachrichten-Box aktivieren
Die angewählte Nachrichten-Box in R 200010502 wird aktiviert. Bei der
Aktivierung wird überprüft, ob die CAN-ID der Box vom Systembus nicht
reserviert ist.
Ergebnis: Bit 0 = 1 im R 200010510
2
Nachrichten-Box deaktivieren
Die angewählte Nachrichten-Box in R 200010502 wird deaktiviert.
Ergebnis: Bit 0 = 0 im R 200010510
3
CAN-Nachricht senden
Es wird eine CAN-Nachricht mit den Daten der angewählten Nachrichten-Box gesendet.
4
NEW-DAT-Bit löschen
Löscht das NEW-DAT-Bit im R 200010500. Die angewählte Nachrichten-Box kann wieder CAN-Nachrichten empfangen.
Ergebnis: Bit 1 = 0 im R 200010510
5
OVERRUN-Bit löschen
Löscht das OVERRUN-Bit im R 200010510 der angewählten Nachrichten-Box.
Ergebnis: Bit 2 = 0 im R 200010510
6
Sendefehler-Bit löschen
Löscht das Sendefehler-Bit im R 200010510 der angewählten Nachrichten-Box.
Ergebnis: Bit 3 = 0 im R 200010510
7
Fifo löschen
Alle Einträge im Fifo werden gelöscht.
Ergebnis: R 200010503 = 0
8
Standard-ID Länge auf 11-Bit einstellen
Die ID-Länge für alle CAN-Nachrichten wird auf 11-Bit eingestellt.
Ergebnis:
Bit 2 = 0 im R 200010500
R 200010506 := 0
R 200010507 := 0
9
Standard-ID Länge auf 29-Bit einstellen
Die ID-Länge für alle CAN-Nachrichten wird auf 29-Bit eingestellt.
Ergebnis:
Bit 2 = 1 im R 200010500
R 200010506 := 0
R 200010507 := 0
302
Jetter AG
JVM-407
Programmierung
Kommandos der CAN-PRIM-Schnittstelle
10
Nachrichten-Boxen auf den Empfang neuer Nachrichten überprüfen
Die CAN-PRIM Schnittstelle überprüft selbständig den Empfang neuer
CAN-Nachrichten. Das Kommando 10 erhöht das Überprüfungsintervall
auf den Empfang neuer Nachrichten.
Modulregister-Eigenschaften
Zugriff
R 200010502
CAN-PRIM-Schnittstelle ist aktiviert.
Nummer der Nachrichten-Box
Über das R 200010502 wird eine Nachrichten-Box ausgewählt. Die Daten der
Nachrichten-Box sind dann über die Modulregister R 200010510 bis
R 200010521 erreichbar.
Modulregister-Eigenschaften
R 200010503
Werte
Nummer der Nachrichten-Box:
0 ... 15
Zugriff
lesen entfernt Zeichen
Wird wirksam
wenn CAN-PRIM-Schnittstelle aktiviert ist.
Fifo-Füllstand
Das R 200010503 zeigt, ob und wie viele neue CAN-Nachrichten empfangen
wurden.
Modulregister-Eigenschaften
Jetter AG
Werte
Anzahl empfangener Nachrichten:
0 ... 16
Zugriff
lesen
Wird wirksam
wenn CAN-PRIM-Schnittstelle aktiviert ist.
303
11 Programmierung
R 200010504
Fifo-Daten
Das R 200010504 zeigt, in welcher Nachrichten-Box eine neue
CAN-Nachricht empfangen wurde. Beim Lesen des R 200010504 wird der
gerade gelesene Wert aus dem Fifo entfernt. Der Wert des R 200010503 wird
dabei um eins verringert.
Modulregister-Eigenschaften
Werte
R 200010506
keine Fifo-Daten vorhanden:
-1
Nummer der Nachrichten-Box
mit neuen Daten:
0 ... 15
Zugriff
lesen entfernt Zeichen
Wert nach Reset
-1
Wird wirksam
wenn CAN-PRIM-Schnittstelle aktiviert ist.
Globale Empfangsmaske
Die globale Empfangsmaske filtert die Bits der empfangenen CAN-ID. Bei gesetztem Bit der globalen Empfangsmaske wird das empfangene Bit der
CAN-ID mit der globalen Empfangs-ID verglichen.
Modulregister-Eigenschaften
Werte
R 200010507
bei 11-Bit CAN-IDs
0 ... 0x7FF
bei 29-Bit CAN-IDs
0 ... 0x1FFFFFFF
Bit = 0
Bit wird nicht mit R 200010507 verglichen.
Bit = 1
Bit wird mit R 200010507 verglichen.
Wird wirksam
wenn CAN-PRIM-Schnittstelle aktiviert ist.
Globale Empfangs-ID
Über die globale Empfangs-ID und die R 200010506 Globale Empfangsmaske
wird ein Bereich von CAN-IDs eingestellt, der an die CAN-PRIM-Schnittstelle
weitergeleitet wird.
Modulregister-Eigenschaften
Werte
Wird wirksam
304
bei 11-Bit CAN-IDs
0 ... 0x7FF
bei 29-Bit CAN-IDs
0 ... 0x1FFFFFFF
wenn CAN-PRIM-Schnittstelle aktiviert ist.
Jetter AG
JVM-407
R 200010510
Programmierung
Box-Statusregister
Über das R 200010510 kann der Zustand einer Nachrichten-Box ausgewertet
werden.
Bedeutung der Bits
Bit 0
Valid
1=
Bit 1
NEW-DAT
1=
Bit 2
Die Nachrichten-Box hat eine CAN-Nachricht empfangen. Der
Empfang weiterer CAN-Nachrichten ist blockiert.
OVERRUN
1=
Bit 3
Die Nachrichten-Box ist aktiviert
Es wurde eine neue CAN-Nachricht für diese Nachrichten-Box
empfangen, als NEW-DAT = 1 war.
Sendefehler
1=
Beim Senden einer CAN-Nachricht aus dieser Nachrichten-Box ist
ein Fehler aufgetreten.
Modulregister-Eigenschaften
R 200010511
Zugriff
lesen
Wird wirksam
wenn CAN-PRIM-Schnittstelle aktiviert ist.
Box-Konfigurationsregister
Über das R 200010511 kann die Box konfiguriert werden.
Bedeutung der Bits
Bit 0
Sende- / Empfangsbox
0=
Sendebox
1=
Empfangsbox
Modulregister-Eigenschaften
Wird wirksam
Jetter AG
wenn CAN-PRIM-Schnittstelle aktiviert ist.
305
11 Programmierung
R 200010512
CAN-ID
Bei einer Sendebox wird eine CAN-Nachricht mit dieser CAN-ID gesendet.
Bei einer Empfangsbox werden nur CAN-Nachrichten mit dieser CAN-ID
empfangen.
Modulregister-Eigenschaften
Werte
Wird wirksam
R 200010513
bei 11-Bit CAN-IDs
0 ... 0x7FF
bei 29-Bit CAN-IDs
0 ... 0x1FFFFFFF
wenn CAN-PRIM-Schnittstelle aktiviert ist und die Nachrichten-Box nicht aktiviert ist, d.h. Bit 0 = 0 im MR 10510.
Anzahl Datenbytes
Bei einer Sendebox wird eine CAN-Nachricht mit dieser Anzahl Datenbytes
gesendet.
Bei einer Empfangsbox wird die Anzahl empfangener Datenbytes der
CAN-Nachricht eingetragen.
Modulregister-Eigenschaften
R 200010514 ...
R 200010521
Werte
Anzahl Datenbytes:
0 ... 8
Wird wirksam
wenn CAN-PRIM-Schnittstelle aktiviert ist.
Datenbytes 0 bis 7
Bei einer Sendebox wird eine CAN-Nachricht mit diesen Datenbytes gesendet.
Bei einer Empfangsbox werden die empfangenen Datenbytes der
CAN-Nachricht eingetragen.
Modulregister-Eigenschaften
306
Werte
Daten der Datenbytes:
0 ... 255
Wird wirksam
wenn CAN-PRIM-Schnittstelle aktiviert ist.
Jetter AG
JVM-407
Programmierung
Beispiel zur CAN-PRIM-Schnittstelle
Aufgabe
Über die CAN-Schnittstelle sollen CAN-Nachrichten mit den CAN-IDs 0x200
empfangen werden. Nach dem Empfang soll eine CAN-Nachricht mit der
CAN-ID 0x277 gesendet werden.
Lösung
Über die CAN-PRIM-Schnittstelle werden die Daten gesendet und empfangen.
Dazu wird eine Nachrichten-Box als Empfangsbox für die CAN-ID 0x200
eingerichtet. Eine weitere Nachrichten-Box wird als Sendebox mit der CAN-ID
0x277 konfiguriert.
Konfiguration
Bei diesem Beispiel wird die CAN-PRIM-Schnittstelle des JVM-407 benutzt.
JetSym STX-Programm
Konfiguration
Type
TYPE_JC_CAN_PRIM:
Struct
State
:
Command
:
BoxNumber
:
FifoNumData :
FifoData
:
GlobalMask :
GlobalID
:
BoxState
:
BoxConfig
:
BoxCanId
:
BoxDLC
:
BoxData
:
End_Struct;
End_Type;
Var
CanPrim
Data
End_Var;
Jetter AG
Int At 0*SizeOf(Int);
Int At 1*SizeOf(Int);
Int At 2*SizeOf(Int);
Int At 3*SizeOf(Int);
Int At 4*SizeOf(Int);
Int At 6*SizeOf(Int);
Int At 7*SizeOf(Int);
Int At 10*SizeOf(Int);
Int At 11*SizeOf(Int);
Int At 12*SizeOf(Int);
Int At 13*SizeOf(Int);
Array[8] of Int At 14*SizeOf(Int);
: TYPE_JC_CAN_PRIM At %VL 200010500;
: Array[8] of Int;
307
11 Programmierung
Task main Autorun
// 11-Bit CAN-ID
CanPrim.Command := 8;
// Box 0 auswählen
CanPrim.BoxNumber := 0;
// Box auf ID 0x200 konfigurieren
CanPrim.BoxCanId := 0x200;
// als Empfangsbox konfigurieren
CanPrim.BoxConfig := 0;
// Box aktivieren
CanPrim.Command := 1;
If
BitClear(CanPrim.BoxState, 0)
Then
// CAN-ID already used by system bus
End_If;
// Box 1 auswählen
CanPrim.BoxNumber := 1;
// Box auf ID 0x2FF konfigurieren
CanPrim.BoxCanId := 0x2FF;
// als Sendebox konfigurieren
CanPrim.BoxConfig := 1;
// Box aktivieren
CanPrim.Command := 1;
If
BitClear(CanPrim.BoxState, 0)
Then
// CAN-ID bereits vom CAN-Systembus genutzt
End_If;
End_Task;
308
Jetter AG
JVM-407
JetSym STX-Programm
Empfang von Daten
Programmierung
// auf neue CAN-Nachrichten warten
When
BitSet(CanPrim.State, 1)
Continue;
// Box Nummer aus dem Fifo lesen und Box auswählen
CanPrim.BoxNumber := CanPrim.FifoData;
// Overrun prüfen
If
BitSet(CanPrim.BoxState, 2)
Then
// Overrun quittieren
CanPrim.Command := 5;
End_If;
// empfangene Daten kopieren
Data[0] := CanPrim.BoxData[0];
Data[1] := CanPrim.BoxData[1];
// NEW-DATA-Bit zurücksetzen, um neue Nachrichten
// auf dieser Box empfangen zu können
CanPrim.Command := 4;
JetSym STX-Programm
Senden von Daten
// Box 1 auswählen
CanPrim.BoxNumber := 1;
// Anzahl Datenbytes = 2
CanPrim.BoxDLC := 2;
// zu sendende Daten eintragen
CanPrim.BoxData[0] := 12;
CanPrim.BoxData[1] := 25;
// das Senden der CAN-Nachricht starten
CanPrim.Command := 3;
// Sendefehler prüfen
If
BitSet(CanPrim.BoxState, 3)
Then
// Sendefehler quittieren
CanPrim.Command := 6;
End_If;
Jetter AG
309
12 Automatisches Kopieren von Steuerungsdaten
12 Automatisches Kopieren von Steuerungsdaten
Einleitung
Dieses Kapitel beschreibt die AutoCopy-Funktion, die es ermöglicht, Dateien
innerhalb des JVM-407 und/oder zwischen dem JVM-407 und einem
FTP-Server zu kopieren. Hierzu ist eine Kommandodatei zu erstellen, die zusammen mit den Daten auf der SD-Karte oder einem USB-Stick abgelegt ist.
Die Kommandodatei wird beim Booten von der Steuerung automatisch abgearbeitet.
Funktionen im lokalen
Dateisystem
Folgende Funktionen können ausgeführt werden:






Funktionen im Dateisystem des FTP-Servers
Dateien vom FTP-Server kopieren
Dateien zum FTP-Server kopieren
Dateien löschen
Verzeichnis wechseln
Verzeichnis anlegen
Verzeichnis löschen
Anwendungsbereiche sind hauptsächlich dort, wo Fernwartung nicht möglich
ist, kein PC vor Ort vorhanden ist oder der Anlagenbediener nicht in der Lage
ist (oder nicht in die Lage versetzt werden soll) Änderungen an der Anlage
vorzunehmen:





Voraussetzungen
Verzeichnisse anlegen
Verzeichnisse löschen
Dateien kopieren
Dateien löschen
Folgende Funktionen können ausgeführt werden:






Anwendungsbereiche
Register und Merker in eine Datei abspeichern
Register und Merker aus einer Datei einspielen
Änderung des Anwenderprogramms
Änderung der Anwenderdaten
Änderung der Steuerungskonfiguration
Betriebssystem-Update (JVM-407, Netzwerkteilnehmer)
Duplizieren eines Steuerungssystems
Folgende Voraussetzungen werden in diesem Kapitel getroffen:
 der Programmierer verfügt über Kenntnisse des Dateisystems des

310
JVM-407
der Programmierer verfügt über Grundkenntnisse der Anwendung von FTP
Jetter AG
JVM-407
Bezeichnung
Automatisches Kopieren von Steuerungsdaten
Vollständiger Name bezeichnet in dieser Beschreibung den Namen der Datei
oder des Verzeichnisses mit komplettem Pfad.
Inhalt
Thema
Seite
Funktionsweise ........................................................................................... 312
Die Datei "autocopy.ini" .............................................................................. 316
Protokolldatei .............................................................................................. 328
Datendateien .............................................................................................. 330
Jetter AG
311
12 Automatisches Kopieren von Steuerungsdaten
12.1 Funktionsweise
Einleitung
Dieses Kapitel beschreibt wie die AutoCopy-Funktion gestartet wird und wie
sie vom JVM-407 ausgeführt wird.
Inhalt
Thema
Seite
AutoCopy-Funktion starten ......................................................................... 313
AutoCopy-Funktion ausführen .................................................................... 314
Betriebsart AutoCopy beenden ................................................................... 315
312
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
AutoCopy-Funktion starten
Einleitung
Die AutoCopy-Funktion kann nur während der Bootphase des JVM-407 ausgeführt werden.
Voraussetzungen
Die Kommandodatei wurde erstellt und auf der SD-Karte oder dem USB-Stick
abgelegt.
Wert
AutoCopy-Funktion
starten
Bemerkung
Dateiname
autocopy.ini
alles Kleinbuchstaben
Verzeichnis SD
/SD/
Stammverzeichnis der SD-Karte
Verzeichnis USB
/USB/
Stammverzeichnis USB-Stick
Führen Sie folgende Schritte aus, um die AutoCopy-Funktion zu starten:
Schritt
Vorgehen
1
Schalten Sie das Gerät aus
2
Stecken Sie die SD-Karte vollständig in den Steckplatz der SD-Karte oder
den USB-Stick in die USB-Schnittstelle.
3
Halten Sie die Tasten F1 und F3 gedrückt.
4
Schalten Sie das Gerät ein.
5
Warten Sie bis folgende Meldung erscheint: Start operating system in
STOP mode.
Ergebnis: Das Gerät bootet in der Betriebsart AutoCopy.
Jetter AG
313
12 Automatisches Kopieren von Steuerungsdaten
AutoCopy-Funktion ausführen
Einleitung
Während der Bootphase in der Betriebsart AutoCopy führt das Gerät die
Kommandos in der Kommandodatei aus.
Einschränkungen
In der Betriebsart AutoCopy gelten folgende Einschränkungen der Funktion
des Geräts JVM-407:
 Das Anwenderprogramm wird nicht ausgeführt
 Mit dem JVM-407 kann nicht kommuniziert werden
AutoCopy-Funktion
ausführen
Das Betriebssystem des JVM-407 bearbeitet die AutoCopy-Funktion in folgenden Stufen:
Stufe
314
Beschreibung
1
Das Gerät lädt die Datei "/SD/autocopy.ini" von der SD-Karte oder vom
USB-Stick
2
Das Gerät liest die Werte aus der Sektion [OPTIONS]
3
Das Gerät liest das Kommando und die Kommandoparameter aus der
Sektion [COMMAND_1], bearbeitet es und schreibt das Ergebnis gegebenenfalls in die Protokolldatei
4 .. n
Das Gerät bearbeitet die weiteren Kommandos in aufsteigender Reihenfolge, bis zur Anzahl aus der Sektion [OPTIONS]
n+1
Das Gerät ermittelt die Ergebnisstatistik aller Kommandos und schreibt sie
in die Protokolldatei
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
Betriebsart AutoCopy beenden
Einleitung
Die Betriebsart AutoCopy kann nur durch Booten des JVM-407 verlassen
werden.
Betriebsart AutoCopy
beenden
Führen Sie, nachdem die AutoCopy-Funktion beendet ist, folgende Schritte
aus, um die Betriebsart AutoCopy zu verlassen:
Schritt
Vorgehen
1
Entfernen Sie die SD-Karte oder den USB-Stick.
2
Betätigen Sie eine Taste auf dem Gerät.
Ergebnis: Das Gerät bootet neu.
Jetter AG
315
12 Automatisches Kopieren von Steuerungsdaten
12.2 Die Datei "autocopy.ini"
Einleitung
Dieses Kapitel beschreibt den Aufbau der Datei "autocopy.ini" und die verfügbaren Kommandos.
Aufbau der Datei
Die Kommandodatei der AutoCopy-Funktion ist eine Textdatei, deren Einträge
in Sektionen gruppiert sind.
 In diesen Sektionen werden Werte gesetzt, mit denen die
AutoCopy-Funktion arbeitet
Leerzeilen können beliebig eingefügt werden

 Kommentarzeilen werden mit "!", "#" oder ";" eingeleitet
Sektionen
Die Kommandodatei enthält zwei Sektionstypen:
 In der Sektion [OPTIONS] werden grundsätzliche Einstellungen gemacht;

sie ist nur ein Mal vorhanden
In den Sektionen [COMMAND_#] werden die auszuführenden Kommandos
angegeben; die Anzahl der Kommandosektionen ist auf 128 beschränkt
Inhalt
Thema
Seite
Die Sektion [OPTIONS] .............................................................................. 317
Die Kommandosektionen ............................................................................ 318
Beispiel für eine Kommandodatei ............................................................... 326
316
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
Die Sektion [OPTIONS]
Einleitung
In dieser Sektion werden grundsätzliche Einstellungen der AutoCopy-Funktion
gemacht. Sie ist nur einmal, vorzugsweise am Beginn der Datei, vorhanden.
Beispiel
[OPTIONS]
CommandCount = 14
LogFile
= /SD/autocopy.log
LogAppend
= 1
Elemente der Sektion
Die Sektion besteht aus den folgenden Teilen:
CommandCount
im Beispiel
14
Funktion
Anzahl der nachfolgenden Kommandosektionen
gültige Werte
>=0
nicht gültige Werte
<0
bei ungültigem Wert oder
nicht vorhandenem Eintrag
0
LogFile
im Beispiel
/SD/autocopy.log
Funktion
vollständiger Name der Protokolldatei
gültige Werte




nicht gültige Werte
bei ungültigem Wert oder
nicht vorhandenem Eintrag
alle gültigen Dateinamen
Verzeichnis ist vorhanden
ungültiger Dateinamen
nicht vorhandenes Verzeichnis
Es wird keine Protokolldatei erzeugt.
LogAppend
im Beispiel
1
Funktion
legt fest, ob eine neue Protokolldatei erstellt oder an
eine vorhandene angefügt wird;
gültige Werte

0 = gegebenenfalls bestehende Datei löschen und
neue Datei erstellen

1 = an bestehende Datei anfügen; wenn keine Datei
vorhanden ist, wird ebenfalls eine neue Protokolldatei erstellt


<0
nicht gültige Werte
bei ungültigem Wert oder
nicht vorhandenem Eintrag
Jetter AG
>1
Es wird die Protokolldatei neu erstellt.
317
12 Automatisches Kopieren von Steuerungsdaten
Die Kommandosektionen
Einleitung
In diesen Sektionen werden die Befehle angegeben, die von der
AutoCopy-Funktion des Geräts JVM-407 ausgeführt werden.
Beispiel
[COMMAND_1]
Command
= DirCreate
Path
= /Homepage
ErrorAsWarning = 1
[COMMAND_2]
Command
Source
Destination
= FileCopy
= /SD/Index.htm
= /Homepage/index.htm
[COMMAND_3]
Command
ServerAddr
UserName
Password
=
=
=
=
FtpConnect
192.168.123.45
admin
admin
Name der Sektionen
Die Namen der Sektionen werden gebildet durch die Zeichenkette COMMAND_
gefolgt von einer Zahl, die zwischen 1 und dem Wert des Eintrags CommandCount aus der Sektion [OPTIONS] liegt.
Bearbeitung der
Kommandos
Die AutoCopy-Funktion bearbeitet die Kommandos in der Reihenfolge der
Sektionsnamen.
 Beginnend mit dem Kommando unter Sektion [COMMAND_1]
 Endend mit dem Kommando unter der Sektion mit dem Wert des Eintrags
CommandCount aus der Sektion [OPTIONS]
 Jede Kommandosektion kann nur ein Kommando enthalten, so dass für
jedes Kommando eine eigene Sektion anzulegen ist
Fehlerbehandlung
Tritt bei der Bearbeitung eines Kommandos ein Fehler auf, erfolgt ein entsprechender Eintrag in der Protokolldatei. Für jedes Kommando kann eingestellt werden, ob der Fehler als Error oder als Warning in der Protokolldatei
eingetragen werden soll. Die Einstellung erfolgt über den optionalen Parameter ErrorAsWarning:
ErrorAsWarning
318
Eintrag in Protokolldatei
Parameter nicht vorhanden
Error
ErrorAsWarning = 0
Error
ErrorAsWarning = 1
Warning
Jetter AG
JVM-407
Dateinamen
Automatisches Kopieren von Steuerungsdaten
 Der Funktionsparameter für die lokale Datei kann auch den Pfad zu dieser
Datei enthalten (z. B. "/Data/TestFiles/LocalTestFile.txt").
 Der Funktionsparameter für die Datei auf dem FTP-Server kann auch den
Pfad zu dieser Datei enthalten, wenn dies vom Dateisystem unterstützt
wird. Ansonsten muss zunächst mit dem Befehl FtpDirChange(...)
das entsprechende Verzeichnis eingestellt werden.
 Das Dateisystem eines JVM-407 unterstützt beide Varianten.
Verfügbare Kommandos
im lokalen Dateisystem
Die folgenden Kommandos für Zugriffe auf das lokale Dateisystem sind verfügbar:
Command = DirCreate
Funktion
Anlegen eines Unterverzeichnisses
Parametername
Path
Parameterwert
vollständiger Name des Verzeichnisses
gültige Werte





nicht gültige Werte
alle gültigen Verzeichnisnamen
übergeordnete Verzeichnisse sind vorhanden
ungültiger Verzeichnisnamen
nicht vorhandenes übergeordnetes Verzeichnis
Name eines bereits vorhandenen Verzeichnisses
bei ungültigem Wert
Das Verzeichnis wird nicht angelegt und der Fehler in
die Protokolldatei eingetragen
Beispiel
[COMMAND_1]
Command = DirCreate
Path
= /sub1
[COMMAND_2]
Command = DirCreate
Path
= /sub1/sub2
Command = DirRemove
Funktion
Löschen eines Unterverzeichnisses
Parametername
Path
Parameterwert
vollständiger Name des Verzeichnisses
gültige Werte




nicht gültige Werte
alle gültigen Verzeichnisnamen
das Verzeichnis ist leer
ungültiger Verzeichnisnamen
Verzeichnis ist nicht leer
bei ungültigem Wert
Das Verzeichnis wird nicht gelöscht und der Fehler in
die Protokolldatei eingetragen
Beispiel
[COMMAND_8]
Command = DirRemove
Path
= /sub1/sub2
Command = FileCopy
Jetter AG
Funktion
Kopieren einer Datei
Parametername 1
Source
Parameterwert 1
vollständiger Name der Quelldatei
319
12 Automatisches Kopieren von Steuerungsdaten
Parametername 2
Destination
Parameterwert 2
vollständiger Name der Zieldatei
gültige Werte





nicht gültige Werte
alle gültigen Dateinamen
das Zielverzeichnis ist vorhanden
ungültiger Dateinamen
nicht vorhandene Quelldatei
nicht vorhandenes Zielverzeichnis
bei ungültigem Wert
Die Datei wird nicht kopiert und der Fehler in die Protokolldatei eingetragen
Beispiel
[COMMAND_1]
Command
= FileCopy
Source
= /SD/OS/JC-340_1.04.0.03.os
Destination = /System/OS/op_system.os
[COMMAND_2]
Command
= FileCopy
Source
= /SD/Manual.pdf
Destination = /sub1/Manual.pdf
Command = FileRemove
Funktion
Löschen einer Datei
Parametername
Path
Parameterwert
vollständiger Name der Datei
gültige Werte
alle gültigen Dateinamen
nicht gültige Werte
ungültiger Dateinamen
bei ungültigem Wert
Die Datei wird nicht gelöscht und der Fehler in die
Protokolldatei eingetragen
Beispiel
[COMMAND_5]
Command = FileRemove
Path
= /sub1/Manual.pdf
Command = DaFileRead
Funktion
Übertragen von Registerwerten und Merkerzuständen
von einer Datendatei zum JVM-407
Parametername
DaFile
Parameterwert
vollständiger Name der Datendatei
gültige Werte
alle gültigen Dateinamen für Datendateien
nicht gültige Werte


ungültiger Dateinamen
nicht vorhandene Datendatei
bei ungültigem Wert
Die Daten werden nicht an das Gerät JVM-407 übertragen und der Fehler in die Protokolldatei eingetragen
Beispiel
[COMMAND_12]
Command
= DaFileRead
DaFile
= /SD/Data/MyTestData.da
Command = DaFileWrite
Funktion
320
Abspeichern von Registerwerten und Merkerzuständen
in einer Datendatei
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
Parametername 1
DaFile
Parameterwert 1
vollständiger Name der Datei
gültige Werte




nicht gültige Werte
das Zielverzeichnis ist vorhanden
ungültiger Dateinamen
nicht vorhandenes Zielverzeichnis
bei ungültigem Wert
Die Datei wird nicht angelegt und der Fehler in die
Protokolldatei eingetragen
Parametername 2
Append
Parameterwert 2
legt fest, ob eine neue Datendatei erstellt oder an eine
vorhandene angefügt wird
gültige Werte

0 = gegebenenfalls bestehende Datei löschen und
neue Datei erstellen

1 = an bestehende Datei anfügen; wenn keine Datei
vorhanden ist, wird ebenfalls eine neue Datendatei
erstellt


<0
nicht gültige Werte
Jetter AG
alle gültigen Dateinamen für Datendateien
>1
bei ungültigem Wert
Die Datendatei wird neu erstellt
Parametername 3
Type
Parameterwert 3
legt fest, ob Register oder Merker abgespeichert werden sollen
gültige Werte


nicht gültige Werte
Werte ungleich "Register" oder "Flag"
bei ungültigem Wert
Die Datei wird nicht angelegt und der Fehler in die
Protokolldatei eingetragen
Parametername 4
First
Parameterwert 4
Nummer des ersten Registers / Merkers
gültige Werte
alle gültigen Nummern aus dem Speicherbereich des
jeweiligen JVM-407
nicht gültige Werte
ungültige Nummern
bei ungültigem Wert
Die Datei wird nicht angelegt und der Fehler in die
Protokolldatei eingetragen
Parametername 5
Last
Parameterwert 5
Nummer des letzten Registers / Merkers
gültige Werte
alle gültigen Nummern aus dem Speicherbereich des
jeweiligen JVM-407, die größer oder gleich sind als der
Wert bei 'First'
nicht gültige Werte


bei ungültigem Wert
Es wird nur ein Wert (First) abgespeichert
Register
Flag
ungültige Nummern
Nummern kleiner als 'First'
321
12 Automatisches Kopieren von Steuerungsdaten
Beispiel
Verfügbare Kommandos
für FTP-Zugriffe
[COMMAND_11]
Command
=
DaFile
=
Append
=
Type
=
First
=
Last
=
DaFileWrite
/SD/MyTestData2.da
0
Register
1000000
1000000
[COMMAND_12]
Command
=
DaFile
=
Append
=
Type
=
First
=
Last
=
DaFileWrite
/SD/MyTestData2.da
1
Flag
10
20
[COMMAND_13]
Command
=
DaFile
=
Append
=
Type
=
First
=
Last
=
DaFileWrite
/SD/MyTestData2.da
1
Register
1000001
1000999
Die folgenden Kommandos für Zugriffe über das Netzwerk mittels FTP sind
verfügbar:
Command = FtpConnect
Funktion
Verbindung zu einem FTP-Server herstellen
Parametername 1
ServerAddr
Parameterwert 1
IP-Adresse oder Name des FTP-Servers
gültige Werte




nicht gültige Werte
Name, der über DNS auflösbar ist
nicht erreichbare IP-Adresse
nicht auflösbarer Name
Parametername 2
UserName
Parameterwert 2
User-Name für die Anmeldung am FTP-Server
Parametername 3
Password
Parameterwert 3
Passwort für die Anmeldung am FTP-Server
bei ungültigen Werten
Verbindung wird nicht hergestellt und der Fehler in die
Protokolldatei eingetragen
Beispiel
[COMMAND_1]
Command = FtpConnect
ServerAddr = 192.168.123.45
UserName
= admin
Password
= admin
Bemerkung
322
erreichbare IP-Adresse
Es kann immer nur eine Verbindung zu einem
FTP-Server bestehen. Soll eine Verbindung zu einem
anderen FTP-Server hergestellt werden, so schließt das
Gerät zuvor die bestehende Verbindung.
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
Command = FtpFileRead
Funktion
Datei vom FTP-Server in das lokale Dateisystem kopieren
Parametername 1
ServerFile
Parameterwert 1
vollständiger Name der Quelldatei im FTP-Server
Parametername 2
ClientFile
Parameterwert 2
vollständiger Name der Zieldatei im lokalen Dateisystem
gültige Werte





nicht gültige Werte
alle gültigen Dateinamen
das Zielverzeichnis ist vorhanden
ungültiger Dateinamen
nicht vorhandene Quelldatei
nicht vorhandenes Zielverzeichnis
bei ungültigem Wert
Die Datei wird nicht kopiert und der Fehler in die Protokolldatei eingetragen
Beispiel
[COMMAND_8]
Command
ServerFile
ClientFile
= FtpFileRead
= /app/cantest/cantest.es3
= /SD/cantest3.es
Command = FtpFileWrite
Funktion
Datei vom lokalen Dateisystem in das des FTP-Servers
kopieren
Parametername 1
ServerFile
Parameterwert 1
vollständiger Name der Zieldatei im FTP-Server
Parametername 2
ClientFile
Parameterwert 2
vollständiger Name der Quelldatei im lokalen Dateisystem
gültige Werte





nicht gültige Werte
alle gültigen Dateinamen
das Zielverzeichnis ist vorhanden
ungültiger Dateinamen
nicht vorhandene Quelldatei
nicht vorhandenes Zielverzeichnis
bei ungültigem Wert
Die Datei wird nicht kopiert und der Fehler in die Protokolldatei eingetragen
Beispiel
[COMMAND_5]
Command
= FtpFileWrite
ServerFile = /System/OS/op_system.os
ClientFile = /SD/OS/JC-340_1.09.0.00.os
Command = FtpFileRemove
Jetter AG
Funktion
Löschen einer Datei im FTP-Server
Parametername
ServerFile
Parameterwert
vollständiger Name der Datei
gültige Werte
alle gültigen Dateinamen
nicht gültige Werte
ungültiger Dateinamen
bei ungültigem Wert
Die Datei wird nicht gelöscht und der Fehler in die
Protokolldatei eingetragen
323
12 Automatisches Kopieren von Steuerungsdaten
Beispiel
[COMMAND_9]
Command
= FtpFileRemove
ServerFile = /sub1/Manual.pdf
Command = FtpDirChange
Funktion
Arbeitsverzeichnis im FTP-Server wechseln
Parametername
ServerDir
Parameterwert
vollständiger Name des Verzeichnisses
gültige Werte
alle gültigen Verzeichnisnamen
nicht gültige Werte
ungültiger Verzeichnisnamen
bei ungültigem Wert
Wird das Verzeichnis nicht gewechselt und der Fehler
in die Protokolldatei eingetragen
Beispiel
[COMMAND_12]
Command
= FtpDirChange
ServerDir
= /Data/MyTestData
Commando = FtpDirCreate
Funktion
Anlegen eines Unterverzeichnisses im FTP-Server
Parametername
ServerDir
Parameterwert
vollständiger Name des Verzeichnisses
gültige Werte





nicht gültige Werte
alle gültigen Verzeichnisnamen
übergeordnete Verzeichnisse sind vorhanden
ungültiger Verzeichnisnamen
nicht vorhandenes übergeordnetes Verzeichnis
Name eines bereits vorhandenen Verzeichnisses
bei ungültigem Wert
Wird das Verzeichnis nicht angelegt und der Fehler in
die Protokolldatei eingetragen
Beispiel
[COMMAND_6]
Command
= FtpDirCreate
ServerDir
= /Data/MyTestData
Einschränkung
Wird als Funktionsparameter ein Verzeichnis mit Pfad
angegeben, müssen alle Verzeichnisse bis zu dem zu
Erstellenden vorhanden sein. Ein rekursives Anlegen
von mehreren Verzeichnissen wird nicht unterstützt.
Commando = FtpDirRemove
Funktion
Löschen eines Unterverzeichnisses im FTP-Server
Parametername
ServerDir
Parameterwert
vollständiger Name des Verzeichnisses
gültige Werte




nicht gültige Werte
324
alle gültigen Verzeichnisnamen
das Verzeichnis ist leer
ungültiger Verzeichnisnamen
Verzeichnis ist nicht leer
bei ungültigem Wert
Wird das Verzeichnis nicht gelöscht und der Fehler in
die Protokolldatei eingetragen
Beispiel
[COMMAND_8]
Command
= FtpDirRemove
ServerDir
= /Data/MyTestData
Jetter AG
JVM-407
Jetter AG
Automatisches Kopieren von Steuerungsdaten
325
12 Automatisches Kopieren von Steuerungsdaten
Beispiel für eine Kommandodatei
Aufgabe
Bei einem eingebauten JVM-407 soll eine Funktionserweiterung durchgeführt
werden. Hierfür müssen folgende Änderungen gemacht werden:
 Betriebssystem-Update
 neues Anwenderprogramm
 neue Werte für einige Register
Lösung
Die benötigten Dateien werden auf eine SD-Karte kopiert und eine Kommandodatei für die AutoCopy-Funktion erstellt. Diese SD-Karte wird mit einer
kurzen Bedienungsanleitung zum Kunden geschickt, der sie nach dem Update
wieder zurückschickt.
Inhalt der SD-Karte
Die SD-Karte enthält folgende Dateien:




Die Datei autocopy.ini
Das neue Betriebssystem
Eine .da-Datei für die neuen Werte der Register
Eine start.ini und eine .es3-Datei für das neue Anwenderprogramm
Nach der Ausführung ist zusätzlich die Protokolldatei 'autocopy.log' vorhanden.
Kommandodatei
[OPTIONS]
CommandCount = 6
LogFile
= /SD/autocopy.log
LogAppend
= 0
# update operating system of JVM-407
[COMMAND_1]
Command
= FileCopy
Source
= /SD/OS/JVM4xx_1.15.1.00.os
Destination = /System/OS/op_system.os
# create user program directories
# probably already present - but to be sure ...
[COMMAND_2]
Command
= DirCreate
Path
= /app
ErrorAsWarning = 1
[COMMAND_3]
Command
= DirCreate
Path
= /app/userprogtest
# copy user program start file
[COMMAND_4]
Command
= FileCopy
326
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
Source
= /SD/UserProgs/start.ini
Destination = /app/start.ini
# copy user
[COMMAND_5]
Command
Source
Destination
program
= FileCopy
= /SD/UserProgs/userprogtest.es3
= /app/userprogtest/userprogtest.es3
# set registers and flags
[COMMAND_6]
Command
= DaFileRead
DaFile
= /SD/UserData/MyTestData.da
Jetter AG
327
12 Automatisches Kopieren von Steuerungsdaten
12.3 Protokolldatei
Einleitung
Dieses Kapitel beschreibt Aufbau und Inhalt der Protokolldatei, in welcher das
Ergebnis der jeweiligen Kommandos mitgeschrieben wird.
Inhalt
Thema
Seite
Dateiinhalt ................................................................................................... 329
328
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
Dateiinhalt
Einleitung
Die Protokolldatei ist eine Textdatei. In der Kommandodatei wird festgelegt, ob
eine Protokolldatei angelegt werden soll. Und ob diese jeweils neu angelegt
wird oder die Einträge an eine bestehende Protokolldatei angehängt werden.
Beispiel
JetControl AutoCopy log file 07.11.2008 09:14:09
1: Ok
- FileCopy
2: Warning 3: Ok
4: Ok
5: Ok
-
6: Error
-
/SD/OS/JC-340_1.04.0.00.os
/System/OS/op_system.os (345740 byte)
DirCreate /app
DirCreate /app/userprogtest
FileCopy
/SD/UserProgs/start.ini
/app/start.ini (63 byte)
FileCopy
/SD/UserProgs/userprogtest.es3
/app/userprogtest/userprogtest.es3
(169 byte)
DaFileRead /SD/UserData/MyTestData.da
Command statistics:
Total : 7
Ok
: 5
Warning: 1
Error : 1
Beschreibung
Die Protokolldatei besteht - beim Anfügen an eine bestehende Protokolldatei
für jede Ausführung der AutoCopy-Funktion - aus drei Elementen:
 Die Kopfzeile enthält Datum und Uhrzeit.
 Der anschließende Block gibt Auskunft über die ausgeführten Kommandos.
 Abschließend wird eine kurze Statistik über die Kommandobearbeitung
angezeigt.
Im obigen Beispiel wird beim Versuch, das Verzeichnis "/app" anzulegen, ein
Fehler erzeugt (der als Warnung eingetragen wird), da das Verzeichnis bereits
vorhanden ist. Beim Lesen der DA-Datei tritt ebenfalls ein Fehler auf, der als
solcher in die Protokolldatei geschrieben wird.
Jetter AG
329
12 Automatisches Kopieren von Steuerungsdaten
12.4 Datendateien
Einleitung
Dieses Kapitel beschreibt die Datendateien, in denen die Werte von Registern
und Merkern abgelegt werden.
Inhalt
Thema
Seite
Dateiformat ................................................................................................. 331
330
Jetter AG
JVM-407
Automatisches Kopieren von Steuerungsdaten
Dateiformat
Format
Die Datei ist folgendermaßen aufgebaut:
 reine Textdatei
 jeder Eintrag muss in einer eigenen Zeile stehen
 jede Zeile muss mit Wagenrücklauf / Zeilenvorschub (carriage return / line
feed) abgeschlossen sein
Kommentarzeilen werden mit einem Semikolon (;) eingeleitet

 als erster Eintrag in der Datei muss als Kennung "SD1001" stehen
Datenzeilen
Eine Datenzeile besteht aus den folgenden Teilen:
 Variablenkennung am Beginn der Zeile
 durch Leerzeichen oder Tabulator getrennt folgt die Variablennummer
 durch Leerzeichen oder Tabulator getrennt folgt der Variablenwert
Variablenkennung
Beispiel
Jetter AG
Variablentyp
FS
Merker
RS
Ganzzahlregister
QS
Fließkommazahlregister
SD1001
; Data File - Jetter AG
;
; Register 1000000 ... 1000005
RS
1000000
12345
RS
1000001
2
RS
1000002
-1062729008
RS
1000003
502
RS
1000004
50
RS
1000005
3
QS
1009000
3.14
;
; Flag 10 ... 13
FS
10
0
FS
11
1
FS
12
1
FS
13
0
331
JVM-407
Betriebssystem-Update
13 Betriebssystem-Update
Einleitung
Die Betriebssysteme der Bediengeräte der Jetter AG werden laufend weiterentwickelt. Dabei werden neue Funktionen hinzugefügt, bestehende Funktionen erweitert und Fehler beseitigt.
Dieses Kapitel beschreibt wie ein Betriebssystem-Update durchgeführt wird.
Download eines
Betriebssystems
Die Jetter AG stellt die Betriebssysteme auf ihrer Homepage
http://www.jetter.de zur Verfügung. Sie erreichen die Betriebssystem-Dateien
über den Link "Betriebssystem-Download" der "Quicklinks" auf den Seiten der
jeweiligen Bediengeräte.
Inhalt
Thema
Seite
Update des Betriebssystems des Bediengeräts ......................................... 334
Jetter AG
333
13 Betriebssystem-Update
13.1 Update des Betriebssystems des Bediengeräts
Einleitung
Dieses Kapitel beschreibt wie der Update des Betriebssystems eines
JVM-407 durchgeführt wird. Es gibt hierbei mehrere Möglichkeiten, die Betriebssystem-Datei an das Gerät zu übertragen:





mit dem Programmier-Tool JetSym
über eine FTP-Verbindung
von der SD-Karte
vom einem USB-Stick
aus dem Anwenderprogramm
Inhalt
Thema
Seite
Betriebssystem-Update mit JetSym ............................................................ 335
Betriebssystem-Update über FTP .............................................................. 336
Automatisches Betriebssystem-Update von SD-Karte und USB-Stick ....... 337
Betriebssystem-Update aus dem Anwenderprogramm .............................. 338
334
Jetter AG
JVM-407
Betriebssystem-Update
Betriebssystem-Update mit JetSym
Einleitung
Mit Hilfe des Programmier-Tools JetSym ist es auf komfortable Weise möglich,
eine Betriebssystem-Datei an das Gerät JVM-407 zu übertragen.
Voraussetzungen
 Eine Betriebssystem-Datei für das Gerät JVM-407 ist vorhanden.
 Eine UDP/IP- und eine TCP/IP-Verbindung vom Programmier-Tool zum
IP-Port des JVM-407, dessen Nummer im Konfigurations-Speicher als
IP-Basisportnummer für die JetIP-Kommunikation eingestellt ist, ist möglich.
 Das Gerät wartet im Bootloader auf den Betriebssystem-Update oder das
Betriebssystem läuft.
 Stellen Sie sicher, dass während des Betriebssystem-Updates das Gerät
nicht ausgeschaltet wird.
Betriebssystem updaten
So führen Sie einen Betriebssystem-Update durch:
Schritt
Jetter AG
Vorgehen
1
Wählen Sie in JetSym im Menü "Build" den Punkt "Betriebssystem-Update..." aus, oder klicken Sie im Konfigurations-Fenster des
Hardware-Managers auf "OS-Update".
Ergebnis: Es öffnet sich ein Dateiauswahl-Fenster.
2
Wählen Sie die gewünschte Betriebssystem-Datei aus.
Ergebnis: JetSym öffnet ein Bestätigungs-Fenster.
3
Starten Sie die Übertragung der Betriebssystem-Datei durch klicken auf
den "Ja"-Button.
4
Warten Sie bis der Update beendet ist.
5
Booten Sie das Gerät neu, um das eingespielte Betriebssystem zu starten.
335
13 Betriebssystem-Update
Betriebssystem-Update über FTP
Einleitung
Mit Hilfe eines FTP-Clients ist es möglich, eine Betriebssystem-Datei an das
Gerät JVM-407 zu übertragen.
Voraussetzungen
 Eine Betriebssystem-Datei für das Gerät JVM-407 ist vorhanden.
 Eine FTP-Verbindung zum Gerät ist möglich.
 Die Login-Parameter für einen User mit Administrator- oder


Betriebssystem updaten
System-Rechten sind vorhanden.
Das Betriebssystem des JVM-407 läuft.
Stellen Sie sicher, dass während des Betriebssystem-Updates das Gerät
nicht ausgeschaltet wird.
So führen Sie ein Betriebssystem-Update durch:
Schritt
336
Vorgehen
1
Öffnen Sie eine FTP-Verbindung zum JVM-407.
2
Loggen Sie sich mit Administrator- oder System-Rechten ein.
3
Wechseln Sie in das Verzeichnis "/System/OS".
4
Übertragen Sie die Betriebssystem-Datei.
5
Warten Sie bis die Übertragung vollständig abgeschlossen ist.
6
Schließen Sie die FTP-Verbindung.
7
Booten Sie das Gerät JVM-407 neu, um das eingespielte Betriebssystem
zu starten.
Jetter AG
JVM-407
Betriebssystem-Update
Automatisches Betriebssystem-Update von SD-Karte und USB-Stick
Verweis
Jetter AG
Ein automatischer Update des Betriebssystems des Bediengeräts von der
SD-Karte oder einem USB-Stick lässt sich über die AutoCopy-Funktion ausführen. Eine ausführliche Beschreibung finden Sie in AutoCopy auf Seite 310.
337
13 Betriebssystem-Update
Betriebssystem-Update aus dem Anwenderprogramm
Einleitung
Die Dateifunktionen im STX-Sprachumfang machen es möglich einen Betriebssystem-Update des JVM-407 aus einer Betriebssystem-Datei programmgesteuert durchzuführen.
Voraussetzungen
 Eine Betriebssystem-Datei befindet sich im Dateisystem des JVM-407
 Das Betriebssystem des JVM-407 und das Anwenderprogramm laufen.
 Stellen Sie sicher, dass während des Betriebssystem-Updates das Gerät
nicht ausgeschaltet wird.
Betriebssystem updaten
Führen Sie folgende Schritte aus, um ein Betriebssystem-Update aus dem
Anwenderprogramm durchzuführen:
Schritt
Beispielprogramm
Vorgehen
1
Öffnen Sie die Betriebssystem-Datei im Lesemodus.
2
Öffnen Sie eine Datei mit beliebigem Namen und der Dateierweiterung
'.os' im Verzeichnis "/System/OS" im Schreibmodus.
3
Lesen Sie die Daten aus der Betriebssystem-Datei.
4
Schreiben Sie die gelesenen Daten in die Zieldatei.
5
Schließen Sie beide Dateien.
6
Booten Sie das Gerät neu, um das eingespielte Betriebssystem zu starten
(z. B. durch Beschreiben des Systemkommandoregisters).
Var
SourceName:
DestinationName:
UpdateIt:
End_Var;
String[100];
String[100];
Bool;
//*****************************************************
// Name:
FileCopy
// param[in] SrcName
name of source file
// param[in] DstName
name of destination file
// return
>= 0
size of source file
// return
< 0
error
// brief
copies a file
//*****************************************************
Function FileCopy(Ref SrcName: String,
Ref DstName: String):Int;
Var
SrcFile, DstFile:
File;
FileBuffer:
Array[1000] Of Byte;
Result:
Int;
ReadSize:
Int;
WriteSize:
Int;
FileSize:
Int;
End_Var;
338
Jetter AG
JVM-407
Betriebssystem-Update
Result := 0;
FileSize := 0;
// open source file for reading
If FileOpen(SrcFile, SrcName, 'r') Then
// open destination file for writing
If FileOpen(DstFile, DstName, 'w') Then
// read first block of data
ReadSize := FileRead(SrcFile,
FileBuffer,
SizeOf(FileBuffer));
While ReadSize <> 0 Do
// write read data to destination file
WriteSize := FileWrite(DstFile,
FileBuffer,
ReadSize);
If WriteSize <> ReadSize Then
// write error
Result := -3;
Exit;
End_If;
Inc(FileSize, WriteSize);
// read next block of data
ReadSize := FileRead(SrcFile,
FileBuffer,
SizeOf(FileBuffer));
End_While;
// close both files
FileClose(SrcFile);
FileClose(DstFile);
Else
// can't open destination file
FileClose(SrcFile);
Result := -2;
End_If;
Else
// can't open source file
Result := -1;
End_If;
If Result < 0 Then
FileCopy := Result;
Else
FileCopy := FileSize;
End_If;
End_Function;
//****************************************************
// 1. Enable Tracing in JetSym
// 2. Put source file name into 'SourceName'
// 3. Set flag 'UpdateIt'
//****************************************************
Jetter AG
339
13 Betriebssystem-Update
Task OSupdate Autorun
Var
ResCopy:
Int;
End_Var;
DestinationName := '/System/OS/OperatingSystem.os';
Loop
UpdateIt := False;
When UpdateIt Continue;
ResCopy := FileCopy(SourceName,
DestinationName);
Trace('Result : ' + IntToStr(ResCopy) + '$n');
End_Loop;
End_Task;
340
Jetter AG
JVM-407
Anwenderprogramm
14 Anwenderprogramm
Einleitung
Dieses Kapitel erläutert, wie das Anwenderprogramm im JVM-407 abgelegt
wird und wie der Anwender festlegen kann, welches Programm ausgeführt
werden soll.
Voraussetzungen an den
Programmierer
Dieses Kapitel setzt Kenntnisse über das Erzeugen und Übertragen von Anwenderprogrammen in JetSym und über das Dateisystem des JVM-407 voraus.
Inhalt
Thema
Seite
Anwenderprogramm laden ......................................................................... 342
Standardablage des Anwenderprogramms ................................................ 343
Anwenderprogramm auf der SD-Karte ablegen ......................................... 344
Jetter AG
341
14 Anwenderprogramm
Anwenderprogramm laden
Einleitung
Beim Neustart des Anwenderprogramms über JetSym oder nach dem Booten
des JVM-407 wird das Anwenderprogramm über das Dateisystem geladen
und ausgeführt.
Der Ladevorgang
So wird das Anwenderprogramm vom Betriebssystem des JVM-407 geladen.
Stufe
342
Beschreibung
1
Das Betriebssystem liest die Datei "/app/start.ini" von der internen
Flash-Disk.
2
Das Betriebssystem liest den Pfad zum Anwenderprogramm aus dem
Eintrag "Project".
3
Das Betriebssystem liest den Programmnamen aus dem Eintrag "Program" relativ zum Verzeichnis "/app".
4
Das Betriebssystem lädt das Anwenderprogramm aus der Datei <Project>/<Program>.
Jetter AG
JVM-407
Anwenderprogramm
Standardablage des Anwenderprogramms
Einleitung
Beim Download des Anwenderprogramms von JetSym auf das Gerät
JVM-407 wird dieses als Datei auf der internen Flash-Disk abgelegt und Pfadund Dateiname in der Datei "/app/start.ini" eingetragen.
Pfad- und Dateiname
Standardmäßig legt JetSym im Verzeichnis "/app" ein Unterverzeichnis mit
dem Projektnamen an und speichert dort das Anwenderprogramm mit der
Dateierweiterung ".es3" ab. Pfad- und Dateinamen werden dabei immer in
Kleinbuchstaben konvertiert.
Die Datei "/app/start.ini"
Die Datei ist eine reine Textdatei mit einer Sektion mit zwei Einträgen:
Element
Beschreibung
[Startup]
Sektionsname
Project
Pfad zur Anwenderprogrammdatei relativ zu "/app"
Program
Name der Anwenderprogrammdatei
Beispiel:
[Startup]
Project = test_program
Program = test_program.es3
Ergebnis: Das Anwenderprogramm wird aus der Datei
"/app/test_program/test_program.es3" geladen.
Verwandte Topics
 Ablage des Anwenderprogramms auf der SD-Karte auf Seite 344
Jetter AG
343
14 Anwenderprogramm
Anwenderprogramm auf der SD-Karte ablegen
Einleitung
Beim Download des Anwenderprogramms von JetSym auf das Gerät
JVM-407 wird die Standardablage des Anwenderprogramms verwendet. Soll
das Anwenderprogramm von der SD-Karte oder einem USB-Stick gelesen
werden, so muss dies durch den Anwender konfiguriert werden.
Gehen Sie analog hierzu vor, wenn Sie das Anwenderprogramm in einem
anderen Verzeichnis der internen Flash-Disk ablegen möchten.
Voraussetzungen
Da das Dateisystem des JVM-407 Groß-/Kleinschreibung unterscheidet,
achten Sie darauf, dass sowohl Pfad- und Dateinamen als auch die Dateieinträge korrekt geschrieben sind.
Anwenderprogramms
auf der SD-Karte oder
dem USB-Stick ablegen
So konfigurieren Sie das Gerät JVM-407, wenn das Anwenderprogramm auf
der SD-Karte abgelegt werden soll:
Schritt
Vorgehen
1
Legen Sie das gewünschte Verzeichnis auf der SD-Karte oder dem
USB-Stick an.
2
Legen Sie die von JetSym erzeugte Anwenderprogrammdatei in diesem
Verzeichnis ab.
3
Tragen Sie den Pfad zur Anwenderprogrammdatei und den Programmnamen in die Datei "/app/start.ini" auf der internen Flash-Disk der Steuerung ein.
Ergebnis: Beim Neustart des Anwenderprogramms wird dieses von der
SD-Karte oder dem USB-Stick geladen.
Die Datei "/app/start.ini"
Die Datei ist eine reine Textdatei mit einer Sektion mit zwei Einträgen:
Teil
Funktion
[Startup]
Sektionsname
Project
Pfad zur Anwenderprogrammdatei relativ zu "/app"
Program
Name der Anwenderprogrammdatei
Beispiel für SD-Karte:
[Startup]
Project = /SD/TestProgram
Program = Test1.es3
Beispiel für USB-Stick:
[Startup]
Project = /USB/TestProgram
Program = Test1.es3
344
Jetter AG
JVM-407
Anwenderprogramm
Ergebnis:
Das Anwenderprogramm wird aus der Datei "Test1.es3" im Verzeichnis "TestProgram" auf der SD-Karte ("/SD/TestProgram/Test1.es3") und dem
USB-Stick ("/USB/TestProgram/Test1.es3") geladen.
Verwandte Themen:
 Standardablage des Anwenderprogramms auf Seite 343
Jetter AG
345
JVM-407
Kurz-Referenz JVM-407
15 Kurz-Referenz
JVM-407
101233 …
101251
101264
101265
Hostname (Registerstring)
Portnummer JetIP
Portnummer STX Debugger
Echtzeituhr
Direktzugriff
Betriebssystem-Version
Diese Kurz-Referenz beschreibt in stark zusammengefasster Form die
Register und Merker der Bediengeräte JVM-407, BTM 07, BTM 09,
BTM 09V und BTM 012 in der Betriebssystem-Version 1.17.1.00.
Allgemeine Registerübersicht
100000 ... 100999
101000 … 101999
102000 … 102999
Electronic Data Sheet (EDS)
Konfiguration
Echtzeituhr
104000 ... 104999
106000 ... 106999
107000 ... 107999
108000 ... 108999
Ethernet
CAN
SD-Karte
CPU/Backplane
200000 ... 209999
210000 ... 219999
230000 ... 239999
260000 ... 269999
270000 ... 279999
290000 ... 299999
310000 ... 319999
350000 ... 359999
Allg. Systemregister
Anwenderprogramm
JetIP-Vernetzung
Remote Scan
Modbus/TCP
E-Mail
Filesystem / Datendateien
freiprogrammierbare IP-Schnittstelle
360000 ... 369999
Display
1000000 ... 1059999
JC-360: Anwenderregister (remanent;
Int/Float)
Allgemeine E/A-Übersicht
Eingabetasten
361000 ... 361007
LED
362000 ... 362006
E/A
362100
362200
Bitcodiertes Abbild der Eingabetasten
Bitcodiertes Abbild der LEDs
Bitcodiertes Abbild der Status-LEDs
Bitcodiertes Abbild des Relais
Allgemeine Merkerübersicht
0 ... 255
256 ... 2047
2048 ... 2303
Anwendermerker (remanent)
überlagert mit Reg. 1000000 bis 1000055
Spezialmerker
102911
102912
102913
102914
102915
102916
102917
Sekunden
Minuten
Stunden
Wochentag (0 = Sonntag)
Tag
Monat
Jahr
Pufferzugriff
102921
102922
102923
102924
102925
102926
102927
Sekunden
Minuten
Stunden
Wochentag (0 = Sonntag)
Tag
Monat
Jahr
102928
Lese/Schreibtrigger
Ethernet
IP
104531
104532
104533
CAN
106000
106001
106100
106101
106200
106201
107000
107001
107002
107003
108015
109000
101100
101101
101102
101103
101132
101133 ...
101151
101164
101165
IP-Adresse
Subnetzmaske
Default Gateway
DNS-Server
Hostname Suffix-Typ
Hostname (Registerstring)
107001
101200
101201
101202
101203
101232
IP-Adresse
Subnetzmaske
Default Gateway
DNS-Server
Hostname Suffix-Typ
Jetter AG
Backup-Spannung (z. B. der Uhr)
0 = Daten ungültig
1 = Versorgung ok
Das Register kann durch das Beschreiben mit 1 quittiert
werden, falls Versorgung wiederhergestellt wurde.
USB-Datenträger
Aus Datei /System/config.ini
Portnummer JetIP
Portnummer STX Debugger
Vom System verwendet
Bit 0 = 1: Karte vorhanden
Bit 1 = 1: Karte bereit
1 = Karte schreibgeschützt
(nur gültig wenn Reg. 107000 = 3)
Größe in MByte
Baudrate in MBaud
CPU-Hardware
MAC-Adresse (Jetter)
MAC-Adresse (Gerät)
Konfiguration
Baudrate CAN 0
Node-ID CAN 0
Baudrate CAN 1
Node-ID CAN 1
Baudrate CAN 2
Node-ID CAN 2
SD-Karte
MAC-Adresse
100801
100802
aktuelle IP-Adresse (rw)
aktuelle Subnetzmaske (rw)
aktuelles Default Gateway (rw)
107002
Bit 0 = 1: Datenträger vorhanden
Bit 1 = 1: Datenträger bereit
1 = Datenträger schreibgeschützt
(nur gültig wenn Reg. 109000 = 3)
Größe in MByte
CPU
108002
108004
108015
alle LED ein/aus (bitcodiert)
Bit 1: LED E
LED E
0 = aus
3 = ein
Applikationsstatus
2 = RUN
3 = STOP
347
15 Kurz-Referenz JVM-407
Allgemeine Systemregister
210008
210009
210011
210050
Maximale Programmzykluszeit
Aktuelle Programmzykluszeit
Aktuelle Task-Nummer
Aktuelle Programmstelle innerhalb einer Ausführungseinheit
ID der gerade bearbeiteten Ausführungseinheit
Gewünschte Gesamtzykluszeit in µs
Errechnete Gesamtzykluszeit in µs
Maximale Zeitscheibe pro Task in µs
Task-ID (für Reg. 210061)
Task-Priorität für Task [Reg.210060]
Länge der Scheduler-Tabelle
Index in Scheduler-Tabelle
Task-ID in Scheduler-Tabelle
Task-ID (für Reg. 210071)
Timer-Nummer (0 ... 31)
Manuelles Auslösen eines Timer-Events (bitcodiert)
Ende zyklischer Task (Task-ID)
Kommando für zyklische Tasks
Anzahl Timer
Timer-Nummer (für Reg. 210077)
Timer-Wert in Millisekunden
200000
200001
200008
OS-Version (Major * 100 + Minor)
Anwenderprogramm läuft (Bit 0 = 1)
Fehlerregister (identisch zu 210004)
200168
200169
Bootloader-Version (IP-Format)
OS-Version (IP-Format)
201000
201001
201002
Laufzeitregister in Millisekunden (rw)
Laufzeitregister in Sekunden (rw)
Laufzeitregister in Reg. 201003
Einheiten (rw)
201003
* 10 ms Einheiten für Reg. 201002 (rw)
201004
Laufzeitregister in Millisekunden (ro)
202930
202960
202961
Web-Status (bitcodiert)
Bit 0 = 1:
FTP-Server verfügbar
Bit 1 = 1:
HTTP-Server verfügbar
Bit 2 = 1:
E-Mail verfügbar
Bit 3 = 1:
Datendateifunktion verfügbar
Bit 4 = 1:
Modbus/TCP lizenziert
Bit 5 = 1:
Modbus/TCP verfügbar
Bit 6 = 1:
Ethernet/IP verfügbar
Steuerregister Dateisystem
0xc4697a4b: Formatieren der Flash-Disk
0xd364e64d: Formatieren der SD-Karte
0x2c9b3c94: Prüfen der SD-Karte
0x8f3d5185: Formatieren des USB-Datenträgers
0x17dbd42a: Prüfen des USB-Datenträgers
Passwort für Systemkommandoregister (0x424f6f74)
Systemkommandoregister
202980
202981
202982
Fehlerhistorie: Anzahl Einträge
Fehlerhistorie: Index
Fehlerhistorie: Eintrag
203000
203001
203005
Schnittstellenüberwachung: JetIP
Schnittstellenüberwachung: SER
Schnittstellenüberwachung: Debug-Server
230000
230001
230002
JetIP/TCP-Server: Anzahl offener Verbindungen
JetIP/TCP-Server:Modus
JetIP/TCP-Server:Zeit
203100 ...
203107
203108 ...
203123
203124 ...
203131
203132 ...
203147
32-Bit-Überlagerung Flag 0 ... 255
232708
232709
232710
232711
209700
209701 ...
209739
Systemlogger: globale Freigabe
Freigabe Systemkomponenten
Timeout in Millisekunden
Reaktionszeit in Millisekunden
Anzahl Netzwerkfehler
Fehlercode des letzten Zugriffs
0 = kein Fehler
1 = Timeout
3 = Fehlermeldung von Gegenstation
5 = ungültige Netzwerkadresse
6 = ungültige Anzahl Register
7 = ungültige Schnittstellennummer
Maximale Anzahl Wiederholungen
Anzahl Wiederholungen
202936
16-Bit-Überlagerung Flag 0 ... 255
32-Bit-Überlagerung Flag 2048 ... 2303
210006
210007
348
210100 ...
210199
Task-Zustand
210400 ...
210499
Task-Programmadresse
210600
210601
210609
Task-ID eines zyklischen Tasks (für Reg. 210601)
Bearbeitungszeit eines zyklischen Task in Promille
Tasklock Timeout in ms
-1:
Überwachung abgeschaltet
210610
Zeitüberschreitung (bitcodiert,
Bit 0 -> Timer 0 usw.)
JetIP-Vernetzung
16-Bit-Überlagerung Flag 2048 ... 2303
Anwenderprogramm
210000
210001
210004
210051
210056
210057
210058
210060
210061
210063
210064
210065
210070
210071
210072
210073
210074
210075
210076
210077
Anwenderprogramm läuft (Bit 0 = 1)
JetVM-Version
Fehlerregister (bitcodiert)
Bit 1: Fehler JX3-Bus
Bit 2: Fehler JX2-Bus
Bit 8: ungültiger Sprung
Bit 9: ungültiger Call
Bit 10: ungültiger Index
Bit 11: ungültiger Opcode
Bit 12: Division durch Null
Bit 13: Stack-Überlauf
Bit 14: Stack-Unterlauf
Bit 15: Stack ungültig
Bit 16: Fehler beim Laden des Anwenderprogramms
Bit 24: Zykluszeitüberschreitung
Bit 25: Tasklock Timeout
Bit 31: unbekannter Fehler
Höchste Task-Nummer
Minimale Programmzykluszeit
232717
232718
Modbus/TCP
272702
272704
272705
278000 ...
278999
Registeroffset
Eingangsoffset
Ausgangsoffset
16-Bit-I/O-Register überlagert mit virtuellen I/O 20001 bis
36000
E-Mail
292932
292933
292934
292935
292937
292938
IP-Adresse des SMTP-Servers
IP-Adresse des POP3-Servers
Portnummer des SMTP-Servers
Portnummer des POP3-Servers
Status der E-Mail-Bearbeitung
E-Mail Task-ID
Filesystem / Datendateifunktion
312977
312978
Status der Dateioperation
Task-ID
Jetter AG
JVM-407
Kurz-Referenz JVM-407
364203
Freiprogrammierbare IP-Schnittstelle
350000
350001
350002
350003
350004
350005
350006
350007
Auslesen der IP-PRIM-Verbindungsliste
364204
Letztes Ergebnis (-1 = keine Verbindung angewählt)
1 = Client; 2 = Server
1 = UDP; 2 = TCP
IP-Adresse
Portnummer
Zustand der Verbindung
Anzahl gesendet Bytes
Anzahl empfangener Bytes
364210
364211
364212
Video Input Brightness (Helligkeit)
Video Input Contrast (Kontrast)
Video Input Saturation (Sättigung)
364220
Video Output ID (Rectangle ID in IOP)
364230
364231
364232
364233
Video Input Quelle X
Video Input Quelle Y
Video Input Quelle Breite
Video Input Quelle Höhe
Anwenderregister
1000000 ...
1005999
32-Bit-Ganzzahl (remanent)
CAN-PRIM-Register
200010500
200010501
200010502
200010503
200010504
200010506
Statusregister CAN-PRIM
Kommandoregister CAN-PRIM
Nummer der Nachrichten-Box
FIFO-Füllstand
FIFO-Daten
Globale Empfangsmaske
200010507
200010510
200010511
200010512
200010513
200010514
...
200010521
Globale Empfangs-ID
Box-Statusregister
Box-Konfigurationsregister
CAN-ID
Anzahl Datenbytes
Datenbytes
Display
Funktionstasten
361000 ...
Bitcodiertes Abbild der Funktionstasten
361007
z. B. Bit 0: 1 = Taste 1 gedrückt
Zündung (IGN)
361100
Bit 0:
0 = Zündung eingeschaltet
1 = Zündung ausgeschaltet
Tasten-LED
362000 ...
362006
Bitcodiertes Abbild des LEDs
z. B. Bit 0: 1 = LED-Taste 1 ein
E/A (IN1 ... IN15 und OUT)
362100
Bitcodiertes Abbild der Status-LEDs
z. B. Bit 0: 1 = IN1 ein
362200
Bitcodiertes Abbild des Ausgangs
z. B. Bit 0: 1 = OUT ein
Digipot
363000
363001
363002
363003
Aktueller Zählwert
Bestätigungs-Taste Digipot
Minimaler Zählwert
Maximaler Zählwert
Display
364000
364001
364003
Hintergrundbeleuchtung
Tastennachtbeleuchtung
Helligkeitssensor
Visualisierung
365000 ...
365029
365050 ...
365079
365100
365200
365201
365202
365203
365210 ...
365240
365260 ...
365289
Systemstatus
367000
367010
Name der IOP-Datei
Name der Sprache
Sprachumschaltung nach ID
Anzahl der verfügbaren Sprachen
Aktuelle Auswahl für die Info-Register
Info-Register Default ID = 1
Info-Register Größe der IOP-Datei
Info-Register Dateiname der IOP-Datei
Info-Register Name der Sprache
HAL-Name
Backup-Batterie / Akku voll (> 2 V)
Netzwerk-Spezialmerker
2075
Fehler bei JetIP-Vernetzung
Spezialmerker Schnittstellenüberwachung
2088
2089
2090
2091
2098
2099
OS-Flag JetIP
User-Flag JetIP
OS-Flag SER
User-Flag SER
OS-Flag Debug-Server
User-Flag Debug-Server
32 zusammengefasste Merker
203100
203101
203102
203103
203104
203105
203106
203107
0 ... 31
32 ... 63
64 ... 95
96 ... 127
128 ... 159
160 ... 191
192 ... 223
224 ... 255
16 zusammengefasste Merker
Video
wird per Default auf Objekt 14000 (Rectangle) angezeigt
364200
Video Input (Eingang)
364201
Video Input External Mux (nur BTM 07)
364202
Video Type (Typ)
1 = composite
2 = svideo
Jetter AG
Video Format (Format)
1 = PAL
2 = NTSC
Video Options (Optionen)
Bit 0: 1 = Interlaced
Bit 1: 1 = Mirror vertikal
203108
203109
203110
203111
203112
203113
203114
203115
203116
203117
203118
203119
203120
0 ... 15
16 ... 31
32 ... 47
48 ... 63
64 ... 79
80 ... 95
96 ... 111
112 ... 127
128 ... 143
144 ... 159
160 ... 175
176 ... 191
192 ... 207
349
15 Kurz-Referenz JVM-407
203121
203122
203123
208 ... 223
224 ... 239
240 ... 255
32 zusammengefasste Spezialmerker
203124
203125
203126
203127
203128
203129
203130
203131
2048 ... 2079
2080 ... 2111
2112 ... 2143
2144 ... 2175
2176 ... 2207
2208 ... 2239
2240 ... 2271
2272 ... 2303
16 zusammengefasste Spezialmerker
203132
203133
203134
203135
203136
203137
203138
203139
203140
203141
203142
203143
203144
203145
203146
203147
2048 ... 2063
2064 ... 2079
2080 ... 2095
2096 ... 2111
2112 ... 2127
2128 ... 2143
2144 ... 2159
2160 ... 2175
2176 ... 2191
2192 ... 2207
2208 ... 2223
2224 ... 2239
2240 ... 2255
2256 ... 2271
2272 ... 2287
2288 ... 2303
Anwenderregister - Merker - Überlagerung
1000000
1000001
1000002
1000003
1000004
1000005
1000006
1000007
1000008
1000009
1000010
1000011
1000012
1000013
1000014
1000015
1000016
1000017
1000018
1000019
1000020
1000021
1000022
1000023
1000024
256 ... 287
288 ... 319
320 ... 351
352 ... 383
384 ... 415
416 ... 447
448 ... 479
480 ... 511
512 ... 543
544 ... 575
576 ... 607
608 ... 639
640 ... 671
672 ... 703
704 ... 735
736 ... 767
768 ... 799
800 ... 831
832 ... 863
864 ... 895
896 ... 927
928 ... 959
960 ... 991
992 ... 1023
1024 ... 1055
1000025
1000026
1000027
1000028
1000029
1000030
1000031
1000032
1000033
1000034
1000035
1000036
1000037
1000038
1000039
1000040
1000041
1000042
1000043
1056 ... 1087
1088 ... 1119
1120 ... 1151
1152 ... 1183
1184 ... 1215
1216 ... 1247
1248 ... 1279
1280 ... 1311
1312 ... 1343
1344 ... 1375
1376 ... 1407
1408 ... 1439
1440 ... 1471
1472 ... 1503
1504 ... 1535
1536 ... 1567
1568 ... 1599
1600 ... 1631
1632 ... 1663
350
1000044
1000045
1000046
1000047
1000048
1000049
1000050
1000051
1000052
1000053
1000054
1000055
1664 ... 1695
1696 ... 1727
1728 ... 1759
1760 ... 1791
1792 ... 1823
1824 ... 1855
1856 ... 1887
1888 ... 1919
1920 ... 1951
1952 ... 1983
1984 ... 2015
2016 ... 2047
Systemfunktion
4
5
20
21
22
23
24
25
26
27
28
BCD zu HEX Konvertierung
HEX zu BCD Konvertierung
Quadratwurzel
Sinus
Cosinus
Tangens
Arcus Sinus
Arcus Cosinus
Arcus Tangens
Exponentialfunktion
natürlicher Logarithmus
29
30
Absolutwert
Trennung von Vor- und Nachkommastellen
60
61
65/67
66/68
90
91
92
96
110
150
151
152
CRC für Modbus RTU generieren
CRC für Modbus RTU überprüfen
lese Registerblock über Modbus/TCP
schreibe Registerblock über Modbus/TCP
Datendatei schreiben
Datendatei anfügen
Datendatei lesen
Datendatei löschen
E-Mail versenden
NetCopyList konfigurieren
NetCopyList löschen
NetCopyList senden
Jetter AG
JVM-407
Anhang
Anhang
Einleitung
Der Anhang enthält die elektrischen und mechanischen Daten, sowie die
Betriebsdaten.
Inhalt
Thema
Seite
Technische Daten ....................................................................................... 352
Index ........................................................................................................... 360
Jetter AG
351
Anhang
A: Technische Daten
Einleitung
Dieses Kapitel im Anhang enthält die elektrischen und mechanischen Daten
sowie die Betriebsdaten des JVM-407.
Inhalt
Thema
Seite
Technische Daten ....................................................................................... 353
Mechanische Abmessungen ....................................................................... 355
Betriebsparameter Umwelt und Mechanik .................................................. 358
Betriebsparameter EMV .............................................................................. 359
352
Jetter AG
JVM-407
Anhang
Technische Daten
Elektrische Daten:
Spannungsversorgung
Parameter
Nennspannung U BATT
DC 12 V bzw. DC 24 V
Zulässiger Spannungsbereich
9 ... 32 VDC
Eingangsstrom ohne Kamera
typ. 650 mA bei DC 12 V
Eingangsstrom ohne Kamera
typ. 320 mA bei DC 24 V
Leistungsaufnahme ohne Kamera
7,8 W
Kameraanschluss
Parameter
Beschreibung
Spannung
DC 12 V bzw.
U BATT, wenn U BATT < DC 13 V
Strom
max. 1 A
Display
Parameter
Beschreibung
Display
7 Zoll TFT LCD-Flachbildschirm
Lichtstärke
LED-Backlight (weiß) 300 cd/m
Auflösung Display
800 x 480 Pixel (WVGA)
Tasten, Digipot
Parameter
2
Beschreibung
Tasten
4 lackierte Silikontasten mit Nachtbeleuchtung
Digipot
Drehregler mit 16 Positionen und Bestätigungs-Funktion
USB-Stick
Parameter
Beschreibung
Speichergröße
bis 8 GByte
Versorgung
5 V, max. 150 mA
Kurzschlussfestigkeit
ja,
Kurzschlussstrom: ~ 1 A
Speicherausbau
Jetter AG
Beschreibung
Parameter
Beschreibung
Anzahl remanente Register
6.000
Remanenter Variablenspeicher
24.000 Byte
Flash-Disk
12,875 MByte
353
Anhang
Batterie
Technische Daten der
Echtzeituhr
354
Parameter
Beschreibung
Lebensdauer
bis zu 4 Jahre
Batterietyp
CR1225 (Lithium Knopfzelle)
Spannung
3V
Kapazität
48 mAh
Parameter
Beschreibung
Gangreserve
4 Jahre
Abweichung
max. 1 Minute pro Monat
Jetter AG
JVM-407
Anhang
Mechanische Abmessungen
Einleitung
Dieses Kapitel beschreibt die mechanischen Abmessungen des JVM-407 und
die Bedingungen für den Einbau.
Mechanische
Abmessungen
Die Abbildung zeigt die Abmessungen des JVM-407.
Zulässige Einbaulagen
Die Abbildung zeigt die zulässigen Einbaulagen.
Jetter AG
355
Anhang
Es bedeutet:
Nummer
Verbotene Einbaulagen
Zulässige Einbaulage
1
waagerecht oder geneigt
2
senkrecht oder geneigt
Die Abbildung zeigt die verbotene Einbaulage.
Das Bediengerät JVM-407 ist rückseitig nicht gegen Feuchtigkeit, insbesondere Spritz- oder Tropfwasser, geschützt. Sollte am Einbauort Feuchtigkeit
nicht auszuschließen sein, ist diese Einbauart (siehe Bild oben) nicht zulässig.
Die Ansammlung von Feuchtigkeit und Tropfwasser im Gerät kann zu Kriechströmen und Korrosion führen.
Platzbedarf für Einbau
und Service
Die Abbildung zeigt den Platzbedarf für das Bediengerät JVM-407.
Halten Sie den Raum um das Gehäuse für den Servicefall frei.
 Die Stecker müssen sich jederzeit abziehen lassen.
 Die SD-Karte muss sich jederzeit austauschen lassen.
 Die Flügelmutter der SD-Karten-Sicherung muss sich leicht lösen lassen.
356
Jetter AG
JVM-407
Anhang
Es bedeutet:
Nummer
Platzbedarf für Überhitzungsschutz
Beschreibung
1
Stecker für CANopen®, Video, Spannungsversorgung, Ein- und Ausgänge
2
Flügelmutter zur Sicherung der SD-Karte
3
Netzwerkstecker
4
SD-Karte
Die Abbildung deutet den Sicherheitsabstand für den Überhitzungsschutz an.
Beachten Sie:
 Das JVM-407 erhöht die Umgebungstemperatur durch Wärmeabstrahlung

unter Last.
Die Leistungsaufnahme beträgt 7,8 W.
Das JVM-407 arbeitet störungsfrei bei einer Umgebungstemperatur bis
+65 °C.
Bedenken Sie die Wärmeabstrahlung des Geräts insbesondere beim Einbau
in kritischer Umgebung:




Einbauort
Jetter AG
In der Nähe des Kraftstofftanks
In der Nähe der Kraftstoffleitung
In der Nähe brennbarer Fahrzeugteile
In der Nähe thermisch verformbarer Fahrzeugteile
Das JVM-407 ist in der Fahrerkabine einzubauen.
357
Anhang
Betriebsparameter Umwelt und Mechanik
Umwelt
Mechanik
358
Parameter
Wert
Norm
Betriebstemperaturbereich
-20 ... +65 °C
Lagertemperaturbereich
-30 ... +80 °C
DIN EN 61131-2
DIN EN 60068-2-1
DIN EN 60068-2-2
Luftfeuchtigkeit
10 ... 95 %
Das JVM-407 nicht mit
Dampfstrahler oder ähnlichem reinigen.
DIN EN 61131-2
Klimatest
Feuchte Wärme
DIN EN 60068-2-30
Verschmutzungsgrad
2
DIN EN 61131-2
Einbauort
Das JVM-407 ist in der
Fahrerkabine einzubauen.
Parameter
Wert
Norm
Schwingfestigkeit
Vibration, Breitbandrauschen
DIN EN 60068-2-6
Schärfegrad 2
Schockfestigkeit
25 g gelegentlich, 11 ms,
DIN EN 60068-2-27
halbe Sinuswelle, 3 Schocks
in beide Richtungen der drei
Raumachsen
Schutzart
Einbau direkt in Konsole
frontseitig: IP64
rückseitig: IP10
DIN EN 60529
inklusive aller Änderungen bis heute
Schutzart
auf Tragarm montiert
frontseitig: IP64
rückseitig: IP64
DIN EN 60529
inklusive aller Änderungen bis heute
Jetter AG
JVM-407
Anhang
Betriebsparameter EMV
EMV-Störaussendung
EMV-Störfestigkeit
Jetter AG
Das Gerät ist nach Richtlinie 72/245/EWG mit allen Änderungen bis
2009/19/EG geprüft und erfüllt diese.
Parameter
Wert
Norm
Störfestigkeit gegen leitungsgebundene Störungen
erfüllt
Richtlinie
72/245/EWG mit allen
Änderungen bis
2009/19/EG
Störfestigkeit gegen Fremdfeld
20 ... 1.000 MHz: 100 V/m
1.000 ... 2.000 MHz: 30 V/m
Richtlinie
72/245/EWG mit allen
Änderungen bis
2009/19/EG
Load Dump
Impuls 5b 70 V
ISO 7637-2
359
Index
B: Index
H
HTTP-Server • 179
A
I
Anwenderprogramm
auf der SD-Karte ablegen • 344
laden • 342
Standardablage • 343
Automatisches Kopieren von Steuerungsdaten • 310
Beispiel einer Kommandodatei • 326
IP-Adresse ändern • 76
B
Benutzerverwaltung • 154
Bestandteile JVM-407 • 19
Bestellbezeichnung JVM-407 • 23
Betriebsparameter
EMV • 359
Umwelt und Mechanik • 358
Betriebssystem-Update • 333
C
CANopen® • 93
D
Dateisystem • 149
Eigenschaften • 150
Formatieren und prüfen • 168
E
Echtzeit-Steuerungswerte einfügen • 235
Echtzeituhr • 209
E-Mail-Funktion • 222
E-Mails erstellen • 231
E-Mails versenden • 238
Konfiguration • 223
Registerübersicht • 244
EMV
EMV • 14
Erstinbetriebnahme • 81
F
Freiprogrammierbare CAN-PRIM-Schnittstelle • 294
CAN-PRIM-Schnittstelle programmieren • 297
Einschränkungen • 296
Funktion • 295
Registerübersicht • 301
Freiprogrammierbare IP-Schnittstelle • 266
IP-Schnittstelle programmieren • 268
Programmbeispiele • 285
Registerübersicht • 281
FTP-Server • 175
K
Kurz-Referenz • 347
L
Laufzeitregister • 213
M
Mechanische Abmessungen • 24
Modbus/TCP • 247
Modbus/TCP-Client • 253
Modbus/TCP-Server • 248
Montage
Montage des JVM-407 • 63
Montage des Tragarms • 66
P
Produktbeschreibung JVM-407 • 18
Programmierung
Digipot • 205
Digitale Ein- und Ausgänge • 206
Funktionstasten • 204
Zündung und Ausschaltverzögerung • 207
S
SAE J1939 • 123
Schnittstellen • 34
Beispiel einer Verdrahtung • 35
CAN • 45
Digitale Ein- und Ausgänge • 38
Ethernet • 43
Spannungsversorgung • 36
Spezifikation CANopen®-Buskabel • 49
Video • 51
Schnittstellenaktivität überwachen • 217
Sicherheitshinweise • 11
Speicherarten • 191
Speicherübersicht • 191
T
Technische Daten • 353
Typenschild • 29
V
Versionsregister • 31
360
Jetter AG
Jetter AG
Gräterstraße 2
D-71642 Ludwigsburg
Deutschland
Telefon:
+49 7141 2550-0
Telefon
Vertrieb:
+49 7141 2550-433
Fax
Vertrieb:
+49 7141 2550-484
Hotline:
+49 7141 2550-444
Internet:
http://www.jetter.de
E-Mail:
[email protected]
Tochtergesellschaften
Jetter (Schweiz) AG
Jetter UK Ltd.
Jetter USA Inc.
Münchwilerstraße 19
Old Witney Road
13075 US Highway 19 North
CH-9554 Tägerschen
Eynsham
Florida - 33764 Clearwater
OX29 4PU Witney
Schweiz
Großbritannien
U.S.A
Telefon:
+41 71 91879-50
Telefon:
+44 1865 883346
Telefon:
+1 727 532-8510
Fax:
+41 71 91879-69
Fax:
+44 1865 883347
Fax:
+1 727 532-8507
E-Mail:
[email protected]
E-Mail:
[email protected]
E-Mail:
[email protected]
Internet:
http://www.jetterag.ch
Internet:
http://www.jetter.uk.com
Internet:
http://www.jetter.de
362
Jetter AG

Documentos relacionados