当前位置: 首页 > 专利查询>福州大学专利>正文

PC机+I/O接口数控系统G指令和开关量指令协同方法及装置制造方法及图纸

技术编号:39300642 阅读:11 留言:0更新日期:2023-11-12 15:52
本发明专利技术提出PC机+I/O接口数控系统G指令和开关量指令协同方法及装置,由PC机完成G代码/开关量指令的译码和G代码运动轨迹的粗插补,开关量指令为包括M、S、T指令代码的M代码;由I/O接口卡完成精插补并控制M代码执行;PC机设有译码预处理模块、G代码缓冲区、用于开关量指令缓冲的M代码缓冲区、粗插补模块及粗插补数据缓冲区、用于粗插补数据输出的通道B、用于开关量指令数据输入控制的通道A、用于开关量指令协调的M代码协调模块、用于M代码数据输出控制的通道C;通道A和通道B及通道C的通/闭状态均可控;I/O接口卡设有插补数据缓冲区、精插补模块、M数据缓冲区、M代码执行模块;本发明专利技术能够实现数控系统的高效运行和优化加工效果。现数控系统的高效运行和优化加工效果。现数控系统的高效运行和优化加工效果。

【技术实现步骤摘要】
PC机+I/O接口数控系统G指令和开关量指令协同方法及装置


[0001]本专利技术涉及数控自动化
,尤其是PC机+I/O接口数控系统G指令和开关量指令协同方法及装置。

技术介绍

[0002]随着制造业的不断发展,数控系统已经成为制造业中不可或缺的关键技术之一。研发开放、高性能、智能化、低成本的数控系统是数控
的热点问题。目前,以通用PC机为平台的高性能、高实时性开放式数控系统备受关注。在这个领域,首要问题是必须解决数据加工NC程序中G代码和M、S、T等辅助功能指令的高效译码,以及G代码和开关量指令的协调控制问题。只有解决了这些问题,才能够实现数控系统的高效运行和优化加工效果。

技术实现思路

