3. IO-Link数据模型
IO-Link 之所以既能传测量值,又能改参数、报故障,是因为它把通信内容划分成了几类职责清晰的数据。理解这四类数据的分工,是后续做诊断与事件处理的基础。它们并不是四种独立的物理通道,而是同一根 IO-Link 电缆上按不同周期、不同方向、不同语义传输的数据类型。
一、四类数据的基本概念
过程数据(Process Data):由设备周期性发送给主站(Master)的实时数据,方向基本是设备→主站。它承载传感器当前测量值、开关状态、执行器反馈等,长度固定(典型为 1~32 字节),刷新周期由主站的循环时间决定。过程数据是“快照”,只反映当前值,不携带历史,也不保证可靠送达——丢了就等下一个周期。
服务数据(Service Data):主站与设备之间按需发起的请求/应答数据,方向是双向的。它用于读写参数、读取设备信息、执行诊断命令、触发设备动作等。服务数据走的是非周期通道,速度慢于过程数据,但可靠性高,有明确的请求与应答配对。IO-Link 的 ISDU(Indexed Service Data Unit)就是服务数据的典型载体。
参数数据(Parameter Data):本质上是服务数据所读写的内容,是存放在设备中的配置项,例如测量范围、开关点、滤波时间、输出逻辑、设备标签等。参数数据具有持久性——写入后掉电保存,重启后仍然生效。它通过 ISDU 按索引(Index)和子索引(Subindex)寻址,是“设备怎么工作”的设定。
事件数据(Event Data):设备在检测到特定状态变化时主动上报的通知,方向是设备→主站。事件分为不同等级:通知(Notification)、警告(Warning)、错误(Error)。事件数据携带事件代码(Event Code)和事件限定符,告诉主站“发生了什么、有多严重”。它不占用过程数据的固定位置,而是通过事件通道异步传递。
二、四类数据的对比
| 对比维度 | 过程数据 | 服务数据 | 参数数据 | 事件数据 |
|---|---|---|---|---|
| 传输方向 | 设备→主站为主 | 双向 | 双向(经服务通道) | 设备→主站 |
| 传输方式 | 周期性、自动 | 按需、请求应答 | 按需、请求应答 | 异步、主动上报 |
| 实时性 | 高(循环周期级) | 低(毫秒~秒级) | 低 | 中(事件触发时) |
| 是否持久 | 否,仅当前值 | 否,会话级 | 是,掉电保存 | 否,一次性通知 |
| 典型内容 | 测量值、开关状态 | 读设备信息、写命令 | 量程、开关点、滤波 | 过温、短路、维护提醒 |
| 寻址方式 | 固定数据长度 | ISDU 索引 | ISDU 索引+子索引 | 事件代码+限定符 |
三、数据在通信中的流动关系
下面这张图展示了主站与设备之间四类数据的流向与承载关系。过程数据和事件数据走周期性/异步通道,服务数据与参数数据走非周期通道,参数数据是服务数据读写的内容。
四、典型场景:一次过温诊断的完整数据流
假设一个 IO-Link 温度传感器检测到内部温度超过阈值,整个过程会同时涉及四类数据:
- 过程数据:传感器每个周期把当前温度值(如 78.5 ℃)发给主站,主站 PLC 持续读取。
- 事件数据:当温度超过 75 ℃ 时,设备主动上报事件,事件代码指向“过温警告”,限定符标明严重等级。
- 服务数据:主站收到事件后,发起 ISDU 读取,获取设备状态、诊断详情、事件历史。
- 参数数据:工程师通过服务通道修改“温度报警阈值”参数,写入后掉电保存,下次上电仍然生效。
事件上报示例(概念示意):
Event Code : 0x1800 (Temperature Overrun)
Event Qualifier: Warning
Event Source : Device
建议动作 : 读取 ISDU 0x0028 获取详细诊断
: 检查过程数据中的温度趋势
: 必要时通过 ISDU 写入新阈值参数
五、常见误区与复盘
误区二:认为事件数据会替代过程数据。事件是异步通知,不保证每个周期都有;过程数据才是持续监控的基础。
误区三:忽略参数数据的持久性。参数写入后掉电保存,若调试时改了量程却忘记恢复,会导致后续测量值整体偏移。
误区四:把服务数据当实时数据。ISDU 读写有请求应答开销,不适合放在高速控制循环里。
总结来说,过程数据回答“现在是多少”,事件数据回答“出了什么事”,服务数据回答“我能问什么、能改什么”,参数数据回答“设备被设置成什么样”。四者各司其职,共同构成 IO-Link 完整的数据模型。