ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

工业互联网集成应用实战:RFID通讯、智能IO组态与平台建模全解析

工业互联网集成应用实战:RFID通讯、智能IO组态与平台建模全解析

简介:这份PDF是2024年上海高职院校学生技能大赛“工业互联网集成应用师生同赛”赛项样题,面向高职院校参赛师生及工业互联网相关专业教学人员,用于熟悉赛项规程、任务结构与考核要点。内容涵盖竞赛须知、职业素养与安全规范、扣分项说明,以及加盖拧盖单元、智能物流单元和工业互联网平台的完整工作流程,并给出模块一设备安装与调试中RFID读写器接线、IP地址分配、PLC通讯编程等具体任务要求,可作为赛前训练与课堂案例参考。资源包共1个PDF文件,约360KB,轻量便于查阅与打印。已有274人浏览学习,适合需要了解赛题全貌、梳理任务实施步骤与评分逻辑的读者参考使用。

1. 从一道样题看工业互联网集成应用到底考什么

第一次拿到这份“工业互联网集成应用师生同赛”样题时,我注意到一个反直觉的细节:整份任务书里,纯写 PLC 逻辑的分数只占一小部分,真正拉开差距的是 RFID 读写器通讯、智能阀岛组态、平台建模和边缘计算可视化这些“制造 + 互联网”交叉环节。也就是说,这套赛题考的不是单点编程能力,而是把现场设备、标识解析、数据采集、平台应用串成一条完整链路的能力。它适合正在做工业互联网方向毕设或课设的学生,也适合需要交付产线集成方案的技术人员——因为样题本身就是一份压缩过的项目需求书,四个小时、两个模块、若干可提交截图,结构清晰到可以直接当模板拆解。

2. 需求拆解与总体架构:两个单元、三层结构、四类交付物

2.1 从任务书反推功能边界

把样题正文按“设备—网络—平台”三层重新读一遍,需求其实非常收敛。现场层是加盖拧盖单元和智能物流单元两个工作站,前者负责物料瓶的上盖与拧盖,后者负责按规则把成品分拣到 1 号、2 号、3 号存储区。控制层是两台 PLC,分别挂在 192.168.1.21 和 192.168.1.51 两个网段地址上,各自带智能阀岛/智能 IO 和 RFID 读写头。平台层是一套工业互联网平台,地址 192.168.1.100:30000,承担设备建模、网关配置、生产排程、可视化监控和告警规则。

这个边界决定了方案不能写成“PLC 编程教程”,而要写成“集成方案”。我一般会把交付物先列清楚:模块一交的是安装接线截图、组态截图、通讯程序截图;模块二交的是模型列表、设备资产、点位导出、北向配置、可视化页面和告警规则详情。交付物反过来约束设计——凡是最后要截图的界面,前面配置时就必须留好命名和层级,否则四小时内根本来不及返工。

2.2 三层架构与模块职责划分

整体架构可以画成三层。现场设备层包含输送带电机、加盖伸缩/升降气缸、拧盖升降/定位气缸、分拣气缸、伺服搬运机构,以及贴在物料瓶上的 RFID 标签。控制与采集层是两台 PLC 加智能阀岛/智能 IO,PLC 通过 PROFINET 一类现场总线管理 IO,同时通过 TCP 与 RFID 读写头交换 72 字节的收发数组。平台应用层负责网关南向采集 PLC 点位、北向把标准化数据推给平台,再在平台上做模型定义、设备实例、排程下发和可视化绑定。

模块职责上,加盖拧盖单元的关键是“定位—加盖—拧盖”三段动作的互锁,以及 RFID 读取成功标志 M20.5 与后续流程的衔接;智能物流单元的关键是分拣计数规则和伺服搬运入仓。两个单元之间通过平台联机,联机模式下 1 号存储区放满 4 个就需要人为取走,这一点在方案里必须写成操作约束,不能当成纯软件逻辑。

2.3 地址与点位规划表

地址规划是这类方案最容易埋雷的地方。样题给了两张 IP 表和两张 IO 表,实际做方案时我会把它们合并成一张总表,避免现场接线时来回翻页。

设备IP 地址端口/备注关键点位示例
加盖拧盖 PLC192.168.1.21—I2.0 瓶盖料筒检测、Q2.0 输送带电机
智能阀岛/智能 IO(加盖)192.168.1.22名称 pn-dev2I2.3 加盖前限、Q4.0 加盖伸缩气缸
RFID 读写头(加盖)192.168.1.24端口 9000发送/接收数组 DB1.DBX0.0
智能物流 PLC192.168.1.51—X100 分拣 A 位检测、Y100 物流主电机
RFID 读写头(物流)192.168.1.54端口 9000接收变量 rcv_buffer
工业互联网平台192.168.1.10030000网关、模型、排程

提示:表里的 IO 地址在样题中同时给了硬件接线编号(I0:0)和软件地址(I2.0),组态时以软件地址为准,接线时以硬件编号为准,两套编号混用是新手最常见的错位来源。

3. 模块一落地:RFID 通讯、智能 IO 组态与网络打通

3.1 RFID 读写器通讯程序的实现骨架

样题对 RFID 通讯的要求写得很具体:发送数组和接收数组都是 Array[0..71] of Byte,接收成功判断 16#C5,失败判断 16#C8,成功后置位 M20.5。这段逻辑用结构化文本写出来大致如下,变量名沿用任务书里的定义,方便对照截图。

// "RFID" 函数:触发读取标签 M21.1 为真时进入通讯流程 IF "触发读取标签" THEN "标签读取延时" := FALSE; // 复位延时标志,准备新一轮通讯 // 步骤 b:组帧并发送 72 字节数据到 RFID 读写头 "RFID 数据".发送[0] := 16#01; // 命令字,按读写器手册填写 "RFID 数据".发送[1] := 16#00; // ... 其余字节按协议填充 SEND_RFID(REQ := TRUE, DATA := "RFID 数据".发送, DONE => "发送完成", ERROR => "发送错误"); // 步骤 c:发送成功才进入接收,失败回到发送 IF "发送完成" THEN // 步骤 d:接收读写器返回数据 RECV_RFID(REQ := TRUE, DATA => "RFID 数据".接收, DONE => "接收完成", ERROR => "接收错误"); // 步骤 e:按返回码判断成功或失败 IF "RFID 数据".接收[0] = 16#C5 THEN "读取标签成功" := TRUE; // M20.5,交给下一流程 "触发读取标签" := FALSE; ELSIF "RFID 数据".接收[0] = 16#C8 THEN "标签读取延时" := TRUE; // 失败,延时后重试 END_IF; END_IF; END_IF;

这段代码的设计说明有三点。第一,发送和接收必须严格串行,不能同时发起,否则读写器返回的数据会错帧。第二,16#C5 和 16#C8 是样题给定的成功/失败码,实际项目里要按设备手册确认,不能照抄。第三,失败分支不是简单丢弃,而是置位延时标志后回到发送步骤,形成有限重试,避免一次读不到就卡死整条产线。参数上,72 字节的数组长度由读写器协议决定,改短会截断标签数据,改长则可能触发缓冲区异常。

3.2 智能阀岛/智能 IO 的组态与 IO 映射

任务 1-2 要求补的是组态、网络参数和 IO 地址配置。落地顺序我通常这样走:先在工程里添加智能阀岛/智能 IO 的 GSD 文件,设备名设为 pn-dev2,IP 设为 192.168.1.22,与 PLC 处于同一网段;然后在设备视图里核对模块顺序,确保输入输出字节数与表 1-3 一致;最后把 I2.0 到 I3.1、Q2.0 到 Q4.4 逐条映射到程序变量。

这里有个容易忽略的点:表 1-3 里输入从 I0:0 到 I1:1 共 10 点,输出从 Q0:0 到 Q1:4 共 9 点,但软件地址跳到了 I2.x 和 Q2.x/Q4.x。这不是笔误,而是组态时模块起始地址设置的结果。组态时如果按默认从 I0.0 开始分配,程序里所有点位都会整体偏移,现象是“程序逻辑没错但气缸不动”。我的做法是组态完成后先在线监控,逐个强制输出,确认 Q4.0 对应的是加盖伸缩气缸再往下写逻辑。

3.3 网络接线与平台网关连通性验证

任务 1-3 把两个单元之间的网络接线和 PLC 与平台网关的通讯配置放在一起。接线层面按图 1-3、图 1-4 走,重点是两个单元各自的路由/交换设备要能互通,且平台网关能访问到 192.168.1.21 和 192.168.1.51。配置完成后不要急着往下做平台建模,先用最朴素的方式验证:在编程电脑上 ping 两个 PLC 地址和平台地址,全部通再进平台配网关。

网关配置时,南向选 PLC 协议,填 IP 和机架槽位,先只加一个点位试采。采到数再批量导入点位表,比一次性配几百个点再排查要快得多。北向配置按样题要求截图“1-7 北向配置”,通常是把标准化后的数据推到平台的消息通道,主题名和数据结构在配置页里要能对应上模型属性,否则后面可视化绑定时会找不到数据源。

4. 模块二落地:平台建模、排程下发与可视化绑定

4.1 数字化建模的顺序:先模型后设备

平台侧最容易做反的顺序是先建设备再补模型。样题任务 2-1 明确要求先完成网关模型、加盖拧盖单元模型功能定义、智能物流单元模型功能定义,再创建设备实例。正确顺序是:建网关模型 → 建两个单元的功能模型(属性、点位、事件)→ 基于模型创建设备资产 → 在网关里绑定 PLC、子设备和点位 → 配北向。

模型属性要和点位一一对应。比如加盖拧盖单元模型里定义“瓶盖料筒检测”“加盖位检测”等布尔属性,智能物流单元模型里定义“分拣 A 位检测”“搬运位检测”等,属性标识符建议用英文或拼音缩写,避免中文标识符在导出点位时出现编码问题。样题要求截图“1-5 加盖拧盖单元点位”和“1-6 智能物流单元点位”,导出的点位表就是模型属性与 PLC 地址的映射清单,这张表质量直接决定后面排程和可视化能不能跑通。

4.2 生产排程与三指令下发

任务 2-2 给了一个具体订单:5 瓶钙片,单瓶 2 粒,分三批,第一批 60%。排程创建时要把药品种类、填装颗粒数、订单数量配到两个单元设备上,然后下发。这里的关键不是填数字,而是理解样题那句“下发控制指令时需要下发 3 个指令”:开机要同时设定停机为 0、复位为 0、开机为 1,三个值为 1 的指令放最后,指令之间延时 1 秒。

// 平台侧下发开机指令的伪代码,体现三指令与延时 async function sendStartCommand(deviceId) { await writePoint(deviceId, 'stop', 0); // 先清停机 await sleep(1000); await writePoint(deviceId, 'reset', 0); // 再清复位 await sleep(1000); await writePoint(deviceId, 'start', 1); // 最后置开机 }

延时 1 秒不是随便定的,它给 PLC 扫描周期和网关写入留出余量。如果三条指令连发,PLC 可能在同一周期内看到互相矛盾的位,表现为设备抖动或直接不启动。排程下发后要观察设备是否按订单数量生产,第一批 60% 即 3 瓶,生产完再联机复位,才能下第二批。

4.3 可视化页面绘制与数据绑定

可视化部分要求画两个单元的设备页面,点击预览能远程启动,并且页面元素要绑定实时数据。我的做法是先画静态布局:加盖单元画料筒、加盖位、拧盖位、输送带;物流单元画三条存储区和搬运机构。然后逐个元素绑定模型属性,布尔量绑指示灯颜色,计数量绑文本。绑定完成后在设备监控页面再挂一次,形成“监控页 → 单元可视化页”的层级。

注意:样题要求“生产 2 瓶药,药品经物流分拣都进入存储区后”截图可视化页面,这意味着截图时机有讲究,必须等分拣动作完成、数据回传后再截,提前截会缺数据,裁判核验时对不上。

4.4 告警规则的两条落地线

