igh主站搭建过程:e1000e / generic

目录

专用网卡e1000e + xenomai 3.2.1

通用网卡generic + preempt_rt

gitlab下载主站的源代码


专用网卡e1000e + xenomai 3.2.1

2022年6月13日更新

今天装了xenomai内核,然后发现自己的工控机的网卡是 e1000e的,可以使用专用网卡的安装方式,下载地址:https://gitlab.com/etherlab.org/ethercat/-/tree/e1000e-5.10​

具体指令:

cd ~/Downloads
sudo tar xf ethercat-e1000e-5.10.tar.gz
sudo cp -r ethercat-e1000e-5.10 ~/xenomai
cd ~/xenomai/ethercat-e1000e-5.10

# 编译igh

sudo ./bootstrap
sudo ./configure --with-module-dir=/lib/modules/5.10.76-xenomai --enable-generic --enable-8139too=no --enable-e1000e --enable-cycles --enable-hrtimer --with-xenomai-dir=/usr/xenomai --prefix=/opt/etherlab
sudo make  #编译
sudo make modules  #编译模块
sudo make install  #安装
sudo make modules_install  #安装模块

# 配置
sudo mkdir /etc/sysconfig  #创建文件夹
sudo cp /opt/etherlab/etc/sysconfig/ethercat /etc/sysconfig/  #复制配置文件
sudo cp /opt/etherlab/etc/init.d/ethercat /etc/init.d/  #复制启动脚本
sudo chmod a+x /etc/init.d/ethercat
sudo update-rc.d ethercat defaults


# 使能
sudo ln -s /opt/etherlab/bin/ethercat /usr/local/bin/ethercat

# 配置用户权限
sudo gedit /etc/udev/rules.d/99-EtherCAT.rules
# 输入下列内容  
KERNEL=="EtherCAT[0-9]*", MODE="0664", GROUP="users" 


# 把相关模块放进系统目录,如果使用通用网卡是这样的
# sudo cp devices/ec_generic.ko /lib/modules/$(uname -r)
# sudo cp master/ec_master.ko /lib/modules/$(uname -r)
# 这边用的是专用网卡
sudo cp devices/e1000e/ec_e1000e.ko /lib/modules/$(uname -r)
sudo cp master/ec_master.ko /lib/modules/$(uname -r)

# 执行
sudo depmod

# 查看网卡MAC地址和类型
ifconfig  
# 得到ethercat通信的地址为 
enp3s0: flags=4163  mtu 1500
        inet6 fe80::fbe:4e35:95d4:4056  prefixlen 64  scopeid 0x20
        ether 00:e8:4c:68:30:de  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19  bytes 3183 (3.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 19  memory 0xf7d00000-f7d20000  

# 配置网卡
sudo gedit /etc/sysconfig/ethercat
#  在大约27行和60行处填入自己的网卡信息
MASTER0_DEVICE="00:e8:4c:68:30:de"    # mac 地址
DEVICE_MODULES="e1000e"    # 通用网卡填generic

# 启动主站
sudo /etc/init.d/ethercat start
# 查看帮助 或者 pdo信息
sudo ethercat --h
ethercat pdos

# 确认ethercat没有问题后,配置系统,让应用程序可以使用 /opt/etherlab/lib 到你的 /etc/ld.so.conf(/opt/ethercatlab前缀实在前面配置ethercat是选定的,默认是/opt/ethercatlab)
sudo gedit /etc/ld.so.conf
# 添加
/opt/etherlab/lib
# 执行
sudo ldconfig
# 测试是否安装,若成功,最后一行会显示 libethercat.so.1 -> libethercat.so.1.1.0
sudo ldconfig -v | grep libether*

通用网卡generic + preempt_rt

mkdir ec_igh
cd ec_igh/
git clone http://gitlab.com/etherlab.org/ethercat.git
cd ethercat/
./bootstrap 
./configure --enable-8139too=no
sudo make
sudo make modules
sudo make install
sudo make modules_install 

ifconfig
cd /opt/etherlab 
sudo gedit /etc/sysconfig/ethercat

MASTER0_DEVICE="00:e8:4c:68:30:cd"
DEVICE_MODULES="generic"
sudo cp etc/sysconfig/ethercat /etc/sysconfig/
sudo ln -s /opt/etherlab/etc/init.d/ethercat /etc/init.d/

sudo /etc/init.d/ethercat start

gedit ~/.bashrc
PATH=$PATH:/opt/etherlab/bin
source ~/.bashrc
sudo depmod


gitlab下载主站的源代码

ifconfig 查看网卡信息

cd /opt/etherlab 
cd /opt/etherlab 
MASTER0_DEVICE="00:e8:4c:68:30:cd"
DEVICE_MODULES="generic"

然后

sudo cp etc/sysconfig/ethercat /etc/sysconfig/
sudo ln -s /opt/etherlab/etc/init.d/ethercat /etc/init.d/

启动主站

robotarm@robotarm:/opt/etherlab$ sudo /etc/init.d/ethercat start
Starting EtherCAT master 1.5.2  done

添加命令行工具

gedit ~/.bashrc
把下面这行加进入
PATH=$PATH:/opt/etherlab/bin
保存,然后
source ~/.bashrc
sudo depmod
robotarm@robotarm:/opt/etherlab$ ethercat
Please specify a command!

Usage: ethercat  [OPTIONS] [ARGUMENTS]

Commands (can be abbreviated):
  alias      Write alias addresses.
  config     Show slave configurations.
  crc        CRC error register diagnosis.
  cstruct    Generate slave PDO information in C language.
  data       Output binary domain process data.
  debug      Set the master's debug level.
  domains    Show configured domains.
  download   Write an SDO entry to a slave.
  eoe        Display Ethernet over EtherCAT statictics.
  foe_read   Read a file from a slave via FoE.
  foe_write  Store a file on a slave via FoE.
  graph      Output the bus topology as a graph.
  ip         Set EoE IP parameters.
  master     Show master and Ethernet device information.
  pdos       List Sync managers, PDO assignment and mapping.
  reg_read   Output a slave's register contents.
  reg_write  Write data to a slave's registers.
  rescan     Rescan the bus.
  sdos       List SDO dictionaries.
  sii_read   Output a slave's SII contents.
  sii_write  Write SII contents to a slave.
  slaves     Display slaves on the bus.
  soe_read   Read an SoE IDN from a slave.
  soe_write  Write an SoE IDN to a slave.
  states     Request application-layer states.
  upload     Read an SDO entry from a slave.
  version    Show version information.
  xml        Generate slave information XML.

Global options:
  --master  -m   Comma separated list of masters
                         to select, ranges are allowed.
                         Examples: '1,3', '5-7,9', '-3'.
                         Default: '-' (all).
  --force   -f           Force a command.
  --quiet   -q           Output less information.
  --verbose -v           Output more information.
  --help    -h           Show this help.

Numerical values can be specified either with decimal (no
prefix), octal (prefix '0') or hexadecimal (prefix '0x') base.

Call 'ethercat  --help' for command-specific help.

Send bug reports to [email protected].

扫描从站

robotarm@robotarm:/opt/etherlab$ sudo ethercat slave
0    0:0  PREOP  +  AEM-090-30
1    0:1  PREOP  +  AEM-090-30
2    0:2  PREOP  +  AEM-090-30
3    0:3  PREOP  +  AEM-090-30
4  255:0  PREOP  +  AEM-090-30
5  255:0  PREOP  +  AEM-090-30
6  255:0  PREOP  +  AEM-090-30
7  255:1  PREOP  +  F7ETHSLAVE_V4.1

你可能感兴趣的:(ethercat,linux,ethercat,linux)