IGH使用及配置

IGH常用命令总结

1.启动主站

sudo /etc/init.d/ethercat start

2.查看启动过程的打印数据

dmesg

3.扫描从站状态

4.ethercat slaves

主站状态

5.ethercat master

6.显示从站的详细配置信息

7.sudo ethercat config -v

8.输出别名为100的从站的PDO信息

sudo ethercat cstruct -a 100

9.显示所有PDO过程数据

sudo ethercat data

10.向从站写一条PDO条目。

ethercat download [ OPTIONS ] <INDEX> <SUBINDEX> <VALUE>

sudo ethercat download -t int16 -p 0 0x6060 00 08
解析:向从站0的索引号为0x6060(16位),子索引号为00(8位)的地址写入PDO条目值”0x08“;

11.从从站读取一条SDO

ethercat upload [ OPTIONS ] <INDEX> <SUBINDEX>

sudo ethercat upload -t int16 -p 0 0x6060 00
解析:读取从站0中索引号为0x6060(16位),子索引号为00(8位)的SDO条目

12.列出SDO字典

ethercat sdos [ OPTIONS ]

IGH初始化流程

	master = ecrt_request_master(0);                                    //1.请求
    domain1 = ecrt_master_create_domain(master);                        //2.创建域
    sc[0] = ecrt_master_slave_config(master, zero_slaver1, zero);       //3.获取从站配置    命令行可看:ethercat slavers -h -v
    
    ecrt_slave_config_pdos(sc[0], EC_END, device_syncs)                //4.从站配置PDOs  命令行可看:ethercat cstruct
    ecrt_domain_reg_pdo_entry_list(domain1, domain1_regs)              //5.配置从站的domain,配置地址空间
    // ecrt_slave_config_sdo8(sc[i], 0x6060, 0, 8);                    //6. 运行模式配置,CSP
    // ecrt_slave_config_sdo8(sc[i], 0x60C2, 1, 1);                    //设置插补周期为1ms
    // ecrt_slave_config_dc(sc[0], 0x0300, 1000000, 0, 0, 0);          //7.配置DC控制寄存器
    // ecrt_master_application_time(master, system_time_ns());         //8.
    // ecrt_master_select_reference_clock(master, NULL);               //9.
    ecrt_master_activate(master)                                       //10.启动
    domainOutput_pd = ecrt_domain_data(domain1);                       //11.获取数据域指针
    RCLCPP_INFO(this->get_logger(),"连接成功,配置通过");
### IGH 配置方法概述 IGH 是一种用于实现 EtherCAT 协议的开源主站软件,广泛应用于工业自动化领域。为了成功配置并运行 IGH 主站,需要理解其核心组件及其相互作用。 #### 1. 基础环境准备 在 Zynq 平台或其他嵌入式平台上部署 IGH 主站时,需先完成操作系统和实时内核的选择与配置。通常可以选择 Preempt RT 或 Xenomai 实现实时性能需求[^3]。这些实时扩展能够显著提升系统的响应速度和稳定性,从而满足工业控制场景下的严格时间约束。 #### 2. 配置流程详解 以下是针对 IGH 的典型配置过程: - **初始化主站**: 使用 `ecrt_master_init()` 函数创建主站实例,并通过参数指定硬件接口名称(如 eth0)。此操作会绑定网卡到 EtherCAT 协议栈上[^1]。 - **扫描网络拓扑结构**: 调用 `ecrt_master_scan_bus()` 执行总线扫描,自动发现连接的所有从站设备。这一步骤对于动态调整系统布局至关重要。 - **加载描述文件 (EDS/DCP)**: 如果目标是从特定型号的伺服驱动器或者 IO 模块,则可能需要用到厂商提供的电子数据表(EDS)或分布式时钟协议(DCP),以便更精确地定义行为特性。 - **分配内存映射区域**: 对于每一个检测到的有效节点都需要调用相应的 API 来设置寄存器地址范围以及同步管理机制。例如可以利用如下代码片段展示如何处理单一从站的情况: ```c ec_slave_config_t *sc = ecrt_master_slave_config(master, slave_position); ``` - **启动周期更新循环**: 当一切准备工作完成后就可以进入主要的工作阶段——即不断重复读取输入信号并将输出写回到物理层上去。下面给出了一种简单的方式来进行定时调度: ```c while (!stop_condition){ ecrt_domain_process(domain); // Process domain data. usleep(period_in_microseconds); // Sleep until next cycle should start. } ``` 以上每步都紧密关联着具体的函数调用和技术细节,在实际开发过程中还需要参照官方文档深入研究各个选项的具体含义及最佳实践建议。 #### 3. 示例分析:EOE 功能模块 特别值得注意的是 EoE(Ethernet over EtherCAT) 支持部分,它允许标准以太帧穿越整个现场级通信链路到达远端目的地。关于这部分内容有专门的文章进行了剖析,其中提到的关键点包括但不限于以下几个方面[^2]: - 初始化请求对象(`ec_eoe_request_init`); - 构造发送缓冲区并向远程主机传递消息包; - 接收回应信息并对错误状态做出适当反应; 上述功能均已在 eoe_request.c 中实现了较为完整的逻辑框架供开发者参考学习。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值