说明:EtherCAT为了方便用户空间对主站进行调试,因此提供一套用户空间使用的工具来设置从站参数,观察调试信息等等。正常情况下,每个主站的实例都会生成一个字符设备,名字为:/dev/EtherCATx。
欲想深入了解其他命令,可通过执行ethercat –help命令来查看详细使用方法。
下面具体的介绍了一下各参数及命令的使用,其中[ ]中为必选参数,< >为可选参数。
命令:ethercat alias [ OPTIONS ] < ALIAS >
参数:
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对位置;
* --force -f
:匹配所有从站;
例子:
sudo ethercat alias --position 0 0x2000
解析:将在bus总线上对应的从站0的别名(默认为0)为0x2000;
注意:必须有从站连接才能使用此命令。
命令:ethercat config [ OPTIONS ]
参数:
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对位置;
* --verbose -v
:显示详细信息;
例子:
sudo ethercat config -v
解析:显示所有从站的详细配置信息。
注意:必须启动应用程序才能使用此命令查看。
说明:生成的PDO信息可以直接被应用层的ecrt_slave_config_pdos()函数调用。
命令:ethercat cstruct [ OPTIONS ]
参数:
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对位置;
例子:
sudo ethercat cstruct -a 100
解析:输出别名为100的从站的PDO信息。
注意:必须有从站连接才能使用此命令。
说明:输出二进制的过程数据。
命令:ethercat data [ OPTIONS ]
参数:
* --domain -d
:域的索引值,假如不填写参数则显示所有过程数据。
例子:
sudo ethercat data
解析:显示所有PDO过程数据。
注意:必须启动应用程序才能使用此命令查看。
说明:设置主站的调试级别,调试信息将输出在/var/log/syslog文件中。
命令:ethercat debug
其中可有以下情况:
* 0 : 无任何调试信息输出
* 1 : 输出部分调试信息
* 2 : 输出所有的帧的内容(由于输出信息较多,请谨慎使用)
例子:
sudo ethercat debug 1
解析:打开部分调试信息输出
说明:显示域的信息。
命令: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和过程数据的信息)。
注意:必须启动应用程序才能使用此命令查看。
说明:向从站写一条PDO条目。
命令:ethercat download [ OPTIONS ]
参数:
⑴ 可选参数:
* INDEX:16位无符整型的SDO索引;
* SUBINDEX:8位无符整型的SDO子索引;
* VALUE:需写入的SDO的值
⑵ [ OPTIONS ]参数:
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对位置;
* --type -t
:SDO条目的数据类型;
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
例子:
sudo ethercat download -t int16 -p 0 0x6060 00 08
解析:向从站0的索引号为0x6060(16位),子索引号为00(8位)的地址写入PDO条目值”0x08“;
说明:向从站读取一个SDO条目。
命令:ethercat upload [ OPTIONS ]
参数:
⑴ 可选参数:
* INDEX:16位无符整型的SDO索引;
* SUBINDEX:8位无符整型的SDO子索引;
⑵ [ OPTIONS ]参数:
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对位置;
* --type -t
:SDO条目的数据类型;
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
例子:
sudo ethercat upload -t int16 -p 0 0x6060 00
解析:读取从站0中索引号为0x6060(16位),子索引号为00(8位)的SDO条目。
注意:必须有从站连接才能使用此命令。
说明:显示EOE的统计信息,包括主站的发送率和接收率(Byte/s)。
命令:ethercat eoe
参数:无
⑴ 通过FOE读取从站的文件。
命令:ethercat foe_read [ OPTIONS ]
参数:
① 可选参数
*
:为从站中的源文件;
② [ OPTIONS ]参数
* --output -file -o
:为读取数据的存储文件,缺省的话数据将读取到stdout;
* --alias
:匹配从站的别名;
* --position
:匹配从站的绝对位置;
⑵ 通过FOE向从站存储文件。
命令:ethercat foe_write [ OPTIONS ]
① 可选参数
*
:为要发送的文件(指定路径+文件名),也可以为” - “,表示从标准输入中读取文件;
② [ OPTIONS ]参数
* --output -file -o
:为从站存储的目标文件名,假如不指定名字,则为主站发送 FILENAME的去掉路径的名字;
* --alias
:匹配从站的别名;
* --position
:匹配从站的绝对位置;
说明:输出总线拓扑图。
命令:ethercat graph [ OPTIONS ]
例子:
sudo ethercat graph | dot -Tsvg > ~/Desktop/bus.svg
解析:将总线拓扑图输出到桌面。
说明:显示主站和以太网设备信息。
命令:ethercat master [ OPTIONS ]
参数:
* --master -m
:indices为主站的索引。默认显示所有的设备信息;
例子:
sudo ethercat master
解析:显示所有主机的设备信息(发送帧、接收帧、参考时钟、应用时间)。
注意:欲想显示应用时间需启动应用程序。
说明:显示出同步管理器的参数和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:表示该条目的位宽;
* ” “:表示该位的描述;
⑴ 获取对应从站寄存器的内容
命令:ethercat reg_read [ OPTIONS ] [ SIZE ]
参数:
① 可选参数
* ADDRESS:16位无符号的寄存器地址;
* SIZE:要读取的对应寄存器字节数(16位无符号值);[ SIZE ] + ADDRESS不能超过64K,假如type参数隐含要读取的字节数,则可以忽略掉[ SIZE ]参数;
② [ OPTIONS ]参数
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对位置;
* --type -t
:匹配数据类型;
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
例子:
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。
说明:列出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”:对该条目的描述;
⑴ 读取从站的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中。
注意:必须有从站连接才能使用此命令。
说明:显示总线上的从站的信息。
命令:ethercat slaves [ OPTIONS ]
参数:
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对地址;
* --verbose -v
:显示从站的详细信息;
例子:
sudo ethercat slaves -v
解析:显示所有从站的详细信息。
说明:读取从站的SOE IDN。
命令:ethercat soe_read [ OPTIONS ]
参数:
① 可选参数
* DRIVE
:驱动号【0 - 7】,缺省默认为0;
* IDN
:
② [ OPTIONS ]参数
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对地址;
* --type -t
:匹配数据类型;
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 states [ OPTIONS ]
参数:
⑴ 可选参数
* STATE
:可选的参数有INIT、PREOP、BOOT、SAFEOP、OP
;
⑵ [ OPTIONS ]参数
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对地址;
例子:
sudo ethercat states -p 0 OP
解析:将从站0的状态切换为OP;
注意:必须有从站连接才能使用此命令。
说明:显示主张的版本。
命令:ethercat version [ OPTIONS ]
说明:生成从站信息描述文件。
命令:ethercat xml [ OPTIONS ]
参数:
* --alias -a
:匹配从站的别名;
* --position -p
:匹配从站的绝对地址;
例子:
sudo ethercat xml -p 0
解析:生成从站0的从站信息描述文件并显示出来。