CN115576559A - 一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法 - Google Patents
一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法 Download PDFInfo
- Publication number
- CN115576559A CN115576559A CN202211105173.0A CN202211105173A CN115576559A CN 115576559 A CN115576559 A CN 115576559A CN 202211105173 A CN202211105173 A CN 202211105173A CN 115576559 A CN115576559 A CN 115576559A
- Authority
- CN
- China
- Prior art keywords
- code
- data
- ethercat
- file
- buffer area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,涉及自动化控制领域,所述上位机采用Windows数控系统,本方法将G代码文件导入到上位机G代码编译软件中,G代码编译软件对输入的G代码文件检查编译并生成指定格式的中间数组文件,SSHTest软件再将中间数组文件从上位机传输到主站控制器中。G代码中间数组文件传入主站控制器后通过软件将其解析、运算并传输给EtherCAT程序模块,利用信号量和互斥锁管理缓冲区中大量G代码数据的存取过程。各轴运动数据通过EtherCAT协议高频率周期性地传输给伺服驱动器。所述伺服驱动器支持EtherCAT协议,所述运动轴由伺服驱动器驱动。
Description
技术领域
本发明涉及自动化控制领域,具体涉及大型G代码数据处理技术。
背景技术
目前,国内的高端设备多利用国外的高端运动控制器作为运动控制核心,因此在国内高端制造装备技术领域亟需自主创新的运动控制解决方案。EtherCAT总线技术具有实时性好、传输效率高、通信周期短、同步性能好等特点,与高端机床设备的运动控制需求相适应,因此,对EtherCAT总线型运动控制系统方面研究具有重要意义。
对于高端的数控机床设备来说,通常需要加工一些精密或复杂零件,例如在进行超精密机床加工制造时往往由于工件精度要求高,形状复杂,加工表面较大等原因需要编写大型的 G代码文件来控制机床各轴运动,往往G代码文件可达几百MB甚至几十GB的大小。但是如此大型的G代码数据量的处理和传输如果没有恰当的方法进行管理将会严重影响运动控制系统中的运算及处理速度,从而将严重降低工件的加工精度,因此在研究EtherCAT总线型运动控制系统过程中需要解决系统中大型G代码数据的处理和传输问题。
发明内容
本发明是为了解决现有EtherCAT总线型运动控制系统中大型G代码数据的处理和传输问题,从而提供一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法。
一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征是:所述方法包括以下步骤:
步骤一、将G代码文件导入到上位机的G代码编译软件中,所述G代码编译软件自动对导入的所述G代码格式和语法进行检查,若出现报错则根据报错内容则进行修改,并将修改后的G代码文件再次通过G代码编译软件检查其格式和语法,直至无报错后编译生成G 代码中间数组文件;
步骤二、上位机通过内嵌在其中SSHTest软件,在SSH2协议下将步骤一生成的G代码中间数组文件传输给主站控制器;
步骤三、所述主站控制器中的Linux进程获取上位机传输来的中间数组文件中的内容并将其通过Xenomai内核提供的XDDP协议传输给Xenomai进程;
步骤四、所述Xenomai进程对接收到的所述中间数组文件中的内容按行进行数据提取,并在数据传输控制器中对提取的数据利用插补算法进行运算;获得所述中间数组文件中的各轴数据;
步骤五、将步骤四获得的所述中间数组文件中的各轴数据保存在环型队列形式的缓冲区中,EtherCAT程序模块从缓冲区中获取到各轴的具体数据;
步骤六、在所述EtherCAT程序模块中的EtherCAT程序利用信号量和互斥锁的机制维护缓冲区中的数据,保证缓冲区中的数据能够被快速安全得存入和取出;
步骤七、所述EtherCAT程序以设定的通信周期250μs将数据通过EtherCAT协议下发给各轴伺服驱动器;
步骤八、各伺服驱动器接收到数据后根据G代码文件的内容驱动各轴进行运动,完成一次EtherCAT总线型运动控制系统的大型G代码数据处理和传输。
本发明取得的有益效果如下:
(1)本发明能够在上位机中独立完成G代码的编译工作,再由SSHTest软件将编译生成的G代码中间数组文件传输给主站控制器,G代码的编译与主站控制器的运算处理在台设备上进行,上位机G代码编译软件的编译过程不会影响到主站控制器的性能;
(2)本发明解决了在EtherCAT总线型运动控制系统研究过程中大型G代码的数据存储问题,在主站控制器中利用较小的内存空间来存储运算过程中的G代码数据,降低了对主站控制器的硬件性能要求;
(3)本发明解决了主站控制器中两个G代码处理线程的线程同步问题,双线程在处理大型G代码数据量时能够合理有序地操作数据缓冲区,保证了程序运行的安全稳定性。
(4)本发明利用Xenomai实时扩展内核对控制器操作系统进行了实时性扩展,其硬实时的特点能够保证控制器中的实时程序稳定运行,减少由于系统任务调度延迟对加工造成的误差。
(5)本发明使用EtherCAT总线协议实现控制器与伺服驱动器之间的通信,能够保证通信的实时性和同步性,从通信方面大幅提高运动控制系统的加工精度。
附图说明
图1是本发明基于EtherCAT总线的超精密数控系统的大型G代码数据处理和传输过程示意图;
图2是本发明G代码编译软件设计流程示意图;
图3是本发明G代码编译器软件界面示意图;
图4是本发明G代码编译器编译信息提示界面示意图;
图5是本发明SSHTest软件界面示意图;
图6是本发明XDDP跨域通信原理示意图;
图7是本发明缓冲区的结构原理示意图;
图8是本发明G代码插补数据生产消费关系示意图;
图9是本发明G代码数据处理任务优先级设定示意图;
图10是本发明双实时任务同步处理G代码数据过程示意图;
具体实施方式
具体实施方一、以下结合附图1-10对本实施方式及本申请做专利进一步说明:
本发明公开了一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,所述方法包括包括以下步骤:
步骤一、将G代码文件导入到上位机的G代码编译软件中,所述G代码编译软件自动对导入的所述G代码格式和语法进行检查,若出现报错则根据报错内容则进行修改,并将修改后的G代码文件再次通过G代码编译软件检查其格式和语法,直至无报错后编译生成G 代码中间数组文件;
步骤二、上位机通过内嵌在其中SSHTest软件,在SSH2协议下将步骤一生成的G代码中间数组文件传输给主站控制器;
步骤三、所述主站控制器中的Linux进程获取上位机传输来的中间数组文件中的内容并将其通过Xenomai内核提供的XDDP协议传输给Xenomai进程;
步骤四、所述Xenomai进程对接收到的所述中间数组文件中的内容按行进行数据提取,并在数据传输控制器中对提取的数据利用插补算法进行运算;获得所述中间数组文件中的各轴数据;
步骤五、将步骤四获得的所述中间数组文件中的各轴数据保存在环型队列形式的缓冲区中,EtherCAT程序模块从缓冲区中获取到各轴的具体数据;
步骤六、在所述EtherCAT程序模块中的EtherCAT程序利用信号量和互斥锁的机制维护缓冲区中的数据,保证缓冲区中的数据能够被快速安全得存入和取出;
步骤七、所述EtherCAT程序以设定的通信周期250μs将数据通过EtherCAT协议下发给各轴伺服驱动器;
步骤八、各伺服驱动器接收到数据后根据G代码文件的内容驱动各轴进行运动,完成一次EtherCAT总线型运动控制系统的大型G代码数据处理和传输。
优选地,在所述步骤一中的G代码编译软件在进行大型G代码文件编译时,G代码编软件具有自动检错报错功能,方便用户根据提示查找和改正G代码中的错误,同时G代码编译软件中能够进行文件保存,编译生成的G代码中间数组文件能够按预设规则自动命名并保存在指定位置。
优选地,在步骤二中SSHTest软件的功能是:针对运动控制系统数据传输过程中的上位机和主站控制器通信,用于将G代码中间数组文件以预设文件名传输到主站控制器的指定路径中。
优选地,在所述步骤三中,XDDP协议是:Xenomai实时扩展内核中提供的Linux和Xenomai进程间的跨域通信方式,为不破坏Xenomai进程中任务的实时性,通过Linux进程读取G代码中间数组文件的内容,然后将读到的字符串逐行通过XDDP协议发送给Xenomai 进程。
优选地,为保证Xenomai进程中的数据量能够满足后方数据处理速度和EtherCAT总线 250μs周期的通信速度,将XDDP协议通信周期设定为1μs,即每1μs可接受一行G代码内容。
优选地,在所述步骤五中,由于插补及插补之前的数据传输速度快,EtherCAT通信速度相对较慢,因此建立了数据的缓冲区;由于G代码中数据传输需要满足先入先出的要求,因此数据存取利用队列实现;又由于G代码数据量很大,因此缓冲区数据存储采用环型队列实现。
优选地,在所述步骤四至步骤五中,Xenomai进程中编写一个插补线程用于接收Linux 端传来的数据后进行插补运算,并将运算所得一组数据插入缓冲区;Xenomai进程中编写另一个EtherCAT线程用于从缓冲区中取出数据,并将数据内容通过EtherCAT协议从主站控制器传给驱动器;插补线程和EtherCAT线程处于同步运行的状态。
优选地,在所述步骤五中,在缓冲区建立10000组数据空间,每组空间内可存放EtherCAT 进行一次周期通信的数据,整个缓冲区所占空间小于2MB,能够循环存取无限组的G代码数据。
优选地,在所述步骤六中,设置两个信号量,分别用于管理插补线程和EtherCAT线程,两个信号量可根据缓冲区中空间的状态来控制缓冲区中数据的插入和取出,缓冲区状态分为空、正常和满三种;互斥锁可避免两个线程同时对缓冲区进行操作造成程序崩溃,保证两个线程在同步运行的过程中有序操作缓冲区。
优选地,在所述步骤七中,EtherCAT总线支持使用对象字典,EtherCAT程序可取出缓冲区中的数据附值给数据对象,该数据即可通过网线传输给特定驱动器的相应对象。
优选地,在所述步骤八中,本发明使用的伺服驱动器应为支持EtherCAT总线协议的驱动器。
工作原理:G代码数据在开发的数控中处理和传输流程如图1中所示,上位机中开发了 G代码编译软件,对导入的G代码文件进行编译并生成中间数组文件。同时在上位机中开发了SSHTest软件,利用SSH协议将编译生成的中间数组文件传输给控制器。Linux进程解析中间数组文件内容并通过XDDP协议将Linux域中的数据传入到Xenomai域中,Xenomai域中创建实时线程对接收到的数据进行处理。G代码数据是通过字符串的方式传入到Xenomai域中,字符串处理函数将字符串中的数据按行解析并插入临时结构体中,供插补函数调用进行插补运算。插补函数将运算后产生的数据依次插入缓冲区中,通过互斥锁和信号量维护缓冲区以及插入数据的插补函数和取出数据的EtherCAT程序,EtherCAT程序检测到缓冲区中有数据后启动数据传输,各轴相对应的G代码数据以250μs的通信频率通过EtherCAT协议传输给从站驱动器设备,驱动器可驱动各轴开始按照G代码中的数据执行任务。
G代码编译软件的工作流程如图2所示,先获取G代码文件内容,然后对获取的字符串进行简单处理;对每行的代码调用函数进行行处理;调用函数进行语法处理和检查,检查以行为单位储存数值的数据结构中是否存在功能字的语法冲突;将每行中的数据调用函数插入到中间代码数组中;错误和警告数据的处理。
G代码编译软件的软件界面如图3所示,软件具备文件管理功能、G代码在线显示和编辑功能、G代码编译功能。当需要对某个G代码文件编译时,首先点击打开按钮进入文件管理界面,找到文件在电脑中保存的位置,点击确定即可在软件界面的文本框中看到文件的具体路径,同时软件能够读取到文件中的内容,并将内容显示到软件界面右侧的G代码编辑框中。可在G代码编辑框中查看G代码文件中的内容,也可直接在编辑框中对内容进行修改,修改过后点击保存即可将修改的内容同步到G代码文件中。检查代码无误后可点击编译按钮实现对G代码的编译。
点击编译后,软件自动弹出程序编译信息界面,界面中主要给出了G代码编译的错误信息。当G代码内容存在问题时,弹出的信息界面如图4所示,界面中给出了G代码文件的名称、错误或警告所在的行数、错误或警告的编码、错误或警告的提示语,以及程序中错误个数和警告个数。当G代码内容正确无误时,提示程序中有0错误、0警告,表示G代码编译成功。
本发明的G代码编译软件设定了自己的一套文件保存方案。软件编译完成输出的中间数组文件自动保存在预先设定好的文件路径,文件所在的文件夹名称以编译完成时的“年-月- 日”组成。为避免保存的文件出现命名相同问题,程序中设定中间数组文件的名称以编译完成时的“时-分-秒”组成。当完成一次G代码编译后,用户即可到指定的路径下,在对应的日期文件夹下寻找到对应时刻的中间数组文本文件。
SSHTest软件界面如图5所示,在远程登录连接成功的前提下,点击传输按钮可打开上位机的文件管理界面,从上位机中找到需要传输的G代码编译后的文件,确定后即可在软件界面的路径编辑栏中获取该文件的具体位置。点击文件传输按钮,程序开启文件传输线程,为了使控制器接收到文件之后能够更加方便快捷的自动找到文件的位置,SSHTest软件设定了文件在主站控制器中保存的具体路径和文件名称。
对于上位机中传来的中间数组文件,主站控制器需要对其进行文件操作获取文件内容。控制器中具有Linux和Xenomai双内核,若直接调用Xenomai实时任务处理文件则会破坏实时任务本身的实时性。Xenomai提供了XDDP跨域通信协议,本发明通过Linux非实时进程获取文件内容并以字符串的形式通过XDDP传输给Xenomai实时进程。
XDDP跨域通信的原理图如图6所示,Linux进程打开中间数组文件依次获取每行内容保存到字符串中,然后通过绑定的XDDP通信设备端口发送给Xenomai进程。Xenomai进程里分了两个实时线程,分别为插补线程和EtherCAT线程。插补线程中循环接收字符串,并设定循环周期为1μs,然后对每次接收到的字符串进行解析,解析出的G代码数据存入到临时的结构体中,实时插补程序调用结构体中的数据进行插补运算。
由于插补运算生成数据的速度快于EtherCAT总线数据下发的速度,因此需要设置缓冲区储存多余的轴数据。为满足先入先出的原则以及大型G代码数据量的储存,本发明使用了环型队列的方式作为缓冲区,缓冲区中设置了10000个单元,缓冲区的结构原理如图7所示。
缓冲区建立之后,需要判断缓冲区是否为空或满,出现空或满的情况又应该怎么办。本文设计的缓冲区由插补任务来生产数据,由EtherCAT任务来消费数据,所以此类问题属于生产者和消费者问题,其关系如图8所示。本发明借助了信号量来处理该问题,信号量用于多线程的任务同步,它可实现在某个线程完成了某个特定的动作的时候,告诉其他的线程,使其他线程进行其他的工作。
为操作缓冲区的两个实时线程建立两个信号量,分别为生产者信号量psem和消费者信号量csem。对于生产者来说,它需要缓冲区具有空间才能生产数据,因此psem的资源为缓冲区的空间,在初始化psem的时候将资源数设为10000;对于消费者来说,他需要缓冲区具有数据才能执行其自身的任务,因此csem的资源为缓冲区中的数据,在初始化csem的时候将其资源数设为0。当某个信号量的资源为零时,信号量函数会阻塞信号量对应的线程,当该信号量重新获得资源时,线程阻塞取消。在程序刚开始运行时,缓冲区处于没有数据的状态,即psem资源数为10000,生产者线程会继续生产插补数据,而csem资源数为0,消费者线程由于没有资源会在初始阶段暂时阻塞。当生产者产生一个数据时,psem的资源数减1,psem 会给csem一个信号使其资源数加一,从而唤醒消费者线程。由于生产者生产速度快于消费者消耗速度,缓冲区会在一段时间后填满数据,这时候psem资源数为0,生产者线程暂时阻塞不能生产数据,而csem资源数为1000,EtherCAT任务可以不断消耗数据。当消费者消耗掉一个数据时,csem资源数减1,csem给psem一个信号使其资源数加一,从而唤醒生产者线程,生产者开始继续生产数据,如此循环实现整个缓冲区的数据存取。
插补程序和EtherCAT通信程序均有很高的实时性要求,Xenomai为其提供了专用的实时任务管理接口,可以将两个程序分别放入两个创建好的实时任务中执行。文发明中创建了Task A和Task B两个实时任务,其中Task A用来执行插补任务,而Task B用来执行EtherCAT任务。任务创建时可以根据需要为任务设定优先级,如图9所示,文中设定Task A的优先级为 98,Task B的优先级为99。
在任务运行时,优先级高的任务会优先抢占任务执行所需的资源。由于EtherCAT任务需要确保通信周期的稳定性,因此为其设定了最高优先级;插补任务需要保证其具有很高的插补运算速度以满足EtherCAT任务的数据消耗,因此为其设定了次高优先级;其他普通的任务若与高优先级任务有资源冲突,则需要等待高优先级释放其所需资源时才能执行。
Task A和Task B在同步执行的过程中,设定插补运算和EtherCAT通信是同时进行的,但是由于两个任务共享缓冲区的数据资源,势必会出现插补任务在操作缓冲区的同时,EtherCAT通信任务也在对缓冲区进行操作,这样就会造成数据混乱,以至于程序运行出错。因此要确保两个任务在整体上是同步的,但具体到时间点时,两个任务按顺序对缓冲区数据进行操作。
互斥锁是线程同步的常见方法,当一个线程锁住一个代码块时,其他线程遇到该互斥锁会被阻塞住,只有当加锁的线程执行解锁后,其他的线程才能抢占互斥锁来执行代码。这里同样可以利用互斥锁来实现两个任务对共享空间的有序访问。Task A和Task B对插补数据的处理过程如图10所示,Task A中,插补算法不断产生插补数据,然后将产生的插补数据进行封装,插入到预先建立好的缓冲区中,在进行插入动作前,Task会对缓冲区加锁,此时Task B是不能从缓冲区中取出数据的,由于插数据的速度很快,因此缓冲区加锁对EtherCAT周期造成的影响是及其微小的。Task A插完数据后对缓冲区解锁,Task B即可对缓冲区加锁来取出数据,此时Task A是无法操作缓冲区的,Task B解锁后会先对数据解包,然后进入一个 EtherCAT周期间歇,在间歇内一直由Task A对缓冲区进行操作,一旦Task B到达下一个周期时间点,由于其具有较高优先级,解锁状态下Task B会优先抢占互斥锁对缓冲区进行操作,如此循环实现对插补数据的整个处理过程。
EtherCAT程序从缓冲区中依次取出各轴的数据并赋值给从站设备对应的数据对象,然后以250μs的周期实时的下发给伺服驱动器。伺服驱动器支持EtherCAT协议,能够根据主站发送的数据驱动运动轴执行相应的动作。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征是:所述方法包括以下步骤:
步骤一、将G代码文件导入到上位机的G代码编译软件中,所述G代码编译软件自动对导入的所述G代码格式和语法进行检查,若出现报错则根据报错内容则进行修改,并将修改后的G代码文件再次通过G代码编译软件检查其格式和语法,直至无报错后编译生成G代码中间数组文件;
步骤二、上位机通过内嵌在其中的SSHTest软件,在SSH2协议下将步骤一生成的G代码中间数组文件传输给主站控制器;
步骤三、所述主站控制器中的Linux进程获取上位机传输来的中间数组文件中的内容并将其通过Xenomai内核提供的XDDP协议传输给Xenomai进程;
步骤四、所述Xenomai进程对接收到的所述中间数组文件中的内容按行进行数据提取,并在数据传输控制器中对提取的数据利用插补算法进行运算;获得所述中间数组文件中的各轴数据;
步骤五、将步骤四获得的所述中间数组文件中的各轴数据保存在缓冲区中,EtherCAT程序模块从缓冲区中获取到各轴的具体数据;
步骤六、在所述EtherCAT程序模块中的EtherCAT程序利用信号量和互斥锁的机制维护缓冲区中的数据,保证缓冲区中的数据能够被快速安全得存入和取出;
步骤七、所述EtherCAT程序以设定的通信周期250μs将数据通过EtherCAT协议下发给各轴伺服驱动器;
步骤八、各伺服驱动器接收到数据后根据G代码文件的内容驱动各轴进行运动,完成一次EtherCAT总线型运动控制系统的大型G代码数据处理和传输。
2.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤一中的G代码编译软件在进行大型G代码文件编译时,G代码编软件具有自动检错报错功能,方便用户根据提示查找和改正G代码中的错误,同时G代码编译软件中能够进行文件保存,编译生成的G代码中间数组文件能够按预设规则自动命名并保存在指定位置。
3.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在步骤二中SSHTest软件的功能是:针对运动控制系统数据传输过程中的上位机和主站控制器通信,用于将G代码中间数组文件以预设文件名传输到主站控制器的指定路径中。
4.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤三中,XDDP协议是:Xenomai实时扩展内核中提供的Linux和Xenomai进程间的跨域通信方式,为不破坏Xenomai进程中任务的实时性,通过Linux进程读取G代码中间数组文件的内容,然后将读到的字符串逐行通过XDDP协议发送给Xenomai进程。
5.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤五中,由于插补及插补之前的数据传输速度快,EtherCAT通信速度相对较慢,因此建立了数据的缓冲区;由于G代码中数据传输需要满足先入先出的要求,因此数据存取利用队列实现;又由于G代码数据量很大,因此数据存储采用环型队列实现。
6.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤四至步骤五中,Xenomai进程中编写一个插补线程用于接收Linux端传来的数据后进行插补运算,并将运算所得一组数据插入缓冲区;Xenomai进程中编写另一个EtherCAT线程用于从缓冲区中取出数据,并将数据内容通过EtherCAT协议从主站控制器传给驱动器;插补线程和EtherCAT线程处于同步运行的状态。
7.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤五中,在缓冲区建立10000组数据空间,每组空间内可存放EtherCAT进行一次周期通信的数据,整个缓冲区所占空间小于2MB,能够循环存取无限组的G代码数据。
8.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤六中,设置两个信号量,分别用于管理插补线程和EtherCAT线程,两个信号量可根据缓冲区中空间的状态来控制缓冲区中数据的插入和取出,缓冲区状态分为空、正常和满三种;互斥锁可避免两个线程同时对缓冲区进行操作造成程序崩溃,保证两个线程在同步运行的过程中有序操作缓冲区。
9.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤七中,EtherCAT总线支持使用对象字典,EtherCAT程序可取出环型队列中的数据附值给数据对象,该数据即可通过网线传输给特定驱动器的相应对象。
10.根据权利要求1所述的一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法,其特征在于:在所述步骤八中,本发明使用的伺服驱动器应为支持EtherCAT总线协议的驱动器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211105173.0A CN115576559A (zh) | 2022-09-09 | 2022-09-09 | 一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211105173.0A CN115576559A (zh) | 2022-09-09 | 2022-09-09 | 一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576559A true CN115576559A (zh) | 2023-01-06 |
Family
ID=84580489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211105173.0A Pending CN115576559A (zh) | 2022-09-09 | 2022-09-09 | 一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115576559A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215810A (zh) * | 2023-11-08 | 2023-12-12 | 珠海格力电器股份有限公司 | 一种xddp协议数据传输方法、电子设备及数控机床 |
-
2022
- 2022-09-09 CN CN202211105173.0A patent/CN115576559A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117215810A (zh) * | 2023-11-08 | 2023-12-12 | 珠海格力电器股份有限公司 | 一种xddp协议数据传输方法、电子设备及数控机床 |
CN117215810B (zh) * | 2023-11-08 | 2024-04-19 | 珠海格力电器股份有限公司 | 一种xddp协议数据传输方法、电子设备及数控机床 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5050088A (en) | Production control system and method | |
CN107710086B (zh) | 平移模块、处理模块及控制系统 | |
Yu et al. | An open CNC system based on component technology | |
US4961137A (en) | Method for operating a multiprocessor system for therein establishing a global binary assertion and a multiprocessor apparatus comprising synchronization means for such establishing, in particular for effecting a garbage collection operation | |
CN100429594C (zh) | 一种智能step-nc控制器系统及其实现方法 | |
WO2016130873A1 (en) | Extending a programmable logic controller with apps | |
CN109347884B (zh) | 一种实时以太网到现场总线的转换方法及装置、存储介质 | |
CN109983411B (zh) | 程序模块的流程控制 | |
CN102354155B (zh) | 开放式数控系统的实时内核及刀路曲线的实时控制方法 | |
WO2013013522A1 (zh) | 可重构计算机数字控制系统与数字控制方法、重构方法 | |
CN115576559A (zh) | 一种EtherCAT总线型运动控制系统的大型G代码数据处理和传输方法 | |
CN108415740B (zh) | 一种应用于数据分析任务的工作流调度方法 | |
CN102540973B (zh) | 一种用于数控系统的命令多发机制的实现方法 | |
US20130081054A1 (en) | Method for Enabling Sequential, Non-Blocking Processing of Statements in Concurrent Tasks in a Control Device | |
CN115599714A (zh) | 一种多线程同步的车端数据采集方法及装置 | |
CN114968196A (zh) | 基于codesys软件的开发平台架构 | |
US10095564B2 (en) | Systems and methods for enabling dynamic calls via filtering, grouping, and substitution mechanisms | |
CN112748697B (zh) | 基于CoDeSys控制器的脉冲轴控制方法 | |
CN213545092U (zh) | 一种基于EtherCat总线的控制系统 | |
CN113985826B (zh) | 面向多运算周期的实时值加载方法和系统、设备及存储介质 | |
CN109932997A (zh) | 一种可编程逻辑控制器内核系统 | |
CN114756492B (zh) | 适用于多种运载器的1553b数据总线处理方法 | |
Guo et al. | A survey of real-time automotive systems | |
CN111830895B (zh) | 基于plc阵列的数据调度方法、介质、plc设备及调度系统 | |
CN111988113B (zh) | 一种EtherCAT协议和ASI协议通讯系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |