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