SIMATIC NET DP-Programmierschnittstelle (zyklische Kommunikation) Handbuch C79000-B8900-C071-07 1 Dezentrale Peripherie 2 Leistungsmerkmale der DP-Programmierschnittstelle 3 Grundprinzipien von DP 4 Struktur der DP-Programmierschnittstelle 5 Beschreibung der DP-Funktionen 6 Datenablage 7 Erstellen von DOS-Applikationen 8 Erstellen von Windows-Applikationen 9 Erstellen von Unix-Applikationen Index Glossar
215
Embed
SIMATIC NET - support.industry.siemens.com · Hinweis Wir weisen darauf hin, daß der Inhalt dieser Betriebsanleitung nicht Teil einer früheren oder bestehenden Vereinbarung, Zusage
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
2 Leistungsmerkmale der DP-Programmierschnittstelle
3 Grundprinzipien von DP
4 Struktur der DP-Programmierschnittstelle
5 Beschreibung der DP-Funktionen
6 Datenablage
7 Erstellen von DOS-Applikationen
8 Erstellen von Windows-Applikationen
9 Erstellen von Unix-Applikationen
Index
Glossar
Hinweis
Wir weisen darauf hin, daß der Inhalt dieser Betriebsanleitung nicht Teil einer früheren oder bestehenden Vereinbarung,Zusage oder eines Rechtsverhältnisses ist oder diese abändern soll. Sämtliche Verpflichtungen von Siemens ergeben sichaus dem jeweiligen Kaufvertrag, der auch die vollständige und allein gültige Gewährleistungsregel enthält. Diese vertraglichenGewährleistungsbestimmungen werden durch die Ausführungen dieser Betriebsanleitung weder erweitert noch beschränkt.
Wir weisen außerdem darauf hin, daß aus Gründen der Übersichtlichkeit in dieser Betriebsanleitung nicht jede nur erdenklicheProblemstellung im Zusammenhang mit dem Einsatz dieses Gerätes beschrieben werden kann. Sollten Sie weitereInformationen benötigen oder sollten besondere Probleme auftreten, die in der Betriebsanleitung nicht ausführlich genugbehandelt werden, können Sie die erforderliche Auskunft über die örtliche Siemens-Niederlassung anfordern.
AllgemeinesDieses Gerät wird mit Elektrizität betrieben. Beim Betrieb elektrischer Geräte stehen zwangsläufigbestimmte Teile dieser Geräte unter gefährlicher Spannung.
WARNUNG !Bei Nichtbeachtung der Warnhinweise können deshalb schwere Körperverletzungen und/oderSachschäden auftreten.
Nur entsprechend qualifiziertes Personal sollte an diesem Gerät oder in dessen Nähe arbeiten. DiesesPersonal muß gründlich mit allen Warnungen und Instandhaltungsmaßnahmen gemäß dieserBetriebsanleitung vertraut sein.
Der einwandfreie und sichere Betrieb dieses Gerätes setzt sachgemäßen Transport, fachgerechteLagerung und Montage sowie sorgfältige Bedienung und Instandhaltung voraus.
Anforderung an die Qualifikation des Personals
Qualifiziertes Personal im Sinne dieser Betriebsanleitung bzw. der Warnhinweise sind Personen, die mit Aufstellung, Montage,Inbetriebsetzung und Betrieb dieses Produktes vertraut sind und über die ihrer Tätigkeit entsprechenden Qualifikationverfügen, wie z. B.:
− Ausbildung oder Unterweisung bzw. Berechtigung, Stromkreise und Geräte bzw. Systeme gemäß den aktuellen Standardsder Sicherheitstechnik ein- und auszuschalten, zu erden und zu kennzeichnen
− Ausbildung oder Unterweisung gemäß an den aktuellen Standards der Sicherheitstechnik in Pflege und Gebrauchangemessener Sicherheitsausrüstungen
Die Dezentrale Peripherie (im folgenden mit DP abgekürzt) ermöglicht es Ihnen eineVielzahl von analogen und digitalen Ein-/Ausgabebaugruppen dezentral und prozeßnaheinzusetzen.
Zwischen den einzelnen Peripheriegeräten können große Entfernungen liegen, die durchden seriellen Feldbus PROFIBUS überbrückt werden. Dezentrale Peripheriegerätesammeln die Eingabesignale vor Ort und übertragen sie über den Feldbus an die zent-rale Steuerung im PG/PC. Umgekehrt sendet die zentrale Steuerung die Ausgabedatenzyklisch an die dezentralen Peripheriegeräte.
Die Vernetzung der Komponenten bewirkt eine erhebliche Reduzierung des Ver-kabelungsaufwands im Vergleich zur bisherigen direkten Verdrahtung der Komponenten.
Das für die dezentrale Peripherie eingesetzte Protokoll PROFIBUS DP basiert auf demKommunikationsstandard für den Feldbereich PROFIBUS EN 50 170 Vol. 2. DasDP-Kommunikationskonzept wurde in einem Gemeinschaftsprojekt führender Herstellervon Automatisierungsgeräten festgelegt. Es beschreibt ein auf die Erfordernisse imFeldbereich zugeschnittenes, herstellerunabhängiges Übertragungsprotokoll. DP nutzteine Untermenge der in EN 50 170 genormten offenen Kommunikationsdienste.
PROFIBUS DP ist für zeitkritische Anwendungen konzipiert. Durch ein optimiertes undeinfaches Übertragungsprotokoll, hohe Übertragungsgeschwindigkeiten und die Verwen-dung einer Master-Slave-Struktur werden kurze Zykluszeiten erreicht.
Der vorliegende Band beschreibt das DP-Protokoll und dessen Programmierung.
5.8 dpn_slv_diag (Diagnosedaten eines Slaves anfordern).................................100
5.9 dpn_read_sys_info (Statusinformationen des DP-Systems ermitteln) ...........103
5.10 dpn_out_slv (Ausgabedaten an einen DP-Slave senden)..............................107
5.11 dpn_out_slv_m (Ausgabedaten an mehrere DP-Slaves senden)...................111
5.12 dpn_out_slv_ext (Ausgabedaten an mehrere Slaves senden - erweiterteFunktion) ......................................................................................................116
5.13 dpn_read_slv (Lokale Ausgabedaten eines DP-Slaves lesen).......................121
5.14 dpn_in_slv (Eingabedaten eines DP-Slaves lesen) .......................................125
Für die verschiedenen Anwendungsgebiete sind die Peripheriegerätein unterschiedlichen Ausführungen erhältlich:
Bezeichnung Beschreibung
ET 200M Das ET 200M ist ein modulares Peripheriegerät inder Schutzart IP 20, das mit Signalbaugruppen derAufbautechnik S7-300 ergänzt wird.
ET 200B Das ET 200B ist ein kleines, kompaktes Peripherie-gerät mit geringer Einbautiefe in der Schutzart IP20.
Es sind zahlreiche analoge und digitale Ein-/Ausgabemodule verfügbar.
ET 200C Das ET 200C ist ein kompaktes Peripheriegerät inder hohen Schutzart IP 66/IP 67.
Es sind Peripheriegeräte ET 200C mit digitalen undanalogen Ein-/ und Ausgängen verfügbar.
Es ist aufgrund seiner robusten Bauweise beson-ders für den Einsatz in rauher Industrieumgebunggeeignet.
Aufbau undMontage
Detaillierte Informationen bezüglich Funktionsweise, Aufbau undMontage obiger Peripheriegeräte können Sie den jeweiligen Produkt-handbüchern entnehmen.
WeitereInformationen
Weitere Informationen zu verfügbaren Komponenten und Anschluß-technik finden Sie im SIMATIC NET Katalog IK 10.
Die PROFIBUS-Norm EN 50 170 Vol. 2 definiert zwei Klassen vonBusteilnehmern:
• passive Busteilnehmer
• aktive Busteilnehmer
Im Dezentralen Peripheriesystem sind die Peripheriegeräte passiveBusteilnehmer. Sie werden als DP-Slaves bezeichnet. Gesteuert wer-den die DP-Slaves von einer aktiven Master-Station. Diese Master-Station wird als DP-Master bezeichnet.
Die DP-Programmierschnittstelle ermöglicht den Einsatz eines PRO-FIBUS-CP in einem PG/PC als DP-Master der Klasse 1. Der PC steu-ert mit Hilfe des PROFIBUS-CP die Kommunikation zu den dezentra-len Peripheriegeräten und übt die zentralen Funktionen einesDP-Masters der Klasse 1 nach EN 50 170 Vol. 2 aus, d. h.:
Die DP-Programmierschnittstelle bietet folgende Leistungsmerkmale:
• Einfache Anbindung einer DP-Applikation über Funktionen derDP-Programmierschnittstelle
• Mehrstufiges Sicherheitskonzept
• Sicherung der Datenkonsistenz
• Unterstützung des Single-User-/Multi-User-Betriebs
• Unterstützung des Single-Board-/Multi-Board-Betriebs
• Unterstützung unterschiedlicher Betriebssysteme und Compiler
• Unterstützung von Slaves des ET 200-Systems
Die einzelnen Punkte werden im folgenden näher erläutert.
EinfacheAnbindung vonDP-Applikationen
Die DP-Programmierschnittstelle stellt Ihnen in Form einer Library eineReihe von Funktionen zur Verfügung. Alle Funktionen sind nach einemeinheitlichen Schema aufgebaut. Sie ermöglichen auf einfache Weiseden Zugriff auf die Funktionen des DP-Masters (Klasse 1).
Die Funktionsaufrufe der DP-Programmierschnittstelle werden in Ka-pitel 5 detailliert erläutert.
MehrstufigesSicherheitskonzept
Die DP-Programmierschnittstelle bietet ein mehrstufiges Sicherungs-konzept, um die Auswirkungen eines Ausfalls der Kommunikationsver-bindung oder des DP-Masters zu begrenzen.
• Eine projektierbare Ansprechüberwachung für DP-Slaves sorgtdafür, daß ein längere Zeit nicht angesprochener DP-Slave in einensicheren Betriebszustand übergeht.
• Eine aktivierbare AUTOCLEAR-Funktion sorgt dafür, daß bei ein-zelnen nicht ansprechbaren DP-Slaves der DP-Master automatischin den CLEAR-Zustand übergeht.
• Eine im DP-Master zuschaltbare Aktivitätsüberwachung erkennt dieInaktivität einer DP-Applikation und kann so die von ihr kontrollier-ten DP-Slaves in einen sicheren Betriebszustand bringen.
Detaillierte Informationen zur Ansprechüberwachung finden Sie imKapitel 3.7.1. Die AUTOCLEAR-Funktion ist im Kapitel 3.7.6 und dieAktivitätsüberwachung im Kapitel 5.2 ausführlich beschrieben.
Sicherung derDatenkonsistenz
Bei der Übertragung der Daten zwischen DP-Slave und DP-Applikationist die Datenkonsistenz durch interne Sicherungsmechanismen ge-währleistet.
Im Single-User-Betrieb greift nur eine DP-Applikation auf dieDP-Programmierschnittstelle zu. Dies ist die Standardanwendung un-ter DOS.
Bei Betriebssystemen, die ein Multitasking ermöglichen (z. B. Win-dows 3.x, Windows 95 und Windows NT), können mehrere voneinan-der unabhängige DP-Applikationen gemeinsam dieDP-Programmierschnittstelle nutzen. Für solche Anwendungsfälle stelltdie DP-Programmierschnittstelle Mechanismen zur Koordinierung derTasks zur Verfügung.
Single-Board-/Multi-Board-Betrieb
Single-Board-Betrieb bedeutet, daß nur ein PROFIBUS-CP im PG/PCbetrieben wird.
Beim Multi-Board-Betrieb werden mehrere PROFIBUS-CP im PG/PCparallel betrieben. Jede dieser Baugruppen ist an einem eigenen Busangeschlossen. Dadurch können von einem Rechner aus mehrerePROFIBUS DP-Bussysteme gesteuert werden. Jeder CP ist dabeiDP-Master im entsprechenden Bus.
Detaillierte Informationen zum Single-Board- und Multi-Board-Betriebbei den unterschiedlichen Betriebssystemen finden Sie in den Kapi-teln 7 und 8.
Betriebssysteme/Compiler
Die DP-Programmierschnittstelle ist für unterschiedliche Betriebssys-teme und Compiler ausgelegt.
Detaillierte Information zu den unterstützen Betriebssystemen, Com-piler, Speichermodell, DP-Library, Include-Files etc. finden Sie in denKapiteln 7, 8 und 9.
In diesem Kapitel werden die grundlegenden Prinzipien des DP-Protokolls erläutert. DasVerständnis der Kommunikationsstruktur zwischen DP-Master und DP-Slaves ist Vor-aussetzung für die effiziente Nutzung der Funktionsaufrufe der DP-Programmier-schnittstelle.
Das Kapitel zeigt Ihnen,
• wie der Datentransfer zwischen DP-Master und DP-Slaves stattfindet
• wie die Datenstrukturen im DP-Master organisiert sind
• die verschiedenen Betriebsarten des DP-Masters
• welche Ereignisse dem DP-Master gemeldet werden können
• die verschiedenen Betriebszustände der DP-Slaves
• welche Steuertelegramme der DP-Master an die DP-Slaves sendet
• was bei der Projektierung zu beachten ist.
Inhalt Kapitel 3
3.1 Kommunikation zwischen den DP-Stationen...................................................163.1.1 Polling ............................................................................................................163.1.2 Diagnosemeldungen.......................................................................................183.1.3 Parametrierung/Konfigurierung.......................................................................19
3.2 Datenbereiche im DP-Master..........................................................................20
3.3 Die Betriebsarten des DP-Masters..................................................................23
3.4 Die Ereignismeldungen des DP-Masters.........................................................25
3.5 Der Betriebszustand der DP-Slaves................................................................26
3.6 Steuertelegramme an einen oder mehrere Slaves..........................................273.6.1 Zyklisches Senden von Steuertelegrammen...................................................283.6.2 Azyklisches Senden von Steuertelegrammen .................................................31
3.7 Hinweise zur Projektierung .............................................................................323.7.1 Ansprechüberwachung ...................................................................................333.7.2 Data Control Time ..........................................................................................343.7.3 Poll Timeout ...................................................................................................353.7.4 Min Slave Interval ..........................................................................................363.7.5 Deaktivierung eines DP-Slaves ......................................................................373.7.6 AUTOCLEAR .................................................................................................383.7.7 Konfigurierdaten.............................................................................................39
Beschreibung Die Kommunikation zwischen dem DP-Master und den dezentralenPeripheriestationen erfolgt durch Polling. Polling bedeutet, daß derDP-Master in der Produktivphase zyklisch Aufruftelegramme an dieihm zugeordneten DP-Slaves sendet. Für jeden DP-Slave wird eineigenes Aufruftelegramm gesendet.
Aufruf- undEmpfangs-telegramm
Das Aufruftelegramm enthält die aktuellen Ausgabedaten, die derDP-Slave an seinen Ausgabeports anlegen soll. Besitzt ein DP-Slavekeine Ausgabeports, wird statt dessen ein „Leertelegramm“ gesendet.
Der Empfang eines Aufruftelegramms muß vom adressiertenDP-Slave durch Zurücksenden eines Quittungstelegramms bestätigtwerden. Das Quittungstelegramm enthält die aktuellen Eingabedaten,die an den Eingabeports des DP-Slaves anliegen. Besitzt ein DP-Slavekeine Eingabeports, wird statt dessen ein „Leertelegramm“ zurückge-sendet.
Bild 3.1: Schematische Darstellung des Polling
Poll-Zyklus In einem Poll-Zyklus werden alle betriebsbereiten DP-Slaves adres-siert. Der Adressierung des letzten Slaves schließt sich sofort ein wei-terer Poll-Zyklus an.
Durch dieses Verfahren wird die Aktualität der Daten gewährleistet.
An der Datenschnittstelle des DP-Masters stehen die aktuellen Einga-bedaten und Diagnosedaten der DP-Slaves der DP-Applikation zurVerfügung. An den Ausgabeports der DP-Slaves werden die aktuellenAusgabewerte der DP-Applikation angelegt.
Hinweis Das DP-Protokoll ist auf schnellen Datendurchsatz zwischen Masterund Slave hin optimiert und besitzt daher keine Flußkontrolle zwischenMaster und Slave. Ein- und Ausgabedaten werden zyklisch zwischenMaster und Slave ausgetauscht. Beachten Sie in diesem Zusammen-hang bei der Erstellung einer DP-Applikation folgende Punkte: • Wenn Sie Ausgabedaten im Datenabbild das Masters innerhalb
der Zykluszeit mehrfach ändern, werden einzelne Werte nicht andie Slaves übertragen.
• Wenn Sie Eingabedaten im Datenabbild des Masters nicht inner-halb der Zykluszeit lesen, so können einzelne Werteänderungender Slaves verloren gehen.
Signalisierung Ein DP-Slave kann im Quittungstelegramm nicht nur die aktuellenEingabedaten zurücksenden, sondern auch dem DP-Master signalisie-ren, daß Diagnosemeldungen bereitstehen.
Beschreibung Diagnosemeldungen informieren die DP-Applikation darüber, daß be-sondere Ereignisse oder Fehlerzustände beim DP-Slave aufgetretensind, wie zum Beispiel Kurzschluß, Unterspannung, Überspannung,Überlast, Leitungsbruch usw.
Reaktion Als Reaktion auf eine Diagnosemeldung liest der DP-Master die Diag-nosedaten durch ein spezielles Aufruftelegramm aus und stellt sie derDP-Applikation zur Verfügung.
Die Diagnosedaten sind nach einem einheitlichen Schema aufgebaut(siehe Kapitel 6.2 ff). Sie ermöglichen der DP-Applikation eine detail-lierte Fehleranalyse.
Beschreibung Im DP-Master sind für jeden projektierten DP-Slave drei unterschiedli-che Datenbereiche vorhanden:
• Eingabedaten vom DP-Slave
• Ausgabedaten an den DP-Slave
• Diagnosedaten vom DP-Slave
Eigenschaften Diese Bereiche bilden eine gemeinsame Schnittstelle zwischen demCP und der DP-Applikation.
• Sie werden in der Produktivphase ständig aktualisiert.
• Ein interner Sicherungsmechanismus gewährleistet die Konsistenzder Daten beim gleichzeitigen Zugriff der DP-Applikation und derFieldbus-Zugriffssteuerung.
• Über verschiedene Funktionsaufrufe der DP-Programmierschnitt-stelle hat eine DP-Applikation Zugriff auf die Datenbereiche.
Bild 3.2 zeigt die vorhandenen Datenbereiche des DP-Masters.
PROFIBUS-Zugriffssteuerung
Datengruppe
Datengruppe
etc.
DP-Master
PROFIBUS
Funktionsaufrufe der DP-Applikation
Eingabedatenlesen
Ausgabedatenschreiben
Diagnosedatenlesen
Konsistenz-sicherung
Eingabe-daten
Konsistenz-sicherung
Diagnose-daten
Ausgabe-daten
Slave 2
Slave 1
Konsistenz-sicherung
Konsistenz-sicherung
Ausgabe-daten
Konsistenz-sicherung
Eingabe-daten
Diagnose-daten
Konsistenz-sicherung
Bild 3.2: Datenbereiche des DP-Masters
Ausgabedaten Die Daten dieses Bereichs werden von der DP-Applikation vorgege-ben. In der Produktivphase (d. h. nach erfolgreicher Parametrie-rung/Konfigurierung) werden sie zyklisch an den DP-Slave gesendet.Sind keine Ausgabedaten vorhanden, wird anstelle der Ausgabedatenein „Leertelegramm“ übertragen.
Eingabedaten In der Produktivphase sendet der DP-Slave nach jedem Aufruftele-gramm des DP-Masters im Antworttelegramm seine Eingabedatenzurück. Besitzt der DP-Slave keine Eingabeports, wird statt dessen ein„Leertelegramm“ gesendet. Die empfangenen Antwortdaten werden imEingabebereich des DP-Masters hinterlegt.
Diagnosedaten Erkennt ein DP-Slave in der Initialisierungs- oder Produktivphase ei-nen Fehler, kann er diesen über eine Diagnoseanforderung an denDP-Master melden. Die empfangenen Diagnosedaten werden im Di-agnosebereich des DP-Masters abgelegt.
Überblick Die Kommunikation zwischen dem DP-Master und den DP-Slavesverläuft innerhalb der vier Betriebsarten:
• OFFLINE
• STOP
• CLEAR
• OPERATE
Betriebsarten Jede dieser Betriebsarten ist durch definierte Aktionen zwischenDP-Master und den DP-Slaves gekennzeichnet.
Betriebsart Bedeutung
OFFLINE Es findet keinerlei DP-Kommunikation zwischenDP-Master und den DP-Slaves statt. Dies ist derGrundzustand der DP-Masters.
STOP Auch in dieser Betriebsart findet keinerlei DP-Kommunikation zwischen DP-Master und denDP-Slaves statt. Im Gegensatz zur Betriebsart OFFLI-NE kann eine DP-Diagnosestation (DP-Master Klasse 2) Diagnoseinformationen des DP-Masters auslesen.
CLEAR In dieser Betriebsart erfolgt die Parametrierung undKonfigurierung aller DP-Slaves, die in der Datenbasiseingetragen und aktiviert sind. Anschließend beginntder zyklische Datenaustausch zwischen DP-Masterund DP-Slaves. Dabei wird in der Betriebsart CLEARan alle Slaves mit Prozeßausgabe der Wert 0h gesen-det, d. h. die Prozeßausgabe ist deaktiviert. Die Ein-gabedaten der Slaves sind bekannt und können aus-gelesen werden.
OPERATE In der Betriebsart OPERATE findet der zyklische Da-tentransfer zu den DP-Slaves statt. Dies ist die Pro-duktivphase. In dieser Betriebsart werden reihum dieDP-Slaves vom DP-Master angesprochen. Im Aufruf-telegramm werden die aktuellen Ausgabedaten, im zu-gehörigen Antworttelegramm werden die aktuellenEingabedaten transferiert.
Zu Beginn befindet sich der DP-Master in der Betriebsart OFFLINE.Um in die Produktivphase, d. h. in die Betriebsart OPERATE zu gelan-gen, müssen die obigen Betriebszustände in der folgenden Reihenfol-ge durchlaufen werden:
OFFLINE ➜ STOP ➜ CLEAR ➜ OPERATE
Die DP-Programmierschnittstelle bietet zwei Möglichkeiten, die Be-triebsart zu wechseln:
• Nach Anmeldung einer DP-Applikation nimmt der DP-Master selb-ständig die Betriebsart OPERATE ein (d. h. ohne weitere Aktionender DP-Applikation) und bleibt dort, bis die DP-Applikation beendetwird.
• Nach der Anmeldung einer DP-Applikation verbleibt der DP-Masterin der Betriebsart OFFLINE. Der Übergang in eine andere Betriebs-art wird durch einen speziellen Funktionsaufruf der DP-Applikationausgelöst, d. h. die DP-Applikation ist für die Einstellung der Be-triebsart verantwortlich.
Welche der beiden Möglichkeiten gewählt wird, wird bei der Anmel-dung der DP-Applikation festgelegt.
Sonderfall„AUTOCLEAR“
Unabhängig von den oben geschilderten Möglichkeiten kann bei derProjektierung festgelegt werden, daß das DP-System im Falle einesFehlers in eine „sichere“ Betriebsart wechselt. Diese Funktionalität wirdAUTOCLEAR genannt.
Hierzu muß im Projektier-Tool die Option „Autoclear“ eingestelltwerden.
Wirkung:Tritt während der Produktivphase bei einem oder mehreren DP-Slavesein Fehler auf, wechselt der DP-Master selbsttätig in den ZustandCLEAR über (Herunterfahren des DP-Systems). Im Zustand CLEARsendet der DP-Master in Ausgaberichtung Daten mit dem Wert 0h oderein Leertelegramm an die DP-Slaves. Der Zustand wird vomDP-Master nicht mehr selbständig verlassen, d. h. ein erneuter Über-gang in die Betriebsart OPERATE muß vom Anwender explizit ange-stoßen werden.
WeitereInformationen
Die aktuelle Betriebsart des DP-Masters kann die DP-Applikation beibestimmten Funktionsaufrufen einem Rückgabeparameter entnehmen.Detailliertere Informationen zu diesem Thema finden sich in Kapi-tel 4.8.3, „Konstanten der Betriebsarten“ bzw. Kapitel 5,„DP-Funktionsaufrufe“.
Übersicht Während der Betriebsphase können unerwartete Ereignisse auftreten,die für die DP-Applikation von Bedeutung sind. In diesem Fall kann derDP-Master folgende Ereignisse der DP-Applikation über einen Rück-gabeparameter bei DP-Funktionsaufrufen mitteilen:
Ereignismeldung Bedeutung
Autoclear Selbsttätiges Herunterfahren des DP-Systems in die BetriebsartCLEAR, wenn bei der Kommunikation mit DP-Slaves Fehler aufge-treten sind.
Voraussetzung:Die Funktionalität AUTOCLEAR muß im COM PROFIBUS projektiertwerden.
Timeout Ablauf der Auftragsüberwachungszeit der DP-Applikation.
Ursache:Die DP-Applikation hat innerhalb der von ihr vorgegebenen Überwa-chungszeit keinen DP-Funktionsaufruf durchgeführt.
Voraussetzung:Die DP-Applikation muß sich zuvor angemeldet und eine Überwa-chungszeit an den DP-Master übergeben haben. Die dazu notwendi-gen Funktionsaufrufe sind in Kapitel 5 beschrieben.
Zugriff einesDP-Masters derKlasse 2
Der DP-Master der Klasse 2 ist eine spezielle DP-Diagnosestation,die eine detaillierte Online-Diagnose beim DP-Master Klasse 1 undbei den DP-Slaves durchführen kann. Die Ereignismeldung signali-siert, daß eine DP-Diagnosestation am Busverkehr teilnimmt und ge-rade auf interne Diagnoselisten des DP-Masters zugreift.
Anmerkung:Bei der vorliegenden DP-Firmware ist i.allg. keine besondere Reakti-on der DP-Applikation auf die Ereignismeldung erforderlich, da derCP das Daten-Handling mit der Diagnosestation selbsttätig abwi-ckelt.
Die Ereignismeldung ist als „Platzhalter“ für künftige erweiterteDP-Diagnosefunktionen vorgesehen, bei denen die DP-Applikationoptional die Möglichkeit hat, bestimmte Diagnoseabläufe mit derDP-Diagnosestation zu koordinieren.
WeitereInformationen
Die Ereignismeldungen werden vom DP-Master bei Funktionsaufrufeneiner DP-Applikation in einem speziellen Rückgabeparameter hinter-legt. Detailliertere Informationen zu den auftretenden Konstanten beiEreignismeldungen finden Sie in Kapitel 4.8.4, zu den Funktionsauf-rufen in Kapitel 5.
Übersicht In der Betriebsphase wertet der DP-Master die empfangenen Quit-tungstelegramme der DP-Slaves aus. Aus ihnen kann der DP-Masterden aktuellen Betriebszustand der DP-Slaves ermitteln. DieDP-Applikation kann bei verschiedenen DP-Funktionsaufrufen denermittelten Wert abfragen.
Betriebszustände Folgende Betriebszustände eines DP-Slaves können derDP-Applikation gemeldet werden:
• Der DP-Slave ist in der Datentransferphase.
• Der DP-Slave ist in der Datentransferphase, zusätzlich sind Diag-nosedaten vorhanden.
• Der DP-Slave ist nicht in der Datentransferphase (Anlauf des CP).
• Der DP-Slave ist nicht in der Datentransferphase.
• Der DP-Slave ist nicht in der Datentransferphase, zusätzlich sindDiagnosedaten vorhanden.
• Der DP-Slave ist nicht aktiviert.
WeitereInformationen
Der Betriebszustand eines Slaves wird vom DP-Master bei bestimmtenFunktionsaufrufen einer DP-Applikation in einem Rückgabeparameterhinterlegt. Detaillierte Informationen zu den dabei auftretenden Kon-stanten finden sich in Kapitel 4.8.2, zu den Funktionsaufrufen in Kapi-tel 5.
Übersicht Bei der Projektierung kann einem Slave eine Gruppenidentifikationzugewiesen werden, d. h. es ist möglich, mehrere Slaves in einerGruppe zusammenzufassen (bis zu acht verschiedene Gruppen kön-nen gebildet werden). In der Produktivphase können dann einzelneGruppen mit Steuertelegrammen (sogenannten Global Control Tele-grammen) gezielt angesprochen werden.
Ein Steuertelegramm ist ein Telegramm, das der Master an einen, eineGruppe, mehrere Gruppen oder an alle Slaves sendet. Diese Tele-gramme werden von den angesprochenen Slaves nicht quittiert.
Steuertelegramme dienen der Übertragung von Steuerkommandos(sogenannte Global Control Commands) an die ausgewählten Slaveszum Zwecke der Synchronisation. Dabei enthält ein Steuerkommandodrei Komponenten:
• Kennung, ob ein oder mehrere DP-Slaves adressiert werden
• Identifikation der Slave-Gruppe
• Steuerkommando
Gruppenbildung Welche der Slaves zu einer Gruppe gehören, wird beim Erstellen derDatenbasis durch das Projektierungswerkzeug COM PROFIBUS fest-gelegt. Dabei kann optional für jeden DP-Slave eine Gruppennummervergeben werden. Diese Gruppennummer wird dem DP-Slave in derParametrierphase bekannt gemacht. Insgesamt können bis zu achtGruppen gebildet werden.
Steuerkommandos Folgende Steuerkommandos können an DP-Slaves gesendet werden:
Slave-Modi Beschreibung
FREEZE Die Zustände der Eingänge werden eingelesenund eingefroren.
UNFREEZE Das Einfrieren der Eingänge wird aufgehoben.
SYNC Die Ausgabe wird eingefroren.
UNSYNC Das Kommando UNSYNC hebt das KommandoSYNC auf.
Synchronisation Steuertelegramme können zyklisch oder azyklisch an die Slaves ge-sendet werden.
Bei der Projektierung mit dem COM PROFIBUS kann der Anwendervorgeben, ob ein Slave im SYNC-Mode, im FREEZE-Mode, im SYNC-und im FREEZE-Mode oder in keinem der beiden Modi betrieben wer-den soll.
Die Slaves, die in einem bestimmten Modus betrieben werden sollen,werden vom DP-Master automatisch berücksichtigt.
Verhalten desSlaves
Nachdem mit allen Slaves der Datentransfer durchgeführt wurde, wirdeine projektierte Zeit (Min Slave Interval, siehe Kap. 3.7.4) gewartet,um allen Slaves, die im SYNC-Mode betrieben werden, die interneAufbereitung der zuvor übergebenen Ausgabedaten zu ermöglichen.
Nach Ablauf dieser Zeit sendet der DP-Master ein Steuertelegramm analle Slaves, die im SYNC- und/oder FREEZE-Mode betrieben werden.Das bewirkt, daß alle Slaves, die im SYNC-Mode betrieben werden,zyklisch die zuvor übergebenen Daten auf ihre Prozeßausgabe schal-ten. Alle Slaves, die im FREEZE-Mode betrieben werden, übernehmennach Erhalt dieses Telegramms synchron die Eingabedaten des Pro-zesses.
Verhalten desMasters
Der DP-Master wartet nach dem Senden des Telegramms erneut dievorprojektierte Zeit ab, ehe er mit einem erneuten Datentransferzyklusbeginnt. Dadurch gibt er den im FREEZE-Mode betriebenen SlavesGelegenheit, die soeben synchron übernommene Prozeßeingabe fürdas spätere Antworttelegramm an den Master (im Rahmen des folgen-den Datentransferzyklus) aufzubereiten.
Bild 3.3 zeigt den Fall des Zyklisches Sendens am Beispiel zweierDP-Slaves.
Es entstehen drei Zeitabschnitte.
E-Signal A-Signal x
E-Signal x A-Signal x+1
Pollzyklus
E-Signal A-Signal x-1
E-Signal x-1 A-Signal x
Pollzyklus
Min Slave Intervall
SteuerkommandoSync und Freeze
Min Slave Intervall
DP- Master
DP-Slave Nr. 1(Betrieb im FREEZE-Mode)
DP-Slave Nr. 2 (Betrieb im SYNC-Mode)
Zeitabschnitt a Zeitabschnitt b Zeitabschnitt c
A-Signal xE-Signal x
ZeitachseX
Bild 3.3: Zyklisches Senden am Beispiel zweier DP-Slaves
Zeitabschnitt a Während des Poll-Zyklus fordert der DP-Master die Eingabedaten vonSlave Nr. 1 an. Der Slave antwortet mit denjenigen Eingabedaten, dieer zum Zeitpunkt des vorangegangenen Steuertelegramms übernom-men hat. Anschließend sendet der DP-Master neue Ausgabedaten anden Slave Nr. 2, die dieser nicht ausgibt.
Zeitabschnitt b Zum Zeitpunkt x sendet der DP-Master ein Steuertelegramm an dieDP-Slaves. DP-Slave Nr. 1 übernimmt daraufhin das anliegende Ein-gangssignal x. Gleichzeitig übergibt Slave Nr. 2 die Ausgabedaten, dieer beim vorangegangenen Poll-Zyklus vom DP-Master erhalten hat, anden Prozeß.
Zeitabschnitt c Während des Poll-Zyklus antwortet Slave Nr. 1 mit dem zum Zeitpunktx übernommenen Eingangswert. Der DP-Master sendet an Slave Nr. 2neue Ausgabedaten.
Beschreibung Zusätzlich bietet die DP-Programmierschnittstelle die MöglichkeitSteuertelegramme azyklisch, d. h. ohne Abstimmung mit dem Poll-Zyklus bzw. mit der projektierten „Min Slave Interval“-Zeit, an be-stimmte Slaves zu senden.
Hierzu wird der DP-Applikation ein entsprechender Funktionsaufruf zurVerfügung gestellt, womit dem DP-Master der Auftrag zum einmaligenSenden eines Steuertelegramms übergeben wird.
WeitereInformationen
Detailliertere Information zu den Konstanten für einzelne Steuerkom-mandos finden Sie in Kapitel 4.8.5, zu dem Funktionsaufruf zum azyk-lischen Senden von Steuertelegrammen in Kapitel 5.19.
Wichtig ist in diesem Zusammenhang, daß nicht alle Slaves einenBetrieb im SYNC- oder FREEZE-Modus unterstützen. Es gelten dieAngaben des jeweiligen Herstellers.
Allgemeines Um die Kommunikation mit den DP-Slaves durchführen zu können,benötigt der DP-Master eine Datenbasis. Die Datenbasis enthält alleerforderlichen Betriebs- und Projektierungsdaten einer DP-Anlage.
Für die Projektierung steht das Tool COM PROFIBUS zur Verfügung.Es erzeugt die Datenbasis des CP.
Detaillierte Informationen zur Handhabung entnehmen Sie bitte demBand „SIMATIC Dezentrales Peripheriesystem ET 200“.
Datenverkehr zwischen CP und DP-Slaves findet erst nach dem An-melden einer DP-Applikation statt.
Beschreibung Die Ansprechüberwachung eines DP-Slaves kann in der Parametrier-phase vom DP-Master aktiviert oder deaktiviert werden (je nach Vor-gabe aus der projektierten Datenbasis).
AktivierteAnsprech-überwachung
Ist die Ansprechüberwachung eines DP-Slaves aktiviert, muß derDP-Master innerhalb der vorgegebenen Zeit mit dem DP-Slave kom-munizieren.
Geschieht dies nicht, so schaltet der Slave seine Ausgänge in einensicheren Zustand und nimmt nicht mehr am Datentransfer mit demMaster teil, da der Slave davon ausgeht, daß ein schwerwiegenderFehler aufgetreten ist, zum Beispiel Leitungsbruch oder Ausfall desDP-Masters.
Der Master muß den Slave dann erneut parametrieren und konfigurie-ren. Erst dann ist wieder der Austausch von Produktivdaten möglich.
Welchen Wert die Ausgänge annehmen, ist aus der Beschreibung derDP-Slaves zu entnehmen.
Beschreibung Die „Data Control Time“ ist fest eingestellt. Nach Ablauf der „DataControl Time“ prüft der DP-Master, ob alle Slaves, die in der Datenba-sis projektiert sind, am Datentransfer teilnehmen.
Ausnahme Eine Ausnahme bilden Slaves die zwar projektiert aber beim Ablaufder „Data Control Time“ deaktiviert sind (siehe auch Kap. 3.7.5).
Nimmt einer der aktivierten Slaves nicht am Datentransfer teil, und istzusätzlich die Funktionalität AUTOCLEAR eingestellt, so wechselt derDP-Master automatisch in die Betriebsart CLEAR.
Nach Ablauf dieser Zeit teilt der DP-Master den zugeordnetenDP-Slaves seinen Betriebszustand mit.
Beschreibung Die Zeit „Poll Timeout“ kann durch einen Funktionsaufruf derDP-Programmierschnittstelle eingestellt werden. Die Zeit dient derÜberwachung der Kommunikation mit einem DP-Master der Klasse 2(DP-Diagnosemaster).
DP-Master derKlasse 1
Der DP-Diagnosemaster kann beim DP-Master der Klasse 1 (z.B.CP 5412 (A2)) im laufenden Betrieb bestimmte Informationen (bei-spielsweise die Betriebsart des DP-Masters der Klasse 1) anfordern.
Kann der Auftrag bearbeitet werden, stellt der DP-Master der Klasse 1die gewünschten Daten zur Abholung bereit.
Holt der DP-Diagnosemaster diese Daten nicht innerhalb der „PollTimeout“-Zeit ab, werden diese wieder zurückgenommen.
Beschreibung Diese Funktionalität ermöglicht eine selbständige Überwachung derDP-Anlage durch den DP-Master.
Ist diese Funktionalität ausgewählt, prüft der Master nach Ablauf der„Data Control Time“ (Kapitel 3.7.2), ob alle Slaves, die nicht deaktiviertwurden (Kapitel 3.7.5), am Datentransfer teilnehmen.
Ist dies nicht der Fall, so wechselt der DP-Master in die BetriebsartCLEAR.
Dieses Kapitel vermittelt eine Übersicht der Funktionsaufrufe, die Ihnen dieDP-Programmierschnittstelle zur Verfügung stellt. Entsprechend ihrer Bedeutung sinddie Funktionsaufrufe in mehrere Gruppen unterteilt.
Es wird die prinzipielle Struktur einer DP-Applikation beschrieben, die sich in mehrerefunktionale Abschnitte untergliedern läßt.
Jedem dieser Abschnitte werden dabei die passenden Funktionsaufrufe zugeordnet. Siekönnen der Beschreibung entnehmen, welche Funktionsaufrufe zwingend verwendetwerden müssen und welche Funktionsaufrufe optional sind.
Das Kapitel zeigt darüber hinaus den Aufbau und die Elemente der Datenstrukturen, dieals Aufrufparameter an die Funktionen übergeben werden.
Es werden die vordefinierten Konstanten beschrieben, die den unterschiedlichen Ele-menten der Datenstrukturen zugewiesen werden. Dabei wird zwischen Vorgabe- undRückgabeparameter unterschieden.
Die Rückgabeparameter der Funktionsaufrufe sind in einer Übersichtstabelle aufgeführt.Jedem Rückgabeparameter ist eine kurze Beschreibung beigefügt.
Inhalt Kapitel 4
4.1 Übersicht der DP-Aufruffunktionen .................................................................42
4.2 Allgemeiner Aufruf der DP-Funktionen ...........................................................44
4.3 Auswerten eines Funktionsaufrufs ..................................................................454.3.1 Auswerten des Rückgabewertes .....................................................................464.3.2 Auswerten des Strukturelementes error_code.................................................47
dpn_read_slv() Lokale Ausgabedaten eines einzelnen Slaves lesen
Steuerfunktionen Die folgende Tabelle gibt einen Überblick über die Steuerfunktionen.Eine genaue Beschreibung finden sie ab Kapitel 5.16 auf Seite 134.
Aufruffunktion Beschreibung
dpn_set_mode() DP-Betriebsart einstellen
dpn_get_mode() Aktuelle DP-Betriebsart auslesen
dpn_global_ctrl() Steuerkommandos an eine Slave-Gruppe senden
Close-Funktionen Die folgende Tabelle gibt einen Überblick über die Close-Funktionen.Eine genaue Beschreibung finden sie ab Kapitel 5.20 auf Seite 149.
Aufruffunktion Beschreibung
dpn_reset() Abmelden einer DP-Applikation an der DP-Pro-grammierschnittstelle
Beschreibung Jede Funktion erwartet als Übergabeparameter einen Zeiger auf dieStruktur dpn_interface. Der Aufbau dieser Struktur ist in Kapitel 4.5beschrieben.
Rückgabewert = dpn_..(struct dpn_interface far * ptr);
oder
Rückgabewert = dpn_..(struct dpn_interface_m far * ptr);
Ausnahme Für die beiden Aufruffunktionen dpn_in_slv_m() und dpn_out_slv_m()wird die Struktur dpn_interface_m verwendet, die ebenfalls in Kapi-tel 4.5 beschrieben ist.Die Strukturen sind in der Datei DPN_USER.H definiert.
Über den Rückgabewert des Funktionsaufrufes (Typ: unsigned short)kann die aufrufende DP-Applikation prüfen, ob die Funktion bearbeitetwerden konnte.
Rückgabewert desFunktionsaufrufes
Bedeutung
DPN_NO_ERROR Funktion konnte bearbeitet werden. DieRückgabeparameter der Strukturdpn_interface (dpn_interface_m) sind gültig.
ungleich DPN_NO_ERROR Die Bearbeitung der Funktion wurde wegeneines Fehlers abgebrochen. Die Rückgabe-parameter der Struktur dpn_interface(dpn_interface_m) sind nicht gültig.
Der Rückgabeparameter der Funktion ent-hält eine detaillierte Fehlerkennung.
Beispiel Überprüfen des Rückgabewertes am Beispiel der Funktiondpn_get_mode().
include "dpn_user.h"
struct dpn_interface myDpnInterface;/* get actual mode of DP-System */unsigned char GetActualMode (unsigned char myBoard, unsigned char myAccess){unsigned short int result; unsigned char mode; myDpnInterface.reference.board_select = myBoard; myDpnInterface.reference.access = myAccess; result = dpn_get_mode (&myDpnInterface); if (result == DPN_NO_ERROR) /* result is valid */ { mode = myDpnInterface.sys_state; } else { mode = 0xff; /* sign for invalid */ switch (result) { /* check error code */ } } return (mode);}
Eine DP-Applikation kann alternativ den Rückgabeparameter desFunktionsaufrufs (siehe oben) oder das Strukturelement error_codeauswerten, um zu ermitteln, ob die Funktion bearbeitet werden konnte.Das Strukturelement error_code in der Struktur dpn_interface(_m) istidentisch mit dem Rückgabeparameter der Funktion.
Strukturelementerror_code
Bedeutung
DPN_NO_ERROR Funktion konnte bearbeitet werden. Die rest-lichen Rückgabeparameter der Strukturdpn_interface (dpn_interface_m) sind gültig.
ungleich DPN_NO_ERROR Die Bearbeitung der Funktion wurde wegeneines Fehlers abgebrochen. Die restlichenRückgabeparameter der Strukturdpn_interface (dpn_interface_m) sind nichtgültig.
Das Strukturelement error_code enthält einedetaillierte Fehlerkennung.
Beispiel Überprüfen des Strukturelementes error_code am Beispiel der Funkti-on dpn_get_mode().
#include "dpn_user.h"
struct dpn_interface myDpnInterface;/* get actual mode of DP-System */unsigned char GetActualMode(unsigned char myBoard,
In der weiter unten aufgeführten „Tabelle der Fehlerkennungen“ kom-men Begriffe vor, die hier vorab erläutert werden.
Übergeordneten ApplikationZu dem darin verwendeten Begriff der „übergeordneten Applikation“sei auf die Kapitel 4.8.1 und 5.1.3 verwiesen.
KategorienDie vorkommenden Kategorien werden in der nachfolgenden Tabelleerklärt:
Kategorie Erklärung
Installation/Konfigurierung
Fehler dieser Kategorie werden gemeldet, wenn infol-ge von Installations- oder Konfigurationsproblemenkeine Kommunikation zu dem CP möglich ist.
Überprüfen Sie die Einträge und Diagnosemöglich-keiten in „PG-PC-Schnittstelle einstellen„ (siehe Sys-temsteuerung) und die DP-Datenbasis. Beachten Siedie Installationshinweise des CPs.
Vorgabeparameter Fehler dieser Kategorie werden gemeldet, wenn dieDP-Applikation ungültige Vorgabeparameter beimAufruf von DP-Funktionen einträgt.
Korrigieren Sie die DP-Applikation.
Zugriffsrechte Fehler dieser Kategorie werden gemeldet, wenn eineDP-Applikation kein Zugriffsrecht auf Slaves besitztoder wenn eine Funktion einer übergeordnetenDP-Applikation vorbehalten ist.
Beachten Sie die Hinweise in Kapitel 5.1 dpn_init(Anmelden einer DP-Applikation) und in Kapitel 8.3Anmelden einer DP-Windows-Applikation.
Multiuser-Betrieb Fehler dieser Kategorie beziehen sich auf Problemebeim Multiuser-Betrieb. Multiuser-Betrieb bedeutet,daß mehrere DP-Applikationen auf die DP-Schnitt-stelle zugreifen.
Beachten Sie die Hinweise zu den einzelnen Fehler-meldungen.
Interne Fehler Fehler dieser Kategorie werden bei schwerwiegendenFehlern in der Initialisierungsphase oder in der Be-triebsphase des CP gemeldet.
Beenden Sie die DP-Applikation.
Sonstige Fehler Fehler dieser Kategorie werden während des Pro-grammablaufs gemeldet.
Beachten Sie die Hinweise zu den einzelnen Fehler-meldungen.
Die Tabelle enthält eine Auflistung der Fehlerkennungen derDP-Funktionen.
Fehlerkennung Bedeutung Kategorie
DPN_NO_ERROR Kein Fehler bei der Bearbeitung des Funktions-aufrufs.
Die Rückgabewerte der Aufrufstrukturen sindentsprechend Kapitel 5 Beschreibung derDP-Funktionen gültig und müssen ausgewertetwerden.
-
DPN_ACCESS_ERROR Die aufrufende DP-Applikation hat kein Schreib-zugriffsrecht auf die Funktion oder auf einenSlave.
Prüfen Sie, ob das Schreibzugriffsrecht beimdpn_init-Aufruf vorgegeben wird. Wenn dieFehlermeldung beim dpn_init()-Aufruf erfolgt, sohat bereits eine andere DP-Applikation dasSchreibzugriffsrecht vergeben.
Zugriffsrechte
DPN_APPL_LIMIT_ERROR Die maximale zulässige Anzahl vonDP-Applikationen im Multi-User-Betrieb wurdeüberschritten.
DPN_CENTRAL_ERROR Die Funktion darf nur von einer übergeordnetenDP-Applikation aufgerufen werden(siehe hierzu Kapitel 8.3 Anmelden einerDP-Windows-Applikation).
Zugriffsrechte
DPN_CLOSE_ERROR Fehler beim Abmelden einer DP-Applikation. Interne Fehler
DPN_GLB_CTRL_ERROR Ungültiger Wertebereich für Control Commandbeim Aufruf der Funktion dpn_global_crtl(). Tra-gen Sie einen gültigen Wert entsprechend desgewählten Funktionsaufrufs ein.
Vorgabeparameter
DPN_LENGTH_ERROR Strukturelement „length“ der Strukturendpn_interface, dpn_interface_s,dpn_interface_s_ext außerhalb des zulässigenWertebereiches oder die Datenlänge bei Pro-duktivdiensten dpn_out_slv, dpn_out_slv_m o-der dpn_out_slv_m_ext stimmt nicht mit denprojektierten Werten überein. Prüfen Sie, wie-viele Ausgabebytes für die Slaves projektiertworden sind.
Vorgabeparameter
DPN_MEM_BOARD_ERROR
Nicht genügend freier Speicher auf dem CP vor-handen. Beachten Sie die Produkthinweise(verfügbares Mengengerüst, Einschränkungenusw.).
Interne Fehler
DPN_MEM_HOST_ERROR Nicht genügend freier Speicher auf dem Host-Rechner vorhanden.
DPN_MODE_ERROR Der Funktionsaufruf kann temporär nicht bear-beitet werden.Erfolgt die Meldung bei der Funktiondpn_set_mode() so wurde versucht beim Än-dern der Betriebsart einen Zustand zu über-springen. Beachten Sie in diesem Fall die Hin-weise in Kapitel 5.16.
Sonstige Fehler
DPN_NO_DBASE_ERROR Keine oder fehlerhafte Einträge in derDP-Datenbasis.
Überprüfen Sie die Datenbasis.
Installation/Konfigurierung
DPN_OPEN_ERROR Fehler beim Anmelden einer DP-Applikation(z. B. Treiber nicht geladen, CP nicht gesteckt).
Installation/Konfigurierung
DPN_RECEIVE_ERROR Fehler bei der Übergabe einer Quittung des CPan den Schnittstellentreiber.
Interne Fehler
DPN_REFERENCE_DIFF_ERROR
Fehler beim Multi User-Betrieb. Die Einträge imStrukturelement reference beim Aufruf vondpn_init() passen nicht zu den vorangegange-nen dpn_init()-Aufrufen anderer aktiverDP-Applikationen, die sich an dem gleichen CPangemeldet haben. Entnehmen Sie aus Kapitel8.3 Anmelden einer DP-Windows-Applikation,welche Kombinationen zulässig sind.
Multiuser-Betrieb
DPN_REFERENCE_ERROR Das Strukturelement reference der Strukturdpn_interface, dpn_interface_m oderdpn_ifc_m_ext ist ungültig.
Tragen Sie eine der in Kapitel 5.1.3Erläuterungen zum Strukturelement referencebeschriebenen Werte ein.
Vorgabeparameter
DPN_SEND_ERROR Fehler bei der Übergabe eines Funktionsaufru-fes des Schnittstellentreibers an den CP.
Interne Fehler
DPN_SLV_STATE_ERROR Das Strukturelement slv_state der Strukturdpn_interface ist ungültig.
Tragen Sie einen gültigen Wert entsprechenddes gewählten Funktionsaufrufs ein.
Vorgabeparameter
DPN_STAT_NR_ERROR Das Strukturelement stat_nr der Strukturdpn_interface, dpn_interface_s oderdpn_interface_s_ext ist ungültig oder der Slaveist nicht in der Datenbasis vorhanden.
Prüfen Sie, ob die Slaves, mit denen Kommuni-kation durchgeführt werden soll, in der Datenba-sis enthalten sind.
Vorgabeparameter
DPN_SYS_STATE_ERROR Das Strukturelement sys_state der Strukturdpn_interface ist ungültig.
Tragen Sie einen gültigen Wert entsprechenddes gewählten Funktionsaufrufs ein.
Vorgabeparameter
DPN_USER_DATA_ERROR Ein oder mehrere Elemente des Arrays u-ser_data der Struktur dpn_interface sind ungül-tig.
Tragen Sie einen gültigen Wert entsprechenddes gewählten Funktionsaufrufs ein.
Beschreibung Ein Zeiger auf die Struktur dpn_interface, dpn_interface_m oderdpn_ifc_m_ext wird als Parameter an eine DP-Funktion übergeben.Die Struktur enthält die Vor- und Rückgabeelemente der DP-Funktion.
Alle Strukturen sind im Include-File DPN_USER.H enthalten.
Die Struktur dpn_interface_m wird verwendet, wenn mit dem AufrufDatentransfer zu mehreren DP-Slaves stattfindet. Sie enthält für jedenSlave eine eigene Substruktur dpn_interface_s.
Die Struktur dpn_ifc_m_ext wird ebenfalls verwendet, wenn mit demAufruf Datentransfer zu mehreren DP-Slaves stattfindet. Sie enthält fürjeden Slave eine eigene Substruktur dpn_ifc_s_ext.
Die Struktur dpn_interface_m bietet einen einfachen Zugang für DPStandardapplikationen. Es können bis zu 32 Slaves adressiert werden.Die maximale Datenlänge pro Slave ist auf 32 Byte begrenzt. Die Ein-und Ausgabedaten der Slaves werden innerhalb der Substruktureneingetragen.
Mit der Struktur dpn_ifc_m_ext lassen sich bis zu 125 DP-Slaves ad-ressieren. Die Datenlänge der Slaves ist nicht begrenzt. Im Gegensatzzu der Struktur dpn_interface_m werden in den Substrukturen die Ein-und Ausgabedaten nicht direkt eingetragen, sondern es wird über Zei-ger auf die Datenbereiche der Slaves verwiesen.
reference Das Strukturelement reference enthält die Identifikation derDP-Applikation. Die Identifikation wird beim Aufruf der Funktiondpn_init() vergeben. Anhand des Eintrags kann die DP-Library denFunktionsaufruf dem selektierten CP zuordnen.
stat_nr PROFIBUS-Adresse des selektierten DP-Slaves.
length Zahl der gültigen Bytes im Array user_data[ ].
error_code Dieses Strukturelement ist identisch mit dem Rückgabeparameter derFunktion.Es signalisiert, ob der Funktionsaufruf bearbeitet werden konnte.
HinweisEine DP-Applikation kann alternativ den Rückgabewert der Funktionoder das Strukturelement error_code überprüfen !
Es ist zu beachten, daß die restlichen Strukturelemente nur dann gültigsind, wenn der Funktionsrückgabeparameter bzw. das Strukturelementerror_code keine Fehlerkennung enthalten.
slv_state Dieses Strukturelement kennzeichnet den Zustand des adressiertenDP-Slaves.
sys_state Dieses Strukturelement kennzeichnet die aktuelle Betriebsart desDP-Masters.
sys_event Tritt ein Ereignis (sehen Sie dazu auch Kapitel 3.4) beim DP-Masterauf, so hinterlegt er an dieser Stelle eine entsprechende Kennung zurIdentifikation des Ereignisses.
user_data[ ] Das Array user_data[ ] enthält die auftragsspezifischen Daten.
Beschreibung Die folgende Matrix zeigt die Zuordnung der in Kapitel 4.6 beschrie-benen Parameter der Strukturen dpn_interface und dpn_interface_mzu den Funktionsaufrufen der DP-Library.
Ein „V“ in der Parametermatrix bedeutet, daß der Parameter als Vor-gabewert verwendet wird.
Ein „R“ in der Parametermatrix kennzeichnet die Rückgabeparameterder Funktionsaufrufe.
Beschreibung Die folgenden Tabellen enthalten die Definition von Konstanten, dieals Vorgabe- oder Rückgabeparameter in der Strukturdpn_interface(_m) eingetragen werden. Im Kapitel 5 wird bei der Be-schreibung der Funktionsaufrufe auf diese Konstanten verwiesen.
Die Konstanten sind im Include-File DPN_USER.H definiert.
Art der Applikation Die DP-Programmierschnittstelle unterscheidet zwischen zwei Artenvon DP-Applikationen - übergeordnete und nicht übergeordnete.
Bestimmte Funktionsaufrufe sind der übergeordneten DP-Applikationvorbehalten. Dabei ist zu beachten, daß von den maximal vierDP-Applikationen, die sich an der DP-Programmierschnittstelle anmel-den können, höchstens eine pro CP als übergeordnete DP-Applikationangemeldet werden kann. Weitere Informationen zu diesem Themafinden Sie in Kapitel 5.1.3.
reference.access Diese Konstanten kennzeichnen beim Funktionsaufruf dpn_init() dieArt und die Umgebung der DP-Applikation. Eine detaillierte Beschrei-bung des Funktionsaufrufs dpn_init() ist in Kapitel 5 enthalten.
Wertebereich Bedeutung
DPN_ROLE_CENTRAL Die sich anmeldende DP-Applikationist eine übergeordnete Applikation.
DPN_ROLE_NOT_CENTRAL Die sich anmeldende DP-Applikationist keine übergeordnete Applikation.
DPN_SYS_CENTRAL Eine der DP-Applikationen ist eineübergeordnete Applikation.
DPN_SYS_NOT_CENTRAL Keine der DP-Applikationen ist eineübergeordnete Applikation.
Zugriffsrechte aufDP-Slaves
Diese Konstanten legen beim Funktionsaufruf dpn_init() das Zugriffs-recht einer DP-Applikation auf einen DP-Slave fest und werden in dasArray user_data[ ] eingetragen.
Diese Konstanten kennzeichnen die aktuelle Betriebsart desDP-Masters.
Wertebereich Bedeutung
DPN_SYS_OFFLINE Es erfolgt keine DP-Kommunikation.
DPN_SYS_STOP Nur Kommunikation mit DP-MasterKlasse 2 möglich. Darüber hinauserfolgt keine Kommunikation mit denDP-Slaves.
DPN_SYS_CLEAR Es erfolgt die Parametrie-rung/Konfigurierung der DP-Slaves.In der sich anschließenden Daten-transferphase werden in Ausgabe-richtung Bytes mit log. 0 oder Leer-telegramme an die DP-Slaves ge-sendet.
DPN_SYS_OPERATE Produktivdatenaustausch mit denDP-Slaves.
Diese Konstanten kennzeichnen Ereignismeldungen, die bei verschie-denen DP-Funktionen im Strukturelement sys_event gemeldet werdenkönnen. Es ist zu beachten, daß die Ereignismeldungen einzeln oderkombiniert auftreten können. Ist kein Ereignis aufgetreten, enthältsys_event den Wert 0. Enthält sys_event einen anderen Wert als 0, sokann durch „Und-Verküpfungen“ mit den verschiedenen KonstantenAnzahl und Art der Ereignisse ermittelt werden.
Wertebereich Bedeutung
MST_CLS_TWO_ACCESS Ereignismeldung Zugriff einesDP-Masters der Klasse 2 (Diagnose-Master).
AUTOCLEAR Ereignismeldung AUTOCLEAR
WATCHDOG Ereignismeldung TIMEOUT
Beispiel Das folgende Beispiel beschreibt die Auswertung von sys_event.
Vereinfachtes Beispiel:struct dpn_interface myDpnInterface;// Hier Parameter ausfüllen und Aufruf// durchführen
Beschreibung Beim Funktionsaufruf dpn_global_ctrl() können unterschiedliche Kom-mandos an die DP-Slaves gesendet werden. Die nachfolgend aufge-listeten Konstanten werden in das Strukturelement slv_state eingetra-gen.
Beschreibung Diese Konstanten sind für den Funktionsaufruf dpn_set_slv_state()relevant und werden im Strukturelement user_data[0] hinterlegt.
Wertebereich Bedeutung
DPN_SLV_ACTIVATE Der Slave wird in der lokalen Daten-basis aktiviert. Anschließend ver-sucht der DP-Master den Slave zuparametrieren, konfigurieren und ei-nen Datentransfer durchzuführen(Voraussetzung: Der Master befindetsich in der Betriebsart CLEAR oderOPERATE).
DPN_SLV_DEACTIVATE Der Slave wird in der lokalen Daten-basis deaktiviert, d. h. es findet keinDatenaustausch mit dem Slave statt.
Beschreibung Mit diesen Konstanten können unterschiedliche Teile der Slave-Parameter (Aufbau nach EN 50 170 Vol. 2) beim Funktionsaufrufdpn_read_slv_par() selektiert werden. Die Konstante wird in dasStrukturelement slv_state eingetragen.
Wertebereich Bedeutung
DPN_SLV_PARA_TYP Selektion von Sl-Flag, Slave-Typund Oktett-String
DPN_SLV_PARA_PRM_DATA Selektion der Parametrierdaten
DPN_SLV_PARA_CFG_DATA Selektion der Konfigurierdaten
DPN_SLV_PARA_ADD_TAB Selektion der Add-Tab-Liste
DPN_SLV_PARA_USER_DATA Selektion der Slave User Data
Beschreibung Diese Konstanten kennzeichnen die unterschiedlichen Typen derDP-Slaves und werden beim Aufruf der Funktion dpn_read_cfg () imFeld user_data[ ] zurückgegeben.
Wertebereich Bedeutung
DPN_CFG_NO_SLV Kein DP-Slave
DPN_CFG_NORM Norm-DP-Slave
DPN_CFG_ET200_U Nicht Norm-Slave: ET 200U
DPN_CFG_ET200K_B Nicht Norm-Slave: ET 200K/B
DPN_CFG_ET200_SPM Nicht Norm-Slave: allgemeine SPM-Station
Übersicht Das Bild 4.1 zeigt den prinzipiellen Aufbau einer DP-Applikation. Sieunterteilt sich in die drei Bereiche Initialisierung, Produktivphase undAbschlußphase.
Jedem dieser Bereiche sind bestimmte DP-Funktionsaufrufe zugeord-net. Diejenigen Funktionsaufrufe, die für eine DP-Applikation zwingendvorgeschrieben sind, sind grau unterlegt.
Darstellung Bild 4.1 zeigt in der linken Spalte die typischen Funktionen einerDP-Applikation. In der rechten Spalte sind die verfügbaren Zusatz-funktionen für erweiterte Diagnose, Ändern von Parametern etc. dar-gestellt.
In der folgenden Tabelle werden die Funktionen der Initialisierungs-phase beschreiben.
Funktion Status Anmerkung
dpn_init() zwingendvorgeschrieben
Muß als erste DP-Funktion aufgerufen werden.
dpn_load_bus_par() optional oderverboten
Ändern der DP-Timer der Busparameter. Darf nur voneiner übergeordneten DP-Applikation aufgerufen wer-den.
dpn_read_bus_par() optional Ermitteln/Überprüfen der Busparameter
dpn_read_cfg() optional Auslesen der Gesamtkonfiguration
dpn_read_slv_par() optional Auslesen der Slave-Parameter. Aus den Slave-Parametern kann die Konfiguration und der Zustand(aktiviert/nicht aktiviert) der DP-Slaves ermittelt wer-den.
Der Aufruf dieser Funktion ist nur in einem DP-System mit einer über-geordneten DP-Applikation zwingend vorgeschrieben. In diesem Fallmuß die DP-Applikation mit der Funktion dpn_set_mode() denDP-Master aus der Betriebsart OFFLINE in die Betriebsart OPERATEüberführen.
Bei einem DP-System ohne übergeordnete DP-Applikation erfolgt derWechsel des DP-Masters aus der Betriebsart OFFLINE in die Be-triebsart OPERATE selbsttätig nach dem Anmelden der ersten Appli-kation.
Das Konzept der übergeordneten DP-Applikation wird in Kapitel 5.1detailliert erläutert.
Funktionen derAbschlußphase
In der folgenden Tabelle wird die Funktion der Abschlußphase be-schreiben.
Funktion Status Anmerkung
dpn_reset() zwingend vor-geschrieben
Abmelden einer Applikation und damit beenden derDP-Kommunikation mit den der Applikation zugeordnetenSlaves. Rückgabe von Betriebssystem-Ressourcen.
In diesem Kapitel finden Sie eine detaillierte Beschreibung aller Funktionen derDP-Programmierschnittstelle.
Sie können der Beschreibung entnehmen, welche Elemente der Struktur dpn_interfaceoder dpn_interface_m vor dem Aufruf der entsprechenden Funktion auszufüllen sind.
Ebenso werden diejenigen Strukturelemente aufgeführt, die von der DP-Funktion alsRückgabeparameter aktualisiert oder verändert werden. Diese Elemente können in derDP-Applikation ausgewertet werden, sofern der Rückgabeparameter (bzw. das Struktur-element error_code) eine korrekte Ausführung der Funktion signalisiert
5.1 Anmelden einer DP-Applikation ............................................................................725.1.1 Vorgabeparameter .............................................................................................735.1.2 Rückgabeparameter...........................................................................................765.1.3 Erläuterungen zum Strukturelement reference ...................................................775.1.4 Konstanten für das Strukturelement reference.access........................................79
5.2 Aktivitätsüberwachung der DP-Applikation............................................................815.2.1 Vorgabeparameter .............................................................................................825.2.2 Rückgabeparameter...........................................................................................83
5.6 Aktivierung/Deaktivierung eines DP-Slaves ..........................................................935.6.1 Vorgabeparameter .............................................................................................945.6.2 Rückgabeparameter...........................................................................................95
5.7 Konfiguration des DP-Systems ermitteln ...............................................................965.7.1 Vorgabeparameter .............................................................................................975.7.2 Rückgabeparameter...........................................................................................98
5.8 Diagnosedaten eines Slaves anfordern ...............................................................1005.8.1 Vorgabeparameter ...........................................................................................1015.8.2 Rückgabeparameter.........................................................................................102
5.9 Statusinformationen des DP-Systems ermitteln ..................................................1035.9.1 Vorgabeparameter ...........................................................................................1045.9.2 Rückgabeparameter.........................................................................................105
5.10 Ausgabedaten an einen DP-Slave senden ........................................................1075.10.1 Vorgabeparameter .........................................................................................1085.10.2 Rückgabeparameter.......................................................................................109
5.11 Ausgabedaten an mehrere DP-Slaves senden ..................................................1115.11.1 Vorgabeparameter .........................................................................................1125.11.2 Rückgabeparameter.......................................................................................1135.11.3 Rückgabewert des Funktionsaufrufs...............................................................115
5.12 Ausgabedaten an mehrere Slaves senden - erweiterte Funktion .......................1165.12.1 Vorgabeparameter .........................................................................................1175.12.2 Rückgabeparameter.......................................................................................1185.12.3 Rückgabewert des Funktionsaufrufs...............................................................120
5.13 Lokale Ausgabedaten eines DP-Slaves lesen....................................................1215.13.1 Vorgabeparameter .........................................................................................1225.13.2 Rückgabeparameter.......................................................................................123
5.14 Eingabedaten eines DP-Slaves lesen................................................................1255.14.1 Vorgabeparameter .........................................................................................1265.14.2 Rückgabeparameter.......................................................................................127
5.15.1 Vorbelegung der Strukturen dpn_interface_s..................................................1305.15.2 Rückgabeparameter der Strukturen dpn_interface_s......................................1315.15.3 Rückgabewert der Funktion............................................................................133
5.16 Eingabedaten mehrerer DP-Slaves lesen - erweiterte Funktion.........................1345.16.1 Vorbelegung der Strukturen dpn_ifc_s_ext .....................................................1355.16.2 Rückgabeparameter der Strukturen dpn_ifc_s_ext .........................................1365.16.3 Rückgabewert der Funktion............................................................................138
5.17 Betriebsart des DP-Masters einstellen...............................................................1395.17.1 Vorgabeparameter .........................................................................................1405.17.2 Rückgabeparameter.......................................................................................141
5.18 Betriebsart des DP-Masters ermitteln ................................................................1425.18.1 Vorgabeparameter .........................................................................................1435.18.2 Rückgabeparameter.......................................................................................144
5.19 Azyklisches Senden eines Steuertelegramms ...................................................1455.19.1 Vorgabeparameter .........................................................................................1465.19.2 Rückgabeparameter.......................................................................................148
5.20 Abmelden einer DP-Applikation ........................................................................1495.20.1 Vorgabeparameter .........................................................................................1505.20.2 Rückgabeparameter.......................................................................................151
Aufruffunktion unsigned short int dpn_init (struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion muß sich eine DP-Applikation bei einem CP an-melden. Die Funktion muß vor allen anderen DP-Funktionen auf-gerufen werden. Als Aufrufparameter wird ein Far-Zeiger auf dieStruktur dpn_interface übergeben. Im Erfolgsfall wird im Strukturele-ment reference ein Handle zurückgegeben. Dieses Handle wird vonder DP-Firmware für die Identifikation der DP-Applikation benötigt. DasHandle muß bei allen weiteren Funktionsaufrufen an den CP als Vor-gabeparameter eingetragen werden.
Nach dem der DP-Master in den Zustand OPERATE versetzt wur-de, benötigen die DP-Slaves unter Umständen noch einige Zeit,bis sie die Betriebsbereitschaft erreicht haben. Sie sollten dahervor dem Schreiben von Ausgabedaten für einen DP-Slave solangeden Betriebszustand des DP-Slaves ermitteln, z. B. mittelsdpn_read_sys_info, bis für den DP-Slave der WertDPN_SLV_STAT_READY oder DPN_SLV_STAT_READY_DIAGzurückgemeldet wird.
user_data[ ] Im Array user_data[ ] muß die DP-Applikation das gewünschteZugriffsrecht auf die einzelnen DP-Slaves festlegen. Der Eintrag er-folgt jeweils in einem eigenen Byte. Der Index innerhalb des Arraysentspricht der PROFIBUS-Adresse des DP-Slaves.
:
Zugriffsrecht Slave 0
Zugriffsrecht Slave 1
Zugriffsrecht Slave 2
Zugriffsrecht Slave 3
Zugriffsrecht Slave 4
Zugriffsrecht Slave 5
Zugriffsrecht Slave 125
user_data[0]
user_data[1]
user_data[2]
user_data[3]
user_data[4]
user_data[5]
:
user_data[125]
Bild 5.1: Zugriffsrechte auf die DP-Slaves
Zugriffsrecht Als gewünschtes Zugriffsrecht können eingetragen werden:
• Ausgabedaten schreiben/Eingabedaten lesen
• Eingabedaten lesen
• Kein Zugriff gewünscht
Konstanten Für die Vorgabe des Zugriffsrechts stehen der DP-Applikation folgendeKonstanten (Include-File DPN_USER.H) zur Verfügung:
Die Einträge werden gemäß folgender Regeln auf Gültigkeit überprüft:
• Die Datenausgabe an einen bestimmten DP-Slave darf innerhalbeines Multitasking-Betriebssystems nur von einer einzigenDP-Applikation vorgenommen werden. Diese Applikation muß beider Anmeldung das Zugriffsrecht DPN_SLV_WRITE_READ eintra-gen. Versucht eine andere Applikation Daten an diesen Slave zusenden, wird dies abgelehnt.
• Durch den Zugriffsschutz werden undefinierte, gefährliche Anlage-zustände verhindert, die dadurch entstehen können, daß zweiDP-Applikationen unkoordiniert Ausgabedaten an den gleichenDP-Slave senden (Beispiel: DP-Applikation A schließt ein Ventil,DP-Applikation B öffnet das Ventil).
• Bei der Anmeldung wird überprüft, ob die Option Ausgabedatenschreiben/Eingabedaten lesen schon zuvor von einer anderenDP-Applikation gesetzt worden ist. Ist dies der Fall, wird die Funkti-on dpn_init() negativ quittiert.
• Ein lesender Zugriff (d. h. Abbild der Eingabedaten, Abbild derAusgabedaten und Abbild der Diagnosedaten) auf denselbenDP-Slave darf grundsätzlich von jeder DP-Applikation durchgeführtwerden.
reference Das Strukturelement reference (Parameter reference.board_select undreference.access) enthält ein Handle, das bei allen weiterenDP-Funktionsaufrufen an diesen CP verwendet werden muß.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabewertdes Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR) sind dierestlichen Rückgabeparameter der Struktur dpn_interface gültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
In einem PG/PC können mehrere CP installiert sein. EineDP-Applikation muß sich für jeden CP mit dem sie kommunizieren will,mit jeweils einem eigenen dpn_init()-Aufruf anmelden.
Im Strukturelement reference.board_select muß die Nummer des CPübergeben werden (1,2...).
reference.access Das Strukturelement reference.access enthält die Kennungen„DP-Applikationsart“ und „DP-Applikationsumgebung“. Die Bedeutungdieser Kennungen wird im folgenden erläutert.
DP-Applikations-umgebung
Diese Kennung bestimmt das Anlaufverhalten und die zulässigenDP-Funktionen, wenn mehrere voneinander unabhängigeDP-Applikationen eines Multitasking-Betriebssystems dieDP-Funktionalitäten des gleichen CP nutzen.
Es wird zwischen zwei DP-Applikationsumgebungen unterschieden:
• Von den DP-Applikationen, die auf den gleichen CP zugreifen, wirdeine als übergeordnete DP-Applikation angemeldet. Diese Applika-tion besitzt das volle Zugriffsrecht auf alle DP-Funktionen.
• Alle DP-Applikationen, die auf den gleichen CP zugreifen sindgleichwertig. Es ist keine übergeordnete DP-Applikation vorhanden.
DP-Applikationsart Diese Kennung gibt den Typ der DP-Applikation an.
Folgende beide Werte sind möglich:
• Die DP-Applikation ist eine übergeordnete Applikation.
• Die DP-Applikation ist keine übergeordnete Applikation.
ÜbergeordneteDP-Applikationvorhanden
In diesem Fall erfolgt die Steuerung der DP-Kommunikation zentraldurch eine ausgewählte DP-Applikation. Diese DP-Applikation hat dasZugriffsrecht auf alle DP-Funktionen. Ein Wechsel der Betriebsart desDP-Masters kann nur durch einen dpn_set_mode()-Aufruf der überge-ordneten DP-Applikation erreicht werden. Die übergeordneteDP-Applikation hat jederzeit die Möglichkeit, die Betriebsart durcheinen dpn_set_mode()-Aufruf zu ändern. Meldet sich die übergeord-nete DP-Applikation durch den Aufruf dpn_reset() ab, wird die Kom-munikation mit allen DP-Slaves beendet.
Folgende Funktionsaufrufe sind der übergeordneten DP-Applikationvorbehalten:
• dpn_set_mode() Betriebsart einstellen
• dpn_global_ctrl() Steuertelegramm an DP-Slaves senden
Beispiel Für die Steuerung einer DP-Anlage werden zwei Windows-DP-Applikationen (Tasks) erstellt. Beide Tasks greifen auf den glei-chen CP zu. Eine der Tasks wird als übergeordnete Task gekenn-zeichnet. Die übergeordnete Task realisiert die Steuerung derDP-Anlage (Zugriff auf Eingabe- und Ausgabeports der DP-Slaves).Die andere Applikation ist für die Visualisierung der DP-Anlage zu-ständig (z. B. Anzeige, ob Ventile geöffnet oder geschlossen sind). Indiesem Fall dürfen die relevanten Funktionen wie Setzen der Ausga-beports, Starten und Stoppen des DP-Systems etc. nur von der über-geordneten Task durchgeführt werden.
KeineübergeordneteDP-Applikationvorhanden
In diesem Fall gibt es keine spezielle Task, die das Verhalten derDP-Kommunikation zentral steuert. Alle DP-Applikationen sind gleich-wertig. Die Kommunikation mit den DP-Slaves wird gestartet, wennsich die erste DP-Applikation mit dem Funktionsaufruf dpn_init() er-folgreich angemeldet hat. Die DP-Betriebsart OPERATE wird von demDP-Master nach dem Anmelden der ersten DP-Applikation selbsttätigeingestellt.
Beispiel An einem DP-Bus sind DP-Slaves angeschlossen, von denen mehrerejeweils funktional eine eigenständige Gruppe bilden. Für die Steuerungjeder Gruppe wird eine eigene DP-Applikation unter Windows erstellt.Jede DP-Applikation kann zu einem beliebigen Zeitpunkt gestartetoder beendet werden.
Die DP-Applikation hat die Möglichkeit, über die DP-Programmier-schnittstelle die Funktionalität AUTOCLEAR (sehen Sie dazu Ka-pitel 3.7.6 und 5.4) ein- oder auszuschalten. Diese Funktionalitätbewirkt einen automatischen Übergang des DP-Masters von derBetriebsart OPERATE in die Betriebsart CLEAR (sehen Sie dazuKapitel 4.8.3), falls bei einem der projektierten Slaves ein Fehlerauftritt, d. h. eine Kommunikation mit diesem Slave nicht mehrmöglich ist. Um erneut in die Betriebsart OPERATE zu gelangen,muß der Anwender einen Auftrag zum Wechsel der Betriebsartabsetzen. Dies ist mit der Funktion dpn_set_mode() möglich. Daein derartiger Aufruf übergeordneten DP-Applikationen vorbehal-ten ist, ist die Funktionalität AUTOCLEAR nur in einem Systemmit übergeordneter DP-Applikation wirksam.
Ist keine übergeordnete DP-Applikation vorhanden, ist die Funk-tionalität AUTOCLEAR unwirksam. In diesem Fall erfolgt keinWechsel in die Betriebsart CLEAR, auch wenn diese Funktionali-tät mit dem COM PROFIBUS projektiert worden ist.
5.1.4 Konstanten für das Strukturelement reference.access
Beschreibung Für die Einstellung der DP-Applikationsumgebung und derDP-Applikationsart im Strukturelement reference.access werden derDP-Applikation folgende Konstanten in DPN_USER.H zur Verfügunggestellt:
DPN_SYS_CENTRAL Eine der DP-Applikationen isteine übergeordnete Appli-kation.
DPN_SYS_NOT_CENTRAL Keine der DP-Applikationen isteine übergeordnete Appli-kation.
DPN_ROLE_CENTRAL Die anmeldende DP-Applikation isteine übergeordnete Applikation.
DPN_ROLE_NOT_CENTRAL Die anmeldende DP-Applikation istkeine übergeordnete Applikation.
.
ZulässigeKombinationen
Die Werte für die DP-Applikationsumgebung und dieDP-Applikationsart müssen vor dem Eintrag im Strukturelement refe-rence.access von der DP-Applikation durch eine Oder-Verknüpfungkombiniert werden. Dabei sind nachfolgende Kombinationen zulässig:
Kombination Bedeutung
(DPN_SYS_CENTRAL) | (DPN_ROLE_NOT_CENTRAL) Die sich anmeldende DP-Applikationist keine übergeordneteDP-Applikation.Eine andere DP-Applikation, die e-benfalls auf den gleichen CP zugrei-fen, übernimmt als übergeordneteApplikation die Steuerung derDP-Kommunikation.
(DPN_SYS_CENTRAL) | (DPN_ROLE_CENTRAL) Die sich anmeldende DP-Applikationübernimmt als übergeordnete Appli-kation die Steuerung derDP-Kommunikation.
(DPN_SYS_NOT_CENTRAL) |(DPN_ROLE_NOT_CENTRAL)
Alle DP-Applikationen, die auf den CPzugreifen, sind gleichwertig. Es gibtkeine übergeordnete Applikation, dieeine zentrale Steuerung derDP-Kommunikation ausübt.
5.2 dpn_wd (Aktivitätsüberwachung der DP-Applikation)
Aufruffunktion unsigned short int dpn_wd (struct dpn_interface far * ptr)
Beschreibung Diese Funktion startet auf dem CP eine Aktivitätskontrolle (Watchdog-Funktion) der DP-Applikation. Greift die DP-Applikation - nach Aufrufder Funktion - infolge eines Fehlverhaltens nicht mehr auf dieDP-Programmierschnittstelle zu, wird dies vom CP erkannt. Der CPsendet daraufhin an diejenigen DP-Slaves, die der DP-Applikationzugeordnet sind, nur noch Daten mit dem Wert 0h.
Welche Slavessind derApplikationzugeordnet ?
Es sind nur diejenigen DP-Slaves zugeordnet, auf welche die Applika-tion das Zugriffsrecht DPN_SLV_WRITE_READ (schreibender undlesender Zugriff) hat.
Ohne diese Maßnahme kann ein gefährlicher Anlagezustand ent-stehen.
GrundDer CP würde weiterhin zyklisch die letzten Ausgabedaten an dieDP-Slaves senden, obwohl die DP-Applikation nicht mehr korrekt ar-beitet. Ist ein solches Anlageverhalten nicht gewünscht, muß dieDP-Applikation vor der Produktivphase die Funktion dpn_wd() aufru-fen.
Voreinstellung Die Aktivitätskontrolle ist per Voreinstellung ausgeschaltet. Über dieFunktion dpn_wd() läßt sich nach der DP-Initialisierung (Funktionsauf-ruf dpn_init () ) die Aktivitätskontrolle ein- bzw. ausschalten.
Wirkung desAufrufs
Als Aufrufparameter wird im Strukturelement user_data[0] die Überwa-chungszeit eingetragen. Im Erfolgsfall prüft der CP, ob die DP-App-likation innerhalb der vorgegebenen Überwachungszeit DP-Funktions-aufrufe durchführt. Ist dies der Fall, so wird bei jedem DP-Funktions-aufruf der Watchdog zurückgesetzt. Führt die DP-Applikation innerhalbder vorgegebenen Überwachungszeit keinen DP-Funktionsaufrufdurch, läuft der Timer ab.
Time Out Versucht die DP-Applikation nach Ablauf der AktivitätsüberwachungAusgabedaten oder ein Steuertelegramm an DP-Slaves zu senden,wird der Auftrag solange negativ quittiert, bis die DP-Applikation einenneuen dpn_wd()-Aufruf absetzt.
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init () zurückgegeben wurde, eingetragen werden.
length Hier ist ein Wert >= 1 einzutragen
user_data[ ] Im Strukturelement user_data[0] wird die Überwachungszeit eingetra-gen. Die Vorgabe der Überwachungszeit 0 schaltet die Aktivitätskon-trolle aus.
Granularität derÜberwachungszeit
Eine Zeiteinheit entspricht 400 ms. Die Genauigkeit der Zeitmessungbeträgt 1 Zeiteinheit.
BeispielEintrag von 10 im Strukturelement user_data[0]. Der Watchdog läuftnach ca. 4 Sekunden ab, falls die DP-Applikation innerhalb dieser Zeit-spanne keinen DP-Funktionsaufruf durchführt.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation. Die möglichen Ereignismeldungen sindin den Kapiteln 3.4 und 4.8.4 beschrieben.
Ereignismeldung„Überwachungs-zeit abgelaufen“
Im Strukturelement sys_event der DP-Funktionsaufrufe wird die Ken-nung WATCHDOG (Überwachungszeit abgelaufen) eingetragen, wenndie DP-Applikation innerhalb der vorgegebenen Überwachungszeitkeinen DP-Funktionsaufruf durchführt.
HinweisDie Ereignismeldung „Überwachungszeit abgelaufen“ wird nach Er-kennen eines Time Out generiert. Die Meldung wird danach bei allenweiteren DP-Aufrufen eingetragen. Der Eintrag erfolgt solange, bis dieDP-Applikation die Ereignismeldung zurücksetzt.
Rücksetzen derEreignismeldung
Um die Ereignismeldung „Überwachungszeit abgelaufen“ zurückzuset-zen, muß die betreffende DP-Applikation einen erneuten dpn_wd()-Funktionsaufruf durchführen.
Aufruffunktion unsigned short int dpn_read_bus_par(struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation die aktuellen Buspara-meter des CP auslesen. Das Datenformat der Busparameter wird inKapitel 6 beschrieben.
Parameterstruktur ptr -> reference unverändertptr -> stat_nr irrelevantptr -> length Zahl der gültigen Bytes in user_data[ ]ptr -> error_code Fehlerkennungptr -> slv_state irrelevantptr -> sys_state Betriebsart des DP-Mastersptr -> sys_event Event-Meldungenptr -> user_data[ ] Busparameter
length Das Strukturelement length enthält die Größe (Anzahl Bytes) der inuser_data[ ] eingetragenen Busparameter des DP-Masters.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation. Die möglichen Ereignismeldungen sindin den Kapiteln 3.4 und 4.8.4 beschrieben.
user_data[ ] Das Strukturelement enthält die Busparameter des DP-Masters.Kapitel 6 beschreibt den Aufbau der Busparameter. Die Strukturdefini-tion der Busparameter ist im Include-File DPN_USER.H enthalten(Struktur dpn_buspar).
Aufruffunktion unsigned short int dpn_load_bus_par(struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann der Busparamersatz des DP-Masters voneiner übergeordneten Applikation verändert werden. Der Aufbau derübergebenen Busparameter wird in Kapitel 6 beschrieben. DieDP-Firmware wertet nur folgende DP-spezifische Teile der Buspara-meter aus:
• POLL_TIMEOUT
• BP_FLAG
Vor der Verwendung der Funktion dpn_load_bus_par() müssen zu-nächst mit der Funktion dpn_read_bus_par() die aktuellen Buspara-meter in die Struktur dpn_bus_par eingelesen werden. In der Strukturdpn_bus_par können danach die Parameter POLL_TIMEOUT undBP_FLAG geändert werden.
POLL_TIMEOUT Bei einer Dienstanforderung eines DP-Masters Klasse 2 an den CPgibt dieser Wert die Zeit vor, innerhalb derer die Antwort von einemDP-Master Klasse 2 abgeholt werden muß.
Zeiteinheit: 50 ms
BP_FLAG Über das BP_FLAG kann die Autoclear-Funktionalität des DP-Mastersein- oder ausgeschaltet werden.
EinschaltenOder-Verknüpfung des Strukturelements BpFlag mit dem Wert 80H.
AusschaltenUnd-Verknüpfung des Strukturelements BpFlag mit dem Wert 7FH.
Das Schreiben der Busparameter ist nur in der Betriebsart OFF-LINE des DP-Masters und nur durch eine übergeordneteDP-Applikation möglich.
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init() zurückgegeben wurde, eingetragen werden.
length Das Strukturelement length enthält die Zahl der gültigen Bytes desArrays user_data[ ]. Als Mindestwert muß 36 eingetragen werden.
user_data[ ] Das Strukturelement user_data[ ] enthält die Busparameter. Der Auf-bau der Busparameter wird in Kapitel 6 beschrieben. Die Strukturdefi-nition der Busparameter ist im Include-File dpn_user.h enthalten(Struktur dpn_buspar).
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters. Die möglichen Betriebsarten sind in Kapitel 4.8.3 be-schrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation. Die möglichen Ereignismeldungen sindin den Kapiteln 3.4 und 4.8.4 beschrieben.
Aufruffunktion unsigned short int dpn_read_slv_par(struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation die unterschiedlichenKomponenten der Slave-Parameter eines DP-Slaves auslesen. DasDatenformat der einzelnen Teile der Slave-Parameter entspricht demin Kapitel 6 beschriebenen Datenformat. Die Auswertung der Slave-Parameter setzt detaillierte Kenntnisse der PROFIBUS DP-Norm vor-aus. Deshalb ist diese Funktion nur besonderen Diagnosezweckenvorbehalten.
Folgende Komponenten der Slave-Parameter können über das Struk-turelement slv_state selektiert werden:
• Sl-Flag, Slave-Typ, Oktett-String
• Parametrierdaten
• Konfigurierdaten
• Add_Tab - Liste
• Slave_User_Data
Dieser Dienst ist nur bei Norm-Slaves anwendbar.
Aufbau derSlave-Parameter
Der Aufbau der Slave-Parameter wird in Kapitel 6 beschrieben.
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init() zurückgegeben wurde, eingetragen werden.
stat_nr Das Strukturelement stat_nr enthält die PROFIBUS-Adresse des se-lektierten DP-Slaves.
length Es muß der Wert 255 eingetragen werden.
slv_state Das Strukturelement slv_state enthält die Vorgabe, welcher Teil derSlave-Parameter ausgelesen werden soll. Die Vorgaben sind im Inclu-de-File DPN_USER.H enthalten.
Vorgabewert Selektion von..
DPN_SLV_PARA_TYP Sl-Flag, Slave-Typ und Oktett-String
Parameterstruktur ptr -> reference unverändertptr -> stat_nr unverändertptr -> length Zahl der gültigen Bytes in user_data[ ]ptr -> error_code Fehlerkennungptr -> slv_state Betriebszustand des DP-Slavesptr -> sys_state Betriebsart des DP-Mastersptr -> sys_event Event-Meldungenptr -> user_data[ ] Slave-Parameter
length Das Strukturelement length enthält die Größe (Anzahl Bytes) der inuser_data[ ] eingetragenen Komponente der Slave-Parameter.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
slv_state Das Strukturelement slv_state enthält den aktuellen Betriebszustanddes DP-Slaves.
Die möglichen Betriebszustände sind in Kapitel 4.8.4 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
user_data[ ] Das Strukturelement enthält die selektierte Komponente der Slave-Pa-rameter.
Aufruffunktion unsigned short int dpn_set_slv_state(struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann der Betriebszustand eines DP-Slaves wäh-rend der Laufzeit der DP-Applikation geändert werden.
Die Funktion ermöglicht es, den DP-Slave dynamisch zu akti-vieren/deaktivieren.
Der Betriebszustand eines DP-Slaves kann von einer DP-Applikationnur dann geändert werden, wenn beim Aufruf von dpn_init() alsZugriffsrecht für den DP-Slave die Kennung DPN_SLV_WRITE_READeingetragen worden ist.
Parameterstruktur ptr -> reference Handle der DP-Applikationptr -> stat_nr Adresse des DP-Slavesptr -> length >= 1ptr -> error_code irrelevantptr -> slv_state irrelevantptr -> sys_state irrelevantptr -> sys_event irrelevantptr -> user_data[0] neue Betriebsart des DP-Slaves
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init() zurückgegeben wurde, eingetragen werden.
stat_nr Das Strukturelement stat_nr enthält die PROFIBUS-Adresse des se-lektierten DP-Slaves.
length Das Strukturelement length enthält die Zahl der gültigen Bytes desArrays user_data[ ].Als Mindestwert muß 1 eingetragen werden.
user_data[ ] Das Strukturelement user_data[ ] enthält die neue Betriebsart des DP-Slaves. Der Vorgabewerte ist im Include-File DPN_USER.H enthalten.
Betriebsart Wirkung
DPN_SLV_ACTIVATE Der Slave wird in der lokalen Datenbasis akti-viert. Anschließend versucht der DP-Masterden Slave zu parametrieren, konfigurieren undeinen Datentransfer durchzuführen (Voraus-setzung: Der Master befindet sich in der Be-triebsart CLEAR oder OPERATE).
DPN_SLV_DEACTIVATE Der Slave wird in der lokalen Datenbasis de-aktiviert, d. h. es findet kein Datenaustauschmit dem Slave statt.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
slv_state Das Strukturelement slv_state enthält den aktuellen Betriebszustanddes DP-Slaves.
Die möglichen Betriebszustände sind in Kapitel 4.8.2 beschrieben.
HinweisBei der Aktivierung oder Deaktivierung eines Slaves sind verschiedeneAktivitäten erforderlich, so daß sich der gemeldete Betriebszustanddes DP-Slaves von der neuen Einstellung noch unterscheidet.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
Parameterstruktur ptr -> reference unverändertptr -> stat_nr unverändertptr -> length Zahl der gültigen Bytes in user_data[ ]ptr -> error_code Fehlerkennungptr -> slv_state irrelevantptr -> sys_state Betriebsart des DP-Mastersptr -> sys_event Event-Meldungenptr -> user_data[ ] Konfiguration der DP-Anlage
length Das Strukturelement length enthält die Größe der ermittelten Gesamt-konfiguration in user_data[ ].
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
user_data[ ] Im Strukturelement user_data[ ] werden für jede mögliche Slave-Adresse Typinformationen eingetragen. Der Eintrag erfolgt jeweils ineinem eigenen Byte. Der Index innerhalb des Arrays entspricht derPROFIBUS-Adresse des DP-Slaves.
BeispielIn user_data[2] wird die Typinformation des Slaves mit der PROFI-BUS-Adresse 2 hinterlegt.
Folgende Typinformationen können eingetragen werden:
Wertebereich Bedeutung
DPN_CFG_NO_SLV Kein DP-Slave
DPN_CFG_NORM Norm-DP-Slave
DPN_CFG_ET200_U Nicht Norm-Slave: ET 200U
DPN_CFG_ET200K_B Nicht Norm-Slave: ET 200K/B
DPN_CFG_ET200_SPM Nicht Norm-Slave: allgemeine SPM-Station
5.8 dpn_slv_diag (Diagnosedaten eines Slaves anfordern)
Aufruffunktion unsigned short int dpn_slv_diag(struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation die Diagnosedaten einesDP-Slaves anfordern. Die Diagnosedaten werden aus dem lokalenDiagnosepuffer des CP ausgelesen. Ob Diagnosedaten vorhandensind, kann aus dem Strukturelement slv_state eines vorangegangenenDP-Funktionsaufrufs entnommen werden. Nach dem Auslesen derDiagnosedaten wird die entsprechende Kennung in slv_state zurück-genommen (sofern in der Zwischenzeit keine neuen Diagnosedatenvorliegen).
Die Diagnosekennung wird applikationsbezogen verwaltet. Dies be-deutet, daß ein Auslesen der Diagnosedaten durch eineDP-Applikation „A“ nicht dazu führt, daß bei einer DP-Applikation „B“die Diagnose-Kennung zurückgenommen wird.
Hinweis Die Diagnosedaten sind nicht gültig, wenn der Rückgabeparameterslv_state der Struktur dpn_interface den WertDPN_SLV_STAT_NOT_ACTIVE oder DPN_SLV_STAT_OFFLINEenthält.
Parameterstruktur ptr -> reference unverändertptr -> stat_nr unverändertptr -> length Zahl der gültigen Bytes in user_data[ ]ptr -> error_code Fehlerkennungptr -> slv_state Betriebszustand des DP-Slavesptr -> sys_state Betriebsart des DP-Mastersptr -> sys_event Event-Meldungenptr -> user_data[ ] Diagnosedaten
length Das Strukturelement length enthält die Größe (Anzahl Bytes) der inuser_data[ ] ermittelten Diagnosedaten.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
slv_state Das Strukturelement slv_state enthält den aktuellen Betriebszustanddes DP-Slaves.
Die möglichen Betriebszustände sind in Kapitel 4.8.2 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
user_data[ ] Das Strukturelement user_data[ ] enthält die Diagnosedaten desDP-Slaves.
Der Aufbau der Diagnosedaten ist in Kapitel 6 beschrieben.
5.9 dpn_read_sys_info (Statusinformationen des DP-Systemsermitteln)
Aufruffunktion unsigned short int dpn_read_sys_info(struct dpn_interface far * ptr)
Beschreibung Die Funktion liefert einen Überblick über den aktuellen Zustand derdem CP bekannten DP-Slaves. Zusätzlich wird für jeden DP-Slaveangezeigt, ob Diagnosedaten vorhanden sind.
Parameterstruktur ptr -> reference unverändertptr -> stat_nr unverändertptr -> length Zahl der gültigen Bytes in user_data[ ]ptr -> error_code Fehlerkennungptr -> slv_state irrelevantptr -> sys_state Betriebsart des DP-Mastersptr -> sys_event Event-Meldungenptr -> user_data[ ] Statusinformationen
length Das Strukturelement length enthält die Größe der ermittelten Status-informationen in user_data[ ].
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
user_data[ ] In user_data[ ] werden für jede mögliche Slave-Adresse Statusinfor-mationen eingetragen. Der Eintrag erfolgt jeweils in einem eigenenByte. Der Index innerhalb des Arrays entspricht der PROFIBUS-Adresse des DP-Slaves.
BeispielIn user_data[2] wird der Status des Slaves mit der Adresse 2 hinter-legt.
StatusinformationenFolgende Statusinformationen sind möglich:
Statusinformation Bedeutung
DPN_SLV_STAT_READY Der DP-Slave ist in der Datentransferphase.
DPN_SLV_STAT_READY_DIAG Der DP-Slave ist in der Datentransferphase, zusätzlich sindDiagnosedaten vorhanden.
DPN_SLV_STAT_OFFLINE Der DP-Slave ist nicht in der Datentransferphase (Anlauf desCP).
DPN_SLV_STAT_NOT_READY Der DP-Slave ist nicht in der Datentransferphase.
DPN_SLV_STAT_NOT_READY_DIAG Der DP-Slave ist nicht in der Datentransferphase, zusätzlichsind Diagnosedaten vorhanden.
DPN_SLV_STAT_NOT_ACTIVE Der DP-Slave ist nicht aktiviert.
5.10 dpn_out_slv (Ausgabedaten an einen DP-Slave senden)
Aufruffunktion unsigned short int dpn_out_slv (struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation Ausgabedaten an einenDP-Slave übergeben. Die PROFIBUS-Adresse und die Länge derAusgabedaten werden mit den projektierten Werten der DP-Datenbasisverglichen. Nur im Falle einer Übereinstimmung beider Parameterwerden die Daten übernommen.
Die Ausgabedaten werden im internen Datenspeicher des CP abge-legt.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag von DPN_NO_ERROR im Strukturelement error_codebedeutet lediglich, daß die Ausgabedaten im lokalen Datenpufferdes CP abgelegt werden konnten.
Ob die Ausgabedaten zum DP-Slave gesendet werden, muß zu-sätzlich aus den Strukturelementen slv_state (Betriebszustanddes DP-Slaves) und sys_state (Betriebsart des DP-Masters) ermit-telt werden.
Nur wenn sich der DP-Slave in der Produktivphase befindet, emp-fängt der DP-Slave die Ausgabedaten des DP-Masters. Dies istder Fall, wenn das Strukturelement slv_state einen der folgendenWerte enthält:
• DPN_SLV_STAT_READY oder
• DPN_SLV_STAT_READY_DIAG
Zusätzlich muß sich der DP-Master in der Betriebsart OPERATEbefinden, d. h. das Strukturelement sys_state muß den Wert ha-ben:
• DPN_SYS_OPERATE
slv_state Das Strukturelement slv_state enthält den aktuellen Betriebszustanddes DP-Slaves.
Die möglichen Betriebszustände sind in Kapitel 4.8.2 beschrieben.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
5.11 dpn_out_slv_m (Ausgabedaten an mehrere DP-Slavessenden)
Aufruffunktion unsigned short int dpn_out_slv_m(struct dpn_interface_m far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation durch einen einzigenFunktionsaufruf Ausgabedaten an mehrere DP-Slaves senden. Inner-halb der Struktur dpn_interface_m ist für jeden DP-Slave eine Struk-tur dpn_interface_s vorhanden. Der Aufbau von dpn_interface_s ent-spricht der Struktur dpn_interface.
Bei der Verwendung der Funktion sind folgende Unterschiede gegen-über dem Funktionsaufruf dpn_out_slv() zu beachten:
• Die Ausgabedaten an einen Slave dürfen 32 Byte nicht überschrei-ten.
• Es können maximal 32 Slaves adressiert werden.
• Die adressierten Slaves müssen über den gleichen CP erreichbarsein.
• Nicht benützte Strukturelemente (dpn_interface_s) müssen durchden Eintrag DPN_IF_S_UNUSED im Strukturelement stat_nr alsungültig gekennzeichnet werden.
Aus dem Rückgabeparameter des Funktionsaufrufs kann entnommenwerden, ob bei einem oder mehreren Strukturelementen ein Fehleraufgetreten ist. Im Fehlerfall (Rückgabewert != DPN_NO_ERROR)enthält der Rückgabeparameter die Fehlerkennung des ersten fehler-haften Strukturelements.
ptr -> dpn_if_single[x].reference Handle der DP-Applikation(nur in der ersten gültigenStruktur relevant)
ptr -> dpn_if_single[x].stat_nr Adresse des DP-Slaves o-der DPN_IF_S_UNUSED;
ptr -> dpn_if_single[x].length Zahl der gültigen Bytes imArray user_data[ ] (Maxi-mum: 32 Byte)
ptr -> dpn_if_single[x].error_code irrelevant
ptr -> dpn_if_single[x].slv_state irrelevant
ptr -> dpn_if_single[x].sys_state irrelevant
ptr -> dpn_if_single[x].sys_event irrelevant
ptr -> dpn_if_single[x].user_data[ ] Ausgabedaten
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init() zurückgegeben wurde, eingetragen werden. DasHandle braucht nur in der ersten gültigen Struktur dpn_interface_seingetragen zu werden.
stat_nr Das Strukturelement stat_nr enthält die PROFIBUS-Adresse des se-lektierten DP-Slaves.
Wird eine Struktur dpn_interface_s nicht verwendet, so muß hierdie Konstante DPN_IF_S_UNUSED eingetragen werden. Durchden Eintrag wird die Struktur als ungültig markiert.
length Das Strukturelement length enthält die Zahl der Ausgabedaten im Ar-ray user_data[ ].
user_data[ ] Im Strukturelement user_data[ ] werden die Ausgabedaten eingetra-gen.
Das Format der Ausgabedaten ist in Kapitel 6 beschrieben.
ptr -> dpn_if_single[x].slv_state Zustand des DP-Slaves
ptr ->dpn_if_single[x].sys_state
Betriebsart des DP-Masters
ptr ->dpn_if_single[x].sys_event
Event-Meldungen
ptr -> dpn_if_single[x].user_data[]
unverändert
error_code Das Strukturelement error_code zeigt das Ergebnis der Auftragsbear-beitung an. Es ist nur gültig, wenn der Rückgabeparameter des Funkti-onsaufrufs DPN_NO_ERROR ist. Nur im Erfolgsfall(DPN_NO_ERROR) sind die restlichen Rückgabeparameter derStruktur dpn_interface_s gültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag von DPN_NO_ERROR im Strukturelement error_codebedeutet lediglich, daß die Ausgabedaten in dem lokalen Daten-puffer des CP abgelegt werden konnten.
Ob die Ausgabedaten zum DP-Slave gesendet werden, muß ausden Strukturelementen slv_state (Betriebszustand des DP-Slaves)und sys_state (Betriebsart des DP-Masters) ermittelt werden.
Nur wenn sich der DP-Slave in der Produktivphase befindet, emp-fängt der DP-Slave die Ausgabedaten des DP-Masters. Dies istder Fall, wenn das Strukturelement slv_state folgende Werte ent-hält:
• DPN_SLV_STAT_READY oder
• DPN_SLV_STAT_READY_DIAG
Zusätzlich muß sich der DP-Master in der Betriebsart OPERATEbefinden, d. h. das Strukturelement sys_state muß den Wert ha-ben:
Beschreibung Der Rückgabewert der Funktion zeigt an, ob bei einem oder mehrerender Strukturen dpn_interface_s ein Fehler aufgetreten ist. Nur im Er-folgsfall (DPN_NO_ERROR) konnte die Funktion vom CP bearbeitetwerden. Im Fehlerfall erfolgt ein Abbruch der Bearbeitung. In die-sem Fall können schon Ausgabedaten an einzelne DP-Slaves weiter-gegeben worden sein.
Im Erfolgsfall müssen die Rückgabeparameter der einzelnen Struktu-ren dpn_interface_s ausgewertet werden.
5.12 dpn_out_slv_ext (Ausgabedaten an mehrere Slaves sen-den - erweiterte Funktion)
Aufruffunktion unsigned short int dpn_out_slv_ext(struct dpn_ifc_m_ext far * ptr) )
Beschreibung Mit dieser Funktion kann eine DP-Applikation durch einen einzigenFunktionsaufruf Ausgabedaten an mehrere DP-Slaves senden. Inner-halb der Struktur dpn_ifc_m_ext ist für jeden DP-Slave eine Strukturdpn_ifc_s_ext vorhanden.
Bei der Verwendung der Funktion sind folgende Unterschiede gegen-über dem Funktionsaufruf dpn_out_slv_m() zu beachten:
• Es gibt keine Beschränkung der Zahl der Ausgabebytes an einenSlave auf 32 Byte.
• Es können bis zu 125 Slaves adressiert werden.
• Der Datenzugriff erfolgt über Zeiger auf die Datenpuffer, welche dieAusgabedaten enthalten. Diese Datenpuffer müssen von der DP-Applikation allokiert werden.
Weiterhin sind folgende Punkte zu beachten:
• Die adressierten Slaves müssen über den gleichen CP erreichbarsein.
• Nicht benützte Strukturelemente (dpn_ifc_s_ext) müssen durch denEintrag DPN_IF_S_UNUSED im Strukturelement stat_nr als ungül-tig gekennzeichnet werden.
Aus dem Rückgabeparameter des Funktionsaufrufs kann entnommenwerden, ob bei einem oder mehreren Strukturelementen ein Fehleraufgetreten ist. Im Fehlerfall (Rückgabewert != DPN_NO_ERROR)enthält der Rückgabeparameter die Fehlerkennung des ersten fehler-haften Strukturelements.
Parameterstruktur ptr -> dpn_if_s_single[x].reference Handle der DP-Applikation (nur in der ersten gültigen Struktur relevant)
ptr -> dpn_if_single[x].stat_nr Adresse des DP-Slaves
ptr -> dpn_if_single[x].length Zahl der gültigen
ptr -> dpn_if_single[x].error_code irrelevant
ptr -> dpn_if_single[x].slv_state irrelevant
ptr -> dpn_if_single[x].sys_state irrelevant
ptr -> dpn_if_single[x].sys_event irrelevant
ptr -> dpn_if_single[x].data_ptr Zeiger auf Speicherbereich
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init() zurückgegeben wurde, eingetragen werden. DasHandle braucht nur in der ersten gültigen Struktur dpn_ifc_s_ext ein-getragen zu werden.
stat_nr Das Strukturelement stat_nr enthält die PROFIBUS-Adresse des se-lektierten DP-Slaves.
Wird eine Struktur dpn_ifc_s_ext nicht verwendet, so muß hierdie Konstante DPN_IF_S_UNUSED eingetragen werden. Durchden Eintrag wird die Struktur als ungültig markiert.
length Das Strukturelement „length“ enthält die Zahl der Ausgabedaten imDatenpuffer.
data_ptr Das Strukturelement data_ptr verweist auf einen Speicherbereich mitden Ausgabedaten. Der Speicherbereich muß von der DP-Applikationverwaltet werden.
Das Format der Ausgabedaten ist in Kapitel 6 beschrieben.
ptr -> dpn_if_single[x].slv_state Zustand des DP-Slaves
ptr -> dpn_if_single[x].sys_state Betriebsart des DP-
ptr -> dpn_if_single[x].sys_event Event-Meldungen
ptr -> dpn_if_single[x].data_ptr unverändert
error_code Das Strukturelement error_code zeigt das Ergebnis der Auftragsbear-beitung an. Es ist nur gültig, wenn der Rückgabeparameter des Funkti-onsaufrufs DPN_NO_ERROR ist. Nur im Erfolgsfall(DPN_NO_ERROR) sind die restlichen Rückgabeparameter derStruktur dpn_ifc_s_ext gültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag von DPN_NO_ERROR im Strukturelement error_codebedeutet lediglich, daß die Ausgabedaten in dem lokalen Daten-puffer des CP abgelegt werden konnten.
Ob die Ausgabedaten zum DP-Slave gesendet werden, muß ausden Strukturelementen slv_state (Betriebszustand des DP-Slaves)und sys_state (Betriebsart des DP-Masters) ermittelt werden.
Nur wenn sich der DP-Slave in der Produktivphase befindet, emp-fängt der DP-Slave die Ausgabedaten des DP-Masters. Dies istder Fall, wenn das Strukturelement slv_state folgende Werte ent-hält:
• DPN_SLV_STAT_READY oder
• DPN_SLV_STAT_READY_DIAG
Zusätzlich muß sich der DP-Master in der Betriebsart OPERATEbefinden, d. h. das Strukturelement sys_state muß folgendenWert haben:
• DPN_SYS_OPERATE
slv_state Das Strukturelement slv_state enthält den aktuellen Betriebszustanddes DP-Slaves.
Die möglichen Betriebszustände sind in Kapitel 4.8.2 beschrieben.
Beschreibung Der Rückgabewert der Funktion zeigt an, ob bei einem oder mehrerender Strukturen dpn_ifc_s_ext ein Fehler aufgetreten ist. Nur im Er-folgsfall (DPN_NO_ERROR) konnte die Funktion vom CP bearbeitetwerden. Im Fehlerfall erfolgt ein Abbruch der Bearbeitung. In die-sem Fall können schon Ausgabedaten an einzelne DP-Slaves weiter-gegeben worden sein.
Im Erfolgsfall müssen die Rückgabeparameter der einzelnen Struktu-ren dpn_ifc_s_ext ausgewertet werden.
5.13 dpn_read_slv (Lokale Ausgabedaten eines DP-Slaves le-sen)
Aufruffunktion unsigned short int dpn_read_slv(struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation die aktuellen Ausgabe-daten auslesen, die in dem lokalen Datenpuffer des CP hinterlegt sind.
Die Funktion unterstützt vor allem die Kommunikation zwischen denTasks eines Multitasking-Betriebssystems, wenn die Tasks auf dengleichen CP zugreifen. Die Funktion ermöglicht es, daß eine Task „A“ermitteln kann, welche Ausgabedaten eine andere Task „B“ an einenDP-Slave sendet.
Parameterstruktur ptr -> reference unverändertptr -> stat_nr unverändertptr -> length Zahl der Ausgabedatenptr -> error_code Fehlerkennungptr -> slv_state Betriebszustand des DP-Slavesptr -> sys_state Betriebsart des DP-Mastersptr -> sys_event Event-Meldungenptr -> user_data[ ] Ausgabedaten an den DP-Slave
length Das Strukturelement length enthält die Zahl der Ausgabedaten imStrukturelement user_data[ ].
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag von DPN_NO_ERROR im Strukturelement error_codebedeutet lediglich, daß die Ausgabedaten aus dem lokalen Da-tenpuffer des CP gelesen werden konnten.
Ob die Ausgabedaten zum DP-Slave gesendet werden, muß ausden Strukturelementen slv_state (Betriebszustand des DP-Slaves)und sys_state (Betriebsart des DP-Masters) ermittelt werden.
Nur wenn sich der DP-Slave in der Produktivphase befindet, emp-fängt der DP-Slave die Ausgabedaten des DP-Masters. Dies istder Fall, wenn das Strukturelement slv_state folgende Werte ent-hält:
• DPN_SLV_STAT_READY oder
• DPN_SLV_STAT_READY_DIAG
Zusätzlich muß sich der DP-Master in der Betriebsart OPERATEbefinden, d. h. das Strukturelement sys_state muß den Wert ha-ben:
• DPN_SYS_OPERATE
slv_state Das Strukturelement slv_state enthält den aktuellen Betriebszustanddes DP-Slaves.
Die möglichen Betriebsarten sind in Kapitel 4.8.2 beschrieben.
5.14 dpn_in_slv (Eingabedaten eines DP-Slaves lesen)
Aufruffunktion unsigned short int dpn_in_slv (struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation die aktuellen Eingabe-daten eines DP-Slaves auslesen. Die Daten werden dem lokalen Da-tenpuffer des CP entnommen. Das Abbild des Datenpuffers wird zyk-lisch erneuert, sofern sich der DP-Master in einer der BetriebsartenCLEAR oder OPERATE befindet.
Parameterstruktur ptr -> reference unverändertptr -> stat_nr unverändertptr -> length Zahl der Eingabebytesptr -> error_code Fehlerkennungptr -> slv_state Betriebszustand des DP-Slavesptr -> sys_state Betriebsart des DP-Mastersptr -> sys_event Event-Meldungenptr -> user_data[ ] Eingabedaten des DP-Slaves
length Das Strukturelement length enthält die Zahl der Eingabedaten imStrukturelement user_data[ ].
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag von DPN_NO_ERROR im Strukturelement error_codebedeutet lediglich, daß die Eingabedaten aus dem lokalen Daten-puffer des CP gelesen werden konnten.Ob die Eingabedaten des DP-Slaves gültig sind, muß zusätzlichaus den Strukturelementen slv_state (Betriebszustand desDP-Slaves) und sys_state (Betriebsart des DP-Masters) ermitteltwerden.Nur wenn sich der DP-Slave in der Produktivphase befindet, sen-det er die Eingabedaten zum DP-Master. Dies ist der Fall, wennder Parameter slv_state einen der folgenden Werte enthält:• DPN_SLV_STAT_READY oder
• DPN_SLV_STAT_READY_DIAG
Zusätzlich muß sich der DP-Master in einer der BetriebsartenCLEAR oder OPERATE befinden, d. h. das Strukturelementsys_state muß einen der Werte haben:
• DPN_SYS_CLEAR oder
• DPN_SYS_OPERATE
slv_state Das Strukturelement slv_state enthält den aktuellen Betriebszustanddes DP-Slaves.
Die möglichen Betriebszustände sind in Kapitel 4.8.2 beschrieben.
Aufruffunktion unsigned short int dpn_in_slv_m(struct dpn_interface_m far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation die aktuellen Eingabe-daten mehrerer DP-Slaves auslesen. Zurückgegeben wird ein Abbildvom lokalen Datenpuffer des CP. Das Abbild wird zyklisch erneuert.
Innerhalb der Struktur dpn_interface_m ist für jeden DP-Slave eineStruktur dpn_interface_s vorhanden. Der Aufbau der Strukturdpn_interface_s entspricht der Struktur dpn_interface.
Bei der Verwendung der Funktion sind folgende Unterschiede gegen-über dem Funktionsaufruf dpn_in_slv() zu beachten:
• Die Eingabedaten eines Slaves dürfen 32 Byte nicht überschreiten.
• Die adressierten Slaves müssen über den gleichen CP erreichbarsein.
• Es können maximal 32 Slaves adressiert werden.
• Nicht benützte Strukturelemente (dpn_interface_s) müssen durchden Eintrag DPN_IF_S_UNUSED im Strukturelement stat_nr alsungültig gekennzeichnet werden.
Aus dem Rückgabewert des Funktionsaufrufs kann entnommen wer-den, ob bei einem einzelnen Strukturelement ein Fehler aufgetretenist. Im Fehlerfall (Rückgabewert != DPN_NO_ERROR) enthält derRückgabewert die Fehlerkennung des ersten fehlerhaften Strukturele-ments. Die Bearbeitung des Funktionsaufrufs wird abgebrochen, wennbei einem Strukturelement ein Fehler erkannt wird.
Parameterstruktur ptr -> dpn_if_single[x].reference Handle der DP-Applikation(nur in der ersten gültigenStruktur relevant)
ptr -> dpn_if_single[x].stat_nr Adresse des DP-Slaves oderDPN_IF_S_UNUSED;
ptr -> dpn_if_single[x].length irrelevant
ptr -> dpn_if_single[x].error_code irrelevant
ptr -> dpn_if_single[x].slv_state irrelevant
ptr -> dpn_if_single[x].sys_state irrelevant
ptr -> dpn_if_single[x].sys_event irrelevant
ptr -> dpn_if_single[x].user_data[ ] irrelevant
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init() zurückgegeben wurde, eingetragen werden. DasHandle braucht nur in der ersten gültigen Struktur dpn_interface_seingetragen werden.
stat_nr Das Strukturelement stat_nr enthält die PROFIBUS-Adresse des se-lektierten DP-Slaves.
Wird eine Struktur dpn_interface_s nicht verwendet, so muß hierdie Konstante „DPN_IF_S_UNUSED“ eingetragen werden. Durchden Eintrag wird die Struktur als ungültig markiert.
length Das Strukturelement length enthält die Zahl der Eingabedaten imStrukturelement user_data[ ].
error_code Das Strukturelement error_code zeigt das Ergebnis der Auftragsbear-beitung an. Es ist nur gültig, wenn der Rückgabeparameter des Funkti-onsaufrufs DPN_NO_ERROR ist. Nur im Erfolgsfall(DPN_NO_ERROR) sind die restlichen Rückgabeparameter derStruktur dpn_interface_s gültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag von DPN_NO_ERROR im Strukturelement error_codebedeutet lediglich, daß die Eingabedaten aus dem lokalen Daten-puffer des CP gelesen werden konnten.
Ob die Eingabedaten des DP-Slaves gültig sind, muß zusätzlichaus den Strukturelementen slv_state (Betriebszustand desDP-Slaves) und sys_state (Betriebsart des DP-Masters) ermitteltwerden.
Nur wenn sich der DP-Slave in der Produktivphase befindet, sen-det er die Eingabedaten zum DP-Master. Dies ist der Fall, wennder Parameter slv_state einen der folgenden Werte enthält:• DPN_SLV_STAT_READY oder
• DPN_SLV_STAT_READY_DIAG
Zusätzlich muß sich der DP-Master in einer der BetriebsartenCLEAR oder OPERATE befinden, d. h. das Strukturelementsys_state muß einen der Werte haben:
Beschreibung Der Rückgabewert der Funktion zeigt an, ob bei einem oder mehrerenStrukturelementen dpn_interface_s ein Fehler aufgetreten ist. Nur imErfolgsfall (DPN_NO_ERROR) konnte die Funktion von dem CP bear-beitet werden. Im Fehlerfall erfolgt ein Abbruch der Bearbeitung.
Im Erfolgsfall müssen die Rückgabeparameter der einzelnen Struktu-ren dpn_interface_s ausgewertet werden.
Aufruffunktion unsigned short int dpn_in_slv_ext (struct dpn_ifc_m_ext far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation die aktuellen Eingabe-daten mehrerer DP-Slaves auslesen. Zurückgegeben wird ein Abbildvom lokalen Datenpuffer des CP. Das Abbild wird zyklisch erneuert.
Innerhalb der Struktur dpn_ifc_m_ext ist für jeden DP-Slave eineStruktur dpn_ifc_s_ext vorhanden.
Bei der Verwendung der Funktion sind folgende Unterschiede gegen-über dem Funktionsaufruf dpn_in_slv_m() zu beachten:
• Die Zahl der Eingabebytes eines Slave ist nicht auf 32 Byte be-grenzt.
• Es können bis zu 125 Slaves adressiert werden.
• Der Datenzugriff erfolgt über Zeiger auf die Datenpuffer, in welchevon der DP-Library die Eingabedaten eingetragen werden. DieseDatenpuffer müssen von der DP-Applikation allokiert werden.
Weiterhin sind folgende Punkte zu beachten:
• Die adressierten Slaves müssen über den gleichen CP erreichbarsein.
• Nicht benützte Strukturelemente (dpn_ifc_s_ext) müssen durch denEintrag DPN_IF_S_UNUSED im Strukturelement stat_nr als ungül-tig gekennzeichnet werden.
Aus dem Rückgabewert des Funktionsaufrufs kann entnommen wer-den, ob bei einem einzelnen Strukturelement ein Fehler aufgetretenist. Im Fehlerfall (Rückgabewert != DPN_NO_ERROR) enthält derRückgabewert die Fehlerkennung des ersten fehlerhaften Strukturele-ments. Die Bearbeitung des Funktionsaufrufs wird abgebrochen, wennbei einem Strukturelement ein Fehler erkannt wird.
Parameterstruktur ptr -> dpn_if_single[x].reference Handle der DP-Applikation (nur in der ersten gültigen Struktur relevant)
ptr -> dpn_if_single[x].stat_nr Adresse des DP-Slaves
ptr -> dpn_if_single[x].length Größe des Datenpuffers
ptr -> dpn_if_single[x].error_code irrelevant
ptr -> dpn_if_single[x].slv_state irrelevant
ptr -> dpn_if_single[x].sys_state irrelevant
ptr -> dpn_if_single[x].sys_event irrelevant
ptr -> dpn_if_single[x].data_ptr Zeiger auf Datenpuffer
reference Im Strukturelement reference muß das Handle, das beim Funktions-aufruf dpn_init() zurückgegeben wurde, eingetragen werden. DasHandle braucht nur in der ersten gültigen Struktur dpn_ifc_s_ext ein-getragen werden.
stat_nr Das Strukturelement stat_nr enthält die PROFIBUS-Adresse des se-lektierten DP-Slaves.
Wird eine Struktur dpn_ifc_s_ext nicht verwendet, so muß hierdie Konstante „DPN_IF_S_UNUSED“ eingetragen werden. Durchden Eintrag wird die Struktur als ungültig markiert.
length Der Parameter length enthält die Größe des Datenpuffers. Bei erfolg-reicher Durchführung des Auftrags wird von der Library die Zahl derermittelten Eingabebytes eingetragen.
ptr -> dpn_if_single[x].slv_state Zustand des DP-Slaves
ptr -> dpn_if_single[x].sys_state Betriebsart des DP-Masters
ptr -> dpn_if_single[x].sys_event Event-Meldungen
ptr -> dpn_if_single[x].data_ptr unverändert
length Das Strukturelement error_code zeigt das Ergebnis der Auftragsbear-beitung an. Es ist nur gültig, wenn der Rückgabeparameter des Funkti-onsaufrufs DPN_NO_ERROR ist. Nur im Erfolgsfall(DPN_NO_ERROR) sind die restlichen Rückgabeparameter derStruktur dpn_ifc_s_ext gültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag von DPN_NO_ERROR im Strukturelement error_codebedeutet lediglich, daß die Eingabedaten aus dem lokalen Daten-puffer des CP gelesen werden konnten.
Ob die Eingabedaten des DP-Slaves gültig sind, muß zusätzlichaus den Strukturelementen slv_state (Betriebszustand des DP-Slaves) und sys_state (Betriebsart des DP-Masters) ermittelt wer-den.
Nur wenn sich der DP-Slave in der Produktivphase befindet, sen-det er die Eingabedaten zum DP-Master. Dies ist der Fall, wennder Parameter slv_state einen der folgenden Werte enthält:
• DPN_SLV_STAT_READY oder
• DPN_SLV_STAT_READY_DIAG
Zusätzlich muß sich der DP-Master in einer der BetriebsartenCLEAR oder OPERATE befinden, d. h. das Strukturelementsys_state muß einen der folgenden Werte haben:
Beschreibung Der Rückgabewert der Funktion zeigt an, ob bei einem oder mehrerenStrukturelementen dpn_ifc_s_ext ein Fehler aufgetreten ist. Nur imErfolgsfall (DPN_NO_ERROR) konnte die Funktion von dem CP bear-beitet werden. Im Fehlerfall erfolgt ein Abbruch der Bearbeitung.
Im Erfolgsfall müssen die Rückgabeparameter der einzelnen Struktu-ren dpn_ifc_s_ext ausgewertet werden.
5.17 dpn_set_mode (Betriebsart des DP-Masters einstellen)
Aufruffunktion unsigned short int dpn_set_mode (struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann die Betriebsart des DP-Masters verändertwerden. Der Aufruf dieser Funktion ist nur für eine übergeordnete Ap-plikation zulässig (siehe Kapitel 5.1.3).
Folgende DP-Betriebsarten können eingestellt werden:
Betriebsart Beschreibung
OFFLINE Es erfolgt keine DP-Kommunikation.
STOP Nur Kommunikation mit DP-Masterder Klasse 2 möglich. Darüber hin-aus erfolgt keine Kommunikation zuden DP-Slaves.
CLEAR Es erfolgt die Parametrie-rung/Konfigurierung der DP-Slavesund Datentransfer, wobei in Ausga-berichtung Null-Bytes an dieDP-Slaves gesendet werden.
OPERATE Produktivdatenaustausch mit denDP-Slaves.
Beim Einstellen einer neuen Betriebsart dürfen keine Betriebsar-ten übersprungen werden.
Ausgehend von der aktuellen Betriebsart müssen die Betriebsarten inder vorgegebenen (aufsteigenden oder absteigenden) ReihenfolgeOFFLINE ⇐ STOP ⇐ CLEAR ⇐ OPERATE durchlaufen werden. Dermomentane Betriebszustand kann durch den Aufruf dpn_get_mode()ausgelesen werden.
Nach einem dpn_set_mode()-Aufruf muß durch nachfolgendedpn_get_mode()-Aufrufe geprüft werden, ob die gewünschte Betriebs-art erreicht worden ist. Erst danach darf eine neue Betriebsart einge-stellt werden.
Es ist zu beachten, daß ein Übergang in die Betriebsart OPERATEnicht erfolgt, wenn im Rückgabeparameter sys_event das EreignisAUTOCLEAR gemeldet wird.
Beispiel fürEinhalten derReihenfolge
Es soll die Betriebsart OPERATE eingestellt werden. Der Aufruf vondpn_get_mode() ermittelt die aktuelle Betriebsart STOP. Durch Aufrufvon dpn_set_mode() muß zunächst die Betriebsart CLEAR eingestelltwerden. Erst nach Erreichen der Betriebsart CLEAR darf die Betriebs-art OPERATE eingestellt werden.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
sys_state Das Strukturelement sys_state enthält die Betriebsart des DP-Masters,die beim Absetzen des Auftrags gültig war.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
HinweisDa für die Einstellung der neuen Betriebsart einige Aktivitäten desDP-Masters erforderlich sind, kann der ermittelte Wert unterschiedlichzum aktuellen Vorgabewert sein.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
5.18 dpn_get_mode (Betriebsart des DP-Masters ermitteln)
Aufruffunktion unsigned short int dpn_get_mode (struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann die aktuelle Betriebsart des DP-Masters er-mittelt werden.
Der DP-Master kann sich in einer der folgenden Betriebsarten befin-den:
Betriebsart Beschreibung
OFFLINE Es erfolgt keine DP-Kommunikation
STOP Nur Kommunikation mit DP-Masterder Klasse 2 möglich. Darüber hin-aus erfolgt keine Kommunikation zuden DP-Slaves.
CLEAR Es erfolgt die Parametrie-rung/Konfigurierung der DP-Slavesund Datentransfer, wobei in Ausga-berichtung Null-Bytes an dieDP-Slaves gesendet werden.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes. Nur im Erfolgsfall (DPN_NO_ERROR)sind die restlichen Rückgabeparameter der Struktur dpn_interfacegültig.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Rückgabeparameter in sys_state Betriebsart
DPN_SYS_OFFLINE OFFLINE
DPN_SYS_STOP STOP
DPN_SYS_CLEAR CLEAR
DPN_SYS_OPERATE OPERATE
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
5.19 dpn_global_ctrl (Azyklisches Senden eines Steuertele-gramms)
Aufruffunktion unsigned short int dpn_global_ctrl (struct dpn_interface far * ptr)
Beschreibung Mit dieser Funktion kann eine DP-Applikation Steuerkommandos aneinen, eine Gruppe, mehrere Gruppen oder an alle DP-Slaves senden.Die Steuerkommandos werden durch ein Broadcast- oder ein Multi-cast-Telegramm an die DP-Slaves gesendet.
Ein Broadcast-Telegramm ist an alle DP-Slaves gerichtet.
Ein Multicast-Telegramm ist an mehrere DP-Slaves gerichtet.
Folgende Kommandos (Control_Command) können mit dem Funkti-onsaufruf übergeben werden:
Steuerkommando Wirkung bei den DP-Slaves
FREEZE Die Zustände der Eingänge werdeneingelesen und eingefroren.
UNFREEZE Das Einfrieren der Eingänge wirdaufgehoben.
SYNC Die Ausgabe wird eingefroren.
UNSYNC Das Kommando UNSYNC hebt dasKommando SYNC auf.
Steuerkommandos sind nur bei Norm-Slaves wirksam.☞
reference Strukturelement reference muß das Handle, das beim Funktionsaufrufdpn_init() zurückgegeben wurde, eingetragen werden.
stat_nr Das Strukturelement stat_nr enthält die PROFIBUS-Adresse eineseinzelnen DP-Slaves oder die sogenannte Globaladresse. Soll dasSteuertelegramm an einen einzelnen DP-Slave gesendet werden, soist hier dessen PROFIBUS-Adresse, die zwischen 0 und 125 liegenkann, einzutragen. Ist eine Gruppe oder sind mehrere Gruppen oderalle Slaves Adressaten des Steuertelegramms, so wird die Globalad-resse eingetragen, für die im Include-File dpn_user.h die KonstanteDPN_GROUP_ADR definiert ist.
length Hier ist ein Wert >= 1 einzutragen.
slv_state Hier wird das Control_Command des Aufrufs eingetragen. FolgendeWerte können vorgegeben werden:
Vorgabewert Kommando
DPN_FREEZE FREEZE
DPN_UNFREEZE UNFREEZE
DPN_SYNC SYNC
DPN_UNSYNC UNSYNC
user_data[0] Im Strukturelement user_data[0] wird der Group_Identifier eingetragen.Der Group_Identifier selektiert die anzusprechende(n) Slave-Gruppe(n). Der Group_Identifier eines DP-Slaves wird beim Erstellender DP-Datenbasis festgelegt und dem Slave bei der Parametrierungmitgeteilt.
Insgesamt können bis zu acht verschiedene Gruppen gebildet werden,die über einzelne Bits des Group_Identifiers ausgewählt werden.
Ist der Wert „3“ in user_data[0] eingetragen, so werden dadurch dieGruppen „7“ und „8“ selektiert, da im Group-Identifier die Bits 0 und 1auf „1“ gesetzt sind.
Alle Slavesselektieren
Um alle DP-Norm-Slaves zu selektieren, muß in user_data[0] die Kon-stante DPN_SELECT_ALL und in dem Strukturelement stat_nr dieKonstante DPN_GROUP_ADR eingetragen werden. Die Konstantensind im Include-File dpn_user.h definiert.
error_code Das Strukturelement error_code ist identisch mit dem Rückgabepara-meter des Funktionsaufrufes.
Die möglichen Fehlerkennungen sind in Kapitel 4.4 beschrieben.
Der Eintrag der Konstanten „DPN_NO_ERROR“ im Strukturele-ment error_code bedeutet lediglich, daß die Steuerkommandosan die Slaves gesendet werden. Eine Bestätigung der Auf-tragsausführung erfolgt nicht, da die Steuertelegramme von denDP-Slaves nicht quittiert werden.
sys_state Das Strukturelement sys_state enthält die aktuelle Betriebsart desDP-Masters.
Die möglichen Betriebsarten sind in Kapitel 4.8.3 beschrieben.
sys_event Das Strukturelement sys_event kennzeichnet Ereignismeldungen wäh-rend der DP-Kommunikation.
Die möglichen Ereignismeldungen sind in den Kapiteln 3.4 und 4.8.4beschrieben.
Aufruffunktion unsigned short int dpn_reset (struct dpn_interface far * ptr)
Beschreibung Der Aufruf bewirkt, daß das Handle der Applikation gelöscht wird unddie der Applikation zugeordneten Ressourcen freigegeben werden.
Abhängig von der Art und Anzahl der DP-Applikationen werden unter-schiedliche Aktionen ausgeführt:
Situation beim Aufruf Aktion
Es sind keine weiteren DP-Applika-tionen angemeldet.
In diesem Fall wird die gesamteDP-Kommunikation beendet. Alleallokierten Ressourcen werden frei-gegeben.
Es sind weitere DP-Applikationenaktiv.
In diesem Fall werden die Ausgabe-daten derjenigen DP-Slaves die derDP-Applikation zugeordnet sind mit0 belegt.
Diese Funktion muß vor der Beendigung einer DP-Applikationaufgerufen werden.
Wird eine DP-Applikation infolge eines Fehlverhaltens ohne denAufruf dpn_reset() beendet, kann ein sicherer Systemzustand nurdann gewährleistet werden, wenn die DP-Applikation zuvor mitdem Funktionsaufruf dpn_wd() eine Auftragsüberwachungszeiteingestellt hat.
GrundOhne den Aufruf von dpn_wd() würde im geschilderten Fall derDP-Master weiterhin zyklisch Ausgabedaten an die DP-Slaves senden,obwohl die DP-Applikation nicht mehr aktiv ist.
Dieses Kapitel beschreibt den Aufbau der unterschiedlichen Datenstrukturen, die vonden Aufruffunktionen der DP-Programmierschnittstelle verwendet werden.
Im einzelnen werden beschrieben:
• Aufbau der Eingabe- und Ausgabedaten
• Aufbau der Diagnosedaten
• Aufbau der Busparameter
• Aufbau der Slave-Parameter
• Aufbau der Konfigurationsdaten
Inhalt Kapitel 6
6.1 Aufbau der Eingabe- und Ausgabedaten.......................................................154
6.2 Aufbau der Diagnosedaten bei Norm-Slaves ................................................1566.2.1 Gerätebezogene Diagnose ...........................................................................1606.2.2 Kennungsbezogene Diagnose ......................................................................1616.2.3 Kanalbezogene Diagnose.............................................................................1626.2.4 Beispiel: Aufbau einer Diagnose nach obigem Schema ................................165
6.3 Diagnosedaten nicht normkonformer Slaves.................................................1676.3.1 Diagnosedaten der ET 200U.........................................................................1686.3.2 Diagnosedaten der ET 200K/B .....................................................................170
6.4 Aufbau der Busparameter.............................................................................174
Die Ein- und Ausgabedaten eines DP-Slaves werden ab dem Struktur-element user_data[0] bündig abgelegt. Das Strukturelement length derStruktur dpn_interface enthält die Zahl der gültigen Bytes des Daten-bereichs.
Ausgabedaten, die an DP-Slaves gesendet werden, müssen von derDP-Applikation vor dem Aufruf der Funktionen dpn_out_slv(),dpn_out_slv_m() oder dpn_out_slv_ext() im Datenbereich eingetragenwerden.
Bei den Funktionen, die Daten zurückliefern, erfolgt der Eintrag durchden CP. Zu diesen Funktionen zählen dpn_in_slv(), dpn_in_slv_m(),dpn_in_slv_ext() und dpn_read_slv(). Die beiden erstgenannten Funk-tionen liefern die Eingabedaten eines bzw. mehrerer DP-Slaves zu-rück, während die Funktion dpn_read_slv() die aktuellen Ausgabedatenaus dem lokalen Datenpuffer des CP zurückgibt.
Reihenfolge derDaten
Die Reihenfolge der Daten entspricht den konfigurierten Ein-/Ausga-beports der DP-Slaves.
BeispielEs werden die Eingabeports einer ET 200B-16DI-Station durch dieFunktion dpn_in_slv() gelesen. Im Strukturelement user_data[0] wirdder Eingabewert des Ports 0, im Strukturelement user_data[1] wird derEingabewert von Port 1 eingetragen.
Ausnahme: AnalogwerteBei älteren ET 200U-Stationen, die noch nicht normkonform sind, wer-den die Daten wie folgt abgelegt:
• Zuerst werden die Analogwerte in der Reihenfolge der konfigurier-ten Analog-Steckplätze abgelegt.
• Dahinter werden die Binärwerte in der Reihenfolge der konfigurier-ten Digitalbaugruppen abgelegt.
Bei der Ablage von Werten im Wort-Format ist die nachstehende Rei-henfolge vorgeschrieben:
Zuerst wird das Highbyte (niederwertige Adresse), danach das Lowbyte(höherwertige Adresse) des Wortes eingetragen.
Diese Reihenfolge entspricht nicht dem Format der Prozessorender 8086-Familie!
Ausnahme: ältere ET 200-StationenBei älteren ET 200U-Stationen, die noch nicht normkonform sind(DP-Siemens) entspricht die Datenablage bei Wortzugriffen dem For-mat der Prozessoren der 8086-Familie:
Zuerst wird das Lowbyte (niederwertige Adresse), danach das Highbyte(höherwertige Adresse) des Wortes eingetragen.
Übersicht Die Länge der Diagnosedaten liegt typischerweise im Bereich 6 bis 32Byte. Die maximal mögliche Länge beträgt 244 Byte. Die Diagnose-daten besitzen den nachfolgend beschriebenen Aufbau.
Bitte beachten Sie die Beschreibung der Diagnosedaten in der jeweili-gen Dokumentation des verwendeten Slaves.
Byte Bedeutung
Byte 1 Stationsstatus_1
Byte 2 Stationsstatus_2
Byte 3 Stationsstatus_3
Byte 4 Diag.Master_Add
Byte 5 und 6 Ident_Number
Byte 7 bis 32 Ext_Diag_Data
Darstellung desByte-Aufbaus
Das nachfolgende Bild zeigt die Lage und Bezeichnung der Bits imangegebenen Byte.
Jedes Bit im Byte 1, dem „Stationstatus_1“-Byte, hat eine besondereBedeutung.
Bit Bedeutung
7 Diag. Master_Lock
Der DP-Slave ist bereits von einem anderen Master parametriertworden, d. h. der eigene Master hat momentan keinen Zugriff aufdiesen Slave.
6 Diag. Prm_Fault
Dieses Bit wird vom DP-Slave gesetzt, falls das letzte Parametrierte-legramm fehlerhaft war (beispielsweise falsche Länge, falsche Ident-Number, ungültige Parameter).
5 Diag. Invalid_Slave_Response
Dieses Bit wird gesetzt, sobald von einem angesprochenen DP-Slaveeine unplausible Antwort empfangen wird.
4 Diag. Not_Supported
Dieses Bit wird gesetzt, sobald eine Funktion angefordert wurde, dievon diesem Slave nicht unterstützt wird (beispielsweise wird ein Be-trieb im SYNC-Mode gefordert, vom Slave aber nicht unterstützt).
3 Diag. Ext_Diag
Dieses Bit wird vom DP-Slave gesetzt. Ist das Bit gesetzt, so muß indem Slave-spezifischen Diagnosebereich (Ext_Diag_Data) ein Diag-noseeintrag vorliegen. Ist das Bit nicht gesetzt, so kann in dem Sla-ve-spezifischen Diagnosebereich (Ext_Diag_Data) eine Statusmel-dung vorliegen. Die Bedeutung dieser Statusmeldung ist applikati-onsspezifisch zu vereinbaren.
2 Diag. Cfg_Fault
Dieses Bit wird gesetzt, sobald die vom DP-Master zuletzt gesende-ten Konfigurationsdaten mit denjenigen, die der DP-Slave ermittelthat, nicht übereinstimmen, d. h. es liegt ein Konfigurationsfehler vor.
1 Diag. Station_Not_Ready
Dieses Bit wird gesetzt, wenn der DP-Slave noch nicht für den Pro-duktivdatenaustausch bereit ist.
0 Diag. Station_Non_Existent
Dieses Bit setzt der DP-Master, falls der DP-Slave nicht über den Buserreichbar ist. Ist dieses Bit gesetzt, so enthalten die Diagnosebitsden Zustand der letzten Diagnosemeldung oder den Initialwert. DerDP-Slave setzt dieses Bit fest auf Null.
Jedes Bit im Byte 2, dem „Stationsstatus_2“-Byte, hat eine besondereBedeutung.
Bit Bedeutung
7 Diag. Deactivated
Dieses Bit wird gesetzt, sobald der DP-Slave im lokalen Parameter-satz als nicht aktiv gekennzeichnet und aus der zyklischen Bearbei-tung herausgenommen wurde.
6 reserviert
5 Diag. Sync_Mode
Dieses Bit wird vom DP-Slave gesetzt, sobald dieser DP-Slave dasSync-Steuerkommando erhalten hat.
4 Diag. Freeze_Mode
Dieses Bit wird vom DP-Slave gesetzt, sobald dieser DP-Slave dasFreeze-Steuerkommando erhalten hat.
3 Diag. WD_On (Watchdog on)
Dieses Bit wird vom DP-Slave gesetzt. Ist dieses Bit auf 1 gesetzt, soist die Ansprechüberwachung beim DP-Slave aktiviert.
2 Dieses Bit wird vom DP-Slave fest auf 1 gesetzt.
1 Diag.Stat_Diag (Statische Diagnose)
Setzt der DP-Slave dieses Bit, so muß der DP-Master solange Diag-noseinformationen abholen, bis dieses Bit wieder gelöscht wird. DerDP-Slave setzt zum Beispiel dieses Bit, wenn er keine gültigen Nutz-daten zur Verfügung stellen kann.
0 Diag. Prm_Req
Setzt der DP-Slave dieses Bit, so muß er neu parametriert und konfi-guriert werden. Das Bit bleibt solange gesetzt, bis eine Parametrie-rung erfolgt ist.
AnmerkungIst das Bit 1 und das Bit 0 gesetzt, so hat das Bit 0 die höhere Prio-rität.
Jedes Bit im Byte 3, dem „Stationsstatus_3“-Byte, hat eine besondereBedeutung.
Bit Bedeutung
7 Diag. Ext_Diag_Overflow
Ist dieses Bit gesetzt, so liegen mehr Diagnoseinformationen vor, alsin Ext_Diag_Data angegeben sind. Zum Beispiel setzt der DP-Slavedieses Bit, wenn mehr Kanaldiagnosen vorliegen, als der DP-Slave inseinen Sendepuffer eintragen kann; oder der DP-Master setzt diesesBit, wenn der DP-Slave mehr Diagnosedaten sendet, als derDP-Master in seinem Diagnosepuffer berücksichtigen kann.
6bis0
reserviert
Byte 4 Diag. Master_Add
In das Byte 4, dem „Diag. Master_Add“-Byte, wird die Adresse desDP-Masters eingetragen, der diesen DP-Slave parametriert hat. Ist derDP-Slave von keinem DP-Master parametriert, so setzt der DP-Slavein dieses Byte die Adresse 255 ein.
Byte 5 und 6 Ident_Number
In die Bytes 5 und 6, den „Ident_Number“-Bytes, wird die Hersteller-kennung für einen DP-Slave-Typ vergeben. Diese Kennung kann zumeinen für Prüfungszwecke und zum anderen zur genauen Identifizie-rung herangezogen werden.
Byte 7 bis 32 Ext_Diag_Data
In die Bytes 7 bis 32, den „Ext_Diag_Data“-Bytes, kann der DP-Slaveseine spezifische Diagnose ablegen. Es wird eine Blockstruktur mit jeeinem Headerbyte für die geräte- und kennungsbezogene Diagnosevorgeschrieben.
Beschreibung In diesem Block werden allgemeine Diagnoseinformationen wie Bei-spiel Übertemperatur, Unterspannung oder Überspannung hinterlegt.Die Kodierung wird gerätespezifisch festgelegt. Zur weiteren Auswer-tung muß die Ident_Number herangezogen werden.
Darstellung desByte-Aufbaus
Das nachfolgende Bild zeigt die Lage und Bezeichnung der Bits imangegebenen Byte.
MSB LSB
7 6 5 4 3 2 1 0
Bedeutung derBits im Headerbyte
Jedes Bit im „Headerbyte“ hat eine besondere Bedeutung.
Bit Bedeutung
7und6
fest auf 00 (Header-Byte-Kennung)
5bis0
Blocklänge in Bytes einschließlich Headerbyte 2 bis Headerbyte 63
Für jedes bei der Konfigurierung vergebene Kennungsbyte wird ein Bitreserviert. Es wird jeweils auf Byte-Grenzen aufgerundet, wobei dienicht konfigurierten Bits mit Null zu belegen sind. Ein gesetztes Bitbedeutet, daß in diesem E/A-Bereich eine Diagnose ansteht.
Jedes Bit im „Headerbyte“, hat eine besondere Bedeutung.
Darstellung desByte-Aufbaus
Das nachfolgende Bild zeigt die Lage und Bezeichnung der Bits imangegebenen Byte.
MSB LSB
7 6 5 4 3 2 1 0
Bedeutung derBits im Headerbyte
Jedes Bit im „Headerbyte“ hat eine besondere Bedeutung.
Bit Bedeutung
7und6
fest auf 01 (Header-Byte-Kennung)
5bis0
Blocklänge in Bytes einschließlich Headerbyte 2 bis Headerbyte 63
Bedeutung derBits in denDiagnosebytes
Jedes Bit in den „Diagnosebytes“ hat eine besondere Bedeutung.
Bit Bedeutung
7bis0
Bit 0 gesetzt bedeutet: Kennungsnummer 0 hat Diagnose
Bit 1 gesetzt bedeutet: Kennungsnummer 1 hat Diagnose
Bit 2 gesetzt bedeutet: Kennungsnummer 2 hat Diagnose
usw. bis
Bit 7 gesetzt bedeutet: Kennungsnummer 7 hat Diagnose
AnmerkungBei Kennungsbytes die sowohl Ein- als auch Ausgaben enthalten, wirdin Bit 7 und Bit 6 der Kanalnummer die Richtung des diagnostiziertenKanals angezeigt.
Beschreibung Für verschiedene ältere Versionen der Stationstypen ET 200U,ET 200K und ET 200B, weicht der Aufbau der Diagnoseinformationenvom heutigen Standard ab. Der Aufbau für diese Typen wird nachfol-gend erläutert.
Min_Slave_Interval Diese Zeit spielt beim Senden von Steuertelegrammen bzw. bei derLücke zwischen Pollzyklen eine wichtige Rolle. Eine detaillierte Be-schreibung der Zeit Min Slave Interval finden Sie in Kapitel 3.7.4.
Zeiteinheit: 5 ms
Poll_Timeout Mit dieser Zeit wird die Kommunikation zwischen dem DP-Master derKlasse 1 und einem DP-Master der Klasse 2 (DP-Diagnosegerät) ü-berwacht. Eine detaillierte Beschreibung der Zeit Poll Timeout findenSie in Kapitel 3.7.3.
Zeiteinheit: 50 ms
Data_Control_Time Diese Zeit spielt eine Rolle im Zusammenhang mit der FunktionalitätAUTOCLEAR. Eine detaillierte Beschreibung der Zeit Data ControlTime finden Sie in Kapitel 3.7.2.
Übersicht Die Slave-Parameter bestehen aus den Komponenten
• Sl_Flag, Slave-Typ, Oktett-String
• Parametrierdaten
• Konfigurierdaten
• Add-Tab-Liste
• Slave-User-Daten
Über die Aufruf-Funktion dpn_read_slv_par() können die obigen Kom-ponenten der Slaveparameter ausgelesen werden. Die Funktion wird inKapitel 5 detailliert beschrieben.
Oktett 1, der „Station_status“, hat folgenden Aufbau:
Dabei hat jedes Bit im „Station_status“-Byte eine besondere Bedeu-tung.
Bit Bedeutung
Lock_Req und Unlock_Req
Bit 7 Bit 6 Bedeutung
0 0 Bei einer Parametrierung wird die min TSDRüberschrieben. Alle anderen Parameter bleibenunbeeinflußt.
0 1 Der DP-Slave wird für andere Master freigege-ben.
1 0 Der DP-Slave wird für andere Master gesperrt,alle Parameter werden übernommen (Ausnahme: min TSDR = 0).
1 1 Der DP-Slave wird für andere Master freigege-ben.
Sync_Req
Mit diesem Bit wird dem Slave angezeigt, daß er im Sync-Mode be-trieben werden soll, sobald das Kommando mit der Funktiondpn_global_crtl() übergeben wird. Unterstüzt der DP-Slave das Sync-Kommando nicht, setzt er in den Diagnoseinformationen das Bit Di-ag.Not_Supported.
4 Freeze_Req
Mit diesem Bit wird dem DP-Slave angezeigt, daß er im Freeze-Modebetrieben werden soll, sobald das Kommando mit der Funktiondpn_global_ctrl() übergeben wird. Unterstützt der DP-Slave das Free-ze-Kommando nicht, setzt er in den Diagnoseinformationen das BitDiag.Not_Supported.
3 Watchdog
Ist dieses Bit auf Null gesetzt, so ist die Ansprechüberwachung deak-tiviert. Ist das Bit gesetzt, wird die Ansprechüberwachung beimDP-Slave aktiviert.
2bis0
Diese Bits sind für künftige Funktionserweiterungen reserviert. Sindbei einem DP-Slave keine Funktionserweiterungen implementiert undist ein solches Bit gesetzt, so wird in den Diagnoseinformationen dasBit Diag.Not_Supported gesetzt.
Diese beiden Bytes enthalten Faktoren für die Einstellung der An-sprechüberwachungszeit (TWD).
Die Ansprechüberwachungszeit sorgt in einem DP-Slave dafür, daßnach dem Ausfall des DP-Masters nach Ablauf dieser Zeit die Ausgän-ge den sicheren Zustand einnehmen.
TWD [ms] = 10 ms * WD_Fact_1 * WD_Fact_2
Oktett 4 Min. Station Delay Responder
Das ist die Zeit, die der DP-Slave warten muß, bis er seine Antwortte-legramme an den DP-Master zurücksenden darf.
Einheit: Bit-Zeiten
Oktett 5 und 6 Ident_Number
Diese Nummer wird vom Hersteller vergeben. Der DP-Slave akzeptiertnur Parametriertelegramme, bei denen die übertragene Ident_Numbermit der eigenen Ident_Number übereinstimmt.
Oktett 7 Group_Ident
Mit diesem Parameter kann eine Gruppenbildung für die Funktiondpn_glb_ctrl() gebildet werden. Jedes Bit stellt eine Gruppe dar. DieGroup_Ident wird nur bei gesetztem Lock_Req-Bit übernommen.
Oktett 8 bis 32 User_Prm_Data
Diese Bytes sind für DP-Slave-spezifische Parameter (z. B. Diagnose-filter, Reglerparameter) frei belegbar. Die Bedeutung und die Wertebe-reiche werden herstellerspezifisch festgelegt.
7.2 Einsatzumgebung unter DOS .......................................................................188
7.3 Anmelden einer DP-Applikation....................................................................1907.3.1 Beispiele für die Anmeldung einer DP-Applikation ........................................192
SCI-Library Library mit Funktionen für Zugriff aufden Treiber des CP.
Die DP-Library und die SCI-Library müssen zu der DP-Applikationgebunden werden. Das DP-Include-File stellt der DP-Applikation dieerforderlichen Deklarationen und Konstanten zur Verfügung.
Übersicht derKomponenten
Die folgende Tabelle zeigt, für welche Compiler-Versionen dieDP-Library verfügbar ist. In den entsprechenden Spalten der Tabellesind die für die Erstellung der DP-Applikation erforderlichen Files auf-geführt. Um z. B. eine Borland-DOS-Applikation zu erstellen, müssenSie zur DP-Applikation die Libraries LDDPNBC.LIB und LDSCITC.LIBbinden.
Compiler Files MicrosoftMSVC 1.x
Borland C++V4.x
Anmerkung
DP-Library LDDPNMSC.LIB LDDPNBC.LIB DP-Library für DOS im Large-Modell
SCI-Library LDSCIMSC.LIB LDSCITC.LIB Diese Libraries müssen zurDP-Applikation gebunden werden.
Die Bibliothek LDSCIMSC.LIB wurde mit Microsoft Visual C++, Versi-on 1.52 erstellt und die Bibliothek LDSCITC.LIB wurde mit TurboC++,Version 1.0 erstellt.
Hinweise Beim Kompilieren der DP-Applikation muß die Define-AnweisungDPN_DOS aktiviert werden (z. B. über Compiler-Schalter). Diese Defi-ne-Anweisung wird vom Include-File DPN_USER.H benötigt und mußvom Anwender zur Verfügung gestellt werden.
In einem Rechner können mehrere PROFIBUS-CP installiert sein.Beim Multi-Board-Betrieb greift eine DP-Applikation auf mehrere CPzu, wie im folgenden Bild 7.2 gezeigt wird.
PROFIBUS CP
PROFIBUS
PG/PC
DOS-ApplikationDP-Library
PROFIBUS CP
Bild 7.2: Multi-Board-Betrieb mit zwei Baugruppen
Voraussetzungenfür Multi-Board-Betrieb
Beim Multi-Board-Betrieb müssen die PROFIBUS-CP an verschiede-nen Bussen angeschlossen sein. Jeder dieser CP steuert alsDP-Master die DP-Slaves des entsprechenden Busses.
Ein gemeinsamer Betrieb mehrerer DP-Master im gleichen PG/PCam gleichen Bus führt zu Konfliktsituationen und ist daher nichtzulässig.
Allgemeines Eine DOS-Applikation muß sich für jeden CP, mit dem sie kommun-zieren will, mit der Funktion dpn_init() anmelden. Diese Funktion mußvor allen anderen DP-Funktionen aufgerufen werden.
Mit dem Funktionsaufruf werden nachfolgende Eigenschaften derDP-Applikation festgelegt und dem CP bekanntgemacht (detaillierteBeschreibung: siehe Kapitel 5):
• Nummer des PROFIBUS-CP, mit dem die DP-Applikation kommu-niziert
• Art und Umfeld der DP-Applikation
• Zugriffsrechte auf die DP-Slaves
Im Erfolgsfall liefert die Funktion dpn_init() eine Referenz (Handle) aufden selektierten CP zurück. Diese Referenz muß bei allen weiterenFunktionsaufrufen an diesen CP im Element reference der Strukturdpn_interface eingetragen werden.
Über diesen Parameter muß sich eine DP-Applikation beim Aufruf vondpn_init() bei dem DP-Master identifizieren. Nach obiger Tabelle sindunter DOS die beiden folgenden Einträge zulässig:
• (DPN_SYS_CENTRAL) | (DPN_ROLE_CENTRAL)
• (DPN_SYS_NOT_CENTRAL) | (DPN_ROLE_NOT_CENTRAL
Die folgende Tabelle zeigt das unterschiedliche Verhalten desDP-Masters bei den beiden Einträgen
Anmeldekategorie
Optionen
(DPN_SYS_CENTRAL) |(DPN_ROLE_CENTRAL)
(DPN_SYS_NOT_CENTRAL) |(DPN_ROLE_NOT_CENTRAL)
Einstellen des Betriebs-zustands desDP-Masters
Die Betriebsart des DP-Mastersmuß von der DP-Applikation überden Funktionsaufrufdpn_set_mode() eingestellt wer-den. Eine Änderung der Betriebs-art ist jederzeit möglich.
Der DP-Master wechselt nach dem Auf-ruf dpn_init() selbsttätig in die Be-triebsart OPERATE.
VerfügbareDP-Funktionen
Es können alle DP-Funktionender DP-Programmierschnittstellegenutzt werden.
Folgende DP-Funktionsaufrufe sindnicht zulässig:
• dpn_load_bus_par()
• dpn_set_mode()
• dpn_global_ctrl()
Sonstiges Wurde AUTOCLEAR projektiert,wechselt der DP-Master nachAuftreten eines Fehlers selbsttätigin die Betriebsart CLEAR.
7.3.1 Beispiele für die Anmeldung einer DP-Applikation
Beschreibung Die folgenden Beispiele zeigen das prinzipielle Anmeldungsverfahrenfür den Singleboard- und Multiboard-Betrieb. Aus Gründen der Über-sichtlichkeit sind die Beispiele vereinfacht. So erfolgt z. B. keine Über-prüfung des Rückgabewerts, was in einer realen DP-Applikation aufjeden Fall geschehen sollte.
Beispiel:Single-Board-Betrieb
In einem Rechner ist ein CP installiert. Am Bus sind drei DP-Slavesmit den PROFIBUS-Adressen 3, 4 und 7 angeschlossen. DerDP-Slave Nr. 3 besitzt nur Eingabeports, der DP-Slave Nr. 4 besitztnur Ausgabeports und der DP-Slave Nr. 7 besitzt Eingabe- und Ausga-beports.
Der DP-Master soll nach dem Funktionsaufruf dpn_init() selbsttätig indie Betriebsart OPERATE wechseln. Aus diesem Grund wird imStrukturelement reference.access die Kennung(DPN_SYS_NOT_CENTRAL | DPN_ROLE_NOT_CENTRAL) einge-tragen.
Der Zeiger dpn_ptr zeigt im Beispiel auf die Struktur dpn_interface.
Der Initialisierungsaufruf könnte wie folgt aussehen:
In einem Rechner sind zwei CP installiert. Jeder CP ist an einem eige-nen Bussegment angeschlossen.
Die Anordnung der Slaves am Bus Nr. 1 entspricht dem obigen Bei-spiel Single-Board-Betrieb. Der DP-Master für den Bus 1 soll nachdem Funktionsaufruf dpn_init() selbsttätig in die Betriebsart OPERATEwechseln.
Am Bus Nr. 2 ist ein DP-Slave mit der PROFIBUS-Adresse 3 ange-schlossen. Der DP-Slave besitzt nur Ausgabeports. Im Gegensatz zumBus Nr. 1 soll hier die DP-Applikation die Betriebsart OPERATE ein-stellen. Aus diesem Grund wird im Strukturelement reference.accessdie Kennung (DPN_SYS_CENTRAL | DPN_ROLE_NOT_CENTRAL)eingetragen.
Der Zeiger dpn1_ptr zeigt auf die Struktur dpn_interface des BussesNr. 1. Der Zeiger dpn2_ptr zeigt auf die Struktur dpn_interface desBusses Nr. 2.
Die Initialisierungsaufrufe der DP-Applikation könnten wie folgt ausse-hen:
(DPN_ROLE_CENTRAL);dpn2_ptr -> length = 4; // Index 0 bis 3dpn2_ptr -> user_data[0] = DPN_SLV_NO_ACCESS;dpn2_ptr -> user_data[1] = DPN_SLV_NO_ACCESS;dpn2_ptr -> user_data[2] = DPN_SLV_NO_ACCESS;dpn2_ptr -> user_data[3] = DPN_SLV_WRITE_READ;error = dpn_init (dpn2_ptr);// Hier Einstellen der Betriebsart des Bus Nr. 2 über die// Funktionsaufrufe dpn_set_mode()// und dpn_get_mode(). Siehe Kapitel 5 der DP-Beschreibung
8.2 Einsatzumgebung unter Windows.................................................................196
8.3 Anmelden einer DP-Windows-Applikation.....................................................2008.3.1 Beispiele für die Anmeldung unter Windows.................................................202
Es werden die Microsoft Betriebssysteme Windows 3.x im erweitertenModus für 386, Windows 95 und Windows NT unterstützt. Im folgen-den gilt der Sammelbegriff Windows für alle Versionen des Betriebs-systems.
ErforderlicheLibraries undInclude-Files
Die DP-Library wird unter Windows als DLL (Dynamic Link Library) zurVerfügung gestellt.
Das DP-Include-File stellt der DP-Applikation die erforderlichen Dekla-rationen und Konstanten zur Verfügung.
Windows 3.x Für die Erstellung von DP-Applikationen unter Windows 3.x benötigenSie folgende Dateien.
Konstanten Beim Kompilieren der DP-Applikation muß die Define-AnweisungDPN_WIN aktiviert werden (z. B. über Compiler-Schalter). Diese Defi-ne-Anweisung wird vom Include-File dpn_user.h benötigt und mußvom Anwender zur Verfügung gestellt werden.
In diesem Fall greifen mehrere DP-Windows-Applikationen auf einengemeinsamen PROFIBUS-CP zu.
PROFIBUS CP
PROFIBUS
PG/PC
DP-Dynamic Link Library (DLL)
Windows-Applikation
Windows-Applikation
Bild 8.2: Single-Board-/Multi-User-Betrieb
Multi-Board-/Single-User-Betrieb
In einem Rechner können mehrere PROFIBUS-CP installiert sein.Beim Multi-Board-/Single User-Betrieb greift eine DP-Windows-Applikation auf mehrere PROFIBUS-CP zu, wie im folgenden Bild 8.3gezeigt wird.
In einem Rechner können mehrere PROFIBUS-CP installiert sein.Beim Multi-Board-/Multi-User-Betrieb greifen mehrere DP-Windows-Applikationen auf mehrere PROFIBUS-CP zu, wie im folgenden Bild8.4 gezeigt wird.
PROFIBUS CP
PROFIBUS
PG/PC
DP-Dynamic Link Library (DLL)
PROFIBUS CP
Windows-Applikation
Windows-Applikation
Bild 8.4: Multi-Board-/Multi-User-Betrieb
Voraussetzungenfür Multi-Board-Betrieb
Beim Multi-Board-Betrieb müssen die CP an verschiedenen Bussenangeschlossen sein. Jeder dieser CP steuert als DP-Master dieDP-Slaves des entsprechenden Busses.
Ein gemeinsamer Betrieb mehrerer DP-Master im gleichen PC/PGam gleichen Bus führt zu Konfliktsituationen und ist daher nichtzulässig.
Die DP-DLL unterstützt maximal vier DP-Windows-Applikationen.
Es werden maximal zwei CP und maximal vier Applikationen gleich-zeitig unterstützt. Dabei ist zu beachten, daß die Anmeldung einerDP-Applikation bei zwei CP (hierzu sind zwei Anmeldungsaufrufeerforderlich) wie die Anmeldung zweier Applikationen behandelt wird,d. h. nach dieser Anmeldung können sich noch zwei weitere Applika-tionen anmelden.
Beispiel 1Die DP-Applikationen 1, 2 und 3 melden sich für einen Zugriff auf denCP 1 an. DP-Applikation 4 meldet sich für den CP 2 an. Alle Anmel-dungen werden (sofern sie nicht widersprüchlich sind) positiv quittiert.
Eine weitere DP-Applikation 5 möchte sich für Baugruppe 2 anmelden.Diese Anmeldung wird negativ quittiert, da bereits vier Applikationenangemeldet sind.
Beispiel 2Die DP-Applikation 1 meldet sich für die CPs 1 und 2 an. DieDP-Applikation 2 meldet sich ebenfalls für die CPs 1 und 2 an. Unterder Annahme, daß alle vier Anmeldungen positiv quittiert wurden,versucht die DP-Applikation 3 eine Anmeldung bei dem CP 1.
Diese Anmeldung wird negativ quittiert, da die Anmeldung derDP-Applikation 1 (2) bei den CPs 1 und 2 wie die Anmeldung 2erDP-Applikationen behandelt wird. Dadurch sind zum Zeitpunkt derAnmeldung von DP-Applikation 3 insgesamt bereits vierDP-Applikationen gemeldet.
Allgemein Eine Windows-Applikation muß sich für jeden PROFIBUS-CP, mitdem sie kommunzieren will, mit der Funktion dpn_init() anmelden.Diese Funktion muß vor allen anderen DP-Funktionen aufgerufenwerden.
Mit dem Funktionsaufruf werden nachfolgende Eigenschaften derDP-Applikation festgelegt und dem CP bekanntgemacht (detaillierteBeschreibung siehe Kapitel 5):
• Die Nummer des CP.
• Art und Umfeld der DP-Applikation.
• Die Zugriffsrechte auf die DP-Slaves.
Im Erfolgsfall liefert die Funktion dpn_init() eine Referenz (Handle) aufden CP zurück. Diese Referenz muß bei allen weiteren Funktionsauf-rufen an diesen CP im Element reference der Struktur dpn_interfaceeingetragen werden.
Über dieses Strukturelement muß sich eine DP-Applikation beim Auf-ruf von dpn_init() bei der DP-Programmierschnittstelle identifizieren.Nach obiger Tabelle sind unter Windows folgende Einträge zulässig:
Die nachfolgende Tabelle zeigt das unterschiedliche Verhalten derDP-DLL bei den möglichen Einträgen.
Einstellen derApplikationsart
Bedeutung Verfügbare DP-Funktionen
(DPN_SYS_CENTRAL) |(DPN_ROLE_CENTRAL)
Die DP-Applikation ist eine überge-ordnete Applikation. Die Betriebsartdes DP-Masters muß von derDP-Applikation über den Funk-tionsaufruf dpn_set_mode() einge-stellt werden. Eine Änderung derBetriebsart ist jederzeit möglich.
Es können alle DP- Funktionender DP-DLL genutzt werden.
(DPN_SYS_CENTRAL) |(DPN_ROLE_NOT_CENTRAL)
Die DP-Applikation ist keine über-geordnete Applikation. Es ist nocheine andere DP-Applikation vorhan-den. Diese andere DP-Applikationist eine übergeordnete Applikation.Sie muß die Betriebsart desDP-Masters einstellen.
Folgende DP-Funktionsaufrufesind nicht zulässig:
• dpn_load_bus_par()
• dpn_set_mode()
• dpn_ global_ctrl().
(DPN_SYS_NOT_CENTRAL) |(DPN_ROLE_NOT_CENTRAL)
Die DP-Applikation ist keine über-geordnete Applikation. DerDP-Master wechselt nach dem Auf-ruf dpn_init() selbsttätig in Betriebs-art OPERATE, da es im Systemkeine übergeordnete Applikationgibt.
Folgende DP-Funktionsaufrufesind nicht zulässig:
• dpn_load_bus_par()
• dpn_set_mode()
• dpn_global_ctrl()
AUTOCLEARDie Funktionalität AUTOC-LEAR (siehe Kapitel 3.7.6) istbei der EinstellungDPN_SYS_NOT_CENTRALnicht wirksam.
Sonderfall:Multi-User-/Single-Board-Betrieb
Melden sich mehrere DP-Windows-Applikationen bei dem gleichenCP an, sind folgende Regeln zu beachten:
Regel 1Nur eine der DP-Applikationen darf sich als übergeordneteDP-Applikation (DPN_ROLE_CENTRAL) anmelden.
Regel 2Alle DP-Applikationen müssen als DP-Applikationsumgebung den glei-chen Wert eintragen (entweder DPN_SYS_CENTRAL oderDPN_SYS_NOT_CENTRAL).
Regel 3Es ist nicht zulässig, daß mehrere DP-Applikationen Ausgabedaten anden gleichen DP-Slave senden. Aus diesem Grund darf bei der Ver-gabe des Zugriffsrechts für einen bestimmten Slave x die KennungDPN_SLV_ WRITE_READ (Ausgabedaten schreiben/Eingabedatenlesen) nur von einer DP-Windows-Applikation vergeben werden.
Beschreibung Die folgenden Beispiele zeigen das prinzipielle Anmeldungsverfahrenvon DP-Applikationen für den Single-Board- und Multi-Board-Betrieb.Aus Gründen der Übersichtlichkeit sind die Beispiele vereinfacht. Soerfolgt z. B. keine Überprüfung des Rückgabewertes, was in einer rea-len Applikation auf jeden Fall geschehen sollte.
Beispiel 1:Single-Board-/Single User-Betrieb
In einem Rechner ist ein CP installiert. Am Bus sind drei DP-Slavesmit den PROFIBUS-Adressen 3, 4 und 7 angeschlossen. DerDP-Slave Nr. 3 besitzt nur Eingabeports, der DP-Slave Nr. 4 besitztnur Ausgabeports und der DP-Slave Nr. 7 besitzt Eingabe- und Ausga-beports.
Der DP-Master soll nach dem Funktionsaufruf dpn_init() selbsttätig indie Betriebsart OPERATE wechseln. Aus diesem Grund wird imStrukturelement reference.access die Kennung (DPN_SYS_NOT_CENTRAL | DPN_ROLE_NOT_CENTRAL) eingetragen.
Der Zeiger dpn_ptr zeigt auf die Struktur dpn_interface.
Der Initialisierungsaufruf könnte wie folgt aussehen:
In einem Rechner sind zwei CP installiert. Jeder CP ist an einem eige-nen Bus angeschlossen.
Die Anordnung der Slaves am Bus 1 entspricht dem obigen Beispiel 1.Der DP-Master für den Bus 1 soll nach dem Funktionsaufruf dpn_init()selbsttätig in die Betriebsart OPERATE wechseln.
Am Bus Nr. 2 ist ein DP-Slave mit der PROFIBUS-Adresse 3 ange-schlossen. Der DP-Slave besitzt nur Ausgabeports. Im Gegensatz zumBus 1 soll hier der DP-Master selbst die Betriebsart OPERATE ein-stellen. Aus diesem Grund wird im Strukturelement reference.accessdie Kennung DPN_SYS_CENTRAL eingetragen.
Der Zeiger dpn1_ptr zeigt auf die Struktur dpn_interface des Bus 1.Der Zeiger dpn2_ptr zeigt auf die Struktur dpn_interface des Bus 2.
Die Initialisierungsaufrufe der DP-Applikation könnten wie folgt ausse-hen:
(DPN_ROLE_CENTRAL);dpn2_ptr -> length = 4; // Index 0 bis 3dpn2_ptr -> user_data[0] = DPN_SLV_NO_ACCESS;dpn2_ptr -> user_data[1] = DPN_SLV_NO_ACCESS;dpn2_ptr -> user_data[2] = DPN_SLV_NO_ACCESS;dpn2_ptr -> user_data[3] = DPN_SLV_WRITE_READ;error = dpn_init (dpn2_ptr);// Hier Einstellen der Betriebsart des Bus Nr. 2 über die// Funktionsaufrufe dpn_set_mode()// und dpn_get_mode(). Siehe Kapitel 5 der DP-Beschreibung
In einem Rechner ist ein CP installiert. Am Bus sind drei DP-Slavesmit den PROFIBUS-Adressen 3, 4 und 7 angeschlossen. DerDP-Slave Nr. 3 besitzt nur Eingabeports, der DP-Slave Nr. 4 besitztnur Ausgabeports und der DP-Slave Nr. 7 besitzt Eingabe- und Ausga-beports.
Auf den CP greifen zwei DP-Windows-Applikationen zu.
Der DP-Master soll nach dem erstmaligen Aufruf der Funktiondpn_init() selbsttätig in die Betriebsart OPERATE wechseln.
Der Zeiger dpn_ptr zeigt auf die Struktur dpn_interface.
Die Initialisierungsaufrufe der DP-Applikationen können wie folgt aus-sehen:
In einem Rechner ist ein CP installiert. Am Bus sind drei DP-Slavesmit den PROFIBUS-Adressen 3, 4 und 7 angeschlossen. DerDP-Slave Nr. 3 besitzt nur Eingabeports, der DP-Slave Nr. 4 besitztnur Ausgabeports und der DP-Slave Nr. 7 besitzt Eingabe- und Ausga-beports.
Auf den CP greifen zwei DP-Applikationen zu.
Im Gegensatz zum Beispiel Nr. 3 soll eine der beiden DP-Windows-Applikationen selbst die Betriebsart OPERATE einstellen. Aus diesemGrund wird im Strukturelement reference.access die Kennung(DPN_SYS_CENTRAL | DPN_ROLE_NOT_CENTRAL) eingetragen.
Der Zeiger dpn_ptr zeigt auf die Struktur dpn_interface.
Die Initialisierungsaufrufe der DP-Windows-Applikationen könnten wiefolgt aussehen:
Beispiel: makefile Das folgende Beispiel zeigt ein Makefile für das Programm DP_Demo.Es besteht aus einem Source-File demo.C und den benötigten Biblio-theken.
Anlage Gesamtheit aller elektrischen Betriebsmittel. Zu einer Anlage gehörenu. a..: Speicherprogrammierbare Steuerung, Geräte für Bedienen undBeobachten, Bussysteme, Feldgeräte, Antriebe, Versorgungsleitungen.
Ansprech-überwachungszeit
Eine im ➜ DP-Slave einstellbare Überwachungszeit zur Ausfallerken-nung des zugeordneten ➜ DP-Masters.
Basisadresse Logische Adresse einer Baugruppe in S7-Systemen.
Baudrate Übertragungsrate am Bus (Einheit: Bit/sec). Ein ➜ Busparameter für ➜PROFIBUS. Die Angabe bzw. Wahl der Baudrate hängt von verschie-denen Randbedingungen ab, wie beispielsweise Entfernung.
Busparameter Busparameter steuern das Übertragungsverhalten am Bus. Jeder ➜
Teilnehmer an ➜ PROFIBUS muß mit den Busparametern andererTeilnehmer übereinstimmende Busparameter verwenden.
Bussegment Teil eines ➜ Subnetzes. Subnetze können aus Bussegmenten mittelsSegmentübergängen wie Repeater und Bridges gebildet sein. Seg-mente sind für die Adressierung transparent.
CFB Communication Function Block - Kommunikationsverfahren zumprogrammgesteuerten Übertragen von Daten von oder zu einer CPU inS7-300/400 durch Verwendung von speziellen Funktionsbausteinen.Diese Funktionsbausteine wurden basierend auf dem Entwurf von IEC1131-5 definiert. Kommunikationspartner können andere kommunika-tionsfähige Baugruppen aus S7-300/400, BuB-Systeme, PC oder an-dere Steuerungen und Rechner sein.
COM PROFIBUS Projektierwerkzeug zur Projektierung von ➜ DP-Mastern an ➜ PRO-FIBUS.
CP Ein- und Ausgabebaugruppen, die dezentral von der CPU (Zentralein-heit der Steuerung) eingesetzt werden. Die Verbindung zwischen demAutomatisierungsgerät und der Dezentralen Peripherie erfolgt über dasBussystem ➜ PROFIBUS. Automatisierungsgeräten wird der Unter-schied zu lokalen Prozeßein- oder Prozeßausgaben verdeckt.
DezentralePeripherie
Ein- und Ausgabebaugruppen, die dezentral von der CPU (Zentralein-heit der Steuerung) eingesetzt werden. Die Verbindung zwischen demAutomatisierungsgerät und der Dezentralen Peripherie erfolgt über dasBussystem ➜ PROFIBUS. Automatisierungsgeräten wird der Unter-schied zu lokalen Prozeßein- oder Prozeßausgaben verdeckt.
Dienste Angebotene Leistungen eines Kommunikationsprotokolls.
DP-E/A-Modul DP-Slaves sind modular aufgebaut. Ein ➜ DP-Slave besitzt mindes-tens ein DP-E/A-Modul.
DP-E/A-Typ DP-E/A-Typ bezeichnet ein ➜ DP-E/A-Modul. Zu unterscheiden sind:
• Eingabemodul
• Ausgabemodul
• Ein-/Ausgabemodul
DP-Master Ein ➜ Teilnehmer mit Master-Funktion bei ➜ PROFIBUS DP. DerDP-Master wickelt den Nutzdatenverkehr mit den ihm zugeordneten ➜DP-Slaves ab.
DP-Modulliste In der DP-Modulliste werden die zu einem ⇐ DP-Slave gehörendenModule verwaltet. Einträge in die DP-Modulliste werden bei der Pro-jektierung eines ➜ DP-Masters mit dem ➜ COM PROFIBUS vorge-nommen.
DP-Modulname Bezeichnung eines in der ➜ DP-Modulliste eingetragenen ➜ DP-E/A-Moduls.
DP-Modultyp Bezeichnung für die Identifikation eines ➜ DP-E/A-Moduls in den ➜
Gerätestammdaten eines ➜ DP-Slaves nach EN 50 170 Vol. 2 (DIN E19245 Teil 3).
DP-Slave Ein ➜ Teilnehmer mit Slave-Funktion bei ➜ PROFIBUS DP.
DP-Slave-Katalog Im DP-Slave-Katalog werden für die Projektierung von ➜ DP-MasternGerätebeschreibungen für ➜ DP-Slaves nach ➜ DP-Norm hinterlegt.Der DP-Slavekatalog steht bei der Projektierung mit dem ➜ COMPROFIBUS zur Verfügung.
DP-Slave-Name Zur Identifikation eines ➜ DP-Slaves in der projektiertenDP-Konfiguration wird ein DP-Slave-Name in der DP-Slave-Liste ein-getragen.
DP-Subnetz PROFIBUS(Sub)netz, an dem nur ➜ Dezentrale Peripherie betriebenwird.
DP-Subsystem Ein ➜ DP-Master und alle ➜ DP-Slaves, mit denen dieser DP-MasterDaten austauscht.
Enhanced Mode Erweiterte Betriebsart unter Windows 3.x für Personal Computer miteinem Intel 386 oder einem kompatiblen Prozessor.
FDL Fieldbus Data Link. Schicht 2 bei ➜ PROFIBUS
FREEZE-Modus Der FREEZE-Modus ist eine DP-Betriebsart, bei der von allen (odervon einer Gruppe von) DP-Slaves zeitgleich Prozeßdaten erfaßt wer-den. Der Erfassungszeitpunkt wird durch das FREEZE-Kommando(das ist ein Steuertelegramm zur Synchronisation) signalisiert.
Ein freier Adreßbereich zwischen zwei aktiven ➜ Teilnehmern wirdzyklisch von dem Teilnehmer mit der kleineren ➜ PROFIBUS-Adressedurchsucht um festzustellen, ob ein weiterer Teilnehmer in den logi-schen Ring aufgenommen werden möchte. Die Zykluszeit für dieseÜberprüfung wird bestimmt durch:
Gap-Aktualisierungsfaktor x Target rotation time
Gateway Intelligentes Schnittstellengerät, das auf ISO-Schicht 7 verschiedenar-tige lokale ➜ Netze miteinander verbindet.
GD-Kreis GD-Kreis bezeichnet eine Zusammenfassung von ➜ Teilnehmern, diemiteinander GD-Daten austauschen. Ein ➜ GD-Paket wird somit andie zum GD-Kreis gehörenden Teilnehmer gesendet.
GD-Paket Zusammenfassung von ggf. im Automatisierungssystem verteilt abge-legten Daten (z. B. Merker, Datenbaustein), die mit dem Verfahren ➜Globale Daten übertragen werden sollen.
Gerätestammdaten Gerätestammdaten (GSD) enthalten DP-Slave-Beschreibungen nachEN 50 170 Vol. 2 (DIN E 19245 Teil 3). Die Nutzung von GSD er-leichtert die Projektierung des ➜ DP-Masters sowie der ➜ DP-Slaves.
Globale Daten Globale Daten (GD) bezeichnet ein Kommunikationsverfahren zumzyklischen Austausch von begrenzten Datenmengen aus STEP 7-Datenbereichen zwischen CPUs der S7-300/400. Gesendete Datenkönnen gleichzeitig von mehreren CPUs empfangen werden.
Gruppen-identifikation
DP-Slaves können über eine Gruppenidentifikation einer oder mehre-ren Gruppen zugewiesen werden. Die ➜ DP-Slaves können dann überdie Gruppenidentifikation bei der Übertragung von Steuertelegrammengezielt angesprochen werden.
HöchstePROFIBUS-Adresse
Ein ➜ Busparameter für ➜ PROFIBUS. Gibt die höchste ➜ PROFI-BUS-Adresse eines aktiven ➜ Teilnehmers an PROFIBUS an. Fürpassive Teilnehmer sind PROFIBUS-Adressen größer als HSA zuläs-sig (Wertebereich: HSA 1..126).
Knotentabelle Die Knotentabelle gilt für alle ➜ Netze innerhalb einer ➜ Anlage. JederEintrag in der Knotentabelle beschreibt die Schnittstelle eines Automa-tisierungssystems (oder einer beliebigen anderen Station) zu einem ➜Subnetz. Die Einträge in der Knotentabelle werden vom System be-nutzt, um Verbindungen zwischen Stationen zu finden und aufzubau-en.
LSB Least Significant Bit - niederwertigstes Bit.
Master Aktiver Teilnehmer an ➜ PROFIBUS, der unaufgefordert ➜ Tele-gramme senden kann, wenn er im Besitz des Token ist.
Ein ➜ Busparameter für ➜ PROFIBUS. Die Maximum Station Delay(max. TSDR) gibt die größte, bei einem der ➜ Teilnehmer im ➜ Sub-netz benötigte Zeitspanne an, die zwischen dem Empfang des letztenBits eines unquittierten ➜ Telegramms bis zum Senden des ersten Bitsdes nächsten Telegramms vergehen muß. Ein Sender darf nach demSenden eines unquittierten Telegrammes erst nach Ablauf der Zeit-spanne max. TSDR ein weiteres Telegramm senden.
MinimumStation Delay
Ein ➜ Busparameter für ➜ PROFIBUS. Die Minimum Station Delay(min. TSDR) gibt die Zeitspanne an, die der Empfänger eines ➜ Tele-gramms bis zum Senden der Quittung oder bis zum Senden einesweiteren Telegrammes mindestens warten muß. Die min. TSDR richtetsich nach der größten, bei einem Teilnehmer im Subsystem benötigtenZeitspanne zur Entgegennahme einer Quittung nach dem Senden desTelegrammes.
MSB Most Significant Bit - höchstwertigstes Bit.
Netz Ein Netz besteht aus einem oder mehreren verknüpften ➜ Subnetzenmit einer beliebigen Zahl von ➜ Teilnehmern. Es können mehrereNetze nebeneinander bestehen. Für jedes Subnetz gibt es eine ge-meinsame ➜ Knotentabelle.
Offset Bei der FDL-Programmierschnittstelle Länge des reservierten Bereichsam Beginn eines Datenpuffers.
PROFIBUS Ein Feldbus für den Industrieeinsatz nach EN 50 170 Vol. 2 (DIN19245).
PROFIBUS-Adresse
Die PROFIBUS-Adresse ist eine eindeutige Kennung eines an ➜
PROFIBUS (PROFIBUS) angeschlossenen ➜ Teilnehmers. Zur Ad-ressierung eines Teilnehmers wird die PROFIBUS-Adresse im ➜ Te-legramm übertragen.
PROFIBUS DP PROFIBUS Dezentrale Peripherie - Übertragungsdienste nach PRO-FIBUS EN 50 170 Vol. 2 (DIN E 19245 Teil 3) bei ➜ PROFIBUS.PROFIBUS DP EN 50 170 Vol. 2 (DIN 19245 T1 + T3) ist eine Richtli-nie der PROFIBUS Nutzerorganisation (PNO) für den Datenaustauschmit dezentralen Peripheriegeräten.
PROFIBUS DPMaster
Ein ➜ Teilnehmer mit Master-Funktion bei ➜ PROFIBUS DP.
PROFIBUS PA PROFIBUS PA EN 50 170 Vol. 2 (DIN 19245 T4) ist eine Richtlinie derPROFIBUS Nutzerorganisation (PNO) für den Einsatz im eigensiche-ren Bereich.
Protokoll Verfahrensvorschrift für die Übermittlung in der Datenübertragung. Mitdieser Vorschrift werden sowohl die Formate der Nachrichten als auchder Datenfluß bei der Datenübertragung festgelegt.
Prozeßabbild Das Prozeßabbild ist ein besonderer Speicherbereich im Automatisie-rungssystem. Am Anfang des zyklischen Programmes werden die Sig-nalzustände der Eingabebaugruppen zum Prozeßabbild der Eingängeübertragen. Am Ende des zyklischen Programmes wird das Prozeßab-bild der Ausgänge als Signalzustand zu den Ausgabebaugruppen ü-bertragen.
ReorganisationTokenring
Alle ➜ Master am ➜ PROFIBUS bilden einen logischen Tokenring.Innerhalb dieses Tokenrings wird die Sendeberechtigung (Token) vonStation zu Station weitergegeben. Wird nun die Übertragung des To-kens gestört oder wird ein Master vom Tokenring entfernt, so führt diesbei der Token-Weitergabe zu einem Fehler (Token wird von dieserStation nicht angenommen), was eine Ausgliederung dieser Stationaus dem Tokenring zur Folge hat. Die Anzahl der Ausgliederungenwerden im internen Token_error_counter gezählt. Erreicht dieser Zäh-ler einen oberen Grenzwert, dann wird der logische Tokenring neuaufgebaut (reorganisiert).
SCOPE PROFIBUS Diagnoseprodukt für ➜ PROFIBUS, mit dem der Telegrammverkehram ➜ Netz erfaßt und analysiert werden kann.
Segment Synonym für ➜ Bussegment
Setup Time Ein ➜ Busparameter für ➜ PROFIBUS. Die Setup Time gibt den Min-destzeitabstand zwischen dem Empfang einer Quittung bis zum Sen-den eines neuen Aufruftelegrammes durch den Sender an.
SIMATIC NET Siemens Network and Communication. Produktbezeichnung für ➜Netze und Netzkomponenten bei Siemens
Slot Time Ein Busparameter für ➜ PROFIBUS. Die Slot Time (TSL) ist die Ü-berwachungszeit eines Senders eines ➜ Telegramms auf die Quittungdes Empfängers.
Subnetz Ein Subnetz ist ein Teil eines ➜ Netzes, dessen ➜ Busparameter(z. B. -➜ PROFIBUS-Adressen) abgeglichen werden müssen. Es um-faßt die Buskomponenten und alle angeschlossenen Stationen. Sub-netze können beispielsweise mittels ➜ Gateways zu einem Netz ge-koppelt werden.
Eine ➜ Anlage besteht aus mehreren Subnetzen mit eindeutigen ➜
Subnetznummern. Ein Subnetz besteht aus mehreren ➜ Teilnehmernmit eindeutigen ➜ PROFIBUS-Adressen.
Subnetznummer Eine ➜ Anlage besteht aus mehreren ➜ Subnetzen mit eindeutigenSubnetznummern.
SYNC-Modus Der SYNC-Modus ist eine DP-Betriebsart, bei der mehrere oder alle ➜DP-Slaves zu einem bestimmten Zeitpunkt Daten an ihre Prozeßaus-gänge übergeben. Der Übergabezeitpunkt wird durch das SYNC-Kommando (das ist ein Steuertelegramm zur Synchronisation) signali-siert.
Ein ➜ Busparameter für ➜ PROFIBUS. Der Token ist die Sendebe-rechtigung für einen ➜ Teilnehmer an PROFIBUS. Ein Teilnehmervergleicht eine von ihm gemessene Token-Umlaufzeit mit der Targetrotation time und steuert davon abhängig das Senden hoch- und nie-derpriorer Telegramme.
Teilnehmer Ein Teilnehmer wird durch eine ➜ PROFIBUS-Adresse an ➜ PROFI-BUS identifiziert.
Telegramm Nachricht eines PROFIBUS-Teilnehmers an einen anderen.
Telegramm-Header Ein Telegramm-Header besteht aus einer Kennung des ➜ Tele-gramms sowie der Quell- und Zielteilnehmeradresse.
Telegrammtrailer Der Telegrammtrailer besteht aus einer Prüfsumme und der Endeken-nung des ➜ Telegramms
Treiber Software, die dem Datenaustausch von Applikationen mit dem ➜ CPdient.
Watchdog Mechanismus zur Überwachung der Betriebsbereitschaft.