(4)CASE SEND_START_Z1,对应的十751进制数位 0xAB,代表三文精密工
作台 Z轴进行竖直方向运动。单片机接收到此字符后 ,进入 Z轴数据接收子函
数 kzzz(),依次接收 b(2)~b7)共 6个字符,并通过处理计算出 Z轴运动的起点坐
标z1,终点 z2,速度 zv。最后返回主函数。
(5)CASE SEND_START_Z2,对应的十751进制数位 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决定,
- 上一篇:LabVIEW的列车制动装置性能检测平台的设计开发
- 下一篇:用于芯片加工的非接触式真空搬运技术的研究
-
-
-
-
-
-
-
十二层带中心支撑钢结构...
乳业同业并购式全产业链...
河岸冲刷和泥沙淤积的监测国内外研究现状
java+mysql车辆管理系统的设计+源代码
杂拟谷盗体内共生菌沃尔...
酸性水汽提装置总汽提塔设计+CAD图纸
大众媒体对公共政策制定的影响
中考体育项目与体育教学合理结合的研究
当代大学生慈善意识研究+文献综述
电站锅炉暖风器设计任务书