
TRCV_C — TCP 接收
通过 TCP 连接接收数据:EN_R 使能,DATA 提供接收缓冲。
在 TIA 里试一下
选一个示例块,通过 TiaLink 导入当前 TIA 项目:预检、默认不覆盖、不自动保存。示例块不会自动运行;导入后请在 OB1 调用并接变量。
一句话
TRCV_C 通过 TCP 连接接收数据:EN_R 使能,DATA 提供接收缓冲。
符号与引脚
分类:通信
需要实例
模板值:无
| 引脚 | 方向 | 说明 |
|---|---|---|
en | 流输入 | 使能输入 |
EN_R | 输入 | 接收使能 |
CONT | 输入 | 保持连接 |
LEN | 输入 | 最大接收字节数 |
ADHOC | 输入 | 临时连接模式 |
CONNECT | 输入 | 连接参数 |
DATA | 输入 | 接收缓冲 |
ADDR | 输入 | 可选地址参数 |
COM_RST | 输入 | 复位通信 |
DONE | 输出 | 完成 |
BUSY | 输出 | 忙 |
ERROR | 输出 | 错误 |
STATUS | 输出 | 状态码 |
RCVD_LEN | 输出 | 实际接收字节数 |
符号见下面的最小示例;引脚名与方向来自 lad-ir 指令目录,说明为本站补充。
最小示例
Enable=1 时每个扫描调用;EN_R=1、CONT=1 时等待接收,收到数据后 DONE=1。

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
TRCV_C是 FB,需要静态实例和连接参数Conn(TCON_IP_v4)。Enable=1时块被调用;EN_R=1表示准备好接收;CONT=1保持连接。LEN是接收缓冲的最大字节数,DATA是缓冲;RCVD_LEN是实际收到的字节数。ADDR和COM_RST可以留空:示例没有接。ADDR为空时地址由CONNECT提供;COM_RST为空按 0 处理。需要复位通信时,给COM_RST一个扫描周期的 1。DONE/BUSY/ERROR/STATUS给出执行状态。TRCV_C是 terminal,rung 在它这里结束。
常用场景
1. 接收数据
同上面的最小示例。
2. 接收 16 字节
用 16 字节缓冲接收伙伴发来的数据,再用 RCVD_LEN 判断有效长度。
| 输入 | 示例值 | 说明 |
|---|---|---|
Enable |
TRUE |
每个扫描调用 FB |
EN_R |
TRUE |
准备好接收 |
CONT |
TRUE(图中常量) |
保持连接 |
LEN |
16(图中常量) |
接收缓冲最大 16 字节 |
Data[0..15] |
初始全 0 |
接收缓冲,收到后由指令写入 |
Conn |
伙伴 192.168.0.10:2000,主动连接 |
TCON_IP_v4 的具体字段按硬件组态填写 |
CONT/LEN 已写成常量;Data 缓冲和 Conn 结构通常由 DB/连接组态提供。

常见坑
- 没配连接:
CONNECT需要正确的 IP/端口/角色;导入只保证编译。 - EN_R 断开:断开后不再接收;保持连接用
CONT。 - 缓冲太小:
LEN要 ≥ 期望的最大报文;否则会报错/截断。 - RCVD_LEN:实际长度以
RCVD_LEN为准,不要假设等于LEN。 - 实例复用:不同连接用不同实例。