PCAN-Light Dokumentation

, 16:28 Uhr

PCAN-Light Dokumentation

PCAN-Dongle

PCAN-Dongle Pro

PCAN-ISA

PCAN-PC/104

PCAN-PCI

PCAN-PCI Express

PCAN-PC/104-Plus

PCAN-USB

PCAN-PC Card

Einführung

Referenz

Zusätzliche Informationen

Letzte Aktualisierung: 19.08.2008

Feedback zur Dokumentation senden.


Einführung

Einführung

Willkommen in der Dokumentation zu PCAN-Light.

Das PCAN-System der Firma PEAK-System Technik GmbH besteht aus einer Sammlung von Windows Geräte-Treibern, die für die Echtzeit-Anbindung von Windows-Applikationen an alle am PC angeschlossenen CAN-Busse sorgen.

PCAN-Light ist eine einfache Programmier-Schnittstelle zum PCAN-System. Über verschiedene Interface-DLLs wird die Verbindung eigener Applikationen an die Gerätetreiber und die PCAN-Hardware ermöglicht, um eine CAN-Kommunikation zu betreiben.

PCAN-Light Grundlagen

Einführung in das PCAN-Light-System.

Grundlagen zu PCAN-Light Anwendungsprogrammen

Verbinden und Arbeiten mit einem PCAN-Light Anwendung.

Treiber und API-Funktionen

Übersicht über die gängige PCAN-Hardware, den zugehörigen Treibern, den Interface-DLLs und den API-Funktionen.

Lizenbestimmungen

Enthält die Lizenzbestimmungen bezüglich dieser Software.

Kontakt-Information

Kontakt-Informationen zur Firma PEAK-System Technik GmbH.

Feedback zur Dokumentation senden.


PCAN-Light Grundlagen

PCAN-Light ist die kleine API-Variante zu PCAN. Es ermöglicht ein schnelles und umfassendes Arbeiten mit dem CAN-Bussystem. Die Verbindung zwischen Anwendungsprogrammen und der PCAN-Hardware wird durch den entsprechenden Gerätetreiber und passende Interface-DLLs hergestellt. Die nachstehende Abbildung gibt einen kurzen Überblick.

Folgende Zusammenhänge bestehen zwischen einem PCAN-Light Anwendungsprogramm und der PCAN-Hardware:

  • Ein PCAN-Light Programm ist zu jedem Zeitpunkt immer nur einer Hardware zugeordnet. Es ist nicht möglich sich mit zwei verschiedenen Hardware-Typen gleichzeitig zu verbinden.

  • Liegt eine mehrkanalige Hardware vor, so wird jeder Kanal wie eine gesonderte Hardware behandelt.

  • Sendet ein PCAN-Light Programm, wird die Nachricht umgehend über die PCAN-Hardware auf den externen Bus gegeben.

  • Ist eine PCAN-Hardware mit einer PCAN-Light Programm verbunden, so kann kein weiteres PCAN-Light Programm auf die selbe Hardware zugreifen.

  • Jedes PCAN-Light-Programm empfängt nur Nachrichten, die seinen Nachrichtenfilter (Akzeptanzfilter) passieren.

  • Jede Hardware hat eine Empfangs-Queue.

Serielles und paralleles arbeiten mit mehrkanaliger PCAN-Hardware

Möchte man bei einer mehrkanaligen PCAN-Hardware mehrere Kanäle auf einmal nutzen (paralleles Arbeiten), so wird für jeden Kanal ein Client benötigt. Möchte man mehrere Kanäle über einen Client laufen lassen, so muß immer zwischen den Kanälen hin- und hergeschaltet werden (serielles Arbeiten). Umschalten bedeutet Schließen des einen Kanals (Hardware), Initialisierung des neuen Kanals und einer eventuellen Filteranpassung.

Siehe auch

PCAN-Grundlagen

Grundlagen zu PCAN-Light Anwendungsprogrammen

Feedback zur Dokumentation senden.


Grundlagen zu PCAN-Light Anwendungsprogrammen

Im folgenden wird der schematische Arbeitszyklus mit einer PCAN-Light Anwendung dargestellt:

Schematischer Arbeitsablauf

  1. Starten
    Es gibt zwei Möglichkeiten, den Client anzuschließen:

    1. Starten mit Nicht-Plug&Play Hardware
      Die PCAN-Light Software wird mit Hilfe der Funktion Init, für Nicht-Plug&Play-Hardware, angemeldet und verbunden.

    2. Starten mit Plug&Play Hardware
      Die PCAN-Light Software wird mit Hilfe der Funktion Init, für Plug&Play-Hardware, angemeldet und verbunden.

  2. Arbeiten
    Nach einem geglückten Start, kann zum Beispiel der Nachrichtenfilter nach eigenen Vorstellungen angepasst oder Nachrichten gelesen oder auch geschrieben werden. Der Umfang der Möglichkeiten bestimmen die Basisfunktionen und die möglichen Zusatzfunktionen eines Hardware-Typs.

  3. Beenden
    Mit einem Close Funktionsaufruf wird die Verbindung von Software und PCAN-Hardware getrennt.

Arbeitsablauf bei mehrkanaliger PCAN-Hardware

Bei einer PCAN-Hardware mit mehreren Kanälen wird jeder Kanal über eine eigene DLL angesprochen. Im folgenden ist ein schematischer Arbeitszyklus für eine mehrkanalige PCAN-Hardware dargestellt:

Feedback zur Dokumentation senden.


Treiber und API-Funktionen

PCAN-Light ist eine Treibersammlung. Um mit den Treibern zu kommunizieren, gibt es zu jedem Treiber ein oder mehreren Interface DLLs, welche die API-Funktionen zur Verfügung stellen.

Übersicht über die verschiedenen Hardware-Typen, die zugehörigen Treiber und Interface-DLLs
Hardware | Plug&Play-Hardware | Treiber | Interface-DLL
PCAN-Dongle | Nein | Pcan_dng.sys | Pcan_dng.dll
PCAN-Dongle Pro | Nein | Pcan_dnp.sys | Pcan_dnp.dll
PCAN-ISA | Nein | Pcan_isa.sys | Pcan_isa.dll Pcan_2isa.dll (2. Kanal)
PCAN-PC/104 | Nein | Pcan_isa.sys | Pcan_isa.dll Pcan_2isa.dll (2. Kanal)
PCAN-PCI | Ja | Pcan_pci.sys | Pcan_pci.dll Pcan_2pci.dll (2. Kanal)
PCAN-PCI Express | Ja | Pcan_pci.sys | Pcan_pci.dll Pcan_2pci.dll (2. Kanal)
PCAN-PC/104-Plus | Ja | Pcan_pci.sys | Pcan_pci.dll Pcan_2pci.dll (2. Kanal)
PCAN-USB | Ja | Pcan_usb.sys | Pcan_usb.dll Pcan_2usb.dll (2. Adapter)
PCAN-PC Card | Ja | Pcan_pcc.sys | Pcan_pcc.dll Pcan_2pcc.dll (2. Kanal)
Übersicht über die Standard API-Funktionen

API-Funktion

Init für Nicht-Plug&Play-Hardware,

Init für Plug&Play-Hardware,

Close,

Write,

Read,

Status,

VersionInfo,

MsgFilter,

ResetFilter,

ResetClient

Neben den Basisfunktionen kann es für verschiedene Hardware-Typen auch Zusatzfunktionen geben. Hier geht es zur ausführlichen Übersicht der API-Funktionen.

Feedback zur Dokumentation senden.


Lizenzbestimmungen

