学习EtherCAT之 EtherCAT Slave Stack Code Tool(SSC5.12)使用笔记
文章目录
前言
学习EtherCAT有几个月了,准备做一个EtherCAT从站,摸爬滚打一路走来,遇到不少问题,这里仅作学习记录使用。
移植过的平台 AIR32F103, STM32F103,STM32F407。
从站芯片LAN9252。
EtherCAT Slave Stack Code Tool (SSC) V5.12(该软件自动生成EtherCAT从站核心代码。)
SSC(Slave Stack Code Tool)从站协议栈代码工具,是EtherCAT协会为会员免费提供的,使用SSC,可以快速地构建EtherCAT从站代码,保证从站协议栈与最新的EtherCAT协议相匹配,同时还可以生成从站设备描述文件(ESI文件,后缀格式.xml),需要放在TwinCAT安装路径下的/Io/EtherCAT目录下,在使用TwinCAT对设备进行组态时需要使用。是EtherCAT从站设计过程中很重要的一个文件,关于从站设备传输多少数据,是否启用分布式时钟,PHY(LAN9252)与MCU之间如何通信等等重要数据都在这个描述文件中定义。这份XML如果全靠手工编辑,工作量非常大,并且极易出错,有了SSC后,构建XML将非常简单。
一、软件及安装
Ethercat从站协议代码工具SSC_V5.12,不好找,大多地方需要币。此处分享下,
链接:https://pan.baidu.com/s/1A9h8i3KzdJBTfxdKe3HU7w?pwd=1234
提取码:1234
安装的话很简单,也就 Next → Install → Finish 即可,路径只能使用默认,无法修改。注:电脑提前安装好 NET4.0
ALTOVA XMLSpy 2013中文版–修改XML
链接:https://pan.baidu.com/s/1lw13oihQDf01SXNbEqmiGw?pwd=1234
提取码:1234
具体安装及使用请参考博文:ALTOVA XMLSpy 2013中文版下载教程及简单运用
二、新建
1.新建工程
二、配置选项
新建项目后,界面中会出现很多配置选项,这些就是最终生成的源码中ecat_def.h文件中的宏定义。想了解具体含义,可点选具体的宏定义,其右侧会有描述,亦可以直接在生成的源码中搜索,看一下它使用的位置就好了。
1.SlaveInformation
配置从站的一些设备信息,因为是测试代码可以直接使用默认的选项。实际产品要更加产品信息配置。注:各个厂商需要向EtherCAT协会申请全球唯一标志VendorID(免费的,这也是EtherCAT能迅速占领一定市场的原因)。
名字 | 值 | 描述 |
---|---|---|
VENDOR_ID | 0x000004D8 | 使用LAN9252,就用微芯的ID–对应对象1018.01 |
VENDOR_NAME | MicroChip | 微芯 |
VENDOR_IMAGE | …… | 使用默认 |
GROUP_NAME | SSC_Device | |
GROUP_IMAGE | …… | 使用默认 |
DEVICE_IMAGE | …… | 使用默认 |
PRODUCT_CODE | 0x00009252 | 从站芯片使用了 LAN9252 |
REVISION_NUMBER | 0x00030111 | 默认 |
SERIAL_NUMBER | 0x00000000 | 默认 |
DEVICE_PROFILE_TYPE | 0x00001389 | 默认 |
DEVICE_NAME | SSC-Device | 默认 |
DEVICE_HW_VERSION | n.a. | 默认 |
DEVICE_SW_VERSION | 5.12 | 默认 |
2.Generic
通用选项,全部使用默认即可。
3.Hardware
硬件相关选项,注意项如下列表,其余未列出
名字 | 值 | 描述 |
---|---|---|
CONTROLLER_16BIT | 0 | 如果从站代码是为16位微控制器生成的,则应该使用此设置 |
CONTROLLER_32BIT | 1 | 如果从站代码是为32位微控制器生成的,则应该使用此设置 |
_PIC18 | 0 | 这里为0不变。在生成的ecat_def.h中_PIC18需改为 _STM32_IO8并设为1 |
_PIC24 | 0 | 使用的是STM32,所以改为0 |
4.EtherCAT State Machine
EtherCAT状态机(ESM),使用默认选项
5.Synchronisation
同步管理相关选项,注意项如下列表,其余未列出
名字 | 值 | 描述 |
---|---|---|
ECAT_TIMER_INT | 1 | 我们提供一个1ms的定时器中断,用于Ethercat看门狗的喂狗,设置为 1 |
6.Application
应用层相关选项,注意项如下列表,其余未列出
名字 | 值 | 描述 |
---|---|---|
EL9800_APPLICATION | 0 | 我们不用EL9800评估板,所以置 0 |
APPLICATION_FILE | #include “myapp.h” | 设为#include “myapp.h”,默认会是 SSC-Device.h |
项目新建保存以后,再次被打开后,Application项中的选项会变少。
7.PorcessDate
PDO配置选项,注意项如下列表,其余未列出
名字 | 值 | 描述 |
---|---|---|
MAX_PD_WRITE_ADDRESS | 0x1FFF | 0x2FFF改为0x1FFF |
MAX_PD_READ_ADDRESS | 0x1FFF | 0x2FFF改为0x1FFF |
8.Mailbox
邮箱配置选项,注意项如下列表,其余未列出
名字 | 值 | 描述 |
---|---|---|
MAX_MBX_WRITE_ADDRESS | 0x1FFF | 0x2FFF改为0x1FFF |
MAX_MBX_READ_ADDRESS | 0x1FFF | 0x2FFF改为0x1FFF |
以上8个选项设置好后,千万别忘记保存。点击 Project->Save or “Ctrl + S”
三.创建Excel表格
1.生成excel表格
参数设置完以后,通过 Tool → Application → Create New 弹出 Excel 表格,新生成的表格如下图
该表格是用来配置对象字典,通过SSC工具导入该表格将自动生成EtherCAT从站代码和XML设备描述文件(ESI)。
2.添加对象
定义好的表格如下图所示。
表中仅添加了对象0x6000和0x7000。其中0x1600、0x1A00我们也可以不需要进行定义,最后软件会自动生成。0x1C12和0x1C13最好也是自动生成,如果自己定义的话,最后修改可能比较麻烦。0x1000, 0x1001, 0x1008, 0x1009, 0x100a, 0x1010, 0x1011, 0x1018, 0x10F0, 0x10F1, 0x10F3, 0x1c00, 0x1c32, 0x1c33这些对象字典是根据SSC中的配置自动生成的,不能在这个excel文件中定义。另外子索引是从1开始的,在生成代码的和xml文件的时候会自动添加子索引0,类型是UNSIGNED16。也可以理解为,默认是的子索引0是excel表中索引所在的那行。
3.生成源代码
添加完对象以后,然后就是生成应用程序源代码了。步骤没错的话就是自动弹出如下图
修改Application name 为 myapp ,最终会生成名称为 myappObjects.h 的对象字典文件。
选 "OK"以后,通过Project → Create new Slave Files 生成代码。
根据需要可选择生成文件的路径,我一般就是默认。
“Start”就开始生成源代码
执行“Start”以后,完成以后如下图,至此源代码制作完毕。
四.总结
初学不久,错误难免,望留言指出。
就这么点笔记,花了我两天时间。