010.二次开发Linuxcnc(03)使用自己创建pin触发home

一.开发需求
1.创建一个管脚名(pin)叫做joint.0.home-start,通过这个来触发回原点操作,但是后来发现通过指令halcmd show | grep home发现其中有一个pin和我想创建的这个管脚作用很相似(这个管脚halui.joint.0.home),于是我试了一下将这个设置为1对应的轴就可以触发回原点操作,以上回原点正常的情况下都是在修改源码的时候,但是我用修改的源码触发回原点操作会卡死。
2.我的思路是在回原点触发的时候就不执行我修改的那部分代码
在这里插入图片描述
3.但是遇到一个问题未经过改造的Linuxcnc源码,会有个问题回过一次原点,就不能回第二次了,回第二次就会出现报错如下图:
在这里插入图片描述
修改代码解决(注释掉这个报错)
在这里插入图片描述
4.根据回原点的示波器波形可得到:
在这里插入图片描述
当回原点过程中管脚(pin),joint.0.home-state是不为0的我们就可以利用这一点来判断如果这个不为0那么就是在回原地过程中那么我们就不执行我们新增的那三行代码(free-cmd,vel,motion-enable),则执行原有代码中的三行代码,当这个joint.0.home-state为0的时候再执行我们新增加的三行代码。

5.自定义两个管脚来控制快速回原点和慢速回原点的速度大小(慢速joint->home_latch_vel),(快速joint->home_search_vel)别问我怎么知道的(茄子)。
先创建两个管脚joint.0.home-latch-veljoint.0.home-search-vel,这里模仿joint.%d.free-pos-cmd这个的创建就好了。然后再将hal管脚数据拷贝到joint struct结构体中就好了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值