加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

【技术分享】使用PCIe EtherCAT通讯卡控制IO从站step by step(一)

05/21 10:30
3309
阅读需 7 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

EtherCAT是一种高效且常用的工业通讯协议。本系列文章将带领您使用ZLG致远电子的PCIe EtherCAT通讯卡,一步步实现从搭建编译环境到程序运行。

ZLG致远电子 PCIe EtherCAT通讯卡 是一款高性能的总线控制卡,专为满足高实时的工业控制需求而设计。基于PCI Express技术,该卡通过使用实时内核+商业授权EtherCAT协议栈的方式,实现了高达125us的控制周期。

为了方便用户的使用,该卡配套提供了全面的上位机配置软件AWStudio,用户通过使用AWStudio软件,可快速扫描从站设备,轻松地得到ENI的配置文件。此外,该卡还支持Windows、Linux、Vxworks等多平台,并提供了简洁易用的SDK接口。无论是在复杂的工业控制中,还是在追求高性能的场景中,ZLG致远电子的PCIe EtherCAT通讯卡都是您的理想选择。运行框架:

表1 PCIe EtherCAT通讯卡型号

搭建步骤

为了优化客户使用PCIe EtherCAT通讯卡的体验,我们将详细介绍在Ubuntu环境下开发项目搭建环境的步骤,以及如何快速上手使用PCIE卡和IO从站进行通讯。这将使您能够快速而轻松地将ZLG致远电子的PCIe EtherCAT通讯卡接入到您的工程项目中。

1. 前期准备

1.1 在目标机器上安装驱动;

1.2 获得SDK包;

1.3 使用AWStudio导出EtherCAT网络信息文件(ENI)。

2. 项目创建

2.1 构建工程目录

新建Project文件夹。

将sdk移动到工程目录中。

移动完后,工程目录Project将会是下图的样子。

2.2 CMakeLists.txt编写

在Project目录下,创建CMakeLists.txt文件。

在CMakeLists.txt文件中输入。

2.3 创建测试程序

在src目录中创建主程序ecat_api_io_test.cpp,该文件名需要和CMakeLists.txt中的SRC变量相同。

打开ecat_api_io_test.cpp文件。输入内容:

#include <iostream>#include <chrono> //用于sleep#include <thread> //用于sleep#include "pci_errno.h"#include "pci_zecm.h"#include "pci_dbg.h"
int32_t testDemo(int alias, int channel, const char* fileName){int result = 0;char buff[256];      ECAT_HANDLE hHandle;      //初始化hHandle句柄      EXIT_IF_FAIL(EcatOpen(&hHandle, BOARD_ALIAS(buff, alias), channel));//启动主站      EXIT_IF_FAIL(EcatBusRun(hHandle, fileName));//将状态切换为8(Operational)      EXIT_IF_FAIL(EcatRequestMasterState(hHandle, EcatStateO));EXIT_IF_FAIL(EcatClose(hHandle));      return result;}
int main(int argc, char* argv[]){    ECAT_HANDLE hHandle;    char buff[256];    uint32_t channel = 0, alias = 0;    std::string eniFile;    if (argc != 4){        std::cout << "usage: " << argv[0] << " encoder_id channel eni.xml" << std::endl;        return 1;    }    alias = atoi(argv[1]);    channel = atoi(argv[2]);    eniFile = argv[3];    if (channel > 1){        channel = 1;    }    testDemo(alias, channel, eniFile.c_str());    return 0;}

上面的示例代码实现了主站的启动以及关闭,具体的过程数据修改将在下一章节做介绍。2.4 测试编译环境

构建项目,先去到项目的根目录。

创建构建的文件夹build。进入到文件夹build。执行cmake构建项目。编译(编译完成后,生成的执行程序将会在build目录下,可执行程序的名字为CMakeLists.txt中TARGET_NAME变量指定的名字)。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
TJA1055T/3/2Z 1 NXP Semiconductors Interface Circuit

ECAD模型

下载ECAD模型
$19.42 查看
KSZ8995MI 1 Microchip Technology Inc DATACOM, LAN SWITCHING CIRCUIT, PQFP128

ECAD模型

下载ECAD模型
$11.54 查看
KSZ8463MLI 1 Microchip Technology Inc DATACOM, MANCHESTER ENCODER
$6.84 查看
致远电子

致远电子

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。收起

查看更多

相关推荐

电子产业图谱