【LinuxCNC】【学习笔记】EMCTASK模块

工作原理:

  1. 主程序周期性调用 emcTaskPlan() 和emcTaskExecute()
  2. emcTaskPlan()读取新的指令,根据工作模式(Manual/Auto/MDI)或者状态(ESTOP/ON)决定做什么。很多指令立即进入子系统(Motion/IO)。在Auto模式,解释器会被调用,interp_list被NML指令附加。
  3. emcTaskExecute() 执行巨大的execState分支,如果执行完成,它会从interp_list获取下一个项目,并将execState设置成其前置提条件(比如等待运动、等待IO)。一旦前提条件被满足,它就会发布该命令,并把execState设置为后置条件。一旦后置条件被满足,它就会去处理下一条interp_list中的指令,以此类推。
  4. 前置条件和后置条件只会在interp_list中的指令的结合处处理。即时指令没有任何前置条件或后置条件。
  5. 此时此刻,本文件中没有任何条件任何东西到interp_list上的东西了。这一点会改变,例如当为jog或者Home指令定义前置和后置条件。完了以后,切记相应的Abort指令清除interp_list
  6. 单步执行在checkPreconditions()中作为第一个处理 条件。 如果我们处于单步模式,被变量’stepping’标识,我们将状态设置为waiting-for-step。 这会轮询变量’steppingWait’(单步指令会将其重置为0,指令发布之后设置为1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值