3. 必选节[FileInfo]:文件版本、创建时间、修改时间、创建工具、描述信息
好,咱们正式开始动手写 EDS 文件。第一个要面对的,就是 [FileInfo] 这个节。说白了,它就是整个配置文件的“身份证”。
我刚开始接触 EDS 时,觉得这节不就是填几个日期吗?随便写写得了。后来在一条汽车焊装线上,因为 FileInfo 里的版本号写错了,导致现场 30 多台伺服驱动器固件批量刷错。嗯,从那以后,我再也不敢小看这个节了。
3.1 [FileInfo] 到底管什么?
你可以把它理解成快递单上的寄件人信息。设备是谁生成的、什么时候生成的、版本对不对得上,全看这一节。主站(Master)在加载 EDS 时,第一件事就是读 [FileInfo],校验文件是否匹配当前设备。
它的核心字段就五个:
| 字段名 | 含义 | 我踩过的坑 |
|---|---|---|
| FileVersion | EDS 文件格式版本 | 写错会导致主站拒绝加载 |
| CreationDateTime | 文件创建时间 | 格式必须精确到秒 |
| LastModificationDateTime | 最后修改时间 | 跟固件版本联动才靠谱 |
| CreatedBy | 创建工具或人 | 建议写工具名+版本号 |
| Description | 设备描述信息 | 别写废话,写关键参数 |
3.2 字段详解与避坑指南
3.2.1 FileVersion — 文件格式的“版本锁”
这个字段目前主流值是 4(对应 CiA DS-301 V4.x)。有些老设备还在用 3,但新项目我建议统一用 4。
为什么?因为主站解析器看到版本号不对,直接罢工。我曾经在一条包装线上,把 FileVersion 写成了 2,结果倍福主站报“Unsupported EDS version”,查了整整半天才发现是这里的问题。
✅ 正确写法:
[FileInfo]
FileVersion=4
3.2.2 CreationDateTime 与 LastModificationDateTime — 时间戳的“格式陷阱”
这两个字段的格式非常严格,必须是:
YYYY-MM-DD-HH:MM:SS
注意:分隔符是 连字符(-),不是斜杠(/),也不是空格。时间用 24 小时制。
举个例子:
CreationDateTime=2025-06-15-14:30:00
LastModificationDateTime=2025-06-15-16:45:00
⚠️ 我曾经犯过的错:
有一次我手动编辑 EDS,把 CreationDateTime 写成了 2025/06/15 14:30:00。结果主站加载时直接跳过这个字段,用默认时间 1970-01-01 代替。设备上线后,固件版本比对永远失败。记住:连字符 + 24小时制 + 没有空格,一个字符都不能差。
3.2.3 CreatedBy — 你的“签名档”
这个字段我建议写成 工具名称 + 版本号。比如:
CreatedBy=EDS_Editor v2.1.0
如果你是自己写脚本生成的,也可以写脚本名:
CreatedBy=AutoEDS_Generator_Python3.9
我个人习惯把版本号写全。因为现场排查问题时,看到 CreatedBy 就能知道这个 EDS 是用哪个工具生成的,方便复现问题。
3.2.4 Description — 别写“通用设备”这种废话
Description 是给人看的。主站一般不解析它,但现场工程师会读。你想想看,一个柜子里 50 台设备,每台 EDS 的 Description 都写“伺服驱动器”,那跟没写有什么区别?
我建议至少包含:
- 设备型号(比如 MDS-200A)
- 关键参数(额定电流、通信速率)
- 固件版本(比如 FW v3.2.1)
举个例子:
Description=MDS-200A Servo Drive, 5A Rated, CANopen DS-301, FW v3.2.1
3.3 完整示例与知识图谱
下面是一个完整的 [FileInfo] 节,你可以直接当模板用:
[FileInfo]
FileVersion=4
CreationDateTime=2025-06-15-14:30:00
LastModificationDateTime=2025-06-15-16:45:00
CreatedBy=EDS_Editor v2.1.0
Description=MDS-200A Servo Drive, 5A Rated, CANopen DS-301, FW v3.2.1
为了让你更直观地理解 [FileInfo] 在整个 EDS 文件中的位置和作用,我画了张图:
3.4 几个实用小技巧
💡 技巧 1:时间戳自动生成
如果你用脚本生成 EDS,建议用系统时间自动填充 CreationDateTime。我习惯在 Python 里这样写:
from datetime import datetime
now = datetime.now()
creation_time = now.strftime("%Y-%m-%d-%H:%M:%S")
这样永远不会出现格式错误。
💡 技巧 2:Description 里加个“搜索标签”
我建议在 Description 末尾加几个关键词,比如 #CANopen #Servo #5A。现场工程师用文本搜索时,一搜就能找到对应的 EDS 文件。这招我在一个 200 台设备的项目里用过,反馈特别好。
⚠️ 注意:不要手动修改时间戳
除非你清楚自己在做什么,否则不要手动改 CreationDateTime 和 LastModificationDateTime。主站有时会用这两个时间跟设备固件时间做比对。我曾经见过有人把时间改成 2099 年,结果主站认为 EDS 文件“来自未来”,直接拒绝加载。
3.5 小结
[FileInfo] 虽然字段少,但它是主站认识你设备的第一印象。格式错了、时间不对、描述不清,都会给现场调试埋坑。
记住三个要点:
- 格式严格:连字符、24小时制、版本号写对
- 描述清晰:型号 + 关键参数 + 固件版本
- 工具签名:写清楚生成工具和版本,方便追溯