跳到正文
Learn-LAD
梯形图示例库/LAD 指令手册/TRCV — 底层 TCP 接收

TRCV — 底层 TCP 接收

在已建立的连接上接收数据;需配合 TCON 使用同一连接 ID。

通信 S7-1200/1500 TIA V19 别名:TCP 接收(底层) / TRCV

在 TIA 里试一下

选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。

TiaLink 设置

默认 http://localhost:8080。也可以在本页地址后加 ?tialink= 临时指定。

TiaLink 启动时若设置了 --api-token,这里要填相同的值;只保存在本机浏览器 localStorage,不会上传。

一句话

TRCV 在已建立的连接上接收数据;需配合 TCON 使用同一连接 ID。

符号与引脚

分类:通信 需要实例 模板值:card, ptr_type, 计数值类型(value_type), id_type
引脚方向说明
en流输入使能输入
EN_R输入接收使能
ID输入连接 ID
LEN输入最大接收长度
ADHOC输入临时模式
DATA输入接收缓冲
eno流输出使能输出
NDR输出新数据
ERROR输出错误
BUSY输出忙
STATUS输出状态码
RCVD_LEN输出实际接收长度

符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。

最小示例

Enable=1 时每扫描调用;EN_R=1 等待接收,ID=1 是 TCON 建立的连接。

TRCV_Example:Network 1 — TCP 接收

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。

怎么工作

  • TRCV 是 FB,需要静态实例;连接由 TCON 建立。
  • ID 必须和 TCON/TSEND/TDISCON 用同一个连接 ID。
  • LEN 是接收缓冲最大长度,DATA 是缓冲;RCVD_LEN 是实际收到的长度。
  • NDR/BUSY/ERROR/STATUS 给出执行状态。
  • TRCV_C 是“建连接 + 接收”的封装;TRCV 更底层。

常用场景

1. 接收数据

同上面的最小示例。

2. 接收 16 字节

用 16 字节缓冲接收数据,再用 RCVD_LEN 判断有效长度。

参数 示例值
Enable TRUE
EN_R TRUE
ID 1
LEN 16
Data Array[0..15] of UDInt
TRCV_Receive16:Network 1 — 接收 16 字节

常见坑

  • 没建连接:先 TCON,且 ID 一致。
  • 缓冲太小:LEN 要 ≥ 期望最大报文。
  • RCVD_LEN:实际长度以 RCVD_LEN 为准。
  • 实例复用:每个连接用固定实例。

← 返回 LAD 指令手册