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

Ergebnis 1 bis 5 von 5

Thema: WAGO 750-8204 PFC200 CAN Codesys

  1. #1
    Registriert seit
    28.10.2015
    Beiträge
    30
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich habe eine Wago 750-8204 zwischen zwei Geräten geschaltet die über CAN kommunizierten.
    Jetzt will ich die CAN Kommunikation in Codesys 2.3 abhören aber leider habe keine Code Beispiele dazu gefunden.
    Ich habe es mit WagoCanLayer2_02.lib ausprobiert aber leider erhalte ist mein date Array immer leer.

    open(BAUDRATE := 500000 ,ENABLE := TRUE );
    can11BitFrame(
    CAN_ID:= 16#380,
    CAN_BUFFER:= FALSE,
    ENABLE:= TRUE,
    READ_FRAME:= frame,
    DATA=> data
    );

    Gibt es Beispielcode für WagoCanLayer2_02.lib und WagoCanOpen?

    Gruß
    Zitieren Zitieren WAGO 750-8204 PFC200 CAN Codesys  

  2. #2
    Registriert seit
    30.01.2015
    Ort
    Hansastraße 27, 32423 Minden
    Beiträge
    30
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard

    Hallo Sadik,

    wenn der PFC200 nur lauschen soll, kannst Du in der Steuerungskonfiguration das Element "CAN Layer2 Device" einfügen.
    Dieser Code öffnet die CAN Schnittstelle und kopiert die empfangen Daten in ein lokales Array.

    Code:
    VAR
    fbOpenPort : CAN_OPEN;
    xOpenPort : BOOL := TRUE;
    xPortIsOpen : BOOL;
    fbCanRecv : CAN_RX_11BIT_FRAME :=(
     CAN_ID := 16#380,
     CAN_BUFFER := FALSE );
    xRead : BOOL;
    aRecvData : ARRAY [1..8] OF BYTE;
    bRecvLen : BYTE;
    END_VAR
    ---------------------------------------------------------------------------------------------
    fbOpenPort(BAUDRATE:= 500000, ENABLE:= xOpenPort);
    fbCanRecv(
     ENABLE := xPortIsOpen,
     READ_FRAME := xRead );
    IF fbOpenPort.CONFIRM AND fbOpenPort.ERROR = CAN_PORT_OK THEN
      xOpenPort := FALSE;
      xPortIsOpen := TRUE;
    END_IF
    IF xPortIsopen AND NOT xRead THEN
     IF fbCanRecv.ERROR = CAN_RECEIVE_OK THEN
      aRecvData := fbCanRecv.DATA;
      bRecvLen := fbCanRecv.DATALENGTH;
      xRead := TRUE;
     ELSE
      xRead := TRUE;
     END_IF
    END_IF
    Wenn der PFC200 als CANopen Master oder Slave genutzt werden soll, muss der Port nicht vom Anwenderprogramm geöffnet werden.
    Die Rx und Tx Bausteine sollten dann jedoch erst freigeschaltet werden, wenn sich der PFC200 im operational state befindet.

    Grüße
    Geändert von .:WAGO::016346:. (04.12.2015 um 10:11 Uhr) Grund: Code korrigiert
    Ihr/Euer

    WAGO Support Team
    WAGO Kontakttechnik GmbH & Co. KG
    http://www.wago.com
    mailto:support@wago.com
    phone: +49 (0) 571 887 - 555

  3. #3
    sadik ist offline Benutzer
    Themenstarter
    Registriert seit
    28.10.2015
    Beiträge
    30
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe den POE debuggt und in der ersten iteration nach dem öffnen des CANBUSES ist der FB fbCanRecv Error Feld auf = POU_NOT_FOUND da ENABLE auf xPortIsOpen gesetzt ist und die daten werden auch nicht in
    der ersten iteration ausgelesen (IF fbCanRecv.ERROR = CAN_RECEIVE_OK THEN....) ist falsch und xReady wird auf TRUE gesetzt.

    In der zweiten Iteration ist fbCanRecv aktiviert aber das Error Feld ist auf CAN_BUS_IDLE gestellt, da xReady auf TRUE ist wird die äußere if-Bedingung immer unwahr und die Anweisung tritt nie in die Datenauswertung (innere if-Bedingung) ein.

    Gruß
    Geändert von sadik (04.12.2015 um 12:38 Uhr)

  4. #4
    sadik ist offline Benutzer
    Themenstarter
    Registriert seit
    28.10.2015
    Beiträge
    30
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wir würde das Schreiben und Auslesen mit CanOpen funktionieren ?

  5. #5
    Registriert seit
    30.01.2015
    Ort
    Hansastraße 27, 32423 Minden
    Beiträge
    30
    Danke
    0
    Erhielt 4 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Sadik,

    nach dem Öffnen der CAN Schnittstelle wird das Bit xRead auf TRUE gesetzt.
    Wenn nun ein Telegramm mit der eingestellten CAN ID (hier 16#380) empfangen wird, setzt der Baustein das Bit xRead auf FALSE.
    Nach dem Auswerten des Fehlers werden die empfangen Daten in ein lokales Array übernommen und xRead wird wieder gesetzt um das nächste Telegramm zu empfangen.

    Das Schreiben funktioniert analog zum Empfangen. Nachdem die Schnittstelle geöffnet wurde, kann der Enable Eingang auf TRUE gesetzt werden.
    Das Telegramm wird versendet sobald das Bit WRITE_FRAME auf TRUE gesetzt wird, danach wird es vom Baustein auf FALSE zurückgesetzt.

    Ist sichergestellt dass ein Telegramm mit der ID 16#380 auf dem CAN Bus gesendet wird?


    Grüße
    Ihr/Euer

    WAGO Support Team
    WAGO Kontakttechnik GmbH & Co. KG
    http://www.wago.com
    mailto:support@wago.com
    phone: +49 (0) 571 887 - 555

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 17.12.2015, 08:12
  2. Antworten: 1
    Letzter Beitrag: 02.12.2015, 12:26
  3. Wago 750-8204 CAN mit RJ-45
    Von sadik im Forum WAGO
    Antworten: 1
    Letzter Beitrag: 17.11.2015, 14:33
  4. unlösbares Problem mit Wago 750-8204
    Von wat84 im Forum WAGO
    Antworten: 8
    Letzter Beitrag: 28.10.2015, 10:27
  5. CanOpen Master auf dem Wago 750-8203 PFC200
    Von julianpe im Forum WAGO
    Antworten: 1
    Letzter Beitrag: 18.06.2015, 10:56

Lesezeichen

Berechtigungen

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