SSC Tool 参数配置详解

SSC Tool (V5.13) 参数配置详解指导

工具: Beckhoff Slave Stack Code Tool V5.13
参考文档: ET9300 Application Note (EtherCAT Slave Stack Code)
整理日期: 2026-06-13


目录

  1. SlaveInformation(从站信息)
  2. Generic(通用配置)
  3. Hardware(硬件配置)
  4. EtherCAT State Machine(状态机配置)
  5. Synchronisation(同步配置)
  6. Application(应用层配置)
  7. ProcessData(过程数据配置)
  8. Mailbox(邮箱配置)

1. SlaveInformation(从站信息)

此页卡定义从站设备的基础标识信息,对应 EtherCAT 对象字典 0x1018(Identity Object),以及 ESI XML 中的设备描述。

参数类型含义
VENDOR_IDUINT32 (Hex)厂商ID。由 ETG 分配的全球唯一标识符,写入对象 0x1018:01。主机通过此 ID 识别制造商。若使用自定义 ID 需向 ETG 申请。
VENDOR_NAMEString厂商名称。写入 ESI XML <Name> 节点,用于 TwinCAT 等主站显示,不影响协议行为。
VENDOR_IMAGEHex Array厂商 Logo 位图。BMP 格式十六进制数组,写入 ESI XML <Image16x14>。TwinCAT 扫描窗口中显示。
GROUP_NAMEString设备组名称。同类产品分组标识,写入 ESI XML <GroupType>。一个产品族下多个型号可用相同 GROUP_NAME。
GROUP_IMAGEHex Array设备组 Logo 位图。产品族级别的图标。
DEVICE_IMAGEHex Array设备 Logo 位图。在 TwinCAT 设备树中显示的小图标,区分同一 GROUP 内的不同型号。
PRODUCT_CODEUINT32 (Hex)产品代码。制造商内部产品编号,写入对象 0x1018:02。与 VENDOR_ID 组成设备唯一标识。
REVISION_NUMBERUINT32 (Hex)版本号。写入对象 0x1018:03,格式为主版本+次版本(如 0x00030001 = V3.1)。
SERIAL_NUMBERUINT32 (Hex)序列号。写入对象 0x1018:04。可设为 0 由应用层运行时赋值,也可预设固定值。
DEVICE_PROFILE_TYPEUINT32 (Hex)设备行规类型。写入对象 0x1000(Device Type)。常用值:0x00000192(CiA 402 伺服)、0x00001389(ETG.5001 模块化设备)、0x00000000(无特殊行规)。
DEVICE_NAMEString设备名称。写入对象 0x1008,主机扫描时可见。建议不超过 40 字符。
DEVICE_HW_VERSIONString硬件版本。写入对象 0x1009。格式自由,建议与 PCB 版本号一致。
DEVICE_SW_VERSIONString软件版本。写入对象 0x100A。描述固件版本。

2. Generic(通用配置)

控制代码生成的全局行为可选特性

参数类型含义
SYSTEM_HEADER_FILEString系统头文件。在生成的代码顶部插入额外 #include 指令。通常留空。
EXPLICIT_DEVICE_IDBool显式设备ID。设为 1 时生成 APPL_GetDeviceID() 骨架,允许运行时提供 PRODUCT_CODE/REVISION_NUMBER(而非编译时常量),用于同一固件适配多个产品变体。
ESC_SM_WD_SUPPORTEDBoolESC 状态机看门狗。设为 1 时启用超时监控:PRE-OP 超时未收到过程数据 → 自动回退 SAFE-OP 或 INIT。超时时间由 PREOPTIMEOUTSAFEOP2OPTIMEOUT 控制。
STATIC_OBJECT_DICBool静态对象字典。0 = 对象字典在 RAM 中(可运行时修改);1 = 对象字典为 const 存储于 ROM。通常设为 0。
ESC_EEPROM_ACCESS_SUPPORTBoolEEPROM 访问支持。设为 1 时生成 ESC_EepromAccess()ESC_EepromWriteCRC() 函数,允许 MCU 通过 PDI 直接读写 ESC 连接的 I²C EEPROM。仅在 ESC 直连 EEPROM(非 MCU 仿真)时有效

3. Hardware(硬件配置)

最关键的配置区域,直接影响生成的 ESC 寄存器访问代码和数据结构布局。

3.1 硬件平台选择

参数类型含义
EL9800_HWBoolBeckhoff EL9800 评估板。普通项目设为 0。
MCI_HWBoolMicrochip MCI 接口(SPI 转接板)。普通项目设为 0。
FC1100_HWBoolBeckhoff FC1100 接口卡(FPGA ESC)。普通项目设为 0。
HW_ACCESS_FILEString硬件访问层头文件。格式 #include"xxx.h"。Renesas 平台固定为 #include"renesashw.h"。该文件由 MCU BSP 提供,必须实现 HW_EscReadByte/Word/DWord/IsrHW_EscWriteByte/Word/DWord/IsrHW_InitHW_ReleaseHW_GetTimer 等函数。

3.2 控制器位宽(⚠️ 易误解)

参数类型含义
CONTROLLER_16BITBool16 位控制器。与 CONTROLLER_32BIT 互斥。MCU 数据总线 16 位时设为 1。
CONTROLLER_32BITBool控制寻址方式。注意:这不是指 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_16BITBool16 位最小寻址单元。MCU 最小可寻址单元为 16 位时(如 TI C2000 DSP)设为 1。ARM MCU 设为 0

3.3 特定 MCU 平台

参数类型含义
_PIC18BoolMicrochip PIC18 系列适配。
_PIC24BoolMicrochip PIC24/dsPIC 系列适配。

3.4 ESC 访问模式(⚠️ 核心)

参数类型含义
ESC_16BIT_ACCESSBoolESC 16 位访问。设为 1 时所有 ESC 寄存器以 16 位对齐方式读写(HW_EscReadWord)。与 ESC_32BIT_ACCESS 互斥。仅 ESC DPRAM 内部组织为 16 位时使用。
ESC_32BIT_ACCESSBoolESC 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_ACCESSBool邮箱 16 位访问。设为 1 时邮箱数据以 16 位对齐方式传输。通常设为 0

3.5 字节序

参数类型含义
BIG_ENDIAN_16BITBool16 位大端字节序。ARM Cortex(小端)设为 0
BIG_ENDIAN_FORMATBool全局大端格式。控制 SWAPWORD/SWAPDWORD 行为。ARM Cortex 设为 0

3.6 调试与 LED

参数类型含义
EXT_DEBUGER_INTERFACEBool生成 IDE 调试辅助函数(观察 EtherCAT 状态变量)。
UC_SET_ECAT_LEDBoolMCU 控制 Run/Error LED。设为 1 时 SSC 输出 bEtherCATRunLed/bEtherCATErrorLed 变量,由应用层驱动 GPIO。0 = ESC 硬件直接控制。
ESC_SUPPORT_ECAT_LEDBoolESC 硬件支持 LED 覆写(寄存器 0x0138/0x0139,仅部分 ESC 型号)。

3.7 EEPROM 配置

参数类型含义
ESC_EEPROM_EMULATIONBoolEEPROM 仿真。设为 1 时在 MCU 内部 Flash 中模拟 EEPROM(生成 EE_ReadData/EE_WriteData 骨架)。常用于无外部 EEPROM 的设计。
CREATE_EEPROM_CONTENTBool生成 EEPROM 内容文件。设为 1 时生成 EEPROM 初始内容(头文件/C 数组),可用于生产烧录。
ESC_EEPROM_SIZEHexEEPROM 容量(字节)。常见值:0x800(2KB)、0x1000(4KB)、0x2000(8KB)。必须与实际焊接的 EEPROM 芯片匹配。容量不足将导致 ESI 信息写入失败。

4. EtherCAT State Machine(状态机配置)

