Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

CoDeSys CAN Initialisierung

2006-03-09
2006-03-19
  • Ralf Wardenbach - 2006-03-09

    Ein Hallo an alle Forumuser

    In einem Versuchsaufbau wird ein Umrichter der Fa. Lenze betrieben.

    Die Kommunikation mit dem IPC (Wago 870) funktioniert einwandfrei.

    Bei einem Kunden wird der gleiche Aufbau mit zwei weiteren Umrichtern in einer Anlage betrieben.

    Hier nun das Problem: In der Anlage wird nach unterbrechen des CAN Bus die Kommunikation nicht wieder aufgebaut.

    Im Versuchsaufbau mit einem Umrichte funktioniert dieses jedoch ohne Probleme.

    Hat schon jemand das gleich Problem gehabt ? oder einen Lösungsvorschlag ?

    Eine weitere Frage ist : In der CoDeSys Hilfe wird unter “CAN-Einstellungen eines CanDevices“ folgendes beschrieben:

    Ist die Option Automatisch starten aktiviert, so wird beim Download und beim Hochfahren der Steuerung der CAN-Bus automatisch initialisiert und gestartet. Ist es deaktiviert, wartet das CanDevice auf einen entsprechenden Befehl.

    Meine Frage ist: Wie wird der CAN-Bus manuell initialisiert / (neu-)gestartet ??

    Wie und Wo ? ist der Befehl abzusetzen ?

    CoDeSys : 2.3.5.3

    Wago IPC 870 EC1COM 2.4.31 /0101

    Lenze E82ZAFUC001

    Kann mir jemand weiterhelfen ?

     
  • Anonymous - 2006-03-13

    Originally created by: -AB-

    Hi,

    da ich den CanBus garnicht über die Steuerungskonfiguration parametriere kann ich dir nicht sagen wie es da funktioniert. Die folgenden 2 Ausschnitte kommen aus meinem Programm und zeigen einmal wie die CanKommunikation resetet werden kann und wie man die Can Knoten wieder operational schalten kann.

    Reset:

    ResetNodeReturnValue := CanUser_Write(

                wDrvNr:=0,
    
                dwCanID:=0,
    
                bLen:=2,
    
                xRtrFrame:=0,
    
                ucMode:=0,
    
                bByte0:=16#81,          (* Resetkommando *)
    
                bByte1:=0,                  (* Reset an      Knotenadresse 0 (alle CAN Teilnehmer) senden *)
    
                        bByte2:=0,
    
                bByte3:=0,
    
                bByte4:=0,
    
                bByte5:=0,
    
                bByte6:=0,
    
                bByte7:=0);
    

    In operational Mode schalten:

    StartNodeReturnValue := CanUser_Write(
    
        wDrvNr:=0,
    
        dwCanID:=0,
    
        bLen:=2,
    
        xRtrFrame:=0,
    
        ucMode:=0,
    
        bByte0:=16#01,
    
        bByte1:=servo_nodeID,
    
        bByte2:=0,
    
        bByte3:=0,
    
        bByte4:=0,
    
        bByte5:=0,
    
        bByte6:=0,
    
        bByte7:=0);
    

    Veilleicht hilft es dir ja weiter.

     
  • Ralf Wardenbach - 2006-03-19

    Hallo,

    das Problem lag in der Konfiguration des CAN Bus im CoDeSys.

    Zwar habe ich das Nodeguarding gesetzt, jedoch als Guard Time und Life Time eine Null eingetragen, was sich so verhält als wäre das Nodeguarding ausgeschaltet.

    Nach dem Eintragen der Werte werden nun auch die Umrichter nach einem Ausfall wieder einwandfrei gefunden.

    Das manuelle Starten des CAN Bus war eine Frage der richtigen Librarys.

    Danke an –AB- für die Hilfe

     

Log in to post a comment.