名称:TCP发送

符号:TCP_SEND

说明:

        服务器与客户端之间成功建立连接后，本机使用TCP_Send指令将缓存中的数据按照指定的长度发送给远程主机。数据大小（LENGTH）参数必须小于或等于数据缓存（DATA参数）的实际大小，否则存在数据访问越界的风险。

图片:

参数:

参数名称 | 数据类型 | IN/OUT | 参数作用 | 说明
--- | --- | --- | --- | ---
EXECUTE | BOOL | IN | 功能块触发 |
    上升沿执行
SOCKFD | DINT | IN | 套接字 |
    服务器或客户端套接字
DATA | REF_TO BYTE | IN | 数据首地址 |
    待发送数据块首地址（不可为空/NULL）
LENGTH | WORD | IN | 数据长度 |
    数据长度：1-1400，不可超过DATA实际大小
BUSY | BOOL | OUT | 执行中 |
    TRUE：执行中
DONE | BOOL | OUT | 成功标志 |
    TRUE：执行完成
ERROR | BOOL | OUT | 出错标志 |
    TRUE：执行出错
ERRORID | WORD | OUT | 错误码 |
    0：正常；其它：错误码值

错误码:

错误码 | 说明
--- | ---
0 |
    无错误
4002H |
    套接字号不是允许的范围
4004H |
    套接字没有连接
400DH |
    发送数据过长

示例:

LD:

ST:

TCP_SEND_inst1( EXECUTE := ExecuteSend1, SOCKFD := Sockfd1, DATA := REF(DataSend_Client1[0]), LENGTH := 10, BUSY => ISBUSY_Client1, DONE => DONE_Client1, ERROR => ISERROR_Client1, ERRORID => ERRORID_Client1);

解释:

         当“ExecuteSend1”操作数的信号状态从“0”变为“1”时，执行该指令,把"DataSend_Client1"数组里的"10"个字节数发送出去。每检测到一个信号上升沿，就执行一次发送。
    当正在执行发送的时候，“ISBUSY_Client1”输出的信号状态就为“1”，成功执行完毕之后，“DONE_Client1”输出的信号状态就为“1”，当执行有错误的时候，输出“ISERROR_Client1”的信号状态为“1”，且“ERRORID_Client1”输出具体的错误码。