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”通道,避免影响正常过程数据。若周期设置过小,升级会挤占过程数据;若过大,升级时间会显著拉长。
五、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 设备描述 | 升级入口与参数定义 |