- 工业科技与智能制造新闻站点

工业数据采集怎么做?设备联网、通信协议与数据治理要点

工业AI与软件 6℃ 0

工业数据采集,是从设备、控制系统和传感器取得生产数据,并保留其对象、时间、质量与业务含义,使其能够用于监测、统计和追溯。实施通常沿着一条链路展开:先定义要回答的业务问题和点位,再核对数据来源与通信接口,安排采样、传输和缓存,最后完成语义关联与试点验收。设备能连通、平台能显示数值,只完成了其中一部分。

例如,产线希望知道“这班完成了多少件、停了多久”,就需要确认完成计数的触发条件、设备状态的含义,以及断网期间记录是否仍然完整。这是工业互联网中连接与数据应用之间的具体工作。以下聚焦生产统计与监测采集,以一个假设工位的计数和停机试点说明方法,不涉及向真实设备下发控制参数。

工业设备联网与数据监测的概念场景
工业数据采集需要同时核对现场对象、通信链路和数据含义。图为概念场景,不对应具体工厂或实际实施结果。

先确定业务指标,再编制数据点位表

点位是采集系统中可被识别和读取的数据项,例如累计完成数、设备状态、温度或报警码。一个点位能不能支撑指标,取决于它的实际含义:电机通电可能只是设备待机,循环完成也可能包含空跑;累计完成数不一定是良品数。定义点位时,应由生产人员确认业务口径,设备或自动化人员确认信号的生成逻辑。

对“完成数与停机时长”这个任务,可以先约定:完成数在指定工序完成一件产品后增加;停机时长按计划生产窗口内、经确认的停机状态起止时间计算;停机原因另由报警或人员记录补充。采集失败或通信中断应单独标记,不能直接记为生产停机。这样才能知道哪些点位必须有,哪些只能辅助解释。

点位表需要记录什么为什么影响后续结果
设备身份与点位含义明确产线、工位、设备和测量位置;“完成数”要说明计数触发条件、是否包含返工或空跑。
接口与地址记录协议、寄存器或节点标识、数据来源及文档版本,保证读到的是目标数据。
类型、单位与换算确认整数或浮点数、有无符号、位宽、字序、缩放、偏移及枚举含义。
更新与采集方式说明底层更新、采样或事件方式、上报周期,以及需要保留全部变化还是只保留最新值。
时间、质量与异常规则约定时间来源、超时判定、无效值、计数复位或回绕处理,以及断网后的恢复方式。
业务关联与维护责任说明如何关联工单、产品和班次,谁确认点位,程序或设备变更后由谁更新映射。

点位表的作用是让现场信号、采集配置和报表计算使用同一个定义。第一轮试点可以只采完成数、生产状态、状态事件、设备重启标识和必要的通信诊断;没有明确用途的数据,不必因为接口可读就全部高频采集。

设备与传感器、边缘采集、传输存储和业务应用四阶段数据链路示意
从业务问题反推数据来源与点位,再验证数据怎样进入应用。图为功能关系示意,实际部署可复用现有控制、采集与业务系统。

PLC、传感器和CNC的数据分别从哪里接入?

先盘点设备已经提供的接口及可读数据,再决定采集位置。可编程逻辑控制器(PLC)通常保存生产状态、计数和过程变量;计算机数控系统(CNC)可能提供加工状态、报警和相关运行数据,但具体可读项目取决于系统型号、版本及已开放接口。设备有网口,并不表示任意采集软件都能直接读取全部内部变量。

对于温度、压力、电流等现场量,可以读取既有控制系统中的测量值,也可以由适当的采集模块接入传感器信号。这里还要核对量程、单位、接线与转换关系。例如平台显示的“压力”究竟来自传感器原始信号、PLC换算结果,还是经过滤波的工程值,决定了后续能怎样使用它。外加电流传感器观察设备动作,与直接读取经过确认的生产状态,也不能默认得到相同统计口径。

边缘采集节点可以承担协议适配、时间记录、初步质量检查和本地缓存,也可以向多个业务应用提供统一数据出口。已有可靠的设备服务器或采集系统时,应先核对其数据来源和接口能力,避免多个客户端各自重复高频轮询同一控制器。数据可进入企业内部平台,也可按需求送往云端。

采集接入怎样控制权限和设备负载?

生产统计试点应优先使用只读权限,限定可访问的设备、点位与服务;查看数据与写参数、启动设备应分开授权。设备网、边缘服务和业务系统之间按通信需求设置边界,仅放行必要连接,避免把控制器直接暴露给无关网络。NIST的OT安全指南将最小权限、网络分区与运行可靠性放在同一工程环境中考虑。

