Inhaltsverzeichnis INHALTSVERZEICHNIS 1 1. HARDWAREBESCHREIBUNG 2 1.1 Baugruppen und Geräte 2 1.2 Aufbau und Installation 2 2. HARDWAREKONFIGURATION 2 2.1 Installation der GSD-Datei 2 3. PROFIBUS-DP KONFIGURATION 3 3.1 Teilnehmer einfügen 3 3.2 Adressenvergabe 4 3.3 Diagnoseadresse 6 4. SOFTWARE 7 4.1 Bausteine und deren Funktion 7 4.2 Datenaustausch 8 4.3 Diagnose 15 4.4 Programmsteuerung mittels Variablentabelle 16 4.5 Weiterführende Hinweise 17 1 8/2000
1. Hardwarebeschreibung 1.1 Baugruppen und Geräte Eingesetzte Komponenten: Bezeichnung Erläuterung Hersteller PS 307 Laststromversorgung SIEMENS CPU 315-2 DP CPU mit PROFIBUS-DP- SIEMENS Master/Slave-Schnittstelle PG 740PII Programmiergerät SIEMENS STEP7 V5.0 Programmiersoftware SIEMENS IVI-KHA6-4HB6 Auswerteeinheit ( Schreiben und Lesen) Pepperl+Fuchs GmbH IVH-18GM-V1 Schreib-/Lesekopf Pepperl+Fuchs GmbH 1.2 Aufbau und Installation Den Anschluß der S7-Komponenten und deren Versorgung entnehmen Sie bitte dem Handbuch Automatisierungssystem S7-300, Aufbauen, CPU-Daten der Firma Siemens. Die eingesetzte Auswerteeinheit ist mit einer Spannung von 85 VAC...253 VAC (50 Hz...60 Hz ) zu betreiben (Anschluß Klemme 47 L, Klemme 48 N ). An den Klemmen 1 bis 4 wird der Schreib-/Lesekopf angeschlossen ( Klemme 1: Versorgungsspannung Plus, Klemme 2: Direction, Klemme 3: Data, Klemme 4: Versorgungsspannung Minus). Genauere Ausführungen zum Anschluß und zur Installation des Gerätes bietet das Handbuch der Pepperl+Fuchs GmbH. In dem folgend dargestellten Beispiel wurde die Geräteadresse mittels der frontseitigen DIP-Schalter auf 3 eingestellt (Schalter 1 und 2 on ). Über die 9-polige Sub-D-Buchse wird die Auswerteeinheit an die PROFIBUS-DP- Master/Slave-Schnittstelle angeschlossen. Ist die Auswerteeinheit das letzte Gerät am Buszweig, muß der Busabschlußwiderstand eingeschaltet werden. Der Busabschluß läßt sich entweder am Busstecker oder an der Auswerteeinheit einschalten ( Drehschalter 9 an der Gehäuseseite on ). 2. Hardwarekonfiguration 2.1 Installation der GSD-Datei Zuerst ist die mitgelieferte GSD-Datei zu installieren. Dazu muß die Hardware Konfiguration Ihrer SIMATIC 300-Station geöffnet werden. Unter dem Menüpunkt Extras Neu GSD installieren können Sie die GSD-Datei in Ihre STEP7 Software integrieren. 2 8/2000
Nach dem Installieren der GSD-Datei ist der Menüpunkt Extras Katalog aktualisieren aufzurufen. 3. PROFIBUS-DP Konfiguration 3.1 Teilnehmer einfügen Die PROFIBUS-DP-Schnittstelle muß als DP-Master eingestellt sein. Nachdem der PROFIBUS-DP Busstrang eingerichtet wurde, kann die Auswerteeinheit darauf plaziert werden. Im Hardware Katalog unter dem Menüpunkt PROFIBUS-DP Weitere Feldgeräte Identsysteme können Sie nun die IVI-KHxx-4HB6 auswählen. Klicken Sie das Gerät mit der linken Maustaste an, halten Sie die Taste gedrückt, ziehen Sie das Gerät auf den Busstrang des DP-Mastersystems, und lassen Sie die Maustaste los. 3 8/2000
In dem nun erscheinenden Menü ist die Teilnehmeradresse für den PROFIBUS einzutragen. Sie muß der mittels DIP-Schaltern am Gerät eingestellten Adresse entsprechen (In unserem Beispiel 3 ). Jetzt sollte die gewünschte Auswerteeinheit als Symbol an Ihrem Busstrang erscheinen. 3.2 Daten-/Adressenzuordnung Klicken Sie auf das Symbol der Auswerteeinheit am Busstrang. Im Hardwarekatalog können Sie im Verzeichnis der IVI-KHxx-4HB6 zwischen 32 Unterpunkten wählen. Klicken Sie zuerst mit der linken Maustaste auf den Unterpunkt 16 Words Input, halten Sie die Maustaste gedrückt, ziehen Sie den Mauspfeil auf den Steckplatz 0, und lassen Sie die Maustaste los. Nach diesem Prinzip legen Sie anschließend den Unterpunkt 16 Words Output auf den Steckplatz 1. 4 8/2000
Die E/A-Adressen werden von der STEP7 Software automatisch auf die nächsten freien Peripherie Adressen gesetzt. Diese Adressen können vom Anwender verändert werden. Durch einen Doppelklick auf die entsprechende Zeile öffnet sich ein Fenster, mittels diesem die Adressen umgestellt werden können. In dem hier dargestellten Beispiel liegen die Eingangsund Ausgangsadressen zwischen 304...335. 5 8/2000
3.3 Diagnoseadresse Durch einen Doppelklick auf das Slave-Symbol am Busstrang öffnet sich ein Eigenschaftsfenster für den PROFIBUS-Slave. Hier sind die Diagnoseadresse zur Abfrage der Diagnosedaten und die Einstellungen des Slaves (Auswerteeinheit ) erkennbar. Die Bedeutung und Verwendung der Diagnoseadresse wird später erklärt. 6 8/2000
4 Software 4.1 Bausteine und deren Funktion Bei konsistenter Datenübertragung von 3 Byte oder mehr als 4Byte müssen bestehende Funktionsbausteine eingesetzt werden. (!) Eingesetzte Bausteine: Baustein Bezeichnung Beschreibung SFC 14 Systemfunktion Liest konsistente Daten eines DP-Normslaves ein SFC 13 Systemfunktion Einholen der Diagnosedaten eines DP-Normslaves SFC 15 Systemfunktion Schreibt konsistente Daten auf einen DP-Normslave OB 82 Organisationsbaustein Wird beim Auftreten eines Diagnosealarms einer Baugruppe aufgerufen, damit schaltet CPU nicht in STOP-Zustand OB 86 Organisationsbaustein Wird bei Ausfall eines Erweiterungsgerätes, eines DP-Mastersystems oder eines am PROFIBUS-DP befindlichen Gerätes (z.b durch Ausfall der Versorgungsspannung ) aufgerufen, damit schaltet CPU nicht in STOP-Zustand DB 150 Datenbaustein Speichert gelesene Daten der Auswerteeinheit, enthält die Daten und Befehle, die an die Auswerteeinheit übermittelt werden DB 2 Datenbaustein Speichert Diagnosedaten OB 1 Organisationsbaustein Zyklischer Programmablauf FC 150 Funktion Auswahl der Betriebsart der Auswerteeinheit, Schreiben der Befehle + Daten in den DB 150 VAT 1 Variablentabelle Online Steuerung des Identsystems über den PROFIBUS-DP 7 8/2000
4.2 Datenaustausch Es besteht die Möglichkeit die IVI-KHA6-4HB6 in drei verschiedenen Modi zu betreiben. Die Auswerteeinheit ist in der Lage Fixcodes zu lesen, Daten von beliebigen Adressen auf dem Datenträger einzulesen und Daten an beliebige Adressen auf dem Datenträger zu schreiben. Für die jeweilige Betriebsart muß die Auswerteeinheit initialisiert werden. In diesem Beispielprogramm wird je nach Wahl der Betriebsart der entsprechende Befehl übertragen. Der für das Lesen von Fixcodes zu übertragende Befehl (2 Byte = 1 Wort ) setzt sich folgendermaßen zusammen: Wort 0 Befehle und Parameter Bit Nr. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bezeichnung B4 B3 B2 B1 DS 0 T2 T1 N4 N3 N2 N1 K3 K2 K1 T Wert Binär 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 Wert Hexadezimal 3048 - Die Bits 15 bis 12 legen den gewünschten Befehl fest. Die Folge 0011 steht für Buffered Auto Read Fixcode. Die genaue Erläuterung der Befehle finden Sie im Handbuch der IVI- KHA6-4HB6. - Bit 11 schaltet den Doubleside-Mode ein, hier 0 gesetzt - Das Bit 10 ist nicht von Bedeutung und wird auf 0 gesetzt. - Die Bits 9 und 8 legen den Datenträgertyp fest. Die Folge 00 steht für Datenträger vom Typ IDC-1k ( 1kBit Speicher). - Mittels der Bits 7 bis 4 wird die Anzahl der zu lesenden bzw. zu schreibenden Worte festgelegt. 0100 steht für vier Worte. - Die Bits 3 bis 1 legen fest welcher Lesekopf angesprochen werden soll. Die Folge 100 aktiviert alle angeschlossenen Leseköpfe. - Das Bit 0 ist das Toggleflag. Um einen neuen gültigen Befehl an die Auswerteeinheit zu übergeben, muß dieses Bit verändert ( getoggelt ) werden. Dieses Bit wird beim ersten Senden eines Befehls auf 1 gesetzt. 8 8/2000
Umfangreichere Ausführungen zum Aufbau der Befehle und der Bedeutung der einzelnen Bits entnehmen Sie bitte dem Handbuch. Durch den gesetzten Merker 2.0 wird die beschriebene Befehlsfolge in den DB 150 transferiert und dort ab Byte 32 abgelegt. Dieser Vorgang erfolgt im FC 150. Im folgenden wird der Befehl für das Einlesen von Daten beschrieben: Wort 0 Befehle und Parameter Bit Nr. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bezeichnung B4 B3 B2 B1 DS 0 T2 T1 N4 N3 N2 N1 K3 K2 K1 T Wert Binär 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 Wert Hexadezimal 60E8 - Die Bits 15 bis 12 legen wieder den gewünschten Befehl fest. Die Folge 0110 steht für Buffered Auto Read. - Um die maximale Anzahl von 14 Worten zu lesen, werden die Bits 7 bis 4 mit 1110 belegt. - Alle übrigen Parameter bleiben unverändert gegenüber dem Befehl Lesen von Fixcode. Wort 1 Wortadresse/Blockadressen (bei Block-Befehlen SB/AB/BB ) Wert 0000 Hexadezimal - Als Anfangsadresse sind Werte zwischen 0000...003F bei 1kBit-Datenträgern zu verwenden. Durch den gesetzten Merker 2.1 wird die beschriebene Befehlsfolge in den DB 150 transferiert und dort ab Byte 32 abgelegt. Die Wortadresse wird im selben Datenbaustein ab Byte 34 abgelegt. Dieser Vorgang erfolgt im FC 150. 9 8/2000
Für das Beschreiben von Datenträgern ist dieser Befehl zu übermitteln: Wort 0 Befehle und Parameter Bit Nr. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bezeichnung B4 B3 B2 B1 DS 0 T2 T1 N4 N3 N2 N1 K3 K2 K1 T Wert Binär 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 Wert Hexadezimal 90E8 - Die Bits 15 bis 12 legen wieder den gewünschten Befehl fest. Die Folge 1001 steht für Buffered Auto Write. - Alle übrigen Parameter bleiben unverändert gegenüber dem Befehl Lesen von Daten. Wort 1 Wortadresse/Blockadressen (bei Block-Befehlen SB/AB/BB ) Wert 0000 Hexadezimal Wort 2...15 Schreibdaten Durch den gesetzten Merker 2.2 wird die beschriebene Befehlsfolge in den DB 150 transferiert und dort ab Byte 32 abgelegt. Die Wortadresse wird im selben Datenbaustein ab Byte 34 abgelegt. Ab Byte 36 sind die Schreibdaten plaziert. Dieser Vorgang erfolgt im FC 150. 10 8/2000
Damit während des Programmablaufs ein neuer gültiger Befehl an die Auswerteeinheit übermittelt werden kann, muß jeweils das Togglebit geändert werden. Durch den Merker M 200.0, der nach dem Schreiben eines Befehls in den DB 150 gesetzt wird, startet im FC 150 eine Routine, welche den momentanen Stand des Togglebits invertiert. Für die Ausgabe der Befehle, Wortadressen und Schreibdaten an die Auswerteeinheit wird vom FC 150 aus die Systemfunktion SFC 15 aufgerufen. Ein benötigter Parameter ist die Anfangsadresse der Ausgänge des PROFIBUS-Slaves. Diese Adresse wird als Formalparameter der Funktion FC 150 vereinbart und der Funktion vom OB 1 übergeben. Der Name dieses Parameters lautet im Beispiel Adresse. Der Rückgabewert RET-VAL enthält einen Fehlercode. Falls bei der Übertragung kein Fehler auftrat, enthält der Rückgabewert die Folge 0000. Die genaue Beschreibung der Fehlercodes entnehmen Sie bitte dem Referenzhandbuch Systemsoftware für S7-300/400, System- und Standardfunktionen der Firma Siemens. Als weiterer Parameter ist der Ursprungsort der zu übertragenen Daten anzugeben. In unserem Fall bedeutet P#DB150.DBX32.0 Byte 32, daß als Quelle der Datenbaustein DB150 beginnend mit dem Offset 32.0 und einer Datenfeldlänge von 32 Byte gewählt wurde. 11 8/2000
Zum Einlesen der Daten von der Auswerteeinheit wird die SFC 14 benutzt. Die benötigte Anfangsadresse der Eingänge entspricht derer der Ausgänge. Dieser Formalparameter ist bereits vereinbart worden. Der Rückgabewert RET-VAL enthält wiederum einen Fehlercode. Falls bei der Übertragung kein Fehler auftrat, enthält der Rückgabewert die Folge 0000. Die genaue Beschreibung der Fehlercodes entnehmen Sie bitte dem Referenzhandbuch Systemsoftware für S7-300/400, System- und Standardfunktionen der Firma Siemens. Das Ziel der Daten wird mit P#DB150.DBX0.0 Byte 32 angegeben. Damit wird der Datenbaustein DB 150 ab dem Offset 0.0 und mit einer Datenfeldlänge von 32 Byte adressiert. Der Datenbaustein DB150 muß in einer Byte Struktur und in der richtigen Länge vorher angelegt werden. Die ersten vier Bytes sind durch den zurückgemeldeten Befehl, die Nummer des zugeordneten Kopfes, den Ausführungszähler und den Status belegt. Die gelesenen Daten der Auswerteeinheit beginnen also mit Byte 4. Wort 0 Befehl, Parameter und Toggleflag gespiegelt Bit Nr. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bezeichnung B4 B3 B2 B1 DS 0 0 0 0 0 0 0 K3 K2 K1 T 12 8/2000
Wort 1 Status, Ausführungszähler, Kopfnummer Bit Nr. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bezeichnung - K3 K2 K1 A4 A3 A2 A1 - - - - S4 S3 S2 S1 Wort 2...9 Gelesene Daten Ab dem Byte 32 werden die zu übertragenden Befehle, Wortadressen und Schreibdaten nach dem eben beschriebenen Verfahren abgelegt. Die hier eingefügte Abbildung verdeutlicht den Gesamtaufbau des Datenbausteins DB150: 13 8/2000
Der Aufruf der Funktion FC 150 erfolgt vom OB 1 aus. Der vereinbarte Formalparameter Adresse muß mit einem Aktualparameter belegt werden. Dieser Parameter ist als hexadezimaler Zeiger anzugeben (W#16#... ). Hier ist die Anfangsadresse 304. Hexadezimal ergibt sich daraus der Wert 130hex. 14 8/2000
4.3 Diagnose Um Diagnosedaten des Slaves zu erhalten, wird die Systemfunktion SFC13 im OB 1 aufgerufen, falls der Merker M 1.0 gesetzt ist. Hier wird als Anfangsadresse die Diagnoseadresse benötigt. In diesem Fall ist die Adresse mit 1022 gegeben. Hexadezimal ergibt sich daraus die Adresse 3FEhex. Auch hier enthält der Rückgabewert einen Fehlercode. Falls bei der Übertragung kein Fehler auftrat enthält der Rückgabewert die Länge der gelesenen Daten in Bytes. Die genaue Beschreibung der Fehlercodes entnehmen Sie bitte dem Referenzhandbuch Systemsoftware für S7-300/400, System- und Standardfunktionen der Firma Siemens. Die Diagnosedaten werden im Datenbaustein DB2 abgelegt. Das Ziel der Daten wird wie bei der SFC14 angegeben. Allerdings werden nun 19 Bytes übertragen. Auch dieser Datenbaustein muß vorher angelegt werden. Die ersten 6 Bytes sind durch den Stationsstatus, die Master-Stationsnummer und die Herstellerkennung belegt. Ab dem 7. Byte werden slavespezifische Diagnosedaten übermittelt. Bei der hier beschriebenen Auswerteeinheit handelt es sich um 13 Byte. Darin enthalten sind z.b. die Gerätekennung und die 15 8/2000
Kennzeichnung der Software des Bus- und des Identsystems. Umfangreichere Ausführungen zur Bedeutung der einzelnen Bits entnehmen Sie bitte dem Handbuch der Pepperl+Fuchs GmbH. 4.4 Programmsteuerung mittels Variablentabelle Durch eine vorher festgelegte Variablentabelle kann die Kommunikation mit dem Identsystem getestet werden. Durch Setzen des Bit 0 im Merkerbyte MB1 wird das einmalige Einholen von Diagnosedaten veranlaßt. Über das Merkerbyte MB 2 wird, wie bereits beschrieben, die Betriebsart der Auswerteeinheit festgelegt bzw. der dazu benötigte Befehl aktiviert. DB150.DBB0 bis DB150.DBB11 enthalten die PROFIBUS-DP Eingangsdaten.. DB150.DBB32 und DB150.DBB33 enthalten den Befehl der an die Auswerteeinheit übergeben wird. DB2.DBB 6 bis DB2.DBB 18 enthalten die eingelesenen slavespezifischen PROFIBUS-DP Diagnosedaten. Die Merkerworte MW10, MW20 und MW 30 enthalten, wie bereits beschrieben wurde, die Fehlercodes der Systemfunktionen SFC 13, SFC 14 und SFC 15. 16 8/2000
4.5 Weiterführende Hinweise In einem Programm, welches die Auswertung der gewonnenen Daten übernehmen soll, sind einige Grundüberlegungen sehr sinnvoll. Nach Möglichkeit sollte immer eine Abfrage des Ausführungszählers erfolgen. Wird nur auf die Änderung der gelesenen Daten geachtet sind Fehler, z.b. die Ausführung eines Befehls schwerer zu erkennen. Auch die Statusanzeige, die jeweils bei neu gelesenen Daten mit übergeben wird, ist von Bedeutung. Hieran ist beispielsweise sofort ein ausgefallener Lesekopf zu identifizieren. Die Bedeutung der einzelnen Statusbits ist ausführlich im Handbuch der Pepperl+Fuchs GmbH beschrieben. Es ist sicherzustellen, daß nicht mehrere an der Auswerteeinheit angeschlossene Schreib-/Leseköpfe gleichzeitig Daten bzw. Fixcodes einlesen. In diesem Falle, würden sich die Daten im Datenbaustein gegenseitig überschreiben, und für den Anwender verlorengehen. 17 8/2000