
TRCV — 底层 TCP 接收
在已建立的连接上接收数据;需配合 TCON 使用同一连接 ID。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
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 建立的连接。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 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 |

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