Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: CAN Telegramm versenden von B&R X20 auf Acopos

  1. #1
    Registriert seit
    29.02.2016
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Ich brauche eure hilfe.

    Ich will von meiner Steuerung X20 CP1584 über das CAN Modul X20 IF1072 ein Telegramm auf einen Acopos senden.
    kann mir da jemand einen Tipp geben wie ich das machen muss?

    CAN ID = 0x19e
    DLC = 2
    byte (0) = 0X04
    byte (1) = 0x80

    Habe da was probiert aber meine Steuerung schmiert ständig ab und geht in den Service Mode da, so sagt die Steuerung, eine Cycluszeit verletzung vorliegt.

    CANbtreg_1.enable = 1;
    CANbtreg_1.us_ident = 0x19e;
    CANbtreg_1.treg0 = 0x10;
    CANbtreg_1.treg1 = 0x80;
    CANbtreg(&CANbtreg_1);



    Zitieren Zitieren CAN Telegramm versenden von B&R X20 auf Acopos  

  2. #2
    Registriert seit
    04.01.2015
    Beiträge
    63
    Danke
    0
    Erhielt 18 Danke für 17 Beiträge

    Standard

    Welches AS verwendest du.
    Dieser Code sollte eigentlich keine Zycluszeitverletzung mache. Das passiert irgend wo anders.

    us_ident ist nicht die CAN ID. Sonder die ID welche du vom CAN Open bekommst.
    Hier der Beispielcode in der Hilfe.
    Code:
    #include<bur/plc.h>#include <bur/plctypes.h>#include <can_lib.h>
    _LOCAL CANopen_typ CANopen_01;_LOCAL CANbtreg_typ CANbtreg_01;_INIT void init(){
        CANopen_01.enable = 1;              /*enable the function CANopen*/
        CANopen_01.baud_rate = 25;          /*set baud_rate 250KBit/s*/
        CANopen_01.cob_anz = 5;             /*set maximum communication objects*/
        CANopen_01.device = (UDINT) &"SL0.IF4";     /*description of the interface*/
     CANopen_01.info = 0;                /* define CAN info */
      CANopen(&CANopen_01);               /*call CANopen*/
      CANbtreg_01.enable = 1;             /*enable the function CANbtreg*/
        CANbtreg_01.us_ident = CANopen_01.us_ident; /*set us_ident with the value from CANopen*/
        CANbtreg_01.treg0 = 0xFF;           /*set bit timing register 0*/
        CANbtreg_01.treg1 = 0xFF;           /*set bit timing register 1*/
        CANbtreg (&CANbtreg_01);            /*call CANbtreg*/}

  3. Folgender Benutzer sagt Danke zu roger34 für den nützlichen Beitrag:

    Thinkoka (29.03.2016)

  4. #3
    Thinkoka ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.02.2016
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo roger34

    ich verwende das AS 4.2.4

    welches ist dann die CAN-ID?

  5. #4
    Thinkoka ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.02.2016
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    CANopen_01.device = (UDINT) &"SL0.IF4"; /*description of the interface*/

    was muss hier stehen? Die Adresse des Moduls auf der Steuerung?
    z.B. (UDINT) & "SS1.IF1"

  6. #5
    Registriert seit
    04.01.2015
    Beiträge
    63
    Danke
    0
    Erhielt 18 Danke für 17 Beiträge

    Standard

    Unter pysical view sieht du die Schnittstellenbezichung (Position) SS1.IF1 schaut sinnvoll aus.

    Wenn du die CAN IF Karte auch einfügst, hast du dann Datenpunkte auf welche zugreifen kannst. Sind die nötigen nicht vorhanden. Schreibst du mit CAN Write auf die Adressse.

  7. Folgender Benutzer sagt Danke zu roger34 für den nützlichen Beitrag:

    Thinkoka (29.03.2016)

  8. #6
    Thinkoka ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.02.2016
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn ich es so mache schmiert mir die Steuerung nicht mehr ab,aber ich habe am Acopos kein gültiges CAN signal.

    CANopen_2.enable = 1;
    CANopen_2.baud_rate = 50;
    CANopen_2.cob_anz = 5;
    CANopen_2.error_adr = 0;
    CANopen_2.device = (UDINT) & "X20IF1072.SS1.IF1";
    CANopen_2.info = 0;
    CANopen(&CANopen_2);
    CANbtreg_1.enable = 1;
    CANbtreg_1.us_ident = CANopen_2.us_ident;
    CANbtreg_1.treg0 = 0x04;
    CANbtreg_1.treg1 = 0x00;
    CANbtreg(&CANbtreg_1);


    Muss ich noch irgend wo etwas einstellen?
    Am Modul?
    CANopen konfigurieren?

  9. #7
    Registriert seit
    04.01.2015
    Beiträge
    63
    Danke
    0
    Erhielt 18 Danke für 17 Beiträge

    Standard

    Wenn du das AC110 einfügst musst du hier auch die eingestellt Nodenumber in Pysical View einstellen.
    Um auf den Canbus etwas zu senden würde eben das CANwr verwenden. CANbtreg benötigtst du für was ?

  10. Folgender Benutzer sagt Danke zu roger34 für den nützlichen Beitrag:

    Thinkoka (30.03.2016)

  11. #8
    Thinkoka ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.02.2016
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Stimmt ich habe das falsche genommen ich muss mit CANwrite arbeiten.
    aber wie muss ich hier miene Daten für die byte setzen?
    CANwrite_01.enable = 1;
    CANwrite_01.us_ident = CANopen_2.us_ident;
    CANwrite_01.can_id = 0x19e;
    CANwrite_01.data_adr = (UDINT) & (data[1]) & (data[3]);
    CANwrite_01.data_lng = 2;
    CANwrite(&CANwrite_01);

    geht das so mit data[1] & data[2] für das bxte0 und das byte 1?

  12. #9
    Thinkoka ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.02.2016
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    mit CANwrite geht es gut.
    es gibt mir aber immer wieder den Fehler "Ein ungültiger Parameter wurde übergeben (NULL)".
    wie kann ich das verhindern?

  13. #10
    Thinkoka ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.02.2016
    Beiträge
    14
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo nochmal

    Ich habe noch einmal eine Frage bezüglich CANBUS, vielleicht kann mir jemand weiterhelfen.
    Den angefügten Code habe ich aus der AS-Hilfe, ich habe in mit meinen Angaben ergänzt.
    Jetzt muss ich byte (0) und byte(1) setzten, wie kann ich das machen?

    Geht das so wie ich es gemacht habe?

    {
    CANopen_2.enable = 1;
    CANopen_2.baud_rate = 50;
    CANopen_2.cob_anz = 5;
    CANopen_2.error_adr = 0;
    CANopen_2.device = (UDINT) & "SS1.IF1";
    CANopen_2.info = 0;
    CANopen(&CANopen_2);
    if (CANopen_2.status != 0)
    error_var = 1;

    data[0] = 0x00;
    data[1] = 0x04;
    data[2] = 0x10;
    data[3] = 0x80;
    }
    {

    CANwrite_01.enable = 1;
    CANwrite_01.us_ident = CANopen_2.us_ident;
    CANwrite_01.can_id = 0x19e;
    CANwrite_01.data_lng = 2;
    CANwrite(&CANwrite_01);

    if (CANwrite_01.status != 0)
    error_var = 2;
    else
    error_var = 3;

    if (blStartWithVac)
    {
    CANwrite_01.data_adr = (UDINT) & (data[1]);
    CANwrite_01.data_adr = (UDINT) & (data[3]);
    }
    }

Ähnliche Themen

  1. B&R X20 - Zugriff auf USB-Stick via FTP
    Von onkel_muetze im Forum Sonstige Steuerungen
    Antworten: 9
    Letzter Beitrag: 20.12.2013, 16:23
  2. Datenpunkte von B&R X20 Modulen auslesen
    Von slayter im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 17.11.2013, 11:12
  3. Portierung b&r 2003 auf X20 (RS232 problem)!
    Von NaWas im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 25.02.2013, 08:27
  4. B&R - 2005er System auf X20 mit Panel portieren
    Von Alpquell im Forum Sonstige Steuerungen
    Antworten: 4
    Letzter Beitrag: 01.12.2010, 12:11
  5. B&R ACOPOS + Asynchron Motor
    Von m_matrix im Forum Antriebstechnik
    Antworten: 5
    Letzter Beitrag: 01.02.2009, 00:08

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •