美文网首页
运动控制器5:GRBL的初始化,从U盘开始运行

运动控制器5:GRBL的初始化,从U盘开始运行

作者: 吴松乾 | 来源:发表于2017-12-27 15:16 被阅读0次

    GRBL在上电之后要进行初始化,初始化完成以后,如果之前有存储一个执行的位置,则重新上电需要在之前存储的位置处开始时,先调用此参数作为开启位置。

    上电以后,先GRBL系统设置结构体的标志清空,memset(&sys, 0, sizeof(sys));

    typedef struct {

      uint8_t abort;                //系统中止

      uint8_t state;                // GRBL的当前状态

      volatile uint8_t execute;      //系统运行状态

      int32_t position[N_AXIS];      // 实时位置

      uint8_t auto_start;            // 自动重启

    } system_t;

    然后将abort和state设置为初始化运行后,进行init_grbl初始化。

    在init_grbl中,初始化如下模块:

    调度器初始化

    解析器初始化

    协议初始化

    主轴初始化

    冷却剂初始化

    限位器初始化

    步进子系统参数初始化

    然后同步一下控制系统的位置值sys_sync_current_position,将当前位置设置为逻辑原点。

    然后系统清一下报警和上电完成指示后,返回一个调试的信息。

    如果上电之前有保存的轨迹,则把开始启动行从存储器中读出以后,再进行执行,函数名为:

    settings_read_startup_line里面调用了存储函数memcpy_from_eeprom_with_checksum。

    之后进行系统的上电,系统上电用到了一个很好的电路,如下:

    24V上电原理图

    上电需要两个引脚进行控制,只有同时设置时,上电才会完成,完成上电以后,POWER_IN引脚拉低,指示24V上电完成。

    #define PWR_ON    GPIO_SetBits(GPIOE, GPIO_Pin_14);GPIO_ResetBits(GPIOE, GPIO_Pin_15)

    #define PWR_OFF  GPIO_ResetBits(GPIOE, GPIO_Pin_14);GPIO_SetBits(GPIOE, GPIO_Pin_15)

    继续确认一下单片机时钟稳定以后,发送调试指令:BOOT完成。

    然后挂载一下U盘,我们需要从U盘中读取G代码进行解析执行,判断完成U盘挂载,并输出U盘的剩余容量以后,蜂鸣器输出,同时给冷却液通电,也可以接风扇,输出全部通过光耦,光耦输入为3.3V信号,输出为24V驱动MOS,MOS型号可选SI2302(待定)。

    然后读一下主板的设置,如果ID=1,则确认是从U盘开始执行。

    ReadTestboardID,GPIO_ReadInputDataBit

    然后进入最重要的函数WorkingFromSDfile:才U盘读取G代码解析执行驱动步进驱动器

    相关文章

      网友评论

          本文标题:运动控制器5:GRBL的初始化,从U盘开始运行

          本文链接:https://www.haomeiwen.com/subject/bzeugxtx.html