软件包
- epics-base/epics-base: The C/C++ core of the EPICS Base control system toolkit
- epics-modules/ecmc: EPICS Support for EtherCAT Motion Controller (ECMC) and Generic IO Controller
- paulscherrerinstitute/exprtk-ecmc: ESS Customized exprtk : C++ Mathematical Expression Parsing And Evaluation Library
- paulscherrerinstitute/ecmccfg: Module to handle configuration scripts for EtherCATMotion Controller (ECMC)
- epics-modules/asyn: EPICS module for driver and device support
- EuropeanSpallationSource/motor: APS BCDA synApps module: motor
- pantor/ruckig: Motion Generation for Robots and Machines.
- EtherLab / EtherCAT Master · GitLab
构建顺序
- epics-base
- asyn
- motor
- etherlab
- ruckig
- ecmc
epics-base
正常交叉编译。
asyn
正常交叉编译。
motor
配置如下:
| |
| |
etherlab
需要内核源码头文件才能编译,和EPICS不相关。
ruckig 编译
机器人运动控制库。
配置交叉编译工具链
| |
编译步骤
| |
ecmc
把下载的exprtk解压到exprtkSupport目录下(也可以用git pull下来)。
配置如下:
| |
修改devEcmcSup/Makefile
| |
修改devEcmcSup/motion/ecmcTrajectoryS.h
| |
修改ecmcExampleTop/configure/RELEASE.local
| |
修改ecmcExampleTop/ecmcIocApp/src/Makefile
| |
编译的时候需要指定使用c++17的标准,不然有一些语法不支持,应该是ruckig库比较新。
添加CPPFLAGS=-std=c++17
| |
使用方法
主要使用ecmccfg软件包提供的预编写脚本进行EtherCAT主站、从站配置。
修改IOC环境变量配置iocBoot/iocExample/envPaths:
| |
修改启动脚本iocBoot/iocExample/st.cmd:
| |
ecmcXXxxxx.cmd:从站配置脚本ecmcXXxxxx.substitutions:记录(records)
参考链接