Ethercat解析(十二)之命令行工具的使用

说明:EtherCAT为了方便用户空间对主站进行调试,因此提供一套用户空间使用的工具来设置从站参数,观察调试信息等等。正常情况下,每个主站的实例都会生成一个字符设备,名字为:/dev/EtherCATx。

欲想深入了解其他命令,可通过执行ethercat –help命令来查看详细使用方法。

下面具体的介绍了一下各参数及命令的使用,其中[ ]中为必选参数,< >为可选参数。

1.1 设置别名地址

命令:ethercat alias [ OPTIONS ] < ALIAS >
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对位置;
* --force -f:匹配所有从站;

例子:
sudo ethercat alias --position 0 0x2000
解析:将在bus总线上对应的从站0的别名(默认为0)为0x2000;
注意:必须有从站连接才能使用此命令。

1.2 显示总线配置

命令:ethercat config [ OPTIONS ]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对位置;
* --verbose -v:显示详细信息;

例子:
sudo ethercat config -v
解析:显示所有从站的详细配置信息。
注意:必须启动应用程序才能使用此命令查看。

1.3 以C语言的形式输出PDO信息

说明:生成的PDO信息可以直接被应用层的ecrt_slave_config_pdos()函数调用。
命令:ethercat cstruct [ OPTIONS ]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对位置;

例子:
sudo ethercat cstruct -a 100
解析:输出别名为100的从站的PDO信息。
注意:必须有从站连接才能使用此命令。

1.4 显示过程数据

说明:输出二进制的过程数据。
命令:ethercat data [ OPTIONS ]
参数:
* --domain -d :域的索引值,假如不填写参数则显示所有过程数据。

例子:
sudo ethercat data
解析:显示所有PDO过程数据。
注意:必须启动应用程序才能使用此命令查看。

1.5 设置主站调试级别

说明:设置主站的调试级别,调试信息将输出在/var/log/syslog文件中。
命令:ethercat debug
其中可有以下情况:
* 0 : 无任何调试信息输出
* 1 : 输出部分调试信息
* 2 : 输出所有的帧的内容(由于输出信息较多,请谨慎使用)

例子:
sudo ethercat debug 1
解析:打开部分调试信息输出

1.6 配置域

说明:显示域的信息。
命令:ethercat domains [ OPTIONS ]
参数:
* --domain -d :根据索引号,匹配域;
* --verbose -v:显示域的详细信息(FMMU和过程数据的信息);

例子:
sudo ethercat domains执行后显示

Domain0:LogBaseAddr 0x00000000, Size 12, WorkingCounter 0/3

以上各字段的含义:
* LogBaseAddr:逻辑寻址的逻辑基地址;
* Size:域交换数据的字节数;
* WorkingCounter:第一个数字是WKC的当前值,第二个数字是WKC的期望值;

解析:显示域的基本信息。

sudo ethercat domains -v执行后显示


Domain0:LogBaseAddr 0x00000000, Size 12, WorkingCounter 3/3
    SlaveConfig 0:0, SM2 (Output), LogAddr 0x00000000, Size 6 06 00 9d aa 00 00
    SlaveConfig 0:0, SM3 (Input), LogAddr 0x00000000, Size 6 31 0a 9d aa 00 00

以上各字段的含义:
* SlaveConfig:从机配置信息,主要包含别名和地址(绝对地址或相对地址);
* SM2:同步管理器2;
* LogAddr:FMMU映射的地址;
* Size:映射地址的大小;
* 数据位:十六进制显示的过程数据;

解析:显示域的详细信息(FMMU和过程数据的信息)。
注意:必须启动应用程序才能使用此命令查看。

1.7 访问SDO

说明:向从站写一条PDO条目。
命令:ethercat download [ OPTIONS ]
参数:
⑴ 可选参数:
* INDEX:16位无符整型的SDO索引;
* SUBINDEX:8位无符整型的SDO子索引;
* VALUE:需写入的SDO的值

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

