单片机与mpc运动控制模块组成的三轴运动控制系统Word格式文档下载.docx
- 文档编号:7479601
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:26
- 大小:292.87KB
单片机与mpc运动控制模块组成的三轴运动控制系统Word格式文档下载.docx
《单片机与mpc运动控制模块组成的三轴运动控制系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机与mpc运动控制模块组成的三轴运动控制系统Word格式文档下载.docx(26页珍藏版)》请在冰点文库上搜索。
P2,D2为2轴的脉冲和方向信号。
P3,D3为3轴的脉冲和方向信号。
(3)原点信号输入部分
原点采用光藕隔离输入,输入端可接NPN型光电开关来作为原点信号。
(4)信号输出部分
输出采用NPN晶体管极电极开路输出,分别接到电机驱动器脉冲和方向信号输入端。
3,系统软件设计
MPC微型运动控制模块与单片机串口通讯速率为115200bps,数据位为8位,停止位0位,无校验。
使用函数前先设置好单片机的串口功能,并将需要用到的函数的原型拷贝到当前程序内。
试验程序如下:
#include<
reg52.h>
//-----STC89C2051-------
sfrIPH=0XB7;
sfrCCON=0XD8;
sfrCMOD=0XD9;
sfrCL=0XE9;
sfrCH=0XF9;
sfrCCAP0L=0XEA;
sfrCCAP0H=0XFA;
sfrCCAPM0=0XDA;
sfrCCAPM1=0XDB;
sfrP3M1=0XB1;
sfrP3M0=0XB2;
sfrP1M1=0X91;
sfrP1M0=0X92;
sfrWAKE_CLKO=0X8f;
sfrBRT=0x9c;
sfrAUXR=0x8E;
sfrAUXR1=0xA2;
sfrWDT_CONTR=0xc1;
sfrT2MOD=0xC9;
//////////////////
sbitbusy=P3^2;
sbits1=P3^7;
voidinitial()
{
P3M1=0x00;
P3M0=0x80;
P1M1=0x00;
P1M0=0xf9;
}
voidinit_uart()
PCON&
=0x7f;
//波特率不倍速
SCON=0x50;
//8位数据,可变波特率
BRT=0xFD;
//设定独立波特率发生器重装值波特率115200bps
AUXR|=0x04;
//独立波特率发生器时钟为Fosc,即1T
AUXR|=0x01;
//串口1选择独立波特率发生器为波特率发生器
AUXR|=0x10;
//启动独立波特率发生器
/*
串口发送一个字节,需根据所使用的单片机作适当更改。
*/
voidUSART_Txbyte(unsignedchari)
SBUF=i;
while(TI==0);
//等待发送完成
TI=0;
//清零串口发送完成中断请求标志
串口接收模块返回的10个字节数据,需根据所使用的单片机作适当更改。
voidreceive(unsignedchar*buf)
unsignedchari;
for(i=0;
i<
10;
i++)
{
while(RI==0);
RI=0;
buf[i]=SBUF;
}
串口发送一串数据。
voidUSRAT_transmit(unsignedchar*fdata,unsignedcharlen)
unsignedchari;
for(i=0;
len;
USART_Txbyte(fdata[i]);
}
}
函数名:
inp_move
功能:
二轴直线插补
参数:
cardno卡号
no1X轴轴号
no2Y轴轴号
pulse1,pulse2X-Y轴移动的距离,范围(-8388608~+8388607)
mode0:
相对坐标1:
绝对坐标
返回值:
0失败1成功
unsignedcharinp_move(unsignedcharcardno,unsignedcharno1,unsignedcharno2,longpulse1,longpulse2,unsignedcharmode)
unsignedcharOutByte[25];
unsignedcharinbuf[12];
OutByte[0]=0x68;
OutByte[1]=0x0F;
OutByte[2]=cardno;
OutByte[3]=0x7;
OutByte[4]=no1;
OutByte[5]=no2;
OutByte[6]=pulse1>
>
24;
OutByte[7]=pulse1>
16;
OutByte[8]=pulse1>
8;
OutByte[9]=pulse1;
OutByte[10]=pulse2>
OutByte[11]=pulse2>
OutByte[12]=pulse2>
8;
OutByte[13]=pulse2;
OutByte[14]=mode;
OutByte[15]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5]+OutByte[6]+OutByte[7]+OutByte[8]+OutByte[9]+OutByte[10]+OutByte[11]+\
OutByte[12]+OutByte[13]+OutByte[14];
USRAT_transmit(OutByte,16);
receive(inbuf);
return1;
inp_arc
二轴圆弧插补
cardno卡号
no1参与插补X轴的轴号
no2参与插补Y轴的轴号
x,y圆弧插补的终点位置(相对于起点),范围(-8388608~+8388607)
i,j圆弧插补的圆心点位置(相对于起点),范围(-8388608~+8388607)
顺时针插补1:
逆时针插补
unsignedcharinp_arc(unsignedcharcardno,unsignedcharno1,unsignedcharno2,longX,longy,longi,longj,unsignedcharmode)
OutByte[1]=0x17;
OutByte[6]=X>
OutByte[7]=X>
OutByte[8]=X>
OutByte[9]=X;
OutByte[10]=y>
OutByte[11]=y>
OutByte[12]=y>
OutByte[13]=y;
OutByte[14]=i>
OutByte[15]=i>
OutByte[16]=i>
OutByte[17]=i;
OutByte[18]=j>
OutByte[19]=j>
OutByte[20]=j>
OutByte[21]=j;
OutByte[22]=mode;
OutByte[23]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5]+OutByte[6]+OutByte[7]+OutByte[8]+OutByte[9]+OutByte[10]+OutByte[11]+\
OutByte[12]+OutByte[13]+OutByte[14]+OutByte[15]+OutByte[16]+OutByte[17]+OutByte[18]+OutByte[19]+OutByte[20]+OutByte[21]+OutByte[22];
USRAT_transmit(OutByte,24);
set_speed
设置轴速度
axis轴号(1-6)
acc加速时间(ms)
dec减速时间(ms)
startv启动频率(*100Hz)
speed运行频率(*100Hz)
unsignedcharset_speed(unsignedcharcardno,unsignedcharaxis,unsignedintacc,unsignedintdec,unsignedintstartv,unsignedintspeed)
OutByte[1]=0xD;
OutByte[3]=1;
OutByte[4]=axis;
OutByte[5]=acc>
OutByte[6]=acc;
OutByte[7]=dec>
OutByte[8]=dec;
OutByte[9]=startv>
OutByte[10]=startv;
OutByte[11]=speed>
OutByte[12]=speed;
OutByte[13]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5]+OutByte[6]+OutByte[7]+OutByte[8]+OutByte[9]+OutByte[10]+OutByte[11]+
OutByte[12];
USRAT_transmit(OutByte,14);
set_soft_limit
设置轴软件限位
axis轴号(1-6)
pulse1负方向限位脉冲值,范围(-8388608~0)
pulse2正方向限位脉冲值,范围(0~+8388607)
unsignedcharset_soft_limit(unsignedcharcardno,unsignedcharaxis,unsignedcharmode,longpulse1,longpulse2)
{
OutByte[1]=0xE;
OutByte[2]=cardno;
OutByte[3]=0x13;
OutByte[5]=mode;
OutByte[6]=pulse1>
OutByte[8]=pulse1>
OutByte[9]=pulse1;
OutByte[14]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5]+OutByte[6]+OutByte[7]+OutByte[8]+OutByte[9]+OutByte[10]+OutByte[11]+
OutByte[12]+OutByte[13];
USRAT_transmit(OutByte,15);
pmove
单轴运行
pulse输出的脉冲数>
0:
正方向移动<
负方向移动范围(-268435455~+268435455)
相对位置1:
绝对位置
unsignedcharpmove(unsignedcharcardno,unsignedcharaxis,longpulse,unsignedcharmode)
OutByte[1]=0xA;
OutByte[3]=2;
OutByte[5]=pulse>
OutByte[6]=pulse>
OutByte[7]=pulse>
OutByte[8]=pulse;
OutByte[9]=mode;
OutByte[10]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5]+OutByte[6]+OutByte[7]+OutByte[8]+OutByte[9];
USRAT_transmit(OutByte,11);
wait_delay
等待延时数
value延时量(1-10000)MS
unsignedcharwait_delay(unsignedcharcardno,unsignedintvalue)
OutByte[0]=0x68;
OutByte[1]=0x6;
OutByte[3]=0xE;
OutByte[4]=value>
OutByte[5]=value;
OutByte[6]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5];
USRAT_transmit(OutByte,7);
set_command_pos
设置轴逻辑位置
pulse位置脉冲数,范围(-268435455~+268435455)
unsignedcharset_command_pos(unsignedcharcardno,unsignedcharaxis,longvalue)
OutByte[1]=0x9;
OutByte[3]=0x12;
OutByte[4]=axis;
OutByte[5]=value>
OutByte[6]=value>
OutByte[7]=value>
OutByte[8]=value;
OutByte[9]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5]+OutByte[6]+OutByte[7]+OutByte[8];
USRAT_transmit(OutByte,10);
/*
wait_pulse
等待轴脉冲数
unsignedcharwait_pulse(unsignedcharcardno,unsignedcharaxis,longvalue)
OutByte[3]=0x19;
write_bit
写输出口状态
number端口号(0-8)Y0-Y8
value状态(0,1)0输出低电平1输出高电平
unsignedcharwrite_bit(unsignedcharcardno,unsignedcharnumber,unsignedcharvalue)
OutByte[3]=3;
OutByte[4]=number;
OutByte[5]=value;
OutByte[6]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4]+OutByte[5];
sudden_stop
轴停止
axis停止的轴号(1-6)
unsignedcharsudden_stop(unsignedcharcardno,unsignedcharaxis)
OutByte[1]=0x5;
OutByte[3]=0x17;
OutByte[5]=OutByte[1]+OutByte[2]+OutByte[3]+OutByte[4];
USRAT_transmit(OutByte,6);
wait_in
等待输入口状态
number端口号(0-6)X0-X6
value状态(0,1)0输入低电平1输入高电平
unsignedcharwait_in(unsignedcharcardno,unsignedcharnumber,unsignedch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 mpc 运动 控制 模块 组成 控制系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)