IgH EtherCAT主站API参考具体有哪些用法?

摘要:API 参考 9.1 — ecrt.h 函数签名与使用说明 概览 ecrt.h — EtherCAT 实时接口 ecrt.h 是 IgH EtherCAT Master 的实时应用接口(EtherCAT Realtime Interface
API 参考 9.1 — ecrt.h 函数签名与使用说明 概览 ecrt.h — EtherCAT 实时接口 ecrt.h 是 IgH EtherCAT Master 的实时应用接口(EtherCAT Realtime Interface),为应用程序提供完整的 EtherCAT 主站控制能力。该接口同时支持内核空间(内核模块)和用户空间(通过字符设备/RTDM)两种运行环境。 接口版本 当前版本: ECRT_VER_MAJOR.ECRT_VER_MINOR.ECRT_VER_PATCH = 1.5.10(本文档基于 1.5.2 接口规范编写) 函数分组总览 分组 函数数量 用途 头文件位置 Master API 14 主站生命周期管理、激活/去激活、收发数据报、DC 同步、冗余链路状态 ecrt.h:605–1247 Domain API 7 域创建、PDO 注册、过程数据访问、域状态查询 ecrt.h:2030–2129 Slave Config API 6 从站配置:PDO 映射、DC 参数、看门狗、配置状态 ecrt.h:1456–1997 SDO Request API 7 SDO 请求创建、超时设置、读写触发、数据访问、状态查询 ecrt.h:2130–2260 VoE Handler API 9 Vendor-over-EtherCAT 处理器:创建、收发头部、数据访问、执行 ecrt.h:2500–2629 辅助宏 16+ EC_READ_* / EC_WRITE_* 过程数据读写宏 ecrt.h:2700–2951 典型调用顺序 [图示内容 - 请参考原文档查看完整图表] 技术详情 一、Master API Master API 负责主站的完整生命周期:从请求、配置、激活,到运行时数据报收发和分布式时钟同步。 ecrt_request_master() 签名 ec_master_t *ecrt_request_master(unsigned int master_index) 参数 master_index — 主站索引号,第一个主站为 0 返回值 成功时返回主站指针,失败返回 NULL 说明 请求一个 EtherCAT 主站用于实时操作。在用户空间中,此函数等价于依次调用 ecrt_open_master() 和 ecrt_master_reserve()。这是应用程序使用 EtherCAT 时必须调用的第一个函数。分配内存,不要在实时上下文中调用。 ecrt_release_master() 签名 void ecrt_release_master(ec_master_t *master) 参数 master — EtherCAT 主站指针 返回值 无 说明 释放之前请求的主站。如果主站已激活,内部会自动调用 ecrt_master_deactivate()。释放所有已创建的数据结构。不要在实时上下文中调用。 ecrt_master_create_domain() 签名 ec_domain_t *ecrt_master_create_domain(ec_master_t *master) 参数 master — EtherCAT 主站指针 返回值 成功时返回新域指针,失败返回 NULL 说明 创建一个新的过程数据域。至少需要一个域来进行过程数据交换。分配内存,必须在 ecrt_master_activate() 之前的非实时上下文中调用。 ecrt_master_activate() 签名 int ecrt_master_activate(ec_master_t *master) 参数 master — EtherCAT 主站指针 返回值 成功返回 0,失败返回负值错误码 说明 结束配置阶段,准备进入循环操作。为主站域分配内部内存,计算 FMMU 逻辑地址,通知主站状态机应用总线配置。调用后,应用程序需自行循环调用 ecrt_master_send() 和 ecrt_master_receive() 来维持总线通信。不要在实时上下文中调用。 ecrt_master_deactivate() 签名 void ecrt_master_deactivate(ec_master_t *master) 参数 master — EtherCAT 主站指针 返回值 无 说明 去激活主站,移除总线配置。
阅读全文