pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12...

51
FABRIKAUTOMATION

Transcript of pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12...

Page 1: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

FABR

IKAU

TOM

ATIO

N��������

�� ���� �

������������� �������

pc2_d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12

Page 2: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

Es gelten die Allgemeinen Lieferbedingungen für Erzeugnisse und Leistungen der Elektroindustrie,herausgegeben vom Zentralverband Elektrotechnik und Elektroindustrie (ZVEI) e.V.

in ihrer neuesten Fassung sowie die Ergänzungsklausel: "Erweiterter Eigentumsvorbehalt"

Wir von Pepperl+Fuchs fühlen uns verpflichtet, einen Beitrag für die Zukunft zu leisten,deshalb ist diese Druckschrift auf chlorfrei gebleichtem Papier gedruckt.

pc2_d.book Seite 2 Dienstag, 9. Februar 1999 12:05 12

Page 3: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteInhaltsverzeichnis

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

3

Inhaltsverzeichnis

1 Konformitätserklärung ............................................................................5

2 Die verwendeten Symbole .......................................................................6

3 Sicherheit ..................................................................................................73.1 Bestimmungsgemäße Verwendung ...................................................................... 73.2 Allgemeine Sicherheitshinweise ........................................................................... 7

4 Merkmale der AS-i PC2 Karte .................................................................8

5 Installation der AS-i PC2 Karte ...............................................................9

6 Erweiterte Diagnose des AS-i Masters .................................................126.1 Liste der AS-i Slaves, die Konfigurationsfehler ausgelöst haben (LCS) ......... 126.2 Fehlerzähler: Zähler für Übertragungsfehler bei Datentelegrammen .............. 126.3 Offline-Phase bei Konfigurationsfehlern ............................................................ 12

7 Kommunikation über das Dual Port RAM (DPRAM) ...........................147.1 Prinzip .................................................................................................................... 147.2 Zugriff auf das DPRAM ......................................................................................... 147.3 DPRAM- Adresstabelle ......................................................................................... 15

8 PC-Software ............................................................................................228.1 Rahmenproramm “ASISHELL” ............................................................................ 228.2 AS-i Monitorprogramm “ASI_MON” .................................................................... 228.2.1 Programmaufruf ...................................................................................................... 228.2.2 Bildschirmaufbau .................................................................................................... 228.2.3 Statusmeldungen .................................................................................................... 238.2.4 Funktionstasten ...................................................................................................... 238.2.5 Editor-Modus .......................................................................................................... 248.2.6 Compiler/Loader "ACF" .......................................................................................... 248.3 Visualisierungsprogramm “ASI_VIS” ................................................................. 26

9 PC-Treiber ...............................................................................................279.1 Neue Datentypen .................................................................................................. 299.2 Globale statische Variablen ................................................................................. 299.3 Funktionen ............................................................................................................ 29

10 Anhang ....................................................................................................3110.1 Treiberbefehle zur Kompatibilität mit anderen Pepperl+Fuchs Mastern ........ 3110.2 Organisation der Nutzdatenbytes ....................................................................... 3210.2.1 Ein- und Ausgangsdaten ........................................................................................ 3210.2.2 Slavelisten .............................................................................................................. 3310.2.3 Flags der Ablauf-Kontrollebene (ec-flags) .............................................................. 3310.2.4 Flags des Host Interface (hi-flags) .......................................................................... 33

pc2_d.book Seite 3 Dienstag, 9. Februar 1999 12:05 12

Page 4: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceInhaltsverzeichnis

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

4

10.2.5 Installierte Software/Flags des Host Interface ........................................................ 3310.2.6 AS-i Control Flags, Start/Stop Code ....................................................................... 3510.2.7 Statusbyte ............................................................................................................... 3510.3 Nichtflüchtig gespeicherte Daten ........................................................................ 3610.4 Programmlistings ................................................................................................. 3710.4.1 Beispiel für die direkte Programmierung der AS-i PC Karte in ANSI-C .................. 3710.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL ..4210.4.3 Programm zum Überprüfen der I/O-Adressen ........................................................ 47

pc2_d.book Seite 4 Dienstag, 9. Februar 1999 12:05 12

Page 5: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteKonformitätserklärung

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

5

1 Konformitätserklärung

Die AS-i PC2 Karte wurde unter Beachtung geltender europäischer Normen und Richtlinien entwickelt und gefertigt.

Der Hersteller des Produktes, die Pepperl & Fuchs GmbH in D-68307 Mannheim, be-sitzt ein zertifiziertes Qualitätssicherungssystem gemäß ISO 9001.

Hinweis

Eine entsprechende Konformitätserklärung kann beim Hersteller ange-fordert werden.

ISO9001

pc2_d.book Seite 5 Dienstag, 9. Februar 1999 12:05 12

Page 6: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceDie verwendeten Symbole

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

6

2 Die verwendeten Symbole

Dieses Zeichen warnt vor einer Gefahr. Bei Nichtbeachten drohen Personenschäden bis hin zu Tod oder Sach-schäden bis hin zur Zerstörung.

Dieses Zeichen warnt vor einer möglichen Störung. Bei Nichtbeachten kann das Gerät oder daran angeschlossene Systeme und Anlagen bis hin zur völligen Fehlfunktion gestört sein.

Dieses Zeichen macht auf eine wichtige Information aufmerksam.

pc2_d.book Seite 6 Dienstag, 9. Februar 1999 12:05 12

Page 7: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteSicherheit

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

7

3 Sicherheit

3.1 Bestimmungsgemäße Verwendung

3.2 Allgemeine Sicherheitshinweise

Der Schutz von Betriebspersonal und Anlage ist nicht gewährleistet, wenn die Baugruppe nicht entsprechend ihrer bestimmungsgemäßen Verwendung eingesetzt wird.Das Gerät darf nur von eingewiesenem Fachpersonal entsprechend der vorliegenden Betriebsanleitung betrieben werden.

Ein anderer Betrieb als der in dieser Anleitung beschriebene stellt die Sicherheit und Funktion des Gerätes und angeschlossener Systeme in Frage.Der Anschluß des Gerätes und Wartungsarbeiten unter Spannung dür-fen nur durch eine elektrotechnische Fachkraft erfolgen.Können Störungen nicht beseitigt werden, ist das Gerät außer Betrieb zu setzen und gegen versehentliche Inbetriebnahme zu schützen.Reparaturen dürfen nur direkt beim Hersteller durchgeführt werden. Eingriffe und Veränderungen im Gerät sind nicht zulässig und machen jeden Anspruch auf Garantie nichtig.

Die Verantwortung für das Einhalten der örtlich geltenden Sicherheits-bestimmungen liegt beim Betreiber.

pc2_d.book Seite 7 Dienstag, 9. Februar 1999 12:05 12

Page 8: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceMerkmale der AS-i PC2 Karte

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

8

4 Merkmale der AS-i PC2 Karte

Die Pepperl+Fuchs AS-i PC2 Karte ...

• ist für den ISA-Bus konzipiert und stellt einen AS-i Master mit implementierter AS-i Control Funktion dar.

• kann selbständig ein SPS-Programm (AS-i Control) ausführen. Dabei wird keinerlei Rechenleistung des PCs benötigt. Das Steuerprogramm wird, unabhängig von der Auslastung des PCs, mit konstanter Zykluszeit abgearbeitet.

• kommuniziert über ein Dual Port RAM (DPRAM) mit dem PC.

• benötigt zum Datenaustausch nur 3 I/O-Adressen des ISA-Busses.

• kann auch ohne Treiber einfach in jedem Programm, unabhängig vom verwende-ten Betriebssystem, verwendet werden.

• kommt ohne Interrupt aus.

• erlaubt den gleichzeitigen Einsatz von bis zu 8 AS-i PC2 in einem PC.

• kann einen Interrupt auf dem ISA-Bus auslösen; z. B. bei einer auftretenden Ände-rung in den AS-i Eingangsdaten.

• kann sich mit anderen AS-i PC2 Karten einen Interrupt teilen.

• beherbergt einen Watchdog, der bei Aktivierung PC-Systemabstürze erkennt und den AS-i Master in den Offline-Modus versetzt.

• besitzt die erweiterte Diagnosefunktionalität

pc2_d.book Seite 8 Dienstag, 9. Februar 1999 12:05 12

Page 9: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteInstallation der AS-i PC2 Karte

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

9

5 Installation der AS-i PC2 Karte

Auf der Rückseite der AT-Karte befinden sich 4 Anschlüsse für die Stromversorgung des AS-i Kreises. Über Steckbrücken, sogenannte Jumper, kann man zwischen der Stromversorgung des AS-Interface mit einem Standard- oder einem AS-i Netzteil wählen.

Bild 5.1: Rückseite der AT_Karte

Die einzelnen Jumper und Anschlüsse haben folgende Funktionen:

AS-i+ “AS-i +”, Actuator Sensor Interface, positiver Anschluß

AS-i– “AS-i –”, Actuator Sensor Interface, negativer Anschluß

30V Standardnetzteil (optional), positiver Anschluß (24V-32V)

0V Standardnetzteil (optional), negativer Anschluß

J1 - J3 Jumper zum Einstellen der I/O-Basisadresse:

I/O-Basisadresse J1 J2 J3

300h gesetzt gesetzt gesetzt

304h offen gesetzt gesetzt

308h gesetzt offen gesetzt

30Ch offen offen gesetzt

320h gesetzt gesetzt offen

324h offen gesetzt offen

328h gesetzt offen offen

32Ch offen offen offen

pc2_d.book Seite 9 Dienstag, 9. Februar 1999 12:05 12

Page 10: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceInstallation der AS-i PC2 Karte

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

10

J4, J5 Jumper zur Einstellung der Spannungsversorgungsvariante:

beide gesetzt: Der AS-i Kreis wird über ein Standardnetzteil mit Strom versorgt. Spannungsquelle und AS-i Kreis sind bei dieser Variante mit Spulen voneinander entkoppelt.

beide offen: Bei nicht gesetzten Jumpern muß der AS-i Kreis über ein AS-i Netzteil gespeist werden, das direkt an das AS-i Kabel an-geschlossen wird.

IRQ Mit diesen Jumpern wird die ISA-Bus-Interruptnummer (3, 4, 5 oder 7) eingestellt. Die Zuweisung einer Interruptnummer ist für korrekte Funktion der AS-i PC2 Karte nicht notwendig.

Im Gegensatz zu anderen ISA-Bus-Karten, kann sich die AS-i PC2 den Interrupt mit anderen AS-i PC2 Karten teilen, nicht jedoch mit einer beliebigen Karte.

Bei geringer Anzahl von AS-i Slaves kann das Netzwerk mit einem handelsüblichen 30V-DC-Netzteil versorgt werden. In einem voll ausgebauten System ist jedoch der Einsatz eines AS-i Netzteils anzuraten. Die Möglichkeiten der Spannungversorgung des AS-i sind in den folgenden Bildern dargestellt.

Variante 1:

AS-i Spannungsversorgung mit gewöhnlichem Netzteil (J4 und J5 gesetzt):

Bild 5.2: AS-i Spannungsversorgung mit gewöhnlichem Netzteil

Es darf ein maximaler Strom von 2A durch den Master fließen.

pc2_d.book Seite 10 Dienstag, 9. Februar 1999 12:05 12

Page 11: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteInstallation der AS-i PC2 Karte

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

11

Variante 2:

Spannungsversorgung mit AS-i Netzteil über das AS-i Kabel im Feld (J4 und J5 of-fen):

