softwarehandbuch e32gac10000c4hx 3241c backplane-bus apidownload.lenze.com/td/e32gac10000c4hx__3241c...

32
SHPIPCBPB .Dv& Ä.Dv&ä Softwarehandbuch Industrial PC L-force Controller 3241C - Backplane Bus Programmierschnittstelle I/O-System 1000 L-force Controls

Upload: others

Post on 05-Nov-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

SHPIPCBPB.Dv&

Ä.Dv&ä

Softwarehandbuch

Industrial PC

L-force Controller 3241C - Backplane Bus

Programmierschnittstelle I/O-System 1000

L-force Controls

Page 2: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der
Page 3: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

Inhalt

1

Inhalt

1 Einführung.............................................................................................. 3

2 Architektur ............................................................................................. 4

3 API-Funktionen ...................................................................................... 5

3.1 Funktionen der Interface-DLL ................................................................................... 5

3.2 Grundfunktionen....................................................................................................... 6

3.2.1 Funktion: BpbOpen ...............................................................................................6

3.2.2 Funktion: BpbClose ...............................................................................................6

3.3 Diagnose-, Servicefunktionen und Netzwerk Management.................................. 7

3.3.1 Diagnose-Funktionen ...........................................................................................7

3.3.2 Service-Funktionen ...............................................................................................9

3.3.3 Netzwerk Management.................................................................................... 10

3.4 Kommunikation ...................................................................................................... 11

3.4.1 SDO Kommunikation......................................................................................... 11

3.4.2 SDO Funktionen.................................................................................................. 12

3.4.3 SDO Indizes .......................................................................................................... 13

3.4.4 SDO Block Struktur............................................................................................. 15

3.4.5 Speicherbedarf für SDO .................................................................................... 17

3.4.6 PDO Kommunikation......................................................................................... 18

3.4.7 PDO Funktionen.................................................................................................. 19

3.4.8 Speicherbedarf für Prozessdaten.................................................................... 20

3.4.9 Beispielkonstellation ......................................................................................... 20

3.5 Zustandsbeschreibung des Rückwandbusses (Statemachine)............................. 23

3.6 Fehler-Codes ............................................................................................................ 23

3.7 I/O Modul-Typen und ihre Datenbreite................................................................. 26

4 Software ...............................................................................................28

4.1 Treiber ...................................................................................................................... 28

4.2 Programmierschnittstelle ....................................................................................... 28

4.3 Include- und Library-Dateien.................................................................................. 28

5 Definitionen, Akronyme und Abkürzungen.......................................29

Page 4: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

Inhalt

2

Page 5: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

Einführung 1

3

1 Einführung

Dieses Handbuch beschreibt die Programmierschnittstelle zum Onboard I/O-System 1000. Die Verbindung zwischen dem L-force Controller 3241 und den I/O-Komplettmodulen erfolgt über einen Rückwandbus. Über eine Interface-DLL (BpbDrvApi.dll) wird die Verbindung der eigenen Applikation an den Rückwandbus-Gerätetreiber (BpbDrvXp.sys) und dem I/O-System ermöglicht.

An den 3241 Controller können bis zu 64 I/O- Komplettmodule angeschaltet werden. Als I/O-Komplettmodule stehen digitale Eingangs/Ausgangs-Module, analoge Module und Zählermodule zur Verfügung. Weitere Informationen finden Sie im Handbuch des I/O-Systems 1000.

Page 6: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

2 Architektur

4

2 Architektur

In der folgenden Abbildung wird die Architektur von Rückwandbus bis zur Applikation detailliert dargestellt.

Abb. 1 Aufbau des Rückwandbus-Treibers

Page 7: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

5

3 API-Funktionen

Die Programmierschnittstelle setzt auf dem Rückwandbus-Gerätetreiber auf und bietet eine Schnittstelle zum Senden/Empfangen von Prozessdaten (PDOs) und Konfigurationsdaten (SDOs).

Mit dieser Schnittstelle wird ein zyklischer Thread aufgesetzt, der die Prozessdaten von/zu den I/O-Modulen kopiert. Die Gruppenbildung für die Kundenapplikations-Schnittstelle ist vereinfacht, so dass es nur eine Gruppe gibt. Diese Gruppe enthält beim Senden alle Ausgangsdaten und beim Empfangen alle Eingangsdaten.

3.1 Funktionen der Interface-DLL

Folgende Funktionen werden bereitgestellt:

Funktion BeschreibungBpbApiOpen Applikation an Applikations-Schnittstelle anmeldenBpbApiClose Applikation an Applikations-Schnittstelle abmeldenBpbApiGetVersion Gibt die Version zurückBpbApiGetStates Status des RWBs auslesenBpbApiResetBpb Führt ein Reset auf dem RWB-Controller ausBpbApiGetError Letzte Fehlermeldung des RWBs lesenBpbApiResetError Setzt den Fehlerspeicher im RWB-Controller zurückBpbApiReadSdo Auslesen des Empfangspuffers BpbApiWriteSdo Schreiben in den SendepufferBpbApiSetOperational Startet den freilaufenden RWB-BetriebBpbApiReadPdo Liest das Prozeßabbild einBpbApiWritePdo Schreibt das Prozeßabbild

Funktionen der Applikationsschnittstelle

Im Weiteren sind die oben aufgeführten Funktionen näher beschrieben.

Page 8: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

6

3.2 Grundfunktionen

Die Grundfunktionen dienen zum Verbindungsaufbau bzw. Verbindungsabbau:

3.2.1 Funktion: BpbOpen

Anmelden an die Hardware des Controllers. Der Rückgabewert ist ein Handle zur Identifikation. Dieses Handle muss für alle weiteren Funktionen als erster Parameter übergeben werden.

Parameter

[in] LPTSTR szAppName Name der anzumeldenden Applikation

[out] PHANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

Rückgabewerte

S_OK Erfolgreich

E_LOADED Fehlerhaft (Treiber nicht geladen)

3.2.2 Funktion: BpbClose

Trennen der Rückwandbus-Verbindung zum 3241 Controller.

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehler beim Verbindungsabbau (Handle ist ungültig)

Page 9: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

7

3.3 Diagnose-, Servicefunktionen und Netzwerk Management

3.3.1 Diagnose-Funktionen

Die Diagnose-Funktionen geben eine Rückmeldung zur Version, zu vorhandenen Fehlern und Zuständen der Rückwandbusse.

Funktion BpbGetVersion

Die Funktion BpbGetVersion liefert die Version des Rückwandbus-Treibers.

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[out] PSTRING pszVersion Version des Rückwandbus-Treibers

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

Funktion BpbGetError

Im Status-Register wird ein Fehlerzustand signalisiert. Dieser enthält ein Byte Fehlercode. Die Funktion BpbGetError liest diesen Fehlercode vom Status-Register des Rückwandbusses aus.

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[out] PUCHAR pbError Fehlercode

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

Eine Beschreibung der Fehlercodes befindet sich im Kapitel „Fehler-Code“.

Page 10: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

8

Funktion BpbGetStates

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[out] PBPBSTATES pBpbStates Pointer auf die States-Struktur

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

Die Stati werden in der Struktur BpbStates zurückgegeben. Nachfolgend ist der Aufbau dieser Struktur wiedergegeben.

Struktur BpbState

Struktur des Status-Registers:

UCHAR hRaw Rohwert des Statusinformation

Name hName Statusinformation des Controllers und der Gruppen

Struktur Name

Struktur des Namens:

Bit 0 .. Bit 1 Controller Status des Controllers

Bit 2 .. Bit 3 Group1 Status der Gruppe 1

Bit 4 .. Bit 5 Group2 Status der Gruppe 2

Bit 6 .. Bit 7 Group3 Status der Gruppe 3

Das Byte ist entsprechend dem Status-Byte des Status-Registers des 3241 Controllers und der konfigurierten I/O-Module aufgeteilt.

Rückgabewerte des Controllers

1 BPB_ CONTROLLER_STATE_INIT

2 BPB_ CONTROLLER_STATE_PREOP

3 BPB_ CONTROLLER_STATE_OP

Rückgabewerte der Gruppe

0 BPB_GROUP_STATE_UNAVAILABLE

1 BPB_GROUP_STATE_INIT

2 BPB_GROUP_STATE_RUNNING

3 BPB_GROUP_STATE_ERROR

Achtung: Unter XP ist die Gruppenbildung für die Programmierschnittstelle vereinfacht, so dass es nur eine Gruppe gibt. Diese Gruppe enthält beim Senden alle Ausgangsdaten und beim Empfangen alle Eingangsdaten.