[0003]本专利技术提出PC机+I/O接口数控系统G指令和开关量指令协同方法及装置,能够实现数控系统的高效运行和优化加工效果。
[0004]本专利技术采用以下技术方案。
[0005]PC机+I/O接口数控系统G指令和开关量指令协同装置,所述控制装置包括PC机和I/O接口卡,由PC计算机完成G代码/开关量指令的译码和G代码运动轨迹的粗插补,所述开关量指令为包括M、S、T指令代码的M代码;由I/O接口卡完成运动轨迹的精插补并控制M代码执行;所述PC机设有译码预处理模块、G代码缓冲区、用于开关量指令缓冲的M代码缓冲区、粗插补模块及粗插补数据缓冲区、用于粗插补数据输出的通道B、用于开关量指令数据输入控制的通道A、用于开关量指令协调的M代码协调模块、用于M代码数据输出控制的通道C;通道A和通道B及通道C的通/闭状态均可控;
[0006]所述I/O接口卡设有插补数据缓冲区、精插补模块、M数据缓冲区、M代码执行模块。
[0007]PC机+I/O接口数控系统G指令和开关量指令协同方法,使用以上所述的PC机+I/O接口数控系统G指令和开关量指令协同装置,用于基于“PC机+I/O接口”结构的开放式数控系统的G指令和开关量指令协同控制,所述协同方法用于数据加工NC程序中G代码和M、S、T辅助功能指令的高效译码,以及G代码和开关量指令的协调控制,包括以下步骤;
[0008]步骤S1、首先将预处理的NC程序中的G代码和M代码通过封装成NMLmsg数据结构格式,其中数据结构包含数据类型type,再通过任务命令处理函数taskCmdHandle(),根据NMLmsg数据结构中的type类型把G代码和M代码分别存入G代码缓冲区和M缓冲区;
[0009]步骤S2、G代码缓冲区的数据发送到粗插补模块进行速度规划和粗插补计算,并将粗插补缓冲区的数据通过通道B发送到I/O接口卡的插补数据缓冲区,由精插补模块实现运动轨迹的控制;M代码缓冲区的数据通过通道A发送到M代码协调控制模块的缓冲区,再经通道C发送到I/O接口卡的M数据缓冲区,并由M代码执行模块执行M、S、T辅助辅助功能指令代码;
[0010]步骤S3、PC机通过控制通道A、通道B、通道C的通/闭状态实现G/M代码正确、有序协
调译码以及控制执行。
[0011]所述的经过译码预处理的NC程序的M、S、T指令代码数据结构设有“前置标识”;在译码过程中,M代码数据的“前置标识”存入G代码缓冲区,用于协调G指令和M指令协同执行;所述通道B的通/闭状态可控,其状态取决于变量值B,变量值B取决于B1变量和B2变量,逻辑关系为B=B1∩B2;
[0012]当B=1时通道B开通,PC机粗插补模块的粗插补缓冲区的数据可以发送到I/O接口卡的插补数据缓冲区;当B=0时,通道B闭合,关闭PC机的粗插补缓冲区与I/O接口卡的插补数据缓冲区的通道,PC机无法发送粗插补数据到I/O接口卡上;
[0013]当出现PC机的粗插补模块的粗插补数据缓冲区要传输的数据为M指令“前置标识”时,置B1=0;当出现M代码协调控制模块要传输的数据为M指令的“结束标识”或M代码协调模块的缓冲区为空时,即意味着PC机完成了当前这条M指令的处理,置B1=1;当I/O接口卡的开关量控制相关接口准备就绪时,置B2=1,否则置B2=0。
[0014]所述的通道A的通/闭状态可控制,其状态取决于变量A的状态,当M代码协调模块的缓冲区数据为空时,或检测到M指令“结束标识”时,置A=1,通道A处于开通状态,M代码缓冲区可以继续向M代码协调模块发送下一条M指令,一旦M代码协调模块接受到一条新的完整的M指令数据,即置A=0即关闭通道A;所述M代码协调模块在任一时刻只接受处理一条开关量指令。
[0015]所述的通道C的通/闭状态可以控制,取决于变量C的状态,当C=1时,通道C开通,M代码协调模块可以向I/O接口卡的M数据缓冲区发送M指令数据,并由I/O接口卡的M代码执行模块执行该M指令;当C=0时,通道C关闭,M代码协调模块无法向I/O接口卡发送M指令数据;
[0016]通道C的状态由状态变量C1、C2、B2决定,其逻辑关系为C=C1∩C2∩B2,即当三个状态变量C1、C2、B2中有任一状态变量为0,则C=0,否则C=1;
[0017]当I/O接口卡的精插补模块已经完成精插补运动轨迹控制,即准备就绪,置C2=1,否则置C2=0;当I/O接口卡的M代码执行模块已完成开关量的执行,并以准备就绪,置B2=1,否则置B2=0;
[0018]当出现PC机的粗插补模块的粗插补数据缓冲区要传输的数据为M指令的“前置标识”时,置B1=0,同时置C1=1;当出现M代码协调模块要传输的数据为M指令“接受标识”,或M代码协调模块的数据缓冲区为空时,即意味着PC机完成了当前这条M指令的处理,置C1=0,同时置B1=1。
[0019]所述粗插补模块和M代码协调模块封装成两个不同的线程,通过互斥锁mutex对全局变量B1,C1进行上锁,同一时间只有粗插补线程或M代码协调线程能够获取互斥锁mutex并对B1、C1进行操作,另外的一个线程等待获取互斥锁mutex的线程释放锁后,才能尝试获取锁,以防止两个线程同时对B1、C1变量操作而产生错误结果。
[0020]所述粗插补模块和M代码协调模块封装成两个不同的线程后,线程间的同步通过使用条件变量来实现,条件变量利用线程间共享的全局变量B1、B2、C1、C2进行同步;条件变量通过允许线程阻塞和等待另一个线程发送信号的方法以弥补互斥锁的不足,使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程解开相应的互斥锁并等待条件发生变化,一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被
此条件变量阻塞的线程,这些线程将重新锁定互斥锁并重新测试条件是否满足。
[0021]粗插补模块封装的粗插补线程要向I/O接口卡传输的数据为M指令代码的“前置标识”时,粗插补线程挂起进行休眠状态,并且只有等待B2=1,即I/O接口卡开关量控制相关端口准备好,以及C2=1,即I/O接口卡已完成精插补的时候,才通过zq_cond.notify_all()函数唤醒正在休眠的M代码协调线程;
[0022]当M代码协调线程检测到要传本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.PC机+I/O接口数控系统G指令和开关量指令协同装置,其特征在于:所述控制装置包括PC机和I/O接口卡,由PC计算机完成G代码/开关量指令的译码和G代码运动轨迹的粗插补,所述开关量指令为包括M、S、T指令代码的M代码;由I/O接口卡完成运动轨迹的精插补并控制M代码执行;所述PC机设有译码预处理模块、G代码缓冲区、用于开关量指令缓冲的M代码缓冲区、粗插补模块及粗插补数据缓冲区、用于粗插补数据输出的通道B、用于开关量指令数据输入控制的通道A、用于开关量指令协调的M代码协调模块、用于M代码数据输出控制的通道C;通道A和通道B及通道C的通/闭状态均可控;所述I/O接口卡设有插补数据缓冲区、精插补模块、M数据缓冲区、M代码执行模块。2.PC机+I/O接口数控系统G指令和开关量指令协同方法,使用权利要求1所述的PC机+I/O接口数控系统G指令和开关量指令协同装置,用于基于“PC机+I/O接口”结构的开放式数控系统的G指令和开关量指令协同控制,其特征在于:所述协同方法用于数据加工NC程序中G代码和M、S、T辅助功能指令的高效译码,以及G代码和开关量指令的协调控制,包括以下步骤;步骤S1、首先将预处理的NC程序中的G代码和M代码通过封装成NMLmsg数据结构格式,其中数据结构包含数据类型type,再通过任务命令处理函数taskCmdHandle(),根据NMLmsg数据结构中的type类型把G代码和M代码分别存入G代码缓冲区和M缓冲区;步骤S2、G代码缓冲区的数据发送到粗插补模块进行速度规划和粗插补计算,并将粗插补缓冲区的数据通过通道B发送到I/O接口卡的插补数据缓冲区,由精插补模块实现运动轨迹的控制;M代码缓冲区的数据通过通道A发送到M代码协调控制模块的缓冲区,再经通道C发送到I/O接口卡的M数据缓冲区,并由M代码执行模块执行M、S、T辅助辅助功能指令代码;步骤S3、PC机通过控制通道A、通道B、通道C的通/闭状态实现G/M代码正确、有序协调译码以及控制执行。3.根据权利要求2所述的PC机+I/O接口数控系统G指令和开关量指令协同方法,其特征在于:所述的经过译码预处理的NC程序的M、S、T指令代码数据结构设有“前置标识”;在译码过程中,M代码数据的“前置标识”存入G代码缓冲区,用于协调G指令和M指令协同执行;所述通道B的通/闭状态可控,其状态取决于变量值B,变量值B取决于B1变量和B2变量,逻辑关系为B=B1∩B2;当B=1时通道B开通,PC机粗插补模块的粗插补缓冲区的数据可以发送到I/O接口卡的插补数据缓冲区;当B=0时,通道B闭合,关闭PC机的粗插补缓冲区与I/O接口卡的插补数据缓冲区的通道,PC机无法发送粗插补数据到I/O接口卡上;当出现PC机的粗插补模块的粗插补数据缓冲区要传输的数据为M指令“前置标识”时,置B1=0;当出现M代码协调控制模块要传输的数据为M指令的“结束标识”或M代码协调模块的缓冲区为空时,即意味着PC机完成了当前这条M指令的处理,置B1=1;当I/O接口卡的开关量控制相关接口准备就绪时,置B2=1,否则置B2=0。4.根据权利要求3所述的PC机+I/O接口数控系统G指令和开关量指令协同方法,其特征在于:所述的通道A的通/闭状态可控制,其状态取决于变量A的状态,当M代码协调模块的缓冲区数据为空时,或检测到M指令“结束标识”时,置A=1,通道A处于开通状态,M代码缓冲区可以继续向M代码协调模块发送下一条M指令,一旦M代码协调模块接受到一条新的完整的M指令数据,即置A=0即关闭通道A;所述M代码协调模块在任一时刻只接受处理一条开关量
=1,I/O接口开关量控制相关接口端部准备好,则置B2=1,K=C2∩B2=1,使B=B1∩B2=1,C=C1∩K=0,进行G代码粗插补数据向I/O接口卡的数据传送,并进行精插补,同时禁止任何M代码传送和执行;当检测到粗插补模块的数据缓冲区要传输的数据为为M指令“前置标识”时,便触发B1=0,C1=1,此时,若I/O接口卡开关量控制相关端口准备好,则B2=1,I/O接口卡已完成“精插补信号”C2=1,K=C2∩B2=1,B=B1∩B2=0,使B=0,使C=C1∩K=1,这时在PC机的M代码协调模块执行1条M指令代码,并向I/O接口卡传输M指令数据,由I/O接口卡的有关模块执行该M指令,当检测到M代码协调模块要传输的数据为M指令“结束标识”时,说明这条M代码指令数据传输完毕,即意味着PC机完成了这条M代码指令的处理,此时M代码协调模块数据缓冲区数据为空,即置B1=1,C1=0,此时,若I/O接口卡开关量控制相关端口准备好,则B2=1,从而使B=B1∩B2=1,I/O接口卡已完成“精插补信号”C2=1,K=C2∩B2=1,使C=C1∩K=0,即开通G代码粗插补数据传向I/O接口卡的数据传送通道;同时,当“译...

【专利技术属性】
技术研发人员:林述温章强
申请(专利权)人:福州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1