Die im Handbuch verwendeten Bezeichnungen für Erzeugnisse, die zugleich ein eingetragenes Warenzeichen darstellen, wurden nicht gesondert gekennzeichnet. Das Fehlen der ® Markierung ist demzufolge nicht gleichbedeutend mit der Tatsache, dass die Bezeichnung als freier Warenname gilt. Ebensowenig kann anhand der verwendeten Bezeichnung auf eventuell vorliegende Patente oder einen Gebrauchsmusterschutz geschlossen werden. Es sei ausdrücklich darauf verwiesen, dass die Firma PEAK-System Technik GmbH weder eine Garantie noch die juristische Verantwortung oder irgendeine Haftung für Folgeschäden übernimmt, die auf den Gebrauch der beiliegenden Software oder den Inhalt dieses Handbuches zurückzuführen sind. Die in diesem Handbuch enthaltenen Angaben können ohne vorherige Ankündigung geändert werden. Die Firma PEAK-System Technik GmbH geht damit keinerlei Verpflichtungen ein.

Copyright © 2000-2008 PEAK-System Technik GmbH

Alle Rechte vorbehalten.

Kein Teil dieses Hilfetextes darf in irgendeiner Form ohne schriftliche Genehmigung der Firma PEAK-System Technik GmbH unter Einsatz entsprechender Systeme reproduziert, verarbeitet, vervielfältigt oder verbreitet werden.

Siehe auch

Kontakt-Information

Feedback zur Dokumentation senden.


Kontakt-Information

Diese Software ist ein Produkt von:

PEAK-System Technik GmbH

Otto-Röhm-Str. 69

D-64293 Darmstadt

Info: | info@peak-system.com
Support: | support@peak-system.com
Web: | www.peak-system.com

Feedback zur Dokumentation senden.


Referenz

Referenz

Dieser Abschnitt enthält Informationen über Funktionen, Strukturen, Baudraten-Codes und Fehler-Codes der PCAN-Light-API.

Funktionen

Auflistung und Verweise zu den einzelnen Funktionen.

Strukturen

Auflistung definierter Strukturen.

Baudratencodes

Auflistung der vordefinierten Baudraten.

Fehlercodes

Mögliche Fehlercodes, die von den PCAN-Light-Funktionen zurückgegeben werden.

Feedback zur Dokumentation senden..


Übersicht der API-Funktionen

PCAN-Light stellt dem Entwickler die folgenden API-Funktionen für verschiedene Programmiersprachen zur Verfügung.

Basisfunktionen für alle Hardware-Typen
Funktion | Beschreibung
Init für Nicht-Plug&Play-Hardware, Init für Plug&Play-Hardware | Initialisiert eine PCAN-Hardware, setzt die Baudrate.
Close | Schließt eine zuvor initialisierte PCAN-Hardware.
Write | Sendet eine CAN-Botschaft.
Read | Liest eine CAN-Botschaft aus der Empfangs-Queue.
Status | Ermittelt den aktuellen Status einer PCAN-Hardware.
VersionInfo | Liest Informationen über den Treiber, dessen Version und Copyright aus dem Treiber.
ResetClient | Löscht die Sende- und Empfangs-Queue des Clients, ohne einen Reset des CAN-Controllers auszulösen.
MsgFilter | Konfiguriert den Empfangsfilter.
ResetFilter | Schließt den Empfangsfilter. Es werden keine Nachrichten mehr empfangen.
Zusatzfunktionen für PCAN-USB
Funktion | Beschreibung
SetUSBDeviceNr | Setzt die USB-Gerätenummer.
SetUSB2DeviceNr | Setzt die USB-Gerätenummer eines zweiten PCAN-USB-Adapters.
GetUSBDeviceNr | Fragt die USB-Gerätenummer ab.
GetUSB2DeviceNr | Fragt die USB-Gerätenummer eines zweiten PCAN-USB-Adapters ab.
Hinweis:

Für mehrkanalige PCAN-Hardware gibt es für jeden Kanal eine eigene Funktionsbibliothek. Der Funktionsumfang, sowie die Parameteranzahl und Parameterinhalte bleiben dabei identisch. Die Funktionsnamen unterscheiden sich je nach angesprochenem Kanal.

Beispiel:

2-kanalige PCI-Karte, Funktion „CAN_Write“:

Verwendete Bibliotheken:

  • Bibliothek für Kanal 1: pcan_pci.dll

  • Bibliothek für Kanal 2: pcan_2pci.dll

Funktionsbezeichnung unter Visual Basic 6, Delphi und C/C++:

  • Funktionsname für ersten Kanal: CAN_Write

  • Funktionsname für zweiten Kanal: CAN2_Write

Funktionsbezeichnung unter C#, Visual Basic .NET und C++ CLR:

  • Methodenname für den ersten Kanal: PCAN_PCI.Write

  • Methodenname für den zweiten Kanal: PCAN_2PCI.Write


Funktion Close

Schließt eine zuvor initialisierte PCAN-Hardware.

Syntax

Visual Basic 6

Declare Function CAN_Close Lib "HWTypDLL" () As Long

Delphi

function CAN_Close(): Longword; stdcall;

C / C++

DWORD __stdcall CAN_Close();

C#

public static extern uint Close();

Visual Basic .NET

Public Shared Function Close() As Integer

End Function

C++ CLR

static unsigned int Close();

Rückgabewerte

CAN_ERR_OK, CAN_ERR_NOVXD

Siehe auch

Funktion Init (Nicht-Plug&Play-Hardware)

Funktion Init (Plug&Play-Hardware)


Funktion Init (Nicht-Plug&Play-Hardware)

Initialisiert eine Nicht-Plug&Play-Hardware.

Syntax

Visual Basic 6

Declare Function CAN_Init Lib "HWTypDLL" ( _

ByVal wBTR0BTR1 As Integer, _

ByVal CANMsgType As Long, _

ByVal CANHwType As Long, _

ByVal IO_Port As Long, _

ByVal Interrupt As Integer _

) As Long

Delphi

function CAN_Init(

wBTR0BTR1: Word;

CANMsgType: Integer;

CANHwType: Integer;

IO_Port: Longword;

Interrupt: Word

): Longword; stdcall;

C / C++

DWORD __stdcall CAN_Init(

WORD wBTR0BTR1,

int CANMsgType,

int CANHwType,

DWORD IO_Port,

WORD Interrupt

);

C#

public static extern uint Init(

ushort wBTR0BTR1,

int CANMsgType,

int CANHwType,

uint IO_Port,

ushort Interrupt

);

Visual Basic .NET

Public Shared Function Init( _

ByVal wBTR0BTR1 As Short, _

ByVal CANMsgType As Integer, _

ByVal CANHwType As Integer, _

ByVal IO_Port As Integer, _

ByVal Interrupt As Short) As Integer

End Function

C++ CLR

static unsigned int Init(

unsigned short wBTR0BTR1,

int CANMsgType,

int CANHwType,

unsigned int IO_Port,

unsigned short Interrupt

);

Parameter

BTR0BTR1

[In] Initialisierung der Baudrate. Gültige Baudraten-Codes können aus der Baudraten-Tabelle entnommen werden.

CANMsgType

[In] Definiert die Größe der CAN-ID. Die ID einer CAN-Botschaft kann 11 Bit oder 29 Bit lang sein.

Bezeichnung | Wert | Beschreibung
CAN_INIT_TYPE_ST | 0 | 11-Bit ID Betrieb - Standard Frame
CAN_INIT_TYPE_EX | 1 | 29-Bit ID Betrieb - Extended Frame

CANHwType

[In] Art der Hardware.

Übersicht über bestehende Hardware-Varianten:

