第一时间获取精彩技术分享

一、现象
做MES项目,甲方负责PLC,我们负责上位机。
甲方给的就是这样的东西:
某个西门子DB块的点位表PDF,里面写着:变量名、数据类型、偏移量、起始值——几十个字段,十几个DB块,每个DB块结构不同。
我的任务:把这些PDF里定义的点位,一条条输入到KingIOServer的TAG_TABLE导入模板中,生成一个可以直接导入KingIOServer的Excel文件。
听起来很简单?不就是把PDF里的内容抄到Excel里吗?
但实际做起来才知道有多坑:
变量名、数据类型、地址偏移、位号,一个都不能错 String类型的地址格式是 DB块.偏移.长度,Bool类型是DB块.字节.位号,Int/Real 是DB块.偏移——不同数据类型地址格式不一样甲方PDF里可能还有结构体数组(Array of Struct),一个材料数组展开就是8个点位 如果一个项目有40个工位,每个工位80个字段,就是3200个点位——手动敲,敲到怀疑人生
以前一个项目下来,光整理点表就要花两三天,而且眼睛盯久了,很容易敲错地址或者漏掉某个点位,导入后通讯不上,又要回头一个个排查,非常痛苦。
二、问题分析
这类工作的本质是:「格式转换」。
甲方PDF的格式(TIA Portal DB定义):
KingIOServer导入格式(TAG_TABLE,51列):
核心映射规则:
这些规则固定不变,完全可以自动化。
三、解决方案
我用的工具是Hermes Agent(一个开源的AI Agent工具),它可以在本地运行,连接DeepSeek等大模型,帮我执行自动化任务。
核心思路:让AI解析PDF → 按映射规则生成Excel,一步到位。
3.1 解析PDF
甲方PDF是西门子TIA Portal导出的DB定义,结构固定:属性表(DB编号、名称)+ 字段表(名称、数据类型、偏移量)。
AI自动提取这两个信息,得到DB编号和字段列表。
3.2 按规则转换
对于每个字段,按上述映射规则生成对应的KIO行:
String[n] → IOString,地址DB{N}.{偏移}.{n+2}Int → IOShort,地址DB{N}.{偏移}Bool → IODisc,地址DB{N}.{字节}.{位号}Real → IOFloat,地址DB{N}.{偏移}说明性字段(如"原料 库位申请")→ 不建点,存入Description列
3.3 处理复杂结构
实际项目中,甲方点表不止简单的平铺字段,还有几种复杂情况,AI都能处理:
① 结构体数组(Array of Struct)
一个材料数组包含ID、长、宽、厚度4个子字段,共2个元素 → 自动展开为 材料0_ID、材料0_长、材料0_宽、材料0_厚度、材料1_ID……共8个点位,地址自动匹配。
② 分组重复字段
同一个DB里有"托盘1"和"托盘2"两组,每组都有"状态"和"到位"字段 → 自动加前缀:托盘1_状态、托盘1_到位、托盘2_状态、托盘2_到位,避免重名。
③ 40个工位×80个字段
最夸张的一个点表:40个工位,每个工位74个字段,共2960个点位。如果手动敲,眼睛绝对看花。AI自动为每个工位加前缀(工位数据0_工单ID、工位数据1_工单ID…),一次生成,5分钟搞定。
④ 自动识别访问模式
有些甲方的PDF注释列里会写R/W、R(读写/只读),AI自动识别,直接配置到对应的ItemAccessMode列,不用手动指定。
四、效果对比
实际项目数据:一个MES项目的配盘系列点表,共18个DB块,6000+个点位,AI全部转换完成,耗时不到1小时(主要是解析PDF的时间,生成Excel本身几秒钟)。
五、总结
这次经历让我最大的感触是:
工控人也要学会"借力"——不是所有问题都要靠加班解决。
重复性工作(格式转换、数据整理、批量录入)是AI最擅长的。把精力解放出来,去解决真正的业务逻辑问题,效率翻倍,人也轻松。
当然,AI不是万能的:
甲方的PDF格式五花八门,需要不断补充规则 生成完成后的验证还是得人工做(抽查几个点位地址) 涉及保密数据,建议在本地运行AI,不要上传到云端
但总体而言,这个工作流已经把"几天"变成了"几分钟",投入产出比非常高。
如果你也在做KingIOServer的点表整理,或者有类似的重复性数据转换工作,可以试试这个思路——让AI帮你做苦力,你做更有价值的事。
附录:转换规则速查表
注意:地址在 KIO 的 ItemName 列,RegName 恒为 DB,RegType 恒为 3,不要填反。


夜雨聆风