【问题标题】:Can I configure the (default) PDO layout automatically?我可以自动配置(默认)PDO 布局吗?
【发布时间】:2023-03-24 18:15:02
【问题描述】:

如果我调用 ecrt_slave_config_reg_pdo_entry 创建域偏移量,我会收到以下消息:

注册 PDO 条目失败:没有这样的文件或目录

我相信我必须打电话给ecrt_slave_config_pdos,我现在还没有。但是,我不明白为什么我必须调用它。就我而言,我想与之交谈的奴隶已经连接到总线。如果我在终端中输入ec cstruct -p [SLAVE_POS],我会得到 PDO 布局。

me@here:~$ ec cstruct -p 1
/* Master 0, Slave 1, "..."
 * Vendor ID:       0x...
 * Product code:    0x...
 * Revision number: 0x...
 */

ec_pdo_entry_info_t slave_1_pdo_entries[] = {
    {0x6040, 0x00, 16},
    ...
};

ec_pdo_info_t slave_1_pdos[] = {
    {0x1600, 2, slave_1_pdo_entries + 0},
    ...
};

ec_sync_info_t slave_1_syncs[] = {
    {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
    ...
    {0xff}
};

为什么我可以从终端命令获取ecrt_slave_config_pdos 的所有输入参数,但 EtherCat 不能(或不想)配置从站本身?从站配置可以自动化吗?

【问题讨论】:

    标签: canopen ethercat


    【解决方案1】:

    您可以使用函数ecrt_master_get_slave()ecrt_master_get_sync_manager()ecrt_master_get_pdo() 和(当然)ecrt_master_get_pdo_entry() 来检索所有必要的信息。 ecrt_master_get_sync_manager(),例如,不会设置 PDO 信息,但会返回同步管理器的 PDO 位置数。

    所以类似的东西对我有用(为了清楚起见,省略了错误代码检查):

    ecrt_master_get_slave(..., &slaveInformation);
    
    // For every synchronization manager...
    for (size_t syncIndex = 0; syncIndex < slaveInformation.sync_count; ++syncIndex) {
        ecrt_master_get_sync_manager(..., &syncInformation);
        ecrt_slave_config_sync_manager(...);
    
        // For every PDO field...
        for (size_t pdoIndex = 0; pdoIndex < syncInformation.n_pdos; ++pdoIndex) {
            ecrt_master_get_pdo(..., &pdoInformation);
            ecrt_slave_config_pdo_assign_add(...);
    
            // For every entry in the pdo field...
            for (size_t entryIndex = 0; entryIndex < pdoInformation.n_entries; ++entryIndex) {
                ecrt_master_get_pdo_entry(..., &entryInformation);
                ecrt_slave_config_pdo_mapping_add(...);
            }
        }
    }
    

    然而,这并不能真正回答为什么(或是否)这一切都是必要的问题。具体来说cleaner:如果可以避免末日金字塔,那就太好了。特别是,因为我要告诉奴隶一些事情,它之前告诉过我一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      相关资源
      最近更新 更多