做过自动化项目的人都知道,电气设计和PLC编程之间有一道"墙"——电气工程师画完图纸,把IO表导出来扔给程序员,程序员拿到手一看,地址对不上、命名不一致,来回扯皮浪费的时间比写程序还多。这道墙在EPLAN和TIA Portal之间其实是可以拆掉的,关键是你要知道怎么用PLC数据交换功能把两边的数据打通。
从EPLAN导出PLC编址:不是简单导个Excel
很多人导PLC数据就是从EPLAN里生成一个Excel表格,手动复制粘贴到博途里。小项目十几个IO点这么搞没问题,项目一大,几百个IO点手动搞,出错概率基本是百分之百。
EPLAN的PLC数据交换功能走的是AML(AutomationML)格式,这个格式博途原生支持。操作路径是:项目数据 → PLC → 导出 → AML格式。导出之前有几个关键设置要检查:
- PLC盒子类型要选对——S7-1200和S7-1500的编址规则不一样,选错了博途那边导入会报错
- IO地址的命名规范要统一,建议在EPLAN的项目设置里提前定义好PLC标识符的命名规则,比如用"设备号_功能描述"的格式
- 数据类型要匹配,EPLAN里的BOOL、WORD、DWORD要和博途里的变量类型对应上
导出的时候勾选"包含连接定义"和"包含设备参数",这样博途导入后不光有IO地址,还能把设备的注释信息带过去。省得程序员在博途里再手动加一遍注释。
博途导入AML数据的实操流程
在博途里导入AML文件的操作不算复杂,但有几个坑要注意。
打开TIA Portal,在项目树里右键"添加新设备",不要选常规的硬件目录添加方式,而是选"导入设备"→"AutomationML"。浏览到EPLAN导出的AML文件,博途会自动识别出PLC站和IO模块。
这里有个常见问题:导入后博途提示"设备与项目中的硬件不匹配"。原因通常是EPLAN里的硬件配置和博途项目里实际选型的CPU型号或固件版本不一致。解决办法是在EPLAN的PLC导航器里,把PLC盒子的设备属性里的订货号和博途项目里的CPU订货号对齐。别小看这个细节,型号差一个字母,导入就失败。
导入成功后,在博途的设备视图里能看到所有从EPLAN同步过来的IO模块和信号地址。切换到程序编辑器,在PLC变量表里能看到完整的变量列表,包括EPLAN里定义的符号名称、注释和地址。到这一步,数据交换的骨架就搭好了。
双向同步:不只是单向导出
实际项目里,数据交换往往是双向的。电气工程师在EPLAN里定义了IO地址和设备名称,程序员在博途里可能会增加中间变量、修改某些信号的注释。如果只做单向导出,程序员在博途里的修改就白费了。
EPLAN支持从博途反向导入数据。操作路径是:项目数据 → PLC → 导入 → AML格式。导入的时候EPLAN会对比两边的数据差异,弹出一个对比对话框。这个对话框很关键,别一股脑全点"确定"。
我的建议是:
- 地址变更:如果博途里改了某个IO的地址,EPLAN这边会标记为冲突。这种变更要慎重,因为地址改了意味着接线可能也要改
- 注释更新:这个一般可以直接接受,程序员加的运行注释对后续维护有价值
- 新增变量:博途里新加的内部变量要不要同步到EPLAN?看项目需求,如果你们要求EPLAN图纸体现所有PLC变量,就接受;如果只管硬件IO,就跳过
联合调试中的典型问题
地址冲突问题
这是最常见的问题。EPLAN里给某个DI模块分配了地址I0.0~I0.7,但博途导入后发现这些地址已经被系统块占用了。排查思路很简单:在博途里打开"交叉引用",看看I0.0~I0.7被哪些OB/FB/FC引用了。如果是系统保留地址,回到EPLAN里修改PLC盒子的编址起始地址,重新导出。
预防这个问题的办法是在EPLAN设计阶段就查一下博途的地址分配表,避开系统保留区域。S7-1200的I0.0~I0.7一般是自由的,但S7-1500有些系统块会占用特定地址段,这个要看具体CPU型号的手册。
数据类型不匹配
EPLAN里定义了一个信号为WORD类型,但博途导入后变成了两个BOOL。这种情况通常是因为EPLAN里的PLC连接点设置有误。检查EPLAN里该信号的PLC连接点属性,确保"数据类型"字段设置正确。特别是模拟量信号,要确认是INT还是UINT,有符号和无符号在博途里处理方式不同。
设备描述丢失
有时候从EPLAN导出到博途后,某些设备的描述信息是空的。这多半是因为EPLAN里该设备的功能文本没有填完整。EPLAN的PLC数据交换只导出"设备标识符"和"功能文本"这两个字段作为博途里的注释来源。如果你在EPLAN里只在符号上写了"电机启动按钮"但没填功能文本,博途里就只能看到一个地址,没有注释。
项目实战:一条产线的联合调试经验
去年我们给一个汽车零部件厂做了一条自动装配线,用了S7-1500 CPU,IO点数大概800个左右。项目初期电气和PLC编程是完全分开做的,中间通过Excel交接IO表。结果调试阶段出了不少问题——有些信号在图纸上是一个名字,在程序里是另一个名字;有些地址在两边对不上。
后来我们改用EPLAN-博途的AML数据交换流程。具体做法是:
- 电气设计阶段,在EPLAN里严格按照命名规范定义所有PLC设备和信号
- 每周做一次AML导出,程序员在博途里导入,保持两边数据同步
- 设计变更时,谁改了数据谁负责重新导出/导入,并在项目群里通知
- 调试前做一次最终的数据对比,确保两边完全一致
这个流程走下来,调试阶段的信号对接问题基本消失了。以前光是核对IO表就要花两三天,现在导入后直接就能用,省下来的时间用来处理真正的调试问题。
几个实用建议
关于EPLAN和博途的数据交换,我总结了几条经验:
- 在项目启动阶段就约定好命名规范,包括PLC设备命名、信号命名、注释格式。这个规范要写到项目文档里,电气和编程两边都要遵守
- EPLAN里的PLC导航器要经常整理,删除未使用的PLC连接点,否则导出的数据里会有一堆垃圾变量
- 博途导入AML后,做一次"比较离线/在线"操作,确认导入的硬件配置和实际PLC一致
- 如果项目用到了PROFINET设备,EPLAN里的设备名称(Device Name)要和博途里分配的名称完全一致,大小写敏感
- 建议在EPLAN项目里建一个专门的"PLC数据"页,集中放置PLC盒子,方便管理和导出
EPLAN和博途之间的数据交换不是什么高深的技术,但真正用好它的项目团队不多。大多数团队还在用手动Excel交接的方式,效率低且容易出错。如果你正在做中大型自动化项目,花半天时间把这个流程搭起来,后面能省出不少调试时间。
关于EPLAN与TIA Portal的集成配置,我们之前有专门的文章介绍过,本文聚焦的是集成之后的联合调试和数据交换实操。如果你还没做过基础的集成配置,建议先看那篇入门文章,把环境搭好再来看本文的内容。