Hardware und Modus | Konstante | Wert | Beschreibung
ISA | HW_ISA | 1 | PCAN-ISA, PCAN-PC/104
Dongle | HW_DONGLE | 2 | Alle PCAN-Dongle mit einem 82C200
Dongle EPP | HW_DONGLE_EPP | 3 | Alle PCAN-Dongle mit einem 82C200 im EPP-Modus
Dongle SJA | HW_DONGLE_SJA | 5 | Alle PCAN-Dongle mit einem SJA1000
Dongle SJA EPP | HW_DONGLE_SJA_EPP | 6 | Alle PCAN-Dongle mit einem SJA1000 im EPP-Modus
Dongle-Pro | HW_DONGLE_PRO | 7 | PCAN-Dongle Pro
Dongle-Pro EPP | HW_DONGLE_PRO_EPP | 8 | PCAN-Dongle Pro im EPP-Modus
ISA SJA | HW_ISA_SJA | 9 | PCAN-ISA oder PCAN-PC/104 mit einem SJA1000

IO_Port

[In] E/A-Adresse für den Parallelport. Die entsprechende E/A-Adresse kann dem BIOS des jeweiligen PC's entnommen werden.

Interrupt

[In] Interrupt für den Parallelport. Die entsprechende Interrupt-Nummer kann dem BIOS des jeweiligen PC's entnommen werden.

Rückgabewerte

CAN_ERR_OK, CAN_ERR_ILLHW, CAN_ERR_NOVXD, CAN_ERR_REGTEST, CAN_ERR_RESOURCE

Siehe auch

Funktion Close


Funktion Init (Plug&Play-Hardware)

Initialisiert eine Plug&Play-Hardware.

Syntax

Visual Basic 6

Declare Function CAN_Init Lib "HWTypDLL" ( _

ByVal wBTR0BTR1 As Integer, _

ByVal CANMsgType As Long _

) As Long

Delphi

function CAN_Init(

wBTR0BTR1: Word;

CANMsgType: Integer

): Longword; stdcall;

C / C++

DWORD __stdcall CAN_Init(

WORD wBTR0BTR1,

int CANMsgType

);

C#

public static extern uint Init(

ushort wBTR0BTR1,

int CANMsgType

);

Visual Basic .NET

Public Shared Function Init( _

ByVal wBTR0BTR1 As Short, _

ByVal CANMsgType As Integer) As Integer

End Function

C++ CLR

static unsigned int Init(

unsigned short wBTR0BTR1,

int CANMsgType

);

Parameter

BTR0BTR1

[In] Initialisierung der Baudrate. Gültige Baudraten-Codes können aus der Baudraten-Tabelle entnommen werden.

CANMsgType

[In] Definiert die Größe der CAN-ID. Die ID einer CAN-Nachricht kann 11 Bit oder 29 Bit lang sein.

Bezeichnung | Wert | Beschreibung
CAN_INIT_TYPE_ST | 0 | 11-Bit ID Betrieb - Standard Frame
CAN_INIT_TYPE_EX | 1 | 29-Bit ID Betrieb - Extended Frame
Rückgabewerte

CAN_ERR_OK, CAN_ERR_ILLHW, CAN_ERR_NOVXD, CAN_ERR_REGTEST, CAN_ERR_RESOURCE

Siehe auch

Funktion Close


Funktion MsgFilter

Konfiguriert den Empfangsfilter.

Syntax

Visual Basic 6

Declare Function CAN_MsgFilter Lib "HWTypDLL" ( _

ByVal FromID As Long, _

ByVal ToID As Long, _

ByVal CANMsgType As Long _

) As Long

Delphi

function CAN_MsgFilter(

FromID: Longword;

ToID: Longword;

CANMsgType: Integer

): Longword; stdcall;

C / C++

DWORD __stdcall CAN_MsgFilter(

DWORD FromID,

DWORD ToID,

int CANMsgType

);

C#

public static extern uint MsgFilter(

uint FromID,

uint ToID,

int CANMsgType

);

Visual Basic .NET

Public Shared Function MsgFilter( _

ByVal FromID As Integer, _

ByVal ToID As Integer, _

ByVal CANMsgType As Integer) As Integer

End Function

C++ CLR

static unsigned int MsgFilter(

unsigned int FromID,

unsigned int ToID,

int CANMsgType

);

Parameter

FromID

[In] Kleinste CAN-ID, die empfangen werden soll.

ToID

[In] Größte CAN-ID, die empfangen werden soll.

CANMsgType

[In] Nachrichtentyp, Standard (11 Bit CAN-ID) oder Extended (29 Bit CAN-ID), der gefiltert werden soll. Hier sollten die Parameter MSGTYPE_STANDARD und MSGTYPE_EXTENDED verwendet werden.

Rückgabewerte

CAN_ERR_ILLCLIENT, CAN_ERR_ILLNET,CAN_ERR_OK, CAN_ERR_NOVXD, CAN_ERR_REGTEST

Bemerkungen

Es muß darauf geachtet werden, dass FromID kleiner oder gleich ToID ist.

Ein Aufruf von MsgFilter kann den Empfangsfilter nur erweitern, nicht aber verkleinern. Wenn der Filterbereich verkleinert werden soll, muss zuerst ResetFilter aufgerufen, und danach mit MsgFilter der neue Filterbereich konfiguriert werden.

Wenn ein Aufruf von MsgFilter eine Erweiterung des Empfangsfilters bewirkt, muss der betroffene CAN-Controller kurzzeitig in den Reset-Zustand gehen. Dadurch können andere Anwendungen beeinflusst werden, die mit der selben PCAN Hardware kommunizieren.

Beispiele zur Filtereigenschaft

Filterbereich und Nachrichtentyp | CAN-ID und Nachrichtentyp einer zu filternden Nachricht | Filterergebnis
5C0h - 5FFh, MSGTYPE_STANDARD | 5BFh, MSGTYPE_STANDARD | Nachricht wird NICHT in die Empfangs-Queue der Anwendung geschrieben.
5C0h - 5FFh, MSGTYPE_STANDARD | 5C0h, MSGTYPE_STANDARD | Nachricht kommt in die Empfangs-Queue der Anwendung.
5C0h - 5FFh, MSGTYPE_EXTENDED | 5BFh, MSGTYPE_STANDARD | Nachricht kommt in die Empfangs-Queue der Anwendung.
5C0h - 5FFh, MSGTYPE_EXTENDED | 5C0h, MSGTYPE_STANDARD | Nachricht kommt in die Empfangs-Queue der Anwendung.
5C0h - 5FFh, MSGTYPE_EXTENDED | 5BFh, MSGTYPE_EXTENDED | Nachricht wird NICHT in die Empfangs-Queue der Anwendung geschrieben.
5C0h - 5FFh, MSGTYPE_EXTENDED | 5C0h, MSGTYPE_EXTENDED | Nachricht kommt in die Empfangs-Queue der Anwendung.

Anmerkung: Standard Frames belegen die Bits 28 bis 18 in den Akzeptanz-Maske/Code-Registern des SJA1000 CAN-Controllers. Hardwaretreiber für den 82C200 CAN-Controller müssen das auf die Bitpositionen 10 bis 0 verschieben.


Funktion Read

Liest eine CAN-Botschaft aus der Empfangs-Queue.

Syntax

Visual Basic 6

Declare Function CAN_Read Lib "HWTypDLL" ( _

ByRef MsgBuff As TPCANMsg _

) As Long

Delphi

function CAN_Read(

var MsgBuff: TPCANMsg

): Longword; stdcall;

C / C++

DWORD __stdcall CAN_Read(

TPCANMsg* MsgBuff

);

C#

public static extern uint Read(

out TPCANMsg MsgBuff

);

Visual Basic .NET

