SSC Tool (V5.13) 参数配置详解指导
工具: Beckhoff Slave Stack Code Tool V5.13
参考文档: ET9300 Application Note (EtherCAT Slave Stack Code)
整理日期: 2026-06-13
目录
- SlaveInformation(从站信息)
- Generic(通用配置)
- Hardware(硬件配置)
- EtherCAT State Machine(状态机配置)
- Synchronisation(同步配置)
- Application(应用层配置)
- ProcessData(过程数据配置)
- Mailbox(邮箱配置)
1. SlaveInformation(从站信息)
此页卡定义从站设备的基础标识信息,对应 EtherCAT 对象字典 0x1018(Identity Object),以及 ESI XML 中的设备描述。
| 参数 | 类型 | 含义 |
|---|---|---|
| VENDOR_ID | UINT32 (Hex) | 厂商ID。由 ETG 分配的全球唯一标识符,写入对象 0x1018:01。主机通过此 ID 识别制造商。若使用自定义 ID 需向 ETG 申请。 |
| VENDOR_NAME | String | 厂商名称。写入 ESI XML <Name> 节点,用于 TwinCAT 等主站显示,不影响协议行为。 |
| VENDOR_IMAGE | Hex Array | 厂商 Logo 位图。BMP 格式十六进制数组,写入 ESI XML <Image16x14>。TwinCAT 扫描窗口中显示。 |
| GROUP_NAME | String | 设备组名称。同类产品分组标识,写入 ESI XML <GroupType>。一个产品族下多个型号可用相同 GROUP_NAME。 |
| GROUP_IMAGE | Hex Array | 设备组 Logo 位图。产品族级别的图标。 |
| DEVICE_IMAGE | Hex Array | 设备 Logo 位图。在 TwinCAT 设备树中显示的小图标,区分同一 GROUP 内的不同型号。 |
| PRODUCT_CODE | UINT32 (Hex) | 产品代码。制造商内部产品编号,写入对象 0x1018:02。与 VENDOR_ID 组成设备唯一标识。 |
| REVISION_NUMBER | UINT32 (Hex) | 版本号。写入对象 0x1018:03,格式为主版本+次版本(如 0x00030001 = V3.1)。 |
| SERIAL_NUMBER | UINT32 (Hex) | 序列号。写入对象 0x1018:04。可设为 0 由应用层运行时赋值,也可预设固定值。 |
| DEVICE_PROFILE_TYPE | UINT32 (Hex) | 设备行规类型。写入对象 0x1000(Device Type)。常用值:0x00000192(CiA 402 伺服)、0x00001389(ETG.5001 模块化设备)、0x00000000(无特殊行规)。 |
| DEVICE_NAME | String | 设备名称。写入对象 0x1008,主机扫描时可见。建议不超过 40 字符。 |
| DEVICE_HW_VERSION | String | 硬件版本。写入对象 0x1009。格式自由,建议与 PCB 版本号一致。 |
| DEVICE_SW_VERSION | String | 软件版本。写入对象 0x100A。描述固件版本。 |
2. Generic(通用配置)
控制代码生成的全局行为和可选特性。
| 参数 | 类型 | 含义 |
|---|---|---|
| SYSTEM_HEADER_FILE | String | 系统头文件。在生成的代码顶部插入额外 #include 指令。通常留空。 |
| EXPLICIT_DEVICE_ID | Bool | 显式设备ID。设为 1 时生成 APPL_GetDeviceID() 骨架,允许运行时提供 PRODUCT_CODE/REVISION_NUMBER(而非编译时常量),用于同一固件适配多个产品变体。 |
| ESC_SM_WD_SUPPORTED | Bool | ESC 状态机看门狗。设为 1 时启用超时监控:PRE-OP 超时未收到过程数据 → 自动回退 SAFE-OP 或 INIT。超时时间由 PREOPTIMEOUT 和 SAFEOP2OPTIMEOUT 控制。 |
| STATIC_OBJECT_DIC | Bool | 静态对象字典。0 = 对象字典在 RAM 中(可运行时修改);1 = 对象字典为 const 存储于 ROM。通常设为 0。 |
| ESC_EEPROM_ACCESS_SUPPORT | Bool | EEPROM 访问支持。设为 1 时生成 ESC_EepromAccess() 和 ESC_EepromWriteCRC() 函数,允许 MCU 通过 PDI 直接读写 ESC 连接的 I²C EEPROM。仅在 ESC 直连 EEPROM(非 MCU 仿真)时有效。 |
3. Hardware(硬件配置)
最关键的配置区域,直接影响生成的 ESC 寄存器访问代码和数据结构布局。
3.1 硬件平台选择
| 参数 | 类型 | 含义 |
|---|---|---|
| EL9800_HW | Bool | Beckhoff EL9800 评估板。普通项目设为 0。 |
| MCI_HW | Bool | Microchip MCI 接口(SPI 转接板)。普通项目设为 0。 |
| FC1100_HW | Bool | Beckhoff FC1100 接口卡(FPGA ESC)。普通项目设为 0。 |
| HW_ACCESS_FILE | String | 硬件访问层头文件。格式 #include"xxx.h"。Renesas 平台固定为 #include"renesashw.h"。该文件由 MCU BSP 提供,必须实现 HW_EscReadByte/Word/DWord/Isr、HW_EscWriteByte/Word/DWord/Isr、HW_Init、HW_Release、HW_GetTimer 等函数。 |
3.2 控制器位宽(⚠️ 易误解)
| 参数 | 类型 | 含义 |
|---|---|---|
| CONTROLLER_16BIT | Bool | 16 位控制器。与 CONTROLLER_32BIT 互斥。MCU 数据总线 16 位时设为 1。 |
| CONTROLLER_32BIT | Bool | 控制寻址方式。注意:这不是指 CPU 位宽,而是控制 MEM_ADDR 类型和 GET_MEM_SIZE 宏:= 0(字节寻址模式): • MEM_ADDR = UINT8• GET_MEM_SIZE(N) = N(字节数不变)• HW_EscRead/Write 的参数以字节为计数单位= 1(16 位寻址模式): • MEM_ADDR = UINT16(内存地址按半字计数)• GET_MEM_SIZE(N) = ((N)+1) >> 1(字节数折半)• HW_EscRead/Write 的参数以**半字(2字节)**为计数单位⚠️ 必须与 HW_ACCESS_FILE 中访问函数的计数单位匹配。Renesas renesashw.h 以字节为计数单位,应设为 0 |
| MEMORY_UNIT_16BIT | Bool | 16 位最小寻址单元。MCU 最小可寻址单元为 16 位时(如 TI C2000 DSP)设为 1。ARM MCU 设为 0。 |
3.3 特定 MCU 平台
| 参数 | 类型 | 含义 |
|---|---|---|
| _PIC18 | Bool | Microchip PIC18 系列适配。 |
| _PIC24 | Bool | Microchip PIC24/dsPIC 系列适配。 |
3.4 ESC 访问模式(⚠️ 核心)
| 参数 | 类型 | 含义 |
|---|---|---|
| ESC_16BIT_ACCESS | Bool | ESC 16 位访问。设为 1 时所有 ESC 寄存器以 16 位对齐方式读写(HW_EscReadWord)。与 ESC_32BIT_ACCESS 互斥。仅 ESC DPRAM 内部组织为 16 位时使用。 |
| ESC_32BIT_ACCESS | Bool | ESC 32 位访问。直接影响生成的 ESC 操作代码和数据结构: = 0(字节访问模式): • 使用 HW_EscReadByte/WriteByte 读写 ESC 寄存器• TSYNCMAN 结构:PhysicalStartAddress + Length 分开,Settings[4] 独立字节数组• EEPROM 掩码为 16 位值 • DC Sync 激活位:寄存器 0x0981(独立字节)• PD 看门狗掩码: 0x0001= 1(DWord 访问模式): • 使用 HW_EscReadDWord/WriteDWord 读写 ESC 寄存器• TSYNCMAN 结构:AddressLength 合并为一个 UINT32,Settings[1] 打包为 UINT32• EEPROM 掩码为 32 位值(config[15:0] + control[31:16]) • DC Sync 激活位在 0x0980[15:0]• PD 看门狗掩码: 0x00000001⚠️ 与 ESC 在内部总线上的映射方式相关:Renesas 片上 ESC 采用 byte-to-word 映射(每字节独占一个总线地址),应设为 0 |
| MBX_16BIT_ACCESS | Bool | 邮箱 16 位访问。设为 1 时邮箱数据以 16 位对齐方式传输。通常设为 0。 |
3.5 字节序
| 参数 | 类型 | 含义 |
|---|---|---|
| BIG_ENDIAN_16BIT | Bool | 16 位大端字节序。ARM Cortex(小端)设为 0。 |
| BIG_ENDIAN_FORMAT | Bool | 全局大端格式。控制 SWAPWORD/SWAPDWORD 行为。ARM Cortex 设为 0。 |
3.6 调试与 LED
| 参数 | 类型 | 含义 |
|---|---|---|
| EXT_DEBUGER_INTERFACE | Bool | 生成 IDE 调试辅助函数(观察 EtherCAT 状态变量)。 |
| UC_SET_ECAT_LED | Bool | MCU 控制 Run/Error LED。设为 1 时 SSC 输出 bEtherCATRunLed/bEtherCATErrorLed 变量,由应用层驱动 GPIO。0 = ESC 硬件直接控制。 |
| ESC_SUPPORT_ECAT_LED | Bool | ESC 硬件支持 LED 覆写(寄存器 0x0138/0x0139,仅部分 ESC 型号)。 |
3.7 EEPROM 配置
| 参数 | 类型 | 含义 |
|---|---|---|
| ESC_EEPROM_EMULATION | Bool | EEPROM 仿真。设为 1 时在 MCU 内部 Flash 中模拟 EEPROM(生成 EE_ReadData/EE_WriteData 骨架)。常用于无外部 EEPROM 的设计。 |
| CREATE_EEPROM_CONTENT | Bool | 生成 EEPROM 内容文件。设为 1 时生成 EEPROM 初始内容(头文件/C 数组),可用于生产烧录。 |
| ESC_EEPROM_SIZE | Hex | EEPROM 容量(字节)。常见值:0x800(2KB)、0x1000(4KB)、0x2000(8KB)。必须与实际焊接的 EEPROM 芯片匹配。容量不足将导致 ESI 信息写入失败。 |
4. EtherCAT State Machine(状态机配置)
| 参数 | 类型 | 含义 |
|---|---|---|
| BOOTSTRAPMODE_SUPPORTED | Bool | Bootstrap 模式。设为 1 时支持 INIT→BOOT→INIT 转换。Bootstrap 下仅 SM0/SM1(邮箱)可用,SM2/SM3(过程数据)禁用。必须与 FOE_SUPPORTED=1 配合(Bootstrap 主要用于 FoE 固件更新)。 |
| OP_PD_REQUIRED | Bool | OP 状态要求有效过程数据。设为 1 时仅在 SM2/SM3 配置有效 PDO 映射后方可进入 OP。符合 ETG 规范,推荐为 1。 |
| PREOPTIMEOUT | Hex (ms) | Pre-OP 超时。从 INIT 进入 PRE-OP 后主机必须在此时间内开始发送过程数据,否则 SM 看门狗触发回退。默认 2000ms。 |
| SAFEOP2OPTIMEOUT | Hex (ms) | Safe-OP→OP 超时。等待进入 OP 的最大时间。默认 9000ms。 |
| CHECK_SM_PARAM_ALIGNMENT | Bool | 检查 SM 地址对齐。设为 1 时验证 SyncManager 起始地址满足对齐要求。 |
5. Synchronisation(同步配置)
| 参数 | 类型 | 含义 |
|---|---|---|
| AL_EVENT_ENABLED | Bool | AL 事件中断。设为 1 时使用 ESC AL Event 中断(寄存器 0x0220)触发 PDI_Isr() 同步过程数据。支持:Free Run(自由运行)、SM Sync(SyncManager 同步)、DC Sync(分布式时钟同步,需配合 DC_SUPPORTED=1)。设为 0 仅支持 Free Run。 |
| DC_SUPPORTED | Bool | DC 分布式时钟。设为 1 时启用系统时间(0x0910)、DC 控制(0x0980)、Sync0/Sync1 周期(0x09A0/0x09A4)等功能。需要 ESC 硬件支持 DC 模块。 |
| ECAT_TIMER_INT | Bool | 定时器中断模式。设为 1 时使用 MCU 定时器中断(而非 AL Event)作为主循环节拍。 |
| MIN_PD_CYCLE_TIME | Hex (ns) | 最小过程数据周期(纳秒)。告诉主机从站可处理的最快更新周期。写入 ESI <MinCycleTime>。典型值 500μs = 0x7A120。 |
| MAX_PD_CYCLE_TIME | Hex (ns) | 最大过程数据周期(纳秒)。从站能容忍的最慢周期。 |
| PD_OUTPUT_DELAY_TIME | Hex (ns) | 输出延迟时间。Sync 事件到输出生效的预算,写入 ESI <OutputDelay>。 |
| PD_OUTPUT_CALC_AND_COPY_TIME | Hex (ns) | 输出计算与拷贝时间。Sync 事件到输出数据写入 DPRAM 的预算,写入 ESI <CalcAndCopyTime>。 |
| PD_INPUT_CALC_AND_COPY_TIME | Hex (ns) | 输入计算与拷贝时间。读取输入到处理完成的预算。 |
| PD_INPUT_DELAY_TIME | Hex (ns) | 输入延迟时间。传感器采集到数据写入 DPRAM 的预算。 |
6. Application(应用层配置)
| 参数 | 类型 | 含义 |
|---|---|---|
| USE_DEFAULT_MAIN | Bool | 使用默认 main()。设为 1 时生成简单 main()(MainInit() + 循环 MainLoop())。有操作系统/RTOS 时应设为 0。 |
7. ProcessData(过程数据配置)
定义 SM2(输出)和 SM3(输入)的地址窗口。
| 参数 | 类型 | 含义 |
|---|---|---|
| MIN_PD_WRITE_ADDRESS | Hex | SM2 输出最小起始地址(相对 ESC DPRAM 基地址)。 |
| DEF_PD_WRITE_ADDRESS | Hex | SM2 输出默认起始地址。主机可在 PRE-OP 阶段重配。 |
| MAX_PD_WRITE_ADDRESS | Hex | SM2 输出最大地址边界。 |
| MIN_PD_READ_ADDRESS | Hex | SM3 输入最小起始地址。 |
| DEF_PD_READ_ADDRESS | Hex | SM3 输入默认起始地址。 |
| MAX_PD_READ_ADDRESS | Hex | SM3 输入最大地址边界。 |
| MAX_PD_INPUT_SIZE | Hex | 最大输入数据大小(字节)。不能超过 SM3 长度和 DPRAM 容量。 |
| MAX_PD_OUTPUT_SIZE | Hex | 最大输出数据大小(字节)。不能超过 SM2 长度和 DPRAM 容量。 |
约束:
MIN ≤ DEF ≤ MAX,SM0/1/2/3 之间不能有地址重叠。
8. Mailbox(邮箱配置)
8.1 协议支持
| 参数 | 类型 | 含义 |
|---|---|---|
| MAILBOX_QUEUE | Bool | 邮箱队列。设为 1 时实现 FIFO 队列缓存待处理邮箱命令。多协议时推荐为 1。 |
| AOE_SUPPORTED | Bool | ADS over EtherCAT。Beckhoff 专有协议(TwinCAT 直接内存访问)。普通项目设为 0。 |
| COE_SUPPORTED | Bool | CANopen over EtherCAT。核心协议,实现 SDO 上载/下载进行对象字典访问。几乎所有项目都需设为 1。 |
| COMPLETE_ACCESS_SUPPORTED | Bool | SDO 完全访问。允许一次 SDO 传输读写对象的所有子索引。 |
| SEGMENTED_SDO_SUPPORTED | Bool | 分段 SDO。支持超过邮箱缓冲大小的 SDO 传输(自动分段/重组)。对象 > MAX_MBX_SIZE 时必须为 1。 |
| SDO_RES_INTERFACE | Bool | SDO 响应接口。启用 SDO 请求/响应异步处理。 |
| BACKUP_PARAMETER_SUPPORTED | Bool | 备份参数支持。生成 0x1010(Store)、0x1011(Restore)、0x10F0(Backup Check)对象,允许主机触发参数保存/恢复到 NVRAM。 |
| STORE_BACKUP_PARAMETER_IMMEDIATELY | Bool | 立即存储备份。每次写入 OBJACCESS_BACKUP 标记的条目即保存到 NVRAM。= 0 则仅在主机写 0x1010 时统一保存。 |
| DIAGNOSIS_SUPPORTED | Bool | 诊断消息。启用 ETG.1020 诊断历史对象 0x10F3。 |
| MAX_DIAG_MSG | Hex | 最大诊断消息数(0x10F3 容量)。 |
| EMERGENCY_SUPPORTED | Bool | EMCY 紧急消息。启用 CANopen 紧急消息协议,从站主动上报错误。 |
| MAX_EMERGENCIES | Hex | 最大 EMCY 消息数(0x10F4 容量)。 |
| VOE_SUPPORTED | Bool | Vendor over EtherCAT。厂商自定义协议通道。需要私有协议时启用。 |
| SOE_SUPPORTED | Bool | Servo over EtherCAT。伺服驱动 IDN 参数通道,仅 CiA 402 使用。 |
| EOE_SUPPORTED | Bool | Ethernet over EtherCAT。隧道传输标准 Ethernet 帧,使从站获得虚拟以太网口(IP/ICMP/Web)。需额外实现 eoeappl.c。 |
| STATIC_ETHERNET_BUFFER | Bool | 静态以太网缓冲。设为 1 时 EoE 使用预分配静态缓冲区。资源受限 MCU 推荐为 1。 |
| FOE_SUPPORTED | Bool | File over EtherCAT。固件文件传输协议,允许主机远程更新从站固件。需额外实现 foeappl.c。Bootstrap 模式依赖此选项。 |
8.2 缓冲区配置
| 参数 | 类型 | 含义 |
|---|---|---|
| DEF_MBX_SIZE | Hex | 默认邮箱大小(字节)。≤ MAX_MBX_SIZE。 |
| MAX_MBX_SIZE | Hex | 最大邮箱大小(字节)。取决于 ESC DPRAM 容量。 |
| MIN_MBX_WRITE_ADDRESS | Hex | SM0 输出邮箱最小地址(主机→从站)。 |
| DEF_MBX_WRITE_ADDRESS | Hex | SM0 输出邮箱默认地址。 |
| MAX_MBX_WRITE_ADDRESS | Hex | SM0 输出邮箱最大地址。 |
| MIN_MBX_READ_ADDRESS | Hex | SM1 输入邮箱最小地址(从站→主机)。 |
| DEF_MBX_READ_ADDRESS | Hex | SM1 输入邮箱默认地址。 |
| MAX_MBX_READ_ADDRESS | Hex | SM1 输入邮箱最大地址。 |
SM0 与 SM1 不能重叠,且与 SM2/SM3 分离。

424

被折叠的 条评论
为什么被折叠?



