2. TIA Portal项目结构规范

在TIA Portal中,一个产线项目往往包含多个PLC站点、HMI面板、驱动器和分布式IO,项目树会随着设备数量增长而迅速膨胀。如果命名随意、注释缺失,三个月后连项目作者自己都难以定位某个FB的功能。本节讨论的不是“好看”,而是让项目在多人协作、版本迭代和跨语言环境下仍然可读、可查、可维护的一套命名与注释约定。

一、项目命名:从项目名到存储路径

TIA Portal项目名同时决定了项目文件夹名称和内部引用标识。建议采用“产线代号_控制层级_版本”的结构,例如 L3_PackLine_Main_V1.2。其中产线代号用大写英文缩写,控制层级区分主站与从站,版本号与版本管理策略对应。项目名应避免中文、空格和特殊字符,因为项目归档为 .zap 文件、导出为 .aml 或与Git等工具配合时,中文路径容易在跨平台环境中出现乱码或路径解析失败。

项目名一旦确定,不建议在项目生命周期内频繁修改。若必须修改,应同步更新归档文件名、版本记录和外部引用文档,避免出现“项目名与归档名不一致”的追溯断点。

二、设备命名:让项目树一眼可读

设备命名包括PLC、HMI、驱动器和分布式IO的设备名称与设备编号。推荐格式为“区域_设备类型_序号”,例如 PK01_PLC_01、PK01_HMI_01、PK01_DRV_03。设备名称会出现在在线诊断、PROFINET设备名和HMI连接配置中,因此必须与硬件组态中的PROFINET设备名保持一致。若设备名与PROFINET设备名不一致,下载后可能出现“设备名冲突”或“无法建立连接”的报错。

对于分布式IO,建议在设备名中体现所属PLC,例如 PK01_PLC_01_ET200SP_01,这样在跨PLC引用时能快速判断IO归属。设备编号在同一区域内应连续,避免跳号,便于后续扩展时插入新设备。

三、程序块命名:按功能分层

程序块命名应体现“块类型+功能+序号”。OB块建议保留系统默认名称并附加功能说明,如 OB1_Main、OB100_Startup;FB块采用“FB_功能_序号”,如 FB_ConveyorCtrl_01;FC块采用“FC_功能_序号”,如 FC_AlarmMap_01;DB块区分全局DB与背景DB,全局DB用 DB_Global_Config,背景DB由系统自动生成,但可在FB调用时统一命名规则。

块名称应避免使用中文和空格,因为块名称会出现在交叉引用、在线监控和SCL代码中。若使用SCL编写,块名必须符合标识符规则,不能以数字开头,不能包含运算符字符。

四、变量表命名:PLC变量与HMI变量分离

PLC变量表建议按“区域_功能”划分,例如 PK01_Conveyor、PK01_Alarm。变量名采用“前缀_对象_动作”结构,如 I_Conv01_RunFb、Q_Conv01_Motor、M_Conv01_Speed。前缀区分输入、输出、中间变量和定时器,便于在交叉引用中快速筛选。

HMI变量表应与PLC变量表分离,命名时增加HMI前缀,如 HMI_Conv01_Speed,避免与PLC变量混淆。对于需要跨PLC访问的变量,建议在变量名前增加PLC标识,如 PK01_PLC_01_Conv01_Run,明确数据来源。

五、注释规范:让代码自解释

注释分为块注释、网络注释和变量注释。块注释应说明块的功能、调用条件、输入输出含义和版本变更记录;网络注释应说明该网络实现的逻辑或工艺步骤;变量注释应说明变量的物理含义、单位和有效范围。例如,一个模拟量输入变量应注释为“传送带01速度反馈,单位m/min,范围0~60”。

注释应随代码同步更新。若修改了逻辑但未更新注释,注释会变成误导信息,比没有注释更危险。建议在版本提交前检查注释与代码的一致性。

六、多语言支持:注释与文本的国际化

TIA Portal支持多语言项目,注释和HMI文本可以配置多种语言。对于出口设备或跨国产线,建议在项目属性中启用所需语言,并在注释和HMI文本中使用“中文+英文”双语或通过语言切换功能管理。需要注意的是,块注释的多语言支持依赖于项目语言设置,若未启用对应语言,导出时可能只保留默认语言。

变量名和块名本身不支持多语言切换,因此命名应使用英文或拼音缩写,确保在不同语言环境下都能被识别。HMI文本则可以通过语言表进行翻译,建议在项目早期建立语言表,避免后期逐条翻译。

TIA Portal 项目结构规范:命名层级与多语言关系 项目层 L3_PackLine_Main_V1.2 项目名 = 文件夹名 避免中文/空格/特殊字符 项目名决定归档名与外部引用标识,修改需同步更新版本记录 设备层 PK01_PLC_01 PK01_HMI_01 PK01_DRV_03 PK01_PLC_01_ET200SP_01 设备名必须与PROFINET设备名一致,否则下载后连接失败 分布式IO设备名体现所属PLC,便于跨PLC引用 程序块层 OB1_Main FB_ConveyorCtrl_01 FC_AlarmMap_01 DB_Global_Config 块名用于交叉引用与SCL代码,必须符合标识符规则 OB保留系统默认名+功能说明,FB/FC/DB按类型前缀区分 变量表层 PK01_Conveyor I_Conv01_RunFb HMI_Conv01_Speed PLC变量与HMI变量分表管理,前缀区分I/Q/M/T/C 跨PLC变量增加PLC标识,明确数据来源 注释:块注释 + 网络注释 + 变量注释(含单位/范围) 多语言:注释/HMI文本可切换,变量名/块名用英文

七、命名与注释的落地检查

规范的价值在于执行。建议在项目归档前做一次命名检查:项目名是否符合“产线_层级_版本”格式;设备名是否与PROFINET设备名一致;程序块是否按OB/FB/FC/DB前缀区分;变量表是否按区域划分;注释是否覆盖所有输入输出变量。对于多语言项目,还需检查语言表是否完整、HMI文本是否已翻译。

命名规范不是一次性工作,而是贯穿项目生命周期的习惯。建议在团队内建立一份命名约定文档,并在项目模板中预置常用变量表和块命名规则,新项目直接复用,减少重复决策。

最后需要强调:命名和注释的最终目的是降低沟通成本。一个命名清晰、注释完整的项目,在交接、排障和版本对比时能节省大量时间。与其在后期花时间猜测变量含义,不如在编写阶段多花几秒钟输入一个有意义的名称。