Public Shared Function Read( _

ByRef MsgBuff As TPCANMsg ) As Integer

End Function

C++ CLR

static unsigned int Read(

TPCANMsg %MsgBuff

);

Parameter

MsgBuff

[Out] Rückgabe der CAN-Nachricht/Statusmeldung aus der Empfangs-Queue.

Rückgabewerte

CAN_ERR_OK, CAN_ERR_NOVXD, CAN_ERR_QRCVEMPTY

Bemerkungen

Read gibt die nächste CAN-Botschaft oder die nächste Statusmeldung aus der Empfangs-Queue der Anwendung zurück. Die gelesene CAN-Botschaft wird nach 'MsgBuff' geschrieben. Der Botschaftstyp (siehe Feld TPCANMsg.MSGTYPE) einer CAN-Botschaft gibt an, ob es sich um eine 11-Bit, 29-Bit, RTR- oder Statusbotschaft handelt, und sollte nach dem erfolgreichen Lesen einer CAN-Botschaft immer abgefragt werden.

Ist im Feld TPCANMsg.SGTYPE das Bit MSGTYPE_STATUS gesetzt, ist die gelesene CAN-Botschaft keine Daten-Botschaft, sondern eine Statusmeldung. CAN-ID und Längencode einer solchen Statusmeldung dürfen nicht ausgewertet werden (sie enthalten undefinierte Werte). Die eigentliche Information über den Fehler lassen sich aus den ersten 4 Datenbytes der Nachricht herauslesen, wobei sich das MSB in Datenbyte 0 befindet, und das LSB in Datenbyte 3.

Beispiele:

Data0 | Data1 | Data2 | Data3 | Fehler | Fehlercode | Beschreibung
00h | 00h | 00h | 02h | CAN_ERR_OVERRUN | 0002h | CAN-Controller wurde zu spät gelesen.
00h | 00h | 00h | 04h | CAN_ERR_BUSLIGHT | 0004h | Busfehler: Fehlerzähler erreichte 'Light'-Limit.
00h | 00h | 00h | 08h | CAN_ERR_BUSHEAVY | 0008h | Busfehler: Fehlerzähler erreichte 'Heavy'-Limit.
00h | 00h | 00h | 10h | CAN_ERR_BUSOFF | 0010h | Busfehler: CAN_Controller ging 'Bus-Off'.

Hinweis:

Beim Empfangen einer BUSOFF-Statusmeldung ist der CAN-Controller mit der Funktion Init neu zu initialisieren, weil sonst keine Botschaften mehr gesendet werden können!

Siehe auch

Funktion Write


Funktion ResetClient

Löscht die Sende- und Empfangs-Queue des Clients, ohne einen Reset des CAN-Controllers auszulösen.

Syntax

Visual Basic 6

Declare Function CAN_ResetClient Lib "HWTypDLL" () As Long

Delphi

function CAN_ResetClient(): Longword; stdcall;

C / C++

DWORD __stdcall CAN_ResetClient();

C#

public static extern uint ResetClient();

Visual Basic .NET

Public Shared Function ResetClient() As Integer

End Function

C++ CLR

static unsigned int ResetClient();

Rückgabewerte

CAN_ERR_ILLCLIENT ,CAN_ERR_OK, CAN_ERR_NOVXD


Funktion ResetFilter

Schließt den Empfangsfilter. Es werden keine Nachrichten mehr empfangen.

Syntax

Visual Basic 6

Declare Function CAN_ResetFilter Lib "HWTypDLL" () As Long

Delphi

function CAN_ResetFilter(): Longword; stdcall;

C / C++

DWORD __stdcall CAN_ResetFilter();

C#

public static extern uint ResetFilter();

Visual Basic .NET

Public Shared Function ResetFilter() As Integer

End Function

C++ CLR

static unsigned int ResetFilter();

Rückgabewerte

CAN_ERR_OK, CAN_ERR_NOVXD

Siehe auch

Funktion MsgFilter


Funktion Status

Ermittelt den aktuellen Status einer PCAN-Hardware.

Syntax

Visual Basic 6

Declare Function CAN_Status Lib "HWTypDLL" () As Long

Delphi

function CAN_Status(): Longword; stdcall;

C / C++

DWORD __stdcall CAN_Status();

C#

public static extern uint Status();

Visual Basic .NET

Public Shared Function Status() As Integer

End Function

C++ CLR

static unsigned int Status();

Rückgabewerte

CAN_ERR_OK, CAN_ERR_BUSHEAVY, CAN_ERR_BUSOFF, CAN_ERR_NOVXD, CAN_ERR_OVERRUN


Funktion VersionInfo

Liest Informationen über den Treiber, dessen Version und Copyright aus dem Treiber.

Syntax

Visual Basic 6

Declare Function CAN_VersionInfo Lib "HWTypDLL" ( _

ByVal TextBuff As String _

) As Long

Delphi

function CAN_VersionInfo(

TextBuff: PChar

): Longword; stdcall;

C / C++

DWORD __stdcall CAN_VersionInfo(

LPSTR TextBuff

);

C#

public static extern uint VersionInfo(

StringBuilder TextBuff

);

Visual Basic .NET

Public Shared Function VersionInfo( _

ByVal TextBuff As StringBuilder) As Integer

End Function

C++ CLR

static unsigned int VersionInfo(

StringBuilder^ TextBuff

);

Parameter

TextBuff

[Out] Zeiger bzw. Referenz auf einen Textpuffer, der die Versions- und Copyrightinformation des Treibers aufnimmt. Der zurückgegebene Text hat eine maximale Länge von 255 Zeichen.

Bei Verwendung eines PCAN-USB-Adapters der Interface-DLL Pcan_usb.dll ab Version 1.45.0.0 wird zusätzlich noch die Firmware-Version der aktiven PCAN-USB Hardware im Informationstext ausgegeben.

Rückgabewerte

CAN_ERR_OK, CAN_ERR_NOVXD


Funktion Write

Sendet eine CAN-Botschaft.

Syntax

Visual Basic 6

Declare Function CAN_Write Lib "HWTypDLL" ( _

ByRef MsgBuff As TPCANMsg _

) As Long

Delphi

function CAN_Write(

var MsgBuff: TPCANMsg

): Longword; stdcall;

C / C++

DWORD __stdcall CAN_Write(

TPCANMsg* MsgBuff

);

C#

public static extern uint Write(

ref TPCANMsg MsgBuff

);

Visual Basic .NET

Public Shared Function Write( _

ByRef MsgBuff As TPCANMsg ) As Integer

End Function

C++ CLR

static unsigned int Write(

TPCANMsg %MsgBuff

);

Parameter

MsgBuff

[In] Zu sendende CAN-Botschaft.

Rückgabewerte

CAN_ERR_OK, CAN_ERR_BUSOFF, CAN_ERR_NOVXD, CAN_ERR_QXMTFULL, CAN_ERR_RESOURCE

Siehe auch

Funktion Read


Funktion GetUSBDeviceNr

Fragt die USB-Gerätenummer ab (nur PCAN-USB).

Syntax

Visual Basic 6

Declare Function GetUSBDeviceNr Lib "pcan_usb.dll" ( _

ByRef l As Long _

) As Long

Delphi

function GetUSBDeviceNr(

var l: Long

): Longword; stdcall;

C / C++

DWORD __stdcall GetUSBDeviceNr(

long* l

);

C#

public static extern uint GetUSBDeviceNr(

out int l

);

Visual Basic .NET

Public Shared Function GetUSBDeviceNr( _

ByRef l As Integer) As Integer

End Function

C++ CLR

static unsigned int GetUSBDeviceNr(

int %l

);

Parameter