参数类型含义
BOOTSTRAPMODE_SUPPORTEDBoolBootstrap 模式。设为 1 时支持 INIT→BOOT→INIT 转换。Bootstrap 下仅 SM0/SM1(邮箱)可用,SM2/SM3(过程数据)禁用。必须与 FOE_SUPPORTED=1 配合(Bootstrap 主要用于 FoE 固件更新)。
OP_PD_REQUIREDBoolOP 状态要求有效过程数据。设为 1 时仅在 SM2/SM3 配置有效 PDO 映射后方可进入 OP。符合 ETG 规范,推荐为 1。
PREOPTIMEOUTHex (ms)Pre-OP 超时。从 INIT 进入 PRE-OP 后主机必须在此时间内开始发送过程数据,否则 SM 看门狗触发回退。默认 2000ms。
SAFEOP2OPTIMEOUTHex (ms)Safe-OP→OP 超时。等待进入 OP 的最大时间。默认 9000ms。
CHECK_SM_PARAM_ALIGNMENTBool检查 SM 地址对齐。设为 1 时验证 SyncManager 起始地址满足对齐要求。

5. Synchronisation(同步配置)

参数类型含义
AL_EVENT_ENABLEDBoolAL 事件中断。设为 1 时使用 ESC AL Event 中断(寄存器 0x0220)触发 PDI_Isr() 同步过程数据。支持:Free Run(自由运行)、SM Sync(SyncManager 同步)、DC Sync(分布式时钟同步,需配合 DC_SUPPORTED=1)。设为 0 仅支持 Free Run。
DC_SUPPORTEDBoolDC 分布式时钟。设为 1 时启用系统时间(0x0910)、DC 控制(0x0980)、Sync0/Sync1 周期(0x09A0/0x09A4)等功能。需要 ESC 硬件支持 DC 模块。
ECAT_TIMER_INTBool定时器中断模式。设为 1 时使用 MCU 定时器中断(而非 AL Event)作为主循环节拍。
MIN_PD_CYCLE_TIMEHex (ns)最小过程数据周期(纳秒)。告诉主机从站可处理的最快更新周期。写入 ESI <MinCycleTime>。典型值 500μs = 0x7A120
MAX_PD_CYCLE_TIMEHex (ns)最大过程数据周期(纳秒)。从站能容忍的最慢周期。
PD_OUTPUT_DELAY_TIMEHex (ns)输出延迟时间。Sync 事件到输出生效的预算,写入 ESI <OutputDelay>
PD_OUTPUT_CALC_AND_COPY_TIMEHex (ns)输出计算与拷贝时间。Sync 事件到输出数据写入 DPRAM 的预算,写入 ESI <CalcAndCopyTime>
PD_INPUT_CALC_AND_COPY_TIMEHex (ns)输入计算与拷贝时间。读取输入到处理完成的预算。
PD_INPUT_DELAY_TIMEHex (ns)输入延迟时间。传感器采集到数据写入 DPRAM 的预算。

6. Application(应用层配置)

参数类型含义
USE_DEFAULT_MAINBool使用默认 main()。设为 1 时生成简单 main()MainInit() + 循环 MainLoop())。有操作系统/RTOS 时应设为 0

7. ProcessData(过程数据配置)

定义 SM2(输出)和 SM3(输入)的地址窗口。

参数类型含义
MIN_PD_WRITE_ADDRESSHexSM2 输出最小起始地址(相对 ESC DPRAM 基地址)。
DEF_PD_WRITE_ADDRESSHexSM2 输出默认起始地址。主机可在 PRE-OP 阶段重配。
MAX_PD_WRITE_ADDRESSHexSM2 输出最大地址边界。
MIN_PD_READ_ADDRESSHexSM3 输入最小起始地址。
DEF_PD_READ_ADDRESSHexSM3 输入默认起始地址。
MAX_PD_READ_ADDRESSHexSM3 输入最大地址边界。
MAX_PD_INPUT_SIZEHex最大输入数据大小(字节)。不能超过 SM3 长度和 DPRAM 容量。
MAX_PD_OUTPUT_SIZEHex最大输出数据大小(字节)。不能超过 SM2 长度和 DPRAM 容量。

约束:MIN ≤ DEF ≤ MAX,SM0/1/2/3 之间不能有地址重叠。


8. Mailbox(邮箱配置)

8.1 协议支持

参数类型含义
MAILBOX_QUEUEBool邮箱队列。设为 1 时实现 FIFO 队列缓存待处理邮箱命令。多协议时推荐为 1。
AOE_SUPPORTEDBoolADS over EtherCAT。Beckhoff 专有协议(TwinCAT 直接内存访问)。普通项目设为 0。
COE_SUPPORTEDBoolCANopen over EtherCAT核心协议,实现 SDO 上载/下载进行对象字典访问。几乎所有项目都需设为 1。
COMPLETE_ACCESS_SUPPORTEDBoolSDO 完全访问。允许一次 SDO 传输读写对象的所有子索引。
SEGMENTED_SDO_SUPPORTEDBool分段 SDO。支持超过邮箱缓冲大小的 SDO 传输(自动分段/重组)。对象 > MAX_MBX_SIZE 时必须为 1。
SDO_RES_INTERFACEBoolSDO 响应接口。启用 SDO 请求/响应异步处理。
BACKUP_PARAMETER_SUPPORTEDBool备份参数支持。生成 0x1010(Store)、0x1011(Restore)、0x10F0(Backup Check)对象,允许主机触发参数保存/恢复到 NVRAM。
STORE_BACKUP_PARAMETER_IMMEDIATELYBool立即存储备份。每次写入 OBJACCESS_BACKUP 标记的条目即保存到 NVRAM。= 0 则仅在主机写 0x1010 时统一保存。
DIAGNOSIS_SUPPORTEDBool诊断消息。启用 ETG.1020 诊断历史对象 0x10F3
MAX_DIAG_MSGHex最大诊断消息数(0x10F3 容量)。
EMERGENCY_SUPPORTEDBoolEMCY 紧急消息。启用 CANopen 紧急消息协议,从站主动上报错误。
MAX_EMERGENCIESHex最大 EMCY 消息数(0x10F4 容量)。
VOE_SUPPORTEDBoolVendor over EtherCAT。厂商自定义协议通道。需要私有协议时启用。
SOE_SUPPORTEDBoolServo over EtherCAT。伺服驱动 IDN 参数通道,仅 CiA 402 使用。
EOE_SUPPORTEDBoolEthernet over EtherCAT。隧道传输标准 Ethernet 帧,使从站获得虚拟以太网口(IP/ICMP/Web)。需额外实现 eoeappl.c
STATIC_ETHERNET_BUFFERBool静态以太网缓冲。设为 1 时 EoE 使用预分配静态缓冲区。资源受限 MCU 推荐为 1。
FOE_SUPPORTEDBoolFile over EtherCAT。固件文件传输协议,允许主机远程更新从站固件。需额外实现 foeappl.cBootstrap 模式依赖此选项

8.2 缓冲区配置

参数类型含义
DEF_MBX_SIZEHex默认邮箱大小(字节)。≤ MAX_MBX_SIZE
MAX_MBX_SIZEHex最大邮箱大小(字节)。取决于 ESC DPRAM 容量。
MIN_MBX_WRITE_ADDRESSHexSM0 输出邮箱最小地址(主机→从站)。
DEF_MBX_WRITE_ADDRESSHexSM0 输出邮箱默认地址。
MAX_MBX_WRITE_ADDRESSHexSM0 输出邮箱最大地址。
MIN_MBX_READ_ADDRESSHexSM1 输入邮箱最小地址(从站→主机)。
DEF_MBX_READ_ADDRESSHexSM1 输入邮箱默认地址。
MAX_MBX_READ_ADDRESSHexSM1 输入邮箱最大地址。

SM0 与 SM1 不能重叠,且与 SM2/SM3 分离。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值