Bild 5.3: AS-i Spannungsversorgung über AS-i Kabel im Feld

Es darf ein maximaler Strom von 2A durch den Master fließen.

pc2_d.book Seite 11 Dienstag, 9. Februar 1999 12:05 12

Page 12: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceErweiterte Diagnose des AS-i Masters

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

12

6 Erweiterte Diagnose des AS-i Masters

Die erweiterte Diagnose dient der Lokalisierung sporadisch auftretender Konfigurati-onsfehler sowie der Beurteilung der Qualität der Datenübertragung auf dem AS-i.

Pepperl+Fuchs Windows Software „AS-i Control Tools“ zur einfachen Inbetriebnah-me des AS-Interfaces und der Programmierung von AS-i Control stellt ab Version 3.0 die Bedienung der erweiterten Diagnose zur Verfügung.

6.1 Liste der AS-i Slaves, die Konfigurationsfehler ausgelöst haben (LCS)

Um die Ursachen, die für kurzzeitige Konfigurationsfehler am AS-Interface verant-wortlich sind, zu diagnostizieren, verwalten AS-i Master mit erweiterter Diagnosefunk-tionalität neben der Liste der projektierten Slaves (LPS), der Liste der erkannten Slaves (LDS) und der Liste der aktiven Slaves (LAS) eine zusätzliche neue Liste mit Slaves, die einen Konfigurationsfehler ausgelöst haben (LCS), List of Corrupted Sla-ves). In dieser Liste stehen alle AS-i Slaves, die seit dem letzen Lesen dieser Liste bzw. seit dem Einschalten des AS-i Masters mindestens einen kurzzeitigen Konfigu-rationsfehler verursacht haben.

Mit jedem Lesevorgang wird die LCS gleichzeitig wieder gelöscht. Ferner werden auch kurzfristige Spannungseinbrüche am AS-Interface in der LCS an der Stelle von Slave 0 angezeigt.

6.2 Fehlerzähler: Zähler für Übertragungsfehler bei Datentelegrammen

Der AS-i Master mit erweiterter Diagnose stellt für jeden AS-i Slave einen Fehlerzäh-ler zur Verfügung, der bei jedem Übertragungsfehler bei Datentelegrammen erhöht wird. Dadurch kann die Qualität der Übertragung bereits dann beurteilt werden, wenn nur einzelne Telegramme gestört werden, der AS-i Slave also nie einen Konfigurati-onsfehler auslösen

Die Zählerstände werden über die jeweilige Hostschnittstelle ausgelesen und zurück-gesetzt. Der höchste gültige aktuelle Zählerstand ist 254. 255 kennzeichnet einen Überlauf des Zählers.

Das Anzeigen des Fehlerzählers und der LCS ist ab Version 3.0 im Menü„Master→Erweiterte Diagnose“ der „AS-i Control Tools“ implementiert.

6.3 Offline-Phase bei Konfigurationsfehlern

Die AS-i Master haben als neue Option die Möglichkeit, bei einem auftretenden Kon-figurationsfehler sich selbst in die Offline-Phase zu versetzen und damit das AS-i Netzwerk in einen sicheren Betriebszustand zu versetzen. Somit kann schneller auf Konfigurationsfehler reagiert werden, und der Host wird von dieser Aufgabe entlastet. Treten am AS-Interface Probleme auf, so können die AS-i Master das AS-i Netzwerk selbständig in einen sicheren Zustand schalten.

pc2_d.book Seite 12 Dienstag, 9. Februar 1999 12:05 12

Page 13: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteErweiterte Diagnose des AS-i Masters

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

13

Es bestehen zwei Möglichkeiten, den AS-i Master für diese Funktion zu parametrie-ren:

• Jeder am AS-Interface auftretende Konfigurationsfehler versetzt den AS-i Master aus dem Normalbetrieb im geschützten Betriebsmodus in die Offline-Phase.

• Es wird eine Liste mit den Slaveadressen festgelegt, die das Auslösen der Offline-Phase bei auftretendem Konfigurationsfehler verursachen können (Liste der ‘off-line LOS). Hierbei kann der Anwender selbst entscheiden, wie der AS-i Master auf einen Kon-figurationsfehler am AS-Interface reagieren soll. So kann bei kritischen AS-i Slaves der Master direkt in die Offline-Phase versetzt werden, während bei weniger kriti-schen Slaves an den Host die Fehlermeldung Konfigurationsfehler geht, AS-i aber nicht offline geschaltet wird.

Das Parametrieren der Funktionalität „Offline-Phase bei Konfigurationsfehlern“ wird, wie auch die erweiterte Diagnose, von den AS-i Control Tools ab der Version 3.0 un-terstützt.

pc2_d.book Seite 13 Dienstag, 9. Februar 1999 12:05 12

Page 14: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

14

7 Kommunikation über das Dual Port RAM (DPRAM)

7.1 Prinzip

Die AS-i (Control) Daten werden in einem DPRAM gespeichert, auf das über burst-memory access zugegriffen werden kann. Ein Datenaustausch auf diesem Weg hat den Vorteil einfach zu realisierender Treiber, unabhängig von Betriebssystem und Programmiersprache.

7.2 Zugriff auf das DPRAM

Die AS-i PC Karte benötigt lediglich drei ISA-Bus-Adressen zum Datenaustausch. Dies sind die I/O-Basisadresse sowie die zwei darauffolgenden Bytes mit Offset 1 und 2.

Die Adressierung des DPRAMs erfolgt mit Hilfe des PAGE- und des INDEX-Regi-sters. Der Inhalt der adressierten DPRAM-Speicherstelle (0x100*PAGE + INDEX) wird in das Datenregister kopiert und kann dort gelesen bzw. manipuliert werden. Ma-nipulationen werden entsprechend im DPRAM berücksichtigt. Jeder Zugriff auf das Datenregister erhöht den Wert des INDEX-Registers um Eins. Auf diese Weise kann sequentiell auf 256 Bytes ohne erneute Initialisierung der Register zugegriffen wer-den. Bei Erreichen eines Seitenendes werden INDEX- und PAGE-Register auf Null gesetzt, d.h. der Zugriff wird auf Seite 0 (Byte 0) fortgesetzt.

Insgesamt umfaßt das DPRAM 4 Seiten mit jeweils 256 Datenbytes. Die Seite wird mit Hilfe des PAGE-Registers, das entsprechende Byte über das INDEX-Register adressiert.

Nach einem Reset der PC-Karte wird das DPRAM komplett neu beschrieben.

Beispiel (I/O-Basisadresse 300 h):

Zum Auslesen der AS-i Eingangsdaten aus dem DPRAM (Adressen 102h - 111h) muß zuerst das PAGE-Register (I/O-Adresse 302h) mit dem Wert 1 und das INDEX-Register (I/O-Adresse 301h) mit dem Wert 2 initialisiert werden. Anschließend kann das Datenregister an der I/O-Basisadresse 300h gelesen werden. Nach 16 Zugriffen ohne weitere Initialisierung befinden sich die AS-i Eingangsdaten im Speicher des PCs. Schreibzugriffe werden auf die gleiche Weise ausgeführt.

Offset Lesen Schreiben

0 Datenregister Datenregister

1 - - - - INDEX-Register

2 - - - - PAGE-Register (Bits 0,1) Reset (Bit 4) (min. 200ms)

pc2_d.book Seite 14 Dienstag, 9. Februar 1999 12:05 12

Page 15: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

15

7.3 DPRAM- Adresstabelle

Page Adresse Größe Daten Zugriff

Page 0: geräte- spezifische Daten

000h–0AFh — — —

0B0h–0DFh 48 Name und Versionsnummer des Masters

r/-

0E0h–0EFh 16 installierte Software r/-

0F0h–0F7h 8 Versions- ID (Zeichenkette) r/-

0F8h–0FFh — — —

Page 1:AS-i Daten

100h 1 watchdog enable r/w

101h 1 watchdog counter r/w

102h-111h 16 input data image IDI(Abbild der Eingangsdaten)

r/-

112h 1 execution control flags ec-flags(Flags der Ablauf-Kontrollebene AKE)

r/-

113h-122h 16 output data image ODI(Abbild der Ausgangsdaten)

r/w

123h 1 host interface flags hi-flags(Flags des ‘host interface’)

r/w

124h-127h 4 list of active slaves LAS(Liste der aktiven Slaves)

r/-

128h-12Bh 4 list of detected slaves LDS(Liste der erkannten Slaves)

r/-

12Ch-12Fh 4 list of projected slaves LPS(Liste der projektierten Slaves)

r/w

130h-14Fh 32 configuration data image CDI(Ist-Konfiguration)

r/-

150h-16Fh 32 permanent configuration data PCD(Projektierte Konfiguration)

r/w

170h-17Fh 16 parameter image PI(Ist-Parameter)

r/w

180h-18Fh 16 permanent parameter PP(projektierte Parameter)

r/w

190h-1CFh — — —

1D0h-1EFh 4 Liste der ‘offline slaves’ LOS r/w

1D4h-1EFh — — —

1F0h 1 ‘command' r/w

1F1h 1 parameter #1: data r/w

1F2h 1 parameter #2: address r/w

1F3h 1 parameter #3: address extension (high byte)

r/w

pc2_d.book Seite 15 Dienstag, 9. Februar 1999 12:05 12

Page 16: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

16

AS-i Master-Listen der Ablauf-Kontrollebene (AKE)

Alle AS-i Daten des AS-i Masters können jederzeit aus dem DPRAM gelesen werden

(Adressen 102h - 18Fh).

Das Abbild der Ausgangsdaten ODI, die Flags des Host-Interfaces (hi-flags) und das Abbild der Parameter PI werden vom AS-i Master zyklisch gelesen. Da Änderungen in allen anderen Listen der Ablauf-Kontrollebene (AKE) vom AS-i Master verweigert werden können bzw. in einen nichtflüchtigen Speicher kopiert werden müssen, ist es erforderlich, die Änderungen im DPRAM durch das Übergeben eines entsprechenden Werts an das Byte command zu kennzeichnen.

Der AS-i Master schreibt zyklisch das Abbild der Eingangsdaten IDI, die Flags der Ab-lauf-Kontrollebene (ec-flags), die Liste der aktiven Slaves LAS, die Liste der erkann-ten Slaves LDS und das Abbild der Ist-Konfiguration CDI.

Zusätzlich wird der die installierte Software kennzeichnende String aktualisiert.

Aufgrund der internen Verwaltung des Abbilds der Ausgangsdaten ist das ODI inver-tiert im DPRAM abgelegt.

Wird ein Steuerprogramm abgearbeitet, so generiert dieses das neue ODI, welches der Master in das DPRAM überträgt. Wird ein ODI vom PC geschrieben, wird dieses wieder überschrieben werden.

1F4h-1FCh — — —

1FDh 1 interrupt enable r/w

1FEh 1 interrupt event r/w

1FFh 1 Config_ok Delay r/w

Für AS-i Control:

Page 2:AS-i Con-trolSpeicher

200h-2FFh 256 Kommunikations-(Anwender)-Spei-cher (Merker)

r/w

Page 3: AS-i Control Puffer

300h-301h 2 Zykluszeit des letzten Kontrollzy-klus

r/-

302h-303h 2 maximale Zykluszeit des Kontroll-programms

r/-

304h 1 AS-i Control Flags r/w

305h-30Fh — — —

310h-3FFh 240 Programmpuffer r/w

Page Adresse Größe Daten Zugriff

pc2_d.book Seite 16 Dienstag, 9. Februar 1999 12:05 12

Page 17: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

17

Befehle

Das Byte command wird verwendet, um Befehle an das Host-Interface der PC-Karte zu senden.

Sind nach Ausführung des Befehls alle Bits des Bytes command gelöscht (00h: kein Fehler aufgetreten), wurde dieser erfolgreich ausgeführt. Sind alle Bits gesetzt (FFh: Fehler aufgetreten) bedeutet das, daß ein Fehler während der Ausführung aufgetre-ten ist.

Wird zur Ausführung eines Befehls eine Funktion aufgerufen, die Parameter benötigt, welche nicht aus den im DPRAM abgebildeten Listen der Ablauf-Kontrollebene gele-sen werden können, müssen diese Parameter in data und address gespeichert wer-den. Eventuell von der Funktion zurückgegebene Werte finden sich im Byte data.

Mögliche Werte und Bedeutungen des Bytes command sind:

3: Setze projektierte Parameter (PP)

Das Abbild der PP im DPRAM wird mit der Master-internen Liste der Ablauf-Kontrolle-bene verglichen. Für jede Abweichung wird die Funktion Set_Permanent_Parameter() ausgeführt.

Der AS-i Master aktualisiert das Abbild der PP im DPRAM, wenn es ihm nicht möglich oder erlaubt ist, den Befehl vollständig auszuführen.

5: Schreibe Ist-Parameter

Die Funktion der Ablauf-Kontrollebene Write_Parameter() wird ausgeführt. Die Slave-adresse muß in address und die Parameter müssen in data abgelegt sein.

Die Slaveantwort wird in dem Byte data abgelegt. Zusätzlich aktualisiert der AS-i Ma-ster das Abbild der PI im DPRAM.

⇒ Wird kein Rückgabewert benötigt, empfiehlt es sich, direkt in das Abbild der PI im DPRAM zu schreiben. Der AS-i Master vergleicht dieses zyklisch mit einer in-ternen Kopie der PI und führt für jede Abweichung die Funktion Write_Parameter() aus.

7: Speichere Ist-Parameter

Die Funktion der Ablauf-Kontrollebene Store_Actual_Parameter() wird ausge-führt und die Abbilder der PP und PI im DPRAM abgelegt.

8: Schreibe projektierte Konfiguration

Das Abbild der Ablauf-Kontrollebenenliste PCD im DPRAM wird mit der korrespon-dierenden Master-internen Liste verglichen. Für jede Abweichung wird die AKE-Funk-tion Set_Permanent_Configuration() ausgeführt.

Der AS-i Master aktualisiert das Abbild der PCD im DPRAM, wenn es ihm nicht mög-lich oder erlaubt ist, den Befehl vollständig auszuführen.

10: Schreibe Ist-Konfiguration

Die Funktion der Ablauf-Kontrollebene Store_Actual_Configuration() wird ausgeführt und das Abbild von PCD und LPS im DPRAM wird aktualisiert.

pc2_d.book Seite 17 Dienstag, 9. Februar 1999 12:05 12

Page 18: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

18

12: Schreibe Liste der projektierten Slaves (LPS)

Die Funktion der Ablauf-Kontrollebene Set_LPS() wird unter Verwendung des Ab-bilds der Liste der Ablauf-Kontrollebene ausgeführt. Das Abbild der LPS im DPRAM wird aktualisiert.

17: Setze Betriebsmodus

Wenn der Inhalt von data ungleich Null ist, wechselt der AS-i Master in den Projektie-rungsmodus. Ansonsten versucht der Master in den geschützten Betriebsmodus zu wechseln.

20: Ändere Slaveadresse

Die Funktion der Ablauf-Kontrollebene Change_Slave_Address wird ausgeführt. Die neue Slaveadresse muß in data gespeichert und die alte in address abgelegt wer-den.

Der AS-i Master speichert weitere Statusinformationen im Byte data (siehe Kapitel 10.2.7).

22: AS-i Kommandoaufruf

Die Funktion der Ablauf-Kontrollebene Execute_Command() wird ausgeführt. Die Slaveadresse muß in address gespeichert und der Informationsteil der Master-Anfra-ge in data abgelegt werden. (siehe AS-i Spezifikation)

Der AS-i Master speichert die Slaveantwort im Byte data.

50: Schreibe AS-i Control Flags (AS-i Control)

Der AS-i Master liest das Abbild der AS-i Control Flags aus dem DPRAM und kopiert diese an die Stellen der korrespondierenden realen Flags; wenn das Flag reset ge-setzt ist, wird das Steuerprogramm aus dem EEPROM in das RAM kopiert (Pro-grammbereich).

Schließlich aktualisiert der AS-i Master das Abbild der AS-i Control Flags im DPRAM.

51: Lese Status (AS-i Control)

Der AS-i Master aktualisiert das Abbild der AS-i Control Flags und die Zykluszeit.

52: Download (AS-i Control)

Der AS-i Master liest bis zu 240 Bytes des Steuerprogramms aus dem Programmpuf-fer im DPRAM und speichert diesen Bereich im EEPROM.

Größe und Startadresse des zu kopierenden Bereichs müssen in data (Größe), bzw. address und address extension (Startadresse im EEPROM) abgelegt werden.

53: Upload (AS-i Control)

Der AS-i Master kopiert einen bis zu 240 Byte großen Bereich des Steuerprogramms aus dem EEPROM in den Programmpuffer des DPRAMs.

Größe und Startadresse des zu kopierenden Bereichs müssen in data (Größe), bzw. address und address extension (Startadresse im EEPROM) abgelegt werden.

pc2_d.book Seite 18 Dienstag, 9. Februar 1999 12:05 12

Page 19: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

19

54: Schreibe Anwenderspeicher konsistent (AS-i Control)

Der AS-i Master liest einen bis zu 240 Byte umfassenden Bereich aus dem Pro-grammpuffer im DPRAM und kopiert diesen (mit Konsistenz über alles) in den AS-i Control-Kommunikationsspeicher (ebenfalls im DPRAM).

Größe und Startadresse des zu kopierenden Bereichs müssen in data (Größe) bzw. address (Startadresse) abgelegt werden.

⇒ Wird keine Konsistenz benötigt, sind jederzeit direkte Schreibzugriffe auf das DPRAM möglich.

56: Lese Anwenderspeicher konsistent (AS-i Control)

Der AS-i Master kopiert bis zu 240 Bytes des AS-i Control-Kommunikationspeichers im DPRAM (mit Konsistenz über alles) in den Programmpuffer (ebenfalls im DPRAM).

Größe und Startadresse des zu kopierenden Bereichs müssen in data (Größe) bzw. address (Startadresse) abgelegt werden.

⇒ Wird keine Konsistenz benötigt, sind jederzeit direkte Lesezugriffe auf das DPRAM möglich.

70: Lese und lösche LCS (erweiterte Diagnose)

Die LCS wird in die Bytes 0 bis 3 des Programmpuffers kopiert. Danach wird die LCS gelöscht.

Diese Funktion ist nur in Geräten mit der erweiterten Diagnose verfügbar.

⇒ Die LCS wird bei jedem Aufruf dieses Befehls gelöscht.

71: Lese und lösche Fehlerzähler (erweiterte Diagnose)

Die Fehlerzähler werden in die Bytes 0 bis 31 des Programmpuffers kopiert (ein Byte für jeden AS-i Slave) und alle Fehlerzähler gelöscht.

Diese Funktion ist nur in Geräten mit der erweiterten Diagnose verfügbar.

⇒ Die Fehlerzähler werden bei jedem Aufruf dieses Befehls gelöscht.

72: Schreibe LOS (erweiterte Diagnose)

Die Liste der ‘offline slaves’ LOS wird anhand des Abbilds der LOS aktualisiert. Das Abbild der LOS wird im DPRAM aktualisiert.

Wurde in der Liste der ‘offline slaves’ ein Bit gesetzt, hat das zur Folge, daß bei jedem Konfigurationsfehler an der entsprechenden AS-i Slave-Adresse der AS-i Master in die Offline-Phase wechselt. Dies ist nur wirksam, solange sich der AS-i Master im Normalbetrieb innerhalb des geschützten Betriebsmodus befindet.

Diese Funktion ist nur in Geräten mit der erweiterten Diagnose verfügbar.

⇒ Um die Offline-Phase wieder zu verlassen, muß die LOS überschrieben oder ge-löscht werden.

128: Aktualisiere DPRAM

Das gesamte DPRAM (ausgenommen Watchdog und das Abbild der Ausgangsda-ten) wird vom AS-i Master neu geschrieben, um Inkonsistenzen zu eliminieren.

pc2_d.book Seite 19 Dienstag, 9. Februar 1999 12:05 12

Page 20: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

20

129: Lese AS-i Telegramm- und Fehlerzähler

Die Zähler für die AS-i Master-Anfragen und die fehlerhaften oder ausgebliebenen Sla-veantworten werden an die Bytes 0 bis 3 des Programmpuffers kopiert.

130: EMV Testmodus (optional)

Der AS-i Master wechselt in den EMV-Testmodus.

Die Parameter des EMV-Testmodus werden aus dem Programmpuffer gelesen:

Byte 0, Bit 0 = 1: Wiederholungen sind erlaubt.

Byte 0, Bit 1 = 1: Die Slaveantworten werden auf korrekte Daten überprüft

Byte 0: Bits 3 - 7: Die erwartete Slaveantwort

Byte 1: Die zu sendende Anfrage

Bytes 2 - 5: Liste der Slaves, an die gesendet werden soll

Die Zähler für die AS-i Master-Anfragen und die fehlerhaften oder ausgebliebenen Slaveantworten werden an die Bytes 8 bis 11 des Programmpuffers kopiert.

Watchdog

Ist der Inhalt des Bytes watchdog enable ungleich Null, so ist der Watchdog aktiviert und es muß zyklisch ein Wert ungleich Null in das Byte watchdog counter geschrie-ben werden. Der AS-i Master vermindert alle 10 ms den Watchdog-Zähler um 1. Wird der Wert Null erreicht, schaltet der Master in den Offline-Modus.

Auf diese Weise kann ein Überwachungszeitraum von 10 ms bis zu 2,55 s in Schritten von 10 ms realisiert werden.

Um den Watchdog auszuschalten, muß der Anwender den Wert 00h in das Byte watchdog enable schreiben.

Diese Funktion ist nur im Falle einer EMV-Testerweiterung verfügbar.

Diese Funktion ist nur im Falle einer EMV-Testerweiterung verfügbar.

pc2_d.book Seite 20 Dienstag, 9. Februar 1999 12:05 12

Page 21: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteKommunikation über das Dual Port RAM (DPRAM)

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

21

Config_ok Verzögerung

Es empfiehlt sich, die Flags der Ablauf-Kontrollebene (AKE) zusammen mit dem Ab-bild der Eingangsdaten IDI zu lesen. Ist das Config_ok-Flag gesetzt, kann man davon ausgehen, daß alle Eingangsdaten im DPRAM Gültigkeit haben.

Da das Auslesen der 17 Byte aus dem DPRAM etwas Zeit beansprucht, ist es mög-lich, daß ein Konfigurationsfehler am Ende des Lesezyklus nicht mehr vorliegt, ob-wohl am Anfang des Lesezyklus ungültige Daten gelesen wurden.