l

[Out] Die vom Client genutzte USB Gerätenummer.

Rückgabewerte

CAN_ERR_ILLHW, CAN_ERR_ILLPARAMTYPE, CAN_ERR_OK, CAN_ERR_NOVXD

Siehe auch

Funktion SetUSBDeviceNr

Funktion GetUSB2DeviceNr

Funktion SetUSB2DeviceNr


Funktion GetUSB2DeviceNr

Fragt die USB-Gerätenummer eines zweiten eingesteckten PCAN-USB-Adapters ab.

Syntax

Visual Basic 6

Declare Function GetUSB2DeviceNr Lib "pcan_2usb.dll" ( _

ByRef l As Long _

) As Long

Delphi

function GetUSB2DeviceNr(

var l: Long

): Longword; stdcall;

C / C++

DWORD __stdcall GetUSB2DeviceNr(

long* l

);

C#

public static extern uint GetUSBDeviceNr(

out int l

);

Visual Basic .NET

Public Shared Function GetUSBDeviceNr( _

ByRef l As Integer) As Integer

End Function

C++ CLR

static unsigned int GetUSBDeviceNr(

int %l

);

Parameter

l

[Out] Die vom Client genutzte USB-Gerätenummer.

Rückgabewerte

CAN_ERR_ILLHW, CAN_ERR_ILLPARAMTYPE, CAN_ERR_OK, CAN_ERR_NOVXD

Siehe auch

Funktion SetUSB2DeviceNr

Funktion GetUSBDeviceNr

Funktion SetUSBDeviceNr


Funktion SetUSBDeviceNr

Setzt die USB-Gerätenummer (nur PCAN-USB).

Syntax

Visual Basic 6

Declare Function SetUSBDeviceNr Lib "pcan_usb.dll" ( _

ByVal l As Long _

) As Long

Delphi

function SetUSBDeviceNr(

l: Long

): Longword; stdcall;

C / C++

DWORD __stdcall SetUSBDeviceNr(

long l

);

C#

public static extern uint SetUSBDeviceNr(

int l

);

Visual Basic .NET

Public Shared Function SetUSBDeviceNr( _

l As Integer) As Integer

End Function

C++ CLR

static unsigned int SetUSBDeviceNr(

int l

);

Parameter

l

[In] USB-Gerätenummer die gesetzt werden soll. Der mögliche Wertebereich ist 0 bis 255.

Rückgabewerte

CAN_ERR_ILLHW, CAN_ERR_ILLPARAMTYPE, CAN_ERR_ILLPARAMVAL, CAN_ERR_OK, CAN_ERR_NOVXD, CAN_ERR_REGTEST

Siehe auch

Funktion GetUSBDeviceNr

Funktion GetUSB2DeviceNr

Funktion SetUSB2DeviceNr


Funktion SetUSB2DeviceNr

Setzt die USB-Gerätenummer eines zweiten eingesteckten PCAN-USB-Adapters.

Syntax

Visual Basic 6

Declare Function SetUSB2DeviceNr Lib "pcan_2usb.dll" ( _

ByVal l As Long _

) As Long

Delphi

function SetUSB2DeviceNr(

l: Long

): Longword; stdcall;

C / C++

DWORD __stdcall SetUSB2DeviceNr(

long l

);

C#

public static extern uint SetUSBDeviceNr(

int l

);

Visual Basic .NET

Public Shared Function SetUSBDeviceNr( _

l As Integer) As Integer

End Function

C++ CLR

static unsigned int SetUSBDeviceNr(

int l

);

Parameter

l

[In] USB-Gerätenummer die gesetzt werden soll. Der mögliche Wertebereich ist 0 bis 255.

Rückgabewerte

CAN_ERR_ILLHW, CAN_ERR_ILLPARAMTYPE, CAN_ERR_ILLPARAMVAL, CAN_ERR_OK, CAN_ERR_NOVXD, CAN_ERR_REGTEST

Siehe auch

Funktion GetUSB2DeviceNr

Funktion GetUSBDeviceNr

Funktion SetUSBDeviceNr


Baudraten-Codes

Die Baudrate ist die Übertragungsgeschwindigkeit auf dem CAN-Bus.

Folgende Baudraten sind in PCAN-Light vordefiniert:

Name | Baudraten-Code | Baudrate
CAN_BAUD_1M | 0014h | 1 MBit/s
CAN_BAUD_500K | 001Ch | 500 kBit/s
CAN_BAUD_250K | 011Ch | 250 kBit/s
CAN_BAUD_125K | 031Ch | 125 kBit/s
CAN_BAUD_100K | 432Fh | 100 kBit/s
CAN_BAUD_50K | 472Fh | 50 kBit/s
CAN_BAUD_20K | 532Fh | 20 kBit/s
CAN_BAUD_10K | 672Fh | 10 kBit/s
CAN_BAUD_5K | 7F7Fh | 5 kBit/s

Neben diesen Standarddefinitionen sind noch folgende Baudraten üblich:

Baudrate | Baudraten-Code
800 kBit/s | 0016h
95,23 kBit/s | C34Eh
83,33 kBit/s | 4B14h
47,6 kBit/s | 1414h
33,33 kBit/s | 1D14h

Um eigene Baudraten definieren zu können, stellt PEAK-System Technik GmbH die Software BaudTool zur Verfügung, das zum Download auf der Homepage bereitsteht. Mit diesem Tool lässt sich zu einer gewünschten Übertragungsgeschwindigkeit der entsprechende Baudraten-Code bestimmen.

Siehe auch

Referenz


Fehler-Codes

In der PCAN-Light API sind de folgenden Fehler-Codes möglich. Fehler werden als Bitmaske zurückgegeben, d.h. es können jeweils mehrere Fehler-Codes miteinander verknüpft sein.

Fehler sortiert nach Namen
Bezeichnung | Wert | Bedeutung
CAN_ERR_BUSHEAVY | 0008h | Busfehler: Ein Fehlerzähler erreichte das 'Heavy'-Limit.
CAN_ERR_BUSLIGHT | 0004h | Busfehler: Ein Fehlerzähler erreichte das 'Light'-Limit.
CAN_ERR_BUSOFF | 0010h | Busfehler: CAN-Controller ist im 'Bus-Off'-Zustand.
CAN_ERR_ILLPARAMTYPE | 4000h | Parameter ist hier nicht erlaubt/anwendbar.
CAN_ERR_ILLPARAMVAL | 8000h | Parameterwert ist ungültig.
CAN_ERR_NOVXD | 0200h | Treiber nicht geladen.
CAN_ERR_OK | 0000h | Kein Fehler.
CAN_ERR_OVERRUN | 0002h | CAN-Controller wurde zu spät gelesen.
CAN_ERR_QOVERRUN | 0040h | Receive-Queue wurde zu spät gelesen.
CAN_ERR_QRCVEMPTY | 0020h | Receive-Queue ist leergelesen.
CAN_ERR_QXMTFULL | 0080h | Sende-Queue ist voll.
CAN_ERR_REGTEST | 0100h | Registertest des 82C200/SJA1000 ist fehlgeschlagen.
CAN_ERR_RESOURCE | 2000h | Ressource (Queue, Client, Timer) kann nicht erzeugt werden.
CAN_ERR_XMTFULL | 0001h | Sendepuffer im Controller ist voll.
CAN_ERRMASK_ILLHANDLE | 1C00h | Maske für alle Handle-Fehler.
Fehler sortiert nach Wert
Wert | Bezeichnung | Bedeutung
0000h | CAN_ERR_OK | Kein Fehler.
0001h | CAN_ERR_XMTFULL | Sendepuffer im Controller ist voll.
0002h | CAN_ERR_OVERRUN | CAN-Controller wurde zu spät gelesen.
0004h | CAN_ERR_BUSLIGHT | Busfehler: Ein Fehlerzähler erreichte das 'Light'-Limit.
0008h | CAN_ERR_BUSHEAVY | Busfehler: Ein Fehlerzähler erreichte das 'Heavy'-Limit.
0010h | CAN_ERR_BUSOFF | Busfehler: CAN-Controller ist im 'Bus-Off'-Zustand.
0020h | CAN_ERR_QRCVEMPTY | Receive-Queue ist leergelesen.
0040h | CAN_ERR_QOVERRUN | Receive-Queue wurde zu spät gelesen.
0080h | CAN_ERR_QXMTFULL | Sende-Queue ist voll.
0100h | CAN_ERR_REGTEST | Registertest des 82C200/SJA1000 ist fehlgeschlagen.
0200h | CAN_ERR_NOVXD | Treiber nicht geladen.
1C00h | CAN_ERRMASK_ILLHANDLE | Maske für alle Handle-Fehler.
2000h | CAN_ERR_RESOURCE | Ressource (Queue, Client, Timer) kann nicht erzeugt werden.
4000h | CAN_ERR_ILLPARAMTYPE | Parameter ist hier nicht erlaubt/anwendbar.
8000h | CAN_ERR_ILLPARAMVAL | Parameterwert ist ungültig.


