9-25
9 Socket Service
NJ/NX-series CPU Unit Built-in EtherNet/IP Port User’s Manual (W506)
9-6 Details on Using the Socket Services
9
9-6-5 TCP Sample Programming
*1 For an NX701 CPU Unit, replace the variable with _EIP1_EtnOnlineSta (Port1 Online) or _EIP2_EtnOnlineSta
(Port2 Online), depending on the built-in EtherNet/IP port which is used.
For an NX1P2 CPU Unit, replace the variable with _EIP1_EtnOnlineSta (Port1 Online).
// Start sequence when Trigger changes to TRUE.
IF ((Trigger=TRUE) AND (DoTCP=FALSE) AND (_EIP_EtnOnlineSta=TRUE)) THEN
DoTCP :=TRUE;
Stage :=INT#1;
SktTCPConnect_instance(Execute:=FALSE); // Initialize instance.
SktClearBuf_instance(Execute:=FALSE); // Initialize instance.
SktGetTCPStatus_instance(Execute:=FALSE); // Initialize instance.
SktTCPSend_instance( // Initialize instance.
Execute :=FALSE,
SendDat :=SendSocketDat[0]); // Dummy
SktTCPRcv_instance( // Initialize instance.
Execute :=FALSE,
RcvDat :=RcvSocketDat[0]); // Dummy
SktClose_instance(Execute:=FALSE); // Initialize instance.
END_IF;
IF (DoTCP=TRUE) THEN
CASE Stage OF
1 : // Request a connection.
SktTCPConnect_instance(
Execute :=TRUE,
SrcTcpPort :=UINT#0, // Local TCP port number: Automatically assigned.
DstAdr :='192.168.250.2', // Remote IP address
DstTcpPort :=UINT#6000, // Destination TCP port number
Socket =>WkSocket); // Socket
IF (SktTCPConnect_instance.Done=TRUE) THEN
Stage :=INT#2; // Normal end
ELSIF (SktTCPConnect_instance.Error=TRUE) THEN
Stage :=INT#10; // Error end
END_IF;
2 : // Clear receive buffer.
SktClearBuf_instance(
Execute :=TRUE,
Socket :=WkSocket); // Socket
IF (SktClearBuf_instance.Done=TRUE) THEN
Stage :=INT#3; // Normal end
ELSIF (SktClearBuf_instance.Error=TRUE) THEN
Stage :=INT#20; // Error end
END_IF;