TcpBinSend
Function Block - Sends characters over a socket.
Inputs
Input |
Data Type |
Range |
Unit |
Default |
Description |
---|---|---|---|---|---|
Execute |
BOOL |
0 to 1 |
N/A |
No default |
On the rising edge, send a string over a socket connection. |
ID |
UDINT |
N/A |
N/A |
No default |
The ID of the client socket. |
Data |
USINT[ ] |
N/A |
N/A |
No default |
The data array to send. |
DataSize |
DINT |
N/A |
N/A |
No default |
Number of bytes in the Data array to send. |
Outputs
Output |
Data Type |
Range |
Unit |
Description |
---|---|---|---|---|
Done |
BOOL |
|
|
If TRUE, the command completed successfully. |
Error |
BOOL |
|
|
If TRUE, an error has occurred. |
ErrorID |
DINT |
|
|
Indicates the error if Error output is TRUE. See the table in File and TCP/IP Function Block ErrorIDs. |
NbSent |
DINT |
|
|
The number of characters actually sent. |
Remarks
-
- It is possible that the socket becomes invalid if an error occurs in the TCP connection after this function block is called.
Use the TcpIsValid function block after TcpSend.
If the socket is no longer valid, close it using the TcpClose function block.
- It is possible the number of characters actually sent is less than the number expected.
- In this case, use this function again to send the pending characters.
Figure 1: TcpBinSend
FBD Language Example
Not available.
FFLD Language Example
Not available.
IL Language Example
Not available.
ST Language Example
(* TcpBinSend example *)
CASE StepCounter OF
0:
Inst_TcpBinSend(TRUE, MySocketID, MyDataArray, 256);
StepCounter := StepCounter + 1;
1:
Inst_TcpBinSend(TRUE, MySocketID, MyDataArray, 256);
IF Inst_TcpBinSend.Done THEN
BytesSent := Inst_TcpBinSend.NbSent;
Inst_TcpBinSend(FALSE, 0, MyDataArray, 0);
StepCounter := StepCounter + 1;
END_IF;
END_CASE;
See Also