SOCKET_OPEN

SOCKET_OPEN 指令可打开所指定目标地址的连接,以建立传输控制协议 (Transmission Control Protocol, TCP) 连接。对于用户数据报协议 (User Datagram Protocol, UDP) 连接,会将目标 IP 地址和端口号关联到指定套接字。
操作详细信息︰
  • 对于使用
    SOCKET_OPEN
    的用户数据报协议 (User Datagram Protocol, UDP) 连接,无需在每次发送数据时都使用 IP 地址和端口号。
  • 对于未使用“SOCKET_OPEN”的 UDP 连接,必须在每次使用“SOCKET_WRITE”发送数据时指定目标地址。
  • 当使用“SOCKET_READ”时,除了接收数据外,还将返回发送方的地址。发送方地址可用于使用“SOCKET_WRITE”发送响应。
  • “SOCKET_OPEN”操作可能会在超时时间之前返回,而不创建传输控制协议 (TCP) 连接。如果目标设备正在运行但未侦听指定端口号上的连接,可能会出现这种情况。
    SOCKET_OPEN
    会在超时时间之前返回并出错。
  • 输出与程序扫描同步更新。
支持的语言︰功能块图、梯形图和结构化文本。
该指令适用于 L20E、L50E 和 L70E 控制器。
SOCKET_OPEN
SOCKET_OPEN
SOCKET_OPEN 参数
参数
参数类型
数据类型
描述
Execute
输入
BOOL
启用指令块。
  • TRUE: 检测到上升沿,启动指令块,前提是上一个操作已完成。
  • FALSE:未检测到上升沿。
Instance
输入
UDINT
复制从 SOCKET_CREATE 功能块返回的套接字句柄。
Timeout
输入
UDINT
SOCKET_OPEN 功能块的超时。
如果“超时”值小于最小值,功能块会返回错误。
超时范围:1,000-1,800,000 毫秒
将“超时”设置为 0 以使用默认值 10000(10 秒)。
DestAddr
输入
目标连接的地址。
必须在远程主机的 IP 地址和端口号之间建立连接。
以下 IP 地址不受 DestAddr 支持:
  • 自 IP 地址
  • 回路地址
  • 0.0.0.0
  • 广播地址(仅支持 TCP),异常地址:
  • D 类多播地址 (224.x.x.x)
  • 本地链接地址 (169.254.x.x)
IP 地址 192.168.2.100 和端口 12000 的示例:
  • DestAddr.IPAddress[0]=192
  • DestAddr.IPAddress[1]=168
  • DestAddr.IPAddress[2]=2
  • DestAddr.IPAddress[3]=100
  • DestAddr.Port = 12000
EnUDPRxFilter
输入
BOOL
对于 UDP 套接字,当使用 SOCKET_OPEN 和 Enable EnUDPRxFilter 时,无需在每次读取数据时都使用特定 IP 地址和端口号的数据包过滤器。
  • 已创建 UDP 套接字(采用 Open)。DestAddr 为 IP 192.168.1.157 / 端口 161。EnUDPRxFilter 启用,执行 Socket_Read。
  • 当控制器从 DestAddr (192.168.1.157 / 161) 接收数据时,Socket_Read 将成功完成操作。如果控制器从任何其他 IP 或端口接收数据,则 socket_Read 将忽略该数据包,并等待 DestAddr 数据包。
EnUDPRxFilter 已禁用:
  • 执行 SOCKET_READ。控制器在已配置的 UDP 端口上接收任何数据,并且 SOCKET_READ 已成功完成操作。
  • 应用程序检查传入数据包是否来自于预期的设备。
  • 应用程序基于 SOCKET_READ 输出参数 UDPAddr 处理过滤。
Done
输出
BOOL
指示操作完成的时间。
  • TRUE: 操作已成功完成。
  • FALSE:操作正在进行或遇到错误条件。
输出与程序扫描同步更新。
Busy
输出
BOOL
  • TRUE: 操作未完成。
  • FALSE:操作已完成。
输出与程序扫描同步更新。
Error
输出
BOOL
指示发生了错误。
  • TRUE: 检测到错误。
  • FALSE:无错误。
输出与程序扫描同步更新。
Status
输出
SOCK_STATUS
使用 SOCK_STATUS 数据类型定义状态,包含 ErrorID、SubErrorID 和 StatusBits 信息。
输出与程序扫描同步更新。

SOCKET_OPEN 示例

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