Page 11: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

9

3.3.2 Service-Funktionen

Die beiden Funktionen BpbResetBpb und BpbResetError dienen zur Fehlerbehebung.

Funktion BpbResetBpb

Die Service-Funktion BpbResetBpb führt ein Reset des Rückwandbusses aus und startet den Rückwandbus-Controller neu.

Hinweis:

Nach einem Reset sollte BpbSetOperational aufgerufen werden, um die zyklische Kommunikation zu starten.

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

Funktion BpbResetError

Die Service-Funktion BpbResetError löscht den Fehlerspeicher im Status-Register.

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

Page 12: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

10

3.3.3 Netzwerk Management

Mit Hilfe der Netzwerk-Management-Funktion BpbSetOperational kann der Zustand des Rückwandbusses zwischen Operational und PreOperational umgeschaltet werden.

Funktion BpbSetOperational

Die Funktion BpbSetOperational führt implizit die Funktion BpbReset aus.

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[in] ULONG ulCycleTime Zykluszeit für internen RWB-Zyklus [μs]

[in] BOOLEAN bOperational Operational = TRUE oder

PreOperational = FALSE

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

Page 13: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

11

3.4 Kommunikation

In diesem Kapitel wird das Senden/Empfangen von Prozessdaten (PDOs) und Konfigurationsdaten (SDOs) beschrieben.

3.4.1 SDO Kommunikation

Konfigurationsdaten (SDOs)

Beim Schreiben der Konfigurationsdaten werden die SDOs direkt in einem Sendepuffer des Treibers abgelegt. Die Zugriffe werden grundsätzlich vom IPC initiiert. Der RWB-Controller reagiert dann entsprechend. Können die SDOs in das entsprechende FIFO des Rückwandbusses geschrieben werden, so werden diese übertragen. Jedem SDO wird vom Treiber eine eindeutige Jobnummer zugeordnet, um Antworten dem Antwort-FIFO zuordnen zu können und in den entsprechenden Empfangspuffer der Applikation abzulegen.

Abb. 2 FIFOs, Puffer und Jobnummern

Antwort-

FIFO

SDO +

Jobnummer

Antwort +

Jobnummer

Senden: SDO

Applikations-Schnittstelle

Empfangen:

Antworten

PCI RWB RWB-Treiber

Sendepuffer

Empfangspuffer

Applikations- Schnittstelle

Empfangs-

FIFO

Page 14: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

12

Ein Konfigurationsparameter eines I/O-Moduls wird im IPC als SDO behandelt und wird dem RWB-Controller über die FIFOs in Form einer Struktur übergeben, die die Daten in einem für DS 401 geeigneten Format enthält. Die Zugriffe des IPCs an den RWB-Controller laufen auf 2 mögliche Arten ab:

IPC RWB-Controller

Schreiben: Schreibanforderung Statusmeldung

Lesen: Leseanforderung Antwort

3.4.2 SDO Funktionen

Funktion BpbReadSdo

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[out] PUCHAR pReadBuffer SDO-Speicherbereich

[in] WORD usBufferSize Größe des Speicherbereichs

[out] PWORD pusActualSdoSize Größe des belegten Speicherbereiches

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

E_MEMORY Fehlerhaft (RWB-Message Speicherbereich übergelaufen)

Funktion BpbWriteSdo

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[in] PUCHAR pWriteBuffer SDO-Speicherbereich

[in] USHORT usBufferSize Größe des Speicherbereichs

[in] USHORT usSdoCount Anzahl der SDOs

[out] PUSHORT pusSdoWritten Anzahl der geschriebenen SDOs

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

E_FIFO Fehlerhaft (Sendepuffer ist übergelaufen)

Page 15: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

13

3.4.3 SDO Indizes

Die nachfolgende Tabelle stellt eine Zusammenfassung möglicher SDO-Telegramme zusammen:

Bezeichnung Index Subindex Beschreibung

DS301

80d

String[14] für Version des Config.-file des RWB-Controllers

Hardware/Firmware Version

1009h

81d String[14] für ID des RWB-Masters

80d String[14] für Version der Nios-SW (build#.major.minor.micro)

Software Version 100A h

81d String[14] für die Master-Version des RWB-Masters

0d Anzahl der Scheiben

Indizes 0-1FFF

Module Identification

1027 h

n Identifikation n. Scheibe (1-64)

hersteller-spezifisch

Modul-Typbezeichnung

2028 h 1d – 40d Liefert String[10] mit der Typen-Bezeichnung der Klemme n zurück.

DS401

Modul-parameter für….

Siehe Dokumentation I/O System 1000

Page 16: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

14

Im Weiteren ist die Identifikation der Module beschrieben:

Modul Wert

DI_2X 0x001

DI_4X 0x003

DI_8X 0x005

DI_4X_3WIRE 0x006

DI_2X_NPN 0x002

DI_4X_NPN 0x004

DI_8X_NPN 0x007

DO_2X 0x101

DO_4X 0x104

DO_8X 0x106

DO_2X_2A 0x102

DO_2X_NPN 0x103

DO_4X_NPN 0x105

DO_8X_NPN 0x107

AI_2X_U 0x401

AI_4X_U 0x404

AI_2X_I 0x402

AI_4X_I 0x405

AO_2X_U 0x501

AO_4X_U 0x503

AO_2X_I 0x502

AO_4X_I 0x504

AI_2X_TC 0x403

AI_4X_R 0x406

CNT_1X_24V 0x991

CNT_1X_5V 0x992

CNT_2X_24V 0x993

CNT_2X_24VEC 0x994

SSI_1X 0x995

Page 17: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

15

3.4.4 SDO Block Struktur

SDO-Speicherbereiches Header 0. DWORDStatusregister 1. DWORD

SDOs2. DWORD

-n. DWORD

(binär Daten, gemäß SDO-Packetformaten)

BpbSdoBlockHeader

Der Aufbau des SDO-Speicherbereiches ergibt sich durch die unterschiedlichen SDO-Paketformate. Folgende Paketformate sind dort definiert:

Schreibanforderung (BpbSdoHeader, BpbWrite) Statusmeldung (BpbSdoHeader)

Leseanforderung (BpbSdoHeader) Antwort (BpbSdoHeader, BpbRead)

Jedes SDO (FIFO-Telegramm) beginnt mit einem Header, der für den IPC und den RWB-Controller gleich ist:

Header

Strukturelement Typ Bits Beschreibung FIFO

Index WORD 16-31 Index des Parameters

Sub-Index BYTE 8-15 Sub-Index des Parameters

Steuerung BYTE 0-7 Bit 7 = 0 (Lesen) / 1 (Schreiben)

Bit 0-6 = Jobnummer

1 DWORD

Der RWB-Controller dekodiert grundsätzlich über den Index und Sub-Index die auszuführende Aktion und erzeugt ggf. ein passendes Kommando für den RWB-Master, dass dieser wiederum an das/die I/O Modul/e sendet. Da ein Telegramm am RWB max. 64 Bytes an Nutzdaten haben darf, sind Datenmengen, die größer sind, ggf. vom IPC in mehrere Einzel-Telegramme zu zerlegen. Nach Abarbeitung sendet der RWB-Controller eine Statusmeldung über das Antwort-FIFO an den IPC. Die Antwort enthält die Jobnummer und ein Byte über den Erfolg der Aktion.

Page 18: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

16

Nachfolgend sind die SDOs für das Schreiben/Lesen und die entsprechende Statusmeldung/Antwort dargestellt:

Schreibanforderung

Strukturelement Typ Bits Beschreibung FIFO

Header 1 DWORD

Wert BYTE 24-31

Wert BYTE 16-23

0. WORD

Anzahl der Werte BYTE 8-15 Angabe der Bytes

(max. 64)

reserviert BYTE 0-7

1 DWORD

Werte WORD 2. WORD

WORD 1. WORD

1 DWORD

WORD 4. WORD

WORD 3. WORD

1 DWORD

WORD 6. WORD

WORD 5. WORD

1 DWORD

Für die Reihenfolge der Werte werden im 2. und allen nachfolgenden DWORD jeweils aufsteigende Byte-Adressen gewählt.

Statusmeldung (Gleich mit der Antwort auf eine Leseanforderung)

Strukturelement Typ Bits Beschreibung FIFO

Header 1 DWORD

reserviert BYTE 24-31

reserviert BYTE 16-23

Anzahl der Werte BYTE 8-15 Angabe der Bytes

(max. 64)

Status BYTE 0-7 Status-Info (0 = OK)

1 DWORD

Leseanforderung

Strukturelement Typ Bits Beschreibung FIFO

Header 1 DWORD

Page 19: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

17

Antwort

Strukturelement Typ Bits Beschreibung FIFO

Header 1 DWORD

Wert BYTE 24-31 2. Wert

Wert BYTE 16-23 1. Wert

Anzahl der Werte BYTE 8-15 Angabe der Bytes

(max. 64)

Status BYTE 0-7 Status-Info (0 = OK)

1 DWORD

Werte ARRAY Weitere zu übertragende Werte n DWORDs

Hinweise:

Alle SDOs sind DWORD aligned abzulegen.

Job wird automatisch vom Treiber ausgefüllt.

3.4.5 Speicherbedarf für SDO

Für SDO gibt es ebenfalls zwei Richtungen:

• L-force Controller schickt Steuerungsdaten/Kommandos zum Rückwandbus-Controller

• Rückwandbus-Controller schickt Steuerungsdaten-/Status-Informationen zum L-force Controller

Für beide Richtungen werden FIFOs als Mailbox verwendet. Die Größe der FIFOs beträgt jeweils 128 Bytes.

Page 20: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

18

3.4.6 PDO Kommunikation

Prozessdaten (PDO)

Um Prozessdaten vom Rückwandbus zu lesen, wird die Funktion BpbReadPdo verwendet, die das Prozesseingangsabbild liest. Das Prozessausgangsabbild kann mit der Funktion BpbWritePdo in den Rückwandbus geschrieben werden. Das Lesen/Schreiben von PDOs ist nur im Operational-Zustand möglich.

Das Lesen/Schreiben der PDOs einer Gruppe wird nur von/zu dem RWB-Controller übertragen, wenn der Gruppen-Zustand „RUNNING“ ist. Während des Gruppen-Zustands „INIT“ werden die Werte als 0 gelesen (direkt im Treiber, nicht aus dem RWB-Controller).

Durch die BpdReadPdo- und BpbWritePdo-Funktionen wird ein PDO-Block mit Header (enthält die Größe der PDOs und das Status-Register) bereitgestellt oder erwartet. Bei dem schreibenden Zugriff wird der Inhalt des Status-Registers ignoriert.

Abb. 3 Lesen/Schreiben des Prozessabbildes

DPRAM

Prozessausgangsabbild

Prozesseingangsabbild

RWB_Read(...) { ... ReadDPRAM() ... }

RWB_Write(...) { ... ReadDPRAM() ... }

PCI RWB-Treiber

Page 21: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

19

3.4.7 PDO Funktionen

Funktion BpbReadPdo

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[out] PUCHAR pReadBuffer PDO-Speicherbereich

[in] WORD usBufferSize Größe des Speicherbereichs

[out] PWORD pusActualPdoSize Größe des belegten Speicherbereichs

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

E_MEMORY Fehlerhaft (RWB-Message Speicherbereich übergelaufen)

Funktion BpbWritePDO

Parameter

[in] HANDLE hOpen Zeiger auf Open-Kontext (Handle) zur Identifikation

[in] PUCHAR pWriteBuffer PDO-Speicherbereich

[in] USHORT usBufferSize Größe des Speicherbereichs

[out] PUSHORT pusSdoWritten Anzahl der geschriebenen PDOs

Rückgabewerte

S_OK Erfolgreich

E_HANDLE Fehlerhaft (Handle ist ungültig)

PDO Block Struktur

Der Aufbau der Prozessdaten ergibt sich durch die Gruppenkonfiguration der I/O Module.

Größe des PDO-Speicherbereiches 0. DWORDStatusregister 1. DWORD

PDOs2. DWORD

-n. DWORD

(binär Daten, gemäß Prozessabbild)

BpbPdoBlockHeader

Nach einem Lese- / oder Schreibzugriff enthält das Statusregister den aktuellen Zustand des RWB und dient nicht zur Statusänderung des RWB.

Page 22: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

20

3.4.8 Speicherbedarf für Prozessdaten

Der Speicherbedarf für Prozessdaten kann über die derzeit verfügbaren Module berechnet werden:

Klemme Prozessabbild konfigurierbar Bytes @64 Knoten

DI,DO 2x 2 bit

Es wird immer 1Byte pro Klemme übertragen

64

DI,DO 4x 4 bit

(1Byte)

64

DI,DO 8x 8 bit

(1Byte)

64

AI,AO 2x12bit 4 Bytes (2x16bit) 256

AI,AO 4x12bit 8 Bytes (4x16bit) 512

Lesen und Schreiben sind bzgl. der maximalen Datenmenge unterschiedlich. Beim Lesen fallen laut Tabelle maximal 1280 Bytes an, beim Schreiben maximal 512 Bytes.

3.4.9 Beispielkonstellation

Zur Veranschaulichung soll die Beispielkonstellation einer willkürlich ausgewählten Kombination von I/O-Komplettmodulen dienen. Es ergibt sich nach erfolgter Adressvergabe folgendes Bild:

Abb. 4 Beispielkonstellation

Page 23: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

21

Der RWB-Controller klassifiziert im nächsten Schritt die ermittelten I/O-Komplettmodule anhand ihrer Slice-ID nach den Kategorien „Eingang“ oder „Ausgang“. In Abhängigkeit von der Slice-ID werden dazu die Anzahl der erforderlichen Bytes im PI anhand einer look-up Tabelle ermittelt. (Eingänge: blau, Ausgänge: grün)

Abb. 5 Einteilen der Scheiben in Eingänge und Ausgänge

Mit den ermittelten Informationen kann das Speichermapping berechnet werden. Für den hier dargestellten Fall lautet die vereinfachte Annahme, dass es nur je 1 Gruppe für alle Ein- und Ausgänge gibt.

Abb. 6 Sortieren der Scheiben und Berechnung des Speichermappings

Page 24: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

22

INPUTS OUTPUTS

Abb. 7 Speicherabbild von Eingängen und Ausgängen im Adressraum

Page 25: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

23

3.5 Zustandsbeschreibung des Rückwandbusses (Statemachine)

Die Einschalt-Prozedur erfolgt im Rückwandbus in mehreren Schritten.

Status Übergang Beschreibung

1. Init Initialisierung der Peripherie Automatischer Übergang in den Zustand PreOperational und Setzen eines Statusbits.

Keine PDO & SDO Kommunikation

2. PreOperational SDO Kommunikation möglich

- Empfang von Konfigurationsdaten für die einzelnen Klemmen

- Warten auf Telegramm „Start“ oder erneutes „Config“ L-force Controller -> RWB-Controller

- Übermitteln der Klemmendaten an IPC

3. Operational

SDO & PDO Kommunikation möglich

3.6 Fehler-Codes

Die Programmierschnittstelle liefert folgende mögliche Fehler-Codes zurück. Fehler werden als Bitmaske zurückgegeben, d.h. es können jeweils mehrere Fehler-Codes miteinander verknüpft sein.

Fehlerliste für das Statusregister

(Error-Byte im Status-Register)

Fehler-Nummer Kategorie Herkunft Beschreibung

Dez Hex

0 0 - - Kein Fehler; Ok

11 B Warning RWB-Controller Synchronisation: Lockregister DPRAM

12 C Warning RWB-Controller Result FIFO full

31 1F Warning RWB-Treiber Synchronisation: Lockregister DPRAM

32 20 Warning RWB-Treiber Timeout: Reset

33 21 Warning RWB-Treiber Timeout: ErrorReset

96 60 Error RWB-Controller Fehler bei Erstellung von Gruppe 1

97 61 Error RWB-Controller Fehler bei Erstellung von Gruppe 2

98 62 Error RWB-Controller Fehler bei Erstellung von Gruppe 3

99 63 Error RWB-Controller Gruppen ok, aber Zykluszeit nicht ausreichend

100 64 Error RWB-Controller Fehler bei der Verarbeitung der Masterqueues

Page 26: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

24

Fehler-Nummer Kategorie Herkunft Beschreibung

Dez Hex

101 65 Error RWB-Controller Controllertimeout bei der Verarbeitung der Masterqueues

102 66 Error RWB-Controller Fehler bei der Initialisierung des Busses ( Fehler bei einer Scheibe)

103 67 Error RWB-Controller Zyklusüberschreitung

104 68 Error RWB-Controller DPRAM Semaphore Timeout von Gruppe 1 (lesend)

105 69 Error RWB-Controller DPRAM Semaphore Timeout von Gruppe 2 (lesend)

106 6A Error RWB-Controller DPRAM Semaphore Timeout von Gruppe 3 (lesend)

107 6B Error RWB-Controller DPRAM Semaphore Timeout von Gruppe 1 (schreibend)

108 6C Error RWB-Controller DPRAM Semaphore Timeout von Gruppe 2 (schreibend)

109 6D Error RWB-Controller DPRAM Semaphore Timeout von Gruppe 3 (schreibend)

116 74 Error RWB-Treiber DPRAM Semaphore Timeout von Gruppe 1 (lesend)

117 75 Error RWB-Treiber DPRAM Semaphore Timeout von Gruppe 2 (lesend)

118 76 Error RWB-Treiber DPRAM Semaphore Timeout von Gruppe 3 (lesend)

119 77 Error RWB-Treiber DPRAM Semaphore Timeout von Gruppe 1 (schreibend)

120 78 Error RWB-Treiber DPRAM Semaphore Timeout von Gruppe 2 (schreibend)

121 79 Error RWB-Treiber DPRAM Semaphore Timeout von Gruppe 3 (schreibend)

181 B5 Fatal Error RWB-Controller Synchronisation: DPRAM

182 B6 Fatal Error RWB-Controller

200 C8 Fatal Error RWB-Controller SDO Timeout

201 C9 Fatal Error RWB-Treiber

220 DC Fatal Error RWB-Treiber SDO Kommunikations Fehler (=> Sperrung des SDO-Verkehrs)

Ein Fatal Error kann nur durch einen Reset des RWB beseitigt werden.

Page 27: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

25

Folgende SDO Fehler können auftreten:

Fehlerliste für den SDO-Status

(Status-Byte im zweiten DWORD der SDO-Antwort)

Fehler-Nummer Beschreibung

Dez Hex

0 0 No error; OK

8 8 Telegram timeout

40 28 Subindex out of range

63 3F Groupnumber out of range

200 C8 SDO Timeout FATAL Error

254 FE Subindex not supported

255 FF Index not supported

160 A0 Read Access on write-only Parameter

161 A1 Write Access on read-only parameter

170 AA Wrong lenght of data

Page 28: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

3 API-Funktionen

26

3.7 I/O Modul-Typen und ihre Datenbreite

In diesem Abschnitt ist eine Liste der verfügbaren I/O Module dargestellt:

Scheibe Beschreibung Datenbreite

Digital−I/O

EPM−S200 2 digitale Eingänge 2 Bit

EPM−S201 4 digitale Eingänge 4 Bit

EPM−S202 8 digitale Eingänge 8 Bit

EPM−S203 4 digitale Eingänge 3−Leiter 8 Bit

EPM−S204 2 digitale Eingänge NPN 2 Bit

EPM−S205 4 digitale Eingänge NPN 4 Bit

EPM−S206 8 digitale Eingänge NPN 8 Bit

EPM−S300 2 digitale Ausgänge 0.5 A 2 Bit

EPM−S301 4 digitale Ausgänge 0.5 A 4 Bit

EPM−S302 8 digitale Ausgänge 0.5 A 8 Bit

EPM−S303 2 digitale Ausgänge 0.5 A NPN 2 Bit

EPM−S304 4 digitale Ausgänge 0.5 A NPN 4 Bit

EPM−S305 8 digitale Ausgänge 0.5 A NPN 8 Bit

EPM−S306 2 digitale Ausgänge 2 A 2 Bit

EPM−S309 4 digitale Ausgänge 2 A 4 Bit

EPM−S308 2 Relais−Ausgänge

Analog−I/O

EPM−S400 2 analoge Eingänge 0 ... 10 V DC 2 x 16 Bit

EPM−S401 4 analoge Eingänge 0 ... 10 V DC 4 x 16 Bit

EPM−S402 2 analoge Eingänge 0/4 ... 20 mA 2 x 16 Bit

EPM−S403 4 analoge Eingänge 0/4 ... 20 mA 4 x 16 Bit

EPM−S500 2 analoge Ausgänge 0 ... 10 V DC 2 x 16 Bit

EPM−S501 4 analoge Ausgänge 0 ... 10 V DC 4 x 16 Bit

EPM−S502 2 analoge Ausgänge 0/4 ... 20 mA 2x 16 Bit

EPM−S503 4 analoge Ausgänge 0/4 ... 20 mA 4 x 16 Bit

Temperaturmessung

EPM−S404 4(2) analoge Eingänge Widerstand 4(2) x 16 Bit

EPM−S405 2 analoge Eingänge Thermoelement

2 x 16 Bit

Page 29: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

API-Funktionen 3

27

Scheibe Beschreibung Datenbreite

Zähler

EPM−S600 1 Zähler 32 Bit, 24 V DC (Lesen, Setzen, Vergleichen)

12 Byte Input/10 Byte Output

EPM−S601 2 Zähler 32 Bit, 24 V DC (Lesen, Setzen)

12 Byte Input/12 Byte Output

EPM−S602 1 Zähler 32 Bit, 5 V DC (Lesen, Setzen)

8 Byte Input/10 Byte Output

EPM−S603 2 Zähler 32 Bit, 24 V DC (Lesen) 12 Byte Input/4 Byte Output

Geberauswertung

EPM−S604 SSI 6 Byte Input

Page 30: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

4 Software

28

4 Software

Auflistung der für die eigene Applikation notwendigen Software:

4.1 Treiber

Name Beschreibung Verzeichnis

BpbDrvXp.sys Rückwandbus-Treiber für den Rückwandbus

..\Windows\System32\Drivers\

BpbDrvXp.inf Rückwandbus-Treiber Installations-Routine

..\Windows\Inf\

WdfCoInstaller01007.dll KDMF Framework ..\Windows\System32\

Der Treiber ist im WES2009 für den 3241 Controller vorinstalliert

4.2 Programmierschnittstelle

Name Beschreibung Verzeichnis

BpbDrvApi.dll

Programmierschnittstelle für den Zugriff auf den Rückwandbus über den Rückwandbus-Treiber

..\Windows\System32\

Der Programmierschnittstelle ist im WES2009 für den 3241 Controller vorinstalliert.

4.3 Include- und Library-Dateien

Folgende Include- und Library-Dateien sind in die eigene C++ Applikation einzubinden:

Include-Dateien

Name Beschreibung

BpbDrv.h Header-Datei der verwendeten Strukturen und Definitionen

BpbDrvApi.h Header-Datei der Makro Definitionen der vom Rückwandbus-Treiber zur Verfügung gestellten Funktionen

BpbError.h Header-Datei der Error Definitionen

Library-Dateien

Name Beschreibung

BpbDrvApi.lib Bibliothek der Programmierschnittstelle für den Zugriff auf den Rückwandbus über den Rückwandbus-Treiber

Beispielapplikation

Name Beschreibung

BpbApiSample C++ Beispielapplikation zur Anbindung an das I/O-System 1000 unter Verwendung aller zur Verfügung gestellter Funktionen

Page 31: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

Definitionen, Akronyme und Abkürzungen 5

29

5 Definitionen, Akronyme und Abkürzungen

Folgende Abkürzungen sind für das Verständnis dieses Dokumentes relevant:

• IPC Industrie-PC

• RWB Rückwandbus

• SDO Service Daten Objekt

• PDO Prozess Daten Objekt

• DS401 CanOpen Profil für “generic IO Moduls”

• DPRAM Dual Ported RAM

• DWORD 32-Bit Datum

• WORD 16-Bit Datum

• BYTE 8-Bit Datum

• PCI Peripheral Component Interconnection

• DI Digital In

• DO Digital Out

• AI Analog In

• AO Analog Out

• API Application Programming Interface

• DLL Dynamic Link Library

• LIB Library

• SYS System -Treiber

• BPB Backplane Bus

Page 32: Softwarehandbuch E32GAC10000C4Hx 3241C Backplane-Bus APIdownload.lenze.com/TD/E32GAC10000C4Hx__3241C Backplane... · 2020. 2. 19. · 2028 h 1d – 40d Liefert String[10] mit der

© 11/2010

Lenze Automation GmbHHans-Lenze-Str. 1D-31855 AerzenGermany

Service Lenze Service GmbHBreslauer Straße 3D-32699 ExtertalGermany

+49 (0)51 54 / 82-0 00 80 00 / 24 4 68 77 (24 h helpline)

+49 (0)51 54 / 82 - 28 00 +49 (0)51 54 / 82-11 12

[email protected] [email protected]

www.Lenze.com

SHPIPCBPB .Dv& DE 1.0 TD29

10 9 8 7 6 5 4 3 2 1