移动网站建设哪家便宜,如何把自己的网站推广出去,商丘网站制作的流程,工作室建设方案在对固高GTS800控制卡做数控系统开发时#xff0c;经过多年的总结与积累#xff0c;总算是实现了一个数控系统的基本功能。
基本实现宏程序的译码与执行同时执行#xff0c;虽然不是实时执行#xff0c;但在充分利用插补缓存区的基础上#xff0c;实现了相对的实时性。
…在对固高GTS800控制卡做数控系统开发时经过多年的总结与积累总算是实现了一个数控系统的基本功能。
基本实现宏程序的译码与执行同时执行虽然不是实时执行但在充分利用插补缓存区的基础上实现了相对的实时性。
系统采用两个子线程实现
线程1: 负责插入编译后的G指令到插补缓存区
线程2: 负责编译宏程序为G指令。
线程1的主要功能
1. 自动执行器根据插补缓存区状态及上位机输入状态来自动判断插补缓存区的执行暂停复位。
2.根据插补缓存区状态来决定什么时候可以自动启动插补。配合宏程序的编译执行。
3.在插补缓存区数据插入过程中同时建立一个与插补缓存区相类似数据结构的栈结构该栈结构与插补缓存区一一对应保留插入时各轴的终点位置当执行到该行时根据当前值与终点位置可实现对机床当前执行行的剩余坐标的实时跟踪。根据插补缓存区中的行标识来动态实现数据出栈过程。
4.在执行延时插补指令时需要在延时指令前后增加一个自定义行号的指令保证插补缓存区状态判断的准确性因为当延时指令为最后一行时一旦执行到该行插补缓存区状态的判断就会认为当前插补缓存区为空且静止造成对插补缓存区的误判。所以最好的方式是在延时指令的前后插入一个自定义行号的指令。保证准确的判断。
5.当通过线程2中宏程序数据结构的优化这里取消了对插补缓存区中输出指令通过buff中的指令实现而采用通过线程配合上位机的普通输出口实现因为插补缓存区的输出指令对于在扩展模块上的输出口没用。
6.插补缓存区只执行插补指令和延时指令两种类型既可。
线程2主要功能
1.通过线程1中的开始编译宏程序状态位来启动宏程序编译。
2.当碰到特定的宏程序时自动从内部暂停后续宏程序的编译同时通知线程1等待插补缓存区为空后,再继续执行。例如探针指令输出M指令等等可扩展指令。
3.宏程序的译码过程可采用动态链表的方式实现主子程序功能。 具体实现就不表了mimi