SOCKET_READ

SOCKET_READ 指令读取套接字上的数据,并返回指定的字节数。对于传输控制协议 (TCP),返回任何已接收到的数据,最多可返回所请求的字节数。对于用户数据报协议 (UDP),在数据报可用时完成。
操作详细信息︰
以下 SOCKET_READ 行为可能会影响现有通信(包括非套接字通信):
  • 如果 SOCKET_READ 操作未与远程设备同步执行,则控制器将保留远程设备接收数据包,直到发生以下操作之一:
    • SOCKET_READ 已执行。
    • 套接字超时时间到期。
    • 从远程设备接收到 RST。
    • SOCKET_DELETE 或 SOCKET_DELETEALL 已执行。
    • 执行运行模式更改,这将删除所有已创建的套接字实例。
    • 控制器从运行模式更改为编程模式,这将删除所有已创建的套接字实例。
    • 控制器从运行模式更改为编程模式,这将清除套接字诊断计数器信息和各个套接字计数器信息。
  • 如果在执行 SOCKET_READ 操作期间 (BUSY = True) Length 或 Offset 参数值发生更改,将发生错误并丢弃接收数据包。
  • SOCKET_READ 指令返回的字节数可能少于所请求的字节数。RxLength 包含已接收的数据字节数。写入程序以检查 RxLength,然后发出其他读取请求以接收完整应用程序消息。
  • 在“运行模式更改”模式下,如果在 BUSY 状态下操作期间更改 SOCKET_READ 输入,将发生错误并丢弃接收的数据包。
  • 输出与程序扫描同步更新。
支持的语言︰功能块图、梯形图和结构化文本。
该指令适用于 L20E、L50E 和 L70E 控制器。
SOCKET_READ
SOCKET_READ
SOCKET_READ 参数
参数
参数类型
数据类型
描述
Execute
输入
BOOL
启用指令。
  • TRUE: 检测到上升沿,启动指令,前提是上一个操作已完成。
  • FALSE:不启动指令。
Instance
输入
UDINT
复制从 SOCKET_CREATE 或 SOCKET_ACCEPT 指令返回的套接字句柄。
  • 对于 UDP 和 TCP 客户端套接字类型,复制从 SOCKET_CREATE 指令返回的套接字句柄。
  • 对于 TCP 服务器套接字类型,复制从 SOCKET_ACCEPT 指令返回的套接字句柄。
Timeout
输入
UDINT
SOCKET_READ 的超时。如果超时值小于最小值,指令块会返回错误。
超时范围:1,000-86,400,000 毫秒。将“超时”设置为 0 以使用默认值 10,000(10 秒)。
Length
输入
UINT
定义要读取的字节数。
在 RxLength 中检查实际读取的字节数。SOCKET_READ 返回的字节数可能少于所请求的字节数。
最多支持 256 个字节。
Offset
输入
UNIT
到 Data 数组的偏移。从此位置开始读取已读取的数据。
Data
输出
USINT[1..1]
用来存储从 SOCKET_READ 读取的数据的数组。
  • 数据数组大小必须 >=(Offset + Length)。
  • 数据数组可以大于套接字读取“长度”。
输出与程序扫描同步更新。
Done
输出
BOOL
指示操作完成的时间。
  • TRUE: 操作已成功完成。
  • FALSE:操作正在进行或遇到错误条件。
输出与程序扫描同步更新。
Busy
输出
BOOL
  • TRUE: 操作未完成。
  • FALSE:操作已完成。
输出与程序扫描同步更新。
Error
输出
BOOL
指示发生了错误。
  • TRUE: 检测到错误。
  • FALSE:无错误。
输出与程序扫描同步更新。
Status
输出
SOCK_STATUS
使用 SOCK_STATUS 数据类型定义状态,包含 ErrorID、SubErrorID 和 StatusBits 信息。
输出与程序扫描同步更新。
RxLength
输出
UNIT
包含接收到的数据字节数。
UDPAddr
输出
发送用户数据报协议 (UDP) 数据的设备的地址。
定义 UDPAddr 192.168.2.100 和端口 12000 的示例:
UDPAddr.IPAddress[0]=192
UDPAddr.IPAddress[1]=168
UDPAddr.IPAddress[2]=2
UDPAddr.IPAddress[3]=100
UDPAddr.Port = 12000
对于传输控制协议 (Transmission Control Protocol, TCP),此结构将不使用,并且全部包含零。TCP 连接传送远程地址信息。

SOCKET_READ 示例

SOCKET_READ 功能块图示例
SOCKET_READ 功能块图示例
SOCKET_READ 梯形图示例
SOCKET_READ 梯形图示例
SOCKET_READ 结构化文本示例
SOCKET_READ 结构化文本示例
结果 - TCP
结果 - TCP
结果 - UDP
结果 - UDP
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal