ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

工业互联网集成应用赛项:RFID与平台点位联调四小时避坑指南

工业互联网集成应用赛项:RFID与平台点位联调四小时避坑指南

简介:面向高职院校工业互联网相关专业师生及竞赛指导教师,这份PDF为2024年上海高职院校学生技能大赛“工业互联网集成应用师生同赛”赛项样题,可用于赛前熟悉题型、梳理训练重点与模拟演练。内容围绕工业互联网集成应用展开,涵盖竞赛须知、职业素养与安全规范、扣分项、任务要求与实施流程,并涉及加盖拧盖、智能物流分类存储、工业互联网平台启停复位控制,以及RFID读写器安装调试、PLC通讯编程和IP地址配置等关键环节。资源包仅含1个PDF文件,大小约360KB,轻量便于查阅和打印。已有274人学习下载,适合需要了解赛项结构、任务分解和评分关注点的参赛团队与指导教师参考。

1. 四个小时、两台编程电脑、一个 U 盘:这道工业互联网集成应用题真正的难点

四小时、两台编程电脑、一个 U 盘,现场要把 RFID 读写器装上接线、把智能阀岛和智能 IO 组态通、把两个单元的数据送进平台,还要在平台上建模、画可视化、下发订单、配两条告警规则——这是工业互联网集成应用赛项的真实节奏。它真正考核的是制造与互联网之间的衔接点:PLC 侧那 72 字节的收发缓冲怎么对上平台侧的点位定义,平台的启动/停止/复位三态怎么和现场设备的状态机配合,而不是单独某一个知识点。这套方案适合三类人:准备师生同赛的选手、带队的指导老师,以及把它当课程设计或毕设题目来做的同学。任务书把分数分成 35 分设备安装调试加 60 分平台开发应用,另外还有职业素养分,靠现场随手操作往往拿不到这些分。

2. 赛题拆解与总体架构:把 95 分拆成四条可执行主线

2.1 从任务书倒推的四类交付物

任务书里最容易被忽略的一句是「截图放在 U 盘答案提交文档中,需要现场核验的功能赛后由裁判现场核验」。这句话决定了备赛的重心:既要跑通,又要留下跑通的证据。把任务书从头到尾读一遍,所有要求最终都归到四类交付物上,任何一类缺一块,对应的分数就整段丢失。

交付物来源任务关键证据常见失分点
安装接线与组态截图1-1、1-2、1-3RFID 接线、智能 IO 组态页、网络参数页截图缺设备名或 IP,看不出是哪台设备
通讯程序截图1-1发送程序、接收程序各一张只截了总览,看不到收发两条链路
平台建模与点位2-1模型列表、两个单元的模型属性、设备资产、北向配置点位数量与参考资料对不上
可视化与规则2-2、2-3两张可视化页、两条规则详情页面画了但没绑实时数据

第一类交付物的特点是「做完就有分,做不完就丢一大段」,所以现场应当先接线、先组态,把能截图的先截了,再去调通讯逻辑。第三、四类依赖平台,必须先把网关配通,才有后面的点位和页面。

2.2 两单元一平台的物理与网络分层

整个平台可以按四层来理解。现场层是物料瓶、传感器、气缸、输送带电机、伺服搬运机构;控制层是两台 PLC、各自的智能阀岛或智能 IO、RFID 读写头;网络层是单元内交换机加单元间互联;平台层是工业互联网平台的建模、排程、监控和规则引擎。分层的价值在于排障:出问题时先判断故障落在哪一层,不要一上来就改程序。

网络地址必须提前规划好,现场没有时间边试边改。加盖拧盖单元与智能物流单元使用两个网段,PLC、智能 IO、RFID 读写头在同一个二层网络内,平台网关作为跨层出口。下面这张表是按任务书给出的分配关系整理的通用写法,具体数值以现场分发的地址表为准:

层级设备地址(示例)说明
控制层加盖拧盖 PLC192.168.1.21与阀岛、RFID 同网段
控制层智能阀岛/智能 IO192.168.1.22设备名需与组态一致
控制层RFID 读写头192.168.1.24端口 9000
控制层智能物流 PLC192.168.1.51独立网段
控制层智能物流 RFID192.168.1.54端口 9000
平台层平台网关192.168.1.100 侧需与两台 PLC 可路由

地址表里有一个细节值得注意:智能 IO 的设备名在组态时必须和实际设备名一致,否则 PLC 上电后找不到从站,整个单元的输入输出全部失效,而现象往往表现为「程序没报错但气缸不动」,很容易被当成程序逻辑问题。