只读也会消耗连接、通信和处理资源。上线前应在批准的试运行条件下,对比接入前后的控制周期、响应时间、通信错误和资源负载;再逐步增加点位或频率。批量读取、合理分组及避免超时后密集重试,有助于控制额外负载。可接受范围应来自设备能力和现场验证,不能统一规定“所有点每秒读一次”。

Modbus、OPC UA和MQTT各解决什么问题?

三者经常同时出现在采集方案中,但职责不同。Modbus提供对线圈、寄存器等数据的访问方式;OPC UA提供信息模型与读写、订阅等服务;MQTT提供按主题发布和订阅消息的传输机制。项目可以组合使用,也可以只用其中部分能力,并不存在必须逐个串接的固定路线。

Modbus寄存器访问、OPC UA模型与服务、MQTT主题消息分发的职责对照
三种协议按职责并列展示,并非固定串联步骤。图中编号仅为示意,不是设备点位表;实际接口仍需完成配置与含义核对。

Modbus读到了寄存器,还要解释地址、字序和缩放

Modbus的标准寄存器是16位数据项。设备手册中的引用编号、驱动配置栏与报文中的起始地址可能采用不同表示,必须核对是否存在从0或从1开始的偏移。Modbus应用协议规范规定了地址和数据编码,同时明确设备应用与数据模型的映射由设备实现确定;一个地址本身不会自动说明它代表温度还是计数。

寄存器内的标准高字节先传规则,也不能直接推导跨多个寄存器的32位整数或浮点数字序。要结合手册核对高低字顺序、有符号性和类型;施耐德电气的一份原厂说明就展示了32位数据存在不同字节、字顺序配置。若某点位明确规定“原始整数乘以0.1,单位为摄氏度”,读到235才应换算成23.5℃;这个演算不能替代其他点位的定义。

OPC UA能携带类型、质量和时间,但业务含义仍需核对

OPC统一架构(OPC UA)可以用节点、变量类型和相关属性组织数据。其DataValue结构包含值、状态码及时间戳;数据访问模型还定义了工程单位等属性。这些机制使应用有条件取得比一个裸数字更完整的信息。

实际接入仍要确认节点标识、数据类型、单位是否提供、状态码如何处理,以及变量对应设备的哪个状态。一个名为“Running”的节点可能只表示主轴运行,不等于当前工单正在产出。订阅的采样周期、发布周期和队列长度也需要配置,并检查服务器实际接受的参数,不能把支持OPC UA当成所有语义和采集条件已经统一。

MQTT负责消息分发,QoS不等于最终入库一次

MQTT按主题将发布者的消息分发给订阅者,消息载荷的业务结构由应用约定。主题叫“产线A/产量”,并不能自动说明数值是累计数、增量还是良品数。设备身份、字段类型、单位、时间和版本,仍要放进约定的数据结构或关联模型中。

服务质量(QoS)0允许消息丢失,QoS 1可能重复,QoS 2在规定的协议交付范围内避免重复交付;它们都不能直接证明业务程序已成功提交数据库。OASIS MQTT 5.0规范第4.3—4.5节区分了协议交付、消息确认与应用处理。因此,业务端仍需处理写入失败、重试和去重,并保留可用于对账的记录标识。

采样周期、上报周期和事件时间怎样安排?

采样周期决定采集端多久观察一次数据;上报周期决定多久向上游发送数据;业务变化则发生在设备实际运行过程中。底层控制器或接口还有自己的更新周期。上游每100毫秒读一次,不代表底层每100毫秒都产生新值;把已经漏掉的短事件更快上传,也无法补回事件本身。

假设工位的“完成”脉冲只持续200毫秒,每秒轮询一次这个布尔量就可能完全错过。更适合计数任务的来源,是由具备相应捕获能力的设备保存累计完成数,再读取其变化;若需要每件产品的完成时间,还应取得相应事件记录。累计数在无复位、无回绕且口径一致的条件下能用于计算区间增量,但仅凭两个累计值不能还原每件产品发生的准确时刻。

停机统计需要保留状态变化的起止。可以使用源端状态事件或能够捕获所需变化的采集机制;只定时保存“最新状态”,中间发生又恢复的停机可能被覆盖。OPC UA的监控项机制明确区分采样与发布,而队列参数决定等待发布的通知怎样保留。队列长度为1时只保留最新通知,不能据此声称保留了全部变化。

一条记录为什么需要区分三个时间?

  • 源时间:数据源给值或事件赋予的时间;只有其定义明确时,才能用于表示事件发生时间。
  • 采集时间:边缘采集程序实际取得这条记录的时间。读取历史事件时,它可能明显晚于源时间。
  • 平台接收时间:记录抵达平台的时间,用于分析传输和补传延迟;数据库写入完成时间还可另行记录。
源事件时间、采集时间与平台接收时间,以及断网缓存后恢复补传的概念流程
迟到记录仍应保留原时间。图为概念流程,并非所有设备都提供源端时间戳;平台接收时间也不等于OPC UA的serverTimestamp。

例如,断网期间保存的停机事件在恢复连接后才送到平台,停机起止应按可信的原事件时间计算,不能改成补传到达时刻。若设备不提供源时间,可以记录采集时间及其来源,并说明它带来的时间分辨率限制。设备、边缘和平台应对时,同时记录时钟偏差或校时异常,否则跨设备记录可能被错误排序。

OPC UA的sourceTimestamp可表示值或状态上次变化的时间,serverTimestamp表示服务器接收该值或确认其准确的时间,二者不一定就是物理事件发生与平台入库时间。对一直保持不变的状态,源时间较旧也不自动意味着失联;还需结合状态码、最近成功读取时间和通信心跳判断新鲜度。

遇到超时、质量不良或来源不可用,应保存相应质量状态。页面可以保留“最后已知值”供参考,但要标出已经多久未确认,统计时将无法确认的区间作为未知处理。把通信失败补成0、自动延长运行状态,都会改变完成数或停机结果。

断网后怎样缓存、补传并避免重复统计?

先区分断在什么地方:边缘到平台断开时,只要设备到边缘的采集仍正常,就可以在边缘保存新记录;设备到边缘也断开时,边缘无法凭空恢复未取得的变化,需要源端历史或事件缓存来补齐。源端和边缘都没有捕获的事件,后续消息重发无法重建。

缓存方案应说明记录写在内存还是持久化介质、能保留多久、容量达到上限怎么办,以及采集程序或节点重启后是否仍可恢复。可先用“每秒记录数×平均落盘字节数×目标离线秒数”估算数据量,再把索引、日志、峰值和余量计入,并用实际负载验证。Ignition的存储转发文档将内存缓冲、磁盘缓存、容量与吞吐分别展示,说明它们是需要观测的独立环节。

MQTT持久会话、消息有效期和服务端存储策略有各自的条件,也不替代网关在离线时保存新数据的能力。自动重连只是恢复通信的一步,项目还应把补传过程定义清楚:

  1. 保留原始记录身份。记录设备或采集源、点位、原时间、质量,以及稳定的事件标识或序号。重发同一条记录时沿用同一身份。
  2. 处理重启后的序号重新开始。可采用“来源标识+启动批次标识+记录序号”等约定,使不同运行周期的记录不混淆。MQTT报文标识符会复用,不宜直接作为永久业务去重键。
  3. 让写入与去重结果一致。通过唯一约束或相应事务设计,使同一条记录重复到达时不会再次增加产量。写入失败要能够追查和重试,不能只看消息确认成功。
  4. 按原时间修正业务结果。迟到数据应补回原班次和工单的历史,并区分暂不完整与已补齐的统计。恢复时限制补传速率,避免大量历史记录挤占实时采集。

对于累计计数,计算的是相邻有效读数的差值,不能把每次上报的累计值直接相加。发现读数下降时,先结合位宽、有符号性、复位规则和设备重启记录判断原因;它可能是清零、回绕或映射异常,不能统一“补一个最大计数范围”后当作巨大产量。数据记录序号与设备生产计数也应分开管理。

怎样把点位数据关联成设备、工单和班次记录?

数据治理首先要让同一对象在不同系统中能被稳定识别。资产标识对应实际设备,点位标识对应明确含义;IP地址可以变更,不适合独自承担长期设备身份。原始地址、节点路径和驱动配置作为映射信息保存,设备程序或接口升级后要核对版本,避免沿用同名但含义已变的数据。

标准化时可以把原始值换算为统一单位,把厂家状态码映射为约定状态,但应保留原值、来源和换算规则版本。原始“2”可能在一台设备表示故障,在另一台表示运行;统一列名不会自动解决这个差异。未知枚举、越界值和质量不良数据应留下可追查记录,不能为了报表整齐直接改成常见状态。

原始点位值经过设备身份、单位状态解释与时间质量标识,再关联工单产品班次的示意
业务记录由数值、含义、记录条件和生产上下文共同组成。工单与班次关联应依据数据发生时的有效关系,迟到数据不能直接套用当前工单。

工单、产品和班次信息可以来自制造执行系统或经过管理的现场记录,并保存其生效时间。假设设备在10:04切换了工单,一条10:03发生、10:05才补传的记录应回到原工单。跨班停机也需按班次边界分摊;缺少工单关联时,可以先标为待关联,而不是随意分配。

责任也应与数据层次对应:设备人员维护地址、类型和生成逻辑,生产人员确认计数、停机和工单口径,数据维护人员管理映射、质量规则与异常修正记录。变更后选取代表性状态和计数重新对照,才能知道旧报表是否仍可比较。

用一个计数与停机试点,怎样验证采集结果?

下面是用于说明验收方法的假设试点,不是工厂实测,也不是行业统一指标。选择装配工位A01,在10:00—10:10的计划生产窗口验证完成数和停机时长。假设设备已提供每件完成后加1的累计计数、带源时间与序号的状态事件,并且该窗口没有空跑、返工重计、复位或回绕;源端、边缘和平台时钟经验证偏差不超过100毫秒。

本例安排边缘每秒读取一次计数快照,并每秒向平台上报;状态变化由源端生成事件、缓存后供边缘读取,保留起止事件而不只读取当前布尔状态。源事件缓存和采集能力需先验证满足测试范围,这样才能把计数读取频率与事件捕获能力分开。

窗口开始时累计数为1000,结束时为1030,边界没有同时发生的计数跳变,因此完成数为1030-1000=30件。设备在10:03:20进入约定的停机状态,10:04:10恢复,停机时长为50秒。这只计算完成数和定义内的停机时长;没有良品记录和相应指标口径,不能进一步称为良品产量或完整的设备综合效率结果。

试验中再让边缘到平台的链路于10:02—10:05中断,设备到边缘仍保持采集,且源事件队列和边缘缓存均未溢出。恢复后应补回原时间的记录,最终结果仍是30件、50秒。平台暂时看不到新数据的3分钟是通信中断时间,不能直接算成3分钟设备停机;若改为设备到边缘中断且没有可回读记录,则相应区间只能标未知。

可以在离线仿真或批准的试运行中采用下列验收约定。表中的时间阈值仅为本例设定,正式项目应根据业务需要、设备能力和测得的误差调整。

验证项目本例的具体检查条件
含义与计数对照独立的试验基准记录和设备记录,确认30次有效完成对应30件;同时验证空跑、返工、计数复位不会被无条件计入同一口径。
状态与时间停机起止事件完整,计算结果与50秒基准的差不超过1秒。另测试短状态变化,确认捕获能力及过滤规则。
正常传输正常连接时,95%的记录从边缘采集到平台可查询不超过2秒;统计窗口、记录数量和时钟偏差同时留档。
中断与恢复在本例3分钟上行中断后,60秒内补齐缓存中应补的记录,并逐条核对标识、原时间、值与质量;重复回放同一批记录,业务完成数仍为30件。
失联与异常连续5秒未成功读取源数据时,显示来源不可用及最后确认时间,不自动生成停机事件;另验证重启、缓存满和无效数据均有可追查状态。
设备影响与交接点位增加后,控制周期、响应和通信错误仍在事先确认的允许范围内;点位表、映射版本、恢复方法与异常负责人可供接手人员使用。

试点通过后,扩展到另一类设备时仍需重新确认数据语义和接口能力。可以复用已验证的记录结构、补传与验收方法,但不能只复制寄存器地址和采样周期,就认定新的产线数据同样可用。

参考资料

  • Modbus Organization:MODBUS Application Protocol Specification V1.1b3,2012年4月26日;官方Specifications and Implementation Guides入口。访问日期:2026年10月25日。
  • Schneider Electric:How to change the Modbus word/byte order in a SCADAPack x70 acting as a Modbus server。访问日期:2026年10月25日。
  • OPC Foundation:OPC 10000-4,DataValue与MonitoringParameters;OPC 10000-1,MonitoredItem Service Set;OPC 10000-8,AnalogItem VariableTypes。访问日期:2026年10月25日。
  • OASIS:MQTT Version 5.0,OASIS Standard,2019年3月7日,第3—4章相关会话、消息与服务质量条款。
  • Inductive Automation:Ignition 8.1 User Manual,Using Store and Forward。访问日期:2026年10月25日。
  • NIST:SP 800-82 Rev. 3,Guide to Operational Technology (OT) Security,2023年9月。

评论留言

暂时没有留言!

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。