softwarehandbuch e32gac10000c4hx 3241c backplane-bus apidownload.lenze.com/td/e32gac10000c4hx__3241c...
TRANSCRIPT
SHPIPCBPB.Dv&
Ä.Dv&ä
Softwarehandbuch
Industrial PC
L-force Controller 3241C - Backplane Bus
Programmierschnittstelle I/O-System 1000
L-force Controls
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
Inhalt
2
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.
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
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.
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)
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“.
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.
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)
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)
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
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)
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
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
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.
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
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.
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
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.
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
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
3 API-Funktionen
22
INPUTS OUTPUTS
Abb. 7 Speicherabbild von Eingängen und Ausgängen im Adressraum
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
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.
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
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
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
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
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
© 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