2.3 240 分钟的时间切片与分工

四小时不看钟表做不完。我一般按「前后各留 20 分钟缓冲」来切:前 20 分钟读题、核对 U 盘资料、确认设备初始状态是否干净,最后 20 分钟统一整理截图命名和复查。中间 200 分钟按任务权重分配,模块一 35 分四小时里大约占 90 分钟,模块二 60 分占 110 分钟。

时段内容负责人完成标志
0—20 min读题、清空三个存储区、确认网络通两人共同平台能 ping 通两台 PLC
20—60 minRFID 安装接线 + 智能 IO 接线组态选手 A组态页截图完成
60—110 minRFID 收发程序调试选手 A读到标签数据,M20.5 置位
60—110 min平台网关模型与设备创建选手 B模型列表截图完成
110—150 min单元间组网、平台点位下发两人配合点位在线,数值随设备变化
150—200 min排程、可视化绘制与绑定选手 B页面能远程启动设备
200—220 min两条告警规则选手 B规则详情截图完成
220—240 min截图归位、命名核对、联机复位两人共同交付目录结构完整

分工的原则是「按层分,不按任务分」。一个人守控制层,一个人守平台层,交界处(点位下发)两个人一起做。如果两人都去调 PLC,平台侧的建模时间一定不够;反过来两人都去画页面,RFID 通讯调不出来,可视化也就没有数据可绑。

3. 标识解析与数据采集:RFID 状态机、智能 IO 组态与地址对齐

3.1 RFID 收发的六步状态机

任务书对加盖拧盖单元的 RFID 通讯给了明确流程:判断触发位、发送、判断发送成功、接收、判断接收状态码、置位完成标志。其中接收缓冲区的第 0 字节是状态码,16#C5 表示成功、16#C8 表示失败,接收数据要落到 DB1.DBX0.0 起始的 72 字节数组里。这条约束必须严格遵守,因为平台侧的点位是按这个偏移量解析的,改一个字节整个数据就错位。

用 SCL 写状态机比梯形图更好维护,也更容易一次通过:

// "RFID" 函数:六步状态机 // 触发位 M21.1,完成位 M20.5,延时标志 M21.5 CASE #step OF 0: // 等待触发 IF "触发读取标签" AND NOT "读取标签成功" THEN #step := 10; END_IF; 10: // 复位延时标志,准备组帧 "标签读取延时" := FALSE; #retry := 0; #step := 20; 20: // 组帧并发送:命令字 + 标签数据区 "RFID数据".发送[0] := 16#01; // 读标签命令 "RFID数据".发送[1] := 16#00; #sendTrig := TRUE; #step := 30; 30: // 判断发送是否完成 IF #sendDone THEN #sendTrig := FALSE; #step := 40; ELSIF #retry > 3 THEN #retry := 0; #step := 20; // 发送失败重发 ELSE #retry := #retry + 1; END_IF; 40: // 接收读写器返回数据 #recvTrig := TRUE; #step := 50; 50: // 按状态码判定成功或失败 IF "RFID数据".接收[0] = 16#C5 THEN "读取标签成功" := TRUE; // M20.5 "标签读取延时" := TRUE; // M21.5 #recvTrig := FALSE; #step := 0; ELSIF "RFID数据".接收[0] = 16#C8 THEN #recvTrig := FALSE; #step := 20; // 失败重试 END_IF; END_CASE;

这段代码的关键不在语法,而在三个设计决定。第一,重试次数要封顶,否则读写器断线时程序会在 20 和 50 之间死循环,把扫描周期拖垮,表现为整个单元的输送带一顿一顿。第二,接收数组的第 0 字节单独判断,不要把状态码和标签数据混在一起解析,标签数据从第 1 字节开始,长度按参考资料给的帧格式算。第三,完成位置位后必须复位触发位,任务书里 6 号步骤说的「执行下一流程」,实际上就是让上位流程看到 M20.5 后继续走加盖拧盖,如果这个位一直保持,下一个瓶子来了不会重新触发读取。

智能物流单元的写法同理,只是接收缓冲区变量名是 rcv_buffer,数组类型一致。两个单元不要在同一个 PLC 里共用一套收发逻辑,联机调试时容易互相打断。

3.2 智能阀岛与智能 IO 的组态和地址对齐

模块一里分值密度最高的一段是地址表。任务书给的地址表是「硬件接线」和「软件地址」两列并排,I0:0 对应 I2.0,Q0:0 对应 Q2.0,中间跳过了 I0.0—I1.7 这一段。原因通常有两个:一是前段地址被单元内置的固定模块占用,二是组态时智能 IO 的起始地址就配在 2.0。现场千万不要按「第一个输入就是 I0.0」的直觉去接,接完发现按钮没反应,再回头查表已经浪费二十分钟。

硬件接线软件地址功能类型
I0:0I2.0瓶盖料筒检测输入
I0:1I2.1加盖位检测输入
I0:3I2.3加盖前限输入
I1:0I3.0拧盖定位后限输入
Q0:0Q2.0输送带电机输出
Q1:0Q4.0加盖伸缩气缸输出
Q1:3Q4.3拧盖升降气缸输出

组态的顺序我建议固定成:先在硬件组态里添加智能 IO 从站,设备名与地址表里的名称保持一致;再设 IP 与子网掩码,确认与 PLC 同网段;然后配 IO 模块的起始地址,输入起始 2.0、输出起始 2.0;最后下载并看从站是否显示绿色在线。这四步里最容易翻车的是第三步——起始地址填错,从站照样在线,但所有点位都偏移了固定字节数,程序里写 I2.0 实际读到的是别的信号。

地址对齐做完,必须做一次点动验证:手动强制 Q2.0,看输送带电机是否转动;遮挡 I2.1,看监控表里的位是否翻转。这一步花三分钟,能省掉后面半小时的猜。智能物流单元同理,只是地址段换成了 X100 起的输入和 Y100 起的输出,伺服驱动器的使能与定位完成信号要单独确认。

3.3 单元间组网与连通性自检

两个单元之间要能互通,还要能被平台网关访问。接线完成后先不急着写程序,用命令把链路打通再往下走:

# 逐台确认在线,先本机网段再跨网段 ping -c 3 192.168.1.21 # 加盖拧盖 PLC ping -c 3 192.168.1.51 # 智能物流 PLC ping -c 3 192.168.1.24 # 加盖拧盖 RFID 读写头 # 确认网关端口可达,端口不通说明平台侧没起服务 nc -zv 192.168.1.100 30000 # 记录本机地址,截图时能对上网络配置页 ip addr show

三条 ping 的意义不同:能 ping 通 PLC 但 ping 不通 RFID,说明交换机或读写器供电有问题;两台 PLC 都能通但平台访问不到,问题在网关的南向配置或路由,不在现场接线。我一般会把这几个命令的输出截图留一份,万一后面点位不上线,可以证明网络层是干净的,排查范围直接缩小一半。

4. 平台侧建模与可视化:从网关点位到远程启停

4.1 模型、设备、点位三层建模

平台侧的第一个任务是数字化建模,任务书列了七张截图,对应模型、设备和网关三个层次。这三层的关系是:模型定义「这类设备有哪些属性」,设备是模型的一个实例并绑定具体网关,点位是属性的采集地址。很多人图省事,直接建两台设备不建模型,结果点位能采上来但功能定义是空的,截图里的模型属性页交不出来。

加盖拧盖单元和智能物流单元的属性要按参考资料里的点位清单逐条建,不要凭印象增减。属性命名建议直接沿用任务书里的功能描述,比如「瓶盖料筒检测」「加盖位检测」「累计瓶数」,这样后面画可视化、配告警规则时不用再翻译一遍。

模型属性数据类型数据来源用途
累计瓶数intPLC 计数器分配规则判断、排程产量核对
加盖位状态boolI2.1可视化状态灯
拧盖位状态boolI2.2可视化状态灯
设备运行状态int平台控制字启动/停止/复位三态
标签数据stringRFID 接收缓冲区追溯与标识解析
设备温度float采集点位高温告警触发

建完模型再建设备,设备要挂在网关上,否则点位下发不下去。这一步的验证方式很简单:在平台监控页看某个点位的值,用手遮一下现场传感器,值应该立刻变化。如果值一直是 0 或者一直不动,先去查网关南向配置,不要怀疑 PLC 程序。

4.2 南向采集与北向转发的配置要点

网关的配置分南向和北向两头。南向负责跟 PLC 通信,要点是协议、IP、端口、站号、采集周期、寄存器映射;北向负责把数据往平台上层送,要点是转发地址、主题或接口、上报周期。两头的配置必须能对上:南向采到 20 个点位,北向只转发 10 个,平台侧看到的设备就是残缺的。

下面是一段点位配置的示例结构,字段名按平台实际界面的叫法调整,逻辑是通用的:

{ "gateway": "gw-line-01", "southbound": { "protocol": "plc-tcp", "target": "192.168.1.21", "port": 102, "cycleMs": 500, "points": [ {"key": "bottle_count", "addr": "DB1.DBW10", "type": "int16"}, {"key": "cap_pos", "addr": "I2.1", "type": "bool"}, {"key": "rfid_data", "addr": "DB1.DBB0", "type": "bytes", "len": 72} ] }, "northbound": { "endpoint": "192.168.1.100", "port": 30000, "intervalMs": 1000, "include": ["bottle_count", "cap_pos", "rfid_data"] } }

采到周期这个参数值得单独说。设太快(比如 100 ms)会让 PLC 通信负载升高,现场表现为程序扫描周期抖动;设太慢(比如 5 s)画面上按钮按下去半天没反应,远程启动会被误判成失败。500 ms 到 1 s 是这个场景下比较稳的区间,可视化页面的刷新体验也够用。RFID 那 72 字节建议整块采集再在上层解析,拆成 72 个独立点位会让配置量翻几倍,还容易错位。

4.3 生产排程、可视化绑定与三指令下发

任务书给的生产场景是:订单 5 瓶钙片,每瓶 2 粒,分三批完成,第一批 60%。第一批就是 3 瓶,但截图要求是「生产 2 瓶药,药品经物流分拣都进入存储区后」截可视化页面。这里的数量关系要提前算清楚,排程里填错数量,瓶子走到一半订单就判完成了,后面的分拣和存储动作全对不上。

分拣规则有两套,必须分清是单机还是联机。单机模式按进入智能物流单元的瓶数循环分配:第 1、2 瓶进 3 号存储区,第 3、4 瓶进 2 号区,第 5、6 瓶进 1 号区,第 7、8 瓶回到 3 号区,如此循环;联机模式简单,全部进 1 号区,满 4 个由人为拿走。三个区的容量分别是 4、4、6,启动前必须清空,否则计数起点是错的,这是现场最常见的「程序没错但分拣全乱」的原因。

可视化页面的画法上,我的建议是先画静态底图(输送带、加盖机构、拧盖机构、三个存储区),再逐个绑点位,一个属性一个控件,绑完立刻预览验证。全部画完再绑,出了错根本不知道是哪个控件的问题。

控制指令下发有个硬性要求:下发 3 个指令时,需要设定停机为 0、复位为 0、开机为 1,值等于 1 的指令放在最后,三个指令之间延时 1 秒。这实际上是在用一个写多个点位的批量接口,如果顺序写反,先写 1 再写 0,设备会经历一次「启动即停止」,看起来像点了没反应。

{ "device": "cap-unit-01", "writes": [ {"point": "cmd_stop", "value": 0, "delayAfterMs": 1000}, {"point": "cmd_reset", "value": 0, "delayAfterMs": 1000}, {"point": "cmd_start", "value": 1, "delayAfterMs": 0} ] }

设备的三态转换关系也要背下来:停止态可复位,复位态可停止、可启动,启动态只接收一个订单、执行完必须重新启动才能接下一单,启动态可停止。下第二个订单之前要先联机复位,不复位直接下发,平台会拒绝或者设备不动,很多人在这里卡很久,其实是状态机不允许。

5. 告警规则与现场避坑:五条最容易翻车的点

5.1 两条告警规则的阈值与级别设计

模块二最后一段是规则应用,要求两条:设备温度超过 40 度产生二级高温报警;加盖拧盖单元未完成订单且停止生产,产生 8 级其它类型告警。规则引擎的配置界面各不相同,但要素是固定的四项:触发条件、判断周期、告警级别、告警类型。

第一条的关键在边界和抑制。条件是「大于 40」,不是「大于等于」,写错一个符号在临界温度上会反复触发;判断周期不能太短,温度点位本身有采集周期,规则比采集快就会对同一个值重复报警;最好再加一个持续时长(比如连续 3 个周期都超限才报),避免传感器抖动造成误报。

第二条是复合条件,要同时满足「订单未完成」和「设备处于停止状态」。这里最容易出的问题是把「停止」写成「未启动」,导致设备还在复位态时就报警。规则里应该引用平台的运行状态字,而不是现场的某个传感器位,因为订单完成情况只有平台侧知道。

规则触发条件级别类型抑制方式
高温报警温度 > 40 且连续 3 个周期二级设备告警同设备 5 分钟内只报一次
停机告警订单未完成 且 运行状态 = 停止8 级其它订单完成后自动解除

