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
DOWNLOAD Projekt