Strukturen

In der PCAN-Light API sind folgende Strukturen definiert, die im Umgang mit den verschiedenen Funktionen benötigt werden:

Name | Beschreibung
TPCANMsg | Definiert eine CAN-Botschaft.


Struktur TPCANMsg

Definiert eine CAN-Botschaft.

Syntax

Visual Basic 6

Public Type TPCANMsg

ID As Long

MSGTYPE As Byte

LEN As Byte

DATA(8) As Byte

End Type

Delphi

TPCANMsg = record

ID: Longword;

MSGTYPE: Byte;

LEN: Byte;

DATA: array[0..7] of Byte;

end;

C / C++

typedef struct

{

DWORD ID;

BYTE MSGTYPE;

BYTE LEN;

BYTE DATA[8];

} TPCANMsg;

C#

public struct TPCANMsg

{

public uint Id;

public byte MsgType;

public byte Len;

public byte[] Data;

}

Visual Basic .NET

Structure TPCANMsg

Public ID As int32

Public MSGTYPE As Byte

Public LEN As Byte

Public DATA() As Byte

End Structure

C++ CLR

value struct TPCANMsg

{

unsigned int ID;

unsigned char MsgType

unsigned char Len;

array<unsigned char>^ Data;

};

Felder

ID

11/29-Bit Botschaftskennung.

MSGTYPE

Bitmaske, die den Typ der Nachricht anzeigt. Nachrichtentypen können mit einer OR-Verknüpfung miteinander kombiniert werden.

Bezeichnung | Wert | Beschreibung
MSGTYPE_STANDARD | 00h | Data Frame. CAN-Botschaft mit Dateninhalt und mit einer 11-Bit CAN-ID.
MSGTYPE_RTR | 01h | Remote Transmit Request (RTR).
MSGTYPE_EXTENDED | 02h | Data Frame. CAN-Botschaft nach CAN 2.0B Standard (29-Bit CAN-ID).
MSGTYPE_STATUS | 80h | Statusmeldung. Die ersten 4 Datenbytes enthalten einen Fehlercode. MSB des Fehlercodes ist in Datenbyte 0, LSB in Datenbyte 3.

LEN

Anzahl der Datenbytes in einer Daten-Nachricht (Data Length Code).

DATA

Datenbytes, die übertragen werden. Es können 0 bis 8 Datenbytes pro CAN-Nachricht übermittelt werden.

Beispiele

Standard-Botschaft:

ID | MSGTYPE | LEN | Data0 bis Data7
100h | 00h | 5 | 01h 23h ADh 4Fh 80h
4ABh | MSGTYPE_STANDARD | 8 | 01h 23h 45h 67h 89h ABh CDh EFh

Extended-Botschaft:

ID | MSGTYPE | LEN | Data0 bis Data7
0000102Ah | 02h | 5 | 01h 23h ADh 4Fh 80h
000004ABh | MSGTYPE_EXTENDED | 8 | 01h 23h 45h 67h 89h ABh CDh EFh

RTR-Botschaft:

ID | MSGTYPE | LEN
100h | 01h | 5
100h | MSGTYPE_RTR | 8

Hinweis: Bei einer RTR-Botschaft entfallen die Datenbytes.

Kombinierter MSGTYPE:

ID | MSGTYPE | LEN
000030CDh | 01h OR 02h | 5
000030CDh | 03h | 5
000030CDh | MSGTYPE_RTR OR MSGTYPE_EXTENDED | 5

Eine RTR-Botschaft mit einer 29-Bit CAN-ID.

Siehe auch

Funktion Read

Funktion Write

Fehler-Codes


Zusätzliche Informationen

Zusätzliche Informationen

Wie in der Einführung erwähnt, bildet PCAN bildet die Basis von PCAN-Light. Im folgenden gibt es ein grundlegende Übersicht über PCAN und dessen Funktionsumfang.

PCAN Grundlagen

Einführung in das PCAN-System, das allen PCAN Programmen zugrunde liegt.

CanApi2

Vergleich der Programmierschnittstellen PCAN-Light und CanApi2, mit einer Funktionsübersicht über CanApi2.

PCAN-Produkte

Vergleich von verschiedenen PCAN-Produkten.

Feedback zur Dokumentation senden.


PCAN-Grundlagen

PCAN steht für PEAK CAN APPLICATIONS und ist ein flexibles System zur Planung, Entwicklung und Benutzung von CAN-Netzen. Es ist sowohl für den Entwickler als auch für den Endbenutzer ein hilfreiches und mächtiges Produkt.

Das PCAN-System besteht aus einer Sammlung von Windows Geräte-Treibern. Diese sorgen für die Echtzeit-Anbindung von Windows Applikationen an alle CAN-Busse, die mittels PCAN-Hardware an den PC angeschlossen sind. Die Schnittstelle zum Anwender bzw. dem Betreiber einer CAN-vernetzten Anlage bilden sogenannte PCAN-Clients. Mit ihrer Hilfe können Prozessgrößen visualisiert und beeinflusst werden. Der Treiber lässt die Ankopplung mehrerer Clients zu, die mit CAN-Bussen kommunizieren können. Weiterhin unterstützt er mehrere Hardware-Komponenten, die auf der Basis des Mikrocontrollers Philips SJA1000 aufbauen.

Es stehen sog. Netze zur Verfügung, die einen in den PC hinein verlängerten CAN-Bus beschreiben, an den sich mehrere Clients anschließen können. Diese können über eine Hardware-Komponente, wie z. B. dem PCAN-Dongle oder der PCAN-ISA-Karte, mit einem externen CAN-Bus verbunden werden. Die nachstehende Grafik soll die verschiedenen Konfigurationsmöglichkeiten von Netzen verdeutlichen.

