CAN - Nachricht empfangen

Symbol (normal)

Symbol (RTR aktiviert)

Dieser Baustein ermöglicht das Empfangen von CAN-Nachrichten mit einer statischen Konfiguration der Datentypen. Diese Konfiguration ermöglicht ein automatisches Zerlegen der Datenbytes im CAN-Frame, sowie die Berechnung und Prüfung der korrekten Datenlänge.

Der Parameterdialog ermöglicht verschiedene Einstellungen, so dass der Baustein 16 Empfangsfunktionen zusammenfasst.

Der Empfang der Frames erfolgt asynchron zur Programm-Task. Es werden stets die Daten aus der zuletzt empfangenen Nachricht ausgegeben.

Grundsätzlich wird durch den Empfang eines Frames der Ausgang „NewData“ auf „HIGH“ gesetzt. Bei der Abarbeitung des Bausteins wird ein interner Speicher rückgesetzt, so dass beim nächsten Programmzyklus wieder ein „LOW“ ausgegeben wird, falls keine neue Nachricht empfangen wurde.

Parameter

Über den Parameterdialog können folgende Einstellungen vorgenommen werden:

- CAN-Controller:

  • 1 (Standard) – 4…die höchste Zahl ist abhängig vom Zielsystem und wird durch das jeweilige Template vorgegeben

- CAN-ID:

  • Länge:
    • 11Bit (Standard)

… 0 <= CAN-ID <= 2047 (0x7FF)

    • 29Bit

… 0 <= CAN-ID <= 536870911 (0x1FFFFFFF)

  • Zuweisungsart:
    • dynamisch über Bausteineingang
    • fix durch Dialog (Standard) (Eingang entfällt)
  • Knotennummer:
    • nicht verwendet (Standard)
    • automatisch addiert

- RTR:

  • nicht verwendet (Standard) …normales Empfangen
  • aktiviert … Der zusätzlicher Eingang „ReqData“ wird verfügbar. Über diesen kann ein RTR-Frame gesendet werden. Nach einer „HIGH“-Flanke an „ReqData“ wird einmalig der Empfang für die RTR-Antwort freigeschaltet.

- Beschreibungstext für die Nachricht (optional und nur zur Dokumentation)
- Datentypen der Dateneingänge „Data1“-„Data8“ (UCHAR, WORD, LONG, FLOAT)
- Beschreibungstext für jeden Dateneingang (nur zur Dokumentation)

Fehler während der ID-Vergabe (dezimal/hexadezimal) und bei der Konfiguration der Nachrichtenlänge sind möglich und werden entsprechend mitgeteilt. Die Länge eines CAN-Frames beträgt maximal 8 Bytes.

Es können mehrere Funktionsbausteine auf die gleiche ID „hören“. Die Daten werden bei gleichen Datenlängen mehrfach empfangen.

Signale (normal)

Name I/O Typ(en) Funktion
COBId I WORD / LONG CAN-ID (11/29Bit)
NewData O BIT Info: Daten empfangen
Data1-8 O UCHAR, WORD, LONG, FLOAT Daten

Signale (RTR aktiviert)

Name I/O Typ(en) Funktion
COBId I WORD / LONG CAN-ID (11/29Bit)
DataReq I BIT RTR senden
NewData O BIT Info: Daten empfangen
Data1-8 O UCHAR, WORD, LONG, FLOAT Daten