Um die Gültigkeit der Daten zum Zeitpunkt des “Konfiguration O.K.” sicherzustellen, wird daher der 0/1-Übergang des Config_ok-Flags verzögert. Eingangsdaten und die Flags der Ablauf-Kontrollebene müssen dabei vor Ablauf der Verzögerungszeit gele-sen werden.

Das DPRAM-Byte Config_ok delay enthält die maximale Verzögerungszeit in Einhei-ten von 10 ms. Geht man davon aus, daß das Lesen der IDI und der Flags max. 10 ms in Anspruch nimmt, kann die Grundeinstellung bei 2 (20 ms) belassen werden.

Interrupts

Die AS-i PC 2 Karte ist in der Lage, Interrupts über den ISA-Bus an den PC zu sen-den. Die einen Interrupt auslösende “Ursache” wird über das Byte interrupt enable festgelegt. Es ist möglich, mehrere “Quellen” einen Interrupt auslösen zu lassen.

Ist ein Interrupt aufgetreten, kann aus dem Register interrupt event diejenige Quelle ausgelesen werden, die für den Interrupt verantwortlich ist. Nach der Auswertung soll-te dieses Register von der Interrupt-Routine wieder gelöscht werden.

Die Interrupt-Quellen sind wie folgt kodiert:

Bit 0: Änderungen in Config_okSowohl 0/1-, als auch 1/0-Übergänge lösen einen Interrupt aus.

Bit 1: Änderungen im Abbild der Eingangsdaten IDIDas Abbild wird zyklisch durch die PC-Karte auf Änderungen über-prüft. Es wird ein Interrupt ausgelöst, sobald eine Änderung festge-stellt wird.

Bit 2: AS-i Kreis Während der Aufnahmephase der Ablauf-Kontrollebene ausgelö-ster Interrupt.Im Normal-Betriebsmodus wird dieser Interrupt in jedem Zyklus ausgelöst.Die AS-i Zykluszeit der Pepperl+Fuchs AS-i Master liegt zwischen 300 ms (bei einem AS-i Slave) und ungefähr 5 ms (bei 31 AS-i Slaves).Die Interruptnummer wird per Jumper auf der PC-Karte eingestellt.

pc2_d.book Seite 21 Dienstag, 9. Februar 1999 12:05 12

Page 22: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfacePC-Software

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

22

8 PC-Software

8.1 Rahmenproramm “ASISHELL”

“ASISHELL” ist ein einfaches Rahmenprogramm, von dem aus die anderen Program-me des Softwarepaketes aus einem Menü heraus aufgerufen werden können, ohne deren Kommandozeilenparameter kennen zu müssen.

Im oberen Teil des Menüs können Einstellungen wie die I/O-Adresse der AS-i PC Kar-te oder der Name der Quelltextdatei für AS-i Control vorgenommen werden.

Ein zweiter Menüblock dient zum Bearbeiten eines Steuerprogramms durch den Auf-ruf eines Editors oder von ACF (siehe Kapitel 8.2.6). Desweiteren kann hier die Pro-grammiersprache eingestellt werden.

Mit den drei Menüpunkten darunter können die Programme ASI_VIS, ASI_MON und ASI_ID aufgerufen werden.

Im vierten Block sind Menüpunkte zusammengefaßt, die für den Ablauf des Pro-gramms notwendig sind: Verlassen von ASISHELL, Aufruf des Kommandozeilen-In-terpreters des Betriebssystems und Anzeige der Ausgabe der aufgerufenen Programme.

Mit einem letzten Menüpunkt wird die Kommandozeile des zu verwendenden Editors angegeben, damit jeder Benutzer den ihm vertrauten Editor einbinden kann.Beim Aufruf des Editors wird dem Betriebssystem die hier eingestellte Zeile als Kom-mandozeile übergeben, wobei der Platzhalter “$f” mit dem Namen der Quelltextdatei und “$l” mit der Zeilennummer eines von ACF gefundenen Fehlers ersetzt wird.

8.2 AS-i Monitorprogramm “ASI_MON”

Der AS-i Monitor ist ein einfaches, bildschirmorientiertes Programm für MS-DOS zur Überwachung, Anzeige (Monitor-Modus) und zum Verändern (Editor-Modus) aller Prozeßdaten und -zustände der AS-i PC Master.

8.2.1 Programmaufruf

In der Grundeinstellung sucht das AS-i Monitorprogramm nach AS-i PC Karten und tritt mit der zuerst gefundenen in Kontakt. Befinden sich mehrere AS-i PC Karten im System, kann eine bestimmte durch Modifikation der Kommandozeile angesprochen werden. Der Befehl

ASI_MON 320

beispielsweise startet den AS-i Monitor unter Verwendung der Karte, deren I/O-Adresse bei 320h liegt. Mögliche Einstellungen für die I/O-Adresse sind 300h, 304h, 308h, 30Ch, 320h, 324h, 328h und 32Ch.

8.2.2 Bildschirmaufbau

Um die große Datenmenge übersichtlich darstellen zu können werden zwei Bild-schirmseiten benutzt. Auf beiden Seiten kann man auf dem oberen Teil des Bild-schirms den Zustand der AS-i Flags ablesen. Die unteren Hälften der beiden Seiten zeigen die slavebezogenen AS-i Daten. In zwei Fußzeilen werden die Funktionsta-stenbelegung und eine Statusinformation angezeigt. Zum Protokollieren eventuell auftretender Fehler steht eine eigene Bildschirmseite zur Verfügung.

pc2_d.book Seite 22 Dienstag, 9. Februar 1999 12:05 12

Page 23: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KartePC-Software

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

23

8.2.3 Statusmeldungen

Bei Bedarf werden in der linken unteren Bildschirmecke Statusmeldungen angezeigt, die folgende Bedeutung haben:

* Es findet ein Datenaustausch statt.

r Alle AS-i Daten werden neu vom Master ausgelesen. Normalerweise werden nur diejenigen Daten ständig aktualisiert, die durch Änderungen im AS-i Kreis beeinflußt werden können. Die masterinternen Daten, wie zum Beispiel die projektierte Konfigura-tion, werden außer am Programmanfang nur in größeren Abstän-den automatisch gelesen.

p Eine der beiden AS-i Funktionen “Store_Actual_Parameters” oder “Store_Actual_Configuration” ist gerade aktiv. Diese Anzeige wurde eingeführt, da diese Funktionen auch im Monitor-Modus über die Funktionstasten F5 und F6 ausgeführt werden kön-nen.

err Bei der letzten Kommunikation trat ein Fehler auf. Im Fehlermeldungs-Fenster kann man sich eine ausführliche Feh-lermeldung anzeigen lassen.

8.2.4 Funktionstasten

Sowohl im Monitor- als auch im Editor-Modus wird ASI_MON über Funktionstasten gesteuert. Diese sind wie folgt belegt:

F1 Anzeigen einer Hilfeseite.

F3 Wechsel zwischen Monitor- und Editor-Modus.

F5 AS-i Funktion “Store_Actual_Parameters” ausführen:Ist-Parameter als Soll-Parameter abspeichern.

F6 AS-i Funktion “Store_Actual_Configuration” ausführen:Ist-Konfigurationsdaten als Soll-Konfiguration abspeichern.

F9 Alle AS-i Daten, also auch die internen Daten des Masters werden neu gelesen.Dies ist z. B. vor einem Auswechseln des Masters notwendig.

F10 AS-i Monitor beenden.

Pos 1, Ende, Bild auf, Bild abWechsel der angezeigten Bildschirmseite. Die letzte Seite ist der Fehlermeldungs-Bildschirm.

pc2_d.book Seite 23 Dienstag, 9. Februar 1999 12:05 12

Page 24: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfacePC-Software

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

24

8.2.5 Editor-Modus

Im Editor-Modus können alle Prozeßdaten und -zustände nicht nur angezeigt, son-dern auch verändert werden. Dazu bewegt man den Bildschirmcursor mit den Pfeil-tasten auf das zu ändernde Datum und überschreibt dieses einfach mit dem neuen Wert.

Es lassen sich nur diejenigen Stellen des Bildschirms mit dem Cursor erreichen, an denen Änderungen möglich sind. Gültige Eingaben werden sofort ausgeführt.

Außer den beiden Funktionen "Store_Actual_Parameters” und “Store_Actual_Configuration” , die mit Funktionstasten aufgerufen werden, sind auf diese Art alle Funktionen der Ablauf-Kontrollebene nach der derzeitigenAS-i Master Spezifikation realisierbar.

Ändern hexadezimal angezeigter Daten

Eingangs- und Ausgangsdaten sowie Slaveparameter und Slavekonfigurationsdaten haben einen Wertebereich von Null bis Fünfzehn und werden deshalb hexadezimal angezeigt. Um diese Werte zu ändern, muß der Bildschirmcursor im Editor-Modus an die entsprechende Stelle bewegt werden und der neue Wert als einstellige Hexade-zimalzahl eingegeben werden. Tastendrücke, die nicht als hexadezimale Eingabe in-terpretiert werden können, werden ignoriert.

Ändern binärer Daten

Die drei Slavelisten LDS, LAS und LPS und die Flags der Ablauf-Kontrollebene (ec-Flags) (im AS-i Master) werden binär angezeigt. Ein gesetztes Bit wird dabei durch ein “X”, die gelöschten durch Punkte repräsentiert.

Nachdem der Cursor auf die entsprechende Stelle bewegt worden ist, wird durch je-den Druck auf die Leertaste der Zustand des Datums invertiert.

Ändern der Slaveadressen

Eine Slaveadresse kann durch Eingabe einer zweistelligen dezimalen Zahl über-schrieben werden. Ungültige Tastendrücke werden zwar ignoriert, die beiden Dezi-malstellen müssen aber direkt hintereinander eingegeben werden. Adressen unter 10 müssen mit vorgestellter Null geschrieben werden (z.B. 05)

8.2.6 Compiler/Loader "ACF"

Das Programm "ACF" dient dazu, ein Steuerprogramm aus einer Quelltextdatei zu le-sen und es in eine für AS-i Control verwendbare Form zu übersetzen (compilieren).

Die erzeugten Daten werden nicht in eine weitere Datei geschrieben, sondern können - falls gewünscht - direkt im EEPROM von AS-i Control abgelegt werden. Gleichzeitig wird die im Setup-Abschnitt der Quelltextdatei angegebene AS-i Konfiguration in den projektierten Daten von AS-i Control eingetragen (Downloading).

Optional kann das so geladene Steuerprogramm in AS-i Control aktiviert werden.

pc2_d.book Seite 24 Dienstag, 9. Februar 1999 12:05 12

Page 25: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KartePC-Software

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

25

Beim Download werden folgende AS-i Host-Funktionen ausgeführt:

• Slaves, die in Setup-Abschnitten angegeben sind, werden in die Liste der projek-tierten Slaves LPS eingetragen.

• Die in den Setup-Abschnitten angegebenen Parameter (Voreinstellung: Fhex) wer-den an alle Slaves in der LPS geschickt.

• Diese Parameter werden in den Projektierungsdaten von AS-i Control als "Perma-nent Parameters" PP eingetragen.

• I/O-Codes und Konfigurations-IDs für diese Slaves werden in den Projektierungs-datenals "Permanent Configuration Data" PCD von AS-i Control eingetragen.

Das Steuerprogramm wird im EEPROM von AS-i Control abgelegt. Bevor ein so ge-ladenes Steuerprogramm gestartet werden kann, muß es zurückgesetzt werden, d.h. es wird aus dem EEPROM gelesen.

