2. IO-Link技术基础

IO-Link 是 IEC 61131-9 标准定义的点对点数字通信接口,用于把传统传感器/执行器从“开关量或模拟量”升级为可参数化、可诊断、可远程维护的智能设备。理解它的协议分层、物理层电气特性、数据链路层帧结构、通信周期以及设备描述文件 IODD,是后续做固件升级(尤其是通过 IO-Link 通道传输固件块)的前提。

一、协议概述:三层结构与主从关系

IO-Link 通信采用主从(Master-Slave)结构,一个主站端口只连接一个设备,不存在总线仲裁。协议参考 ISO/OSI 模型简化为三层:

  • 物理层(PHY):定义 24V 供电、C/Q 单线双向通信、电气电平与驱动方式。
  • 数据链路层(DLL):定义帧格式、校验、寻址、时序与错误处理。
  • 应用层:定义 ISDU 参数访问、过程数据、事件与 IODD 描述。

主站负责发起所有通信,设备只在被寻址时响应。这种“请求—应答”模型使通信确定性高,也决定了固件升级必须由主站按周期分片下发。

二、物理层:24V、C/Q 线与三种速率

IO-Link 使用标准 3 线或 5 线电缆:L+(24V)、L-(0V)、C/Q(通信线)。C/Q 线在同一根线上完成双向半双工通信,同时兼容 SIO(标准 IO)模式,因此设备上电后可先以开关量工作,再由主站切换到 IO-Link 模式。

物理层支持三种速率:COM1(4.8 kbit/s)、COM2(38.4 kbit/s)、COM3(230.4 kbit/s)。速率由主站与设备协商确定,固件升级通常优先使用 COM3 以缩短传输时间。

关键电气参数:逻辑“1”约 24V,逻辑“0”约 0V;C/Q 线具备过流与短路保护;设备端通常由 L+ 供电,升级期间必须保证供电稳定,否则会导致固件块写入失败。

三、数据链路层:帧类型与校验

IO-Link 帧由起始位、数据位、奇偶校验位、停止位组成,并区分不同类型:

  • 类型 0:过程数据帧,长度固定,用于周期性输入/输出。
  • 类型 1:ISDU 访问帧,用于读写参数、事件、固件块。
  • 类型 2:诊断/事件帧,用于上报错误与状态。

每个帧都带校验机制,主站通过周期号(Cycle Counter)与应答超时判断通信是否正常。固件升级时,ISDU 帧承载固件数据块,必须严格按序写入并校验。

四、通信周期:主站轮询与时间片

IO-Link 通信周期由主站定义,典型周期时间为 0.4 ms 到 132 ms。每个周期内,主站先发送请求帧,设备在指定时间内应答。周期时间越短,过程数据刷新越快,但留给 ISDU 大块传输的带宽越小。

固件升级属于非周期性大流量操作,通常需要主站临时调整周期或使用“后台 ISDU”通道,避免影响正常过程数据。若周期设置过小,升级会挤占过程数据;若过大,升级时间会显著拉长。

IO-Link 协议分层与主从通信周期 协议分层 应用层 ISDU / 过程数据 / 事件 / IODD 数据链路层 帧类型 / 校验 / 周期号 物理层 24V / C/Q / COM1-3 IEC 61131-9 标准 IO-Link 主站 发起请求 / 管理周期 IO-Link 设备 传感器 / 执行器 / 固件 请求 应答 C/Q 半双工 通信周期时间片 周期 T 请求 应答 空闲/下一周期 过程数据:周期刷新 输入/输出数据,固定长度 ISDU:按需访问 参数 / 事件 / 固件块 固件升级:分片写入 块序号 + 校验 + 确认

五、IODD:设备描述文件

IODD(IO Device Description)是 XML 格式的设备描述文件,包含设备标识、通信参数、过程数据定义、ISDU 参数、事件代码以及固件升级相关对象。主站或工程工具通过 IODD 知道如何解析设备数据、如何读写参数、如何触发升级。

IODD 通常由设备厂商提供,包含 DeviceIdentity、ProcessData、ISDU、Events 等节点。固件升级时,工具会依据 IODD 中的固件对象索引(如 0x00A0 等)定位升级入口。

<IODevice>
  <DeviceIdentity>
    <VendorName>Example</VendorName>
    <DeviceName>SmartSensor</DeviceName>
    <VendorId>123</VendorId>
    <DeviceId>456</DeviceId>
  </DeviceIdentity>
  <ProcessData>
    <Input>2</Input>
    <Output>1</Output>
  </ProcessData>
  <ISDU>
    <Index>0x00A0</Index>
    <Name>FirmwareUpdate</Name>
  </ISDU>
</IODevice>

六、案例与误区复盘

案例:某产线使用 COM3 主站升级 8 台 IO-Link 传感器。初始周期设为 1 ms,升级时过程数据出现丢帧。将周期临时调整为 5 ms,并启用后台 ISDU 通道后,升级稳定完成,过程数据恢复正常。

常见误区:① 认为 IO-Link 是总线,实际上它是点对点;② 忽略 C/Q 线供电与压降,导致升级中途复位;③ 不校验 IODD 版本,使用旧描述文件访问新固件对象;④ 升级期间不监控周期号,无法发现丢包。

层次 关键内容 固件升级关注点
物理层 24V、C/Q、COM1-3 供电稳定、速率选择
数据链路层 帧类型、校验、周期号 分片顺序、应答超时
应用层 ISDU、过程数据、事件 固件对象索引、状态机
IODD XML 设备描述 升级入口与参数定义