EtherCAT FOE是一种主站对从站设备固件升级的技术,通过利用EtherCAT的数据链路层来处理数据实现文件传输,可以确保文件传输的完整性和准确性,为设备的维护、升级、监控和管理提供强大的支持。
在EtherCAT工业网络中,通常会连接大量的从站设备。然而,如果需要对这些从站设备的软件固件进行升级,传统的逐个打开从站设备外壳,并使用JTAG接口逐个更新固件的方式非常不便捷。为了解决这个问题,可以采用基于EtherCAT协议的文件传输机制,即EtherCAT FOE(File Over EtherCAT)。EtherCAT FOE利用EtherCAT的数据链路层处理数据单元(DLPDU)来实现文件传输,从而确保传输的完整性和准确性。通过采用EtherCAT FOE,可以实现对从站设备固件的高效、可靠和灵活的远程升级。因此,在工业自动化领域,EtherCAT FOE得到广泛应用,为设备的维护、升级、监控和管理提供了强大的支持。
EtherCAT FOE的常用在以下应用场景:
固件更新:通过EtherCAT FOE,设备可以轻松地进行固件更新。主机可以通过EtherCAT网络将固件文件发送到设备,设备接收文件后进行固件更新操作,简化设备的维护和升级过程。
配置文件下载:设备在启动或重新配置时需要加载配置文件。EtherCAT FOE可用于将配置文件从主机传输到设备,使设备能够根据配置文件进行正确的初始化和运行。
数据记录与监控:EtherCAT FOE可用于传输各种数据记录和监控信息。例如,主机可以定期将设备的运行数据和状态信息通过EtherCAT网络发送到上位机进行记录和分析。
远程控制与诊断:通过EtherCAT FOE,主机可以向设备发送控制指令或诊断请求。设备接收指令或请求后进行相应操作,并将结果返回给主机,实现设备的远程控制和诊断功能。
分布式文件系统:EtherCAT FOE可用于构建分布式文件系统,实现多个设备共享同一组文件,为工业自动化系统提供灵活的文件管理和共享机制。
EtherCAT FOE具有许多优点:
高效可靠:EtherCAT FOE使用EtherCAT的数据链路层处理数据单元(DLPDU)作为传输机制,具有高可靠性和低延迟。它能够保证文件传输的完整性和准确性,适用于工业自动化应用中对可靠性要求较高的场景。
灵活的文件传输:EtherCAT FOE支持多种文件传输模式,如点对点、广播和组播等,使得在不同设备之间进行文件传输具有很大的灵活性。
支持多种文件格式:EtherCAT FOE支持多种文件格式,如二进制文件、文本文件、XML文件等,使得在不同类型的设备之间进行文件传输具有很好的通用性。
易于集成:EtherCAT协议是一种标准的以太网协议,易于与现有的以太网设备和系统集成。这大大简化了EtherCAT FOE的集成和部署过程。
EtherCAT FOE具体的工作原理:
EtherCAT FOE采用了客户端-服务器模型。在EtherCAT网络中,有一个FOE客户端和一个或多个FOE服务器。FOE客户端负责发起文件传输请求,而FOE服务器则负责处理客户端请求并进行相应的文件传输操作。其大致的工作原理如下:
FOE客户端发送一个文件传输请求给FOE服务器,在请求中指定要读取或写入的文件和相应的操作(如读取、写入、删除等)。
FOE服务器接收并解析客户端的请求,然后根据请求中指定的文件和操作进行相应的处理。
如果是读取操作,FOE服务器会将指定文件的内容读取到内部缓冲区,并将缓冲区的内容返回给FOE客户端。
如果是写入操作,FOE服务器会将FOE客户端提供的数据写入到指定文件中。
在文件传输过程中,FOE客户端和服务器之间会进行必要的握手和错误检测,确保传输的可靠性和完整性。
传输完成后,FOE客户端会接收到传输结果的确认信息,并根据需要进行进一步的处理。
广州致远电子以EtherCAT工业以太网协议为向导,开发了一系列 EtherCAT主站控制器和通讯卡,其中包括EtherCAT FOE(File Over EtherCAT)功能。这些EtherCAT主站控制器和PCIe EtherCAT通讯卡可以快速、有效、便捷地构建数控智能化设备。通过支持固件更新、配置文件下载、数据记录与监控、远程控制与诊断、分布式文件系统等功能,更能够适应工厂智能化、信息化产业的需求。
表1 EtherCAT主站控制器
图1 EtherCAT主站控制器系统框图
表2 PCIe EtherCAT主站通讯卡
图2 PCIe EtherCAT通讯卡
AWStudio运动控制版本
AWStudio (运动控制版本)是ZLG致远电子针对工业自动化及智能装备编程开发平台,以低代码和可视化操作为目标,简化EtherCAT主站控制器、EtherCAT主站通讯卡、运动控制器、示教器(手持HMI)等设备的开发流程以适应未来复杂多变的智能制造设备智能化需求。AWStudio(运动控制版本)除了简化搭配有硬件配置,EtherCAT配置,设备扫描等基础功能外,还提供了AWBlock可视化、图形化的模块化编程语言以及工艺小程序开发功能,给应用增加了无限的扩展性,大大降低使用者的入门门槛。
图3 AWStudio (运动控制版本)
AWStudio (运动控制版本)的FOE功能使用1. 准备工作
1.1 硬件连接
请准备好一台电脑、一台EtherCA主站控制器或者主站通讯卡、一台或多台EtherCAT从站(从站配置示例,推荐使用伺服驱动器进行测试或IO),多条网线(直连交叉均可,至少两根)。然后使用网线将设备按以下示意图进行连接,如果有多台从站,使用网线将前一个从站的OUT连接到当前从站的IN即可。
1.2 软件安装
安装AWStudio-for-Motion-Control(若没有,可以咨询我们售后)。
2. 新建/打开解决方案
AWStudio启动后默认没有解决方案,需要先新建或打开一个解决方案。
2.1 新建解决方案
点击界面中”新建”按钮或者工具栏的”新建”按钮,可弹出”新建解决方案”对话框。
解决方案类型选择”主站控制器/卡配置”,解决方案名称和解决方案路径按需要修改,点击”创建”按钮即可创建一个新的解决方案。
2.2 打开解决方案
点击界面中”打开”按钮或者工具栏的”打开”按钮,可弹出”打开解决方案”对话框。选中解决方案文件(.solution)后,点击”打开”按钮即可打开解决方案。
2.3 主界面
新建或打开解决方案后,软件会进入主界面。
2.4 获取网卡
运动控制器的NET1的出厂默认IP为192.168.1.136,NET2的IP为192.168.2.136,依此类推。以下过程需要通过上们机来连接设备,因此需要将电脑的IP设置为和运动控制器相同的IP段,例如设置为192.168.1.200 地址,设置成功后尝试 ping 192.168.1.136,确保连接成功(具体设置可参考快速入门章节)。
输入驱动器(主站)IP地址后,点击获取网卡,即可获取网卡列表,如发现网卡则表示获取网卡成功。
3. 扫描从站设备
在菜单栏中点击从站库管理,安装相对应的ESI文件,如下所示。
通过主站节点右键菜单或工具栏扫描总线上的从站设备,并将其网络拓扑添加到本地主站树节点,如下所示。
确认扫描出从站设备后,点击右键启动主站,并将主站启动到操作状态模式,此模式下支持邮箱通信,如下所示。
选择从站设备,在子菜单栏中点击邮箱,点击浏览选择对应的文件,根据需求选择下载或读取即可,如下所示。
EtherCAT 主站的FOE例程1. 接口说明EtherCAT 主站的FOE的函数使用也非常简单,只有读接口EcatFoERead,写接口EcatFoEWrite这两个接口既能实现固件或者文件的传输,EcatFoEWrite是从本地文件系统写文件到从站,EcatFoERead 是从从站中读文件到本地文件系统。/** @brief 从本地文件系统写文件到从站 @param hHandle ECAT 控制句柄 @param u16SlaveId 从站位置索引,范围:0~SlaveCount-1 @param pszFileLocalName 本地文件系统的文件名 @param pszFileSlaveName 从站文件系统的文件名 @return 返回 ECAT_S_OK(0)表示成功,非 0 表示失败**/
int32_t EcatFoEWrite( IN ECAT_HANDLE hHandle, IN uint16_t u16SlaveId, IN const char *pszFileLocalName, IN const char *pszFileSlaveName);/** @brief 从从站中读文件到本地文件系统 @param hHandle ECAT 控制句柄 @param u16SlaveId 从站位置索引,范围:0~SlaveCount-1 @param pszFileLocalName 本地文件系统的文件名 @param pszFileSlaveName 从站文件系统的文件名 @return 返回 ECAT_S_OK(0)表示成功,非 0 表示失败*/int32_t EcatFoERead( IN ECAT_HANDLE hHandle, IN uint16_t u16SlaveId, IN const char *pszFileLocalName, IN const char *pszFileSlaveName);2. 示例以示例将本地文件传输到从站设备,同时读取设备文件并保存到本地,代码如下所示。int32_t ecat_foe_test(ECAT_HANDLE hHandle){int ret;//操作句柄 if (hHandle) return -1;
//将本地文件foe_test.txt,以foe_test.txt命名传输到从站设备。 ret = EcatFoEWrite(hHandle, 0, "foe_test.txt", "foe_test.txt");if(ret) return -2;
//读取从站设备foe_test.txt文件,并命名为foe_test_back.txt保存到本地。 ret = EcatFoERead(hHandle, 0, "foe_test_back.txt", "foe_test.txt");if(ret) return -3; return0;}
更多往期文章,请点击“ 阅读原文 ”。
|