机电一体化实验报告.docx
- 文档编号:17944745
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:16
- 大小:27.41KB
机电一体化实验报告.docx
《机电一体化实验报告.docx》由会员分享,可在线阅读,更多相关《机电一体化实验报告.docx(16页珍藏版)》请在冰点文库上搜索。
机电一体化实验报告
机电一体化
系统设计
实验报告
学院业级号名
专指导教师
班
学
2014年1月12日
实验一机电一体化系统的组成
实验目的:
以XY简易数控工作台为例,说明机电一体化系统的基本组成和各模块的特点。
实验设备:
台式PC机一台标准XY工作台一套运动控制卡一块游标卡尺一把
实验内容:
XY简易数控工作台是一典型的机电一体化系统,是许多数控加工设备和电子加工设备的基本部件,XY数控工作台主要由运动控制卡、DC24V开关电源、步进电机及其驱动器、XY向运动平台、光栅尺和霍尔限位开关组成,其之间的关系如图1.1所示。
工作原理大致为:
运动控制卡接受PC机发出的位置和轨迹指令,进行规划处理(插补运算),转化成步进电机驱动器可以接受的指令格式(速度脉冲和方向信号)发给驱动器,由驱动器进行脉冲环行分配和功率放大从而驱动步进电机,步进电机经过联轴器、滚动丝杠推动工作台按指定的速度和位移运动。
实验步骤:
1)在XY数控工作台系统中分别找到上述各个模块,并指出各模块在机电一体化系统
中实现哪一模块的功能。
1运动控制卡:
运动控制卡是PCL、CPCL、PXL等总线形成的板卡,通俗地讲我
们可以把它看成一个单片机,有自己的算法,可以通过¥C、VB、
labview.BCB等语言实现其功能,数控系统即通过运动控制卡来实现对机床运动轨迹的控制。
2DC24V开关电源:
对供电要求质量比较高的控制设备提供纯净、稳左、没有杂
波的直流电源。
3步进电机及其驱动器:
步进电机用于驱动数控工作台的X、丫两个方向的移动;
步进电机通过驱动器细分,可减小步距角,从而提高步进电机的精确率,实现脉冲分配和功率驱动放大,此外还可以消除电机的低频振荡、提髙电机的输出转矩。
4XY向运动平台:
分别传输X、丫两个方向的运动。
5光栅尺:
光栅尺是一种位移传感器,是利用光栅的光学原理工作的测量反馈装
置。
经常应用于敎控机床的闭环伺服系统中,可用作直线位移或者角位移的检测。
6霍尔限位开关:
用于限制工作台的运动超出导轨的有效长度。
使用卡尺测量,计算其平均导程P二10:
观察其循环器,可知其循环方式为」
循环:
预紧方式是螺纹调隙式
观察导轨截而,并查阅《机电一体化技术手册》,可知其属于GGA,GGB,GGC,
GGF中哪类?
GGB0其适用场合机械加工中心、NC车床、搬运装置、电火花加工机、木
工机械、激光加工机、精密测试仪器、包装机械、食品机械、医疗器械、工具据床、平而磨床等
(4)查阅《DMC3000硬件手册》可知系统中的运动控制卡可实现S轴的联动,并具
有16_个数字量输入和16个数字量输岀控制。
(5)记录步进电机型号,网上查阅其详细技术参数,可知其属于(反应式,永磁式,混
合式)混合式步进电机,整步步距角为1.8。
,额定工作电压2.6V
测量电机机座的长宽尺寸属于57尺寸系列机型。
一般来说尺寸系列越大,其
输出扭距越衣。
XY数控工作台系统的草图可见附录1:
实验二XY简易数控工作台的电气连接
实验目的:
\以数控系统中基本的电机运动控制和限位开关控制为例,了解基于运动控制卡的XY简易数控工作台的电气连接。
实验设备:
台式PC机一台
标准XY工作台一套
运动控制卡一块
实验内容:
运动控制卡能够实现多轴联动最重要的原因是利用了控制卡上专用运动控制芯片提供的硬件插补功能,这类F用运动控制芯片能够根据PC机给出的插补终点和插补速度等参数,利用某些插补算法计算出各个轴的进给脉冲和进给方向,并将这两类信号输出到接口板的某些固定端子上。
步进电机要想能够实现一个脉冲对应电机转过一个步距角,除了需要步进电机以外,还需要一个步进电机驱动器为步进电机实现脉冲分配和功率驱动放大的功能。
实验步骤:
参考电气主电路图,在控制箱内找到与DC24V电源相连的模块以及连接所用的端子。
2)依据控制电路图和《DMC3000硬件手册》,找到接口板与步进电机驱动器的控制信
号接线,并思考接口板和驱动器之间的电气接口原理。
依据控制电路图和《DMC3000硬件手册》,找到限位开关和光栅尺电路。
实验结果:
通过实验,可得出平台控制电路图(见附录2)
实验三运动控制卡软件接口与简单的点位控制程序
实验H的:
初步了解DMC300运动控制卡的软件接口形式
实验设备:
台式PC机一台
实验内容:
运动控制卡接口板步进电机驱动器等模块间的电气连接保证了运动控制卡输出的运动和控制信号的传输。
但要实现工作台按照某些规律运动,除了上边所述的正确电气连接夕卜,还需要运动控制卡提供相应的软件接口(Inteface)来接受PC机发出的运动控制命令。
DMC3000运动控制卡的软件接口是以动态连结库(DLL)的形式提供的。
所谓动态连接库,在编程实现上可以理解成一个函数的集合,在这个库里包含有许多函数。
DMC3000控制卡的用户通过在软件程序中调用动态连接库中的某些函数,从而达到操作运动控制卡的目的。
实现DMC3000卡控制工作台做某些直线插补运动。
(1)运行Motion3000,在其界而下了解DMC3000支持的各种运动控制功能。
利用其界而
操作完成绝对坐标和相对坐标下T形和S形的直线和圆弧插补运动。
(2)在VB/V'C开发环境下实现一条直线简单插补运动控制。
实验步骤及结果:
步骤:
打开VisualC++6.0新建一个工程选择MFCAPPWizard(exe)选择工
1、程保存路径如E:
\输入工程名,如test按确定键在应用程序类型中选择基本对话按确定键建立工程⑴对对话框进行简单的修改增加按钮启动命名为IDC_BUTTON_Start和停止
⑵(命名为IDC_BUTT0N_Stopo)(8)下
⑶选批tJ(如300砾物熬用漲干找鮒逊件揶入剧牛播贝到E:
\test目录
⑷开test,cpp文件在头部添加语句^includedmc3000.h
⑸在CTestDlg:
:
0ninitDialogO函数中添加代码
⑹⑼
⑺00)
di)
d3000_board_init();
(12)在CtestDlg中添加一个成员函数0nCancel,在OnCancel函数中添加代码d3000_board_close();CDialog:
:
OnCancel();
(13)双击启动按钮在按钮点击事件中输入代码
d3000_start_t_move(0,1000,400,1000,0.1,0.1);双击停止按钮在按钮点击事件中输入代码d3000_decel_stop(0,0.1);
(14)编译运行按下启动按钮第0轴就会输出长度为1000的脉冲运动中可以按下停止按钮便会减速停止脉冲输出。
2、完整程序结果:
nclude"stdafx.h"nclude"hr.h"
Sinclude,zhrDlg・h"
Sinclude"dmc3000・h"
Sifdef_DEBUG
^definenewDEBUG.NEW
SundefTHIS.FILE
staticcharTHIS_FILE[]二_FILE#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDigdialogusedforAppAboutclassCAboutDlg:
publicCDialog1public:
CAboutDlg0;
//DialogData
//{{AFX.DATA(CAboutDlg)enum{IDD二IDD_AB0UTB0X};//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CAboutDlg)protected:
virtualvoidDoDataExchange(CDstaExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX.MSG(CAboutDlg)
//}}AFX.MSG
DECLARE_MESSAGE_MAP()};
CAboutDlg:
:
CAboutDlg0:
CDialog(CAboutDlg:
:
IDD)
//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA.INIT
I
voidCAboutDig:
:
DoDataExchange(CDstaExchange*pDX)c
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)//{{AFX.MSG.MAP(CAboutDlg)
//Nomessagehandlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CHrDlgdialog
CHrDlg:
:
CHrDlg(CWnd*pParent/*二NULL*/)
:
CDialog(CHrDlg:
:
IDD,pParent)
//{{AFXJATA.INIT(CHrDlg)
//NOTE:
th己ClassWizardwilladdmemberinitializationhere
//}}AFX_DATA.INIT
//NotethatLoadicondoesnotrequireasubsequentDestroyiconinWin32m_hlcon=AfxGetApp0->LoadIcon(IDR_MAINFIt^IE);
*
voidCHrDlg:
:
DoDataExchange(CDstaExchange*pDX)
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CHrDlg)
//NOTE:
th己ClassWizardwilladdDDXandDDVcallshere//}}AFX_DATA_MAP
BEGIN.MESSAGE.MAP(CHrDlg,CDialog)//{{AFX.MSG.M^P(CHrDlg)ON_WM_SYSCOMMAND()
ONJ^LPAINT0ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTONl_start,
OnBUTTONlstart)0N_BN_CLICKED(IDC_BUTT0N2_stop,0nBUTT0N2stop)//}}AFX_MSG_MAPEND_MESSAGE_MAP0
/////////////////////////////////////////////////////////////////////////////
//CHrDlgmessagehandlers
BOOLCHrDlg:
:
OnInitDialog(){d3000_board.init0:
CDialog:
:
0nInitDialogO;
//Add"About・・・"menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange・
ASSERT((IDM_AB0UTB0X&OxFFFO)=IDM_AB0UTB0X);
ASSERT(IDM.ABOUTBOX CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu! =NULL) CStringstrAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if(! strAboutMenu.IsEmpty()) 1pSysMenu~X^ppendMenu(MF_SEPARATOR);pSysMenu~>AppendMenu(MF_STRING,IDNLABOUTBOX,strAboutMenu); //Settheiconforthisdialog・Theframeworkdoesthisautomatically//whentheapplication‘smainwindowisnotadialogSetIcon(m_hlcon,TRUE);//SetbigiconSetlcon(m_hlcon,FALSE);//Setsmallicon//TODO: Addextrainitializationhere returnTRUE;//returnTRUEunlessyousetth^focustoacontrol1 voidCHrDlg: : OnSysCommand(UINTnID,LPARAMIParam)! if((nID&OxFFFO)=IDM_ABOUTBOX) I CAboutDigdlgAbout; dlgAbout.DoModal0; else ! CDialog: : OnSysCommand(nID,IParam); //Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingth^document/viewmodel,//thisisautomaticallydoneforyoubytheframework・ voidCHrDlg: : OnPaint0 if(Islconic0) CPaintDCde(this);//devicecontextforpainting SendMessage(W_ICONERASEBKGND,(WPARAM)de.GetSafeHdc0,0); //Centericoninclientrectangle intcxlcon=GetSystemMEtrics(SM_CXICON);intcylcon= GetSystemMetrics(SM_CYICON);CRectrect; GetClientRect(&rect); intx=(rect・Width()-cxlcon+1)/2; inty二(: rect.Height()-cylcon+1)/2; //Drawtheiconde.Drawicon(x,y,m_hlcon); else CDialog: : OnPaint0; //Thesystemcallsthistoobtainth己cursortodisplaywhiletheuserdrags//theminimizedwindow・ HCURSORCHrDlg: : OnQueryDraglcon0 return(HCURSOR)m_hlcon; ■voidCHrDlg: : 0nCancel() 记 30 00 b oard _close0 CDialog: : 0nCancel0; voidCHrDlg: : OnBUTTONlstart0 shortAxisArray[2]; AxisArray[0]=0; AxisArray[1]=1;d3000_start_t_line2(AxisArray,1000,0,400,1000,0.1,0); while(d3000_check_conti_buffer==0) {}d3000_start_arc(AxisArray,0,500,0,1000,1,1000); voidCHrDlg: : 0nBUTT0N2stop0 d3000_dEcel_stop(0,0.1);} 实验四连续插补运动控制的程序实现 实验目的: 利用VB编写程序,控制DMC300卡完成两段连续插补轨迹运动。 实验设备: 台式PC机一台标准XY工作台一套运动控制卡一块 实验内容: DMC300(动态连接库中给出的插补函数都是简单的直线或圆弧插补运动。 但实际生产中要求工作台能够完成连续轨迹运动,即完成了一段插补运动后能够平滑的进入下一段插补运动。 DMC300提供的运动状态函数和连续运动函数能够实现这一功能。 在VB开发环境下编写程序,实现如图4-1所示轨迹的连续运动。 实验步骤及结果: 1、步骤: ⑴打开VisuaiC++6.0 ⑵新建一个工程 ⑶选择MFCAPPWizard(exe) ⑷选择工程保存路径,如E盘 ⑸输入工程名,如sb ⑹按“确左”键,在应用程序类型中选择“基本对话”,按“确定”键,建立工程。 ⑺双击窗口控件,在Ford_Load事件中添加代码 d3000_bord_init 选择UnLoad事件,在Form_UnLoad事件中添加代码d3000_bordclose 双击“启动”按钮,在CB_Start_Click事件中添加代码 shortAxisArray[2]; AxisArray[0]=0; AxisArray[l]=l; d3000_start_t_line2(AxisArray,-1000,0,400,1000,0.1,0); wh订e(d3000_check_conti_buffer==0) {—— }d3000_start_arc(AxisArray,0,1000,0,2000,0,1000); while(d3000_check_conti_buffer==l) {—— }d3000_start_t_line2(AxisArray,0,1000,400,1000,0.1,0.1); ,双击“停止”按钮,在CB_Stop_Click事件中添加代码d3000_decel_stop0,0.1 ⑻运行,按下“启动”按钮,开始脉冲,按下“停止”按钮便会减速停止脉冲。 2、完整程序结果: nclude"stdafx.h" #include"testOl.h" #include"testOlDlg・h" #ifdef_DEBUG #definenewDEBUG.NEW #undefTHIS.FILE staticcharTHIS_FILE[]二_FILE_; #endif #include"dmc3000・h" /////////////////////////////////////////////////////////////////////////////// CAboutDigdialogusedforAppAboutclassCAboutDig: publicCDialog public: CAboutDlgO; //DialogData//{{AFX.DATA(CAboutDlg)enum{IDD=IDD_AB0UTB0X};//}}AFX.DATA //ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CAboutDig) protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport//}}AFX_VIRTUAL //Imp1ementationprotected: //{(AFX.MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()}; CAboutDlg: : CAboutDlgO: CDialog(CAboutDlg: : IDD) ! //{{AFX.DATA.INIT(CAboutDlg)//}}AFX.DATA.INIT voidCAboutDlg: : DoDataExchange(CDataExchange*pDX) ! CDialog: : DoDataExchange(pDX);〃{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP BEGIN.MESSAGE.MAP(CAboutDlg,CDialog)〃{{AFX_MSG_MAP(CAboutDlg) //Nomessagehandlers //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// //CTestOlDlgdialog CTestOlDlg: : CTest01Dlg(CWnd*pParent/*=NULL*/) : CDialog(CTestOlDlg: : IDD,pParent) //{{AFX_DATA.INIT(CTestOlDlg) //NOTE: th己ClassWizardwilladdmemberinitializationhere //}}AFX_DATA.INIT //NotethatLoadicondoesnotrequireasubsequentDestroylconinWin32m_hlcon=AfxGetApp0->LoadIcon(IDR.MAINFRAME); voidCTestOlDlg: : DoDataExchange(CDstaExchange*pDX) CDialog: : DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestOlDlg) //NOTE: th己ClassWizardwilladdDDXandDDVcallshere//}}AFX_DATA_MAP BEGIN.MESSAGE.MAP(CTestOlDlg,CDialog) //{{AFX_MSG_MAP(CTestOlDlg) ON_WM_SYSCOMMAND0 ONJ^LPAINT0 ONJ^LQUERYDRAGICON0 ON.BN.CLICKED(IDC.BUTTON.Start,OnBUTTONStart) ON.BN.CLICKED(IDC.BUTTON.Stop,OnBUTTONStop) //}}AFX_MSG_MAP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机电 一体化 实验 报告