IgH详解六、IgH命令行工具使用

         当加载好主栈驱动程序后,可以通过命令行工具查看主栈和从站的相关信息。

 下面接收命令行的具体功能

1、ethercat alias [ OPTIONS ] < ALIAS >


--alias -a <alias>:从站的别名;
--position -p <pos>:从站的绝对位置;
--force -f:所有从站;

配置从站别名

ethercat alias --p 0 0x1001

2、ethercat config [ OPTIONS ]


* --alias -a <alias>:从站的别名;
* --position -p <pos>:从站的绝对位置;
* --verbose -v:显示详细信息;

查看从站配置信息
ethercat config -p 0 -v (需要启动应用程序才能查看到配置信息)

3、ethercat cstruct [ OPTIONS ]


* --alias -a <alias>:从站的别名;
* --position -p <pos>:从站的绝对位置;

查看从站配置的数据结构,和应用程序的配置结构一致
ethercat cstruct -p 0

4、ethercat data [ OPTIONS ]


--domain -d <index> <index>:域的索引值,不填写则显示所有过程数据。

查看应用程序和从站pdo数据
ethercat data -d 0 (需要启动应用程序,配置pdo数据后才能看到)

5、ethercat debug <LEVEL>


LEVEL:
* 0 : 无任何调试信息输出
* 1 : 输出部分调试信息
* 2 : 输出所有的调试内容包括收发的数据报文

设置主栈调试信息打印级别
 ethercat debug 1

6、ethercat domains [ OPTIONS ]


* --domain -d <index> <index>:根据索引号,匹配域;
* --verbose -v:显示域的详细信息(FMMU和过程数据的信息);

domain记录了配置的pdo和FMMU的相关信息,同样需要启动应用程序,配置了相关数据后才能查看。

ethercat domains

ethercat domains -v


 

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


⑴ :
* INDEX:16位无符整型的SDO索引;
* SUBINDEX:8位无符整型的SDO子索引;
* VALUE:需写入的SDO的值

⑵ [ OPTIONS ]参:
* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对位置;
* --type -t <type>:SDO条目的数据类型;

type可使用的类型有:
bool、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float、double、string、octet_string、unicode_string

配置从站的sdo数据

ethercat download -t int8 -p 0 0x6060 00 08

 8、ethercat upload [ OPTIONS ] <INDEX> <SUBINDEX>


⑴ :
* INDEX:16位无符整型的SDO索引;
* SUBINDEX:8位无符整型的SDO子索引;

⑵ [ OPTIONS ]参:
* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对位置;
* --type -t <type>:SDO条目的数据类型;

type可使用的类型有:
bool、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float、double、string、octet_string、unicode_string

读取从站的sdo数据
 ethercat upload -t int8 -p 0 0x6060 00

 

 9、ethercat eoe

显示etherne报文的相关信息,一般很少有设备支持eoe功能。

10、ethercat foe_read [ OPTIONS ] <SOURCEFILE>

FOE为文件传输协议,可以向从站写入配置文件
① 参数
* <SOURCEFILE>:为从站中的源文件;

② [ OPTIONS ]参数
* --output -file -o <file> <file>:为读取数据的存储文件,缺省的话数据将读取到stdout;
* --alias:匹配从站的别名;
* --position:匹配从站的绝对位置;

11、ethercat foe_write [ OPTIONS ] <FILENAME>


① 参数
* <FILENAME>:为要发送的文件(指定路径+文件名),也可以为” - “,表示从标准输入中读取文件;

② [ OPTIONS ]参数
* --output -file -o <file> <file>:为从站存储的目标文件名,假如不指定名字,则为主站发送 FILENAME的去掉路径的名字;
* --alias:匹配从站的别名;
* --position:匹配从站的绝对位置;


12、ethercat graph [ OPTIONS ]

查看当前总线拓扑,也就是从站的连接顺序
ethercat graph

13、ethercat master [ OPTIONS ]


