当前位置: 首页 > news >正文

S7-200 SMART 开放式用户通信(OUC)深度指南:TCP/ISO-on-TCP(上)

在工业自动化现场,当你需要让 S7-200 SMART PLC 与非西门子设备(比如三菱机器人、基恩士视觉系统、第三方仪表)通信时,之前讲的 GET/PUT 指令就 “失灵” 了 —— 这时必须靠开放式用户通信(OUC) 。OUC 基于标准 Socket 协议,支持 TCP、UDP、ISO-on-TCP 三种模式,是 PLC 打破品牌壁垒、实现灵活互联的 “核心工具”。

但很多工程师面对 OUC 的四条指令(TCON、TSEND、TRECV、TDCON)时,常被 “参数表配置”“主动 / 被动模式”“UDP 与 TCP 区别” 搞晕。今天就从基础逻辑到实战案例,把 OUC 拆透,帮你搞定跨设备通信!

一、先搞懂:OUC 是什么?和 GET/PUT 有啥不一样?

开放式用户通信(OUC)本质是底层 Socket 通信接口,给 PLC “自定义通信规则” 的权限 —— 你可以自己定义数据格式(比如 ASCII 码、二进制)、交互逻辑(比如 “发指令→等回复→再执行”),不像 GET/PUT 只能用固定 S7 协议。

OUC 与 GET/PUT 的核心差异(避坑第一点)

对比维度

GET/PUT 通信

开放式用户通信(OUC)

适用设备

仅限西门子 PLC(S7-200/1200 等)

所有支持 TCP/UDP/ISO-on-TCP 的设备(跨品牌)

协议支持

仅 S7 协议

TCP、UDP、ISO-on-TCP(RFC 1006)

灵活性

固定格式,无自定义空间

完全自定义协议、数据帧结构

连接管理

自动维护连接

需手动用 TCON 建连接、TDCON 断连接

核心依赖

远程 IP + 数据地址

连接 ID(唯一标识一个通信链路)

关键前提

  1. 硬件支持:仅带以太网端口的 S7-200 SMART CPU(ST20/ST30/ST40/ST60)支持,CR 系列无网口不支持;
  2. 后台通信时间:OUC 指令需要足够的 “后台时间” 处理数据,默认 10ms 可能不够 —— 需在 MicroWIN“系统块→通信” 中改到 30~50ms(最多 255ms);
  3. 连接 ID 唯一性:每个 OUC 连接需分配唯一的 “连接 ID”(0~65534,不可用 65535),TSEND/TRECV/TDCON 需通过连接 ID 关联到对应的 TCON。

二、指令拆解:四条 OUC 指令,一条都不能错!

OUC 的核心是 “连接→收发→断开” 的闭环,对应四条指令:TCON(建连接)、TSEND(发数据)、TRECV(收数据)、TDCON(断连接) 。每条指令都依赖 “参数表”(连续 VB 区),参数配置错了,通信必失败。

1. TCON:通信的 “第一步”—— 建立连接

TCON 是 “连接创建器”,负责与远程设备建立 TCP/UDP/ISO-on-TCP 连接,关键是区分主动模式(客户端) 和被动模式(服务器) :

  • 主动模式:PLC 主动发起连接(比如 PLC 连机器人,PLC 是客户端);
  • 被动模式:PLC 等待远程设备连接(比如 PLC 连 PC,PLC 是服务器)。
TCON 参数表:两种格式(必看!)

TCON 参数表分 “TCP/UDP 通用格式” 和 “ISO-on-TCP 专用格式”,核心差异在是否需要配置 TSAP(ISO-on-TCP 特有)。

(1)TCP/UDP 的 TCON 参数表(字节偏移量对应内容)

字节偏移量

位分配 / 作用

关键细节

0

状态位(D = 完成,A = 激活,E = 错误)+ 错误代码高 5 位

输入时忽略,输出时显示通信状态;E=1 时需查错误代码

1

位 0=REQ(触发建连),位 7=A/P(1 = 主动,0 = 被动)

REQ 需上升沿触发(避免重复建连);A/P 决定 PLC 是客户端还是服务器

2~3

连接 ID(16 位)

唯一标识,比如连接 1 设为 10,连接 2 设为 20,不可重复且≠65535

4

连接类型

TCP=11,UDP=19(必须填对,错了直接建连失败)

5~8

远程 IP 地址(4 字节,大端)

主动模式:填远程设备 IP(如 192.168.2.30→0xC0,0xA8,0x02,0x1E);被动模式:填 0.0.0.0(允许所有 IP 连)

9~10

远程端口(16 位)

主动 TCP:填远程设备端口(如机器人端口 5000);UDP / 被动 TCP:填 0

11~12

本地端口(16 位)

主动 / 被动模式都需填(如 1024,避免用 1024 以下的知名端口)

(2)ISO-on-TCP 的 TCON 参数表(差异点)

ISO-on-TCP 是 “带确认的 TCP”,需额外配置 TSAP(传送服务访问点),参数表后半段不同:

字节偏移量

作用

关键细节

4

连接类型

ISO-on-TCP=12(固定)

5~8

远程 IP 地址

同 TCP 格式

9~25

远程 TSAP(2~16 字符)

如 “E001”(需与远程设备一致,格式:首字符 0xE0,后跟 1 字节标识)

26~42

本地 TSAP(2~16 字符)

如 “E002”,不可用 “SIMATIC” 字符串,需与远程 TSAP 匹配

