9 Socket Service
9-22
NJ/NX-series CPU Unit Built-in EtherNet/IP Port User’s Manual (W506)
ST
*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 (DoSendAndRcv=FALSE) AND (_EIP_EtnOnlineSta=TRUE))THEN
DoSendAndRcv :=TRUE;
Stage :=INT#1;
SktUDPCreate_instance(Execute:=FALSE); // Initialize instance.
SktUDPSend_instance( // Initialize instance.
Execute :=FALSE,
SendDat:=SendSocketDat[0]); // Dummy
SktUDPRcv_instance( // Initialize instance.
Execute :=FALSE,
RcvDat :=RcvSocketDat[0]); // Dummy
SktClose_instance(Execute:=FALSE); // Initialize instance.
END_IF;
IF (DoSendAndRcv=TRUE) THEN
CASE Stage OF
1 : // Request creating socket.
SktUDPCreate_instance(
Execute :=TRUE,
SrcUdpPort:=UINT#6001, // Local UDP port number
Socket =>WkSocket); // Socket
IF (SktUDPCreate_instance.Done=TRUE) THEN
Stage :=INT#2; // Normal end
ELSIF (SktUDPCreate_instance.Error=TRUE) THEN
Stage :=INT#10; // Error end
END_IF;
Internal
Variables
Variable Data type Initial value Comment
Trigger BOOL False Execution condition
DoSendAndRcv BOOL False Processing
Stage INT 0 Status change
RcvSocketDat ARRAY[0..1999] OF
BYTE
[2000(16#0)] Receive data
WkSocket _sSOCKET (Handle:=0,
SrcAdr:=(PortNo:=0, IpAdr:=’’),
DstAdr:=(PortNo:=0, IpAdr:=’’))
Socket
SendSocketDat ARRAY[0..1999] OF
BYTE
[2000(16#0)] Send data
SktUDPCreate_instance SktUDPCreate
SktUDPSend_instance SktUDPSend
SktUDPRcv_instance SktUDPRcv
SktClose_instance SktClose
External
Variables
Variable Data type Constant Comment
_EIP_EtnOnlineSta
*1
BOOL Online