IEC 81346-2-2019类对象与代码:统一设备身份的工程指南

📅 发布时间:2026/10/11 19:46:32
IEC 81346-2-2019类对象与代码:统一设备身份的工程指南
简介IEC 81346-2-2019《第2部分类对象和代码的分类》是国际电工委员会发布的工业自动化系统和集成系列标准的重要构成面向自动化工程师、系统架构师、设备维护人员及标准合规人员用于统一类对象的分类和代码标识解决多系统协同中的编码不一致、识别困难等问题为工业项目全生命周期的信息交换提供基础。该PDF共1个文件大小26.44MB为标准全文可离线查阅并支持打印适合作为技术规范参考。已有325人学习受到相关从业者的持续关注。文档内容涵盖设备类、机器类、过程类、系统类等类对象的分类框架规定了字母数字组合代码的格式和结构并给出泵、阀门、传感器等设备类代码示例以及机床、机器人等机器类代码示例有助于读者理解标准条文掌握分类方法直接用于工业自动化系统设计、改造与集成提升项目的可维护性和扩展性。1. 为什么“IEC 81346-2-2019 类对象和代码”决定了一台设备的终身身份在某次大型改造项目的调试现场同一台主泵在 DCS 画面里叫 P-101在电气图纸上叫 MP101在资产台账里又叫 PUMP-01三个系统工程师花了半天才确认是同一个物理对象。这种混乱并不是个例而是跨专业项目里每天都可能发生的“身份错位”。IEC 81346-2-2019 正是用来解决这个问题的标准它定义了“类对象和代码的分类”为设备、装置、系统提供一套统一的分类语言让功能、位置、产品三层信息都能落到同一个参照代号体系里。这篇笔记会讲清楚这套标准到底在说什么、什么项目值得用、怎么把 PDF 里的代码表变成你自己项目里的字典以及按 2019 版落地时最常见的几个坑。2. 这套代码把设备分成几类81346-2 的类对象体系与代码含义2.1 81346 家族里的 -2是“分类字典”不是“字母表”很多第一次接触 81346-2 的人都以为它只是一张字母代码对照表用的时候就像查字典一样把设备名称翻成字母。实际上IEC 81346 是一个标准族它解决的问题远比“字母对应表”更系统如何为一套工程对象建立一致的结构原则如何生成、组合、维护参照代号。这个家族里-1 讲的是参照代号的通用规则和构成方法-2 提供“对象类别”和“分类代码”-3 面向建筑服务的应用-6 则针对功能维护场景给出使用指南。也就是说-2 只是整个体系里的分类字典部分但它是让其他规则落地的基础。“类对象”这个词听起来绕其实很好理解。在 81346 的语境里“对象”是被考虑的任何实体可以是一台泵、一个机柜、一条母线、一段软件逻辑“类对象”则是具有相同分类特征的对象的集合。81346-2 要做的事情就是给这些类对象命名并分配代码。2019 版特别强调了“按信息用途”来分类这意味着同一个物理设备在不同视角下可能属于不同类别——一台变频器如果按“把输入电能变换成输出电能”的用途就会归入转换类如果按“安装在 2 号电气室”的视角则更适合用位置参照来表达。理解这一点后续才不会把代码表用死。从版本脉络上看IEC 61346-2:2000 是它的前身后来被 81346-2 取代2019 年又发布了新版本。老工程师手里可能还有旧的 61346-2 表新项目我一般直接建议采用 2019 版因为新版对分类对象的界定更贴近信息建模需求也更容易和数字化交付、资产管理平台对接。但这不代表旧表完全没用——后面会专门讲迁移时怎么处理。2.2 两位字母代码怎么读主类、子类与前缀81346-2 的代码由两位大写字母构成第一位表示主类第二位进一步细分。读一个完整参照代号时要分三段来看前缀、类别代码、序号。常见的前缀有三种分别对应三种参照代号类型前缀含义典型使用场合示例示意功能参照按对象承担的功能来标识常用于逻辑系统B3位置参照按对象安装或所在的位置来标识常用于布置图和安装图H01-产品参照按产品本身来标识常用于设备清单和铭牌-MTR02也就是说同样是“3 号风机”在功能图上它是B3在安装图上可能是F02在设备清单里又可能是-FAN03。三者不冲突它们描述的是同一个对象的三个不同视角。很多项目争论“到底用哪个代号”其实没有意义正确做法是在不同文档类型里各用各的视角同时通过工程数据管理保证它们指向同一个对象。类别代码的阅读方法也不复杂。先看第一个字母它告诉你这个对象在信息用途上属于哪个大类。下面这张表只是为了展示阅读方法我按行业里常见的分类约定整理了一个示例正式使用请以你手里的 2019 版 PDF 代码表为准代码主类含义示意常见对象示意A设备、装置类组件、成套装置B将输入转换为输出的对象变送器、检测元件F保护类对象熔断器、保护继电器G提供能量或信号的对象发电机、电源单元K处理信号与信息的对象PLC、逻辑继电器Q受控或可切换的开关对象断路器、接触器实际查代码表时别只盯着设备名称去找。比如“泵”往往查不到一个叫“泵”的类别正确做法是先判断这台泵在系统里的信息用途它是提供压力还是输送介质还是循环冷却用途判断对了类别代码自然就落在了正确的区间。这是 81346-2 和一般产品编码最不一样的地方——它按“为什么存在”分类不按“是什么”分类。2.3 从代码到参照代号读代码表时盯住三个字段一份完整的 81346-2 代码表每一行通常包含代码、类别名称、描述性定义有的还带备注或示例。很多人在落地时只复制了“代码”和“名称”两列这就够用了不够。真正的判断逻辑藏在“描述性定义”里它会告诉你这个类别适用的边界条件。比如某个代码的定义里写了“不适用于直接安装在危险区域的设备”那你在爆炸性环境项目里就不能硬套。我一般会要求团队把这三列全部录入字典备注列保留原文不随便删减。读代码表时还要注意一个习惯不要拿设备名称反向查代码。“压力变送器”在新手手里往往变成搜索关键词但在 81346-2 的体系里它更自然的归类路径是先判断它属于“将输入转换为输出的对象”再根据信号类型选择更细的子类。整个判断流程应该是先问“这个对象在系统里承担什么用途”再问“这个用途属于哪个信息大类”最后落到两位字母代码。走完这三步你才算是真正会查这本“字典”而不是在翻字母表。编码这件事在大型项目里有点像一个刚性的约定体系——前期多花半天把定义读明白后面几百张图纸和几万条设备记录才不会变成一团乱麻。代码表本身并不神秘真正考验人的是把它当规则用而不是当单词表背。3. 判断要不要用从单机柜到千万级工厂的适用边界3.1 哪些项目被这套标准“拯救”哪些项目纯属找负担81346-2 不是一个“用了就一定好”的万能编码方案它的收益高度依赖项目规模、生命周期和协作复杂度。在大型流程工业项目里比如石化装置、电厂、轨道交通、船舶海工对象数量动辄几万条跨电气、仪表、机械、暖通多个专业设计、采购、施工、运维多个阶段要反复交换数据。这种场景下如果没有统一的类对象代码光是“哪个代号对应哪个设备”就能吵几个月。81346-2 的价值在这里会被放大得非常明显。反过来如果是一个单机设备制造项目一台电控柜配两台电机图纸只有二十张交付周期两个月那完整引入 81346 家族就属于杀鸡用牛刀。你花在编码规则讨论、软件配置、人员培训上的时间可能比画图还多。这时候我通常的做法是只保留一套简单的设备命名规则用“设备类型缩写流水号”就够了不强行套参照代号体系。下面这张对比表可以直接拿来做快速判断判断维度建议完整采用建议简化或不用对象数量上千至数万几十到几百跨专业协作3 个专业以上单专业或两人完成生命周期10 年以上频繁改造一次交付运营期短数字化交付接入 DCS、BMS、资产管理平台仅纸版图纸和简单清单业主审查要求结构化编码只要求图面清晰这里面的逻辑不是“标准越高级越好”而是“编码成本要和数据交换成本匹配”。大型项目的数据交换量大统一编码省下的沟通成本远超编码本身的维护成本小型项目则相反统一编码的制作成本比省下的沟通成本还高。决策时只要算这笔账结论一般不会跑偏。3.2 五个问题快速判断你的项目要不要上 81346-2如果你还在犹豫我一般会让人先回答五个问题比直接看标准适用范围更具体。第一个问题对象数量是否超过 300 个且跨 3 个以上专业数量少时用 Excel 清单加人工对照就够了数量一多字母加流水号的简单命名就会出现大量重号和含义模糊这时候才需要结构化编码。第二个问题项目生命周期是否超过 10 年并且会有备件、改造、退役环节设备一旦进入运维期编码就是它唯一的身份证。改造时查档案、采购时查备件全都依赖当年写下的代号。生命周期短的项目这套身份证还没用熟就报废了投入不划算。第三个问题业主或总包有没有在合同技术附件里指定编码体系这是最关键的一个问题。我见过不止一个项目内部讨论半天选了 81346-2结果送审时被业主退回因为合同技术附件里明确要求用业主自己的编码规范。这时候标准要服从合同不要试图用技术争论推翻商务条款。第四个问题图纸和数据交付是否需要对接 DCS、BMS、资产管理等系统如果交付物要进数据库对象没有稳定的分类编码数据库里就全是“名称相似但代码不同”的脏数据。数字化程度越高越值得上 81346-2。第五个问题设计团队是否多地点协同跨地域协作时不同专业的命名习惯差距会被放大一个统一的类对象字典是减少争议的最便宜手段。我的判断方法是五个问题里至少有三个“是”才值得完整引入如果只有一个“是”那就只把 81346-2 的代码表当作命名参考不强制全项目执行。3.3 别忘了业主变体ISO 81346-2 与行业裁剪这里要提醒一个容易忽略的事实ISO 81346-2 和 IEC 81346-2 实际上是同一部标准文本由两个组织联合制定。这意味着不管你在合同里引用的是 ISO 版本还是 IEC 版本技术内容基本一致不必担心两套体系打架。但在实际工程里业主和行业层往往会在这个基础上做裁剪。常见的裁剪方式有两种。第一种是缩小代码范围比如只使用主类代码不用子类细分让编码更简洁第二种是给特定前缀赋予行业含义比如某些石化项目把“位置参照”统一规定为“装置内物理位置编号”不允许用在其他场景。这些都属于合理的企业本地化不违反标准本身但必须在自己的规范里写清楚。落地顺序我建议这样先读合同技术附件确认业主要不要指定编码体系再决定采用 2019 版全量代码表还是裁剪版最后把裁剪结果登记成一张“裁剪登记表”内容包括代码、是否使用、本企业替代方案、裁剪原因。这张表是你将来审计和项目复盘时最重要的依据别省。特别注意裁剪不等于发明新代码。我见过有的团队嫌标准代码不好记自己造了一套“更直观”的字母代码结果设备到了运维期没人看得懂最后又迁回标准代码白白折腾一年。标准里的代码是经过国际协商的个人觉得“不好记”往往只是因为不熟悉而不是它设计得差。3.4 不用它的隐性成本调试期燃烧、备件错配、资产审计不用 81346-2 的代价往往不是在设计阶段暴露的而是在调试期和运维期集中爆发。调试时电气专业说“MP101 已经送电了”仪表专业问“MP101 是哪个泵”如果是同一套编码体系这句话不会有歧义如果没有每一次跨专业沟通都要先做一次翻译。调试周期里这种翻译次数乘以参与人数燃烧掉的就是真金白银。备件错配是另一个隐蔽成本。运维期采购备件时工程部从图纸上抄了一个代号采购部按这个代号去查库存结果发现系统里还有三个相似代号买回来的东西装不上。这种错配很少被归因到编码体系但它和“图纸与台账编号不一致”有直接关系。资产审计场景更直接。工厂做固定资产盘点时审计人员要把实物和台账一一对应如果台账里的设备编码不是结构化生成的盘点表里就会出现大量“无法确认是否为同一设备”的记录每一条都要人工再到现场核实。这时候回头看设计阶段多花两天配置编码规则能省掉审计阶段两个星期的现场工作量。这还只是算得清的账算不清的还有各专业之间因为代号问题产生的扯皮成本。4. 把 PDF 变成工程规则编码字典整理与电气工具落地4.1 把 PDF 里的代码表抽出来一条可复制的 Python 提取命令拿到 81346-2-2019 的 PDF 之后第一步不是让全组人打开 PDF 去逐行抄代码而是先把代码表结构化。我一般用 Python 的 pdfplumber 库来完成这个任务它可以把 PDF 里的表格按行提取出来再存成 CSV后续导入设计软件、数据库或者 Excel 都方便。先用一句命令装好依赖pip install pdfplumber pandas然后运行下面的提取脚本import pdfplumber import pandas as pd pdf_path IEC 81346-2-2019.pdf # 替换为实际文件路径 records [] with pdfplumber.open(pdf_path) as pdf: for page_num, page in enumerate(pdf.pages, start1): # 只处理代码表所在的页面范围避免把前言、目录也算进来 if page_num 10: continue tables page.extract_tables() for table in tables: for row in table: # 过滤空行代码列必须有内容 if len(row) 3 and row[0] and row[0].strip(): records.append({ 代码: row[0].strip(), 类别名称: row[1].strip() if row[1] else , 描述: row[2].strip() if row[2] else , 来源页: page_num }) df pd.DataFrame(records) df df.drop_duplicates(subset[代码]) df.to_csv(81346_dict.csv, indexFalse, encodingutf-8-sig) print(df.head())这段代码的逻辑不复杂遍历 PDF 每一页调用extract_tables()提取页面里的表格再逐行读取前三列最后按“代码”列去重并存成 CSV。有几个参数要按你的实际文档调整。page_num 10是一个经验过滤条件因为标准 PDF 开头的目录和引言部分往往也有表格直接提取会产生大量无效记录先用这个条件跳过等跑完再看实际页数微调。encodingutf-8-sig是故意的用这个编码生成的 CSV 用 Excel 直接打开不会乱码如果你是给中国团队用建议保留这个参数。跑完脚本后务必打开 CSV 抽查几行重点看“描述”列是否完整。PDF 表格如果包含跨页的宽表pdfplumber 偶尔会把一整行截断成两行导致代码和描述错位这在 5.4 里会专门讲排查方法。4.2 把字典配置进电气设计软件与 BOM 系统代码表整理成 CSV 只是第一步接下去要让设计人员在实际画图时不脱离这套规则。常见做法是在主流电气设计软件里新建或修改“参照代号”方案把、、-三种前缀以及允许使用的两位字母代码配置成一个编码模板。这样设计人员生成代号时软件会弹出一个受控列表只允许选白名单里的代码从源头上挡住“随手写一个字母”的行为。字段映射关系可以参照这张表软件里的字段81346-2 要素配置值示例前缀类型参照代号类型//-类别代码两位字母代码B、F、K、Q对象序号同类对象计数01、02、03分隔符层段之间的分隔按软件默认通常不额外加分隔符配置完成后要花半小时做一次实测新建几个不同类型的设备比如电机、阀、仪表看生成的代号是否符合预期。这里最容易翻车的点是软件默认的“安装位置流水号”规则会覆盖你的自定义设置导致出来的代号仍然是E02这种位置风格。我一般会在项目模板里直接锁定参照代号方案不让设计人员自己在选项里来回切换避免图纸里混用两套风格。BOM 和 PDM 系统这边通常把“类别代码”设计成一个分类属性物料导入时从 CSV 里匹配。这样设备台账里除了有名称和型号还带一个稳定的类别维度后续做资产统计、故障分析、备件归类都能按这个维度快速筛选。这一步不需要开发复杂功能多数系统都支持自定义属性字段难的是把代码表维护好并保持和设计软件里的配置同步。4.3 企业编码规范最少应该包含的四段内容拿到薄薄一本标准 PDF很多人会误以为直接把它发给团队就完事了。实际上团队需要的是基于这本标准裁剪后的“企业操作规范”而不是标准原文。我建议企业规范至少包含四段内容章节必写内容为什么必须有目的与范围明确用于哪些项目、哪些专业、哪些文档类型避免有人在不该用的场景硬套引用标准列出 81346-1、81346-2-2019 及相关版本号统一引用口径防止版本混乱代码白名单本企业允许使用的代码及定义控制编码自由度防止自造代码书写规则与示例前缀用法、序号规则、命名示例让新手照着写就能写对书写规则这一节建议附上具体的命名示例让团队知道“标准答案”长什么样示例代号拆解说明K3功能参照第 3 号信号处理类对象H01位置参照H 区域的第 01 号安装位置-MTR02产品参照第 2 号电动机规范写完后还要在图纸校审环节增加一条审查项检查每个参照代号的前缀、类别代码是否在“代码白名单”里。这条审查项不需要太高级的技术支持一张纸制检查单就能做到但在设计阶段拦住问题远比运维阶段返工便宜。5. 避坑实录参照代号编码中最常见的 5 个翻车点5.1 第一坑把 81346-2 当成“文档编号规则”来用现象有团队把参照代号直接写进文档编号里比如一份电气原理图编号写成B3-001结果文档管理系统不认因为系统里规定“等号不能出现在文件名中”最后所有文档被迫重新命名。原因81346-2 解决的是“对象怎么分类”不是“文档怎么编号”。文档编号有一套自己的标准逻辑比如 IEC 61355 规定了文档类型代码它和对象类别代码是两个不同维度。混淆这两套体系根子在于没有区分“对象标识”和“文档标识”。解决把对象参照代号用在图面、设备清单、数据库记录里文档编号另走文档管理体系。两者可以在图纸的图签区域建立关联但不要物理混编。写企业规范时建议把“参照代号”和“文档编号”分成两个独立章节说明。5.2 第二坑代码表背了一半剩下的全靠“大概”现象设计人员记住了几个常用代码遇到不常见的对象时不去查表直接用一个“听起来差不多”的字母顶替。比如某台设备本来应该属于保护类因为设计人员觉得它“像开关”就随手编了个Q7等到采购清单出来设备类别全是错的。原因不是设计人员偷懒而是代码表没有被嵌入到工具流程里。当查表成本高、软件又允许自由输入时“随手写一个”就成了默认路径。解决把 4.1 提取出的代码白名单配置成设计软件里的下拉列表或受控字典白名单之外的字母组合不允许保存。同时在新员工培训时强调查不到代码不是“随便写一个”的理由正确做法是提交给编码管理员补充白名单。5.3 第三坑从 61346-2 旧图迁移到 2019改着改着就对不上了现象一个改造项目沿用了旧版 61346-2 的图纸项目组决定“顺便升级到 2019 版”结果迁移到一半发现同一个设备在新旧两套代码表里的含义不同备件清单错位调试时发现图上的代号和实物铭牌对不上。原因新版 81346-2 把分类视角调整为“按信息用途”旧版 61346-2 的一些类别语义也随之变化。这不只是“换个字母”那么简单直接替换会破坏历史数据的一致性。解决迁移前先做一张差异映射表把旧代码和新代码逐条对照标出“含义不变”“含义变化”“旧代码废弃”三类。含义变化的代码要单独评审不能无脑替换。已经投产的旧项目我一般建议保留原编码体系只在新建部分使用 2019 版两个体系的对照关系由数据库来维护而不是强行统一。5.4 第四坑提取 PDF 表格时表头“跨页”导致代码错位现象用 4.1 的脚本提取代码表后抽查发现某几行的“代码”是 B 列的内容“描述”却是上一行的内容整体错位。原因标准 PDF 的代码表是宽表跨页时页眉会重复出现某些单元格跨行或跨列pdfplumber 按物理位置切分表格时会把这种结构拆碎结果就是行错位、列错位。解决先按来源页分块检查定位到出错页面后改用page.extract_words()按坐标拼接或者把跨页表格拆成两段分别解析再合并。最稳妥的做法是提取完成后做一次规则校验正常行应该有“两位字母代码 至少 5 个字符的类别名称 一段描述”如果描述列为空且不是表格末尾就标记为“待人工核查”。人工核查时重点抽查代码表的前后各 20 行不用全表检查但一定要保证白名单这部分的准确性因为它决定了整个项目的编码上限。5.5 第五坑业主企业规范不认标准代码现象项目内部按 81346-2 编好了全部代号送审时业主在意见栏里写“不符合本项目编码规定”退回的图纸上全是红色批注。原因这类项目的合同技术附件里通常有一份业主自己的编码体系说明或者沿用某行业长期形成的编号习惯。业主的要求在法律效力上优先于标准这不是技术问题是商务和合同问题。解决签约阶段就要确认合同里写的是“按 IEC 81346-2-2019 执行”还是“按业主编码手册执行”。如果业主自己有一套体系最好的妥协方式是做映射表内部标识可以保留 81346-2 结构对外交付时通过映射转换成业主要求的字段。不要试图在送审阶段用标准条文去说服业主这个阶段已经晚了。6. 给文档做一个“编码体检”脚本查重与合法性校验交付前最后一关我习惯给全项目的参照代号做一次“体检”。所谓体检就是用一个脚本把 BOM 表或图纸导出清单里所有的代号拉出来按企业规范检查格式合法性再检查有没有重复。这个动作耗时很短但能挡住前面几章说的绝大多数低级问题。下面是一个简化版本按常见的A1、B2、-C3规则做校验import re import pandas as pd # 企业规范里的合法代号规则前缀 一个大写字母 1 到 4 位数字序号 CODE_PATTERN r^[-][A-Z][0-9]{1,4}$ bom pd.read_csv(project_bom.csv) bom[pass] bom[代号].map(lambda c: bool(re.match(CODE_PATTERN, str(c)))) print(不合法代号) print(bom.loc[~bom[pass], [代号, 设备名称]]) duplicated bom[bom.duplicated(代号, keepFalse)] print(重复代号) print(duplicated.sort_values(代号))这段脚本的逻辑很直白先读取清单文件再用正则表达式判断每个代号是否满足“前缀 字母 序号”的规则最后把不合法和重复的行分别打印出来。实际操作时你把CODE_PATTERN按自己企业规范里的规则改一改就行比如允许两个字母、允许更多位数字或者要求前缀必须是项目规定的某几个字母。我现在的习惯是把这份体检脚本放在出图服务器的批处理流程里每次批量出图前自动跑一遍输出问题清单给校审人。多花的时间不超过十秒钟但能把“随手写的字母”和“重号”挡在送审之前。编码体系的维护没有太多玄学无非是规则定好、工具限制死、交付前勤检查。希望帮到你。本文还有配套的精品资源点击获取