规则建完一定要人为制造一次触发:用热风或者手动改点位值把温度推过 40,看告警列表里有没有产生记录,级别和类型对不对。只截图不验证,规则里引用的点位名写错也看不出来。

5.2 现场避坑:从现象到根因的五条血泪经验

第一条,RFID 读到数据但平台点位一直是空。现象是 PLC 监控表里接收数组有值,平台侧标签数据属性始终为空。原因多半是网关点位配的是字符串类型,而 PLC 侧是字节数组,类型不匹配时网关静默丢弃,不报错。解决办法是把点位类型改成 bytes 并按长度 72 采集,或者在上层做一次字节到字符串的转换,改完重启采集任务再验证。

第二条,智能 IO 在线但所有输入读不到。现象是组态页从站显示正常,程序里 I2.0 到 I3.1 全是 0。原因通常是组态的起始地址与地址表不一致,或者硬件接线的 I0:0 被理解成了 I0.0。解决办法是回到地址表逐行核对,改完重新下载组态,然后手动遮挡一个传感器看点位的翻转。

第三条,订单下发后设备不动,平台显示指令已发送。现象是指令记录里有三条写入,设备状态没变。原因一般是三条指令的顺序或延时不对,值为 1 的启动位先于清零位写入,设备收到后被立即覆盖。解决办法是把启动位放最后,前面两条各延时 1 秒,并确认设备当前处于复位态,停止态和启动态都接不了新订单。

第四条,分拣位置全乱,尤其第二、三批。现象是第一批正常,第二批开始瓶子进错区。原因是上一批的瓶子还留在存储区没清空,计数器没有归零,或者单机、联机规则选错。解决办法是每批开始前清空三个存储区、复位计数,并在排程里确认当前是哪种模式。

第五条,四小时做完但截图不全,白丢分。现象是功能都跑通了,交上去的截图缺北向配置页或者缺一条规则详情。原因是现场只顾着调,最后十分钟才想起来截图,而某些页面(比如网关导出点位)需要重新触发一次采集才有数据。解决办法是把截图清单打印出来贴在桌角,每完成一个任务立刻截图并按「1-1 模型列表页面」这种固定命名存到答案提交目录,绝不攒到最后。

6. 验收与答辩:用一张自查表把分数守住

最后的二十分钟怎么用,直接决定这四小时是 80 分还是 60 分。我习惯在赛前就把下面这张表写在一张纸上,现场每完成一项打个勾,打勾的同时截图,两者绑定,不给自己「等会儿再截」的机会。

检查项判定标准不通过时先看哪
RFID 通讯读到标签后完成位置位,接收首字节为 16#C5收发数组偏移、状态码判断分支
智能 IO 组态从站在线,输入输出点位与地址表逐行一致设备名、起始地址、模块顺序
网络连通两台 PLC、两个读写器、平台网关全部可达交换机端口、网段、网关南向配置
平台建模模型列表、两个单元属性页、设备资产齐全属性是否按点位清单逐条建
点位采集遮挡传感器后平台数值实时变化点位类型、采集周期、北向 include 列表
可视化绑定页面预览能看到设备动作,远程启动有效控件是否绑了属性、指令顺序与延时
告警规则人为触发后告警列表出现正确级别与类型条件符号、判断周期、状态字引用
截图归档文件名与任务书要求完全一致,位置在答案提交目录是否漏了北向配置、点位导出

现场核验环节的说辞也要提前准备。裁判问「你怎么证明这条告警是有效的」,不要只说「我配了」,直接打开告警列表指时间戳和级别;问「点位为什么是 72 字节」,就答 RFID 帧格式固定 72 字节、首字节是状态码、后 71 字节是标签数据,这样答既准确又显得真做过。被问到没做出来的部分,如实说做到哪一步、卡在哪个环节,比含糊其辞更容易拿到过程分。

还有一个容易被忽略的点:比赛电脑上的虚拟机不要关,电脑不要重启。这条写在任务书里,违反了直接作废,不是扣分的问题。同理,提交的试卷和截图里不能出现学校、姓名等身份信息,命名只写任务编号。

从那以后我每次带人做这类综合赛项,都强制走一遍「截图清单打勾 + 每个功能现场制造一次失败再恢复」的流程,哪怕时间紧也至少把前四项走完。功能跑通只是及格线,能证明它跑通、能说清它为什么跑通,才是拿分的部分。希望帮到你。

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

RELATED READING

延伸阅读

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