Skip to main content

Beispiel: CAN-Bus

Produkt: CODESYS CAN

Beschreibung

Die Bibliothek CANBusAPI.library ermöglicht Ihnen eine einfache Anwendung der CAN-Bus-Funktionen. Die Bibliothek wurde für objektorientierte Programmierung mit Structured Text und graphische Programmierung wie CFC optimiert. Die Bibliothek baut auf die Systembibliothek CAN Bus Low Level auf.

Diese Bibliothek bietet eine einfache Nutzung der CAN-Bus-Funktionen. Sie baut auf der Systembibliothek CANBus auf. Zusammen mit der Bibliothek CANBusAPI.library wird eine Beispielapplikation bereitgestellt. Diese Applikation enthält zwei Programme mit unterschiedlichen Implementierungen (objektorientiert in ST und graphisch in CFC), die die Anwendung der Bibliothek verdeutlichen.

Weitere Informationen

Das Beispielprojekt CANBusAPIExample.project enthält zwei Implementierungen, eine in ST, eine in CFC. Beide implementieren auf unterschiedliche Arten das Empfangen und Weiterleiten bestimmter CAN-Telegramme.

Fügen Sie in der Taskkonfiguration den Aufruf eines der beiden Programme (CFC_PRG, ST_PRG) hinzu und laden Sie die Applikation auf die Steuerung. Starten Sie die Applikation. Wenn Sie nun ein CAN-Telegramm mit passender ID (beispielsweise 0x500) extern erzeugen, wird dieses Telegramm verarbeitet und mit geänderter ID versendet.

Beispiel in ST

Dieses Programm empfängt alle eingehenden Nachrichten und verschickt sie wieder mit CAN-ID +1.

MsgProcessor_EchoST: Der Funktionsbaustein implementiert die Schnittstelle CAN.IMessageProcessor. Die Methode ProcessMessage wurde bereits implementiert. In dieser Methode wird die CAN-ID der empfangenen Nachricht um 1 erhöht und wieder zurück auf den CAN-Bus geschrieben.

ST_PRG: Das Programm konfiguriert den CAN-Treiber mit der Struktur DEVICE_CONFIG und generiert eine Instanz von MsgProcessor_EchoST und MaskReceiver. Das Generieren eines MaskReceiver sollte nur einmal gemacht werden und nicht zyklisch, da sonst bei jedem Aufruf ein neuer MaskReceiver erzeugt wird. Der MaskReceiver ist so konfiguriert, dass mit ihm alle Nachrichten empfangen werden können. Alle Nachrichten werden dann automatisch der Funktion ProcessMessage von MessageProcessor übergeben.

Beispiel in CFC

Dieses Programm empfängt alle Nachrichten im CAN-ID-Bereich 16#500 bis 16#550 und verschickt sie wieder mit CAN-ID+1.

MsgProcessor_EchoST: Implementiert die Schnittstelle CAN.IMesageProcessor. Die Methode ProcessMessage wurde bereits implementiert. In dieser Methode wird die CAN-ID der empfangenen Nachricht um 1 erhöht und wieder zurück auf den CANBus geschrieben.

CFC_PRG: Das Programm konfiguriert den CAN-Treiber mit der Struktur DEVICE_CONFIG und generiert eine Instanz von MsgProcessor_EchoST und AreaReceiver. Der AreaReceiver ist so konfiguriert, dass mit ihm alle Nachrichten im CAN-ID-Bereich 16#500 bis 16#550 empfangen werden können. Die empfangenen Nachrichten werden dann automatisch der Funktion ProcessMessage von MessageProcessor übergeben. Zusätzlich ist es möglich, mit Hilfe der Funktionsbausteins CANBusDiagnosis den Zustand des CAN-Treibers zu überwachen.

Weitere Informationen zu den Funktionsbausteinen finden Sie in der im Package enthaltenen PDF-Datei.

Systemvoraussetzungen und Einschränkungen

Programmiersystem

CODESYS Development System Version 3.5.6.0 oder höher

Laufzeitsystem

CODESYS Control Win Version 3.5.6.0

Zusatzkomponenten

-

Hinweis

_example_icon.png DOWNLOAD Projekt