实战注意点
  • 主动模式建连失败:先 ping 远程 IP,再查连接类型、端口是否匹配(比如远程设备端口没开);
  • 被动模式没人连:查本地端口是否被占用(比如其他程序用了 1024 端口),可换个端口(如 2000)。

2. TSEND & TRECV:数据收发的 “核心操作”

TCON 建连成功后,靠 TSEND(发数据)和 TRECV(收数据)交换信息。两者参数表分 “TCP/ISO-on-TCP 通用” 和 “UDP 专用”,重点在 UDP 需每次指定远程 IP 和端口。

(1)TCP/ISO-on-TCP 的 TSEND 参数表

字节偏移量

作用

关键细节

0

状态位 + 错误代码高 5 位

同 TCON,D=1 表示发送完成

1

位 0=REQ(触发发送)

上升沿触发(避免重复发同一批数据);TRECV 忽略此位

2~3

连接 ID

必须与对应的 TCON 连接 ID 一致(比如 TCON 用 10,TSEND 也用 10)

4~5

数据长度(16 位)

最大 1024 字节(超过需分多次发送)

6~9

数据指针(本地地址)

指向要发送的数据区(如 & VB100,表示从 VB100 开始发)

(2)UDP 的 TSEND 参数表(差异点)

UDP 是 “无连接” 协议,每次发送都要指定远程 IP 和端口,参数表多了 4 个字节:

字节偏移量

作用

关键细节

10~13

远程 IP 地址

每次发送都需填(如 192.168.2.40→0xC0,0xA8,0x02,0x28)

14~15

远程端口

每次发送都需填(如仪表端口 6000)

(3)TRECV 参数表(TCP/ISO-on-TCP vs UDP)

TRECV 是 “常使能” 指令(En_R=1),等待接收数据,参数表与 TSEND 类似,但有 2 个关键差异:

  1. 数据长度:输入时是 “接收缓冲区最大容量”,输出时是 “实际接收字节数”;
  2. UDP 特有字段:接收后,字节 10~13 会返回 “发送方 IP”,字节 14~15 返回 “发送方端口”(可用于识别多台 UDP 设备)。
实战注意点
  • TSEND 发送失败:查连接 ID 是否匹配、连接是否已建立(TCON 的 Done 位是否为 1);
  • TRECV 收不到数据:① 确认 TRECV 已使能(En_R=1);② TCP 是 “流协议”—— 若远程连续发多个小消息,PLC 可能一次收到合并的大消息,需自定义 “消息头 + 长度” 拆分(比如前 2 字节表示消息长度);
  • 缓冲区溢出:TRECV 的 “数据长度”(缓冲区容量)要大于等于远程发送的字节数,否则超出部分会丢失,且报 “缓冲区溢出” 错误。

3. TDCON:通信的 “收尾”—— 断开连接

当通信结束(比如设备停机),需用 TDCON 断开连接,释放资源(避免占用连接数)。

TDCON 参数表(超简单,仅 4 字节)

字节偏移量

作用

关键细节

0

状态位 + 错误代码高 5 位

D=1 表示断开完成;E=1 可能是 “连接已断开”(错误代码 24)

1

位 0=REQ(触发断连)

上升沿触发(避免重复断连)

2~3

连接 ID

与要断开的 TCON 连接 ID 一致

实战注意点
  • 断开后重连:TDCON 断开后,若需重新通信,必须重新调用 TCON(PLC 不会自动重连);
  • 报错 “无待决操作”(错误代码 24):说明连接已断开,无需再执行 TDCON。

http://www.dtcms.com/a/423592.html

相关文章:

  • 03_交易的核心:我如何驾驭趋势与反趋势
  • 比较网站建设长春建设网站制作
  • 丢件预警!快递批量查询工具,未更新物流自动提醒,避免损失
  • 申请建设部门网站的报告用discuz做的门户网站
  • 厦门网站建设多少钱网站设计登录界面怎么做
  • FastAPI参数类型与请求格式详解:Query、Form、Body、File与Content-Type的对应关系
  • Apache介绍和安装
  • 网站建设设计 昆山设计科技有限公司
  • wordpress制作购物网站网站制作app排行榜前十名
  • docker单机部署hadoop 官方镜像3.3.6 过程问题记录
  • 实时大数据项目:Flink + Kafka + ClickHouse 大屏展示
  • 基层建设收录网站wap网页设计
  • Day31_【 NLP _1.文本预处理 _(4)文本特征处理、文本数据增强】
  • 游戏充值网站怎么做wordpress视频自动播放
  • 企业网站建设有几种形式免费查询个人名下公司
  • Java对象比较
  • Java异常处理的艺术
  • std::packaged_task 深度解析
  • iOS 26 App 性能测试,新版系统下如何全面评估启动、渲染、资源、动画等指标
  • 手机非法网站怎么解决方案1万元可以注册公司吗
  • 信息收集总结
  • ceph 动态平衡子树
  • 4.3 IPv6 (答案见原书 P182)
  • 响应式网站有哪些2017企业做网站设置哪些模块
  • 【洛谷】二叉树专题全解析:概念、存储、遍历与经典真题实战
  • 重庆网站建设合肥公司世界500强企业排名中国企业
  • Intel8259中断配合串口接收
  • 济南网站建设与维护廊坊做网站公司
  • 好女人生活常识网站建设厦门建设局网站技227司学校
  • 如何让AI实现自动化 —— PlayWright MCP 实测