Page 1 of 1

Über CODESYS mit ConCAN Modul RAW CAN Telegramme verschicken

Posted: 27 Feb 2024, 11:43
by Wiekon
Servus zusammen,

ich habe die Aufgabe (innerhalb eines größeren Projektes), einen KFZ Blinker zu testen. Dazu muss ich ihm per CAN Telegramm die Nachricht 00 00 00 38 FA 20 schicken.
Wie mache ich das über CODESYS? Das CODESYS ConCAN Beispiel hier https://revolutionpi.com/de/tutorials/b ... an-connect verwendet ja CANopen.
Das ist ja ein Protokoll aus der Automatisierungswelt und im KFZ Bereich nicht üblich.

Habt ihr Tipps für mich?

Vielen Dank und viele Grüße!

Re: Über CODESYS mit ConCAN Modul RAW CAN Telegramme verschicken

Posted: 29 Feb 2024, 10:24
by dirk
Hi Wiekon Du kannst Dir mal dieses Tutorial anschauen, hier kannst Du sehen, wie Du direkt auf der Shell CAN Telegramme über den Bus schicken kannst ;)
https://revolutionpi.com/de/tutorials/u ... -ansteuern

Re: Über CODESYS mit ConCAN Modul RAW CAN Telegramme verschicken

Posted: 08 Mar 2024, 12:40
by Wiekon
Hallo Dirk,

vielen Dank für deine Antwort. Das Tutorial hab ich schon gesehen. Aber ich möchte aus CODESYS heraus CAN sprechen und nicht CANopen.
Gibt's dafür auch ein Tutorial?

Vielen Dank!

Re: Über CODESYS mit ConCAN Modul RAW CAN Telegramme verschicken

Posted: 11 Mar 2024, 13:35
by dirk
Hi Wiekon, ok jetzt kann ich nur mit Halbwissen dienen - CODESYS mit Python Schnittstelle plus das Beispiel adaptieren der Python-CAN Library?

Code: Select all

"""
This example shows how sending a single message works.
"""

import can


def send_one():
    """Sends a single message."""

    # this uses the default configuration (for example from the config file)
    # see https://python-can.readthedocs.io/en/stable/configuration.html
    with can.Bus() as bus:
        # Using specific buses works similar:
        # bus = can.Bus(interface='socketcan', channel='vcan0', bitrate=250000)
        # bus = can.Bus(interface='pcan', channel='PCAN_USBBUS1', bitrate=250000)
        # bus = can.Bus(interface='ixxat', channel=0, bitrate=250000)
        # bus = can.Bus(interface='vector', app_name='CANalyzer', channel=0, bitrate=250000)
        # ...

        msg = can.Message(
            arbitration_id=0xC0FFEE, data=[0, 25, 0, 1, 3, 1, 4, 1], is_extended_id=True
        )

        try:
            bus.send(msg)
            print("Message sent on" + {bus.channel_info})
        except can.CanError:
            print("Message NOT sent")


if __name__ == "__main__":
    send_one()

Re: Über CODESYS mit ConCAN Modul RAW CAN Telegramme verschicken

Posted: 11 Mar 2024, 19:04
by nicolaiB
Hi Wiekon,

ohne groß Erfahrung damit zu haben, bin ich bei einer schnellen Suche auf CANL2 gestoßen. Schau mal ob das eventuell das ist, was du suchst:

https://help.codesys.com/webapp/hGcF55f ... n=3.5.17.0

Gruß Nicolai