Heracles 发表于 2019-9-30 09:03:33

EtherCAT主站方案功能说明



一、功能概述
1.1 什么是 EtherCAT
    实现实时控制的基于 Ethernet 的开放式网络。 具有同时实现超高速和同步控制的动作原理核结构, 采用考虑了接线效率的总线拓扑, 解决了过多使用集线器, 开关的复杂接线形态这一 Ethernet 课题。最适合用作 FA 现场的包括运动控制在内的设备控制用网络。
    EtherCAT® 是注册商标和专利技术,由德国倍福自动化有限公司授权。

1.2 EtherCAT 的作用

   EtherCAT 技术突破了其他以太网解决方案的系统限制: 通过该项技术, 无需接收以太网数据包, 将其解码,之后再将过程数据复制到各个设备。 EtherCAT 从站设备在报文经过其节点时读取相应的编址数据,同样, 输入数据也是在报文经过时插入至报文中。整个过程中,报文只有几纳秒的时间延迟。

   EtherCAT 使用了标准的以太网技术, 支持几乎所有的拓扑类型, 包括线型、 树型、星型等,其在物理层可使用 100BASE—TX 双绞线、 100BASE—FX 光纤或者 LVDS(Low Volt—age Differential Signaling, 即低压差分信号传输), 还可以通过交换机或介质转换器实现不同以太网布线的结合。

    借助于从站中的 EtherCAT 专用芯片和主站中读取网卡数据的 DMA 技术, 整个协议处理过程都在硬件中进行。 EtherCAT 系统可以在 30μs 内刷新 1000 个 I/O 点,它可以在 300μs 内交换一帧多达 1486个字节的协议数据, 这几乎相当于 12000 个数字量输入或输出。 控制 100 个输入输出数据均为 8 字节的伺服轴只需要 100μs。 在此期间, 系统更新带有命令值和控制数据的所有轴的实际位置及状态, 分布时钟技术使周到同步偏差小于 1μs。

1.3 适用对象

(1) 不想自己研发总线, 但是迫切需要总线控制器的企业
(2) 具备脉冲运控卡研发能能力,需要升级到总线控制器的企业
(3) 不想依靠PC,只需要MCU就可以控制总线伺服和IO的企业

1.4 性能指标

下面中列出了整套运控方案的性能指标


最多支持轴数 32
最多支持 IO 数 512 进 512 出
支持的算法 直线插补、圆弧插补、螺纹插补、空间圆弧、速度前瞻
支持的运动类型 POINT、 GEAR、 JOG、 PT、 FOLLOW
支持的通讯协议 EtherCAT
EtherCAT 网络信息(ENI)配置解析 支持
CANopen over EtherCAT(COE)协议 支持 SDO 上传和下载

EtherCAT 主站方案说明


运行模式 DC(周期性同步模式)
从站故障定位 支持
远程升级 支持
指令周期 5 轴@125us、 10 轴@250us、 22 轴@500us、 32 轴@1000us
同步抖动偏差 伺服侧测试±75ns
通讯接口 PCIE GEN1 X1
紧急停止输入 1 个(带隔离) ,24V 输入高电平有效

二、系统架构2.1 PC+ECAT(FPGA)+DSP 完整方案(方案一)


2.1.1 demo 板展示




2.1.2 功能

    这是一套完整的运控方案。我们提供API接口函数,客户只需要花费少许时间了解,或者客户有过使用其他品牌运控卡的经验,即可开始快速的开发。

   FPGA实现的EtherCAT协议栈,所有和协议相关的数据均在这里进行分析处理。并保证极高的时间同步精准性。 同步抖动控制在± 75ns以内。 可以同时接入多达32轴伺服和1024点的IO设备。可以支持不同品牌伺服和不同品牌DSP实现各种运动控制的算法,我们的运控算法经过多年的摸索验证和优化,配合我们的FPGA协议栈能最大程度的保证执行机构的精准性和实时性。



    我们提供相当丰富的API函数库,并且函数的使用最大程度的和固高做到一直,如果您有使用过固高运控卡的经验,那么可以非常快的上手我们的总线运控卡。提供的开发库支持C++, C#,QT。 API函数库的说明见附录一。

2.1.3 适合的对象

    不想自己开发总线运控卡的客户。 客户可以直接购买一整套方案包括软件和硬件,硬件稍作修改加上自己的 logo 就可以变为自己的产品。 精力只花在熟悉的工艺优化和流程优化上面, 配合 API 库快速的把工艺流程移
植到总线控制器上,加快产品上市。

2.1.4 提供的文件

(1) 参考原理图(PDF 格式,无版权不提供工程文件)
(2) 参考 PCB 工程文件(AD16)
(3) BOM 文件
(4) SPARTAN6 设计资料包
(5) 签名的 PCIE 驱动(windows XP SP3, windows7 32 位/64 位, windows10 64 位)
(6) API 函数库(C++、 C#、 QT)


注: FPGA 和 DSP 固件必须先制板才能生成对应加密固件。

2.1.6 演示视频      (点我观看视频)


2.2 PC+ECAT(FPGA)方案(方案二)



2.2.1 功能

   FPGA实现的EtherCAT协议栈,所有和协议相关的数据均在这里进行分析处理。并保证极高的时间同步精准性。同步抖动控制在± 75ns以内。可以同时接入多达32轴伺服和1024点的IO设备。可以支持不同品牌伺服和不同品牌。

   我们根据客户需求编写对应的API通讯函数和重新对FPGA通讯接口做调整。客户自己在PC上编写运动控制算法,然后调用API通讯实现PC和FPGA之间的交互。提供的开发库支持C++, C#,QT。 API通讯函数库。

2.2.2 demo 板展示



      图中的两块开发板分别为黑金AX545 FPGA开发板和探索者4的STM32F407开发板。我们在这个平台上演示了了CSP模式、周期250us, 8轴点位控制。 演示视频可以联系销售获取。

2.2.3 适合的对象

我们提供的DSP算法库满足不了客户的设计需求,或者客户有自己成熟的算法,但是需要一个总线通讯转接板来实现PC到总线的数据交互。

2.2.4 提供的文件

(1) 参考原理图(PDF 格式,无版权不提供工程文件)
(2) 参考 PCB 工程文件(AD16)
(3) BOM 文件
(4) SPARTAN6 设计资料包
(5) 签名的 PCIE 驱动(windows XP SP3, windows7 32 位/64 位, windows10 64 位)
(6)符合客户需求的 API 通讯接口函数(C++、 C#、 QT)


2.2.5 演示视频(点我观看视频)





2.3 MCU+EtherCat+FLASH 方案(方案三)


2.3.1 功能
    FPGA实现的EtherCAT协议栈,所有和协议相关的数据均在这里进行分析处理。并保证极高的时间同步精准性。同步抖动控制在± 75ns以内。可以同时接入多达32轴伺服和1024点的IO设备(实际接入数和MCU处理的性能相关)。 可以接入一种型号的伺服,伺服运行模式仅为CSP,以及在附录2中选择一款IO接入。 FPGA可以适配MCU的接口为FSMC/GPCM/EMIF。数据线16bit,地址线不少于16bit,中断接口2个。

MCU是客户自己的处理器,客户自己基于MCU实现各种运控算法,通过并行总线接口与FPGA进行交互。

2.3.2 适合的对象
   小型的控制场合,为了节约成本需要使用单片机或者其他嵌入式处理器来代替PC做运动控制。或者为了缩小设备尺寸。

2.3.3 提供的文件

(1) 参考原理图(PDF 格式,无版权不提供工程文件)
(2) 参考 PCB 工程文件(AD16)
(3) BOM 文件
(4) FPGA 寄存器说明文档(需要商讨确定)







三、并口接口说明
MCU+EtherCat+FLASH方案采用并口通讯, FPGA支持的并口通讯接口类型为一下三种:
(1) ARM的GPMC并口
(2) DSP的EMIF并口
(3) STM32的FSMC并口。
注: 相关的并口资料在附带的资料包中。


四、支持的伺服/步进驱动器:

EtherCAT 主站方案说明
五、支持的非同步 IO 系列



六、运控算法
运控算法在DSP中实现, PC实现规划。我们提供API函数库(C++/C#) 。支持任意两轴直线、圆弧插补、支持任意3轴4轴直线插补,空间螺旋线插补。可同时建立两个插补坐标系,具有前瞻预处理算法,反向间隙补偿,螺距误差补偿。具体算法API函数库请看附录一。

七、同步性能
7.1 FPGA 端抖动测试
测试 FPGA 周期性发送报文的时间进度,这里通过 FPGA 的报文接入倍福 ET2000 监听器,通过监听器可以获取精度为 1ns 的报文时间戳。




测试同步周期为 125us,带的伺服轴为 8个。通过 ET2000可以清楚的看到 FPGA 在 125us 下的时钟抖动为± 40ns。

7.2 伺服端抖动测试

这里我们使用示波器直接测试伺服内 EtherCAT 芯片发出的中断信号和同步信号。



    蓝色蓝色波形为 DC 中断信号,周期为 125us,黄色为 FPGA 发出的 PDO 报文。放大黄色 PDO 报文信号,可以看到同步信号在从站侧的真实抖动,经过示波器测试抖动大约为± 75ns。 同比其他软主站 1us 的抖动,我们的抖动控制的更好一些。




八、硬件开发
所有的方案,我们均提供 FPGA 芯片详细手册,提供 demo 板的原理图、 PCB、 BOM。 大大降低客户的开发门槛,加速产品出炉。

注1:我们是一家芯片公司,我们出售的是fpga固件和DSP固件以及配套的软件。我们不提供任何的硬件电路设计服务和电路设计咨询服务。客户必须具备依靠给的参考资料自行设计电路板的能力。

注2:原理图提供PDF格式(不能提供工程文件), PCB提供工程文件(AD9以上可以打开) ,需要以公司名义和我们签订保密协议。

附录一:运动控制卡指令列表

设置运动控制器
EC_Open 打开运动控制器
EC_ConnectECAT 连接从站
EC_DisconnectECAT 关闭从站
EC_Reset 复位运动控制器
EC_GetSlaveIds 获取从站 VID 和 PID
EC_GetSlaveNum 获取从站个数
EC_GetServoNumber 获取从站伺服个数

EtherCAT 主站方案说明


EC_GetDiNumber 获取从站数字输入个数
EC_GetDoNumber 获取从站数字输出个数
EC_EcatSDODownload SDO 下载
EC_Close 关闭运动控制器
EC_ZeroPos 轴位置清零
EC_SetPosErr 设置跟随误差极限值
EC_GetPosErr 读取跟随误差极限值
EC_GetPrfMode 获得控制轴运动模式
EC_SetPrfPos 设置控制轴规划位置
EC_SetStopDec设置平滑停止和紧急停止
的减速度
EC_GetStopDec获取平滑停止和紧急停止
的减速度
运动状态检测
EC_GetPrfPos 读取控制轴的规划位置
EC_GetPrfVel 读取控制轴的规划速度
EC_GetSts 获得控制轴状态
EC_ClrSts 清除控制轴状态



EC_Stop 停止轴运动
打开 /关闭电机使能信号
EC_AxisOn 打开控制轴伺服使能
EC_AxisOff 关闭控制轴伺服使能
点位运动模式
EC_PrfTrap将控制轴设置为点位运动
模式
EC_SetTrapPrm 设置控制轴点位运动参数
EC_GetTrapPrm 获得控制轴点位运动参数
EC_SetPos 设置控制轴的目标位置
EC_GetPos 读取控制轴的目标位置
EC_SetVel 设置控制轴的目标速度
EC_GetVel 读取控制轴的目标速度
EC_Update 启动点位或者 Jog 运动
Jog 运动模式
EC_PrfJog设置控制轴为 Jog 运动模

EC_SetJogPrm 设置控制轴 Jog 运动模式



下的运动参数
EC_GetJogPrm获取控制轴 Jog 运动模式
下的运动参数
Gear 运动模式
EC_PrfGear设置指定轴为电子齿轮运
动模式
EC_SetGearMaster设置电子齿轮运动跟随主

EC_GetGearMaster获取电子齿轮运动跟随主

EC_SetGearRatio 设置电子齿轮比
EC_GetGearRatio 获取电子齿轮比
EC_GearStart 启动电子齿轮运动
PT 运动模式
EC_PrfPt设置指定轴为 PT 运动模

EC_PtSpace查询 PT 运动模式指定
FIFO 的剩余空间
EC_PtData向 PT 运动模式指定
FIFO 添加数据



EC_PtClear清除 PT 运动模式下指定
FIFO 中的数据
EC_SetPtLoop设置 PT 运动模式下的循
环次数
EC_GetPtLoop获取 PT 运动模式下的循
环次数
EC_SetPtMemory设置 PT 运动模式下的缓
存区大小
EC_GetPtMemory获取 PT 运动模式下的缓
存区大小
EC_PtStart 启动 PT 运动
Follow 运动模式
EC_PrfFollow设置指定轴为 Follow 运
动模式
EC_SetFollowMaster设置 Follow 运动模式跟
随主轴
EC_GetFollowMaster获取 Follow 运动模式跟
随主轴
EC_SetFollowLoop设置 Follow 运动模式循
环次数
EC_GetFollowLoop 获取 Follow 运动模式循



环次数
EC_SetFollowEvent设置 Follow 运动模式启
动跟随条件
EC_GetFollowEvent获取 Follow 运动模式启
动跟随条件
EC_FollowSpace查询 Follow 运动模式指
定 FIFO 的剩余空间
EC_FollowData向 Follow 运动模式指定
FIFO 添加数据
EC_FollowClear清除 Follow 运动模式指
定 FIFO 中的数据
EC_FollowSwitch切换 Follow 运动模式下
使用的 FIFO
EC_SetFollowMemory设置 Follow 运动模式的
缓存区大小
EC_GetFollowMemory获取 Follow 运动模式的
缓存区大小
EC_FollowStart 启动 Follow 运动
插补运动模式
EC_SetCrdPrm设置坐标系参数,轴号、速
度、加减速等



EC_GetCrdPrm 读取坐标系参数
EC_CrdSpace读取坐标系缓冲区剩余空
间大小
EC_CrdClear清除坐标系缓冲区所有数

EC_CrdStatus 获取坐标系的当前状态
EC_GetCrdPos 获取坐标系的当前位置
EC_GetCrdVel 获取坐标系的当前速度
EC_LnXY坐标系插入 XY 平面二维
直线插补数据
EC_LnXYZ坐标系插入 XYZ 三维直
线插补数据
EC_LnXYZA坐标系插入 XYZA 四维
直线插补数据
EC_LnXYG0坐标系插入 XY 平面二维
直线插补数据,终点速度 0
EC_LnXYZG0坐标系插入 XYZ 三维直
线插补数据,终点速度 0
EC_LnXYZAG0坐标系插入 XYZA 四维
直线插补数据,终点速度 0



EC_ArcXYR坐标系插入 XY 平面的圆
弧插补数据,用半径描述
EC_ArcYZR坐标系插入 YZ 平面的圆
弧插补数据,用半径描述
EC_ArcZXR坐标系插入 ZX 平面的圆
弧插补数据,用半径描述
EC_ArcXYC坐标系插入 XY 平面的圆
弧插补数据,用圆心描述
EC_ArcYZC坐标系插入 YZ 平面的圆
弧插补数据,用圆心描述
EC_ArcZXC坐标系插入 ZX 平面的圆
弧插补数据,用圆心描述
EC_ArcXYZ坐标系插入空间圆弧插补
数据
EC_HelicalLineXYR坐标系插入基于 XY 平面
的螺旋线数据,用半径描述
EC_HelicalLineYZR坐标系插入基于 YZ 平面
的螺旋线数据,用半径描述
EC_HelicalLineZXR坐标系插入基于 ZX 平面
的螺旋线数据,用半径描述
EC_HelicalLineXYC坐标系插入基于 XY 平面
的螺旋线数据,用圆心描述



EC_HelicalLineYZC坐标系插入基于 YZ 平面
的螺旋线数据,用圆心描述
EC_HelicalLineZXC坐标系插入基于 ZX 平面
的螺旋线数据,用圆心描述
EC_HelicalLineXYZ坐标系插入基于空间圆弧
的空间螺旋线数据
EC_CrdStart 坐标系开始运行
EC_CrdStop 坐标系结束运行
安全机制
EC_SetSoftLimit 设置控制轴软限位
EC_GetSoftLimit 获得控制轴软限位
访问编码器
EC_SetEncPos 设置控制轴的编码器位置


EC_GetEncPos 读取控制轴的编码器位置
EC_GetEncVel 读取控制轴的编码器速度
回零功能
EC_SetHomingMode 切换控制轴回零模式



EC_StartEcatHoming 启动控制轴回零
EC_GetEcatHomingStatus 获取控制轴的回零状态
EC_HomeCancel 取消控制轴回零
数字量 IO
EC_SetDo 设置数字量输出
EC_GetDo 读取数字量输出
EC_GetDi 读取数字量输入

附录二:方案三可支持的 IO 设备












0z0s0c 发表于 2021-12-10 17:20:43

你好,FPGA中EtherCAT协议栈是用Verilog实现的,还是搭建软核实现的。

admin 发表于 2022-3-21 09:10:21

0z0s0c 发表于 2021-12-10 17:20
你好,FPGA中EtherCAT协议栈是用Verilog实现的,还是搭建软核实现的。

纯Verilog逻辑代码实现
页: [1]
查看完整版本: EtherCAT主站方案功能说明