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

Ergebnis 1 bis 6 von 6

Thema: Daten Senden/Empfangen mit IP_Connect ILC171 -- ILC390

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe das Problem das ich zwar eine gültige Verbindung zwischen beiden SPS aufbaue,
    aber das Senden bzw Empfangen nicht funktioniert. das IP_USEND.DONE bekomme ich aber
    auf der Partner SPS habe ich im Empfangs Array nichts bekommen. Die Daten Strukturen sind
    auf beiden SPS identisch. Ich bin so langsam ratlos warum das nicht funktioniert. Kann mir eventuell
    jemand weiterhelfen?

    Die Datetypen :

    Code:
    TYPE
        AR_SD_1     : ARRAY[0..99] OF BYTE;
        AR_RD_1     : ARRAY[0..99] OF BYTE;
        AR_Daten_1     : ARRAY[0..199] OF BYTE;
    
        
        ST_SD_1 : STRUCT
            Index : WORD;
            Data : AR_SD_1;
        END_STRUCT;
        
        ST_RD_1 : STRUCT
            Index : WORD;
            Data : AR_RD_1;
        END_STRUCT;
    
        SPS_Daten : STRUCT
            Senden : ST_SD_1;
            Empfangen : ST_RD_1;
            Data : AR_Daten_1;
        END_STRUCT;
    
    END_TYPE
    Der FB als Export:
    Code:
    (*@PROPERTIES_EX@
    TYPE: POU
    LOCALE: 0
    IEC_LANGUAGE: ST
    PLC_TYPE: independent
    PROC_TYPE: independent
    *)
    (*@KEY@:DESCRIPTION*)
    
    (*@KEY@:END_DESCRIPTION*)
    FUNCTION_BLOCK Werkstatt_Test_KSPS
    
    (*Group:Eingänge*)
    
    
    VAR_INPUT
        Port_Partner :    STRING;(*N/A*)
        IP_Partner :    STRING;(*N/A*)
        Sende_Intervall :    TIME;(*N/A*)
    END_VAR
    
    
    (*Group:Ausgänge*)
    
    
    VAR_OUTPUT
        Verbindung_IO :    BOOL;
        Error :    BOOL;
    END_VAR
    
    
    (*Group:IN_OUT Variablen*)
    
    
    VAR_IN_OUT
        Daten :    SPS_Daten;(*N/A*)
    END_VAR
    
    
    (*Group:Lokale Variablen*)
    
    
    VAR
        strCONNECT_PARTNER_1 :    STRING;(*N/A*)
        xCONNECT_ERROR_1 :    BOOL;(*N/A*)
        xCONNECT_VALID_1 :    BOOL;(*N/A*)
        iCONNECT_ID_1 :    INT;(*N/A*)
        iCONNECT_STATUS_1 :    INT;(*N/A*)
        xURCV_DONE_1 :    BOOL;(*N/A*)
        xURCV_ERROR_1 :    BOOL;(*N/A*)
        iURCV_STATUS_1 :    INT;(*N/A*)
        xUSEND_DONE_1 :    BOOL;(*N/A*)
        xUSEND_ERROR_1 :    BOOL;(*N/A*)
        iUSEND_STATUS_1 :    INT;(*N/A*)
        Senden_Start :    BOOL {HIV,RDT};
        verbinden :    BOOL;
        empfangen :    BOOL;(*test*)
    END_VAR
    
    
    (*Group:FB Instanzen*)
    
    
    VAR
        IP_CONNECT_1 :    IP_CONNECT;
        IP_USEND_1 :    IP_USEND;
        IP_URCV_1 :    IP_URCV;
        Puls_Send :    TON;(*N/A*)
    END_VAR
    
    
    (*@KEY@: WORKSHEET
    NAME: Werkstatt_Test_KSPS
    IEC_LANGUAGE: ST
    *)
    (**)
    
    strCONNECT_PARTNER_1 := '/PASSIVE /PORT='; 
    strCONNECT_PARTNER_1 := CONCAT(strCONNECT_PARTNER_1, Port_Partner); 
    strCONNECT_PARTNER_1 := CONCAT(strCONNECT_PARTNER_1, ' /IP='); 
    strCONNECT_PARTNER_1 := CONCAT(strCONNECT_PARTNER_1, IP_Partner); 
    
    (**)
    
    IP_CONNECT_1.EN_C        := verbinden;
    IP_CONNECT_1.PARTNER    := strCONNECT_PARTNER_1;
    IP_CONNECT_1();
    xCONNECT_VALID_1         := IP_CONNECT_1.VALID;
    xCONNECT_ERROR_1         := IP_CONNECT_1.ERROR;
    iCONNECT_STATUS_1         := IP_CONNECT_1.STATUS;
    iCONNECT_ID_1             := IP_CONNECT_1.ID;
    
    
    Puls_Send(IN        := Not xUSEND_DONE_1,
    PT                    := Sende_Intervall);
    
    If Puls_Send.Q then
        Senden_Start    := True;
    End_If;
    
    
    
    IP_USEND_1(REQ        := Senden_Start,
    ID                    := IP_CONNECT_1.ID,
    R_ID                := ' ',
    SD_1                := Daten.Senden);
    xUSEND_DONE_1         := IP_USEND_1.DONE;
    xUSEND_ERROR_1         := IP_USEND_1.ERROR;
    iUSEND_STATUS_1     := IP_USEND_1.STATUS;
    Daten.Senden         := IP_USEND_1.SD_1;
    
    If xUSEND_DONE_1 then
        Senden_Start := False;
    End_If;
    
    
    IP_URCV_1(EN_R        := xCONNECT_VALID_1,
    ID                    := IP_CONNECT_1.ID,
    R_ID                := ' ',
    RD_1                := Daten.Empfangen);
    xURCV_DONE_1        := IP_URCV_1.NDR;
    xURCV_ERROR_1        := IP_URCV_1.ERROR;
    iURCV_STATUS_1        := IP_URCV_1.STATUS;
    Daten.Empfangen        := IP_URCV_1.RD_1; 
    
    
    Verbindung_IO := xCONNECT_VALID_1;
    Error := xCONNECT_ERROR_1;
    
    
    
    (*@KEY@: END_WORKSHEET *)
    END_FUNCTION_BLOCK
    Online Ansicht Bilder:

    online_1.jpg
    online_2.jpg
    online_3.jpg

    Vielen Dank schon mal im vorraus.

    Maik
    Zitieren Zitieren Daten Senden/Empfangen mit IP_Connect ILC171 -- ILC390  

  2. #2
    Registriert seit
    08.09.2010
    Ort
    Blomberg
    Beiträge
    468
    Danke
    1
    Erhielt 85 Danke für 80 Beiträge

    Standard

    Hallo Maik,
    Die ersten beiden byte im Sende Array stehen für die länge der zu sendenden Daten. Bei dir ist das der Index der den Wert 0 hat uns somit werden auch keine Daten gesendet.
    Da du eine Struktur Senden möchtest würde ich in meiner Struktur als erstes ein Int Datentyp nutzen der die länge repräsentiert und danach die Daten.
    Gruß Uwe
    PHOENIX CONTACT Deutschland GmbH
    Hotline: 05281-946-2888
    automation-service@phoenixcontact.com
    www.phoenixcontact.de

  3. #3
    maik.hollmann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2017
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Uwe,

    vielen Dank für die schnelle Antwort
    jetzt funktioniert es.

    Ich hätte da noch eine Frage, wie viele gleichzeitige Aktive Verbindungen mit IP_Connect kann eine RFC470S Steuerung, und gibt es eine möglichkeit das diagnostizieren bzw
    zu sehen?

  4. #4
    Registriert seit
    08.09.2010
    Ort
    Blomberg
    Beiträge
    468
    Danke
    1
    Erhielt 85 Danke für 80 Beiträge

    Standard

    Hallo Maik,
    Die Technischen Daten kannst Du in den BasicData Anwenderhinweis unter den Steuerungen finden, bei RFC 470S Maximal 32 Verbindungen. siehe Bild
    Bei mehr als 32 Verbindungen sollte der Connect FB eine Statusmeldung Anzeigen. siehe Hilfe FB und BildBasicData.GIF
    Status.jpg

    Gruß Uwe
    PHOENIX CONTACT Deutschland GmbH
    Hotline: 05281-946-2888
    automation-service@phoenixcontact.com
    www.phoenixcontact.de

  5. #5
    maik.hollmann ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.07.2017
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Uwe,

    vielen Dank, da befinde ich mich wohl am Maximum. Gibt es eventuell ein statuswort oder so etwas wo ich direkt sehen kann wieviele Verbindungen gerade aufgebaut sind. So könnte ich das eventuell steuern welche Verbindungen aktiv sein dürfen. Mit Profinet könnte ich dann aber mehr SPS‘n Verbinden? Hmm ich überlege mir da mal was.

  6. #6
    Registriert seit
    08.09.2010
    Ort
    Blomberg
    Beiträge
    468
    Danke
    1
    Erhielt 85 Danke für 80 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Maik,
    ein Statusword bezüglich der IP Connect Verbindungen gibt es leider nicht aber der RFC 470S erlaubt natürlich mehrere Verbindungen zu PN Device Teilnehmen auf zu bauen, allerdings ist auf die Aktualisierungszeit der EAs zu achten die bei größerer Anzahl an PN Verbindungen sich erhöht.
    Da es sich hier wohl um ein größeres Projekt handelt, kannst Du dich auch gerne auf der Hotline melden um weitere Fragen zu klären, da die Anforderungen eventuell auch eine Rolle spielen können und wir halt nicht wissen was genau die Anforderungen sind.

    Gruß Uwe
    PHOENIX CONTACT Deutschland GmbH
    Hotline: 05281-946-2888
    automation-service@phoenixcontact.com
    www.phoenixcontact.de

Ähnliche Themen

  1. Step 7 Daten senden, empfangen
    Von tababa im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 28.03.2015, 12:49
  2. C# daten senden / empfangen mit SINAUT MD720-3
    Von live5o im Forum Hochsprachen - OPC
    Antworten: 19
    Letzter Beitrag: 27.08.2014, 08:58
  3. Daten über RS232 mit CP340 Senden und Empfangen
    Von Bensen83 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 01.02.2012, 17:09
  4. daten über PN senden und empfangen
    Von Servernexus im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 04.08.2011, 17:43
  5. RS232 Daten senden/ empfangen /bearbeiten
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.04.2005, 09:31

Lesezeichen

Berechtigungen

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