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

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

三、通信流程:客户端 vs 服务器,两步走!

OUC 的通信流程分 “客户端模式”(PLC 主动连设备)和 “服务器模式”(PLC 等设备连),现场最常用的是客户端模式(比如 PLC 连视觉系统)。

1. 客户端模式流程(PLC 主动连远程设备)

以 “PLC(客户端)用 TCP 连机器人(服务器)” 为例:

  1. 初始化:首次扫描清空 TCON/TSEND/TRECV 参数表,设置后台通信时间(50ms);
  2. 建连接:上升沿触发 TCON(A/P=1,连接类型 = 11,远程 IP = 机器人 IP,远程端口 = 机器人端口);
  3. 查状态:等待 TCON 的 Done 位(D=1),确认连接建立;
  4. 数据收发:上升沿触发 TSEND(发 PLC 的设备状态),常使能 TRECV(收机器人的执行结果);
  5. 断连接:设备停机时,上升沿触发 TDCON,断开连接。

2. 服务器模式流程(PLC 等远程设备连)

以 “PLC(服务器)用 TCP 连 PC(客户端)” 为例:

  1. 初始化:同客户端,TCON 参数表 A/P=0(被动),远程 IP=0.0.0.0,本地端口 = 1024;
  2. 等待连接:调用 TCON(REQ=1 一次),PLC 进入 “等待连接” 状态(A=1);
  3. 建立连接:PC 端发起连接后,TCON 的 D=1,连接建立;
  4. 数据收发:同客户端;
  5. 断连接:PC 断开或 PLC 停机时,执行 TDCON。

四、最实用:OUC 常见错误代码与解决方法

OUC 报错时,先看指令参数表的 “错误代码”(字节 0 的高 5 位 + 字节 1),以下是 5 个现场高频错误:

错误代码(十六进制)

错误原因

解决步骤

0x0100

参数非法(最常见):1. 连接类型填错(如 TCP 填 19)2. 连接 ID=655353. 本地端口被占用

1. 核对连接类型代码(TCP=11,UDP=19,ISO-on-TCP=12)2. 改连接 ID 为 0~655343. 换本地端口(如从 1024 换为 2000)

0x0500

连接失败:1. 远程设备断电 / 断网2. 远程 IP / 端口错3. 远程设备拒绝连接

1. ping 远程 IP,确认网络通断2. 核对远程 IP 和端口(比如机器人端口是否设为 5000)3. 检查远程设备是否允许 PLC 的 IP 连接

0x1800(错误代码 24)

无待决操作:1. TDCON 断开已断开的连接2. TSEND 调用时连接未建立

1. 断连前先查 TCON 的 D 位,确认连接存在2. 等 TCON 的 D=1 后再调用 TSEND

0x0A00

缓冲区溢出(TRECV):接收缓冲区容量<远程发送字节数

1. 增大 TRECV 的 “数据长度”(缓冲区容量)2. 让远程设备分批次发送(每次≤1024 字节)

0x0B00

连接被远程设备断开

1. 检查远程设备是否异常(如机器人急停)2. 重新调用 TCON 建连

五、实战案例:PLC(客户端)用 TCP 连 PC

以 “PLC 发送设备状态(VB100~VB102,3 字节),接收 PC 控制指令(VB200~VB201,2 字节)” 为例,写完整程序。

1. 硬件配置

  • PLC IP:192.168.2.10,本地端口:1024;
  • PC IP:192.168.2.50,PC 端用 “网络调试助手” 设为 TCP 服务器,端口:5000。

2. 程序编写(LAD 梯形图)

Network 1:初始化(首次扫描)

 // 首次扫描

FILL +0, VW0, 50  // 清空参数表(VB0~VB49,足够存4条指令)

MOVB 50, SMB30    // 后台通信时间设为50ms

Network 2:上升沿触发 TCON(建连接)

 // 启动按钮(按下触发建连)

 // 上升沿

 // 建连触发标志

// 配置TCON参数表(VB0起始,TCP客户端)

 // 位7=A/P=1(主动),位0=REQ=1

 // 连接ID=10

 // 连接类型=TCP(11)

// 远程IP:192.168.2.50(0xC0,0xA8,0x02,0x32)

 // 远程端口=5000

 // 本地端口=1024

TCON VB0          // 执行建连

M0.0      // 复位触发标志

Network 3:发送触发标志

 SM0.5          // 1秒脉冲

EU                // 上升沿

V0.7          // TCON完成位(D=1,连接建立)

VB10.5         // TSEND无错误(E=0)

= M0.1            // 发送触发标志

