当前位置: 首页 > news >正文

Linuxcnc-ethercat从入门到放弃(1)、环境搭建

项目开源网站 LinuxCNCicon-default.png?t=N6B9https://www.linuxcnc.org/当前release版本2.8.4

Downloads (linuxcnc.org)icon-default.png?t=N6B9https://www.linuxcnc.org/downloads/可以直接下载安装好linuxcnc的实时debian系统,直接刻盘安装就可以了

 安装IgH主站,网上有很多教程可供参考

git clone https://gitlab.com/etherlab.org/ethercat.git

安装linuxcnc-ethercat

git clone https://github.com/sittner/linuxcnc-ethercat

  1. cd linuxcnc-ethercat

  2. sudo make configure

  3. sudo make

  4. sudo install

安装cia402,控制ethercat伺服需要用到

git clone https://github.com/dbraun1981/hal-cia402

cd hal-cia402

sudo compile --install cia402.comp

配置文件放在linuxcnc/configs/sim.axis下

sd710.ini

# This config file was created 2023-07-27 05:34:43.371981 by the update_ini script
# The original config files may be found in the /home/taotech/linuxcnc/configs/sim.axis/sd710.old.old directory[EMC]
# The version string for this INI file.
VERSION = 1.1
MACHINE = EtherCAT Machine
DEBUG = 1[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 0
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python[RS274NGC]PARAMETER_FILE = linuxcnc.var[EMCMOT]EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD =  0
SERVO_PERIOD = 1000000[TASK]
TASK = milltask
CYCLE_TIME = 0.005[HAL]
HALFILE = sd710.hal[HALUI][TRAJ]
AXES = 1
HOME = 0 0 0
COORDINATES = X
LINEAR_UNITS = mm
ANGULAR_UNITS = deg
DEFAULT_LINEAR_VELOCITY = 100
MAX_LINEAR_VELOCITY = 400[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl[KINS]
KINEMATICS = trivkins coordinates=X
#This is a best-guess at the number of joints, it should be checked
JOINTS = 1[AXIS_X]
MIN_LIMIT = -200
MAX_LIMIT = 500
MAX_VELOCITY = 375.0
MAX_ACCELERATION = 2000.0[JOINT_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 375.0
MAX_ACCELERATION = 2000.0
STEPGEN_MAXACCEL = 0
SCALE = 1
FERROR = 1
MIN_FERROR = 2000
MIN_LIMIT = -200
MAX_LIMIT = 500
HOME_DELAY = 50
HOME_VEL = 1
HOME_OFFSET =                    100.0
HOME_SEARCH_VEL =                0.0
HOME_LATCH_VEL =                 0.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             NO
HOME_SEQUENCE = 0

sd710.hal

###########################################################
#
# CIA 402 example snippet Hal
#
######################################################################################################################
# Setup
###########################################################loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTSloadusr -W lcec_conf sd710.xml
loadrt lcec
loadrt cia402 count=1
loadrt pid names=s-pid,0-pid###########################################################
# Functions servo-thread
###########################################################addf lcec.read-all servo-thread
addf cia402.0.read-all servo-threadaddf motion-command-handler servo-thread
addf motion-controller servo-thread
addf s-pid.do-pid-calcs servo-thread
addf 0-pid.do-pid-calcs servo-threadaddf cia402.0.write-all servo-threadaddf lcec.write-all servo-thread#########################################
#nets
#########################################
net emc-enable => iocontrol.0.emc-enable-in
sets emc-enable 1#config#
# Joint 0
#
setp cia402.0.csp-mode 1
setp cia402.0.pos-scale 800#from servo(ethercat) to cia402
net 0-statusword      lcec.0.0.cia-statusword => cia402.0.statusword
net 0-drv-act-pos     lcec.0.0.actual-position => cia402.0.drv-actual-position#from motion to cianet 0-home-index <= joint.0.index-enable  => cia402.0.home
net 0-enable     <= joint.0.amp-enable-out => cia402.0.enable
net 0-amp-fault  => joint.0.amp-fault-in   <= cia402.0.drv-fault
net 0-pos-cmd    <= joint.0.motor-pos-cmd  => cia402.0.pos-cmd
net 0-pos-fb     => joint.0.motor-pos-fb   <= cia402.0.pos-fb
#net 0-home          lcec.0.0.in-5          => joint.0.home-sw-in#from cia402 to servo(ethercat)
net 0-controlword         cia402.0.controlword => lcec.0.0.cia-controlword
net 0-drv-target-pos      cia402.0.drv-target-position => lcec.0.0.target-position

sd710.xml

masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="5">
<slave idx="0" type="generic" vid="00850104" pid="01030507" configPdos="true">
<syncManager idx="0" dir="out"/>
<syncManager idx="1" dir="in"/>
<syncManager idx="2" dir="out">
<pdo idx="1601">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="cia-controlword" halType="u32"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="target-position" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1A01">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="cia-statusword" halType="u32"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="actual-position" halType="s32"/>
</pdo>
</syncManager>
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="250000"/>
</slave>
</master>
</masters>

配置完成后可以启动linuxcnc软件,选择sd710启动

效果参考

linuxcnc-ethercat单轴_哔哩哔哩_bilibiliicon-default.png?t=N6B9https://www.bilibili.com/video/BV1w94y1e7jc/?vd_source=235dd4c4dfb5d45fd9bed45715a82077#reply177527865760

http://www.lryc.cn/news/100490.html

相关文章:

  • 14.Netty源码之模拟简单的HTTP服务器
  • 万年历【小游戏】(Java课设)
  • ad+硬件每日学习十个知识点(9)23.7.20
  • ipmitool 配置BMC的ip
  • C++设计模式::小结(creation)
  • 运维工程师第一阶段windows的学习
  • Docker复习
  • 华为OD机考--食堂供餐--带答案
  • C# 关于使用newlife包将webapi接口寄宿于一个控制台程序、winform程序、wpf程序运行
  • 初识TDMQ
  • UEditor 百度富文本编辑器使用 遇到问题
  • jaeger+elasticsearch(cassandra ) 单机部署以及(400)报错
  • VSCode配置之C++ SQLite3极简配置方案
  • P5725 【深基4.习8】求三角形
  • 分布式消息中间件介绍
  • 【Linux进程篇】冯诺依曼体系
  • 陕西师范大学大学:融合传统与创新的学府之旅
  • HTML <progress> 标签
  • 常用测试工具汇总
  • 【爬虫逆向案例】某道翻译js逆向—— sign解密
  • Verilog语法学习——LV9_使用子模块实现三输入数的大小比较
  • YAML+PyYAML笔记 7 | PyYAML源码之yaml.compose_all(),yaml.load(),yaml.load_all()
  • (css)列表点击前后样式
  • Redis服务优化
  • uniAPP 浙政钉 入门手册
  • flask处理文件上传
  • 教雅川学缠论04-笔
  • Unity3d_post process layer 抗锯齿设置
  • 基于FPGA实现OSD功能
  • Java019-1——面向对象的三大特性