(3)画出刀具运动的轨迹。
解:(1)l?xe?ye?7?3?10 (2)计算过程的表格如下:
序号 0 1 2 3 4 5 6 7 8 9 10
(3)刀具的运行轨迹图省略。
7.2 直线OE的起点在原点(0, 0),终点为E(4, 7),用逐点比较法对该线段进行插补,完成如下问题:
(1). 所需插补的循环总数; (2) 填写表格完成插补过程; (3) 画出刀具运动轨迹。 答:
(1) 循环总数即插补总步数:l=(4-0)+(7-0)=11 (2)
序号 偏差判别 进给 偏差计算 终点判别 0 F0=0 l=11 1 F0=0 +Δx F1=F0-ye=-7 l=10 2 F1=-7<0 +Δy F2=F1+xe=-3 l=9 3 F2=-3<0 +Δy F3=F2+xe=1 l=8 4 F3=1>0 +Δx F4=F3-ye=-6 l=7 5 F4=-6<0 +Δy F5=F4+xe=-2 l=6 6 F5=-2<0 +Δy F6=F5+xe=2 l=5 7 F6=2>0 +Δx F7=F6-ye=-5 l=4 8 F7=-5<0 +Δy F8=F7+xe=-1 l=3 偏差判别 F0=0 F1=-3<0 F2= 4>0 F3= 1>0 F4= -2<0 F5=5>0 F6=2>0 F7= -1<0 F8=6>0 F9=3>0 进给 +Δx +Δy +Δx +Δx +Δy +Δx +Δx +Δy +Δx +Δx 偏差计算 F0=0 F1= F0-ye=-3 F2= F1+xe=4 F3= F2-ye=1 F4= F3-ye=-2 F5= F4+xe=5 F6= F5-ye=2 F7= F6-ye=-1 F8= F7+xe=6 F9= F8-ye=3 F10= F9-ye=0 终点判别 l=10 l=9 l=8 l=7 l=6 l=5 l=4 l=3 l=2 l=1 l=0 9 10 11 (3)
F8=-1<0 F9=3>0 F10=-4<0 (4,7)+Δy +Δx +Δy F9=F8+xe=3 F10=F9-ye=-4 F11=F10+xe=0 l=2 l=1 l=0
7.4 AB为坐标原点为圆心的圆弧,起点为A(5, 0),终点为B(0, 5),脉冲当量为1,回答下面问题:
(1). 所需插补的循环总数; (2) 填写表格完成插补过程; (3) 画出刀具运动轨迹。 答:
(1) 循环步数:10 (2)
序号 偏差判别 进给 偏差计算 终点判别 F0=0 0 l=10 x=5, y=0 F1=F0-2x+1=-9 1 F0=0 -Δx l=9 x=5-1=4, y=0 F2=F1+2y+1=-8 2 F1=-9<0 +Δy l=8 x=4, y=0+1=1 F3=F2+2y+1=-5 3 F2=-8<0 +Δy l=7 x=4, y=1+1=2 F4=F3+2y+1=0 4 F3=-5<0 +Δy l=6 x=4, y=2+1=3 F5=F4-2x+1=-7 5 F4=0 -Δx l=5 x=4-1=3, y=3 F6=F5+2y+1=0 6 F5=-7<0 +Δy l=4 x=3,y=3+1=4 7 F6=0 -Δx F7=F6-2x+1=-5 l=3 8 9 10 (3)
F7=-5<0 F8=4>0 F9=1>0 +Δy -Δx -Δx x=3-1=2,y=4 F8=F7+2y+1=4 x=2,y=4+1=5 F9=F8-2x+1=1 x=2-1=1,y=5 F10=F9-2x+1=0 x=1-1=0,y=5 l=2 l=1 l=0
7.6 步进电机控制系统:
(1) 说明光电隔离4N25的作用;
(2) 说明R1,R2,R3和V1,V2,V3的作用;
(3) 假设该步进电机带动滚动丝杠,每转一周相对位移4mm,编写移动8mm的三相单拍控制程序。 答:
(1) 为了实现抗干扰,或者避免一旦驱动电路发生故障,造成功率放大器中的高电平信号进入系统中而烧毁器件,因而在驱动器与系统之间加入光电隔离器4N25。
(2) R1, R2, R3的作用是限流;V1, V2, V3的作用是对线圈的感应电流组成释放回路,从而保护晶体管。
(3) P1.x口为0,对应光电导通,该相线圈关闭 P1.x口为1,对应光电关断,该相线圈启动 P1.0 P1.1 P1.2 相 1 0 0 A 0 1 0 B 0 0 1 C A 00000001 0x01 B 00000010 0x02
C 00000100 0x04 #include
sbit START=P0^0; \\\\启动 sbit OPERA=P0^1; \\\\正反转 #define uchar unsigned char #define uint unsigned int
uchar CONTROL[3]={0x01,0x02,0x04}; void Delay(uint DelayTimes) {
while(--DelayTimes); /*控制速度*/ }
void DriveMoto(uchar cw,uint spd,uint num) /*方向 速度 步数*/ {
uint i; uchar j; if(cw) {
for(i=0,j=0;i P1=CONTROL[j];j++;Delay(spd); if(j==3) j=0; } } else { for(i=0,j=2;i P1=CONTROL[j];j--;Delay(spd); if(j==0xff) j=2; } } } void main() { do { if (START==0 & OPERA=1) {DriveMoto(0x01,0xf000,0x06);}\\\\ 启动且正转 else if (START==0 & OPERA=0) {DriveMoto(0x00,0xf000,0x06);}\\\\启动且反转 else if (START==1){P1=0xff;}\\\\停止 } while(1); } 7.6 在如原题图所示的步进电机控制系统中,试完成