--master -m <indices>:indices为主站的索引。默认显示所有的设备信息;

查看主栈信息
 ethercat master

14、ethercat pdos [OPTIONS]


* --alias -a <alias>:从站的别名;
* --position -p <pos>:从站的绝对位置;
* --skin -s <skin>:”skin”可选择”default“和”etherlab“;

查看从站的SM和pdo数据
 ethercat pdos -p 0 

 15、ethercat reg_read [ OPTIONS ] <ADDRESS> [ SIZE ]


① 可选参数
* ADDRESS:16位无符号的寄存器地址;
* SIZE:要读取的对应寄存器字节数(16位无符号值);

② [ OPTIONS ]参数
* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对位置;
* --type -t <type>:匹配数据类型;

type可使用的类型有:
bool、int8、int16、int32、int64、uint8、uint16、uint32、uint64、float、double、string、octet_string、unicode_string

对于sign-and-magnitude coding有:
sm8、sm16、sm32、sm64


ethercat reg_read -p 0 -t sm32 0x0928
获取从站0的0x0928寄存器所存储的值。

ethercat reg_write [ OPTIONS ] <ADDRESS> <DATA>


① 可选参数
* ADDRESS:16位无符号的寄存器地址;
* DATA:要写入寄存器的数据;

② [ OPTIONS ]参数
* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对地址;
* --type -t <type>:匹配数据类型;
* --emergency -e:以紧急的方式请求写入文件;


ethercat reg_write -p 0 -t sm32 0x0928 100
向从站5的寄存器0x0928写入数据100。
 

16、ethercat sdos [ OPTIONS ]


* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对位置;
* --quiet -q:只输出PDOs,不输出PDO条目信息;

17、ethercat sii_read [OPTIONS]


* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对位置;
* --verbose -v:分类显示数据文本内容;
ethercat sii_read -p 0 -v
按内容分类形式显示sii的内容;
ethercat sii_read -p 0 | hexdump
16进制形式显示sii的内容;
 ethercat sii_read -p 0 > sii.bin
将sii的内容写入到sii.bin文件

ethercat sii_write [ OPTIONS ] <FILENAME>


* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对位置;
* --force -f:不进行有效检查;
ethercat sii_read -p 0 sii.bin
将sii.bin的内容写入从站0的SII中。
 

18、ethercat slaves [ OPTIONS ]


* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对地址;
* --verbose -v:显示从站的详细信息;


ethercat slaves -v

显示当前总线上有从站的详细信息

19、ethercat xml [ OPTIONS ]


* --alias -a <alias>:匹配从站的别名;
* --position -p <pos>:匹配从站的绝对地址;

ethercat xml 
生成当前总线连接的所有从站的描述信息类似esi

总结:

常用的命令行有 ethercat slave 查看当前总线上是否识别到连接的从站设备

ethercat cstruct  查看从站的配置数据,应用程序中可以按这个配置配置从站

ethercat master 查看当前的主栈状态,报文统计等信息
 

