名称:UDP发送

符号:UDP_SEND

说明:

        UDP_SEND指令用于发送数据给指定的远程主机。

图片:

参数:

参数名称 | 数据类型 | IN/OUT | 参数作用 | 说明
--- | --- | --- | --- | ---
EXECUTE | BOOL | IN | 功能块触发 |
    上升沿触发指令执行
SOCKFD | DINT | IN | 套接字 |
    套接字
IPADDR | ARRAY[0..3] OF BYTE | IN | IP地址 |
    远程主机IP地址
PORT | WORD | 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 |
    套接字没有连接
4005H |
    重复连接
400AH |
    IP地址错误
400DH |
    发送数据过长

示例:

LD:

ST:

UDP_SEND_inst1(EXECUTE := Execute_UdpSend1, SOCKFD := Sockfd1, IPADDR := IP_Client1, PORT := 541, DATA := REF(DataSend_UDP1), LENGTH := 10, BUSY => ISBUSY_UDP1, DONE => DONE_UDP1, ERROR => ISERROR_UDP1, ERRORID => ERRORID_UDP1);

解释:

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