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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: Profinet CP343-1 und Beckhoff EL6631

  1. #11
    pjoker22 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.02.2018
    Beiträge
    7
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Okay Problem gelöst.
    Ich habe einen Satz in der Beschreibung der FCs übersehen, in dem steht, dass die Adresse der PN Devices bei 0 beginnen muss...

    Vielen Dank für eure Hilfe!

    Gruß

    Pascal

  2. #12
    pjoker22 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.02.2018
    Beiträge
    7
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Mist...
    Jetzt hab ich doch nochmal eine Frage:
    Wieso lassen sich die Daten beim FC12 Recv nur mit Pointer ansprechen?

    Wenn ich P#DB31.DBX0.0 Byte 2 angebe geht es, bei DB31.DBW0 kommt immer der Fehler 8184.
    Oder fehlt dort noch eine Angabe?
    Ich meine irgendwo schon einmal etwas dazu gelesen zu haben, kann es aber nicht mehr finden...

    EDIT: Liegt wohl am Typ ANY? Aber: Warum kann ich kein Word direct abspeichern? Bekomme von der Beckhoff 1Word Eingang und würde den eigentlich gerne auch wieder als WORD abspeichern ohne jetzt 2 Byte miteinander zu verbinden...
    Gibt es dazu eine Alternative?
    Geändert von pjoker22 (16.04.2018 um 16:39 Uhr)

  3. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.881
    Danke
    948
    Erhielt 3.499 Danke für 2.838 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von pjoker22 Beitrag anzeigen
    Wenn ich P#DB31.DBX0.0 Byte 2 angebe geht es, bei DB31.DBW0 kommt immer der Fehler 8184.
    F1 - Hilfe zum FC12 PNIO_RECV > Erläuterung der Formalparameter
    Parameter: RECV [...] Datentyp: ANY (als VARTYPE ist nur BYTE zugelassen)
    Packe um Dein DBW0 im DB31 eine Struktur und gib die Struktur am Eingang RECV an, dann wird der ANY-Pointer automatisch zu "P#DB31.DBX0.0 Byte 2" gewandelt:
    "DB31":
    Code:
    +0.0 MyPNDevice_Inputs : STRUCT
    +0.0   Statuswort_1 : Word
    =2.0 END_STRUCT
    +2.0 ...
    Code:
    CALL "PNIO_RECV"
     ...
     RECV:="DB31".MyPNDevice_Inputs //P#DB31.DBX0.0 Byte 2
    Eigentlich sollte man Speicherbereiche für ANY immer symbolisch angeben, dann wandelt der Programmeditor die Angabe automatisch in einen passenden ANY. Wenn der Bereich eine STRUCT ist dann wird der Datentyp und die Länge immer als BYTE angegeben.
    Wenn Du den/die Speicherbereiche für PNIO_RECV und PNIO_SEND schön strukturierst und symbolisch an die FCs übergibst, dann geht das automatisch richtig, z.B.:
    Code:
    DATA_BLOCK "PNIO_IO"
      STRUCT
        Inputs : STRUCT           //Eingänge für PNIO_RECV
          Device_1 : STRUCT
            StatusWort_1 : WORD ;
          END_STRUCT ;
          Device_2 : STRUCT
            StatusWort_1 : WORD ;
            StatusWort_2 : WORD ;
          END_STRUCT ;
          Device_3 : STRUCT
            Byte_1 : BYTE ;
            Byte_2 : BYTE ;
          END_STRUCT ;
        END_STRUCT ;
    
        Outputs : STRUCT          //Ausgänge für PNIO_SEND
          Device_1 : STRUCT
            SteuerWort_1 : WORD ;
          END_STRUCT ;
          Device_2 : STRUCT
            SteuerWort_1 : WORD ;
            SteuerWort_2 : WORD ;
          END_STRUCT ;
          Device_3 : STRUCT
            Datenbytes : ARRAY  [1 .. 10 ] OF BYTE ;
          END_STRUCT ;
        END_STRUCT ;
      END_STRUCT ;
    END_DATA_BLOCK
    Code:
    CALL "PNIO_RECV"
     ...
     RECV:="PNIO_IO".Inputs
    
    L "PNIO_IO".Inputs.Device_1.StatusWort_1
    T DB31.DBW0
    ...
    
    L DB32.DBW0
    T "PNIO_IO".Outputs.Device_1.SteuerWort_1
    
    CALL "PNIO_SEND"
     ...
     SEND:="PNIO_IO".Outputs
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Beckhoff Profinet über EL6631 PROFINET IO Controller
    Von Socher im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 05.12.2017, 13:37
  2. Antworten: 6
    Letzter Beitrag: 11.09.2017, 08:42
  3. PROFINET DataMatrix-Scanner an EL6631
    Von TimeOUT im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 20.05.2016, 09:02
  4. Antworten: 0
    Letzter Beitrag: 17.12.2014, 19:36
  5. Beckhoff CX9020-0111 und EL6631-0010 und Siemens PN Controller
    Von Nijkamp im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 03.02.2014, 15:46

Stichworte

Lesezeichen

Berechtigungen

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