任务 2-3 要建两条规则:设备温度超过 40 度产生二级高温报警;加盖拧盖单元未完成订单且停止生产产生 8 级其他类型告警。第一条是阈值规则,温度点位做比较,超过 40 触发,级别选二级。第二条是组合条件规则,需要同时满足“订单未完成”和“设备停止”两个状态,级别 8、类型选其他。规则建完后在规则应用里截图详情,截图里要能看到条件表达式和级别设置,只截列表页是不给分的。

5. 避坑与排查:四小时里最容易翻车的五件事

5.1 现象:RFID 一直返回 16#C8,重试也不成功

原因通常是发送帧格式不对或端口没对上。读写头端口是 9000,如果 PLC 侧连接参数里端口写成默认的 502 或 102,连接能建立但数据不通。解决方法是先核对读写器手册里的命令字和帧长度,再确认 PLC 的 TCP 连接块里远端端口为 9000,最后用抓包或读写器调试软件看发出的字节流是否与协议一致。

5.2 现象:智能 IO 组态下载后所有点位偏移

原因在 3.2 节提过,模块起始地址没按表设置。解决方法是回到设备视图检查每个模块的 I/Q 起始地址,确保第一个输入模块从 I2.0 开始而不是 I0.0,改完重新下载并在线强制验证。

5.3 现象:平台网关显示在线但采不到点位

原因多半是点位地址格式与 PLC 实际数据块不匹配,比如 DB1.DBX0.0 写成了 DB1.DBB0,或者数组长度声明不一致。解决方法是先在网关里只配一个已知会变化的点位,用强制方式让 PLC 侧数值变化,看平台是否刷新,通了再批量加。

5.4 现象:排程下发后设备不启动或反复启停

原因是三指令没有按“清零—延时—置位”的顺序发。解决方法是把下发逻辑改成串行加延时,并在平台侧日志里确认三条写指令的时间戳间隔大于 1 秒。

5.5 现象:截图提交了但现场核验不通过

原因是截图只截了界面没截关键参数,或者文件没存到 U 盘“技能竞赛\竞赛编号”目录。解决方法是每完成一个任务立刻按样题给的命名保存,比如“1-2 加盖拧盖单元模型属性”,并在提交前逐条对照提交清单打勾。样题明确写了未存到指定位置的文件不予给分,这一条每年都有人栽。

6. 验收与答辩:按提交清单倒推检查,留好现场核验路径

验收这件事,我一般不看自己写了多少代码,而是拿样题的提交清单当验收单,从最后一条往前倒推。模块一有 7 项截图提交,模块二有 9 项,加上现场核验的功能点,总共二十来项。倒推的好处是:如果最后一项“3-2 加盖拧盖单元设备停机规则”截不出来,说明告警规则还没建完,往前就能定位到是条件没配还是级别没选。

具体操作上,我会在比赛或项目交付前留出 20 分钟做一轮“冷检查”:关掉所有编辑窗口,只按清单逐项打开对应页面截图,截图里必须包含设备名、参数值和页面标题三要素。下面这张表是我常用的自查格式,可以直接照搬。

检查项合格标准常见不合格表现
RFID 发送程序截图能看到发送数组和触发条件只截了函数块外壳
智能 IO 组态截图设备名、IP、模块顺序齐全缺 IP 或模块地址
模型属性截图属性名与点位对应属性为空或未保存
可视化页面截图有实时数据且分拣已完成数据为 0 或时机过早
告警规则截图条件表达式和级别可见只截规则列表

答辩或现场核验时,裁判通常会让你现场触发一个动作,比如放一个贴了 RFID 标签的物料瓶,看平台是否读到数据、可视化是否变化。这时候最忌讳的是现场改配置。我的习惯是提前把“演示路径”走三遍:上料—加盖—拧盖—分拣—数据上传,每一段确认哪个灯亮、哪个数值变,形成肌肉记忆。如果某一段卡住,先看 PLC 在线监控里的标志位,再看网关点位是否刷新,最后看平台绑定,按“现场—网关—平台”的顺序排查,比乱翻页面快得多。

血泪经验是有一类失分完全可以在赛前避免:程序文件存了但没存到 U 盘指定目录,或者截图文件名和清单对不上。从那以后我每次做这类集成项目,都会在开工前先把提交目录结构建好,每完成一项就存一项,绝不攒到最后统一整理。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进