实现数控系统中指令与硬件交互的方法

阅读: 评论:0

著录项
  • CN201010553517.5
  • 20101122
  • CN102478813A
  • 20120530
  • 大连创达技术交易市场有限公司
  • 孙文秀
  • G05B19/19
  • G05B19/19

  • 辽宁省大连市西岗区双兴街25-1号102室
  • 中国,CN,辽宁(21)
摘要
实现数控系统中指令与硬件交互的方法,其特点是:所述的系统中设置有一个环形缓冲区,所述的方法包括定义指令、环形缓冲区内存申请、指令写入、指令读取。本方法中由于在数控机床系统中采用环形缓冲区内存共享,并使用缓冲区中只有一个读写,这样我们的数控机床系统节省了R0到R3传输花费,提高了性能还节省空间,由于我们定义的缓冲区,只要求一个线程读操作,一个线程写操作,这样该数控机床系统对于指令交互是线程安全的。
权利要求

1.实现数控系统中指令与硬件交互的方法,包括以下步骤:

    1)定义指令

    1a)定义一个指令内存空间块,通常是最大指令的大小,在各个指令中都是一样的;

    lb)使用一个标识符,便于指令识别;

1c)根据指令标识符,在指令中放置不同的指令信息;

1d)指令都有一个标示为什么样类型指令的标示符;指令中带有相关指令信息的数据区;

    2)环形缓冲区内存申请、指令写入、指令读取;

    2a)系统定义读数据位置指针和写数据位置指针;

    2b)系统申请一块内存空间,其空间大小是指令的内存空间倍数;

    2c)系统将读数据位置指针和写数据位置指针都指向上一步骤申请的内存空间的开始位置;

2d)在RO申请上述数据结构内存空间,然后把其数据指针传送到应用程序R3;

2e)环形缓冲区的空间大小为L,L=Nn,其中,N为系统定义的指令个数,n为指令的空间大小;

    3)指令写入

    3a)系统进入指令写入操作;

    3b)判断环形缓冲区中是否已经满了;

    3c)如果环形缓冲区未满,则把指令放入环形缓冲队列中,也就是把指令数据复制到环形缓冲区中;

    3d)如果缓冲区已满,则等待一段时间,返回上述3b)步骤;

    4)指令读取

    4a)系统轮询环形缓冲区中是否有数据可读;

    4b)如果有数据可读,则定义一个指令变量,然后从环形缓冲区中取出一个指令,并把指令数据复制到指令变量中;

4c)如果无数据可读,处理其他操作,然后进入上述4a)步骤。

说明书
技术领域

 本发明涉及数控机床系统领域,特别涉及数控机床系统运动控制领域,具体是一种实现数控系统中指令与硬件交互的方法。

制造业是国民经济的基础产业,制造业的水平高低是衡量一个国家工业发达程度的重要标志。数控机床质量水平高低,关系着国家制造业水平的高低。

 在现有的技术中我们经常使用机床系统进行相应的控制运动操作。在机床控制运动系统中,机床指令发送到机床控制卡中。如果采取传统的方式,那么指令传输方式非常低效。这样就可能达不到我们想要的控制机床运动轨迹。另外由于不断申请内存、释放内存、复制内存等操作,造成了性能的损失。

本发明所要解决的技术问题在于,克服现有技术中存在的问题,提供一种实现数控系统中指令与硬件交互的方法,内存空间可重复使用、容易理解,数据传送安全。适用范围较为广泛的数控机床系统中实现高速指令传输的方法。

为了解决上述问题本发明的技术方案是这样的:

实现数控系统中指令与硬件交互的方法,其特征包括以下步骤:

1)定义指令

la)定义一个指令内存空间块,通常是最大指令内存空间的大小;

1b)使用一个标识符,便于指令识别;

1c)根据指令标识符,在指令中放置不同的指令信息;

2)环形缓冲区内存申请、指令写入、指令读取;

2a)系统定义读数据位置指针和写数据位置指针;

2b)系统申请一块内存空间,其内存空间大小是指令的内存空间倍数;

 2c)系统将读数据位置指针和写数据位置指针都指向步骤2b)申请的内存空间的开始位置;

 2d)在R0申请上述数据结构内存空间,然后把其数据指针传送到应用程序R3;(R0和R3是CPU设定的特权级,分别为R0、R1、R2、R3。R0拥有最高级别,能够访问计数机所有的资源,操作系统运行于此层;R3是最低级别,无法访问系统内核资源,应用程序运行在此层,简单来说R3不能访问R0数据,R0可能访问R3数据);

 3)指令写入

 3a)系统进入指令写入操作;

 3b)判断环形缓冲区中是否已经满了;

 3c)如果环形缓冲区未满,则把指令放入环形缓冲队列中,也就是把指令数据复制到环形缓冲区中;

 3d)如果缓冲区已满,则等待一段时间,返回上述3b)步骤;

 4)指令读取

 4a)系统轮询环形缓冲区中是否有数据可读;

 4b)如果有数据可读,则定义一个指令变量,然后从环形缓冲区中取出一个指令,并把指令数据复制到指令变量中;

 4c)如果无数据可读,处理其他操作,然后进入上述4a)步骤。

 所述指令内存空间块,在各个指令中都是一样的;指令都有一个标识,标识该指令的是具体完成什么功能;指令中带有相关指令信息的数据区。

所述环形缓冲区的空间大小为L,L制n,其中,N为系统定义的指令个数,n为指令的空间大小。

有益效果:采用该发明的实现数控系统中指令与硬件交互的方法,由于在数控机床系统中采用环形缓冲区内存共享,并使用缓冲区中只有一个读写,这样我们的数控机床系统节省了RO到R3传输花费,提高了性能还节省空间,由于我们定义的缓冲区,只要求一个线程用于读操作,一个线程用于写操作,这样该数控机床系统对于指令交互是线程安全的。

下面结合附图和具体实施方式来详细说明本发明;

图l为本发明的写入指令流程。

图2为本发明的读取指令流程。

图3为系统结构流程图。

具体实施方式  

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

  参看图1、图2、图3

  首先对数控机床技术领域中的几个名词进行解释:

  指令——指用于控制板卡的命令信息,在驱动中被解释成有意义的信息。

逻辑正方向——指环形缓冲区中先存入数据到后存入数据在环形缓冲区中的排列的逻辑方向。

逻辑负方向——指环形缓冲区中先存入数据到后存入数据在环形缓冲区中的排列的逻辑方向的反方向。

该实现数控系统中指令与硬件交互的方法,其特点是:所述的系统中设置有一个环形缓冲区,所述的方法包括定义指令1)、环形缓冲区内存申请2)、指令写入3)、指令读取4)。

 1)所述的定义指令方法包括以下步骤:

 1a)定义一个指令内存空间块,通常是最大指令的大小;

 1b)使用一个标识符,便于指令识别;

 1c)根据指令标识符,在指令中放置不同的指令信息。

 指令在定义是有三个要点:指令所申请内存空间大小在各个指令中都是一样的;指令都有一个表示是何种指令的标识符;指令带有相关指令信息的数据区。

 2)所述的环形缓冲区内存申请步骤:

 2a)系统定义读数据位置指针和写数据位置指针;

 2b)系统申请一块内存空间,其空间大小是指令的内存空间倍数;

 2c)系统将读数据位置指针和写数据位置指针都指向上一步骤申请的内存空间的开始位置;

 2d)在RO申请上述数据结构内存空间,然后把其数据指针传送到应用程序R3;(RO和R3是CPU设定的特权级,分别为RO、R1、R2、R3。R0拥有最高级别,能够访问计数机所有的资源,操作系统运行于此层;R3是最低级别,无法访问系统内核资源,应用程序运行在此层。简单来说R3不能访问R0数据,R0可能访问R3数据)。

 该数控系统中实现环形缓冲区的空间大小L,根据以下公式确定:

    L = Nn

  其中,N为系统定义的指令个数,n为指令的大小。

  3)指令写入步骤:

  3a)系统进入指令写入操作;

  3b)判断环形缓冲区中是否已经满;

  3c)如果环形缓冲区未满,则把指令放入环形缓冲队列中,也就是把指令数据复制到环形缓冲区中。复制步骤如下:

  3c1)如果环形缓冲区有指令,则读数据位置指针与写数据位置指针所指向指令记录不是同一个,如果不是则等待一段时间,返回上述步骤3b);

 3c2)如果写数据指针所指向指令记录的位置与写入读数据位置指令所指向的指令位置单元,在正方向的距离不等于系统预定的指针数1个,如果不是则等待一段时间,返回上述步骤3b);

 3c3)系统将指令中的信息写入到所述的写数据位置指针所指向的记录单元中;

 3c4)系统将读数据位置指针所指向的指令位置向逻辑正方向移动一个单位。

3d)如果环形缓冲区已满,等待一段时间,返回上述步骤3b)中;

4)指令读取步骤:

4a)系统轮询环形缓冲区中是否有数据可读;

4b)如果有数据可读,则定义一个指令变量,然后从环形缓冲区中取出一个指令,并把指令数据复制到指令变量中。写数据步骤如下:

4b1)判断所述的读数据位置指针所指向的指令位置与写数据位置指针所指向的指令位置不一致,且读数据位置指针与首数据位置指针所指向的指令位置不一致;如果不一致,则进入下一步,否则系统将进入上述步骤4a)中;

4b2)如果读数据指针的逻辑正方向的下一个指令位置指针与写入数据位置指针不一致。如果不一致,则进入下一步,否则系统将进入上述步骤4a)中;

4b3)系统把此时的读数据位置指针的指令信息读取出来,并放入到上述步骤4b)申请的变量中;

4b4)系统将读数据位置指针向逻辑正方向移动一个指令单位;

4b5、)系统处理所读取的指令,然后系统进入上述步骤4a)中。

4c)如果无数据可读,等待一段时间,然后进入上述步骤4a)中。

该数控机床系统中实现环形缓冲区中设置有读数据位置指针,写数据位置指针,所述的将数控机床系统中的指令写入到环形缓冲区,包括以下步骤:

1、如果环形缓冲区没有任何指令单元,则读数据位置指针、写数据位置指针指向同一个记录单元;

2、如果环形缓冲区有指令,则读数据位置指针与写数据位置指针所指向指令记录不是同一个;

3、如果写数据指针所指向指令记录的位置与写入读数据位置指令所指向的指令位置单元,在正方向的距离不等于系统预定的指针数一1个;

4、系统将指令中的信息写入到所述的写数据位置指针所指向的记录单元中;

5、系统将读数据位置指针所指向的指令位置向逻辑正方向移动一个单位。

该数控机床系统中实现环形缓冲区中设值有读数据位置指针,写数据位置指针写入,所述的将数控机床系统中的对于环形缓冲进行读取的方式,包括以下步骤:

1、如果所述的读数据位置指针所指向的指令位置与写数据位置指针所指向的指令位置不一致,且读数据位置指针与首数据位置指针所指向的指令位置不一致;

2、如果读数据指针的逻辑正方向的下一个指令位置指针与写入数据位置指针不一致;

3、系统将读数据位置指针向逻辑正方向移动一个指令单位;

4、系统把此时的读数据位置指针的指令信息读取出来。

采用该发明的数控机床系统中实现指令传输方法,由于在数控机床系统中采用环形缓冲区内存共享,并使用缓冲区中只有一个读写,这样我们的数控机床系统节省了RO到R3传输花费,提高了性能还节省空间,由于我们定义的缓冲区,只要求一个线程读操作,一个线程写操作,这样该数控机床系统对于指令交互是线程安全的。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。

本文发布于:2023-04-15 06:43:05,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/87118.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图