简介:面向高职院校工业互联网相关专业师生备赛的2024年上海技能大赛“工业互联网集成应用师生同赛”样题文档,聚焦集成应用赛项的技术设计与现场实施,可用于熟悉赛制、梳理训练重点和开展模拟演练。文档围绕竞赛须知、职业素养与安全意识、扣分项及选手须知展开,并给出完整任务要求、工位环境和工作过程说明,涉及加盖拧盖单元的加盖拧盖流程、智能物流单元按数量分拣至三类存储区、工业互联网平台启停复位与生产订单控制。任务实施部分细化模块一工业互联网设备安装与调试,包含RFID读写器安装接线、IP地址分配、PLC与读写器通讯编程、标签数据监控及截图提交要求。包内为1个PDF文件,约360KB,结构紧凑便于打印和分组研讨。目前已有274人学习下载,适合参赛学生与指导教师对照样题拆解考点、校验操作规范和安全要求。
1. 一道四小时赛题,把「制造互联网」的整条链路压进两个工位
高职院校学生技能大赛的工业互联网集成应用赛项,师生同赛,四小时,两台编程电脑,答案全部靠一个 U 盘交上去。样题给的不是零散知识点,而是从 RFID 读写器接线、PLC 收发报文,到平台建模、网关点位、订单排程、告警规则的一整条链路,两个生产单元、95 分任务分外加职业素养分。很多人第一反应是“设备都装好了,剩下就是写程序”,真到现场才发现,线接错一根、IP 差一位、点位少配一个,平台侧整条链路都无法运转。
这套方案要解决的就是:怎么在四小时里,按分值把「制造互联网」的链路拆成可交付的动作——先看清三层架构和状态约束,再把设备层接通,接着把 PLC 侧的标识解析程序写稳,最后在平台上完成建模、点位、订单与告警,并且留出时间把该截的图截全。适合正在做工业互联网方向毕设、课设,或者要带学生打这类集成应用赛项的人照着排。
2. 总体架构与任务拆解:三层链路、95 分权重与设备三态约束
动手之前先建立一张全景图,比上来就拧螺丝重要得多。这类集成应用赛题的通用结构是三层:设备层负责动作与感知,边缘层负责把 PLC 的数据翻译成平台能懂的模型点位,平台层负责建模、监控、排程和告警。三层任何一层断掉,后面的截图和现场核验都交不出来,所以拆解的顺序必须是从链路往下推,而不是从某个软件功能往上凑。
2.1 三层链路:设备层、边缘层、平台层各自要交什么
设备层是两个单元。加盖拧盖单元完成物料瓶上料、加盖、拧盖,核心执行件是输送带电机、拧盖电机、加盖伸缩与升降气缸、加盖定位气缸、拧盖升降与定位气缸;智能物流单元完成分拣与入仓,核心是物流主电机、分拣 A/B 电机、升降与抓手气缸、分拣 A/B 气缸,再加一套伺服搬运机构。两个单元各自带一台 PLC、一套 RFID 读写器,加盖拧盖单元还带智能阀岛/智能 IO 作为数据采集设备。
边缘层的交付物是网关:南向把 PLC、子设备、点位、通信参数配通,北向把数据往平台送。平台层的交付物是模型定义、设备资产、可视化页面、生产订单和告警规则。三层对应的提交物在任务书里写得很直白——模块一交的是组态截图和 PLC 程序截图,模块二交的是模型列表、模型属性、设备资产列表、点位导出、北向配置、可视化页面和规则详情。
| 层级 | 主要设备/组件 | 交付物 | 对应任务 |
|---|---|---|---|
| 设备层 | 两台 PLC、两套 RFID 读写器、智能阀岛/智能 IO、伺服驱动器 | 接线、组态、IO 地址、PLC 程序 | 1-1、1-2、1-3 |
| 边缘层 | 平台网关 | 南向点位、北向配置 | 2-1 |
| 平台层 | 工业互联网平台 | 模型、设备资产、可视化、订单、告警 | 2-1、2-2、2-3 |
这张表看着简单,实际排时间的时候非常有用:设备层占 35 分,平台层占 60 分,平台层的分值接近设备层的两倍,但平台层依赖设备层的数据。所以合理的节奏是设备层速战速决,把时间留给平台。
2.2 用分值倒推时间预算:35 分与 60 分不是一回事
四小时 240 分钟,按分值切,模块一大约给 70 到 80 分钟,模块二给 110 到 120 分钟,剩下 40 分钟留给截图整理、文件另存和现场核验前的自检。这个比例不是拍脑袋:模块一的三个任务里,1-1 的 RFID 通讯程序是最容易卡住的地方,一旦通讯不通,后面的采集和平台全是空谈,所以要给它留出足够的调试余量。
反过来,很多队伍在模块一上耗掉两个小时,线接得漂漂亮亮,组态截图也很完整,结果模块二的模型只建了一半,订单没下发,告警规则没配,60 分里丢了 30 分以上。通常的做法是:模块一做到“能通、能跑、能截图”就停手,不在细节上反复打磨,把剩下的时间全部押到平台侧,因为平台侧的每一步都是独立得分点,模型建了有分、点位导出了有分、可视化绑定了有分、规则建了有分,容错率高得多。
提示:进场先花五分钟把任务书里所有“截图保存为 XX”的提交项抄成一张清单,做完一项划掉一项。漏一张截图丢的分,往往比一个程序 bug 丢得还多。
2.3 设备三态与订单互锁:启动、停止、复位的迁移条件
平台对设备的控制只有三种状态:启动、停止、复位,但迁移条件写得很死,这是任务书里少见的“逻辑题”。停止状态可以执行复位;复位状态可以执行停止;复位状态可以执行启动;启动状态可以执行停止。也就是说,想启动设备,必须先在复位状态,而进入复位状态的前提是设备处于停止状态。启动之后,平台只能下达一个生产订单,订单执行完必须重新走一遍停止、复位、启动,才能接第二单。
| 当前状态 | 允许的操作 | 结果状态 | 备注 |
|---|---|---|---|
| 停止 | 复位 | 复位 | 上电初始或订单完成后的入口 |
| 复位 | 启动 | 启动 | 只有复位态才能启动 |
| 复位 | 停止 | 停止 | 回退一步 |
| 启动 | 停止 | 停止 | 订单未完成时停机需告警 |
这套约束直接决定了平台侧的操作顺序和告警规则的设计。任务 2-3 要求“加盖拧盖单元未完成订单且停止生产时产生 8 级其它类型告警”,触发条件就是启动态被强行停止、而订单数量还没达标。把状态表贴在屏幕上,配规则的时候就不会漏条件。
2.4 两个单元的工作流与分拣规则
加盖拧盖单元的流程是线性的:物料瓶放到输送带始端,输送到加盖机构下,加盖定位机构固定瓶身,加盖机构下压上盖,继续送到拧盖机构,拧盖定位机构固定,拧盖电机动作拧紧。整个过程有几个位置检测点必须到位——瓶盖料筒检测、加盖位检测、拧盖位检测、加盖前后限、上下限、定位后限。任何一个检测信号缺失,流程就卡在那一步不动,这也是后面排查时最先要看的地方。
智能物流单元的分拣规则分单机和联机两套,单机规则看起来是五个分支,实际是一个周期为 6 的循环:第 1、2 瓶进 3 号区,第 3、4 瓶进 2 号区,第 5、6 瓶进 1 号区,第 7、8 瓶回到 3 号区,第 9、10 瓶回到 2 号区。用取余表达就是 n mod 6 落在 {1,2} 进 3 号区、{3,4} 进 2 号区、{5,0} 进 1 号区。
| 物料瓶序号 n | n mod 6 | 目标存储区 | 存储区容量 |
|---|---|---|---|
| 1、2 | 1、2 | 3 号(平面仓,伺服搬运) | 6 |
| 3、4 | 3、4 | 2 号(输送带,气动推送) | 4 |
| 5、6 | 5、0 | 1 号(输送带,气动推送) | 4 |
| 7、8 | 1、2 | 3 号 | 6 |
| 9、10 | 3、4 | 2 号 | 4 |
联机规则完全相反:所有成品全部进 1 号区,1 号区放满 4 个就停下来等人拿走。两套规则不能混用,单机模式判断的是进入物流单元的累计瓶数,联机模式判断的是 1 号区是否满 4 个。启动物流单元之前必须清空三个存储区,否则计数起点就是错的,这一条在任务书的操作注意里专门标了出来。
3. 设备安装与网络配置:RFID 读写器、智能阀岛、伺服的接线与寻址
设备层这 35 分,表面考的是接线和组态,实际考的是你有没有一套“先规划、再施工、后验证”的习惯。现场见过太多队伍,线接完了才发现 IP 段不对,或者设备名没分配,回头拆了重来,时间全浪费在返工上。稳妥的顺序是:先读地址表定网段,再接线,再分配设备名和 IP,最后用 ping 和端口探测确认可达,四步都过了再写程序。
3.1 先做地址表再动手:两张 IP 分配表怎么读
任务书给了两张地址表。加盖拧盖单元:PLC 是 192.168.1.21,智能阀岛/智能 IO 是 192.168.1.22,设备名 pn-dev2,RFID 读写头是 192.168.1.24,端口号 9000。智能物流单元:PLC 是 192.168.1.51,RFID 读写头是 192.168.1.54,端口号同样是 9000。两个单元同处 192.168.1.0/24 网段,靠尾号区分,21 和 24 一组,51 和 54 一组,中间空出来的 22、23 留给数据采集设备。
读这张表要读出三个信息。第一,PLC 和 RFID 读写器必须在同一网段,否则 TCP 连接建立不起来。第二,端口 9000 是读写器的服务端口,编程时连接参数里的端口号必须和它对上,写错一位就是连接超时。第三,编程电脑的网卡地址要设成同网段的空闲地址,比如 192.168.1.200,掩码 255.255.255.0,不能和设备地址撞车,也不能设成跨网段。
注意:改完电脑网卡地址后先 ping 一台已知设备,比如
ping 192.168.1.21,通了再往下做。ping 不通就别急着打开编程软件,先查网线、交换机端口和网卡选择。
3.2 RFID 读写器的安装与网络接线:9000 端口与读写头寻址
RFID 读写器的安装分机械和电气两部分。机械上,读写头要固定在物料瓶必经的位置,加盖拧盖单元装在加盖工位前方,智能物流单元装在入料口,保证标签进入读写区域时能被稳定识别;电气上,读写器供电、网线接入本单元的交换机或 PLC 所在网络。任务书里明确写了,因错误接线导致读写器损坏要按规程处理,所以上电前一定核对供电电压和极性。
网络配置通常分三步走。第一步用厂商配置工具搜索设备,把设备名和 IP 写进去,IP 按地址表来,加盖拧盖单元写 192.168.1.24,智能物流单元写 192.168.1.54。第二步在 PLC 的硬件组态里把读写器作为 PN 设备挂到网络视图,设备名必须和实际分配的一致,否则 PLC 找不到它。第三步验证,除了 ping,还可以用端口探测确认 9000 端口在监听。
# 确认电脑与读写器同网段后,先测三层连通 ping -c 4 192.168.1.24 # 再测 9000 端口是否可达(Windows 环境可用 Test-NetConnection) nc -zv 192.168.1.24 9000这两条命令看着不起眼,却能省掉大量“程序明明写对了为什么连不上”的排查时间。ping 通只说明 IP 层可达,端口探测通才说明读写器的服务起来了。如果 ping 通而端口不通,问题在读写器配置或供电,不在 PLC 程序里,排查方向立刻就清楚了。
3.3 智能阀岛/智能 IO 的组态与 IO 地址映射
智能阀岛/智能 IO 是加盖拧盖单元的数据采集设备,任务 1-2 要求完成它的接线、组态、网络参数配置和 IO 地址配置,最终让单元动作流程跑顺。组态的做法是导入设备厂商提供的描述文件,把设备拖进网络视图,分配设备名和 IP(192.168.1.22,设备名 pn-dev2),然后在设备视图里核对输入输出地址。
地址必须和任务书表 1-3 严格对齐。输入侧 I2.0 到 I3.1 对应瓶盖料筒检测、加盖位检测、拧盖位检测、加盖前限、加盖后限、加盖上限、加盖下限、加盖定位后限、拧盖定位后限、拧盖上限;输出侧 Q2.0 到 Q4.4 对应输送带电机、拧盖电机、加盖伸缩气缸、加盖升降气缸、加盖定位气缸、拧盖升降气缸、拧盖定位气缸。
| 硬件接线 | 软件地址 | 功能 | 类型 |
|---|---|---|---|
| I0:0 | I2.0 | 瓶盖料筒检测 | 输入 |
| I0:1 | I2.1 | 加盖位检测 | 输入 |
| I0:2 | I2.2 | 拧盖位检测 | 输入 |
| I1:1 | I3.1 | 拧盖上限 | 输入 |
| Q0:0 | Q2.0 | 输送带电机 | 输出 |
| Q0:1 | Q2.1 | 拧盖电机 | 输出 |
| Q1:0 | Q4.0 | 加盖伸缩气缸 | 输出 |
| Q1:3 | Q4.3 | 拧盖升降气缸 | 输出 |
| Q1:4 | Q4.4 | 拧盖定位气缸 | 输出 |
地址配错的表现很有特点:程序逻辑没问题,但某个气缸不动或者某个检测信号常亮。这时候不要改程序,回到设备视图看地址偏移,多半是组态时起始地址填错了,或者模块顺序和实际接线顺序不一致。我一般会把这张表打印出来,配完一项勾一项,比在屏幕上来回切窗口靠谱。
3.4 单元间网络与伺服接线:网络设备安装调试的落点
任务 1-3 是三块内容:两个单元之间的网络接线、加盖拧盖单元 PLC 与平台网关的通讯配置、智能物流单元智能阀岛/智能 IO 与伺服驱动器的网络接线。第一块是物理层,两台 PLC 通过交换机接入同一网络,线序和端口别插错;第二块是配置层,PLC 侧要能被网关访问到,IP、掩码、网关地址一项不能少;第三块是智能物流单元的组态,输入 X100 到 X114、输出 Y100 到 Y36,伺服驱动器作为网络从站挂进来。
智能物流单元的地址表比加盖拧盖单元更密。输入侧 X100 到 X107 是分拣 A 位检测、分拣 B 位检测、搬运位检测、分拣 A 限位、分拣 B 限位、搬运左限、搬运右限、左右原点;X110 到 X114 是搬运前限、搬运后限、前后原点、搬运上限、搬运下限。输出侧 Y100 到 Y102 是物流主电机、分拣 A 电机、分拣 B 电机;Y30 到 Y36 是升降气缸、抓手气缸、分拣 A 气缸、分拣 B 气缸。
伺服的接线要点在于使能和反馈信号,PLC 通过总线发位置指令,伺服回传到位信号。组态完成后先手动点动一次,确认方向、限位、原点都正常,再交给自动流程。这一步偷懒,后面分拣入仓时机械手抓偏、放歪,排查起来会以为是程序算错了坐标,实际是原点没回对。
4. 标识解析与平台应用:RFID 收发状态机、网关建模、订单与告警
这一章是整个方案的重量级部分,35 分的标识解析和 60 分的平台应用都压在这里。LED 侧的程序不难,难在状态机的节奏——什么时候发、发完等什么、收到什么算成功、失败了重试几次。平台侧不难在操作,难在建模的粒度和点位的一致性——模型属性和实际点位对不上,可视化页面就是一堆静止的灰块。
4.1 收发状态机:从触发位到 16#C5 的判定链
任务书给的参考流程有六个步骤,其中第 1 步和第 6 步是跟物料瓶上料、加盖功能对接的流程,第 2 到第 5 步才是 RFID 读写本身。把这六步翻译成状态机,逻辑就清楚了:等待触发(M21.1 为真)→ 复位延时位(M21.5 为假)→ 发送数据 → 判断发送成功 → 接收数据 → 判断接收成功(16#C5 成功、16#C8 失败)→ 置位读取标签成功(M20.5)→ 收尾回到空闲。
这里有两个容易写错的地方。一是触发位和延时位的配合,触发位置位后要先把延时位复位,否则第二次读取会被延时逻辑挡住;二是失败重发的落点,接收失败要回到发送步骤,而不是回到触发判断,否则一次通讯失败就得等下一次触发,节拍全乱。接收数据存放在指定变量 “RFID 数据”.接收,地址 DB1.DBX0.0,类型是 Array[0..71] of Byte,发送数组同类型同长度。
4.2 发送与接收程序块写法
下面这段 SCL 对应任务书里“RFID”函数的补充程序,结构上把 a 到 f 六步拆成状态步,每一步只做一件事,便于现场单独打点观察。
// "RFID" 函数:加盖拧盖单元 PLC 与读写器的收发流程 CASE #step OF 0: // 空闲:等待读取触发位 M21.1 IF "读取标签触发" THEN "标签读取延时" := FALSE; // M21.5 复位,允许本次读取 #step := 10; END_IF; 10: // 步骤 b:组装发送报文并发出 // "RFID 数据".发送 为 Array[0..71] of Byte,帧格式按参考资料填充 #sendBusy := "RFID_Send"(REQ := TRUE, DATA := "RFID 数据".发送); IF #sendBusy THEN #step := 20; // 发送完成,转接收 END_IF; 20: // 步骤 d:接收读写器返回数据 #recvDone := "RFID_Recv"(DATA => "RFID 数据".接收); IF #recvDone THEN IF "RFID 数据".接收[0] = 16#C5 THEN "标签读取成功" := TRUE; // M20.5,通知主流程 "读取标签触发" := FALSE; #step := 0; ELSIF "RFID 数据".接收[0] = 16#C8 THEN #step := 10; // 步骤 e:接收失败,退回发送重试 END_IF; END_IF; END_CASE;这段程序的关键参数有三个。#step是内部状态步,0 为空闲、10 为发送、20 为接收,现场在线监视时看它停在哪一步,就知道卡在哪个环节。"RFID 数据".发送和"RFID 数据".接收是长度 72 字节的数组,帧头按参考资料给的定义填,不要自己发明协议。16#C5和16#C8是应答码,C5 表示读取成功,C8 表示失败,判断的位置必须是接收数组的第一个字节,具体下标以参考资料为准。
智能物流单元的程序结构完全一样,区别在于接收变量名换成了rcv_buffer,触发位和成功位按单元实际地址分配。两个单元写完之后,可以在线强制触发位,观察#step的跳转和接收数组首字节的变化,这是最快的验证方式,比反复走完整流程高效得多。
4.3 平台建模:模型、属性、设备资产
平台侧第一步是建模,顺序是先建网关模型、再建两个单元的模型,最后建设备资产。模型是模板,设备是实例,一个模型可以挂多个设备,但在这个赛题里是一对一,先建好两个单元模型再创建两台设备最省事。
加盖拧盖单元的模型属性要覆盖设备状态、生产计数、加盖与拧盖动作信号、告警状态;智能物流单元的模型属性要覆盖分拣计数、三个存储区的库存、伺服搬运状态。属性定义要和 PLC 侧实际采集的点位一一对应,多定义一个用不上的属性不会扣分,但少定义一个要用的属性,后面可视化就绑不上。
提示:建模型时把属性名统一命名规范,比如都带单元前缀,后面在网关里配点位、在可视化里绑元素时,靠名字就能定位,不用逐个点开看地址。
提交物里要求截模型列表页面、两个单元的模型属性、设备资产列表,这四张图是纯操作分,建完立刻截,不要留到最后,四小时里最后十分钟最容易手忙脚乱截错页面。
4.4 网关配置与点位导出:北向配置
网关配置是模块二的枢纽。南向要做四件事:创建网关、挂接 PLC 作为子设备、按模型属性配置点位、配置通信参数(IP、端口、协议、采集周期)。北向要做一件事:把网关采集到的数据配置成平台能接收的通道,任务书要求截图北向配置页面,说明这一项是独立得分点。
点位配置的实质是把 PLC 地址翻译成模型属性。加盖拧盖单元的 PLC 是 192.168.1.21,点位包括输入区的检测信号和输出区的动作信号,还有 DB 块里的 RFID 收发数据;智能物流单元的 PLC 是 192.168.1.51,点位包括 X100 到 X114、Y100 到 Y36 和分拣计数。配完之后导出点位,导出文件就是提交物 1-5 和 1-6。
{ "deviceCode": "capping_unit", "plc": "192.168.1.21", "points": [ { "tag": "I2.0", "name": "瓶盖料筒检测", "type": "bool", "access": "r" }, { "tag": "I2.1", "name": "加盖位检测", "type": "bool", "access": "r" }, { "tag": "Q2.0", "name": "输送带电机", "type": "bool", "access": "rw" }, { "tag": "Q4.0", "name": "加盖伸缩气缸", "type": "bool", "access": "rw" } ] }上面这份结构只表达映射关系,各家网关工具的字段名、层级、导出格式都不一样,不要照抄字段,照抄的是“每个点位必须回答三个问题”:采的是哪个地址、对应哪个模型属性、是只读还是可写。可写点位尤其要标清楚,后面下发订单指令靠的就是可写点位,只读点位下发下去没有任何反应。
4.5 订单排程与三指令下发
任务 2-2 的场景是一家工厂接到 5 瓶钙片的订单,每瓶填装 2 粒,分三批生产,第一批 60%,第二批 20%,第三批 20%。按 5 瓶算,第一批 3 瓶,后两批各 1 瓶。生产排程里要配置药品种类、填装颗粒数、订单数量,然后把订单下发到两个单元。
下发指令是这个任务里最容易翻车的地方。任务书明确要求,下发控制指令时要下发 3 个指令,比如开机,需要设定停机为 0、复位为 0、开机为 1;三个指令中值为 1 的放在最后,三个指令之间需要延时 1 秒。原因不难理解:如果三个布尔量同时写下去,PLC 扫描周期里可能先看到开机为 1、复位还没写 0,状态机就停在非法迁移上,设备不动。
| 指令序号 | 停机 | 复位 | 开机 | 下发顺序 |
|---|---|---|---|---|
| 1 | 0 | — | — | 第 1 个,延时 1 秒 |
| 2 | — | 0 | — | 第 2 个,延时 1 秒 |
| 3 | — | — | 1 | 第 3 个,最后下发 |
第一批订单跑完,要下第二批之前,必须先联机复位设备,再在排程里重新下发订单。这一步的顺序错了,平台会认为设备还在启动态,拒绝接收新订单,表现就是点下发没反应,日志里也没有明显报错。
4.6 告警规则与可视化绑定
任务 2-3 要建两条规则。第一条是设备温度超过 40 度产生二级高温报警,配置时注意比较符是大于而不是大于等于,阈值类型要和采集点位的类型一致,整数和浮点混用会导致比较永远不成立。第二条是加盖拧盖单元未完成订单且停止生产时产生 8 级其它类型告警,触发条件是订单未完成与设备停机两个条件的与逻辑,级别选 8,类型选其它。
可视化部分要做的是画页面、绑点位、做联动。加盖拧盖单元的可视化页面至少要有输送带、加盖机构、拧盖机构三个动作区和状态指示;智能物流单元要有三个存储区的库存显示和分拣动作指示。画完之后点预览,远程启动设备,看页面上的元素是否跟着实际动作变化,变了说明绑定成功,再截图提交。
设备监控页面里还要把可视化和设备绑定,实现远程监控。绑定的本质是把页面上的图元关联到模型属性,属性变了图元就变。绑定失败的典型表现是预览时页面能打开、设备也在动,但图元纹丝不动,这时候回网关看点位有没有采上来,采上来了再看属性名和绑定名是否一致,两级排查基本能定位。
5. 避坑与排查:五个最容易翻车的点
四个小时里真正拉开差距的,不是谁会写多复杂的程序,而是谁能更快地从故障里爬出来。下面这五条是这类集成应用赛题里出现频率最高的坑,每一条都按现象、原因、解决三段写,现场照着对号入座就行。
5.1 通讯一直等不到 16#C5:触发位和延时位互相打架
现象是 PLC 程序下载进去了,触发位置位了,但接收数组首字节一直不变,状态步停在发送或接收不动,读写器的指示灯也没有正常闪烁。原因通常有两个:一是触发位置位后没有复位延时位,第二次读取被延时逻辑挡住,看起来像第一次就没成功;二是发送和接收用了同一个连接,上一次的连接没释放,新的请求发不出去。
解决的办法是先在线监视状态步,确认它到底停在哪一步。停在 10 说明发送没完成,检查连接参数里的 IP 和 9000 端口;停在 20 说明发送成功但没收到应答,用端口探测确认读写器服务正常,再核对帧格式是否按参考资料填。如果反复在 10 和 20 之间跳,那是接收返回了 16#C8,属于读写器读不到标签,检查标签是否贴好、读写头位置是否偏移、标签是否在有效距离内。
5.2 点位导出来是空的:模型属性没绑对地址
现象是网关里配了一堆点位,导出的时候文件是空的,或者只有个别几条。原因多半是点位只填了地址没绑模型属性,或者属性名和模型里定义的不一致,导出工具按属性过滤,绑不上的就丢了。还有一种情况是 PLC 没在线,网关采集不到,导出时把无效点位过滤掉了。
解决顺序是:先确认 PLC 在线且能 ping 通,再逐个检查点位的地址、数据类型、属性绑定三要素是否齐全,最后核对模型属性的拼写。导出前可以先在网关的实时数据页面看一眼,有值再导出,没值就别导,导出来也是空的。这一步花五分钟自查,比导出十次都管用。
5.3 订单下发后设备不动:三指令顺序与 1 秒间隔
现象是排程建好了,订单也下发了,页面显示订单已下发,但设备一动不动,状态还停在停止。原因基本就是三个布尔指令同时写下去了,PLC 在一个扫描周期里先看到开机为 1、停机还是 1,状态迁移条件不满足,指令被丢弃。
解决方法是严格按任务书要求拆成三条指令,值为 1 的放最后,每条之间延时 1 秒。如果平台支持脚本化下发,就在脚本里串行写,写完一条等一秒再写下一条;如果只能手工点,就点一下看一眼设备状态,确认状态迁移了再点下一条。另外记得下第二批订单前先联机复位,不复位的话平台认为上一单还没结束,新订单一律拒收。
5.4 联机模式分拣全乱:单机规则和联机规则混用
现象是单机调试时分拣完全正确,切到联机模式后所有瓶子往三个区乱跑,或者 1 号区满了还在往里推。原因是单机模式判断的是进入物流单元的累计瓶数,联机模式判断的是 1 号区是否满 4 个,两套逻辑写在一个程序块里没有做模式切换,或者切换了但计数没清零。
解决方法是把两套规则写成两个独立的分支,用一个模式变量选择,切换模式时强制清零累计计数和三个存储区的库存计数。启动物流单元前必须清空三个存储区,这个动作要写进操作流程里,不能靠人记。存储区容量也要做上限保护,1 号区和 2 号区各 4 个、3 号区 6 个,满了就停,不然瓶子会挤在入口把传感器挡住。
5.5 温度告警不触发:阈值比较与数据类型
现象是规则建好了,模拟温度也超过 40 度了,告警列表里什么都没有。原因通常是数据类型不匹配,点位采上来是整型,规则里阈值填的是浮点,比较时做了隐式转换,边界值附近判断失效;或者比较符选成了大于等于,恰好 40 度的时候触发、41 度反而不触发,看起来像随机失灵。
解决办法是先把采集到的温度值在实时数据页面调出来看,确认数值和类型,再按同样的类型配阈值,比较符统一用大于。规则建完用模拟值手动触发一次,看告警列表有没有记录、级别是不是二级,确认链路通了再往下做。8 级停机告警同理,条件是两个的与逻辑,少配一个条件就永远不触发。
6. 现场验收与答辩:按分值倒推的核验顺序
最后的验收环节,很多人栽在“做完了但没交对”上。任务书明确要求所有截图放在 U 盘的答案提交文档里,程序文件存到指定文件夹,未存到指定位置的运行记录一律不给分;提交的试卷还不能出现学校、姓名等身份信息,否则成绩无效。所以收尾这四十分钟,做的不是功能,是交付。
我的习惯是按分值倒推核验顺序,先核对分值高的模块二。打开答案提交文档,对着清单逐项确认:模型列表、两个单元的模型属性、设备资产列表、两个单元的点位导出、北向配置,这七张图对应 2-1 的得分点;两个单元的可视化页面截图和设备监控页面绑定截图,对应 2-2;高温报警规则和停机规则详情,对应 2-3。少一张就回去补,补完立刻另存,不要在原始文件上反复覆盖。
| 核验项 | 判分点 | 常见失分 |
|---|---|---|
| 模型与设备资产截图 | 模型是否完整、属性是否覆盖 | 属性缺项、截图截到一半 |
| 点位导出文件 | 点位数量与地址正确性 | 导出为空、地址与表不符 |
| 北向配置截图 | 通道是否配置完成 | 只截了页面没截参数 |
| 可视化页面 | 图元是否与点位绑定 | 页面漂亮但数据不动 |
| 规则详情 | 阈值、级别、类型 | 比较符错、类型选错 |
| PLC 程序截图 | 发送与接收程序完整性 | 只截了发送没截接收 |
模块一的三张程序截图和组态截图放第二位核对。1-1 要截发送和接收两段程序,缺一不可;1-2 要截智能阀岛/智能 IO 的组态和网络参数配置;1-3 要截 PLC 与平台网关的通讯配置、智能物流单元的组态和 IO 地址配置。这些截图在调试过程中顺手截最省事,等到最后再回头找,程序窗口切来切去很容易截错段。
现场核验环节由裁判当面操作,通常会让设备跑一轮完整流程,看加盖、拧盖、分拣、入仓是否顺畅,再看平台上订单下发、状态变化、告警触发是否正常。答辩时被问到最多的是两件事:为什么这么分配地址、为什么这么设计状态机。地址问题回答网段划分和尾号规划即可,状态机问题回答三态迁移条件和订单互锁,把这两点讲清楚,基本就稳了。
有一年带队伍,功能全做完了,最后一刻发现温度告警规则的比较符选成了大于等于,裁判现场模拟 40 度整,告警不触发,白丢一条规则的分数。从那以后我每次配完规则,都强制走一遍“改一个模拟值、看一次告警列表、再改回来”的闭环,不管时间多紧都不省这一步。希望这套拆法能帮到你,把四小时用在真正得分的地方。
本文还有配套的精品资源,点击获取