type可使用的类型有:


boolint8int16int32int64uint8uint16uint32uint64floatdoublestring、octet_string、unicode_string

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

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

1.8 访问SDO

说明:向从站读取一个SDO条目。
命令:ethercat upload [ OPTIONS ]
参数:
⑴ 可选参数:
* INDEX:16位无符整型的SDO索引;
* SUBINDEX:8位无符整型的SDO子索引;

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

type可使用的类型有:


boolint8int16int32int64uint8uint16uint32uint64floatdoublestring、octet_string、unicode_string

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

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

注意:必须有从站连接才能使用此命令。

1.9 输出EOE统计信息

说明:显示EOE的统计信息,包括主站的发送率和接收率(Byte/s)。
命令:ethercat eoe
参数:

1.10 FOE通信

⑴ 通过FOE读取从站的文件。
命令:ethercat foe_read [ OPTIONS ]
参数:
① 可选参数
* :为从站中的源文件;

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

⑵ 通过FOE向从站存储文件。
命令:ethercat foe_write [ OPTIONS ]
① 可选参数
* :为要发送的文件(指定路径+文件名),也可以为” - “,表示从标准输入中读取文件;

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

1.11 创建一个拓扑图形

说明:输出总线拓扑图。
命令:ethercat graph [ OPTIONS ]

例子:
sudo ethercat graph | dot -Tsvg > ~/Desktop/bus.svg
解析:将总线拓扑图输出到桌面。

1.12 主站和以太网设备

说明:显示主站和以太网设备信息。
命令:ethercat master [ OPTIONS ]
参数:
* --master -m :indices为主站的索引。默认显示所有的设备信息;

例子:
sudo ethercat master
解析:显示所有主机的设备信息(发送帧、接收帧、参考时钟、应用时间)。

注意:欲想显示应用时间需启动应用程序。

1.13 同步管理,PDOs,PDO条目

说明:显示出同步管理器的参数和PDO任务和映射信息。
命令:ethercat pdos [OPTIONS]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对位置;
* --skin -s :”skin”可选择”default“和”etherlab“;

例子:
sudo ethercat pdos -p 0 -s default执行后显示:

SM2:PhysAddr 0x1400, DefaultSize 64, ControlRegister 0x34, Enable 1
    RxPDO 0x1600 "Receive PDO1 Mapping"
        PDO entry 0x6040:00, 16 bit, " "
        PDO entry 0x607a:00, 32 bit, " "

以上各字段的含义:
⑴ 同步管理器信息
* SM2:同步管理器2;
* PhysAddr:物理地址开始地址;
* DefaultSize:默认数据大小;
* ControlRegister:控制寄存器;
* Enable:使能字

⑵ 显示PDO方向,索引值,PDO名字
* RxPDO:代表从站发送数据的方向(从站接收数据);
* 0x1600:PDO的索引值;
* “Receive PDO1 Mapping”:PDO的名字;

⑶ 显示PDO条目的索引和子索引(都是以16进制的形式现实的),显示位宽和描述
* 0x6040:00 : 表示索引和子索引;
* 16bit:表示该条目的位宽;
* ” “:表示该位的描述;

1.14 寄存器访问

⑴ 获取对应从站寄存器的内容
命令:ethercat reg_read [ OPTIONS ]

[ SIZE ]
参数:
① 可选参数
* ADDRESS:16位无符号的寄存器地址;
* SIZE:要读取的对应寄存器字节数(16位无符号值);[ SIZE ] + ADDRESS不能超过64K,假如type参数隐含要读取的字节数,则可以忽略掉[ SIZE ]参数;

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

type可使用的类型有:


boolint8int16int32int64uint8uint16uint32uint64floatdoublestring、octet_string、unicode_string

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

例子:
sudo ethercat reg_read -p 6 -t sm32 0x092c
解析:获取从站6的0x092C寄存器所存储的值。

