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 主站指针
返回值
无
说明
去激活主站,移除总线配置。