Folgende Möglichkeiten bestehen für PCAN-Client-Programme, Netze und Hardware:

  • Ein PCAN-Client kann an mehrere Netze angeschlossen sein

  • Ein Netz versorgt mehrere PCAN-Clients

  • Eine Hardware gehört zu maximal einem Netz

  • Einem Netz ist keine oder genau eine Hardware zugeordnet

  • Sendet ein Client, wird die Botschaft über die Hardware auf den externen Bus und an alle anderen Clients gegeben

  • Wird eine Botschaft über die Hardware empfangen, wird sie von allen Clients empfangen. Jeder Client empfängt nur Botschaften, die seinen Akzeptanzfilter passieren.

  • Definieren der eingebauten Hardware und der Netze. Pro Hardware dürfen mehrere Netze definiert werden. Aber nur ein Netz kann aktiv sein.

  • Clients verbinden sich mit einem Netz über den Netznamen.

  • Jeder PCAN-Client hat eine Sende-Queue, in der zu sendende CAN-Botschaften bis zu ihrem Sendezeitpunkt warten. Beim Eintritt des Sendezeitpunktes werden sie in die Sende-Queue der PCAN-Hardware geschrieben.

  • Jede Hardware hat eine Empfangs-Queue, um empfangene CAN-Botschaften zu puffern.

Siehe auch

PCAN-Light Grundlagen

Grundlagen zu PCAN-Light Anwendungsprogrammen

Feedback zur Dokumentation senden.


PCAN Software und Treiber

PCAN-Light Dokumentation

Zusätzliche Informationen

PEAK-Software und Treiber für CAN-Bus-Anwendungen

Software

Vom Hause aus wird dem Anwender auch fertige Software zur Verfügung gestellt. Bei PCAN-View handelt es sich um einen leicht zu bedienenden CAN-Monitor, der die Visualisierung von CAN-Nachrichten in Verbindung mit der PCAN-Hardware ermöglicht. Der Monitor ist in jedem PCAN-Hardware-Paket enthalten und ist die Basisversion des umfangreichen CAN-Monitors PCAN-Explorer. Ein kurze Gegenüberstellung der beiden Monitore befindet sich auf der Seite weiter unten.

Treiber

Bei PCAN-Light und der umfassenderen CanApi2 handelt es sich um Schnittstellen zu den PCAN-Treibern. Jeder Typ von PCAN-Hardware hat seinen eigenen Treiber.

Übersicht PCAN-Softwarepakete

Im folgenden gibt es einen Vergleich zwischen den PCAN-Softwarepaketen:

Eigenschaften

PCAN-Light

PCAN-Evaluation

PCAN-Developer

Mitgelieferte Applikationen

  • PCAN-View

  • PCAN-View,

  • PCAN Status Display und

  • PCAN Nets Configuration

  • PCAN-View,

  • PCAN Status Display,

  • PCAN Nets Configuration,

  • PCAN-Explorer und

  • PCAN-Trace

Windows 9x/ME

Ja

Ja

Ja

Windows NT/2000/XP/Vista

Ja

Ja

Ja

Unterstützt jede PCAN-PC-Hardware

Pro Treiber eine Karte mit einem CAN-Kanal

Ja

Ja

Mehrere Programme an einem Treiber

Nein

Ja

Ja

CAN-Kommunikation der Programme untereinander

Nein

Ja

Ja

Maximale Anzahl unterstützte Hardware pro Treiber

1

16

16

Maximale Anzahl Programme an einer Hardware

1

32

32

Erweiterte Informationen über Hardwarezustände

Nein

Ja

Ja

Echtzeitgenauigkeit der gesendeten (1.) und der empfangenen Nachrichten (2.)

Ohne Zeitstempel

  1. 1ms Win9x/ME und 10 ms (NT/2000/XP/Vista)

  2. 1/1000 ms

  1. 1ms Win9x/ME und 10 ms (NT/2000/XP/Vista)

  2. 1/1000 ms

Event bei Empfang einer Nachricht

Nein, Applikation muss pollen

Ja

Ja

Treiberinterne Nachrichtenpuffer pro Programm

2048 - 32000

2048 - 32000

2048 - 32000

Software-Simulation zwischen Programmen (keine Hardware zur Entwicklung nötig)

Nein

Ja

Ja

Ein Interface für alle PCAN-PC-Karten

Verschiedene DLLs

Eine DLL

Eine DLL

Treiber

Treiber für Plug&Play-Hardare und Treiber für Nicht-Plug&Play Hardware

CanApi2

CanApi2

Hotlinesupport für Entwickler

Nein

Ja

Ja

Konfiguration der Hardware über Systemsteuerung

Aufgabe der Applikation

Ja

Ja

Nachrichtenfilter definierbar

Ja

Ja

Ja

PCAN-View und PCAN-Light sind kostenfrei und können zum Beispiel über das Internet bezogen werden.

Vergleich von PCAN-View und PCAN-Explorer

Eigenschaften | PCAN-View | PCAN-Explorer
Getrennte Darstellung von Sende- und Empfangsnachrichten in einer Sende- bzw. Empfangsliste | Ja | Ja
Variable Baudrateneinstellung über Netzdefinitionen | Ja | Ja
Beliebige Anzahl von Nachrichten können in der Sendeliste aufgenommen werden | Nein | Ja
Sendenachrichten können in festen Zeitabständen oder manuell gesendet werden | Ja | Ja
Darstellung von Fehlerzuständen | Ja | Ja
Abspeichern und Laden von erstellten Sendelisten zum Emulieren verschiedener CAN-Knoten | Nein | Ja
Symbolische Darstellung von Nachrichten durch Zuweisen von Bezeichnern | Nein | Ja
Symbolische Darstellung von Daten innerhalb der Datenbytes | Nein | Ja
Konfigurierbarer integrierter Datenlogger | Nein | Ja
Erstellung von Makros in Visual Basic Script | Nein | Ja
Einbindung von Add-ins (Plotter, CANdb-Import/Export, Instruments Panel) | Nein | Ja
Automatisierbar über Scripting oder COM-Schnittstellen | Nein | Ja

Feedback zur Dokumentation senden.


CanApi2

CanApi2 steht für CAN Application Programming Interface (Version 2) und ist die umfassende Programmierschnittstelle zum PCAN-System der Firma Peak-System Technik GmbH. Es ist die ausführlicherere Schnittstelle und gibt dem Programmierer mehr Möglichkeiten an die Hand als PCAN-Light. Die CanApi2 wird auch als großer Treiber und PCAN-Light als kleiner Treiber bezeichnet.

Wichtige Unterschiede zu PCAN-Light:

  • Schreiben einer CAN-Botschaft zu einem selbst festgelegten Zeitpunkt.

  • Angabe des Empfangszeitpunktes einer CAN-Botschaft.

  • Mehrere Softwareprogramme können zur gleichen Zeit auf eine Hardware zugreifen.

  • Ausführlicherere Informationen zur Hardware und dem PCAN-System (PCAN-Netz und PCAN-Client).

  • Einfaches Umschalten zwischen verschiedenen Hardware-Typen.

  • Die PCAN-Client wird über Netze mit der PCAN-Hardware verbunden.

Im folgenden wird eine kurze Übersicht über den Funktionsumfang der CanApi2 gegeben. Die einzelnen Funktionen können in verschiedene Kategorien eingeteilt werden:

Kontrolle

An- und Abmeldefunktionen für Netze und Hardware.

Konfiguration

Konfigurationsfunktionen für Netze und Hardware.

Client

Funktionen für die Verwaltung der Clients.

Kommunikation

Funktionen zum Datenaustausch über den CAN-Bus.

Information

Funktionen zur Information über Clients, Netze und Hardware.

Kontrolle

An- und Abmeldefunktionen für Netze und Hardware.

Funktion | Beschreibung
CloseAll | Schaltet alle Hardware, Netze und Clients ab.
RegisterHardware | Meldet eine Non-Plug&Play CAN-Hardware an.
RegisterHardwarePCI | Meldet eine PCI-CAN-Hardware an.
RegisterNet | Definiert ein neues PCAN-Netz.
RemoveHardware | Meldet eine CAN-Hardware ab.
RemoveNet | Löscht ein PCAN-Netz.
Konfiguration

