运动控制实验指导书2_第1页
运动控制实验指导书2_第2页
运动控制实验指导书2_第3页
运动控制实验指导书2_第4页
运动控制实验指导书2_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验1. VC开发环境的使用一实验目的1. 了解和使用Visual C+集成开发环境;掌握菜单、工具栏的使用;用户窗口区的划分2. 熟悉简单的C+程序结构和开发流程,了解简单的程序输入输出流。二实验要求1. 记录实验过程中发生的一些问题;2. 总结实验心得体会。二实验内容实验内容1. 初步熟悉C+语言的上机开发环境对课件所讲内容(ex1-1)进行实验。实验内容2. 使用Visual C+ 6.0编写简单应用程序,实验步骤如下:1启动应用程序选择菜单“开始/程序/Microsoft Visual Studio 6.0/Microsoft Visual C+ 6.0”,得到Visual C+ 6.

2、0启动后的用户界面,如图1-1所示。 0 图1-1 Visual C+ 6.0用户界面 2创建新工程(1)单击菜单“文件/新建”,显示“新建”对话框,选择“工程”页面,如图1-2所示。(2)在列表栏中,选择“Win32 Console Application”(Win32控制台应用程序”)。在 “工程”栏中输入一个工程名,如实验一。在位置文本框中选择工程所在的路径,如图中所示H:C+实验实验一。单击“确定”按钮。图1-2 “新建”对话框(3)在“Win32 Consol Application-Step 1 of 1” 对话框中选择An empty project单选项。然后单击“完成”按钮,

