翻看西门子PLC的故障码库,946条记录着实让人感慨——这套诊断体系的颗粒度,已经细到令人又爱又恨的地步。从数据块校验和错误(0008)到存储卡写保护(0x00E1),从看门狗超时(0x0003)到子程序嵌套超过8层(0009),几乎每一个可能出问题的环节都被编码在案。
值得注意的是,相当一部分故障码指向的都是"配置类"问题而非硬件损坏:扩展模块地址冲突(0057)、通信协议版本不匹配(0x003E)、块分割指令参数错误(0x00B4)……这些码频繁出现,说明现场调试阶段的规范性仍有提升空间。而像浮点运算除零溢出(0039)、看门狗超时(0x0003)这类运行时异常,则更多考验程序健壮性设计。
在笔者看来,故障码数量庞大本身是好事,但工程师真正用得上的往往集中在十几条高频码上。厂商与其继续扩充码表,不如在诊断信息的可读性和现场指导性上多下功夫——毕竟,946条码里能背下来的没几个,能快速定位问题的才是好工具。