Konfigurationsfunktionen für Netze und Hardware.

Funktion

Beschreibung

SetDeviceName

Setzt den Namen des PCAN-Geräts, das für nachfolgende CanApi2-Aufrufe verwendet werden soll.

SetDriverParam

Konfiguriert PCAN-Treiber-Parameter, u. a. die Größe des Sende- und Empfangspuffers.

SetHwParam

Konfiguriert CAN-Hardware-Parameter. Dazu gehören z.B.

  • die PEAK Seriennummer

  • und zusätzliche Kenngrößen zur PCAN-USB Hardware.

SetNetParam

Konfiguriert PCAN-Netz-Parameter, z.B. die Definition eines Masters.

Client

Funktionen für die Verwaltung der Clients.

Funktion

Beschreibung

ConnectToNet

Verbindet einen Client mit einem PCAN-Netz.

DisconnectFromNet

Trennt einen Client von einem PCAN-Netz.

RegisterClient

Meldet eine Anwendung als PCAN-Client an.

RegisterMsg

Erweitert den Empfangsfilter eines Clients.

RemoveAllMsgs

Setzt den Filter eines Clients für ein angeschlossenes Netz zurück.

RemoveClient

Meldet einen Client vom Treiber ab.

ResetClient

Löscht den Inhalt der Empfangs- und Sende-Queue eines Clients.

ResetHardware

Führt einen Reset einer CAN-Hardware durch.

SetClientFilter

Konfiguriert den Empfangsfilter eines Clients.

SetClientFilterEx

Konfiguriert den Empfangsfilter eines Clients.

SetClientParam

Konfiguriert einen Client-Parameters, wie zum Beispiel

  • der Eigenempfang vom Client versendeter Nachrichten

  • die Filtergüte bei empfangenen Nachrichten.

Kommunikation

Funktionen zum Datenaustausch über den CAN-Bus.

Funktion | Beschreibung
Read | Liest eine empfangene CAN-Botschaft, mit Angabe über den Empfangszeitpunkt.
Read_Multi | Liest mehrere empfangene CAN-Botschaften.
Write | Sendet eine CAN-Botschaft zu einem bestimmten Zeitpunkt, der selber festgelegt werden kann.
Information

Funktionen zur Information über Clients, Netze und Hardware.

Funktion

Beschreibung

GetClientParam

Fragt den Wert eines Client-Parameters ab, zum Beispiel

  • die Gesamtanzahl gesendeter oder empfangener CAN-Botschaften,

  • der Name des Hardware-Treibers, des PCAN-Netzes oder PCAN-Clients

  • die Anzahl empfangener Bits.

GetDeviceName

Fragt das aktuell verwendete PCAN-Gerät ab.

GetDiagnostic

Liest den Diagnose-Textpuffer aus und löscht ihn.

GetDriverName

Ermittelt die Bezeichnung einer CAN-Hardware.

GetDriverParam

Fragt den Wert eines Treiber-Parameters ab.

GetErrText

Übersetzt einen Fehlercode in einen Text.

GetHwParam

Fragt den Wert eines Hardware-Parameters ab.

GetNetParam

Fragt den Wert eines Netz-Parameters ab.

GetSystemTime

Ermittelt die aktuelle Systemzeit.

Msg2Text

Übersetzt eine CAN-Nachricht in einen Text.

Status

Ermittelt den aktuellen Status einer CAN-Hardware.

VersionInfo

Liest Informationen über Version und Copyright aus dem Treiber.

Feedback zur Dokumentation senden.


PCAN-Hardware

Übersicht über die gängige PCAN-Hardware:

Hardware | Plug&Play | Mehrkanalige Ausführung erhältlich | Anzahl von möglichen Kanälen
PCAN-Dongle | Nein | Nein | 1
PCAN-ISA | Nein | Ja | 1 - 2
PCAN-PC/104 | Nein | Ja | 1 - 2
PCAN-PCI | Ja | Ja | 1 - 2
PCAN-PCI Express | Ja | Ja | 1 - 2
PCAN-PC/104-Plus | Ja | Ja | 1 - 2
PCAN-USB | Ja | Nein | 1
PCAN-PC Card | Ja | Ja | 1 - 2

Feedback zur Dokumentation senden.


HWTypDLL

PCAN-Light Bibliotheken

Entsprechend der Hardware wird folgendes für den Platzhalter HWTypDLL eingesetzt:

Hardware | HWTypDLL
PCAN-Dongle | Pcan_dng.dll
PCAN-Dongle Pro | Pcan_dnp.dll
PCAN-ISA (1-Kanal Version) | Pcan_isa.dll
PCAN-ISA (2-Kanal Version) Kanal 1 Kanal 2 | Pcan_isa.dll Pcan_2isa.dll
PCAN-USB | Pcan_usb.dll
PCAN-USB (2. Adapter) | Pcan_2usb.dll
PCAN-PC Card (1-Kanal Version) | Pcan_pcc.dll
PCAN-PC Card (2-Kanal Version) Kanal 1 Kanal 2 | Pcan_pcc.dll Pcan_2pcc.dll
PCAN-PCI (1-Kanal Version) | Pcan_pci.dll
PCAN-PCI (2-Kanal Version) Kanal 1 Kanal 2 | Pcan_pci.dll Pcan_2pci.dll


Mehrkanalige Hardware

Mehrkanalige Hardware und ihre Interface-DLLs:

Hardware | Interface-DLL
PCAN-ISA (2-Kanal Version) Kanal 1 Kanal 2 | Pcan_isa.dll Pcan_2isa.dll
PCAN-PC Card (2-Kanal Version) Kanal 1 Kanal 2 | Pcan_pcc.dll Pcan_2pcc.dll
PCAN-PCI (2-Kanal Version) Kanal 1 Kanal 2 | Pcan_pci.dll Pcan_2pci.dll


Produktbeschreibungen

Eigenschaften

PCAN-View

PCAN-View

Einfacher CAN-Monitor. Leistungsmerkmale:

  • Getrennte Darstellung von Sende- und Empfangsnachrichten.

  • Variable Baudrateneinstellung bis zu 1MBit/s.

  • Darstellung von Fehlerzuständen.

PCAN Status Display

Status Monitor zur Anzeige von statistischen Informationen zu PCAN-Clients, PCAN-Netze und PCAN-Hardware.

PCAN Nets Configuration

Definiert und konfiguriert PCAN-Netze.

PCAN-Explorer

Umfangreicher CAN-Monitor.

Auszug aus den Leistungsmerkmalen:

  • Getrennte Darstellung von Sende- und Empfangsnachrichten in einer Sende- bzw. Empfangsliste.

  • Variable Baudrateneinstellung über Netzdefinitionen.

  • Beliebige Nachrichten können in einer Sendeliste aufgenommen werden, um sie in festen Zeitabständen, manuell oder als Antwort auf ein Remote-Frame zu senden.

  • Darstellung von Fehlerzuständen.

  • Abspeichern und laden von erstellten Sendelisten zum Emulieren verschiedener CAN-Knoten.

  • Symbolische Darstellung von Nachrichten durch Zuweisen von Bezeichnern.

  • Konfigurierbarer integrierter Datenlogger.

  • Erstellung von Macros in Visual Basic Script.

  • Einbindung von Add-ins (Plotter, CANdb-Import/Export, Instruments Panel).

  • Automatisierbar über Scripting und COM-Schnittstellen.

PCAN-Trace

Datenlogger für bis zu 9.999.000 CAN-Nachrichten. Damit können CAN-Nachrichten schnell und einfach aufgezeichnet, abgespeichert und auch wieder abgespielt werden.