Zusätzlich zum Namen der Quelltextdatei, die das zu bearbeitende Steuerprogramm enthält, können beim Aufruf von ACF in der Kommandozeile folgende Optionen an-gegeben werden:

/i<settings> "interface settings"

Der Parameter <settings> ist ein String mit dem Format "IO <port>". Mit dem Parameter <port> kann man bei Verwendung mehrerer AS-i PC Karten eine anhand ihrer I/O-Basisadresse auswählen. Mögliche Werte für <port> sind 300h, 304h, 308h, 30Ch, 320h, 324h, 328h und 32Ch.

/l<path> "library path"

<path> bezeichnet das Verzeichnis, in dem ACF nach Funktions-bausteinen sucht und in dem temporäre Dateien abgelegt werden.

/c<code> "compiler language"

Für <code> kann 001 für englisch bzw 049 für deutsch angegeben werden.

/u+ bzw. /u- "upload"

Mit diesem Schalter wird festgelegt, ob ACF das Steuerprogramm lesen und in die Quelltextdatei schreiben soll (/u+).

/o+ bzw. /o- "overwrite source file" (nur in Verbindung mit /u+ sinnvoll.)

Wenn beim Upload der Name einer bereits vorhandenen Quelltext-datei angegeben wird, wird diese normalerweise erst nach einer zu-sätzlichen Bestätigung vom Anwender gelöscht.

Diese Bestätigungsaufforderung kann mit /o+ unterdrückt werden.

/d+ bzw. /d- "download"

Mit diesem Schalter wird festgelegt, ob ACF das Steuerprogramm in der Quelltextdatei nur auf korrekte Syntax hin überprüfen soll(/d-) oder auch im EEPROM von AS-i Control ablegen soll (/d+).

pc2_d.book Seite 25 Dienstag, 9. Februar 1999 12:05 12

Page 26: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfacePC-Software

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

26

/s+, /s- bzw. /s0 "start control program"

Hier wird festgelegt, ob das mit /d+ geladene Steuerprogramm ak-tiviert werden soll (/s+), angehalten werden soll (/s-) oder der Zu-stand des Start-Flags unverändert bleiben soll (/s0).

Wenn ein Steuerprogramm mit /s- deaktiviert wird, verhält sich AS-i Control auch im Normalbetrieb im geschützten Betriebsmodus wie ein gewöhnlicher AS-i Master ohne SPS-Funktionalität.

/v+ bzw. /v- "produce verbose output"

Nach der Angabe von /v+ wird eine sehr ausführliche Bildschirm-ausgabe erzeugt, bei der die einzelnen Schritte beim Erzeugen der Token und beim Download in AS-i Control angegeben werden.

Unabhängig von /v+ und /v- wird bei jedem Aufruf von ACF eine Textdatei CTRL2.{l} erzeugt, die die ausführlichen Meldungen ent-hält. Das Assembly-Listing ist in der Datei CTRL.{a} zu finden.

8.3 Visualisierungsprogramm “ASI_VIS”

ASI_VIS ist ein Programm zur Anzeige der Ein- und Ausgabedaten des AS-i Kreises und des Anwenderspeichers von AS-i Control während eines laufenden Steuerpro-gramms.

Die Kommandozeilenschalter haben die folgende Funktion:

/p<port> “select I/O-Port”

Mit diesem Parameter kann man bei Verwendung mehrerer AS-i PC Karten eine Karte anhand ihrer I/O-Basisadresse auswählen. Mögliche Werte für <port> sind 300h, 304h, 308h, 30Ch, 320h, 324h, 328h und 32Ch.

Wird für <port> kein Wert gewählt, sucht ASI_VIS nach AS-i PC Karten und benutzt die erste gefundene.

/h oder /? “display help”

Anzeigen eines Hilfetextes mit Einstellmöglichkeiten und den mit /w gespeicherten Voreinstellungen.

pc2_d.book Seite 26 Dienstag, 9. Februar 1999 12:05 12

Page 27: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KartePC-Treiber

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

27

9 PC-Treiber

Der Treiber dient der Kompatibilität mit anderen Pepperl+Fuchs Mastern. Das folgen-de Programmbeispiel zeigt, wie dieser in Anwendungen integriert werden kann. Sollte diese Kompatibilität nicht notwendig sein, ist es sinnvoller, die Karte direkt anzuspre-chen. In Kapitel 10.4.1 ist hierzu ein ANSI-C-Beispielprogramm (ansidemo.c) abge-druckt, das auch auf der beiliegenden Diskette enthalten ist.

#include <stdio.h>

#include <conio.h>

#include "intface.h"

main (int argc, char *argv[])

{

ASI_DATA message, answer;

int back, i;

/* initialize driver */

back = AsiPc2Init (0);

if (back != 0) {

printf ("Error: <%04x>\n", back);

return 1;

}

do {

/* read input data */

back = ASI_com (EIN_DATEN_LESEN_SER, message, answer);

/* error message */

if (back != 0) {

printf ("Error: <%04x>\n", back);

return 1;

}

/* display input telegram */

else {

printf("data: ");

for (i = 0; i < (int) ASI_answer_len; i++)

printf (" %02X", answer [i]);

putchar ('\r');

}

/* repeat until key pressed */

} while (kbhit () == 0);

/* End */

pc2_d.book Seite 27 Dienstag, 9. Februar 1999 12:05 12

Page 28: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfacePC-Treiber

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

28

return (0);

}

pc2_d.book Seite 28 Dienstag, 9. Februar 1999 12:05 12

Page 29: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KartePC-Treiber

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

29

9.1 Neue Datentypen

Als einziger neuer Datentyp wurde ASI_DATA eingeführt, ein Feld, dessen Elemente vom Typ unsigned char sind und das die Nutzung der User-Daten überwacht. Es ist möglich, die einzelnen Elemente des Feldes durch die in C üblichen Befehle anzu-sprechen. data[3] steht zum Beispiel für das dritte Element im ASI_DATA Feld.

In das Kommunikationssystem können auch eigene Datenstrukturen eingepaßt wer-den. Die Verwendung von ASI_DATA garantiert jedoch eine effiziente Größe des Da-tenfeldes.

9.2 Globale statische Variablen

Informationen, auf die Hauptprogramme in der Regel weniger oft zugreifen, sind in statischen Variablen gespeichert. In der Regel handelt es sich hierbei um Statusva-riablen der letzten Datenübertragungen.

Alle diese Variablen, ausgenommen ASI_retry , werden durch den Treiber gesetzt und sollten ausschließlich von dem Hauptprogramm gelesen werden.

ASI_message Art (AS-i Funktion) der letzten vom PC gesendetenNachricht,

ASI_message_len deren Länge.

ASI_answer Art der letzten Antwort des Masters,

ASI_Answer_len deren Länge.

9.3 Funktionen

int AsiPc2Init (unsigned int io_addr) ;

Diese Funktion initialisiert den Treiber und muß daher vor Beginn einer Kommunika-tion aufgerufen werden. Gültige I/O-Adressen sind 300h, 304h, 308h, 30Ch, 320h, 324h, 328h und 32Ch. Wird eine Null statt dessen gesetzt, sucht der Treiber selbstän-dig nach einer gültigen I/O-Adresse und verwendet die erste, die er findet.

Rückgabewerte:

00h Kein Fehler aufgetreten

01h Der Wert des io_addr Parameters liegt nicht im zulässigen Bereich.

02h Keine AS-i PC Karte gefunden, oder falsche Firmwareversion.

03h Keine AS-i PC Karte gefunden

int ASI_com (unsigned char command, ASI_DATA message, ASI_DATA

answer);

Dies ist die eigentliche Funktion, um Telegramme mit dem Master auszutauschen. Das Byte command spezifiziert den auszuführenden Befehl, an message übergibt man den zu übermittelnden Wert und die Antwort des Masters wird in answer gespei-chert.

pc2_d.book Seite 29 Dienstag, 9. Februar 1999 12:05 12

Page 30: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfacePC-Treiber

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

30

Der Inhalt des niederwertigen Bytes (hexadezimal) der Antwort answer hat die folgen-den Bedeutungen:

00h Fehlerfreie Kommunikation

01h ASI_init() wurde noch nicht aufgerufen

02h Es wurde ein ungültiger AS-i Befehl in command verwendet

03h Ungültige Antwort der AS-i PC Karte während des Handshakes

1106h Handshake-Timeout

int ASI_is_command (unsigned char command);

Diese Funktion überprüft, ob es sich bei 'command' um einen gültigen Befehl handelt.

1 Es handelt sich um einen gültigen Telegrammtyp

0 Es handelt sich um einen ungültigen Telegrammtyp

int ASI_get_message_len (unsigned char command, ASI_DATA messa-ge);

int ASI_get_answer_len (unsigned char command, ASI_DATA ans-wer);

Diese Funktionen geben die Mindestanzahl der Bytes von message bzw. answer zu-rück.Kann deren Länge variieren, so wird die aktuelle Länge bestimmt.

Sind message oder answer unbekannt, kann eine Null übertragen werden. Beide

Funktionen geben die maximale Anzahl Datenbytes zurück.

int AsiPc2Reset (void);

Diese Funktion vollzieht einen Power-up-Reset der AS-i PC Karte.

Rückgabewerte:

00h Kein Fehler.

01h ASI_init() wurde noch nicht aufgerufen.

pc2_d.book Seite 30 Dienstag, 9. Februar 1999 12:05 12

Page 31: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

31

10 Anhang

10.1 Treiberbefehle zur Kompatibilität mit anderen Pepperl+Fuchs Mastern

In den Tabellen auf den nächsten Seiten sind für jeden Treiberbefehl das Komman-dobyte k der Inhalt des Datenbytes bi für Host und Mastertelegramm aufgeführt.

Das Kommandobyte k bezieht sich nur auf die Treiberbefehle und darf nicht mit dem Byte ‘command' in der DPRAM-Tabelle verwechseltwerden.Diese Treiberbefehle sollten nicht benutzt werden, wenn eine Kompati-bilität zu anderen Pepperl+Fuchs Mastern nicht notwendig ist. Dann ist es sinnvoller, die Karte direkt über das DPRAM anzusprechen.

Befehle nach der AS-i Master Spezifikation

Telegramm k bi (Hosttelegramm) bi (Mastertelegramm)

Eingangsdaten lesen 71hex - b1...b16: Eingangsdaten

Ausgangsdaten schreiben 70hex b1...b16: Ausgangsdaten b1: Status

projektierte Parameterschreiben

61hex b1: Slaveadresseb2: Parameter

b1: Status

projektierte Parameter lesen 62hex b1: Slaveadresse b1: Parameter

Ist- Parameter schreiben 63hex b1: Slaveadresseb2: Parameter

b1: gegengelesene Parameter (im Fehlerfall invertiert)

Ist- Parameter lesen 64hex b1: Slaveadresse b1: Parameter

Ist- Parameter projektieren 65hex - b1: Status

projektierte Konfigurations-daten schreiben

66hex b1: Slaveadresseb2: Konfigurationsdaten

b1: Status

projektierteKonfigurationsdaten lesen

67hex b1: Slaveadresse b1: Konfigurationsdaten

Ist- Konfigurationprojektieren

68hex - b1: Status

Ist- Konfigurationsdatenlesen

69hex b1: Slaveadresse b1: Konfigurationsdaten

Liste der projektierten Slaves schreiben

6Ahex b1 ... b4: LPS b1: Status

Liste der projektierten Slaves lesen 6Bhex - b1 ... b4: LPS

Liste der aktiven Slaveslesen

