当前位置: 首页 > >

LinuxCNC+EtherCAT(7)一个歪果仁做的例子的解释。。。。。

发布时间:

在Youtube上看到了一位国外老兄做的,很不错。


https://www.youtube.com/watch?v=JU2lFg1rwgg


然后,找到了他的HAL和xml文件,如下。


EtherCAT部分的xml文件:























































上述参数是从TwinCAT中的xml文件中get。






可以参考最后的文档。



HAL文件如下。






# Erstellt von stepconf am Tue Jul 16 23:06:39 2013
# ?nderungen an dieser Datei werden beim n?chsten
# Aufruf von stepconf überschrieben.
loadusr -W lcec_conf /root/linuxcnc/configs/roschi_cnc/ethercat_config_estun.xml
loadrt lcec
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt classicladder_rt
loadusr classicladder --nogui custom.clp


addf lcec.read-all servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf lcec.write-all servo-thread
addf classicladder.0.refresh servo-thread


setp lcec.0.0.drivecontrol-1 1
setp lcec.0.0.drivecontrol-2 1


net Xachse_fb lcec.0.0.pos => axis.0.motor-pos-fb
net Xachse_cmd axis.0.motor-pos-cmd => lcec.0.0.poscommand
net Xachse_speed_cmd axis.0.joint-vel-cmd => lcec.0.0.speedcommand



net Xachse_AF axis.0.amp-enable-out => lcec.0.0.drivecontrol-3
net Xachse_torque lcec.0.0.torque


对于上述的解释。





    实时模块加载:loadrt、非实时模块加载:loadusr。使用格式为:loadrt trivkins count=1?param=value。loadrt 命令将运动轨迹规划模块 trivkins 加载于实时空间运行,加载数目为 1,引入参数为 value。添加线程:addf,使用格式为:addf ethercat.read servo-thread。addf 命令将 ethercat驱动模块主函数添加至线程池中运行,servo-thread 按预定周期性调用该函数。参数设置:setp,设置模块中某个引脚或参数为指定值,在模块使用前或在运行过程中均可使用,其使用格式为:setp motion.0.pin-08-out TRUE引脚连接:net、linksp,用于将模块的引脚与引脚或信号与引脚间互连。信号新建:newsig,建立一个指定数据类型的中间连接信号。数据类型包括 bit、s32、u32 以及 float。使用格式为:newsig OutputIO bit
















对于本例子。。。。


net命令,



net Xachse_fb lcec.0.0.pos => axis.0.motor-pos-fb


Xache_fb为信号名字,axis.0.motor-pos-fb为IN管脚,前面为Out管脚,=>前后必须要有空格。


setp命令,例如


setp lcec.0.0.drivecontrol-1 1


将lcec.0.0.drivecontrol-1初值为1









友情链接: