加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

【技術分享】使用PCIe EtherCAT通訊卡控制IO從站step by step(一)

05/21 10:30
3205
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

EtherCAT是一種高效且常用的工業(yè)通訊協(xié)議。本系列文章將帶領您使用ZLG致遠電子的PCIe EtherCAT通訊卡,一步步實現(xiàn)從搭建編譯環(huán)境到程序運行。

ZLG致遠電子?PCIe EtherCAT通訊卡?是一款高性能的總線控制卡,專為滿足高實時的工業(yè)控制需求而設計。基于PCI Express技術,該卡通過使用實時內(nèi)核+商業(yè)授權(quán)EtherCAT協(xié)議棧的方式,實現(xiàn)了高達125us的控制周期。

為了方便用戶的使用,該卡配套提供了全面的上位機配置軟件AWStudio,用戶通過使用AWStudio軟件,可快速掃描從站設備,輕松地得到ENI的配置文件。此外,該卡還支持Windows、Linux、Vxworks等多平臺,并提供了簡潔易用的SDK接口。無論是在復雜的工業(yè)控制中,還是在追求高性能的場景中,ZLG致遠電子的PCIe EtherCAT通訊卡都是您的理想選擇。運行框架:

表1 PCIe?EtherCAT通訊卡型號

搭建步驟

為了優(yōu)化客戶使用PCIe EtherCAT通訊卡的體驗,我們將詳細介紹在Ubuntu環(huán)境下開發(fā)項目搭建環(huán)境的步驟,以及如何快速上手使用PCIE卡和IO從站進行通訊。這將使您能夠快速而輕松地將ZLG致遠電子的PCIe EtherCAT通訊卡接入到您的工程項目中。

1. 前期準備

1.1 在目標機器上安裝驅(qū)動;

1.2 獲得SDK包;

1.3 使用AWStudio導出EtherCAT網(wǎng)絡信息文件(ENI)。

2. 項目創(chuàng)建

2.1 構(gòu)建工程目錄

新建Project文件夾。

將sdk移動到工程目錄中。

移動完后,工程目錄Project將會是下圖的樣子。

2.2 CMakeLists.txt編寫

在Project目錄下,創(chuàng)建CMakeLists.txt文件。

在CMakeLists.txt文件中輸入。

2.3 創(chuàng)建測試程序

在src目錄中創(chuàng)建主程序ecat_api_io_test.cpp,該文件名需要和CMakeLists.txt中的SRC變量相同。

打開ecat_api_io_test.cpp文件。輸入內(nèi)容:

#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));//將狀態(tài)切換為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;}

上面的示例代碼實現(xiàn)了主站的啟動以及關閉,具體的過程數(shù)據(jù)修改將在下一章節(jié)做介紹。2.4 測試編譯環(huán)境

構(gòu)建項目,先去到項目的根目錄。

創(chuàng)建構(gòu)建的文件夾build。進入到文件夾build。執(zhí)行cmake構(gòu)建項目。編譯(編譯完成后,生成的執(zhí)行程序?qū)赽uild目錄下,可執(zhí)行程序的名字為CMakeLists.txt中TARGET_NAME變量指定的名字)。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
KSZ8463MLI 1 Microchip Technology Inc DATACOM, MANCHESTER ENCODER
$6.84 查看
SN65HVD232D 1 Texas Instruments 3.3 V CAN Transceiver 8-SOIC -40 to 85

ECAD模型

下載ECAD模型
$2.72 查看
TLE6250GXUMA1 1 Infineon Technologies AG Interface Circuit, BICMOS, PDSO8, GREEN, PLASTIC, SOP-8
$1.08 查看
致遠電子

致遠電子

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠電子股份有限公司成立于2001年,注冊資金5000萬元,國家級高新技術認證企業(yè),廣州市高端工控測量儀器工程技術研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關推薦

電子產(chǎn)業(yè)圖譜