6Chex - b1 ... b4: LAS

Liste der erkannten Slaveslesen

6Dhex - b1 ... b4: LDS

Flags der Ablauf-Kontrollebene lesen

72hex - b1: Flags der Ablauf-Kontrolle-bene

Betriebsmodus setzen 73hex b1 = 0: geschützter Betriebsmodusb1 = 1: Projektierungs-modus

b1: Status

Flag des Host- Interfacesschreiben

74hex b1: Flag des Host- inter-face

b1: Status

Flag des Host- Interfacesschreiben

6Ehex b1: alte Slaveadresseb2: neue Slaveadresse

b1: Status

pc2_d.book Seite 31 Dienstag, 9. Februar 1999 12:05 12

Page 32: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

32

10.2 Organisation der Nutzdatenbytes

10.2.1 Ein- und Ausgangsdaten

Die Ein- und Ausgangsdaten jedes Slaves werden durch eine vierstellige Binärzahl repräsentiert. Die Ein- Ausgangsdaten variieren somit im Bereich zwischen 0 und 15.

Im DPRAM sind die Informationen für zwei Slaves in einem Byte zusammenfaßt. Mit dem Befehl ”q” (lese Eingangsdaten) werden also 32/2 = 16 Bytes Nutzdaten aus dem DPRAM ausgelesen.

Die Einträge der niederen Slaveadressen werden zuerst übertragen. Byte 0, Bits 0 - 3 (unteres Nibble) enthält die Eingangsdaten des Slaves mit Slaveadresse 0; das obere Nibble des Nutzdatenbytes 15 enthält die Eingangsdaten des Slave 31.

