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

图中 # 前缀表示块内局部变量;实际工程里也可以是全局标签或 DB 变量。
怎么工作
TSEND_C是 FB,需要静态实例(本页Inst_TSEND_C)和连接参数Conn(TCON_IP_v4)。Enable=1时块被调用;CONT=1保持连接;REQ上升沿触发一次发送。DATA是发送缓冲,LEN是字节数;发送完成前不要改写缓冲。ADDR和COM_RST可以留空:示例就没有接。ADDR为空时地址由CONNECT提供;COM_RST为空按 0 处理(不复位)。需要复位通信时,给COM_RST一个扫描周期的 1。DONE/BUSY/ERROR/STATUS给出执行状态。- 本页示例是 FB;导入后要给它分配实例 DB 才能调用。
常用场景
1. 发送一段数据
同上面的最小示例。
2. 发送 16 字节
把 16 字节的发送缓冲发到伙伴;LEN=16。
| 输入 | 示例值 | 说明 |
|---|---|---|
Enable |
TRUE |
每个扫描调用 FB |
REQ |
0 → 1 → 0 |
上升沿触发一次发送 |
CONT |
TRUE(图中常量) |
保持连接 |
LEN |
16(图中常量) |
发送 16 字节 |
Data[0..15] |
16#01, 16#03, 16#00, 16#00, 16#00, 16#0A, 16#C5, 16#CD,其余为 0 |
示例报文,按实际协议填写 |
Conn |
伙伴 192.168.0.10:2000,主动连接 |
TCON_IP_v4 的具体字段按硬件组态填写 |
标量参数(CONT/LEN)可以直接在梯形图上写成常量;Data 数组和 Conn 结构不适合逐项写常量,通常用 DB 起始值/连接组态,或先用 MOVE/FillBlock 预置。

常见坑
- 没配连接:
CONNECT需要正确的 IP/端口/角色;导入只保证编译,不会自动建立连接。 - REQ 一直为 1:用上升沿触发,避免重复发送。
- 缓冲被改写:
BUSY=1时不要改DATA。 - 实例/连接:每个连接用固定实例,不要在多个地方复用同一个实例。
- STATUS:出错时先看
STATUS,再查连接/伙伴状态。