⑵ 将内容写入指定从站寄存器
命令:ethercat reg_write [ OPTIONS ]


参数:
① 可选参数
* ADDRESS:16位无符号的寄存器地址;
* DATA:要写入寄存器的数据;假如制定了”type”数据类型,那么”DATA”根据指定的数据类型对数据进行解析;假如未指定”type”数据类型,则”DATA”可以为指定的文件或将”DATA”设置为” - “,表示从标准输入中获得数据;

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

例子:
sudo ethercat reg_write -p 5 -t sm32 0x092c 200
解析:向从站5的寄存器0x092c写入数据200。

1.15 SDO字典

说明:列出SDO字典(SDO信息和SDO条目信息)。
命令:ethercat sdos [ OPTIONS ]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对位置;
* --quiet -q:只输出PDOs,不输出PDO条目信息;

例子:
sudo ethercat sdos执行后显示

SDO 0x1000"Device type"
    0x1000:0, r-r-r-, uint32, 32 bit, "Device type"

SDOs:SDO 0x1000,”Device type”
* 0x1000:SDO索引值;
* “Device type”:SDO名字;

SDO条目:0x1000:0, r-r-r-, uint32, 32 bit, “Device type”
* 0x1000:0:索引值及子索引值;
* r-r-r-:表示访问权限;
* uint32:表示该条目的数据类型;
* 32bit:表示该条目的位宽;
* “Device type”:对该条目的描述;

1.16 SII访问

⑴ 读取从站的SII内容
命令:ethercat sii_read [OPTIONS]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对位置;
* --verbose -v:分类显示数据文本内容;

例子:
sudo ethercat sii_read -p 0 -v
解析:以分类数据文本形式显示sii的内容;
sudo ethercat sii_read -p 0 | hexdump
解析:以16进制形式显示sii的内容;
sudo ethercat sii_read -p 0 > Backup.bin
解析:将sii的内容备份到Back.bin文件下;

注意:必须有从站连接才能使用此命令。

⑵ 向从站写入sii内容
命令:ethercat sii_write [ OPTIONS ]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对位置;
* --force -f:不进行有效检查;

例子:
sudo ethercat sii_read -p 0 Backup.bin
解析:将Backup.bin的内容写入从站0的SII中。

注意:必须有从站连接才能使用此命令。

1.17 显示从站的信息

说明:显示总线上的从站的信息。
命令:ethercat slaves [ OPTIONS ]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对地址;
* --verbose -v:显示从站的详细信息;

例子:
sudo ethercat slaves -v
解析:显示所有从站的详细信息。

1.18 SOE IDN访问

说明:读取从站的SOE IDN。
命令:ethercat soe_read [ OPTIONS ]
参数:
① 可选参数
* DRIVE:驱动号【0 - 7】,缺省默认为0;
* IDN:

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

type可使用的类型有:

boolint8int16int32int64uint8uint16uint32uint64floatdoublestring、octet_string、unicode_string

对于sign-and-magnitude coding有:sm8、sm16、sm32、sm64
1.19 请求应用层转换状态机

说明:请求应用层转换状态。
命令:ethercat states [ OPTIONS ]
参数:
⑴ 可选参数
* STATE:可选的参数有INIT、PREOP、BOOT、SAFEOP、OP;

⑵ [ OPTIONS ]参数
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对地址;

例子:
sudo ethercat states -p 0 OP
解析:将从站0的状态切换为OP;

注意:必须有从站连接才能使用此命令。

1.20 显示主站版本

说明:显示主张的版本。
命令:ethercat version [ OPTIONS ]

1.21 生成从站配置描述

说明:生成从站信息描述文件。
命令:ethercat xml [ OPTIONS ]
参数:
* --alias -a :匹配从站的别名;
* --position -p :匹配从站的绝对地址;

例子:
sudo ethercat xml -p 0
解析:生成从站0的从站信息描述文件并显示出来。

你可能感兴趣的:(Ethercat解析)