之前工作有接触到Ethercat 并学习实践了IghMaster,现在不做这方面工作了把代码开源出来,希望对大家有用。 代码使用Source Insight 3.5编辑的,用其它编辑器可能会出现乱码。 压缩包中包含了 1.基于Ighmaster 1.5.2驱动Sanyo,泰科伺服电机做力矩模式运动的代码。包含电机使能/禁止使能,设置运行模式,控制模式,发送力矩控制命令取力矩反馈等功能。基于SDO方式实现的代码。 2. 基于Ighmaster 1.5.2 驱动Et100 Io板代码,基于PDO,SDO方式的Io控制及温湿度取 3. 测试例子包括了介于原生驱动接口ioctl方式控制码和基于libethercat的驱动代码。具体见源代码。 文档目录结构及简要说明 0.Ethercat调试记录.txt 自己调试Ethercat过程中碰到的问题及解决办法 1. libethercat\std 目录 编译Igh生成的ethecat 2. libethercat\include Igh Master Ethercat包含的头文件 3. scripts/ 自动生成从信息的相关脚本文件,要生成从信息,将该文件夹复制到开发板运行GenerateSlavesConfig.sh。 默认生成ec_common_configs_define.h和ec_common_configs_define.c文件,这两个文件会在libethercat\ec_common\ecat_common.c,libethercat\ec_common\ecat_common.h相关接口使用。 4. libethercat\ec_common 4.0 ec_common_configs_define.h ec_common_configs_define.c 由脚本scripts/GenerateSlavesConfig.sh自动生成的从信息,包括从PDO,SDO设置等,更具体的可以参照scripts/README.txt 4.1 ecat_common.h ecat_common.c 基于ibethercat\std 中的的二次封装,简化了PDO,SDO等操作 4.2 ecat_common_intermediate_interface.h ecat_common_intermediate_interface.c 与具体厂商相关的接口,基于ecat_common.c中接口的实现,不同设备修改这两个文件中的接口进行适配。 目前该文件实现的山羊电机接口。主要实现的PDO接口的电机状态查询,上电开机,关机,操作模式设置,力矩设置等接口,不同电机的类似接口可以参照该文件实现,接口作用见名知意。 封装接口的关键是对象字典的操作,根据手册设置对象字典即可,标准的Ethercat接口伺服电机一般来说对象字典定义基本是一样的,可能稍微有差别 5. 标准Igh Master接口的使用例子 mytest目录 mytest/test_torque_sanyo_ioctl 基于ioctl接口的sanyo电机测试例子 mytest/test_torque_tec_ioctl 基于ioctl接口的泰科电机电机测试例子 mytest/test_torque_tec_lib 基于libethercat\std接口的电机测试例子 mytest/test_torque2 基于libethercat\std接口的电机测试例子2 mytest/test_io_board ET1100,IO板的测试例子 基于标准的Igh 及iotcl接口可以参照该文件夹例子 6.二次封装接口ecat_common_intermediate_interface.c的使用说明 使用步骤 (1)将编译生成的Igh文件替换libethercat\std文件, 文件名可能要改成,或者不该也行,自己写Makefile时匹配名称就行 (2)将 scripts/ 目录复制到开发运行GenerateSlavesConfig.sh脚本,将脚本生成的ec_common_configs_define.h ec_common_configs_define.h 复制到libethercat\ec_common 文件夹 (3)基于二次封装接口的电机一般操作参照demo.c 参照demo.c中的ethercat_init() 进行从初始化 初始化后就可以调用ecat_common_intermediate_interface.c中接口对从进行操作 比如 interpolation_2_ecat_set_slave_pwr_on()接口使能电机, interpolation_2_ecat_set_slave_pwr_off() 关闭电机 interpolation_2_ecat_set_slave_target_pos() 设置目标位置,对应位置模式操作 其它接口作用见参照具体实现 7.关于轴操作的几点说明 (1)每个轴对应一个从,由alias,position确定,一般来说从不多时alias=0固定不变,对不同轴根据positon确定。 例如使能和关闭不同的轴 int interpolation_2_ecat_set_slave_pwr_on(MasterSpecifiedInfo_T *master_specified_info, int slave_pos); int interpolation_2_ecat_set_slave_pwr_off(MasterSpecifiedInfo_T *master_specified_info, int slave_pos); 中slave_pos参数就对应不同的轴,slave_pos=0,axis1 slave_pos=1,axis2... (2)设置不同轴的操作模式,位置,力矩,速度模式 可以参照这个接口 int interpolation_2_ecat_set_slave_operation_model(MasterSpecifiedInfo_T *master_specified_info, int slave_pos, unsigned char operation_model) 代码已经托管在云上,可以直接通过git下载: https://gitee.com/wllw7176/MyEthercat-IGH-1.5.2.git
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值