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

Results 1 to 6 of 6

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

  1. #1
    Join Date
    14.07.2017
    Posts
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default


    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
    Reply With Quote Reply With Quote Daten Senden/Empfangen mit IP_Connect ILC171 -- ILC390  

  2. #2
    Join Date
    08.09.2010
    Location
    Blomberg
    Posts
    479
    Danke
    1
    Erhielt 88 Danke für 82 Beiträge

    Default

    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
    Join Date
    14.07.2017
    Posts
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    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
    Join Date
    08.09.2010
    Location
    Blomberg
    Posts
    479
    Danke
    1
    Erhielt 88 Danke für 82 Beiträge

    Default

    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
    Join Date
    14.07.2017
    Posts
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    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
    Join Date
    08.09.2010
    Location
    Blomberg
    Posts
    479
    Danke
    1
    Erhielt 88 Danke für 82 Beiträge

    Default


    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

Similar Threads

  1. Step 7 Daten senden, empfangen
    By tababa in forum Simatic
    Replies: 4
    Last Post: 28.03.2015, 10:49
  2. C# daten senden / empfangen mit SINAUT MD720-3
    By live5o in forum Hochsprachen - OPC
    Replies: 19
    Last Post: 27.08.2014, 06:58
  3. Replies: 9
    Last Post: 01.02.2012, 15:09
  4. daten über PN senden und empfangen
    By Servernexus in forum Simatic
    Replies: 16
    Last Post: 04.08.2011, 15:43
  5. RS232 Daten senden/ empfangen /bearbeiten
    By Anonymous in forum Simatic
    Replies: 3
    Last Post: 15.04.2005, 07:31

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •