
简介面向工业自动化工程师、传感器与执行器开发者及系统集成人员的 IO-Link 技术选型资料围绕开放式标准通信协议展开帮助读者理解智能传感器接入现场总线、主站与设备端通信及器件选型中的关键问题。压缩包内为 1 个 PDF 文件约 5.2MB单文件结构便于按章节查阅与检索。内容从工业传感器厂商转向 IO-Link 的原因切入梳理物理层、数据链路层与应用层规范并介绍 ST 的 L6360 主站收发器、L6362A 设备收发器、L6364 双通道器件及配套评估板延伸至智能制造、智能物流与能源管理等应用场景。已有 319 人学习适合用于方案预研、器件选型、技术培训与项目论证时快速建立 IO-Link 知识框架也可作为评估主站与设备端芯片及生态方案的参考。1. 一句话说清 IO-Link给工业传感器办一张能对话的电子身份证车间里那只看似普通的光电传感器过去只有一根开关量线连着它能表达的只有「有」或「没有」两个字。而它是什么型号、量程多少、内部温度是否偏高、还剩余多少使用寿命这些信息全都印在金属铭牌和纸质手册上一旦设备被拆下来就没人知道了。IO-Link 做的事情就是给每个传感器配一张电子身份证再加一条双向通道主站问一句「你是谁」传感器就能报出型号、参数、诊断记录甚至能在不停机的情况下被重新设置参数。它对应 IEC 61131-9 定义的单点数字通信接口一个端口只接一个设备它不承担总线角色只负责连接「最后一米」到设备这一段。2. IO-Link 怎么跑起来一根三线电缆里的三层分工把 IO-Link 想象成一条老式电话线会容易理解得多。线只有三根但要同时完成三件事给设备供电、把主站的话传下去、把设备的话传回来。这三件事塞在一对线里还要在充满变频器、接触器、伺服驱动的车间里跑二十米不误码靠的不是什么先进技术而是把「供电」和「通信」这两件事在时间上错开、在电平上分层。2.1 三根线的分工L、L- 和那根 C/Q标准的 M12、M8 或 M5 工业接插件里L 是 24V 供电L- 是地C/Q 是那根既当通信线又当数字量输出的混合线。没有屏蔽层要求三线、四线或五线都行最多 20 米。这种「不挑剔」是刻意为之工厂里现成的电缆、现成的接插件、现成的接线工人全都不用改。端口分两种。Class A 端口就是 C/Q 加 L 加 L-另外可选的 DI/DQ 脚做辅助数字量Class B 端口额外多出一组隔离的 L2 与 M 输出电源专门给阀、电机启动器这类执行器供电。为什么要多这一组因为传感器的电流通常只有几十毫安而一个电磁阀动作瞬间的浪涌能冲到安培级。两者共用一根地线时阀一吸合一释放地电位就跟着跳通信线的参考点跟着飘误码率立刻上去。Class B 把通信地和负载地分开本质上是用一根额外的线换来通信的稳定性。理解这个设计也就能理解 IO-Link 的定位它不追求长距离、高带宽它追求的是在现有工业布线条件下把设备的「话语权」从 1 bit 提升到几十字节。2.2 SIO 与 IO-Link 的自动切换一次试探性的握手工厂改造不可能一夜之间把所有老传感器都换掉所以标准强制要求同一个端口必须兼容传统开关量设备也就是 SIOStandard IO模式。问题是主站怎么知道自己插上去的到底是个老式接近开关还是一台 IO-Link 设备答案是上电时的一次试探。主站对 C/Q 线施加一个短促的检测脉冲测量线上的电流响应特征。普通开关量传感器的前端就是一只晶体管通就是通断就是断反应像一堵硬邦邦的墙而 IO-Link 设备前端有限流电路和特定的输入阻抗回应出来的电流曲线形状不同。主站据此判断识别为 IO-Link就切换到 UART 帧格式开始通信识别为 SIO就退化成一路普通的 DI/DO。提示这个机制意味着 IO-Link 设备接入普通数字量输入模块时通常也能当开关量用只是所有智能功能全部失效。它能用但已经失去了作为智能设备的意义。这套「先敲门再对话」的逻辑经济价值在于让改造可以一个端口一个端口地做。一条产线不用整条停掉今天换三个明天换五个新旧设备混着跑主站都能认。2.3 COM1、COM2、COM3三档速率与 0.4 毫秒的极限IO-Link 规定了三档通信速率。COM1 是 4.8 kBaudCOM2 是 38.4 kBaudCOM3 是 230.4 kBaud其中 COM3 是随 V1.1 版本引入的。这里要注意单位是 Baud指的是 24V 脉冲调制下的符号率跟以太网那套 Mbps 完全不是一回事别拿来做横向比较。在 COM3 模式下传输 2 字节过程数据加 1 字节服务数据最小周期可以做到 0.4 毫秒。这个数字决定了 IO-Link 的响应能力上限它足够应付绝大多数位置、压力、温度、流量这类物理量的采集但不足以做振动波形分析或者高速视觉触发。真要做那些事得上更高层的工业以太网或者专用采集卡。实际工程里0.4 毫秒是理论值主站要轮流服务自己身上的多个端口端口数越多每个端口能分到的时间片就越长。大多数场合下2 毫秒左右的循环周期是舒适区既留了余量也不至于把主站的调度逼到极限。2.4 四类数据循环的给实时性非循环的给灵活性IO-Link 把数据分成四类这个分类是理解整个协议的钥匙。过程数据Process Data是循环交换的就是传感器测出来的那个值压力多少、距离多少、温度多少值状态Value Status也是循环的但它说的不是「值是多少」而是「这个值可不可信」比如传感器饱和了、超量程了、镜头脏了值状态位会告诉你别拿这个数去做判断设备数据Device Data是非循环的按需读取参数、型号、序列号都在这里事件Events同样是非循环报警、诊断、警告走这条通道。过程数据长度上限在 V1.1 里提到了 32 字节这个上限本身就说明了定位它是「最后一米」的协议不是用来传图像和波形的。规格项取值说明输出使能模式SIO 或 IO-LinkSIO 模式靠短路检测识别通信模式COM1 / COM2 / COM3分别 4.8 / 38.4 / 230.4 kBaud最小循环周期0.4 msCOM3 下 2 字节过程数据 1 字节服务数据数据存储0.5 kByte主站可缓存设备参数换件免重新配置过程数据长度最大 32 字节V1.1 引入物理传输层24V 脉冲调制非差分无屏蔽电缆可用电缆长度最大 20 m三线、四线或五线标准电缆端口类型Class A / Class BClass B 多一组隔离输出电源表格里那一行「数据存储 0.5 kByte」值得单独说一句。主站会把设备的参数备份在自己身上传感器坏了换个新的插上去主站自动把参数灌回去不用人拿着笔记本现场重新标定。这是 IO-Link 在生产现场最受欢迎的功能之一尤其是在换型频繁的产线上省下来的停机时间相当可观。3. 为什么非要把传感器变聪明从 TEDS 到 SDCI 的一段旧账如果把 IO-Link 直接理解成「一种新的传感器接口」就会觉得它出现得莫名其妙明明 4-20mA 和开关量用了几十年为什么突然要换要回答这个问题得往回看三十年。传感器智能化的尝试不是从 IO-Link 开始的前面已经有人试过而且失败得很典型。3.1 TEDS 那一代人的遗憾数据存进去了却没人读得出来上世纪九十年代几家大型工业厂商联合推动过一个叫 TEDS 的东西全称是 Transducer Electronics Data Sheet翻译过来就是「传感器电子数据表」。思路非常直接既然纸质铭牌容易丢、容易看错那就把量程、校准日期、厂家信息、型号这些内容写进传感器内部的一颗存储芯片里。想法很好落地却卡住了。各家写数据的格式不统一读取数据用的读写器也是各家自己的专用设备。结果就是传感器里确实存着完整的数据但换一条产线、换一个品牌的主控就没人能把它读出来了。这颗芯片变成了装在金属壳子里的黑匣子——数据在里面通道在外面中间缺一座桥。这段历史留下的教训很清楚让设备变聪明光有数据不够还得有一个所有人都认的读取方式和一份所有人都能解析的说明书。IO-Link 后来做的事本质就是把这两样补齐。3.2 厂商真正想搬到线上的三样东西工业传感器制造商转向 IO-Link动机并不玄学很实在。他们想通过这条线传的东西有三类。第一类是测量数据本身这是最基本的需求。第二类是自诊断和警告信息传感器镜头污染到什么程度、内部温度是不是接近上限、响应时间有没有漂移、还剩多少寿命。这类信息的价值经常超过测量值本身因为工业传感器的单价高而它失效导致的停机损失更高能提前知道它快坏了比知道它现在测得准更值钱。第三类是设备规格型号、序列号、固件版本、校准日期这些是资产管理和追溯的基础。除此之外还有几个工程上的硬需求热插拔不能烧设备、反接不能烧设备、成本得控制在合理范围。最后这一点尤其关键它解释了为什么 IO-Link 坚持用标准接口加三线电缆而不是另起炉灶搞一套专用布线——省掉并行布线本身就是一笔账。3.3 IODD一份不认厂牌的通用说明书IODD 全称是 IO Device Description中文一般叫 IO 设备描述文件。它的核心特征是结构统一不管哪家做的传感器IODD 文件的组织方式都一样同一套解析器能读所有厂商的文件。里面装四类内容设备识别与参数、过程与诊断数据、设备数据包括厂商 logo、文字描述、设备插图、通信属性。工程师在配置软件里打开一个 IODD看到的不只是一堆寄存器地址还能看到这个传感器长什么样、哪个参数对应哪个物理量、单位是什么。配套的公共数据库叫 IODDfinder是一个非专有的在线库V1.0 和 V1.1 的文件都能按厂商、按型号查。这个「非专有」三个字很重要——它意味着一个刚入行的工程师不需要先成为某家厂商的认证工程师也能拿到设备的完整描述。注意IODD 是描述文件不是驱动也不是固件。它里面没有可执行代码不能「安装」到系统里去控制设备。它的作用是告诉主站「这个设备有哪些数据、怎么解读」真正干活的是主站里的协议栈。3.4 为什么中间非要插一个主站IO-Link 是点对点协议一个端口对一个设备不做总线。那么问题来了一个工位上几十个传感器难道要让 PLC 直接接几十根线不。中间要放一个 IO-Link 主站。主站身上有若干个端口每个端口接一个设备主站再往上通过现场总线或者工业以太网连到 PLC。这一层「翻译」不是多余的中间商它承担了三件 PLC 干不了或者干起来很别扭的事。第一是供电与电气隔离。现场布线又长又杂让 PLC 的 IO 模块直接去管二十米外一个传感器的 24V 供电和脉冲调制风险太大。第二是协议转换。上层看到的是标准的总线节点下层是点对点的 IO-Link两套语言在主站这里对译。第三是参数缓存前面提到的数据存储功能就落在主站身上。换句话说主站的存在让「智能传感器」这件事对 PLC 变得透明。PLC 那边不需要知道底下接的是哪个牌子的传感器只要读标准的总线数据区就行。这种「把复杂度收在中间层」的设计思路在工业系统里反复出现因为它真的管用。4. 主站侧与设备侧两颗收发器芯片各管哪一段协议讲完了落到硬件上一条 IO-Link 链路的两端各需要一颗物理层收发器。一端在主站里负责把 MCU 的 UART 信号翻译成 24V 的 C/Q 脉冲同时给设备供电另一端在传感器里负责把传感器的数字信号送上同一根线同时承受现场的各种电气应力。这两颗芯片的设计重点完全不同下面用三个代号来指代M-01 主站收发器、D-02 设备收发器、D-04 双通道设备收发器型号本身不影响理解。4.1 主站侧那颗翻译、供电、看门三合一主站收发器 M-01 干三件事。第一把主机 MCU 通过 USART 送来的数据调制成 C/Q 线上的 24V 脉冲反过来把线上的脉冲解调回 USART。第二给 L 提供受保护的高边驱动能扛 500 mA。第三把各种故障状态攒进寄存器等 MCU 通过 I2C 来读。输出级是可编程的高边、低边或者推挽取决于现场怎么接。这个灵活性在工程上很实用因为不同厂商的传感器对驱动方式有各自的偏好一颗芯片能配三种接法就不用为每种接法备一款料。保护方面做得比较厚可编程的限流点和关断延时配合热关断和自动重启能扛住输出过载和短路。C/Q 和 L 的输出级能驱动阻性、感性、容性负载感性负载最大能到 10 mJ。供电电压被持续监测欠压状态会被记录。芯片内部有九个寄存器用来管参数和状态监测的故障源包括 L 线异常、过温、C/Q 过载、内部线性稳压器欠压、奇偶校验错。一个容易被忽略但现场很实用的细节芯片内置两路 LED 驱动开漏配置可以编两个闪烁序列。这意味着传感器出问题时技术人员不用连电脑就能从灯语上判断是供电问题还是通信问题——在嘈杂的车间里两只灯的闪烁模式比翻手册好使得多。4.2 设备侧那颗反接保护为什么被当成卖点设备收发器 D-02 的参数是这样的供电范围 7 到 36V功率级 RDSON 低边 0.8 欧、高边 1 欧输出电流最大 300 mA支持高边、低边、推挽三种模式能驱动最大 500 mJ 感性负载或 30 μF 容性负载。内部有 5V 或 3.3V、10 mA 的可选线性稳压器带唤醒检测。真正的重点在保护列表里反向极性保护覆盖了 VCC、GND、OUTH、OUTL、I/Q 五个引脚。为什么这一条被单独拎出来说因为在现场接线工人把 24V 接反是高频事故一根 M12 线序搞错24V 直接灌进芯片没有这层保护一整批传感器当场报废。有了它装错了拧下来重接就行损失的是几分钟工时。其余保护包括输出短路、过压、快速瞬变±1 kV500 欧阻抗、18 μF 耦合。工作温度从 -40 到 125 摄氏度封装是 3×3 毫米的 DFN。这个尺寸对传感器厂商很重要因为传感器本体越做越小PCB 上留给收发器的空间往往只有几个平方毫米。4.3 双通道那颗把两路塞进 4×4 毫米D-04 是后来加入的一条产品线定位比前两颗更集成。它提供两条输入输出线都带浪涌和反接保护一条 CQ 线走标准 IO-Link 通信另一条 DIO 线走普通标准 IO。两条线可以配置成并联工作把驱动能力提到 0.5 A用来对付需要更大电流的执行器。集成度体现在几个地方。它内置了 UART 外设直接处理 V1.1 规范定义的 M-sequence 帧结构内部有 15 字节的数据缓冲支持连续传输——也就是说 MCU 不用逐字节伺候时序可以腾出手去干别的。供电上给了两颗 50 mA 的 LDO3.3V 和 5V这两颗 LDO 既可以直接从 V 取电也可以先经过内部那颗 50 mA 的 DC-DC 变换器频率和输出电压 5 到 10.5V 可配后者是为功耗敏感的应用准备的因为线性稳压在 24V 降到 3.3V 的场景下发热相当可观。诊断能力也更强7 位校准温度测量、可配置的欠压检测门限、可配置的短路限流点并且能上报、唤醒识别。两颗可配置的电流模式 LED 输出齐纳限幅用于快速关断感性负载。ESD 按 IEC 61000-4-2 做到 4 kVEMC 浪涌 2 A/50 μs封装是 QFN-20L 的 4×4 毫米或者 CSP-19 的 2.5×2.5 毫米。4.4 评估板能省掉哪一段试错协议栈这东西自己从零写一遍是典型的血泪经验。帧结构、时序、状态机、错误恢复每一项都能磨掉几周。所以芯片厂商通常配套提供评估套件把物理层和协议栈都跑通让开发者从「能通信」这个起点开始做产品。主站侧的套件一般是两块板一块主站板承载 M-01一块通用 MCU 板。上面跑的 IO-Link 协议栈 V1.1 由第三方授权提供试用期按分钟计比如 10k 分钟到期可以申请续期。设备侧的套件通常是三块板设备板承载 D-02、低功耗 MCU 板、以及一块运动与环境传感器扩展板跑一个兼容 V1.1 的演示协议栈能直接读出温湿度和加速度值。拿到板子之后第一件事通常是确认 I2C 通道能不能通。下面这段是配置主站芯片的示意代码用 Python 写方便在开发板上快速验证。import smbus2 BUS 1 # I2C 总线编号按开发板实际接线修改 ADDR 0x30 # 7 位从地址最终值由芯片地址引脚和板级跳线决定 bus smbus2.SMBus(BUS) def read_reg(reg): 读一个配置或状态寄存器 return bus.read_byte_data(ADDR, reg) def write_reg(reg, val): 写配置寄存器写完立刻读回校验确认总线没有虚焊或干扰 bus.write_byte_data(ADDR, reg, val) if read_reg(reg) ! val: raise IOError(f寄存器 {reg:#04x} 写入失败检查地址与上拉电阻) # 第一步读状态寄存器确认当前没有 L 欠压 / 过温 / C/Q 过载 status read_reg(0x00) if status 0b0000_0111: print(f存在故障标志位: {status:#010b}先排查硬件再改配置) # 第二步把输出级设为推挽限流点选中间档 write_reg(0x01, 0b0000_1010) # 第三步点亮两路 LED一路表示已上电一路表示通信活动 write_reg(0x05, 0b0000_0011)这段代码的逻辑顺序是有讲究的先读状态、再改配置、最后点灯。如果一上来就写配置寄存器而芯片当前正处于过温保护状态写入可能被忽略或者在故障状态下触发额外的保护动作排查起来会很困惑。参数上还有几个容易出错的点。ADDR 是 7 位地址实际由芯片的地址引脚电平决定不同评估板出厂跳线可能不一样读不到设备时先拿示波器或者总线扫描工具确认地址。寄存器编号在不同封装和固件版本下可能有差异具体含义必须对照数据手册代码里的编号只是示意。限流档位写的是编码值不是安培数需要查表换算直接写 500 这种数字不会得到 500 mA。提示调通信之前先用示波器看 C/Q 线上的波形。很多「通信不上」的问题本质是线上根本没有脉冲或者脉冲幅度被负载拉塌了跟协议栈一点关系都没有。5. 容易踩坑的五个误区IO-Link 不是现场总线概念清楚了参数也看过了剩下的问题是边界。初学者最容易在这里混淆因为工业化里有一堆听起来差不多的名词每一个都自称「让设备更智能」。5.1 误区一把 IO-Link 当现场总线用易混点既然 IO-Link 能把几十个设备连起来那它是不是就是一条总线很多方案在宣传时也会画一张星型拓扑图看起来跟总线没区别。为什么混两者都解决「设备联网」这个问题名字里又都带通信的味道加上现场总线这个词本身就很宽泛。怎么区分看拓扑和角色。现场总线是一条干线挂多个节点节点共享带宽IO-Link 是一个主站端口对一个设备点对点不共享。现场总线负责跨工位、跨机柜的骨干传输IO-Link 只负责从主站端口到设备那最后二十米。它们是上下游关系不是替代关系。判断方法很简单看这个设备是直接挂在总线上还是插在主站的一个端口上。5.2 误区二以为 IO-Link 设备就是「高级开关量」易混点既然是同一个端口、同一根线、还兼容 SIO 模式那是不是等于一个带附加信息的开关量为什么混兼容性设计确实让它能降级成开关量使用插到普通 DI 模块上也能工作。怎么区分降级使用只保留了「通断」这一个信息位参数读写、诊断、值状态全部丢失。要拿到那些东西主站必须具备完整的协议栈和对应的 IODD 解析能力。一个简单的判断如果现场没有任何配置工具能读到这台设备的 IODD 文件那它实际上就是一个开关量设备智能功能并没有兑现。5.3 误区三把 230.4 kBaud 当成 230 kbps 带宽易混点COM3 的 230.4 kBaud 经常被换算成「230 kbps 的带宽」然后拿来跟百兆以太网比较得出「太慢了」的结论。为什么混Baud 和 bps 在低速串口场景下数值确实接近很多人习惯性当成一回事。怎么区分Baud 是符号率实际还有起始位、停止位、校验位、帧头、校验字段这些开销有效载荷远低于标称值。更重要的是这个数字本来就不是拿来跟以太网比的——它服务的是每秒几十到几千次采样的物理量一个压力值 2 字节一个温度值 2 字节230.4 kBaud 下 0.4 毫秒就能走完一轮物理上没必要更快。5.4 误区四以为 IODD 是驱动或者固件易混点装 IODD 这个动作听起来跟装驱动程序差不多。为什么混名字里带 Description文件后缀也不常见第一次接触时容易想当然。怎么区分IODD 是纯描述性的 XML 结构文件里面是设备信息的文字和数值定义不含任何可执行代码不会「驱动」硬件。它告诉配置软件怎么解读主站读回来的字节仅此而已。如果通信本身不通装一百个 IODD 也没用。5.5 误区五以为插上就能用忽略版本兼容易混点设备是 V1.1 的主站是 V1.0 的插上去应该也能跑吧为什么混接口物理上一样接插件一样指示灯也亮。怎么区分物理兼容不等于功能兼容。V1.0 的主站通常能识别并驱动 V1.1 的设备但 V1.1 引入的新特性——比如更长的过程数据32 字节、COM3 速率——会被裁掉设备退化到 V1.0 的能力范围内运行。反过来V1.0 的设备接到 V1.1 主站上一般没这个问题。选型时要看的是主站固件的协议版本而不是端口的物理形状。6. 什么时候该上 IO-Link什么时候先别急着掏钱判断标准其实不复杂关键看三件事你是不是真的需要在线读取设备内部的信息你的设备更换频率高不高你的布线成本占比大不大。先说该上的场合。第一种是换型频繁的产线。同一台设备今天做 A 产品、明天做 B 产品传感器量程要跟着变。传统做法是人到现场拧电位器、重新标定一次十几分钟一天换五次就是两个小时。用 IO-Link主站把参数存好换型时一键下发传感器自己切换量程。第二种是诊断价值高的设备比如关键工位上的压力传感器它坏了整线停摆那么提前知道它快坏了这件事本身就值钱。第三种是布线成本占比高的场合原来一个工位要拉六根模拟量线现在一根三线电缆串下来省的是线槽空间和接线工时。场景建议原因换型频繁、需要在线改参数上参数存储与下发能省下大量停机时间关键工位、停机损失高上诊断和预警的价值超过硬件差价传感器数量多、布线密集上三线电缆替代多根模拟线线槽压力小只需要一个通断信号、成本敏感别急智能功能用不上多花的钱买不到收益采样率要求远高于千赫兹别急循环周期和带宽都不适合波形级采集单点走线超过 20 米别急超出规范距离需要中继或换方案主站端口数已经排满别急硬塞只能降级成 SIO白白浪费设备能力我印象最深的一次教训是早年做一个改造方案时把 IO-Link 当成了现场总线来规划拓扑。当时想的是「一个主站能带八个端口那我串三个主站不就带二十四个设备了吗」于是把三个主站串在一条干线上一路挂过去还画了张挺漂亮的图。真到现场调试才发现主站之间那层网络不是随便串的端口调度、地址分配、诊断回传全都乱套最后只能返工重画工期拖了两周。从那以后我每次做拓扑都强制走一遍先数清楚每个工位有几个设备、每个设备需要多长的线、主站放在哪个位置最省线把这三个数字写在纸上再动笔画图。真正该问的问题从来不是「IO-Link 先不先进」而是「我这台设备的哪些信息现在拿不到、拿到了能省钱」。这个问题的答案清楚了选型自然就清楚了。希望帮到你。本文还有配套的精品资源点击获取