PROFINET IO-Developer`s Kit DK_SW V3.0.0

Werbung
PROFINET IO-Developer’s Kit DK_SW
V3.0.0
für Standard-Ethernetcontroller
Anwenderbeschreibung
Ausgabe (07/2008)
Haftungsausschluß
Der Inhalt der Druckschrift wurde auf Übereinstimmung mit der beschriebenen Hard- und
Software geprüft. Dennoch können Abweichungen nicht ausgeschlossen werden, so dass wir für
die vollständige Übereinstimmung keine Gewähr übernehmen. Die Angaben in der Druckschrift
werden jedoch regelmäßig überprüft. Notwendige Korrekturen sind in den nachfolgenden
Ausgaben enthalten. Für Verbesserungen und Vorschläge sind wir dankbar.
Copyright
© Siemens AG 2008. Alle Rechte vorbehalten
Weitergabe sowie Vervielfältigung dieser Unterlage, Verwertung und Mitteilung ihres Inhaltes sind
nicht gestattet, soweit nicht ausdrücklich zugestanden. Zuwiderhandlungen verpflichten zu
Schadenersatz. Alle Rechte vorbehalten, insbesondere für den Fall der Patenterteilung oder GMEintragung.
Alle Produkt- und Systemnamen sind Marken ihres jeweiligen Eigentümers und als solche zu
behandeln.
Technische Änderungen vorbehalten.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
2-
DKSW Beschreibung
Version 3.0.0
Vorwort
Zweck des Handbuchs
Die Anwenderbeschreibung beschreibt die Software-Funktionalität des Developers Kit für ein PROFINET IODevice:
‰
Einleitung
‰
Installation und Generierung der Software
‰
Beispiel für den Anwender
Zielgruppe des Handbuchs
Dieses Handbuch ist für Softwareentwickler und für Applikationentwickler gedacht, die das Devkit für neue
Produkte auf einer beliebigen Echtzeitplattform einsetzen wollen. Der Entwickler erhält eine CD, auf der der
komplette Sourcecode des IO-Stacks, Dokumentation, eine Beispielapplikation sowie eine BeispielPlattformportierung für einen NS9360 Controller der Firma Digi enthalten ist.
Entwicklungstools (Compiler, Debugger,…), Betriebssystem, TCP/IP Stack und Testboard sind nicht Bestand
des Developers Kits, sondern können vom entsprechenden Plattformhersteller (z.B. Digi) bezogen werden.
Aufbau des Handbuchs
Das vorliegende Handbuch beschreibt das PROFINET IO-Device Developers Kit. Es ist wie folgt aufgebaut:
o
Kapitel 1 Einleitung
o
Kapitel 2 Inbetriebnahme des Anwenderbeispiels für einen NS9360 Controller
o
Kapitel 3 PROFINET IO-Device SW-Erstellung
o
Kapitel 4 Erstellen einer GSD Datei
o
Kapitel 5 SNMP
o
Kapitel 6 Wichtige Hinweise und Einschränkungen
o
Kapitel 7 Begriffs- und Literaturverzeichnis
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
3-
DKSW Beschreibung
Version 3.0.0
Dieses Handbuch enthält die Beschreibung des PROFINET IO-Stacks für das Developers Kit GEN_SW, das bei
Bedarf aktualisiert wird. Den jeweils aktuellen Stand finden Sie im Internet unter
http://www.siemens.de/comdec.
Wegweiser
Um Ihnen den schnellen Zugriff auf spezielle Informationen zu erleichtern, enthält das Handbuch folgende
Zugriffshilfen:
o
Am Anfang des Handbuchs finden Sie ein vollständiges Inhaltsverzeichnis und jeweils eine Liste aller im
gesamten Handbuch enthaltenen Abbildungen und Tabellen.
o
Im Anschluss an die Anhänge finden Sie ein Glossar, in welchem wichtige Fachbegriffe definiert sind, die in
diesem Handbuch verwendet werden.
o
Hinweise auf weitere Dokumente sind mit Hilfe von Literaturnummern in Schrägstrichen /Nr./ angegeben.
Damit können Sie dem Literaturverzeichnis am Ende des Handbuchs den genauen Titel der Dokumente
entnehmen.
Weitere Unterstützung
Bei Fragen zur Nutzung des beschriebenen Entwicklungs-Kits, die Sie nicht in der Dokumentation beantwortet
finden, wenden Sie sich bitte an Ihre Siemens Ansprechpartner in den für Sie zuständigen Vertretungen oder
Geschäftsstellen.
Fragen, Anmerkungen und Verbesserungen zum vorliegenden Handbuch bitte schriftlich an die angegebene EMail-Adresse schicken.
Zusätzlich erhalten Sie allgemeine Informationen, aktuelle Produkt-Informationen und Downloads, die beim
Einsatz nützlich sein können, im Internet unter folgenden Link:
http://www.siemens.de/comdec.
Technischer Ansprechpartner für Deutschland / weltweit
Siemens AG
Automation & Drive
ComDeC
Tel.:
Tel.:
Fax:
E-Mail:
+49 911 750 4384
+49 911 750 2080
+49 911 750 2100
[email protected]
Hausadresse:
Briefadresse:
Würzburgerstr.121
Postfach 2355
90766 Fürth
90713 Fürth
Technischer Ansprechpartner für USA
PROFI Interface Center:
One Internet Plaza
PO Box 4991
Johnson City, TN 37602-4991
Fax:
(423)- 262- 2103
Tel:
(423)- 262- 2576
E-Mail: [email protected]
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
4-
DKSW Beschreibung
Version 3.0.0
Inhaltsverzeichnis
1
Einleitung ................................................................................................................................2
1.1 Lieferumfang .......................................................................................................................................... 2
1.2 Inhalt und Zielgruppe der Anwenderbeschreibung ................................................................................. 2
1.3 Sonstige Hinweise.................................................................................................................................. 2
2
Inbetriebnahme des Anwenderbeispiels für einen NS9360 Controller............................2
2.1 Voraussetzungen ................................................................................................................................... 2
2.2 Erforderliche Kenntnisse ........................................................................................................................ 2
2.3 Hardwareinstallation............................................................................................................................... 2
2.4 Installation von STEP 7 und der GSD Datei........................................................................................... 2
2.5 Erstellung einer PROFINET IO-Projektierung mit STEP 7 ..................................................................... 2
2.5.1 Zuweisen der IP-Adresse für IO-Controller....................................................................................... 2
2.5.2 Zuweisen des Gerätenamens für das Device ................................................................................... 2
2.5.3 STEP 7 Beispielprogramm ............................................................................................................... 2
2.5.4 Download des STEP 7 Programms und der PROFINET IO-Buskonfiguration ................................. 2
2.6 Generierung der Device-Firmware mit NET+OS Entwicklungstools..................................................... 2
2.6.1 Schritt 1: Installation der NET+OS Tools .......................................................................................... 2
2.6.2 Schritt 2: Anpassen des NET+OS Board Support Packages V 6.3 für PROFINET IO ................... 2
2.6.3 Schritt 3: Generieren einer kompletten PROFINET IO-Device Applikation....................................... 2
2.7 Inbetriebnahme des Anwenderbeispiels auf dem Device....................................................................... 2
2.7.1 Schritt 4: Laden und Starten der IO-Device Applikation.................................................................... 2
2.7.2 Inbetriebnahme der PROFINET IO-Kommunikation ......................................................................... 2
2.8 Hilfestellung bei Inbetriebnahmeproblemen ........................................................................................... 2
2.8.1 …des mitgelieferten Standardbeispiels ............................................................................................ 2
2.8.2 … einer Kundenhardware/-applikation mit ThreadX, Greenhill-Tools ............................................... 2
2.8.3 Sonstige Tips.................................................................................................................................... 2
3
4
5
PROFINET IO Softwareerstellung.........................................................................................2
Erstellen von GSD Dateien....................................................................................................2
SNMP (Simple Network Management Protocol)..................................................................2
5.1
5.2
5.3
5.4
5.5
6
Diagnose über SNMP............................................................................................................................. 2
Managment Information Base MIBs ....................................................................................................... 2
SNMP Communities ............................................................................................................................... 2
Bedeutung von Abkürzungen und Quelle für weiterführende Informationen .......................................... 2
Variablen des MIB-II-Standards ............................................................................................................. 2
Wichtige Hinweise und Einschränkungen...........................................................................2
6.1 Ressourcenbedarf .................................................................................................................................. 2
6.2 Minimale IO Zykluszeit ........................................................................................................................... 2
6.3 Auto-MDIX.............................................................................................................................................. 2
7
Sonstiges ................................................................................................................................2
7.1 Abkürzungen/ Begriffsverzeichnis: ......................................................................................................... 2
7.2 Literaturverzeichnis: ............................................................................................................................... 2
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
5-
DKSW Beschreibung
Version 3.0.0
Abbildungsverzeichnis
Abbildung 1: PROFINET IO-Device mit Digi Testboard in einer Minimalkonfiguration ........................................... 2
Abbildung 2: Darstellung des in HW-Konfig oder NCM PC-Konfig importierten Devkits.......................................... 2
Abbildung 3: Konfigurieren eines PROFINET Devices mit HW-Konfig .................................................................. 2
Abbildung 4: Vergabe der IP-Adresse mit HW-Konfig ............................................................................................. 2
Abbildung 5: Laden der Step7-Konfiguration in den IO-Controller........................................................................... 2
Abbildung 6: Hochlauf-Meldungen des Testboards auf der RS232 Terminalschnittstelle ...................................... 2
Abbildung 7: Meldungen bei Aktivierung der der Blink-Funktion auf dem Hyperterminal ....................................... 2
Abbildung 8: Meldungen bei Verbindungsaufbau auf dem Hyperterminal ............................................................... 2
Tabellenverzeichnis
Tabelle 1: Übersicht der IO-Controller Bausteine für Beispielprojekt....................................................................... 2
Tabelle 2: Abhilfe bei Inbetriebnahmeproblemen des Standardbeispiels ................................................................ 2
Tabelle 3: Abhilfe bei Inbetriebnahmeproblemen einer Kundenhardware mit ThreadX........................................... 2
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
6-
DKSW Beschreibung
Version 3.0.0
1
Einleitung
Im Rahmen von PROFINET ist PROFINET IO ein Automatisierungskonzept für die Realisierung modularer,
dezentraler Applikationen. Mit PROFINET IO erstellen Sie Automatisierungslösungen, wie sie Ihnen von
PROFIBUS her bekannt und vertraut sind. Die Umsetzung von PROFINET IO wird einerseits durch den
PROFINET Standard für Automatisierungsgeräte und andererseits durch das Engineering Tool STEP 7 realisiert.
Das bedeutet, dass Sie in STEP 7 nahezu die gleiche Applikationssicht haben – unabhängig davon, ob Sie
PROFINET- Geräte oder PROFIBUS-Geräte projektieren. Die Programmierung Ihres Anwenderprogramms ist
damit für PROFINET und PROFIBUS nahezu identisch.
Für PROFINET IO wird ein Softwarestack angeboten. Auf dieser Basis können PROFINET IO-Devices erstellt
werden. Der Stack entlastet den Anwender von der Erstellung der kompletten Kommunikationssoftware. Die
Funktionalität beinhaltet
•
•
•
zyklischer Datenaustausch mit einem PROFINET IO-Controller
Senden und Empfangen von Diagnose- und Prozessalarmen, Plug- und Pull-Alarmen
Vergabe von IP-Adressen und Gerätenamen über Ethernet
Der Stack wird im Quellcode ausgeliefert und kann damit auf jede beliebige Hardware- und
Betriebssystemplattform portiert werden. Notwendige Anpassungen sind dabei in definierten Schnittstellen zu
Hardware und Betriebssystem gekapselt, um eine Portierung möglichst einfach und kostengünstig durchführen zu
können.
Gute PROFINET IO-Kenntnisse werden vorausgesetzt, um den Firmware Stack implementieren zu können.
1.1
Lieferumfang
Auf der gelieferten CD befindet sich
•
Software und Applikationsbeispiel des PROFINET IO-Protokollstack
•
Informationen über Einstellungen im Board Support Package für NET+Works 6.3
•
GSD Beispieldatei zur Integration in Step 7 HW-Konfig
•
Dokumentation zum Developers-Kit
Die Software liegt als C-Quellcode vor.
1.2
Inhalt und Zielgruppe der Anwenderbeschreibung
Die vorliegende Dokumentation ist gedacht für Entwickler von PROFINET IO-Devices. Sie beinhaltet eine
•
•
•
•
Übersicht über das Development Kit
Beschreibung und Konfiguration der benötigten Tools
Beschreibung des Anwenderbeispiels
Beschreibung eines ablauffähigen PROFINET IO Komplettsystems
Diese Dokumentation beinhaltet nicht
•
•
•
1.3
eine Übersicht über PROFINET IO
eine Beschreibung der PROFINET IO-Busprotokolle
eine detaillierte Beschreibung über Aufbau und Abläufe im PROFINET IO-Stack
Sonstige Hinweise
Das mitgelieferte Applikationsbeispiel wurde auf einem Digi Evaluation Board für den 9360 Controller getestet.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
7-
DKSW Beschreibung
Version 3.0.0
2
Inbetriebnahme des Anwenderbeispiels für einen NS9360 Controller
2.1
Voraussetzungen
Im Siemens PROFINET IO-Developer’s Kit ist ein komplettes Anwenderbeispiel für ein PROFINET IO-Device
enthalten. Dieses wurde angepasst auf ein NS9360 Developers Kit der Firma Digi mit Betriebssystemplattform
ThreadX, kann aber auch einfach an andere Plattformen angepasst werden. Dieses Kapitel beschreibt, wie ein
PROFINET IO-System, bestehend aus einem IO-Controller und einem IO-Device, auf dieser Plattform in Betrieb
genommen werden kann. Zusätzlich zum Siemens PROFINET IO-Developers Kit benötigen Sie dazu noch
folgende Komponenten:
Folgende Komponenten sind notwendig:
•
NET+Works 6.3 Developers Kit oder neuere Versionen für Ihren Digi ARM Controller, z.B. NS9360.
Dieses enthält ein Testboard, JTAG-Emulator, Compiler/Linker der Fa. Greenhill, NET+OS – Software
der Fa. Digi, zu beziehen bei http://www.Digi.com
•
Ein PROFINET IO-Controller, z.B. Simatic S7 CPU315 PN/DP, Simatic S7 CPU317 PN/DP, SOFTNET
IO, CP1616
•
Ethernet Switch, zum Beispiel aus der SIEMENS SCALANCE X204
•
Ethernet Kabel
•
RS232 Nullmodemkabel
•
STEP zur Projektierung der SIMATIC CPU und CP1616 oder NCM PC zur Projektierung des CP1616,
jeweils in aktueller Version
Nützliche Zusatzkomponenten, z.B. für Netzdiagnose:
•
Packet Sniffer zur Aufzeichnung von Ethernet – Datenpaketen. Dazu werden am Markt unterschiedliche
Produkte angeboten, einige sind über das Internet frei downloadbar. Frei downloadbar ist z.B. das Tool
Wireshark, welches bereits eine Dekodierung von PROFINET-Telegrammen beinhaltet.
•
ein Ethernet-TAP zur passiven Auskopplung von Ethernet-Signalen, um in einem geswitchten Netzwerk
Telegramme aufzeichnen zu können.
•
ein fertiges und lauffähiges PROFINET IO-Device als Referenzsystem, zum Beispiel Siemens ET200S
2.2
Erforderliche Kenntnisse
Wir empfehlen Ihnen als Programmierer folgende Kenntnisse:
•
Treiberarchitektur Ihrer Zielplattform
•
Sichere C/C++ Kenntnisse
•
Basiswissen über Echtzeitbetriebssysteme
•
Betriebssystem-Programmiertechniken (Multi-Threading, Callback-Routinen, Events)
•
Programmtechnische Fachbegriffe in englischer Sprache
•
PROFINET IO-Systemkenntnisse
•
Allgemeine Kenntnisse auf dem Gebiet der Automatisierungstechnik
•
Basiskenntnisse über die Projektier-Software STEP 7/NCM PC
2.3
Hardwareinstallation
Das folgende Bild zeigt eine mögliche Hardwarekonstellation für das Entwicklungskit. Die Minimalkonfiguration
besteht aus
•
•
•
Developers Board (Testboard)
PROFINET IO-Controller, z.B. SIEMENS S7 CPU 317-2 PN/DP
100 Mb vollduplex Switch, z.B. SIEMENS SCALANCE X204-1
Optional kann ein weiteres PROFINET IO-Device (z.B. ET 200S mit PROFINET IO-Kopfbaugruppe IM151-3PN)
integriert werden.
Die Komponenten werden folgendermaßen miteinander verbunden:
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
8-
DKSW Beschreibung
Version 3.0.0
RS232
Abbildung 1: PROFINET IO-Device mit Digi Testboard in einer Minimalkonfiguration
CPU 317, Testboard, PC (mit Step 7 Tool) und optional IM 151-3 PN werden über Ethernet Switch miteinander
verbunden. Für die Ausgabe von Debugmeldungen und für den Anstoß von Funktionen auf dem Testboard über
Tastatur kann ein Terminal über ein RS232 Nullmodemkabel angeschlossen werden.
Zusätzlich muss über die JTAG Schnittstelle des Testboards ein Emulator (s. Digi Developers Kit) angeschlossen
werden (auf dem o.g. Bild nicht enthalten), um die Anwendersoftware auf das Board zu laden und dort zu starten.
Notwendige Stromversorgungen der Geräte sind im Bild ebenfalls nicht enthalten.
2.4
Installation von STEP 7 und der GSD Datei
Dieses Kapitel beschreibt die Installation der notwendigen Softwaretools inclusive PNIO Erweiterungen. Es wird
empfohlen, die folgenden Schritte in der vorgegebenen Reihenfolge durchzuführen. Wenn Sie eine S7 CPU als
PROFINET IO-Controller einsetzen, benötigen Sie als Engineering Werkzeug Step 7. Wenn Sie hingegen eine
CP1616 oder SOFTNET IO als Controller einsetzen, können Sie alternativ NCM/PC oder Step7 verwenden.
Die folgende Beschreibung geht beispielhaft von einer Verwendung von Step7 aus, gilt aber prinzipiell auch für
NCM/PC. Für weitere Details zur Verwendung der Engineering Tools nehmen Sie bitte die entsprechenden
Dokumentationen zu Hilfe.
1.
2.
3.
4.
Installieren Sie Step 7 in der vorgegebenen Version und machen sich mit der Bedienung vertraut,
falls nicht bereits geschehen. Informationen über die Vorgehensweise siehe Step 7 Dokumentation.
Kopieren Sie die GSD Datei GSDML-Vx.y-Siemens-Devkit-JJJJMMTT.xml von der Devkit-CD auf
die Festplatte ins Verzeichnis <Ihr_Step7_Installationsverzeichnis>\Step7\S7Data\GSD. „x.y“ steht
dabei für die Version, „JJJJMMTT“ für Jahr, Monat und Tag des Erstellungsdatums der XML Datei.
Kopieren Sie die zur GSD Datei gehörende Bitmap-Datei Devkit50.bmp von der Devkit-CD auf die
Festplatte ins Verzeichnis <Ihr_Step7_Installationsverzeichnis>\Step7\S7Data\NSBMP.
Starten Sie Step7 HW-Konfig, indem Sie zum Beispiel ein neues Step7-Projekt erstellen.
Aktualisieren Sie anschließend in HW-Konfig den Katalog über das Menü EXTRASÆKatalog
aktualisieren. Sie finden anschließend das Device folgendermaßen im Standard-Hardwarekatalog.
Abbildung 2: Darstellung des in HW-Konfig oder NCM PC-Konfig importierten Devkits
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
9-
DKSW Beschreibung
Version 3.0.0
Zur Projektierung eines PROFINET IO
Netzes haben Sie dasselbe Look & Feel
wie bei Profibus. Sie können mittels Drag
& Drop ein Device in die Projektierung
einbinden und darin ebelfalls per
Drag&Drop Module plazieren.
Das Devkit beinhaltet in der GSD Datei
verschiedene Beispielmodule als
Repräsentant für z.B. analoge oder digitale
Ein- und Ausgabemodule, welche
allerdings nicht physikalisch, sondern nur
"virtuell" vorhanden sind.
Für die Kompatibilität zu älteren IOControllern sind mit “Standard“ und
„Standard, kein PDEV“ zwei
unterschiedliche DAP’s (Device Access
Points) integriert. DAP “Standard“ enthält
zusätzlich das Physical Device (PDEV),
welches von älteren IO-Controllern
eventuell nicht verstanden wird.
Der dritte DAP „Anwenderbeispiel RT 1/4,
1-Port“ enthält ein fertig konfiguriertes
Device mit 2 festen IO Modulen (64 Byte
Input, 64 Byte Output), welches passend
zum mitgelieferten SourcecodeAnwenderbeispiel verwendet werden muss.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
10 -
DKSW Beschreibung
Version 3.0.0
2.5
Erstellung einer PROFINET IO-Projektierung mit STEP 7
Auf der PROFINET IO-Devkit CD ist ein fertiges und zur Device-Applikation passendes Step 7 Projekt enthalten.
Dieses beinhaltet
•
die Busprojektierung mit CPU317 IO-Controller und IO-Device
•
ein kleines Step 7 Programm mit Alarm OBs für Prozessalarm, Diagnosealarm (OB82) und Return of
Submodule-Alarm.
•
eine Variablentabelle zur Online-Statusanzeige
Es wird empfohlen, für die Erstinbetriebnahme dieses Beispiel zunächst unverändert zu verwenden. Importieren
Sie das Projekt Devkit_S7.zip im Simatic-Manager von Step7 über das Menü "DateiÆDearchivieren". Öffnen Sie
anschließend HW-Konfig in diesem Projekt. Es wird daraufhin folgende Konfiguration angezeigt:
Abbildung 3: Konfigurieren eines PROFINET Devices mit HW-Konfig
Die Maske zeigt die Buskonfiguration, bestehend aus einer CPU319-3 PN/DP und einem Digi ARM basierten
DEVKIT als IO-Device. Die Tabelle zeigt die Modulkonfiguration für das angewählte Device. Dort sind
beispielhaft 2 Module (1 digitales Eingangsmodul, 1 dig. Ausgabemodul) in die Slots 1 bis 2 gesteckt worden. Die
Spalten E-Adresse und A-Adresse geben an, wo die I/O Daten im Prozessabbild der CPU zur Verwendung im
Step 7 Programm abgelegt sind.
Achtung:
Abhängig von der Version des verwendeten IO-Controllers muss ein DAP mit oder ohne Physical Device (PDEV)
verwendet werden. Die DAPs “Standard“ für modulare Systeme sowie die fest vorkonfigurierten DAPS der
Anwenderbeispiele sind bezogen auf GSDML Spezifikation V2.0 oder neuer und können nur mit Controllern
verwendet werden, die ebenfalls das PDEV unterstützen. Der DAP „Standard, kein PDEV“ ist ausschließlich für
alte IO Controllerversionen vorgesehen, die dieses Feature noch nicht enthalten.
Das Physical Device wird repräsentiert gemäß der PROFINET IO-Spezifikation durch folgende Submodule:
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
11 -
DKSW Beschreibung
Version 3.0.0
Slot 0, Subslot 0x8000
Slot 0, Subslot 0x8001
Interface
Ethernet Port 1
Die Module in diesem Beispiel sind lediglich "virtuell", d.h. physikalisch auf dem Testboard nicht vorhanden. Auch
die angezeigten Beispiel-Bestellnummern wurden exemplarisch festgelegt und in der Gerätestamm-Datei (GSD
Datei ) hinterlegt.
Im der Beispielprojektierung wurden folgende Einstellungen vorgenommen:
IP-Adresse des IO-Controllers:
IP-Adresse des IO-Device:
192.168.3.174
192.168.3.177
Mit dem rot markierten Button kann später die PROFINET IO-Buskonfiguration auf den IO-Controller geladen
werden. Zuvor jedoch muss dem IO-Controller noch die in der Projektierung festgelegte IP-Adresse zugewiesen
werden.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
12 -
DKSW Beschreibung
Version 3.0.0
2.5.1
Zuweisen des Gerätenames für das Device
Bevor der Controller mit dem Device IO Daten austauschen kann, muss zunächst auf dem Device der
Gerätename eingestellt werden. Dazu wählen Sie in HWCONFIG "Zielsystem Æ Ethernet Æ EthernetTeilnehmer bearbeiten" aus.
Daraufhin wird folgender Dialog gestartet:
Abbildung 4: Vergabe des Gerätenamens in HW-Konfig
(2) Drücken Sie anschließend den Button Online erreichbare Baugruppen Durchsuchen. HW-Konfig scannt
anschließend einige Sekunden lang den Ethernet Bus und zeigt in einem weiteren Dialog alle online erreichbaren
IO-Controller und IO-Devices mit MAC-Adresse, IP-Adresse (falls vorhanden), Gerätename und Gerätetyp an.
Wählen Sie mit der Maus das DEVKIT-Device aus und drücken OK.
(3) Tragen Sie den Gerätenamen in dem vorgesehenen Eingabefeld ein. In der Step7 Busprojektierung und dazu
passend in der Applikationssoftware auf dem IO-Device wurde für den Gerätenamen "anlage1" eingestellt.
(4) Durch Drücken des Buttons "Name zuweisen" wird dieser in das Device geladen.
Bei einer Änderung des Gerätenamens ist außerdem folgendes zu beachten:
•
Der Gerätename muss innerhalb der Anlage eindeutig sein.
•
Der Gerätename auf dem Device muss mit der HW-Konfig Projektierung übereinstimmen.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
13 -
DKSW Beschreibung
Version 3.0.0
•
2.5.2
Im Anwenderbeispiel für das NS9360 Board wird auf dem Device bei einer Änderung des Gerätenamens
zwar die DeviceApplikation benachrichtigt, der neue Name wird aber nicht im Flash oder NVRAM
gespeichert. Nach erneutem Hochlauf ist auf dem Device wieder der in PNIO_setup () fest übergebene
Name, nämlich "anlage1" eingetragen. In einer „realen“ Deviceapplikation muss dieser Name im Flash
gespeichert und beim nächsten Systemanlauf wieder dem Stack übergeben werden.
STEP 7 Beispielprogramm
Im Devkit ist ein zur Busprojektierung passendes einfaches Step 7 Programm enthalten. Dieses hat folgende
Funktionalität:
•
Beim Auftreten eines Diagnosealarms wird im zugehörigen Alarm - OB 82 ein Zähler in DB 10
inkrementiert, welcher die Anzahl der aufgetretenen Diagnosealarme anzeigt. Zusätzlich wird dort der
SFC 54 aufgerufen, welcher die vom IO-Device gelieferten Alaramdaten in einen vorgegebenen
Datenbaustein (hier DB182) schreibt.
•
Beim Auftreten eines Prozessalarms wird im zugehörigen Alarm - OB 40 ein Zähler in DB 10
inkrementiert, welcher die Anzahl der aufgetretenen Prozessalarme anzeigt. Zusätzlich wird dort der
SFC 54 aufgerufen, welcher die vom IO-Device gelieferten Alaramdaten in einen vorgegebenen
Datenbaustein (hier DB140) schreibt.
•
Beim Auftreten eines "Return of Submodul" – Alarms wird im zugehörigen Alarm - OB 83 ein Zähler in
DB 10 inkrementiert, welcher die Anzahl der aufgetretenen Return of Submodul-Alarme anzeigt. Da bei
diesem Alarm keine weiteren Daten vom IO-Device mitgeliefert werden, wird hier kein SFC54
aufgerufen.
•
Der zyklische OB 1 ist weitgehend leer. Der Zugriff auf die I/ O Daten der Devices erfolgt direkt durch
Lade- bzw. Transfer-Befehle auf das Prozessabild und wird hier nicht weiter erörtert.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
14 -
DKSW Beschreibung
Version 3.0.0
Das Beispielprogramm enthält folgende Bausteine:
Baustein
Funktion
Bemerkung
OB 1
zyklischer OB
OB 40
Prozessalarm
OB 82
Diagnosealarm
OB 83
Return of Submodul Alarm
FC 1
Read Record
FC 2
Write Record
Ein Zähler in DB10 wird gemäß einem Taktmerker
zyklisch inkrementiert.
Inkrementiert bei jedem Prozessalarm einen Zähler in
DB 10.Cnt_ProcAlarm und legt die Alarmdaten vom
Device in DB 140 ab.
Inkrementiert bei jedem Diangosealarm einen Zähler in
DB 10.Cnt_DiagAlarm und legt die Alarmdaten vom
Device in DB 182 ab.
Inkrementiert bei jedem Return of Submodule Alarm
einen Zähler in laufenden Zähler in DB
10.RetOfSubAlarm.
Einmaliges Lesen eines Records vom Device, wenn
M31.7 gesetzt ist. Die empfangenen Daten werden in
DB 1 gespeichert.
Einmaliges Schreiben eines Records vom Device, wenn
M 41.7 gesetzt ist. Die Daten werden aus DB 2 gelesen
und an das Device gesendet. gespeichert.
OB 86
DB 1
Loss of rack fault
Ziel für Read Record
DB 2
DB 10
DB 40
DB 52
DB 53
DB 82
DB 140
DB 182
VAT_1
Hier werden die Daten gespeichert, die bei einem
ReadRecord mittels FC1 empfangen werden.
Quelle für Read Write
Hier werden die Daten gelesen, die bei einem
WriteRecord mittels FC2 an das Device gesendet
werden.
Zähler für Alarme
Enthält Alarmzähler für verschiedene Alarme, welche in
den entsprechenden Alarm-OBs inkrementiert werden.
Datenbaustein für OB 40
Instanz DB zu SFB52
Instanz DB zu SFB53
Datenbaustein für OB 82
Alarm-Zusatzinformationen bei enthält die Alarmdaten vom IO-Device bei einem
Prozessalarm
Prozessalarm
Alarm-Zusatzinformationen bei enthält die Alarmdaten vom IO-Device bei einem
Diagnosealarm
Diagnosealarm
Variablentabelle
Anzeige der verwendeten IO-Datenbereiche (Ein- und
Äusgänge im Prozessabbild) und Alarmzähler in DB10
Tabelle 1: Übersicht der IO-Controller Bausteine für Beispielprojekt
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
15 -
DKSW Beschreibung
Version 3.0.0
2.5.3
Download des STEP 7 Programms und der PROFINET IO-Buskonfiguration
Im Simatic Manager kann die Busprojektierung zusammen mit dem Step 7 Programm auf die CPU geladen
werden. Wählen Sie dazu im Simatic Manager die CPU aus, wählen im Menü Zielsystem und laden dort wie im
folgenden Bild gezeigt die kompletten Daten auf die CPU.
Abbildung 5: Laden der Step7-Konfiguration in den IO-Controller
Die S7 CPU versucht nach Empfang des Busprojektierung zyklisch, eine Verbindung zum IO-Device aufzubauen.
Da dieses aber noch nicht aktiv ist, wird auf der CPU über die roten LEDs (SF, BF2) ein Fehlerzustand
angezeigt.
Wenn zu einem späteren Zeitpunkt das Device hochläuft, wird dies von der CPU automatisch erkannt, der IODatenaustausch wird aufgenommen und die Fehler-LEDs gehen aus. Doch zuvor muss die Firmware für das IODevice generiert, auf das Device geladen und gestartet werden.
2.6
Generierung der Device-Firmware mit NET+OS Entwicklungstools
Das folgende Kapitel beschreibt die Generierung des PROFINET IO-Anwenderbeispiels bei Verwendung des
NET+ARM Developers Kits NET+OS 6.3 , den zugehörigen Greenhill Tools und dem Betriebssystem ThreadX.
2.6.1
1.
2.
3.
2.6.2
Schritt 1: Installation der NET+OS Tools
Installieren Sie die NET+OS Software und die Greenhill Compiler/Linker Tools, enthalten im NET+
Works Developers Kit. Über die Vorgehensweise der Installation informieren Sie sich in der beiliegenden
Beschreibung.
Machen Sie sich mit den Greenhill-Tools und der NET+OS Software vertraut. Versuchen Sie
beispielsweise, eines der enthaltenen Applikationsbeispiele (zum Beispiel nahttp) zu generieren, mit
dem JTAG Emulator auf das NET+ARM 50 Entwicklungsboard zu laden, starten und zu debuggen.
Versuchen Sie, das zum Entwicklungsboard gehörende Standard - Board Support Package neu zu
generieren.
Schritt 2: Anpassen des NET+OS Board Support Packages V 6.3 für PROFINET IO
Die Erweiterung des Board Support Packages ist ab der Version NET+OS 6.3 nicht mehr notwendig, da im BSP
ein sogenanntes „Bypass-Interface“ integriert wurde, auf das PROFINET IO direkt aufsetzen kann.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
16 -
DKSW Beschreibung
Version 3.0.0
Lediglich in der Headerdatei bsp.h der gewählten Plattform müssen folgende Einstellungen angepasst werden:
#define BSP_TICKS_PER_SECOND
#define BSP_LOW_INTERRUPT_LATENCY
#define BSP_USE_ETHERNET_RECV_QUEUE
#define BSP_ETHERNET_RECV_QUEUE_THREAD_PRIORITY
#define BSP_ENABLE_ETHERNET_BYPASS
#define BSP_ETHERNET_BYPASS_SEND_BUFFERS
1000
TRUE
TRUE
9
TRUE
54
Nur für einen ARM7 basierten Controller (zB. NET+50) ist zusätzlich der folgende Bugfix-Workaround zu
setzen:
#define BSP_WANT_2ND_ETHERNET_CHECKSUM
TRUE
In allen anderen Fällen setzen Sie bitte
#define BSP_WANT_2ND_ETHERNET_CHECKSUM
FALSE
Zur Laufzeitoptimierung setzen Sie in der Multi 2000 Entwicklungsumgebung für das BSP die Generieroption
„optimize for speed“, anschließend generieren Sie das BSP komplett neu.
Falls eine andere Version als NET+OS V6.3 verwendet werden soll, können andere Einstellungen notwendig
sein. Setzen Sie sich in diesem Fall zur Klärung mit dem Hersteller in Verbindung.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
17 -
DKSW Beschreibung
Version 3.0.0
2.6.3
Schritt 3: Generieren einer kompletten PROFINET IO-Device Applikation
1.
Wenn Sie die o.g. Anpassungen in der Datei bsp.h des Board Support Packages durchgeführt haben,
generieren Sie zunächst das BSP neu.
2.
Generieren Sie anschließend die Applikation inklusive dem Stack neu. Da die PROFINET IO-Software
auf einer anderen Plattform entwickelt wurde, bringt der Greenhill Compiler einige Warnings.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
18 -
DKSW Beschreibung
Version 3.0.0
2.7
Inbetriebnahme des Anwenderbeispiels auf dem Device
2.7.1
1.
2.
3.
Schritt 4: Laden und Starten der IO-Device Applikation
Schließen Sie an der seriellen Schnittstelle des Boards (diejenige, die am nächsten zum Stecker für die
Versorgungsspannung liegt) ein Hyperterminal an und konfigurieren dieses folgendermaßen: 9600
Baud, 8 Datenbits, 1 Stopbit, no parity)
Schalten Sie die Spannung auf dem Board ein, laden Sie mit dem JTAG Emulator die Applikation auf
das Entwicklungsboard.
Starten Sie die Applikation. Auf dem über die serielle Schnittstelle angeschlossenen Terminal
erscheinen folgende Hochlaufmeldungen (Parameter wie MAC Adresse etc. können auf Ihrem Board
andere Werte beinhalten)
NET+WORKS Version 6.3
Copyright (c) 2000-2004, NETsilicon, Inc.
PLATFORM: ns9360_a
APPLICATION: PROFINET IO developers kit
----------------------------------------------------------------------------NETWORK INTERFACE PARAMETERS:
IP address on LAN is 0.0.0.1
LAN interface's subnet mask is 255.255.255.0
IP address of default gateway to other networks is 0.0.0.1
HARDWARE PARAMETERS:
Serial channels will use a baud rate of 9600
This board's serial number is N99999999
This board's MAC Address is 00:40:9D:28:D7:BC
After board is reset, start-up code will wait 5 seconds
Default duplex setting for Ethernet connection: phy Default
----------------------------------------------------------------------------Press any key in 5 seconds to change these settings.
ACE: Have IP address on interface eth0: 0.0.0.1
Network IP configured.
scheduling rate is 1000 ticks per second
Initial Performance finished, value = 185000
local IP address = 1h
link port1: Status=1, Speed=2, Mode=2
change port number of MIB2 agent to 8161, State = 0...
read port number of MIB2 agent:= 8161..., State = 0
...OK, done
...OK, done
read MIB2 SysDescription... value = NETOS 6.3
read MIB2 SysName...
value = NETsilicon, Inc.
read MIB2 SysContact... value = www.netsilicon.com
read MIB2 SysLocation... value = 411 Waverly Oaks Road, Waltham MA, 02452
modify some MIB2 objects... ... and read them again
read MIB2 SysName...
value = anlage1
read MIB2 SysContact... value = www.siemens.de/comdec
read MIB2 SysLocation... value = D90766 Fuerth Wuerzburger Str 121
start MIB2 support for PROFINET IO....
##REMA SHADOW MEM RESTORE
PNIO DEVKIT Version 3.0. 0. 0
Abbildung 6: Hochlauf-Meldungen des Testboards auf der RS232 Terminalschnittstelle
Sollten Probleme im Anlauf auftreten, setzen Sie den PNIO interface logLevel in UsrIodMain.c bei Aufruf von
PNIO_Setup() von 1 auf 3. Sie erhalten damit zusätzliche Log-Messages zur Unterstützung der Fehlersuche.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
19 -
DKSW Beschreibung
Version 3.0.0
2.7.2
1.
2.
Inbetriebnahme der PROFINET IO-Kommunikation
Bevor die IO-Kommunikation mit einem IO-Device gestartet werden kann, muss dem Device zunächst
ein Gerätenamen zugewiesen werden. Gehen Sie dazu in die Projektierung in HW-CONFIG, klicken Sie
mit der Maus das Device an und wählen das Menü ZielsystemÆEthernetÆGerätenamen vergeben. HWKonfig scannt daraufhin den Ethernet Bus und sucht nach angeschlossenen IO-Devices. Das Device
muss sichtbar sein. In der Device-Applikation wurde als Gerätename „Anlage1“ eingestellt, als Gerätetyp
„DEVKIT“. Zusätzlich werden noch MAC Adresse und IP-Adresse (falls vorhanden) angezeigt.
Der auf dem Device eingestellte Gerätename „anlage1“ wurde auch in der HW-Konfig-Projektierung
verwendet. Beide müssen übereinstimmen, deshalb diesen bitte nicht ändern. Als Testfunktion kann
Blinken angeklickt werden. Zur Simulation eines echten Blinkens (vom Anwender zu implementieren)
wird auf dem Terminal angezeigt:
##LED Blink START, frequency = 2 Hz
##LED Blink STOP
Abbildung 7: Meldungen bei Aktivierung der der Blink-Funktion auf dem Hyperterminal
3.
4.
5.
Die PROFINET IO Kommunikation zwischen HW-Konfig und Step 7 funktioniert somit. Nun wird die
Verbindung zwischen IO-Controller und Step 7 in Betrieb genommen. Klicken Sie dazu in der erstellten
HW-Konfig-Projektierung auf die CPU und wählen das Menü Zielsystem Æ Ethernet Æ Ethernetadresse
vergeben. Es erscheint daraufhin der Dialog „Ethernet Adresse vergeben“. Drücken Sie im Feld
MAC_Adresse auf Durchsuchen.... Nach einigen Sekunden müßte der Controller gefunden werden und
seine MAC Adresse, IP-Adresse, Stationsname und Stationstyp wird angezeigt (evt. werden auch
weitere am Bus aktive PROFINET IO-Geräte angezeigt). Wählen Sie den Controller aus und stellen Sie
eine gültige IP-Adresse ein, falls dieser nicht schon eine gültige Adresse besitzt.
Laden Sie nun die Projektierung aus HW-Konfig auf den IO-Controller über das Menü Zielsystem Æ
Laden in Baugruppe. Verwenden Sie das auf der Devkit-CD mitgelieferte Step7 Projekt, dieses ist auf
die Beispielapplikation abgestimmt.
Nach erfolgreichem Laden der CPU versucht diese, eine Verbindung zum IO-Device herzustellen. Nach
einigen Sekunden erscheinen daher folgende Meldungen auf der Terminalschnittstelle des Devices:
*** AR-CHECK_IND: RT AR ***
ArNum = 1, Session = 1 ArType = 0x1, ArProp = 0x11, NumofApi = 1
Device Hndl = 5, HostIP = 192.168.20.176
StationName = pn-io, Length = 5
********** new RT Class 1 connection **********
AR-INFO_IND new ArNum=1 Session=1, NumOfIocr = 2
IOCR 0: IocrProp = 0x1, Direction=1, SendClk = 32 RedRatio = 128, NumOfApiObj
ects = 1
IOCR 1: IocrProp = 0x1, Direction=2, SendClk = 32 RedRatio = 128, NumOfApiObj
ects = 1
Number of Api's = 1
Number of Modules = 7
Module plugged; Api = 0, Slot = 0, ModID = 0x300, Subslot = 1, SubId = 0x0
Module plugged; Api = 0, Slot = 0, ModID = 0x300, Subslot = 32768, SubId = 0x1
Module plugged; Api = 0, Slot = 0, ModID = 0x300, Subslot = 32769, SubId = 0x2
Module plugged; Api = 0, Slot = 1, ModID = 0x101, Subslot = 1, SubId = 0x0
Module plugged; Api = 0, Slot = 2, ModID = 0x101, Subslot = 1, SubId = 0x0
Module plugged; Api = 0, Slot = 3, ModID = 0x102, Subslot = 1, SubId = 0x0
Module plugged; Api = 0, Slot = 4, ModID = 0x201, Subslot = 1, SubId = 0x0
Module plugged; Api = 0, Slot = 5, ModID = 0x201, Subslot = 1, SubId = 0x0
Module plugged; Api = 0, Slot = 6, ModID = 0x202, Subslot = 1, SubId = 0x0
##WRITE_REC RQ, Api=0 Slot=1 Subslot=1 Index=1, Len=4, Sequ_nr=0
##REC_DATA = 0x 1 0x 1 0x56 0x78
…. etc…..
Abbildung 8: Meldungen bei Verbindungsaufbau auf dem Hyperterminal
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
20 -
DKSW Beschreibung
Version 3.0.0
6.
7.
8.
9.
2.8
Nach Beginn des Nutzdatenaustausches müssten auf der CPU sowohl die SF LED als auch die beiden
BF LED’s ausgehen. Die RX/TX Lampe leuchtet permanent oder flackert abhängig von der in HW-Konfig
projektierten Aktualisierungszeit (1ms ... 128 ms).
Ihr PROFINET IO-Device tauscht nun zyklisch Nutzdaten mit dem Controller aus. Sie können nun im
Simatic Manager eine Variablentabelle mit den IO-Daten ihres Devices erstellen und so den
Nutzdatenaustausch beobachten. Wenn Sie dazu in Ihrer PROFINET IO-Projektierung (HW-Konfig) auf
das Device klicken, werden in einer Tabelle die Module in den entsprechenden Steckplätzen angezeigt
und auf welche E-Adressen und A-Adressen in der S7 CPU die Slots abgebildet werden.
Sie können am IO-Device den aktuellen Inhalt der Nutzdaten lesen, wenn Sie auf der
Terminalschnittstelle ein 'j' eingeben. Mit jedem Tastendruck auf 'j' wird der aktuelle Zustand der Daten
einmalig gelesen. Der Inhalt der angezeigten Daten muss mit denen in der Step7 Variablentabelle
übereinstimmen.
Machen Sie sich weiter mit dem Anwenderbeispiel vertraut. Mit der Taste '?' am Terminal werden die
möglichen Kommandos angezeigt. Lesen Sie auch den zugehörigen Applikations-Quellcode, speziell die
Module UsrIodMain.c und PNIO_Event.c.
Hilfestellung bei Inbetriebnahmeproblemen
Angefangen von der Inbetriebnahme des NS9360 Developers Boards auf Basis des mitgelieferten
Anwenderbeispiels über die Portierung desselben auf eine eigene Hardware, Portierung auf eine andere
Toolkette (GNU mit ThreadX), Portierung auf ein anderes Betriebssystem mit eigener Toolkette,….. können eine
Menge unterschiedlicher Probleme auftreten. Die Probleme haben verschiedene Ursachen, aber häufig dasselbe
Ergebnis: Die zyklische Datenkommunikation kann nicht in Betrieb genommen werden. Wenn dazu noch mehrere
Fehler gleichzeitig vorhanden sind, führt die Beseitigung eines Fehlers noch nicht zum Erfolg, maximal zu einer
Änderung des Fehlerbildes oder korrektem Erreichen eines später liegenden Zustandes im Systemanlauf.
Um die Fehlersuche zu vereinfachen, empfehlen wir folgendes Vorgehen:
Wenn Sie nicht auf der Beispielplattform (NS9360, NET+OS6.x) arbeiten, sollten sie
zunächst ein lauffähiges Referenzsystem auf Ihrer Plattform generieren, welches
dem mitgelieferten Anwenderbeispiel so ähnlich wie möglich ist. Das heißt, passen
Sie zunächst nur die Adapter für OS, BSP und Socket Schnittstelle an und
übernehmen Applikation und Busprojektierung unverändert. Erst wenn das
Referenzsystem sauber arbeitet, integrieren Sie ihre eigene Kundenapplikation.
In den folgenden Kapiteln werden häufig auftretende Probleme und deren Abhilfe geschildert. Dabei wird von
unterschiedlichen Anwendungsfällen ausgegangen:
-
Inbetriebnahme des mitgelieferten Anwenderbeispiels bei unveränderter Software. Dies ist der
einfachste Fall.
Inbetriebnahme der Kundenhardware auf der Betriebssystem- und Toolkettenbasis des mitgelieferten
Beispiels, also ThreadX und Greenhill Tools
Inbetriebnahme der Kundenhardware mit anderem Betriebssystem (nicht ThreadX) und anderer
Toolkette (nicht Greenhills)
Die beschriebenen Probleme und Hilfen können nicht vollständig sein, sie bieten lediglich Anhaltspunkte.
Die Anwendungsfälle können gestaffelt betrachtet werden, d.h. wenn Sie z.B. einen Nicht ARM-Controller, nicht
das ThreadX Betriebssystem und beliebige Tools verwenden, so sollten zunächst immer die möglichen Ursachen
der vorangegangenen Unterkapitel ausgeschlossen werden.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
21 -
DKSW Beschreibung
Version 3.0.0
2.8.1
Nr
1
2
3
4
…des mitgelieferten Standardbeispiels
Problem
Kommunikation mit IO-Controller
wird nicht aufgebaut.
Mögliche Ursachen/Abhilfe
Prüfen Sie zunächst, ob das IO-Controller und Device überhaupt
über Ethernet kommunizieren können. Dazu müssen beide
Geräte in der Liflist von STEP7/HW-Konfig sichtbar sein. Wenn
nicht, weiter mit Nr. 2, sonst mit 3.
Device oder Controller für HWPrüfen Sie Hardware und Verkabelung. Verbinden Sie beide
Config am Bus nicht sichtbar.
Geräte testhalber direkt über ein Crossover Kabel.
Kommunikation mit IO-Controller Prüfen Sie, ob der in der Projektierung vergebene StationsName mit dem in der Device Firmware vergebenen Namen
wird nicht aufgebaut.
übereinstimmt. Im Softwarebeispiel in usriod_main.c ist dort
„anlage1“ eingetragen. Prüfen Sie ebenfalls, ob die IP-Adressen
von Controller und Device im gleichen Subnetz liegen.
Kommunikation bricht sporadisch Prüfen Sie Hardware und Verkabelung. Verbinden Sie beide
zusammen
Geräte testhalber direkt über ein Crossover Kabel.
Tabelle 2: Abhilfe bei Inbetriebnahmeproblemen des Standardbeispiels
2.8.2
… einer Kundenhardware/-applikation mit ThreadX, Greenhill-Tools
Nr
1
Problem
Alle genannten Probleme
2
Kommunikation bricht
sporadisch zusammen
Mögliche Ursachen/Abhilfe
Schliessen Sie zunächst mögliche Fehlerursachen aus, die im
vorhergehenden Kapitel beschrieben wurden.
1. Ausschluss von Hardware- und Netzproblemen
2. Prüfen Sie die eingestellte Prioritätenreihenfolge der IOTasks, diese sollte nicht geändert werden.
3. Schließen Sie (möglichst) den Einfluß von Nicht-IO-Code
mit höherer Priorität (Task, Systemlevel, Interrupt) als die
PROFINET IO-Software aus.
4. Setzen Sie zu Testzwecken den EDD Basistakt von 1ms auf
2ms oder 4ms. Achtung: die projektierte Buszykluszeit kann
nicht kleiner als der EDD Basistakt sein. Der Basistakt wird
eingestellt über #define
EDD_CFG_CYCLE_BASE_FACTOR in Modul os_cfg.h.
5. Prüfen Sie, ob der EDD Basistakt eingehalten wird, d.h. ob
die Message-Loop in der FunktionTask_Edd_high () (s.
Modul sys_tsk.C) regelmässig getriggert wird und der Jitter
nicht zu gross ist. Durch Setzen des Define #ifdef
_DEBUG_LOGGING_CIRC_BUF können die Laufzeiten
verschiedener Synchronisationspunkte im Code in einen
Umlaufpuffer geschrieben werden. Erhöhen Sie die
Genauigkeit der Messungen, indem Sie in
OsSetEntryCircBuf() (Modul gh_os.c) einen Hardwaretimer
verwenden.
6. Erhöhen Sie testhalber die STEP7 projektierte
Buszykluszeit.
7. Viele Debugausgaben können plattformabhängig (z.B. bei
Ausgabe über RS232) das Zeitverhalten des Systems
extrem stören. Reduzieren Sie daher testhalber die
Debugausgaben (Logging-Level Einstellungens in
compiler.h) und prüfen Sie, ob das Systemverhalten sich
verbessert.
Tabelle 3: Abhilfe bei Inbetriebnahmeproblemen einer Kundenhardware mit ThreadX
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
22 -
DKSW Beschreibung
Version 3.0.0
2.8.3
Sonstige Tips
Neben den in den bereits vorhergenden Kapiteln beschriebenen Fehlern können durch Verwendung anderer
Microcontroller, Betriebssysteme, Tools, etc. weitere Fehler auftreten. Die Bandbreite ist groß und das
Fehlererscheinungsbild so vielfältig, dass ein tabellarischer Zusammenhang zwischen Problembeschreibung und
möglicher Ursache nicht zielführend ist. Es wird lediglich eine Auflistung möglicher Ursachen erstellt, ohne näher
auf deren Erscheinungsbild einzugehen.
Weitere Problemursachen:
•
Alignment-Probleme: Alle zwischen #include "xx_pck.h" und #include "xx_unpck.h" deklarierten
Datenstrukturen müssen byte-aligned sein. „xx“ steht dabei für den Paketnamen, wie z.B. „acp“ oder
„cm“. Es ist darauf zu achten, dass die compilerspezifischen Einstellungen für das Alignment in
compiler.h entsprechend angepasst wurden.
•
Zu lange Interruptsperren in System- oder Applikationscode oder Verdrängung des EDD durch höher
prioren Usercode. Diese beeinträchtigen das Echtzeitverhalten des IO-Stacks. Dies kann zu
sporadischen Verbindungsabbrüchen bei kleinen Buszykluszeiten oder bei kleinen EDD-Basistaktzeiten
(1msec) auftreten.
•
Hardware- oder Compilerfehler
•
Programmierfehler im BSP oder der User-Applikation.
Arbeitsreihenfolge bei der Portierung und Inbetriebnahme auf Ihrer Plattform:
1) Portieren Sie die Anpassmodule gh_os.c, gh_bspadapt.c, ossocket.c, compiler.h, os_cfg.h, iod:_cfg.h
2) Übernehmen Sie die den restlichen Code soweit möglich unverändert und generieren ein System.
3) Laden und testen Sie ihr System, bis es (zunächst noch) ohne Ethernet-Anschluss fehlerfrei anläuft.
4) Schliessen Sie das Device an Ethernet an und prüfen mittels „Ping“, ob der TCP/IP Stack arbeitet.
5) Prüfen Sie, ob das Gerät in der Lifelist von HW-Konfig oder NCM-PC auftaucht. Damit ist sichergestellt,
dass das Device grundsätzlich PROFINET IO-Telegramme mit FrameID 0x8892 empfangen kann
(Checker-Funktionalität).
6) Laden Sie die Beispielprojektierung auf den Controller und testen sie die zyklische Datenübertragung.
7) Testen Sie, ob die zyklische Datenübertragung auch bei kleinen Buszykluszeiten funktioniert. Sie
besitzen nun ein lauffähiges Referenzsystem.
8) Ersetzen Sie die Beispiel-Userapplikation schrittweise durch Ihre eigene User-Applikation. Wenn Sie
nicht weiterkommen und im Stack debuggen müssen, greifen Sie auf das Referenzsystem als
Vergleichsbasis zurück.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
23 -
DKSW Beschreibung
Version 3.0.0
3
PROFINET IO Softwareerstellung
Dieses Kapitel wurde in das Dokument „PNIO_DK_Schnittstellenbeschreibung“ ausgelagert, welches im gleichen
Unterverzeichnis auf der Produkt-CD enthalten ist. Die Schnittstellenbeschreibung ist ein Dokument, welches
gleichermassen für die verschiedenen Development-Kits für ERTEC und Standard-Ethernetcontroller gültig ist.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
24 -
DKSW Beschreibung
Version 3.0.0
4
Erstellen von GSD Dateien
Die Eigenschaften eines PROFINET Devices sind in einer „Generic Station Description“ (GSD) Datei im XML
Format hinterlegt. Die Beschreibungssprache heißt GSDML (ML steht für Markup Language). Die GSD-Datei ist
vom PN-IO-Device Hersteller zu erstellen und wird zur Erstellung der Busprojektierung vom Engineeringtool
(STEP 7) importiert.
Der detallierte Aufbau der GSD-Datei ist in /3/ beschrieben, das Dokument inclusive der für PROFINET IO
notwendigen Schemadateien für die Validierung kann von der Webseite der PNO http://www.profibus.com
heruntergeladen werden.
Für die Erstellung der GSD-Datei benötigen Sie folgende Tools und Vorlagen:
1.
2.
3.
4.
Ein XML Editor. Damit lassen sich XML Dateien erstellen und das korrekte Format mittels
Schemadateien für PROFINET IO überprüfen.
Schemadateien für PROFINET IO. Diese können zusammen mit der GSDML Spezifikation von der o.g.
Webseite des PNO Servers heruntergeladen werden.
Beispielvorlage für eine GSD-Datei. Diese sind ebenfalls im o.g. Download von GSDML Spezifikation
und PNIO Schemadateien enthalten. Sie können alternativ auch die GSDML Datei des Development Kit
Anwenderbeispiels als Vorlage verwenden.
In der GSD-Datei muss u.a. eine Vendor-ID eingegeben werden. Diese darf nicht frei vergeben werden,
sondern muss (falls noch nicht vorhanden) bei der PNO beantragt werden.
Detaillierte Informationen über den Aufbau der GSD-Datei entnehmen Sie bitte der Dokumentation /3/.
Hinweis:
Beachten Sie bei Erstellung einer benutzerdefinierter GSDML-Datei, dass nicht alle Parameter beliebig eingestellt
werden dürfen. Die XML-Schema-Dateien erfordern syntaktisch und strukturell gültige XML-Dateien. Nehmen Sie
die mitgelieferte GSDML-Datei als Vorlage. Vergeben Sie einen eindeutigen Namen und verändern Sie möglichst
nur Modulanzahl und -größen innerhalb des zulässigen Mengengerüsts (siehe oben).
Einige Attribute dürfen in der GSDML-Datei nicht verändert werden.
Beim Attribut „API“ des Elements „VirtualSubmoduleItem“ ist nur der Wertebereich „0x0“ bis „0x7FFFFFFF“
freigegeben.
Das Dokument inclusive der für PROFINET IO notwendigen Schemadateien für die Validierung und ein
PROFINET XML-Viewer zum überprüfen der GSD-Datei kann von der Webseite der PNO
http://www.profibus.com heruntergeladen werden.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
25 -
DKSW Beschreibung
Version 3.0.0
5
5.1
SNMP (Simple Network Management Protocol)
Diagnose über SNMP
Über SNMP (Simple Network Management Protocol) kann eine Netzwerkmanagementstation
SNMP-fähige Teilnehmer konfigurieren und überwachen. Hierzu ist im Teilnehmer ein Management-Agent
installiert, mit dem die Managementstation über sogenannte Get- und Set-Requests Daten austauscht.
5.2
Managment Information Base MIBs
Eine MIB (Management Information Base) ist eine Datenbasis eines Geräts. SNMP-Clients greifen auf diese im
Gerät zu. Das Development-Kit unterstützt standardisierten MIBs: die MIBII und die LLDP-MIB
Standardisierten MIBs sind in RFC-Normen definiert und enthalten Parameter, die in sogenannte Gruppen
aufgeteilt sind..
5.3
SNMP Communities
Der Zugriff mittels SNMP wird durch das Konzept der Communities geregelt. Communities sind Passwörter, die
beim SNMP-Zugriff benutzt werden. Im Developmentkit sind die Communities fest auf die Defaultwerte „public“
und „private“ eingestellt.
5.4
Zugriff
Community
Nur Lesezugriff
Lese- und Schreibzugriff
public
private
Bedeutung von Abkürzungen und Quelle für weiterführende Informationen
Aus folgender Tabelle entnehmen Sie die Bedeutung von zuvor genannten Abkürzungen und eine Angabe, wo
Sie weitere Informationen entnehmen können.
Bedeutung
SNMP
SNMP V2
Simple Network Management Protocol
RFC 1157
Simple Network Management Protocol Version 2
RFC 1901 und
(Administration, Protokolloperationen und Sicherheit) RFC 1905
Structure and Identification of Management
RFC 1155
Information – Beschreibt die Struktur der MIBObjekte.
Management Information Base, Version 2
RFC 1213
SMIv1
MIB-II
5.5
weitere
Informationen
Abkürzung
Variablen des MIB-II-Standards
Variablen im Verzeichnis „System“
Folgende Tabelle zeigt einige SNMP-Variablen des MIB II-Standards zur Überwachung des Gerätestatus aus
dem Verzeichnis „System“. Die Zugriffsrechte beziehen sich auf den Zugriff über das SNMP-Protokoll.
Variable
Zugriffsrechte Beschreibung
sysDescr
Nur lesen
sysObjectID
Nur lesen
sysUpTime
Nur lesen
sysContact
Lesen und
schreiben
Enthält eine herstellerspezifische Identifikation des Geräts,
zum Beispiel „SIEMENS“, „SIMATIC NET“, …
Es wird ein String bis zu 255 Zeichen verwendet.
Datentyp: DisplayString
0, da keine gerätespezifische (private) MIB unterstützt wird
Zeit nach dem letzten Rücksetzen, zum Beispiel nach PowerUp – Die Angabe erfolgt in Vielfachen von hundertstel
Sekunden.
Hier kann ein Kontaktname eingetragen werden;
Werkseinstellung: Leerstring.
Der mögliche Wert ist ein String mit maximal 255 Zeichen.
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
26 -
DKSW Beschreibung
Version 3.0.0
sysName
sysLocation
sysServices
Lesen und
schreiben
Lesen und
schreiben
Nur lesen
Name für das Gerät; Werkseinstellung: Leerstring
Der mögliche Wert ist ein String mit maximal 255 Zeichen.
Standort des Gerätes; Werkseinstellung: Leerstring.
Der mögliche Wert ist ein String mit maximal 255 Zeichen.
Zeigt die Funktionen (Services), die gemäß ISO/OSI-Modell
durch die Komponente geleistet werden. Jedes Bit steht für
einen von 7 OSI-Schichten.
Die Vorbesetzung ist wie folgt:
Bit 2 gesetzt – Schicht 2, primär Switching
Bit 4 gesetzt – Schicht 4, Projektierung über RFC 1006
Bit 7 gesetzt – Schicht 7, PROFINET IO
Variablen im Verzeichnis „Interfaces“
Folgende Tabelle zeigt einige SNMP-Variablen zur Überwachung des Gerätestatus aus dem Verzeichnis
„Interface“:
SNMP-Variable Zugriffs- Beschreibung
rechte
ifDescr
Nur lesen
ifInErrors
Nur lesen
ifLastChange
Nur lesen
ifNumber
Nur lesen
ifOperStatus
Nur lesen
ifOutErrors
Nur lesen
ifPhsAddress
Nur lesen
ifSpeed
Nur lesen
ifType
Nur lesen
ifSpecific
Nur lesen
Beschreibung und gegebenenfalls zusätzliche Informationen für einen
Dargestellt wird: Port <Portnummer>
Port.
Anzahl der empfangenen Pakete, die wegen erkannter Fehler nicht an
höhere Protokollschichten weitergegebenen wurden.
Datentyp: Counter
Zeit, seit der ausgewählte Port in seinem aktuellen Betriebszustand ist;
siehe „ifOperStatus“.
Die Angabe erfolgt in Vielfachen von hundertstel Sekunden.
Datentyp: TimeTicks
Anzahl der unterschiedlichen Interfaces, die in der Komponente verfügbar
sind.
Bei einem ERTEC400 Developmentkit wird für diese Variable z.B. der
Wert 5 ausgegeben (4 physikalische Ports + 1 virtueller Port für den
Developmentkit selbst).
Datentyp: Integer
Aktueller Betriebszustand des Ethernet-Port
Möglich sind folgende Werte:
1:
up
2:
down
Datentyp: Integer
Anzahl der Pakete, die wegen eines Fehlers nicht gesendet wurden.
Datentyp: Counter
MAC-Adresse des Developmentkits
Datentyp: PhysAddress
Datentransferrate des Ethernet-Port in Bits pro Sekunde
Beim ERTEC400 Developmentkit wird entweder 10 Mbit/s oder
100 Mbit/s angezeigt.
Datentyp: Gauge
Beim ist der ERTEC400 Developmentkit wird der Wert 6 (ethernetcsmacd) eingetragen.
Datentyp: Integer
Spezifische Referenz
Hier wird ein fester Wert „.0.0“ verwendet, da keine Referenz vorhanden
ist.
Datentyp OBJECT IDENTIFIER
Port-Indizes
Port-spezifische Objekte können über „SNMP-Variable.Port-Nummer“ adressiert werden.
Dabei entspricht der Interface-Index der Port-Nummer.
Der virtuelle Port hat die Nummer 2.
Beispiel
Die Variable „IfOperStatus.1“ ermittelt den Betriebszustand (up, down) von Port 1
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
27 -
DKSW Beschreibung
Version 3.0.0
6
Wichtige Hinweise und Einschränkungen
6.1
Ressourcenbedarf
Folgende Ressourcen werden bei der aktuellen Implementierung (inkl. Betriebssystem) belegt:
•
Ca. 1,5 MByte Flashspeicher unkomprimiert
•
Ca. 3 MByte SDRAM inclusive Code (Code läuft im RAM ab)
6.2
Minimale IO Zykluszeit
Als minimale IO Zykluszeit ist 1 msec eingestellt.
6.3
Auto-MDIX
Auto-MDIX ermöglicht die automatische Erkennung und Anpassung der Sende- und Empfangsleitungen eines
Ports. Uplink- und normale Ports der Gegenstelle werden automatisch erkannt und der eigene Port entsprechend
konfiguriert. Die Kommunikation funktioniert sowohl mit Patchkabeln als auch mit Crossover-Kabeln.
Diese Funktion ist in der IEEE 802.3 - 2005 im Gegensatz zu früheren Ausgaben nicht mehr optional, wird aber
von dem Entwicklungsboard für den NS9360 noch nicht unterstützt.
Die Fa. Digi International hat für Auto-MDIX einen Lösungsvorschlag entwickelt, nähere Informationen können
Sie dort erhalten. Alternativ können Sie auch einen anderen, auto-MDIX fähigen PHY einsetzen, z.B.
-
Broadcom BCM5221A4KPTG
NSC 83849IVS NOPB
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
28 -
DKSW Beschreibung
Version 3.0.0
7
Sonstiges
7.1
Abkürzungen/ Begriffsverzeichnis:
ACP
BSP
CLRPC
CM
DAP
DCP
DK_SW
EB 400/200
EDD
ELOG
GH
GSDML
GSY
IOD
ILOG
IOCS
IOPS
IRT
LOG
MIB
MLOG
MRP
NRT
OS
PDEV
PN-IO
PNO
RT
SNMP
SOCK
UDP
Acyclic Communication Protocol, bezeichnet eines der Software Basispakete des IO-Stacks
Board Support Package
Connectionless Remote Procedure Call, bezeichnet eines der Software Basispakete des IO-Stacks
Context Management, bezeichnet eines der Software Basispakete des IO-Stacks
Device Access Point, spezifischer Eintrag im GSD File
Dynamic Configuration Protokoll, bezeichnet eines der Software Basispakete des IO-Stacks
Development Kit Software (Entwicklungskit für Plattformen, basierend auf Standard-Ethernetcontrollern)
Evaluation Board für ERTEC 400/200 Baustein (Bestandteil der ERTEC 400/200 Entwicklungskits)
Ethernet Device Driver, bezeichnet eines der Software Basispakete des IO-Stacks
Error Logging für Debug-Zwecke (Level 1 = nur Fehler ausgeben)
GreenHill In diesem Dokument verwendete Abkürzung für den in der NET+ARM
Beispielimplementierung verwendeten Compiler/Linker.
Generic Station Description Markup Language
Generic Sync Modul, bezeichnet eines der Software Basispakete des IO-Stacks
IO-Device (Instanz) , bezeichnet eines der Software Pakete des IO-Stacks
Important Logging für Debug-Zwecke (Level 2 = Ausgabe von ELOG + ILOG)
IO Consumer Status
IO Provider Status
Isochrone RealTime
Logging für Debug-Zwecke (Level 3 = Ausgabe von ELOG + ILOG + LOG)
Management Information Base. Datenbasis für SNMP Dienste
Memory Logging für Debug-Zwecke (Level 4 = Ausgabe von ELOG + ILOG + LOG + MLOG)
Media Redundancy Protocol
Non Realtime ist ein Oberbegriff für alle Nicht – Realtime Telegramme (nicht Typ 0x8892)
Operating System, bezeichnet hier die Abstraktionsschicht für ein beliebiges Betriebssystem, auf
welches der IO-Stack portiert werden soll.
Physical Device
PROFINET IO
PROFIBUS Nutzer Organisation
Realtime ist ein Oberbegriff für azyklische und zyklische Realtime
Standard Network Management Protokoll
UDP Socket Interface für PROFINET IO, bezeichnet eines der Software Pakete des IO-Stacks
User Datagram Protokol
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
29 -
DKSW Beschreibung
Version 3.0.0
7.2
Literaturverzeichnis:
/1/
PROFINET IO Application Layer Service Definition &
PROFINET IO Application Layer Protocol Specification
(Downloadbar von der PNO Website http://profibus.com)
/2/
GSDML Specification for PROFINET IO
Version 2.10 August 2006, Order No: 2.352
PROFIBUS Nutzerorganisation e.V.
(Downloadbar von der PNO Website http://profibus.com)
/3/ a)
Das PROFINET IO-BUCH
Grundlagen und Tipps für Anwender
Manfred Popp
Hüthig Verlag
ISBN 3-7785-2966-8
(nur deutsche Version erhältlich)
b)
Industrielle Kommunikation mit PROFINET IO
Manfred Popp
PROFIBUS Nutzerorganisation e.V.
Order No: 4.182
/4/
PROFINET Technologie und Anwendung
Systembeschreibung
(Downloadbar von der PNO Website http://profibus.com)
/5/
SIMATIC PROFINET Systembeschreibung
Systemhandbuch
Zeichnungsnummer A5E00298287-02
Teil der Dokumentationspakete mit Bestellnummern 6ES7398-8FA10-8BA0 und
6ES7151-1AA10-8BA0
/6/
PROFINET IO DK Schnittstellenbeschreibung_V3.0.0
(Bestandteil dieses Produktes)
Copyright © Siemens AG 2008. All rights reserved.
Änderungen vorbehalten
-
30 -
DKSW Beschreibung
Version 3.0.0
Herunterladen