3、如图1-3所示。图1-3 “Win32 Consol Application-Step 1 of 1” 对话框(4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。3创建C+源程序文件(1)单击菜单“文件/新建”,显示“新建”对话框,选择“文件”页面,如图1-4所示。在列表栏中,选择“C+ Source File”,然后在右边的文件输入框中输入源程序的文件名。 图1-4 “新建”窗口(2)击“确定”按钮,则创建完成了一个源程序文件,并出现编辑窗口,如图1-5所示。 图1-5 “C+”源程序编辑 (3)在“C+源程序编辑”窗口下编辑C+源程序。如图1-6所示。图

4、1-6 编辑C+源程序4编译连接和运行源程序(1) 选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译 eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在屏幕下方的“编译”窗口中。所显示的错误信息中指出该错误所在行号和该错误的性质。用户可根据这些错误信息进行修改。上述程序的“编译”窗口,如图1-7所示。图1-7 “编译”窗口 (2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件 eg1-1.exe”选项。“编译”窗口出现如图1-8所示的信息说明编译连接成功,并生成以源文件名为名

5、字的可执行文件(eg1-1.exe)。 图1-8 编译连接信息(3)执行可执行文件的方法是选择“编译”菜单项中“执行 eg1-1.exe”选项。这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中,如图1-9所示。图1-9 运行C+程序结果5执行下列操作,观察并分析所发生的结果。(1)单击菜单“文件/关闭工作区”,关闭工作区。(2)单击菜单“文件/打开工作区”,在弹出的对话框中选定“H:C+实验实验一实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立的工程文件进行修改。(3)单击菜单“文件/最近工作区”,选择一项将打开最近的工作区。(4)单击菜单“编译

6、/清除”,将清除已经编译的目标代码。(5)使用工具栏来完成相关的编译、执行操作。(6)在FileView中右键选中工作区文件,弹出下列快捷菜单,请使用该菜单完成相关得编译、清除等操作。实验内容3:参考实验内容2的步骤创建工程,编辑、编译并运行下面简单C+程序:#include <iostream.h>int max(int,int); /声明自定义函数 int main() /主函数 int a,b,c;cout<<"input two number:n"cin>>a>>b;c=max(a,b); /调用max函数,将得到的值

7、赋给C cout<<"max="<<c<<endl;return 0;int max(int x,int y) /定义max函数,函数值为整型,形式参数x,y为整型 int z; /max函数中的声明部分,定义本函数中用到的变量z为整型 if(x > y) z = x;elsez = y;return(z); /将z的值返回,通过max带回调用处 实验二 MFC下通用控件的简单应用实验目的1. 基本掌握Windows环境下MFC程序的开发流程和方法;2. 基本掌握MFC下基本控件的开发、使用方法; 实验内容与步骤创建一个对话框窗口,

8、添加下压按钮(Push Button)、单选框(Radio Box)和复选框(Check Box)及静态文本框,界面如图10-1所示。实现如下功能:图10-1、程序运行界面图(1) 3个单选框的交互控制:3选1。(2) 4个复选框的交互控制:允许多选。(3) 下压按钮的互锁控制:任一时刻只有一个按钮有效。(4) 在静态文本框中实时显示用户对单选框和复选框的选择。(5) 初始化设置:程序启动时,单选框默认选择第2项(1G),且“重新选择”按钮无效,静态文本框中显示为空。MFC编程要点对控件的基本操作为: 1. 在对话框资源中添加控件,借助属性对话框对控件属性进行设置;2. 通过定义与控件相关的控

9、件类对象或数值对象,实现对有关控件的关联;3. 通过定义控件的消息及消息响应函数,搭建对有关控件的动态操作框架;4. 在有关的消息响应函数中,完成具体操作。VC编程实现1. 使用AppWizard创建一个基于对话框MFC工程test10(在对话框“MFC AppWizard-Step 1”中选中“Dialog based”,各项设置均取默认值); 2. 在如图10-2所示的对话框资源模板中,添加所需的控件。图10-2、对话框资源模板其中,选中第一个无线按钮(512M)控件属性窗口中的“Group”属性。使用ClassWizard为无线按钮(512M)控件ID_RADIO1等添加成员变量m_ra

10、dio,如图10-3所示。图10-3、使用ClassWizard添加成员变量3. 在构造函数中进行程序的初始化设置:CTest10Dlg: CTest10Dlg (CWnd* pParent /*=NULL*/): CDialog(CTest10Dlg:IDD, pParent)/AFX_DATA_INIT(CCBaseButtonDlg)m_radio = 1;/ 默认选择为1Gm_show = _T(""); / 初始显示客户选择为空/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent Dest

11、royIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);注:红色内容为VC自动生成的代码(下同)。4. 如图10-4所示,使用ClassWizard为对话框添加消息WM_INITDIALOG,定义图10-4、使用ClassWizard为CTest10Dlg添加消息WM_INITDIALOG消息响应函数,进行初始化操作。包括对“重新选择”按钮设置初始状态。有关代码如下:BOOL CTest10Dlg:OnInitDialog()CDialog:OnInitDialog();/ Add "About."

12、 menu item to system menu. / Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization hereGetDlgItem(ID_RESET)->EnableWin

13、dow(false); /使重新选择按钮无效return TRUE; / return TRUE unless you set the focus to a control5. 如图10-5所示,使用ClassWizard为 “提交选择”按钮添加消息BN_CLICKED,图10-5、使用ClassWizard为ID_CHECKIN添加消息BN_CLICKED定义消息响应函数,设置对“提交选择”按钮按下时的操作。代码如下:void CTest10Dlg:OnCheckin() / TODO: Add your control notification handler code hereGetDl

14、gItem(ID_RESET)->EnableWindow(true);/重新选择有效GetDlgItem(ID_CHECKIN)->EnableWindow(false);/提交按钮无效UpdateData(true);m_show="内存: " /保存输出消息字符串CString str;switch (m_radio)case 0:/该组第一个单选项被选中GetDlgItemText(IDC_RADIO1,str);m_show = m_show + str;break;case 1:/该组第二个单选项被选中GetDlgItemText(IDC_RADIO

15、2,str);m_show = m_show + str;break;case 2:/该组第三个单选项被选中GetDlgItemText(IDC_RADIO3,str);m_show = m_show + str;break;if (m_check1.GetCheck()=1)/复选框1被选中GetDlgItemText(IDC_CHECK1,str);m_show = m_show + str;if (m_check2.GetCheck()=1)/复选框2被选中GetDlgItemText(IDC_CHECK2,str);m_show = m_show + str;if (m_check3.

16、GetCheck()=1)/复选框3被选中GetDlgItemText(IDC_CHECK3,str);m_show = m_show + str;if (m_check4.GetCheck()=1)/复选框4被选中GetDlgItemText(IDC_CHECK4,str);m_show = m_show + str;6. 使用ClassWizard为 “重新选择”按钮添加消息BN_CLICKED,定义消息响应函数,设置对“重新选择”按钮按下时的操作。代码如下:void CTest10Dlg:OnReset() / TODO: Add your control notification ha

17、ndler code hereGetDlgItem(ID_RESET)->EnableWindow(false);/重新选择按钮无效GetDlgItem(ID_CHECKIN)->EnableWindow(true);/提交选择按钮有效m_radio=1;/单选框的默认值m_check1.SetCheck(0);/复选框1不选中m_check2.SetCheck(0);/复选框2不选中m_check3.SetCheck(0);/复选框3不选中m_check4.SetCheck(0);/复选框4不选中m_show=""UpdateData(false); 实验三系

18、统熟悉使用雷泰运动控制卡的设备控制系统结构如图3-1所示:                                   图3-1 基于雷泰运动控制卡的设备控制系统结构        从上面的结构图可以看

19、出,控制系统的工作原理可以简单描述为: 1.     操作员的操作信息通过操作界面(包括显示屏和键盘)传递给系统控制软件; 2.     系统控制软件将操作信息转化为运动参数并根据这些参数调用DLL库中运动函数; 3.     运动函数调用雷泰运动控制卡驱动程序发出控制指令给控制卡; 4.     雷泰运动控制卡再根据控制指令发出相应的驱动信号(如脉冲、方向信号)给驱动器及电机、读取编码器数据、读/写通用输入/输出口。  &#

20、160;      用户在开发应用软件(即系统控制软件)的过程中所需要做的就是针对上面所说的第1步和第2步进行编程。雷泰公司已提供支持各款运动控制卡的硬件驱动程序和DLL运动函数库,包括控制卡初始化函数、单轴及多轴控制函数、输入/输出脉冲模式设置函数等许多函数。这些函数提供了所有与运动控制相关的功能,使用极为方便。用户不需要更多了解硬件电路的细节以及运动和插补的计算细节,就能够使用C、C+、Visual Basic等程序语言调用这些函数来快速开发出自己的应用软件。        用户编

21、写的系统控制软件的典型流程如图3-2所示:                                           图3-2 系统控制软件的典型流程   &#

22、160;       我们以雷泰DMC5480卡为例,介绍在VB和VC环境下针对雷泰运动控制卡编程方法:(使用雷泰其他型号的控制卡,方法和步骤相同)Visual C+ 6.0环境下的软件开发介绍         请确保DMC5480运动控制卡已经插入到你的计算机插槽中,安装好驱动程序,Motion5480演示软件和VC软件,在调用DMC5480运动函数之前,需要做下面几项工作: 1.     启动Motion5480

23、演示软件,进行运动控制卡控制功能的简单测试,如:单轴定长运动等,以确定DMC5480运动控制卡软硬件安装正常。 2.     运行VC,并建立一工程,将工程命名为vcMotion(注:此工程名可以自己指定); 3.     将DMC5480.lib和DMC5480.h文件拷贝到该目录下(此文件在module目录下); 4.     将运动函数链接到你的工程项目中,将DMC5480.lib加入到工程中; 5.     在调用运动函数的文件

24、头部代码中加入#include “DMC5480.h”语句。 当你将运动函数链接到你的项目中后,你就可以象调用其它API函数一样,调用运动函数,每个函数的具体功能,请软件手册中的“运动函数说明”。当然,还可以打开头文件DMC5480.h了解每个函数的具体定义。 在编程过程中,您可以参阅我们提供的运动函数编程实例。我们提供的VC的编程实例源代码,存放在光盘的Samples目录下(也可以通过网站下载)。只要您将控制卡及其驱动软件安装好,即可直接运行这些源代码。 至少能控制两个电机转动。在浏览了一遍软、硬件说明书后,开始准备一些需要使用的设备。现在我手里有:DMC2410卡、ACC2410接线盒、两

25、个M325驱动器、两个42HS03电机、一根68针电缆。备好这些器件后,便开始动手安装DMC2410卡。    因为M325驱动器并不支持差分输出模式,所以按照硬件使用说明书的第三章“硬件设置”中的第3.3节“板卡的设置”的内容,先将跳线全部跳到单端输出模式。    再按照软件说明书的软件安装方法安装好DMC2410的驱动程序和DMC2410卡。安装完成后可以在资源管理器中看到如图3-3所示内容:图3-3  DMC2410软件成功安装接下来是DMC2410的硬件连线的过程。第一步:用68针电缆将ACC2410接线盒和DMC2

26、410卡连接起来。连好后开机,却发现电缆的温度异常,关机检查后发现原来连接时的误操作导致电缆插头中的针错位。第二步:将驱动器和接线盒相连。打开ACC2410接线盒(如图3-5 所示)的端子定义表,找到0轴和1轴所对应的PUL-、DIR-、PUL+信号(如图3-5 所示),根据硬件单端连接方式接线图(如图3-6所示)连接好驱动器和接线盒间的连线。图3-4  ACC2410接线盒图3-5  PUL-、DIR-、PUL+信号图3-6  单端连接方式接线图将M325的OPTO脚和PUL+相连。PUL-、DIR-分别接M325的PUL、DIR脚,如图3-

27、7所示:图3-7 驱动器和ACC2410连线图第三步:根据42HS03的电机接线图(如图3-8 所示)将电机和驱动器连接好,我使用的是串联接法。图3-8  42HS03接线图第四步:连接电源。查看了一下M325的最大输入电压范围为1224V,所以在这里选用了HF35W-D-C型号的24V变压器。将变压器的-V2、+V2分别连到驱动起的GND、+V脚。插好变压器的电源线。这样,所有的设备就已经连接好了。打开DMC2410文件夹目录里的MOTION程序,这时控制卡的0轴和1轴,设定0轴初速度为1000pps、驱动速度为4000pps、总加速时间为0.5s、S段时间为0.1s、终

28、点位置为1000pps、往正方向转动。设定1轴的初速度为1000pps、驱动速度为2000pps、总加速时间为0.2s、S段时间为0.05s、终点位置为2000pps、往负方向转动参数设置界面如图3-9。点击图3-9的启动按钮,可以看到两个电机分别以不同的速度向不同的方向转动了。图3-9 参数设置图心得体会:电缆的两个插头都是针式插头,插的时候需要非常小心,否则极容易错位。驱动器和电机连接时,要注意电机的最大电流值,调节驱动器的SW开关使驱动器的电流值小于电机所能承受的最大范围,以免烧毁电机。小实验一:限位信号开关实验每一轴都有两个位置限位信号EL+ 和 EL-,EL+为正向限位,EL-为反向

29、限位,用户可通过软件设定限位开关模式。当软件选择EL±信号为低电平有效时(常开型限位开关),当外部机械部件接触到限位开关时,开关闭合,EL1±有效,禁止机械部件向原方向继续运动。当软件选择EL1±为高电平有效时(常闭型限位开关),当外部机械部件接触到限位开关时,开关断开,EL1±有效,禁止机械部件向原方向继续运动。14轴的限位信号和原点信号在ACC2410卡的专用信号输入口X14上。步骤一:找出ACC2410接线板上的信号限位信号接口;步骤二:用微型开关根据硬件说明书的第五章5.4正反向限位信号(图3-10)接线方法接上信号线。图3-10  限

30、位信号输入原理图步骤三:操作DMC2410 MOTION程序。界面如下(图3-11):图3-11  DMC2410-MOTION程序限位设置界面出现问题:用DMC2410-MOTION程序运动控制界面(图3-11)控制电机转动后,按限位开关,无任何反应。检查线路后发现:VDD外部电源接口没接。ACC2410卡上有一个总的VDD电源接入点(图3-12),在X14、X12、X13、X11上分别都有VDD的接出点,可以对其他外部设备进行供电.图3-12  DMC2410-MOTION程序运动控制界面图3-13   ACC2410 接口小实验二:检测I/O信号通

31、用数字输出信号可用于控制继电器、电磁阀或其它设备的输出。  OUT1-OUT12可设置上电初始电平。OUT13-OUT20上电初始电平为高。通用数字输出信号原理图如图12所示:图3-14  通用数字输出信号输出原理图采用通用数字输出信号接发光二极管(图3-14)来检测I/O口的信号。本次实验接POUT1和POUT2口。接发光二极管时,需要接一限流电阻,限制电流在10mA左右;电阻值大约在2K到5K左右,根据使用的电源来选择。电压越高,使用的电阻值越大些。如图3-15所示:图3-15  输出口接发光二极管步骤一:找出位于X12(图3-13)上的ACC2410接线盒上

32、的I/O信号输出口。步骤二:根据硬件说明书的第五章5.9“通用数字输出信号OUT”的原理接好发光二极管(如图3-1614所示) 图3-16 发光二极管接线图出现问题:操作DMC2410 MOTION程序的I/O 状态检测(图3-17),点击通用输入信号电平使第1位、第2位进行高低电平的切换。发现却无任何变化。后仔细阅读DMC2410硬件手册。发现在外接输出口电源时的地线必须与端子板上的GND端口相连。重新将EGND与END用线连接后,再操作I/O状态检测的通用输入信号电平1、2位。低电发光二极管导通、高电平时断开。图3-17  DMC2410 MOTIO程序 I/O 状态检

33、测 实验四 综合实验 自己设计一个二维位置控制系统,使得其跟踪一特定曲线,达到一定的控制精度。 注意事项:    如果在应用程序开发前,就可以考虑到那些既重要又容易疏漏的细节,这样可以避免很多不必要的问题产生,从而大大缩短程序的开发周期。本文总结以往的经验,以雷泰运动控制卡DMC2410B为例,开发应用程序时的初始化过程给出了一些参考与建议(其他产品与此类似),其中包括运动控制卡的初始化、特殊参数的设置及各种信号的设置,如图1虚线框内所示,这些处理过程必须加载至应用程序的初始化过程中,不同编程环境下,应用程序的初始化过程略有不同,例如在VB6.0编程环境下,须在F

34、orm_Load()函数中做程序的初始化处理,而在VC6.0编程环境下,须在OnInitDialog()函数中做程序的初始化处理。   图1 DMC2410B控制卡应用程序开发流程    图1所示的控制卡初始化过程中,实线框内所示的参数设置或特殊信号的设置必须在初始化过程中加以处理,而虚线框内的信号在未选择使用时,可以不用设置,而当选择使用这些信号时,必须进行正确设置。下面对这些初始化过程的方法及必要性做出简要的说明。一、 初始化运动控制卡相关函数:WORD d2410_board_init (void)函数功能:为控制卡分

35、配系统资源并初始化控制卡;        若在应用程序中未初始化控制卡,则系统无法为控制卡分配资源,导致控制卡无法正常使用,程序在运行时提示错误,弹出如图2所示对话框:图2 未初始化控制卡时的错误提示      注意:程序在结束运行时,必须关闭运动控制卡,以释放系统资源,否则控制卡将一直占用系统资源,导致再次运行该应用程序时产生错误。关闭控制卡的方法及说明如下:相关函数:Void d2410_board_close (void)    函数功能: 释放控制卡占用的系

36、统资源。当程序结束时必须调用此函数,它与d2410_board_init() 函数是一个相反的过程。二、 脉冲参数设置        脉冲参数包括指令脉冲类型、脉冲输出有效电平以及方向控制逻辑电平,这些参数需根据电机驱动器的类型及参数来设置,若设置错误时,则会造成控制卡正常发出脉冲,而电机无法正常运转、运转方向错误或只能朝同一个方向运转等现象。以下为脉冲参数设置的相关函数及说明:相关函数:Void d2410_set_pulse_outmode (WORD axis, WORD outmode )函数说明:设置指定轴的脉冲输

37、出方式。    参数说明:axis 指定轴号Outmode 脉冲输出方式选择,其值如图3所示:图3 脉冲类型的选择 三、 特殊信号的设置    特殊信号包括限位信号、原点信号、急停信号等,对这些特殊信号未进行设置或设置错误时,会导致控制卡无法正常输出脉冲、电机无法正常运转、原点回归错误等现象,下面分别对这些信号的设置及用途加以说明:1. 限位信号的设置    相关函数:Void d2410_config_EL_MODE (WORD axis, WORD el_mode)函数功能:设置限位信号的有

38、效电平及制动方式。参数说明:axis 指定轴号;el_mode 限位信号的有效电平和制动方式:                 0立即停、低电平有效;1减速停、低电平有效;                 2立即停、高电平有效;3减速停、高电平有效;  

39、60; 限位信号的有效电平需根据所使用的限位开关的类型进行设置,DMC2410B控制卡默认为低电平有效,若有效电平设置错误,则控制卡会认为相应轴遇到限位信号而停止输出脉冲。2. 原点信号的设置相关函数:Void d2410_set_HOME_pin_logic (WORD axis, WORD org_logic, WORD filter)函数功能:设置原点信号的有效电平以及允许/禁止滤波功能。参数说明:axis 指定轴号;org_logic 原点信号的有效电平:0低电平有效;1高电平有效;filter 允许/禁止滤波功能:0禁止;1允许;    原点信号的有效电

40、平需根据所使用的原点开关的类型进行设置,DMC2410B控制卡默认为低电平有效,若有效电平设置错误,则会导致回原点运动无法启动、回原点方向相反、未遇到原点信号时回原点动作立即结束等现象。3. 急停信号的设置    相关函数:Void d2410_config_EMG_PIN (WORD cardno, WORD enable, WORD emg_logic)函数功能:急停信号设置。急停信号有效时会立即停止所有轴脉冲的输出。参数说明:cardno 卡号enable 电平设置使能:0-电平设置无效;1-电平设置有效;emg_logic 急停信号的有效电平:0-低电平有

41、效;1-高电平有效;    急停信号的有效电平需根据所使用的急停开关的类型进行设置,DMC2410B控制卡默认为低电平有效,若有效电平设置错误,则控制卡会认为收到急停信号而停止所有轴的脉冲输出。四、 伺服专用信号的设置    伺服专用信号是针对伺服电机和驱动器而设置的,包括伺服使能信号、报警信号、误差清除信号、零相信号、编码器反馈输入模式等,当无特殊要求时,可以选择不用控制卡去控制这些信号,但若选择使用这些信号时,必须在程序的初始化过程中进行正确的设置,否则会导致控制卡无法正常输出脉冲、伺服电机无法正常运转、编码器反馈计数无法读取或计

42、数错误等现象,下面分别对这些信号的设置加以说明:1. 伺服使能(Sevon)信号的设置    伺服使能信号的有效电平是通过控制卡的拨码开关进行设置,如图4所示,DMC2410B控制卡默认为高电平有效,若此电平设置错误,则会出现控制卡正常输出脉冲,而伺服电机的轴未锁紧而无法运转的情况,此信号端子可用软件控制,其相关函数及说明如下:相关函数:Void d2410_write_SEVON_PIN (WORD axis, WORD on_off);函数功能:输出对指定轴的伺服使能端子的控制参数说明:axis 指定轴号on_off 设定伺服使能电平状态:0低电平;1高电平。注意:其中SEVON 输出口初始状态可选, 当拨码开关对应的位置为OFF后, 则SEVON 的电平逻辑会取反。 图4 伺服使能信号电平的设置2. 伺服报警(Alarm)信号的设置相关函数:Void d2410_config_ALM_PIN (WORD axis, WORD alm_logic, WORD alm_action)函数功能:设置伺服报警信号的逻辑电平及其工作方式参数说明:axis 指定轴号alm_logic ALM信号的有效电平:0低电平有效;1高电平有效;alm_action ALM信号的制动方式:0立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论