跳到主要内容

FoE — 文件传输

FoE(File over EtherCAT)用于向从站上传或下载文件。

典型场景

  • 固件更新 — 上传新固件到从站
  • 柔性配置 — 上传配置文件,实现不同产线的灵活切换
  • 日志导出 — 从设备中读取运行日志、错误记录
  • 参数备份/恢复 — 下载或上传设备参数文件

配置工具:在 FoE Tab 中选择文件并执行上传/下载操作,进度条实时显示传输状态。

导出方式选配 — 在导出窗口中勾选 FoE 文件操作 即可在代码中生成文件传输示例。


SDK 用法

var foe = slave.FoE;

// ── 上传文件到从站(如固件更新)──
byte[] firmware = File.ReadAllBytes("firmware.bin");
foe.ProgressChanged += (s, e) =>
Console.Write($"\r上传进度: {e.ProgressPercent}%");
bool ok = foe.Upload("firmware.bin", firmware, password: 0x1234);

// ── 从从站下载文件(如导出日志)──
byte[] logData = foe.Download("error.log");
if (logData != null)
File.WriteAllBytes("device_error.log", logData);

// ── 柔性配置:上传自定义配置文件 ──
byte[] config = File.ReadAllBytes("custom_config.dat");
foe.Upload("config.dat", config);

// ── 下载设备参数备份 ──
byte[] paramBackup = foe.Download("params.bak");

导出的代码

// ── FoE 文件操作(由工具自动生成)──
var foe = slave.FoE;
foe.DefaultTimeoutMs = 10000;

foe.ProgressChanged += (s, e) =>
Console.Write($"\r传输进度: {e.ProgressPercent}% ({e.PacketNumber} 包)");

// 上传: foe.Upload("filename", fileData, password: 0);
// 下载: byte[] data = foe.Download("filename", password: 0);
备注

FoE 通常需要从站在 BOOTPRE_OP 状态。固件更新需先切换到 BOOT 模式。


更多

完整 FoE API 请参考 C# SDK — FoE