三维精密工作台机械结构及其控制系统设计(17)
时间:2017-02-09 19:39 来源:毕业论文 作者:毕业论文 点击:次
(4)CASE SEND_START_Z1,对应的十优尔进制数位 0xAB,代表三文精密工 作台 Z轴进行竖直方向运动。单片机接收到此字符后 ,进入 Z轴数据接收子函 数 kzzz(),依次接收 b(2)~b7)共 6个字符,并通过处理计算出 Z轴运动的起点坐 标z1,终点 z2,速度 zv。最后返回主函数。 (5)CASE SEND_START_Z2,对应的十优尔进制数位 0x98,代表三文精密工 作台Z轴进行竖直方向运动。单片机接收到此字符后 ,进入 Z轴数据接收子函 数 kzzz(),依次接收 b(2)~b(7)共6个字符,并通过处理计算出 Z轴运动的起点坐 标 z1,终点 z2,速度 zv。最后返回主函数,将Z轴运动的当前坐标(z_buff)赋给 起点坐标(z1) ,以实现任意位置回零的功能。 主函数模块程序代码简化如下 void main () { int i=0; init(); //调用中断程序 while(1) //主循环下不做任何动作 { switch(message) { case SLEEP: PCON=0X01; break…………………………. case SEND_START_XY1: kzz()…………………………… case SEND_START_Z1: kzzz()…………………………….. case SEND_START_XY2: kzz();y1=y_buff;x1=x_buff…… case SEND_START_Z2: kzzz();z1=z_buff……..…………. default: break; } } } 5.3.5.几个关键函数子程序 (1)数据接收子函数 由于二文工作台运动与 Z 轴运动的通信格式控制字位数不同,因此数据接 收函数有2个,分别为 kzz()和 kzzz()。接收完字符后,通过函数处理计算出坐标 值。 (2)象限判断函数 对于二文工作台, 其平面运动轨迹可以为任意直线。 平面内任意直线有八种, 即第一象限,Y轴正半轴,第二象限,X轴负半轴,第三象限,Y轴负半轴,第 四象限,X轴正半轴。 判断依据为起点坐标和终点坐标的比较。 象限判断过程中,用 flag_q(值为 1~8)表示直线所属象限,同时设置步进 电机驱动器的CCW端口电平,以实现插补运动。 对于 Z 轴,其沿 Z 方向的运动包括两种,即沿 Z 轴正向和沿 Z 轴负向。判 断依据为起点坐标与终点坐标的比较。 方向判断过程中,用 flag_z(值为 1 或 0)表示运动方向,同时设置步进电 机驱动器的CCW端口电平,以实现上下运动。 (3)插补运动函数 二文工作台的运动采用逐点比较法设计的插补算法, 逐点比较法通过偏差函 数 fi 值来确定当前运动点与直线的位置关系。依据直线的象限参数 flag_q 和插 补算法中fi 的值来确定控制工作台运动的步进电机应进行的动作。 (4)步进电机运动函数 步进电机的动作为沿正向或负向转动一个步距角,通过对其 CW 端口置低 电平,延时,置高电平,延时4布来完成。步进电机的运动方向由 CCW决定, (责任编辑:qin) |