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

Ergebnis 1 bis 5 von 5

Thema: CODESYS CAN-Kommuniktaion herstellen

  1. #1
    Registriert seit
    10.03.2014
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Leute,

    hätte ein paar Fragen bezüglich einer CAN-Kommunikation zwischen SPS und einem Funkteil (das erhält die Infos per CANBus und schickt dann per Funk wieder etwas weiter).
    Zum Senden benutze ich den Funktionsbaustein CIA405.SDO_WRITE aus der CAA CiA405-Bibliothek.

    1. Für was sind die Eingänge INDEX und SUBINDEX gedacht?
    2. Ich habe noch Verständnisprobleme mit dem DATA-Eingang: Das Ding ist ja ein POINTER TO BYTE und zeigt somit auf die Adresse des zugewiesenen BYTES. Wenn ich diesen jetzt auf ein ARRAY OF BYTE zeigen lasse, wie funktioniert es, dass er alle Daten überträgt und nicht nur das erste Byte des Arrays?

    Es scheint auch, dass sich der CAN-Teilnehmer nicht richtig verbindet, habe zumindest im Gerätebaum immer dieses rote Warndreieck vor dem Teilnehmer. Was kann das für Gründe haben?

    Hier noch ein paar Screenshots:
    Gerätebaum.pngCAN-Teilnehmer.pngCANOpenManager.png

    Kann mir irgendwer weiterhelfen? Braucht ihr mehr Infos oder Screenshots oder Ähnliches?

    Viele Grüße,
    Matthias
    Zitieren Zitieren CODESYS CAN-Kommuniktaion herstellen  

  2. #2
    Registriert seit
    16.03.2007
    Beiträge
    97
    Danke
    5
    Erhielt 23 Danke für 18 Beiträge

    Standard

    Hallo Matthias,

    mit Index und Subindex sprichst du die SDOs, also die Parameter, die dich interessieren, an. Sind quasi die Adresse der Parameter. Welchen Index und Subindex du verwenden musst für welchen Parameter steht in der Doku. Hier steht auch drin wie groß der Parameter ist, also die Anzahl der Bytes. Und auf die Adresse, wo deine DATA liegt, läßt du einen Pointer zeigen. Der SDO Baustein nimmt sich dann ab dieser Adresse genau die Anzahl Bytes, die du im zuvor parametriert hast. Hier mal ein Beispiel:

    Geschwindigkeit: WORD := 1000;
    Data: ARRAY [1..4] OF BYTE;
    ptData: POINTER TO ARRAY [1..4] OF BYTE;

    ptData := ADR(Geschwindigkeit);
    Data[1] := ptData^[1];
    Data[2] := ptData^[2];
    Data[3] := 16#00;
    Data[4] := 16#00;
    SDO_WRITE4(DEVICE:=Device , INDEX:=16#6081 , SUBINDEX:=0 ,
    ENABLE:=TRUE , DATA:=Data , DATALENGTH:=4 );


    Und wenn du ein rotes Dreieck im Gerätebaum hast, stimmt sowieso irgendwas nicht. Arbeitest du mit SoMachine? Log dich mal auf der Steuerung ein, doppelklicke dann auf den CAN-Teilnehmer mit dem roten Dreieck und schau dann unter INFO nach, da steht meist was genaueres.

    Gruß SPS-Fuzzi
    Zitieren Zitieren CAN im Codesys  

  3. Folgender Benutzer sagt Danke zu SPS-Fuzzi für den nützlichen Beitrag:

    FelMa (03.04.2014)

  4. #3
    FelMa ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.03.2014
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank!
    War schonmal ne große Hilfe fürs Verständnis!
    Im Moment sagt der CAN-Teilnehmer im Status "polling for Object 0x1000...".
    Das heißt wohl, dass er nach der korrekten NodeID des Teilnehmers sucht. Laut Doku sollte diese aber übereinstimmen.
    Da geh ich jetzt wohl mal auf Fehlersuche und versuche mein Funkteil evtl neu zu parametrieren...

  5. #4
    FelMa ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    10.03.2014
    Beiträge
    6
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Aber eine Frage hätte ich dann doch noch zu den SDO´s:

    Wenn ich per SDO einfach nur ein paar Daten schicken will, dafür aber keinen passenden Parameter (also auch keinen Index/Subindex) muss ich mir dann einen neuen Parameter mit passenden Index/Subindex anlegen, oder kann ich die einfach auf "0" stehen lassen?

    Vielen Dank schonmal!

    Viele Grüße,
    Matthias

  6. #5
    Registriert seit
    08.10.2010
    Beiträge
    107
    Danke
    6
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Einfach nur Daten schicken: Das sind PDO's!

    Schau mal, ob Du eine Reiterkarte für die PDO hast.

Ähnliche Themen

  1. CL200 Verbindung herstellen
    Von neuling2 im Forum Sonstige Steuerungen
    Antworten: 12
    Letzter Beitrag: 23.07.2013, 09:45
  2. CL200 Verbindung herstellen
    Von neuling2 im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 18.07.2013, 10:43
  3. S7-300 Modbusverbindung herstellen
    Von captainchaos666 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 26.12.2009, 22:43
  4. Verbindung zu S5 herstellen
    Von ditschio im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 18.04.2009, 19:31
  5. Nullpunkt / Referenzpunkt herstellen
    Von bebaste im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 13.03.2007, 23:37

Lesezeichen

Berechtigungen

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