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

TRCV_C — TCP 接收

通过 TCP 连接接收数据:EN_R 使能,DATA 提供接收缓冲。

通信 S7-1200/1500 TIA V19 别名:TCP 接收 / TRCV_C

在 TIA 里试一下

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

TiaLink 设置

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

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

一句话

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。

TRCV_C_Example:Network 1 — TCP 接收

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

TRCV_C_Receive16:Network 1 — 接收 16 字节

常见坑

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

← 返回 LAD 指令手册