Zusätzliche Treiber- Befehle (nicht in AS-i Master Spezifikation

AS-i Kommandoaufruf 6Fhex b1: Slaveadresseb2: Informationsteil des AS-i Telegramms

b1: Antwort des Slaveb2: Status

Alle Ein- und Ausgangsdatentauschen

76hex b1...b16: Ausgangsdaten b1: Flags der Ablauf-Kontrolle-beneb2...b17: Eingangsdaten

ausgewählte Ausgangsdatenschreiben

77hex b1: erste Slaveadresseb2: Anzahl der Slavesb3...b18: Ausgangsdaten

b1: Status

ausgewählte Eingangsdatenlesen

78hex b1: erste Slaveadresseb2: Anzahl der Slaves

b1: Flags der Ablauf-Kontrolle-beneb2...b17: Eingangsdaten

Ausgangsdaten lesen 81hex - b1...b16: Ausgangsdaten

Masterversion lesen 7Dhex b1: ≡ 0: Versionsnum-mer (8 Bytes)b1: ≡ 1: Mastername Teil 1 (17 Bytes)b1: ≡ 2: Mastername Teil2 (17 Bytes)b1: ≡ 3: Masterversion (17 Bytes)b1: ≡ 4: installierte Soft-ware und Host- Inter-face- Flags(17 Bytes)

b1: Versionsangaben (8 oder 17 Bytes)

Der Befehl "Alle Ein- und Ausgangsdaten tauschen" ist der bevorzugte Befehl, da geringster Overhead: der AS-i Master muß nur einmal auf die Antwort des Slaves warten.

Die Funktionen "ausgewählte Ausgangsdaten schreiben" und "ausgewählte Eingangsdaten lesen" werden nur dann ausgeführt, wenn sich der AS i Master im Normalbetrieb befindet

pc2_d.book Seite 32 Dienstag, 9. Februar 1999 12:05 12

Page 33: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

33

10.2.2 Slavelisten

In den Slavelisten (LDS, LAS, LPS) ist jeder Slave durch ein Bit repräsentiert. Da 32 Slaves von einem AS-i Master angesprochen werden können, ist jede Slaveliste 4 Byte lang.

Auch in diesem Fall werden die Daten für den Slave mit der niedrigsten Slavenummer zuerst übertragen. Slave 0 wird durch Byte 0, Bit 0 (20, LSB) und Slave 32 durch Byte 3, Bit 7 (27, MSB) repräsentiert.

10.2.3 Flags der Ablauf-Kontrollebene (ec-flags)

Die Beschreibung der Bits bezieht sich auf das gesetzte Bit (Bit = 1).

10.2.4 Flags des Host Interface (hi-flags)

Die Beschreibung der Bits bezieht sich auf das Setzen des Bits (Bit = 1).

10.2.5 Installierte Software/Flags des Host Interface

An der Adresse 0E0h im DPRAM ist ein String der Länge 16 Bytes abgelegt. In die-sem String sind die Zustände des Host-Interfaces und die Fähigkeiten bzw. Ausstattungsmerkmale des Masters eingetragen. Jeder Stelle des Strings ist ein Merkmal zugeordnet:

Bit 0: config_OK Es liegt kein Konfigurationsfehler vor.

Bit 1: LDS.0 Es existiert ein Slave mit Adresse 0.

Bit 2: Auto_Address_Assign Die automatische Programmierung der Slaveadresse ist aktiviert.

Bit 3: Auto_Address_Available Das automatische Programmieren der Slaveadresse ist möglich.

Bit 4: Configuration_Active Der Projektierungsmodus ist aktiv.

Bit 5: Normal_Operation_Active Der Normalbetriebsmodus ist aktiv.

Bit 6: APF Die AS-i Spannungsversorgung istzusammengebrochen.

Bit 7: Offline_Ready Der Master ist in der Offline-Phase.

Bit 0: Data_Exchange_Active Die Kommunikation zwischen Master und Slaves wird aktiviert.

Bit 1: Offline Der Master wird in die Offline-Phase versetzt.

Bit 2: Auto_Address_Enable Das automatische Programmieren der Slaveadressen wird eingeschaltet.(Dieses Flag wird nichtflüchtig gespeichert.)

pc2_d.book Seite 33 Dienstag, 9. Februar 1999 12:05 12

Page 34: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

34

Byte 0 (C/c,D/d)Der AS-i Master ist ein AS-i Control. Ein großes ‘C’ zeigt an, daß ge-rade ein Steuerprogramm abgearbeitet wird. Bei einem kleinen ‘c’ ist entweder das Start-Flag nicht gesetzt oder der Zustand des AS-i Masters erlaubt keine Abarbeitung.Wird statt dem C/c ein D/d angezeigt, so handelt es sich um die neuere Softwareversion von AS-i Control II.

Byte 1 (B/b)Busfähiger AS-i Master. Der antwortende Master ist busfähig (trifft für alle AS-i PC Karten zu)

Byte 2 (F/f)Der AS-i Master ist mit dem optionalen AS-i Fehlerzähler ausge-stattet.

Byte 3 (E/e)Der AS-i Master ist mit dem optionalen EMV-Testmodus ausgestat-tet.

Byte 4 (D/d)Der AS-i Master ist mit der erweiterten Diagnose ausgestattet.

Byte 5 (C/c)Der AS-i Master ist mit der Funktion Offline bei Konfigurationsfehler ausgestattet.

Byte 6-7 nicht benutzt

Byte 8 (D/d)Das Data_Exchange_Active Flag des Host Interfaces ist gesetzt/gelöscht.

Byte 9 (O/o)Das Off-line Flag des Host Interface ist gesetzt/gelöscht.

Byte 10 (A/a)Das Auto_Address_Enable Flag des Host Interfaces ist gesetzt/ge-löscht.

Byte 11-13 nicht benutzt

Byte 14 (W/w)Der Watchdog ist aktiviert/deaktiviert.

Byte 15 nicht benutzt

pc2_d.book Seite 34 Dienstag, 9. Februar 1999 12:05 12

Page 35: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

35

10.2.6 AS-i Control Flags, Start/Stop Code

10.2.7 Statusbyte

Das Statusbyte, das bei der Verwendung bestimmter Befehle wie z.B. 70h oder 77h zurückgegeben wird, kann folgende Werte enthalten:

00 Fehler beim Ausführen des Host-Auftrags aufgetreten

01 kein Fehler beim Ausführen einer Host-Anfrage aufgetreten

Kommt es beim Ändern von Slaveadressen zu Fehlern, enthält das Statusbyte einen der folgenden Fehlercodes:

02 Der Slave, dessen Adresse geändert werden soll, existiert nicht.

03 Es existiert ein Slave mit der Betriebsadresse Null.

04 Die Adresse, auf die der Slave programmiert werden soll, wird von einem anderen Slave belegt.

05 Der Slave ließ sich nicht auf Adresse 0 programmieren

06 Die neue Betriebsadresse konnte dem Slave nicht zugewiesen wer-den.

07 Die neue Betriebsadresse ließ sich nicht im EEPROM des Slaves ablegen.

Bit 0: start_flag Wenn Bit 0 gesetzt ist, wird das Steuerprogramm aus-geführt, sobald und solange dies der Zustand des AS-i Master erlaubt. (Dieses Flag wird nichtflüchtig gespei-chert)

Bit 1: reset_bit Das Steuerprogramm wird vor dem Start aus dem EEPROM gelesen und der Anwenderspeicher (Merker-bytes) gelöscht (erforderlich nach jedem Download)

Bit 2: ignore_config_errors Bei gelöschtem Bit 2 wird das Steuerprogramm ange-halten, sobald ein Konfigurationsfehler am AS-i vorliegt. (Dieses Flag wird nichtflüchtig gespeichert)

Bit 3: auto_start Nach Abbruch eines Steuerprogramms wartet AS-i Con-trol auf einen Startbefehl. (Dieses Flag wird nichtflüchtig gespeichert)

Bit 4: map_counters Ist dieses Bit gesetzt, ist ein Zugriff auf die Zählerstände der 15 Counter über die Adressen M 96.0 bis M 125.7 möglich. (Dieses Flag wird nichtflüchtig gespeichert)

pc2_d.book Seite 35 Dienstag, 9. Februar 1999 12:05 12

Page 36: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

36

10.3 Nichtflüchtig gespeicherte Daten

Folgende Daten und Zustände werden nichtflüchtig im AS-i Master gespeichert:

• Bit 2 (Auto_Prog_Enable) der Host-Interface-Flags

• Liste der projektierten Slaves (LPS)

• projektierte Konfiguration (PCD)

• projektierte Parameter (PP)

• Bit 0 (start_flag), Bit 2 (ignore_config_errors), Bit 3 (auto_start) und Bit 4 (map_counters) der AS-i Control Flags.

• Betriebsmodus: Projektierungsmodus / geschützter Betriebsmodus

pc2_d.book Seite 36 Dienstag, 9. Februar 1999 12:05 12

Page 37: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

37

10.4 Programmlistings

10.4.1 Beispiel für die direkte Programmierung der AS-i PC Karte in ANSI-C

/* file: ansidemo.c */

/* ================================================================ */

/* */

/* PEPPERL+FUCHS GMBH MANNHEIM */

/* */

/* ================================================================ */

/* program: ANSIDEMO */

/* */

/* description: demo program for the ASi PC2 board */

/* (written in ANSI-C) */

/* using one standard sensor (IO=0x01, ID=0x01) */

/* and one 4xout module (IO=0x08, ID=0x00) */

/* ================================================================ */

/* author: A.Quick */

/* date: 04.09.96 */

/* ================================================================ */

/* ================================================================ */

/* I N C L U D E S */

#include <stdio.h>

/* maybe these header names are different for your operation system */

#include <conio.h>

#include <time.h>

/* ================================================================ */

/* A S - i C O N F I G U R A T I O N */

/* list of the projected slaves (LPS) */

static unsigned char lps[4] = {0x06,0x00,0x00,0x00};

/* list of the IO and ID data */

/* = permanet configuration data (PCD) */

static unsigned char pcd[32] = {0xFF,0x11,0x08,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF};

/* list of the projected parameters (PP) */

static unsigned char pp[16] = {0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF};

/* ================================================================ */

/* D E F I N E S */

/* base address of the AS-i PC2 board (has to be adapted to your */

/* own application, default address is 0x300) */

#define BASE_ADDRESS 0x300

/* offsets of the 3 registers of the AS-i PC2 board */

#define DATA 0

pc2_d.book Seite 37 Dienstag, 9. Februar 1999 12:05 12

Page 38: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

38

#define INDEX 1

#define PAGE 2

/* addresses in the DPRAM */

#define D_COMMAND 0x1F0

#define D_DATA 0x1F1

#define D_LPS 0x12C

#define D_PCD 0x150

#define D_PP 0x180

#define D_PI 0x170

#define D_EC_FLAGS 0x112

#define D_WDOG_ENA 0x100

#define D_WDOG_CNT 0x101

#define D_IDI 0x102

#define D_ODI 0x113

/* command codes (used for the DPRAM's command byte) */

#define C_SET_MODE 17

#define C_SET_PP 3

#define C_SET_PCD 8

#define C_SET_LPS 12

/* macros for addressing, reading and writing of the DPRAM */

/* the functions "inp" and "outp" have to be adapted to your */

/* operating system */

#define Page(Loc) outp(BASE_ADDRESS+PAGE, (Loc) >> 8)

#define Index(Loc) outp(BASE_ADDRESS+INDEX, (Loc) & 0xFF)

#define Read(Var) Var = (unsigned char)inp(BASE_ADDRESS+DATA)

#define Write(Var) outp(BASE_ADDRESS+DATA, (Var))

/* ================================================================ */

/* F U N C T I O N P R O T O T Y P E S */

static int send_cmd(unsigned char command);

/* ================================================================ */

/* FUNCTION: main */

/* ================================================================ */

void main (void)

{

int error, i;

int which_bar_to_print = 1;

time_t timer;

/* AS-i execution control flags */

unsigned char flags;

/* AS-i input data */

unsigned char idata[16];

/* AS-i output data */

unsigned char odata[16] = {0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF};

/* disable watchdog */

Page(D_WDOG_ENA);

Index(D_WDOG_ENA);

Write(0x00);

pc2_d.book Seite 38 Dienstag, 9. Februar 1999 12:05 12

Page 39: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

39

/* switch to configuration mode */

Page(D_DATA); /* write something bigger than 1 */

Index(D_DATA); /* to the parameter "data" */

Write(0x01);

error = send_cmd(C_SET_MODE); /* command to set mode */

if(error)

{

printf("can't switch to configuration mode.");

return;

}

/* write new list of projected slaves (LPS) */

Page(D_LPS);

Index(D_LPS);

for(i=0 ; i<sizeof(lps) ; i++) /* write LPS to DPRAM */

Write( lps[i] );

error = send_cmd(C_SET_LPS); /* command to update LPS */

if(error)

{

printf("can't update LPS.");

return;

}

/* write new permanent configuration data (PCD) */

Page(D_PCD);

Index(D_PCD);

for(i=0 ; i<sizeof(pcd) ; i++) /* write PCD to DPRAM */

Write( pcd[i] );

error = send_cmd(C_SET_PCD); /* command to update PCD */

if(error)

{

printf("can't update PCD.");

return;

}

/* write new PP */

Page(D_PP);

Index(D_PP);

for(i=0 ; i<sizeof(pp) ; i++) /* write PP to DPRAM */

Write( pp[i] );

error = send_cmd(C_SET_PP); /* command to update PP */

if(error)

{

printf("can't update PP.");

return;

}

/* return to protected operation mode */

Page(D_DATA); /* write 0 to the parameter "data" */

Index(D_DATA);

Write(0x00);

error = send_cmd(C_SET_MODE); /* command to set mode */

if(error)

{

printf("can't return to protected operation mode.");

return;

}

/* wait for normal operation */

Page(D_EC_FLAGS);

time (&timer); /* store actual time */

pc2_d.book Seite 39 Dienstag, 9. Februar 1999 12:05 12

Page 40: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

40

do /* loop until normal operation mode flag gets high */

{

Index(D_EC_FLAGS);

Read(flags);

/* end program after 2 seconds timeout*/

if(2 < difftime(time(NULL),timer))

{

printf ("can't start normal operation.");

return;

}

}while (0x00 == (flags & 0x20));

/* write projected parameter (PP) to parameter image (PI) */

/* AS-i PC2 board writes PI list only after power up! */

Page(D_PI);

Index(D_PI);

for(i=0 ; i<sizeof(pp) ; i++)

Write( pp[i] );

/* initialize watchdog */

Page(D_WDOG_CNT);

Index(D_WDOG_CNT);

Write(0x0a); /* load watchdog counter with 100 ms */

Page(D_WDOG_ENA);

Index(D_WDOG_ENA);

Write(0x01); /* enable watchdog */

/* communication for ever */

do

{

/* reload watchdog counter with 100 ms */

Page(D_WDOG_CNT);

Index(D_WDOG_CNT); /* index register will be incremented */

Write(0x0a); /* after every read or write access! */

/* read input data from DPRAM */

for(i=0;i<sizeof(idata);i++)

Read( idata[i] );

/* read execution control flags from DPRAM */

Read(flags);

/* copy sensor bit of slave 1 to bit 0 of slave 2 */

odata[1] = idata[0] & 0x10; /* mask sensor bit of sl.1 */

odata[1] = odata[1] >> 4; /* shift from sl.3 to sl.2 */

odata[1] = ~odata[1]; /* bitwise negation */

/* write output data to DPRAM */

for(i=0;i<sizeof(odata);i++)

Write( odata[i] );

/* print data to screen ("shift-" and "AND-operation" */

/* necessary for right placing on screen!) */

printf("input data (slave 1) = %1x ", idata[0]>>4);

printf("output data (slave 2)= %1x ", odata[1]&0x0f);

/* print "config OK" or "config err" to screen */

if( 0x00 == (flags & 0x01) ) /* mask config flag */

printf("config err...\r");

else

{

pc2_d.book Seite 40 Dienstag, 9. Februar 1999 12:05 12

Page 41: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

41

printf("config OK... ");

/* print "active wheel" to screen */

switch(which_bar_to_print)

{

case 1: printf("-\r");

which_bar_to_print = 2;

break;

case 2: printf("/\r");

which_bar_to_print = 3;

break;

case 3: printf("\\\r");

which_bar_to_print = 1;

break;

}

}

} while(1);

} /* main */

/* ================================================================ */

/* FUNCTION: send_cmd */

/* DESCRIPTION: send a command to AS-i PC board */

/* */

/* USAGE: error = send_cmd(command); */

/* */

/* PARAMETERS: */

/* command: value for 'command' */

/* */

/* RETURNS: */

/* 0x0000: o.k. (ACK) */

/* 0x0001: o.k. (NAK) */

/* 0x0003: invalid response */

/* 0x0004: timeout */

/* ================================================================ */

static int send_cmd(unsigned char command)

{

time_t timer;

register unsigned char c;

Page(D_COMMAND); /* write the command code */

Index(D_COMMAND); /* to DPRAM */

Write(command);

c = command;

time(&timer); /* store actual time */

do

{

Index(D_COMMAND); /* read command byte */

Read(c); /* from DPRAM! */

if (c != command) /* break loop, if command byte */

break; /* is changing... */

}while(difftime(time(NULL),timer) < 0.2);

/* ...or end loop after 200 ms (timeout)! */

/* return codes depending on the command byte */

if (c == command) return (0x0004); /* timeout */

else if (c == 0x00) return (0x0000); /* ACK */

pc2_d.book Seite 41 Dienstag, 9. Februar 1999 12:05 12

Page 42: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

42

else if (c == 0xFF) return (0x0001); /* NAK */

else return (0x0003); /* invalid */

} /* send_cmd */

/* ================================================================ */

/* E N D O F M O D U L E */

/* ================================================================ */

10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

{ file: pc2demo.pas }

{ ============================================================= }

{ }

{ PEPPERL+FUCHS GMBH MANNHEIM }

{ }

{ ============================================================= }

{ program: pc2demo }

{ }

{ description: demo program for the ASi PC2 board }

{ using one standard sensor (IO=0x01, ID=0x01) }

{ and one 4xout module (IO=0x08, ID=0x00) }

{ ============================================================= }

{ author: A.Quick }

{ date: 06.09.96 }

{ ============================================================= }

program ansidemo;

uses dos;

{ ============================================================= }

{ CONSTANTS

{ list of the projected slaves (LPS) }

const lps : array [0..3] of byte = ($06,$00,$00,$00);

{ list of the IO and ID data }

{ = permanet configuration data (PCD) }

pcd : array [0..31] of byte = ($FF,$11,$08,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF);

{ list of the projected parameters (PP) }

pp : array [0..15] of byte = ($FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF,

$FF,$FF,$FF,$FF);

{ base address of the AS-i PC2 board (has to be adapted to your }

{ own application, default address is 0x300) }

BASE_ADDRESS : word =$300;

{ offsets of the 3 registers of the AS-i PC2 board }

DATA : word = $0;

INDEX : word = $1;

pc2_d.book Seite 42 Dienstag, 9. Februar 1999 12:05 12

Page 43: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

43

PAGE : word = $2;

{ addresses in the DPRAM }

D_COMMAND : word = $1F0;

D_DATA : word = $1F1;

D_LPS : word = $12C;

D_PCD : word = $150;

D_PP : word = $180;

D_PI : word = $170;

D_EC_FLAGS : word = $112;

D_WDOG_ENA : word = $100;

D_WDOG_CNT : word = $101;

D_IDI : word = $102;

D_ODI : word = $113;

{ command codes (used for the DPRAM's command byte) }

C_SET_MODE : byte = 17;

C_SET_PP : byte = 3;

C_SET_PCD : byte = 8;

C_SET_LPS : byte = 12;

{ ============================================================= }

{ GLOBAL VARIABLES }

var error, i : integer;

flags : byte;

idata : array[0..15] of byte;

odata : array[0..15] of byte;

hour, minute, second, sec100 : word;

the_second : word;

{ ============================================================= }

{ PROCEDURE: DPpage }

{ DESCRIPTION: write the page register of the DPRAM }

{ }

{ PARAMETERS: }

{ loc: Complete address to read or write from }

{ ============================================================= }

procedure DPpage(loc : word);

begin

port[BASE_ADDRESS + PAGE] := (loc shr 8); {shift right, 8 bit}

end; { DPpage }

{ ============================================================= }

{ PROCEDURE: DPindex }

{ DESCRIPTION: write the the index register of the DPRAM }

{ }

{ PARAMETERS: }

{ loc: Complete address to read or write from }

{ ============================================================= }

procedure DPindex(loc : word);

begin

port[BASE_ADDRESS + INDEX] := (loc AND $FF); {mask lower 8 bit}

end; { DPindex }

{ ============================================================= }

{ PROCEDURE: DPread }

{ DESCRIPTION: read from the address specified by page and }

{ index register of the DPRAM }

pc2_d.book Seite 43 Dienstag, 9. Februar 1999 12:05 12

Page 44: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

44

{ }

{ RETURNS: dat: DATA register of the DPRAM }

{ ============================================================= }

procedure DPread(var dat: byte);

begin

dat := port[BASE_ADDRESS + DATA];

end; { DPread }

{ ============================================================= }

{ PROCEDURE: DPwrite }

{ DESCRIPTION: write to the address specified by page and }

{ index register of the DPRAM }

{ }

{ PARAMETERS: variable: dat }

{ ============================================================= }

procedure DPwrite(dat : byte);

begin

port[BASE_ADDRESS + DATA] := dat;

end; { DPwrite }

{ ============================================================= }

{ FUNCTION: send_cmd }

{ DESCRIPTION: send a command to AS-i PC board }

{ }

{ USAGE: error := send_cmd(command); }

{ }

{ PARAMETERS: }

{ command: value for 'command' }

{ }

{ RETURNS: }

{ 0: o.k. (ACK) }

{ 1: o.k. (NAK) }

{ 3: invalid response }

{ 4: timeout }

{ ============================================================= }

function send_cmd(command : byte): integer;

var hour, minute, second, sec100 : word;

the_sec100 : word;

c : byte;

begin

c := command;

DPpage(D_COMMAND); { write command... }

DPindex(D_COMMAND); { ...to DPRAM }

DPwrite(command);

GetTime(hour, minute, second, sec100);

the_sec100 := sec100;

repeat

DPindex(D_COMMAND); { read command byte }

DPread(c); { from DPRAM }

GetTime(hour, minute, second, sec100);

until ( (sec100 - the_sec100 > 5) OR (c <> command) );

{ end loop, if command byte is changing... }

{ ... or after 500 ms (timeout) }

{ return codes depending on the command byte }

pc2_d.book Seite 44 Dienstag, 9. Februar 1999 12:05 12

Page 45: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

45

if (c = command) then send_cmd := 4

else if (c = $00) then send_cmd := 0

else if (c = $FF) then send_cmd := 1

else send_cmd := 3;

end; { send_cmd }

{ ============================================================= }

{ MAINPROGRAM }

{ ============================================================= }

begin

{ init }

for i:=0 to 15 do

odata[i] := $FF;

{ disable watchdog }

DPpage(D_WDOG_ENA);

DPindex(D_WDOG_ENA);

DPwrite($00);

{ switch to configuration mode }

DPpage(D_DATA); { write something bigger than 0... }

DPindex(D_DATA); { ...to the parameter "data" }

DPwrite($01);

error := send_cmd(C_SET_MODE); { command to set mode }

if error <> 0 then

begin

write('can`t switch to configuration mode.',error);

exit;

end;

{ write new list of projected slaves (LPS) }

DPpage(D_LPS);

DPindex(D_LPS);

for i:=0 to 3 do { write LPS to DPRAM }

DPwrite( lps[i] );

error := send_cmd(C_SET_LPS); { command to update LPS }

if error <> 0 then

begin

write('can`t update LPS.',error);

exit;

end;

{ write new permanent configuration data (PCD) }

DPpage(D_PCD);

DPindex(D_PCD);

for i:=0 to 31 do { write PCD to DPRAM }

DPwrite( pcd[i] );

error := send_cmd(C_SET_PCD); { command to update PCD }

if error <> 0 then

begin

write('can`t update PCD.',error);

exit;

end;

{ write new PP }

DPpage(D_PP);

DPindex(D_PP);

for i:=0 to 15 do { write PP to DPRAM }

DPwrite( pp[i] );

pc2_d.book Seite 45 Dienstag, 9. Februar 1999 12:05 12

Page 46: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

46

error := send_cmd(C_SET_PP); { command to update PP }

if error <> 0 then

begin

write('can`t update PP.',error);

exit;

end;

{ return to protected operation mode }

DPpage(D_DATA); { write 0 to the parameter 'data' }

DPindex(D_DATA);

DPwrite($00);

error := send_cmd(C_SET_MODE); { command to set mode }

if error <> 0 then

begin

write('can`t return to protected operation mode.',error);

exit;

end;

{ wait for normal operation }

DPpage(D_EC_FLAGS);

GetTime(hour, minute, second, sec100);

the_second := second; { store actual time }

repeat { loop until normal operation mode flag gets high }

DPindex(D_EC_FLAGS);

DPread(flags);

GetTime(hour, minute, second, sec100);

{ end program after 2 seconds timeout}

if (second - the_second > 2) then

begin

write ('can`t start normal operation.');

exit;

end;

until ($00 <> (flags AND $20));

{ write projected parameter (PP) to parameter image (PI) }

{ AS-i PC2 board writes PI list only after power up! }

DPpage(D_PI);

DPindex(D_PI);

for i:=0 to 15 do

DPwrite( pp[i] );

{ initialize watchdog }

DPpage(D_WDOG_CNT);

DPindex(D_WDOG_CNT);

DPwrite($0A); { load watchdog counter with 100 ms }

DPpage(D_WDOG_ENA);

DPindex(D_WDOG_ENA);

DPwrite($01); { enable watchdog }

{ communication for ever }

repeat

{ reload watchdog counter with 100 ms }

DPpage(D_WDOG_CNT);

DPindex(D_WDOG_CNT); { index register will be incremented }

DPwrite($0A); { after every read or write access! }

{ read input data from DPRAM }

for i:=0 to 15 do

DPread( idata[i] );

pc2_d.book Seite 46 Dienstag, 9. Februar 1999 12:05 12

Page 47: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

47

{ read execution control flags from DPRAM }

DPread(flags);

{ copy sensor bit of slave 1 to bit 0 of slave 2 }

odata[1] := idata[0] AND $10; { mask sensor bit of sl.1 }

odata[1] := odata[1] shr 4; { shift from sl.3 to sl.2 }

odata[1] := NOT odata[1]; { bitwise negation }

{ write output data to DPRAM }

for i:=0 to 15 do

DPwrite( odata[i] );

{ print data to screen ('shift-' and 'AND-operation' }

{ necessary for right placing on screen!) }

write(' input data (slave 1) = ', idata[0] shr 4);

write(' output data (slave 2)= ', odata[1] AND $0F);

{ print 'config OK' or 'config err' to screen }

if (flags AND $01 = $00) then { mask config flag }

writeln(' config err...')

else

writeln(' config OK... ');

until (1<>1); { communication for ever }

end.

{ END OF PROGRAM }

{ ============================================================= }

10.4.3 Programm zum Überprüfen der I/O-Adressen

/*********************************************************************

*

* error = CheckAsiPc2 (IOport);

*

* description:

* checks, if a AS-i PC2 board is present at the given I/O address

*

* parameters:

* IOport: I/O address of AS-i PC2 to check

*

* returns:

* 0: AS-i PC2 found at IOport

* 1: IOport out of range

* 2: no PC2 found at IOport

* 3: no PC2 found at IOport */

static int CheckAsiPc2 (int IOport)

{

register int i;

static unsigned char TestPad [512];

static char AsiPc2Name = "AS-i PC2";

/* IOport out of range */

if ((0x100 > IOport) || (0x3FF < IOport) || (0 != (0x0003 & IOport)))

return (1);

/* read page 0 */

for (i = 0; sizeof (TestPad) > i; i++)

TestPad [i] = (unsigned char) inp (IOport +O_DATA);

pc2_d.book Seite 47 Dienstag, 9. Februar 1999 12:05 12

Page 48: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-InterfaceAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

48

/* search for name string */

for (i = 0; sizeof (TestPad) > i; i++)

if (0 == strncmp (AsiPc2Name, (char *) (TestPad +i), 8))

break;

/* no name string found */

if (sizeof (TestPad) == i)

return (3);

/* check firmware version identifier */

if ((!isdigit (TestPad [i +64]))

|| (!isdigit (TestPad [i +65]))

|| (!isdigit (TestPad [i +66]))

|| (!isdigit (TestPad [i +67]))

|| (!isdigit (TestPad [i +68]))

|| (!isdigit (TestPad [i +69]))

|| (!isdigit (TestPad [i +70]))

|| (!isdigit (TestPad [i +71])))

return (2);

/* AS-i PC2 found */

return (0);

}

pc2_d.book Seite 48 Dienstag, 9. Februar 1999 12:05 12

Page 49: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-i PC2 KarteAnhang

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

49

pc2_d.book Seite 49 Dienstag, 9. Februar 1999 12:05 12

Page 50: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

AS-Interface

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten. Copyright Pepperl+Fuchs, Printed in Germany

Pepperl+Fuchs GmbH · 68301 Mannheim · Telefon (06 21) 7 76-11 11 · Telefax (06 21) 7 76-10 00 · Internet http://www.pepperl-fuchs.com

Aus

gabe

datu

m 2

7.07

.98

50

pc2_d.book Seite 50 Dienstag, 9. Februar 1999 12:05 12

Page 51: pc2 d.book Seite 1 Dienstag, 9. Februar 1999 12:05 12 ...files.pepperl-fuchs.com/selector_files/navi/... · 10.4.2 Beispiel für die direkte Programmierung der AS-i PC Karte in TURBO-PASCAL

Ein Kern, zwei Profile.Geschäftsbereich

Prozeßautomation

Geschäftsbereich

Fabrikautomation

Produktbereiche

Signal KonditioniererEigensichere InterfacebausteineRemote Prozess InterfaceEigensichere FeldbuslösungenFüllstandssensorenMSR-Anlagenengineeringauf der InterfaceebeneEx-Schulung

Branchen und Partner

ChemieIndustrielle und kommunale AbwassertechnikÖl, Gas und PetrochemieSPS und ProzessleitsystemeIngenieurbüros für Prozessanlagen

Produktbereiche

Binäre und analoge Sensorenin verschiedenen Technologien

Induktive und kapazitive SensorenMagnetsensorenUltraschallsensorenOptoelektronische Sensoren

Inkremental- und Absolutwert-DrehgeberZähler und NachschaltgeräteIdentifikationssystemeAS-Interface

Branchen und Partner

MaschinenbauFördertechnikVerpackungs- und GetränkemaschinenAutomobilindustrie

Zumutbare Änderungen aufgrund technischer Verbesserungen vorbehalten � Copyright PEPPERL+FUCHS � Printed in Germany � Part. No.

Zentrale weltweit

Pepperl+Fuchs GmbH � Königsberger Allee 8768307 Mannheim � DeutschlandTel. (06 21) 7 76-0 � Fax (06 21) 7 76-10 00http://www.pepperl-fuchs.comE-Mail: [email protected]

Ihr direkter Draht in den Vertrieb

Zentrale USA

Pepperl+Fuchs Inc. � 1600 Enterprise ParkwayTwinsburg, Ohio 44087 � Cleveland-USATel. (330) 4 25 35 55 � Fax (330) 4 25 93 85E-Mail: [email protected]

Zentrale Asien

Pepperl+Fuchs Pte Ltd. � P+F Building18 Ayer Rajah Crescent � Singapore 139942Tel. (65) 7 79 90 91 � Fax (65) 8 73 16 37E-Mail: [email protected]

Prozeßautomation Tel. (0621) 776-2222E-Mail: [email protected]

Fabrikautomation Tel. (0621) 776-1111E-Mail: [email protected]

Verfügbarkeit

Weltweiter Vertrieb, Service und Beratung durch kompetente und zuverlässige Pepperl+FuchsMitarbeiter stellen sicher, daß Sie uns erreichen, wann und wo immer Sie uns brauchen. UnsereTochterunternehmen finden Sie in der gesamten Welt.

r

(

52749 01/99 01

pc2_d.book Seite 51 Dienstag, 9. Februar 1999 12:05 12