maik.hollmann
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 0
-> 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 :
	
	
	
		
Der FB als Export:
	
	
	
		
Online Ansicht Bilder:



Vielen Dank schon mal im vorraus.
Maik
	
		
			
		
		
	
				
			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_TYPEDer 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_BLOCKOnline Ansicht Bilder:



Vielen Dank schon mal im vorraus.
Maik
 
	 
  
 
		