Network 4:TSEND 发送设备状态(1 秒一次)

 // 配置TSEND参数表(VB10起始,连接ID=10)

MOVB 1, VB11      // 位0=REQ=1

MOVW 10, VW12     // 连接ID=10(与TCON一致)

MOVW 3, VW14      // 数据长度=3字节(VB100~VB102)

MOVD &VB100, VD16 // 数据指针=VB100

TSEND VB10        // 执行发送

MOVB 0, M0.1      // 复位触发标志

Network 5:TRECV 接收 PC 指令(常使能)

VB0.7          // 连接建立(D=1)

VB20.5         // TRECV无错误(E=0)

M0.2            // 接收使能标志

// 配置TRECV参数表(VB20起始,连接ID=10)

MOVW 10, VW22     // 连接ID=10

MOVW 2, VW24      // 缓冲区容量=2字节(VB200~VB201)

MOVD &VB200, VD26 // 数据指针=VB200

TRECV VB20        // 常使能接收

Network 6:TDCON 断开连接

 I0.1           停止按钮(按下断连)

配置TDCON参数表(VB30起始,连接ID=10)

MOVB 1, VB31      位0=REQ=1

MOVW 10, VW32     连接ID=10

TDCON VB30        执行断连

六、常见问题 Q&A(现场踩坑总结)

  1. Q:TCP 连接建立后,远程设备突然断网,PLC 能自动重连吗?

A:不能!PLC 会保持 “连接丢失” 状态,需程序判断 TCON 的错误位(E=1),然后重新触发 TCON 建连(比如用定时器每隔 5 秒重试一次)。

  1. Q:UDP 发送时,每次都要填远程 IP 和端口吗?

A:是的!UDP 是无连接协议,没有 “固定连接”,每次发送都需在 TSEND 参数表中指定远程 IP 和端口(字节 10~15)。

  1. Q:TRECV 接收 TCP 数据时,为什么一次收到多批数据?

A:TCP 是 “流协议”,不区分消息边界 —— 若远程设备快速发多个小消息,PLC 会把它们合并成一个大消息。解决:自定义消息格式(比如前 2 字节是 “消息长度”,PLC 按长度拆分数据)。

最后

OUC 指令的核心是 “灵活但需严谨”—— 它能解决跨品牌通信的痛点,但参数配置、连接管理、错误处理都需要手动把控。如果你的现场遇到 “PLC 连不上视觉系统”“UDP 发送丢包” 这类问题,不妨按 “查连接 ID→核参数表→看错误代码” 的步骤排查,基本都能定位问题。

如果还有特殊场景(比如用 ISO-on-TCP 连西门子 1500),欢迎在评论区留言,咱们一起拆解解决方案!

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

相关文章:

  • 华为云在工业软件上云上的优势
  • C++ 并发编程与多线程面试题精选
  • 【2025年9月版 亲测可用】《人民日报》PDF文件下载
  • 企业网站建设记什么会计科目php wap网站源码
  • 深圳企业网站建设价格怎么创建微信公众号免费
  • 使用IOT-Tree Server通过PPI协议连接西门子PLC S7-200 Smart
  • 潮汐流量处理系统设计方案
  • 鸿蒙与iOS跨平台开发方案全解析
  • 把项目通过pycharm上传到github(两种方式)
  • 邢台网站推广专业服务正规电商平台有哪些
  • 适配多元场景物料搬运!IXTUR气控永磁铁为多行业注入自动化新动能
  • 以自然语言实现AI自动化Browser-use 详细介绍与使用指南
  • 怎么使用创客贴网站做图h5网站开发
  • 青岛网站设计品牌企业Wordpress启动mysql
  • STM32 程序内存分布详解
  • Django 入门:快速构建 Python Web 应用的强大框架
  • 返利机器人的智能对话架构:基于NLP(ChatGLM)+Spring Boot的客服机器人开发实践
  • 专题:2025零售数字化与即时零售竞争洞察报告|附130+份报告PDF、数据仪表盘汇总下载
  • 语义网络对人工智能中自然语言处理的深层语义分析的影响与启示
  • ADC (Analog-to-Digital Converter) 模数转换器详解
  • 商城类的网站怎么做优化网络建设方案ppt
  • Go基础(⑧JSON Web Token)
  • MR+AI变革传统MRO,提升工作效率
  • 每周读书与学习->初识JMeter 元件(三)
  • MR模板以及代码审查规范
  • 什么是网站推广优化剧院网站建设
  • dede如何手机网站和电脑网站的数据同步更新网站改版是什么意思
  • ubuntu安装go
  • 用 go-commons 高效处理字符串
  • 二手网站建设论文广州做网站多少钱