1、 六自由度模块化机器人实验报告指导老师: 团队成员: 六自由度模块化机器人实验报告绪论1、 实验课程简介六自由度工业机器人具有高度的灵活性和通用性,用途十分广泛。本实验是在开放的六自由度机器人系统上,采用嵌入式多轴运动控制器作为控制系统平台,实现机器人的运动控制。通过示教程序完成机器人的系统标定。学习采用 C+编程设计语言编写机器人的基本控制程序,学习实现六自由度机器人的运动控制的基本方法。了解六自由度机器人在机械制造自动化系统中的应用。二、实验课性质、目的和任务性质:独立设置的开放实验。目的:通过六自由度机器人及其在机械自动化中的应用开放实验,使学生能够了解六自由度机器人的基本结构、工作原理
2、、控制系统组成等,掌握机器人传动系统分析和运动学分析的基本方法,学习机器人控制编程,了解六自由度机器人在自动化制造系统中的应用。任务:(1)熟悉六自由度机器人系统基本组成;(2)实现机器人坐标回零和机器人示教;(3)完成机器人运动学分析和求解;(4)完成机器人本体部分三维建模和运动学仿真;(5)掌握机器人的单轴运动控制编程;(6)学习机器人运动轨迹规划及其控制实现方法。三、 实验课教学基本要求1通过该实验课的学习,要求学生熟悉六自由度机器人的机械结构组成;2熟悉机器人传动系统的特点,掌握机器人运动学分析的基本方法;3. 掌握机器人运动学仿真技术;4. 了解机器人控制系统的组成和控制原理;5.
3、掌握机器人基本的运动控制编程。实验内容实验一 对六自由度机器人机电和本实验的基本了解实验目的:了解本实验的基本要求;了解本实验在本学期的基本安排;通过老师的讲解和频频播放,理解在进行本实验时需要补充的知识。实验内容:1)老师给我们播放了一些关于机械人在机械工业当中应用的视频;2)老师解释了创新思想在这方面的重要性,并举出好多相关的现实例子,还推荐我们阅读蓝海风暴和第三次工业革命等有关书籍,以增强我们的创新意识。附:读蓝海战略有感(一)看过蓝海战略这本书后,对如今的商场有了全新的认知,以前仅局限于事物的表面,一个企业只要能够正常的运营就能得到相应的利润,不会有多大的风险,看不到它潜在的危机。现今
4、远不是这样了,在这个世界经济暴破的时代,只想求得一时的安逸,不去谋求长远的发展,那是很难在如今的商场立足的,更何况现在的“商场如战场”竞争是如此的激烈,没有一个完善的战略与认知,要想从商海中脱颖而出是不易的。翻开这本书,仿佛进入了一个全新的领域,作者引用了大量的事实和案例,阐述了“红海”和“蓝海”的内在联系,探求着“蓝海”开创之路。作为一个技术研究人员,做技术是为了什么呢?上升到战略层面的话,那就是开创“蓝海” 。所以说蓝海战略拓展了我的视野,让我对创新这个词,有了更深的理解。首先, 蓝海战略让我对创新有了新的理解。创新不只是技术创新,更重要的是价值创新。创新的目标,不是去创新新奇的东西,而是
5、更好的满足客户的需要。在历史上有很多企业都是获得了技术创新而最后都亏本了,像著名的摩托罗拉铱星计划最终失败了,最主要的原因就是技术上的创新和价值的创新脱节。那么问题就是如何让用先进的技术去赚钱?这恐怕是每一个技术人员在做技术的时候,必须要反复考虑的事情。新技术是价值创新的基础,但不是价值创新的全部。以用户需求为依托,以技术为基石,推出新产品,开拓新业务,才是我们创新的责任。其次, 蓝海战略使我对竞争的概念又有了更新的理解。竞争,不仅仅包括和竞争对手在“红海”中的搏杀,还应包括新产品,新市场领域的占领上。通信领域不仅仅是话费价格的竞争,更重要的是新产品,新业务的竞争。“时移则事易,因为之备” 。
6、客户的需求随着时代的发展在不断变化,蓝海战略要求企业把目光从市场的供给一方转移需求一方,也就是与其与竞争对手死拼,不如推出更能满足客户需要的产品。跨越现有的竞争边界看市场,将不同市场的买方价值元素筛选、重新排序,企业就有可能重建市场和产业边界,开启巨大的潜在需求,从而摆脱“红海”已知市场空间的血腥竞争,开创“蓝海 ”新的市场空间。一个公司必须坚持探索蓝海,因为只有不断发现蓝海才能保证公司是满足客户的要求,才能不会被市场淘汰。只考虑红海是不行的。假如诺基亚一直抱守红海的话,可能它还是在做木材加工。但红海是必须的,有了一套红海的竞争能使你在发现蓝海并迅速在蓝海里确立你的地位,如果没有红海我想即使你
7、找到拉蓝海你也不能迅速占领。蓝海代表着亟待开发的市场空间,代表着创造新需求,代表着高利润增长的机会。尽管有些蓝海完全是在已有产业边界以外创建的,但大多数蓝海则是通过在红海内部扩展已有产业边界而开拓出来的。我们做这个实验的时候也应该具备这方面的认知能力。(二)蓝海战略还阐述了另一个观点:开创蓝海的成功者和失败者之间的分水岭,不在于尖端技术,也不在于“进入市场的时机” 。这些因素有时候会存在,但更多时候,它们并不存在。只有当企业把创新与效用、价格、成本整合一体时,才有价值创新。如果创新不能如此植根于价值之中,那么技术创新者和市场先驱者往往会落到为他人做嫁衣的下场。只重价值,不重创新,就容易使企业把
8、精力放在小步递增的“价值创造”上。这种做法,也能改善价值,却不足以使你在市场中出类拔萃。只重创新,不重价值,则易使创新仅为技术突破所驱动,或只注重市场先行,或一味追求新奇怪诞,结果是常常超过买方的心理接受能力和购买力。因此,很重要的一点就是要把价值创新与技术创新及市场先行区分开。正如蓝海战略这本书所提:“任何一家企业都不可能永葆卓越,正如任何一个行业都无法长盛不衰一样。我们回顾走过的路时会发现,自己和企业一样,做了聪明的事和蠢事。为了更加成功,我们需要研究和认识造成积极变化的那些行为,以及如何才能系统性地复制此类正确的行为。这就是我们所说的聪明的战略推动,并且我们发现,起中心作用的战略行为就是
9、开创蓝海。 ”现今的市场从某一方面说,以达到了饱和的状态,大多数厂商为了市场份额而和竞争对手拼价格,使自己的利润大大的下降,总是幻想占领市场后再提价格,但真正有多少人能做到这样呢? 我们希望用服务来弥补产品的不足,但你的服务再好也赶不上用户需求的不断提高。蓝海战略战略给我们引入了全新的词汇“蓝海” ,蓝海战略要求企业突破传统的血腥竞争所形成的“红海” ,拓展新的非竞争性的市场空间。金和莫博涅教授用大量的事实和案例阐述了“红海”与“蓝海 ”的内在关联从而把“战略”一词阐述得那么通透、明了。 厂商太重视竞争对手,总是想尽办法对抗,而忽视了创造,从而陷入了“红海”(已知市场空间 )战略中。 蓝海战略
10、要求企业把视线从市场的供给一方移向需求一方,从关注并比超竞争对手的所作所为转向为买方提供价值的飞跃。通过跨越现有竞争边界看市场以及将不同市场的买方价值元素筛选与重新排序,企业就有可能重建市场和产业边界,开启巨大的潜在需求,从而摆脱“红海”-已知市场空间-的血腥竞争,开创“蓝海”-新的市场空间。如今要赢得明天,企业不能靠与对手竞争,而是要开创“蓝海“ ,即蕴含庞大需求的新市场空间,以走上增长之路。刚看到蓝海战略 这本书时还不知道是关于什么的书,我很好奇就带着一份好奇心读下去,从书的前言部分直到整本书的结束,我都很惊讶.它让我试目一新对于企业未来的发展有了全新的认知,对于个企业来说持续长久的生存那
11、才是关键性的,只某一时的利,那是长久不了的 ,现在是一个世界经济暴破的时代,企业的发展不能紧跟原有的模式去发展,要以不变应万变去应对未来的发展,更多的时候在别人还没有着手的时候就开始改变,要不断地创新,要有自己特有的别人没有的那你才有在激烈的竞争中胜出,否则你只能尾随其后眼看着别人飞速发展,甚至走上破产.企业的发展一般要经历五个阶段,一,成立: 二立足:三,成长:四,扩张:五成熟.对于每一个阶段的发展 ,它都需要做出相应的策略与计划以谋求更长久的发展,对于每一阶段所发生的问题会采取相应的措施与对策来维持企业的运营,特别是在这个商场竞争激烈的年代,要想立有一席之地没有独特的商品与战略是很难立足的
12、.从看到这全书后,给人有太多的感触,它对企业在未来的竞争市场中脱颖而出做了全面的分析,如何脱离红海进入蓝海。颠覆传统的战略思维的蓝海战略即在当前尚不存在的所有行业(未知的市场空间)开辟出新的市场空间。绕过竞争创造新的市场便成为其核心。在跨度达 100 多年,涉及 30 多个产业的 150 个战略行动的研究中,提出要赢得明天企业不能与对手竞争,而是要开创蓝海,即蕴含庞大需求的新的市场空间,以走上增长之路。我们可以从古埃拉里伯特先生创造的马戏团的蓝海中看到,在竞争中获胜的方法就是打消念头,重建市场边界,注重全局,超越现有竞争需求,遵循合理的战略顺序克服组织障碍并把战略的执行建成战略的一部分。而今我
13、们看到的众多企业都是处于红海中(当前已存在的所有行业,即已知的市场空间) 。在过度拥挤的产业市场中,与对手争抢日益缩减的利润额。如,汽车行业在以往的市场中互相竞争取得更多的市场份额,但福特 T 型车的开发以及克莱斯勒迷你厢车的推出却在不同层次上创出了自己的蓝海。福特 T 型车市场份额从 1908 年的 9%扶摇直上到 1921年的 61%,替代了马车,成为美国首要的运输方式。克莱斯勒的迷你厢车以外观和更得的车内空间为众多家庭所拥有。因此在汽车行业中绕过了红海中血腥的竞争,开创了新的市场边界。于此,我国的众多行业也应在已有的红海中勇于创新,开拓新的市场空间,以便在国际化中占有新的市场。蓝海的竞争
14、有其独特的一面:有自然形成的垄断、价值创新的难度、专利与法律的许可、网络外溢效应的强大、较好的口碑和拥戴者、模仿壁垒等的存在。因此,替代品的作用也被削减。对此我们在开拓蓝海时不得不建立良好的情感导向,发展并创新自己拥有的雄厚技术力量,创立自己的国际性品牌,加强产品差异化建立等。读第三次工业革命有感按照团队的安排,我们利用空余时间读了第三次工业革命一书。作者杰里米里夫金在书中把第三次工业革命概括为可再生能源与互联网技术的结合,预测了未来世界的五个支柱:(1)向可再生能源转型;(2)将每一大洲的建筑转化为微型发电厂,就地收集可再生能源;(3)在建筑物中使用氢和其他存储技术存储间歇能源;(4)利用互
15、联网技术将电力网转化为能源共享网络;(5)将运输工具转向插电式以及燃料电动车,所需电源来自上述电网。作者的构想对于我们当前实验的进行具有较大的启发意义,读后体会很深。细读本书,可以发现作者提出的“能源互联网”模式暗含“制造业数字化”的前提,建设分布化的可再生能源供给体系是为了保证能够实现分散化、个性化生产。2008 年金融危机之后,世界各国尤其是欧美国家都在寻求迅速走出金融危机阴霾的解决方法及重夺制造业发展制高点的机遇。以 3D 打印机为代表的新型生产设备的出现,预示着“数字化制造”的工业发展趋势正在逐渐明朗。通过信息技术和智能技术的融合来弥补制造业的劳动力成本劣势,带动大规模生产向柔性制造转
16、变,促使生产者更贴近消费市场,以适应市场快速反应与个性化服务的需求。如此一来,过去为追逐低劳动力成本而转移到发展中国家的资本,很可能在不久的将来会回到发达国家中去。当前是一个不进则退的关键时刻,我们要趁着资源优势与劳动力优势尚未消失殆尽之时,破除路径依赖,积极融入迎接第三次工业革命的筹划,加快实现整体转型升级。书中指出,要建立以市场为导向的“产学研”结合的能源技术创新体系,增强自主创新能力,其实,这种精神对于我们做实验有很大的帮助。实验二六自由度机器人机电一体化系统学习实验目的:了解六自由度机器人的机械部分、控制部分、驱动执行部分、传感器与反馈部分。实验要求: 通过实验教师的讲解和现场教学,使
17、学生了解六自由度机器人的机械部分、控制部分、驱动执行部分、传感器与反馈部分组成和原理。实验内容:实验教师给学生介绍工业机器人的发展和应用情况,重点介绍在机械工业中的应用,学生结合 GR600 型六自由度机器人,学习六自由度机器人的机械本体部分、控制部分、驱动执行部分、传感器与反馈部分组成和原理。使用的主要仪器:六自由度工业机器人及其控制和执行系统。实验原理:六自由度机器人结构示意图:六自由度机器人技术参数如下图所示:自由度 6负载能力 0.5Kg关节转动 -90 +90关节转动 -45 +45关节转动 -45 +45关节转动 -90 +90关节转动 -45 +45动作范围关节转动 -180 +
18、180关节转动 60o /s关节转动 60o /s关节转动 60o /s关节转动 60o /s关节转动 60o /s最大速度关节转动 60o /s本体重量 10Kg操作方式 示教再现/编程电源容量 单相 220V 50Hz 3A高度 685mm驱动方式 步进电机驱动重复定位精度 -0.8mm+0.8mm机器人的组成部分:机器人的手操作系统,作用是抓住一个工作对象使其按工作或作战要求动作。机器人的眼感测系统,作用是观测工作对象及其周围环境的信息,通过收集信息将其反馈给控制中心,作为对机器人行为控制和协调的依据。机器人神经系统信息传输系统,作用是将传感器和观测器获得的各种信息下传上达,交给各执行及
19、其附属设备。机器人的心脏动力系统,作用是负责向机器人提供动力,主要设备有各种发动机,发电机及其附属设备。机器人的大脑指挥控制系统。作用是加工处理各种信息,指挥、控制机器人的各种行动。实验三六自由度机器人的拆装实验实验目的:通过现场教学和实际拆装,掌握六自由度机器人的机械本体部分结构组成和传动系统。基本要求: 在实验教师的指导下,使学生能够熟悉六自由度机器人的机械本体结构和传动系统组成,了解六自由度机器人各个关节采用的减速器及其减速比,了解六自由度机器人各关节的联动关系。实验内容: 针对六自由度工业机器人,通过现场教学和实际拆装,学生掌握六自由度机器人的基本操作,学习六自由度机器人本体的机械结构
20、组成及工作原理,熟悉各关节的传动关系和减速器特点。使用的主要仪器:六自由度工业机器人本体实验原理:机器人机械系统主要由以下几大部分组成:原动部件、传动部件、执行部件。基本机械结构连接方式为原动部件传动部件执行部件。机器人的传动简图如下图所示。关节传动链主要由伺服电机、减速器构成。关节传动链主要由伺服电机、减速器构成。关节传动链主要由步进电机、同步带、减速器构成。关节传动链主要由步进电机、减速器构成。关节传动链主要由步进电机、同步带、减速器构成。关节传动链主要由步进电机、同步带、减速器构成。实验四六自由度机器人的建模实验实验目的:对六自由度机器人的一个关节进行简单的建模。实验要求:在实验教师的指
21、导下,利用上次拆装六自由度机器人的经验,对其重要零件利用测量器材测量出其各个的量,然后利用计算机进行简单的建模。实验内容:通过拆装六自由度机器人,测量出其主要的参数,进行简单的建模。使用的主要仪器:六自由度工业机器人本体具体的见附录实验五六自由度机器人运动学分析和各关节坐标回零与示教练习实验目的:通过实际操作六自由度机器人,学习六自由度机器人运动学分析基本方法,理解机器人各关节坐标回零的含义,掌握机器人系统各关节坐标回零的方法,掌握机器人示教的基本方法。实验要求:在实验教师的指导下,要求学生掌握六自由度机器人运动学分析的基本方法,通过现场实际操作,熟悉六自由度机器人的各关节坐标回零和机器人示教
22、的基本方法。实验内容: 针对六自由度机器人,掌握基本的机器人运动学分析方法,完成基本的运动学正解和反解,学生通过实际操作熟练掌握六自由度的各关节坐标回零,掌握以机器人的关节坐标和直角坐标方法进行机器人示教的方法。通过实验操作理解机器人直角坐标和关节坐标的关系。使用的主要仪器:六自由度工业机器人本体及其控制系统。实验操作:1、 连接好气路,启动气泵到预定压力;2、 启动计算机,运行机器人软件;3、 接通控制柜电源,按下“启动”按钮;4、 点击主界面“机器人复位”按钮,机器人进行回零运动。观察机器人的运动,六个关节全部运动完成后,机器人处于零点位置;5、 点击“关节示教”按钮,出现如图 1-4 所
23、示界面,按下“打开”按钮,在机器人软件安装目录下选择示教文件 BANYUN.RBT6,示教数据会在示教列表中显示;6、 装配操作演示,在 2 个支架的相应位置上分别放置轴和轴套,然后按下“再现”按钮,机器人实现装配动作;7、 运动完毕后,按下“复位”按钮,机器人回到零点位置,关闭对话框;8、 如果想再做一次装配动作,把轴放回相应位置,按下“再现”按钮即可;9、 点击“机器人复位”按钮,使机器人回到零点位置;10、 按下控制柜上的“停止”按钮,断开控制柜电源;11、 退出机器人软件,关闭计算机。注意事项:1、在老师的指导下进行实验;2、机器人通电后,身体的任何部位不要进入机器人运动可达范围之内;
24、3、机器人运动不正常时,及时按下控制柜的急停开关。实验五 六自由度机器人基本的运动轨迹规划和基本的控制编程实验目的:学习六自由度机器人基本的运动轨迹规划方法,学习基本的运动控制编程。实验要求:掌握单关节(单轴)运动和多关节(多轴)顺序运动规划,能够采用 VC+编写单轴运动控制程序和多轴运动顺序控制程序。实验内容:在实验教师指导下,学生采用运动控制开发平台,学习掌握单关节(单轴)运动和多关节(多轴)顺序运动规划,学习采用 VC+编写单轴运动控制程序和多轴运动顺序控制程序。使用的主要仪器:六自由度工业机器人、运动控制开发平台。实验步骤1、 建立新工程1) 、打开Visual C+ 6.0;2) 、
25、在菜单中选择 New Project 项目;3) 、选择 MFC Appwizard exe项;4) 、选择工程保存路径,如 D:;5) 、输入工程名 Example6s,单击 OK,如图 9-2 所示。图 9-2 New Project 创建界面在后面弹出的窗体中选择 Dialog based 项,其它按默认设置,单击“Finish”按钮。出现下一层窗体后,直接再单击 OK。创建完成 Example6s 工程。1、 首先将配套光盘中的s6s1文件夹下的动态链接库文件s6s1v100.dll、s6s1.h、s6s1v100.lib、mac2sspv102.dll、mac2ssp2v101.dl
26、l 和s6s1cfg.ini六个文件拷贝到刚刚建立的Example6s工程的工程文件夹下。2、 导入链接库选择“菜单ProjectSettings”项,在 Project Settings 对话框中选择 Link 选项卡,在 Object/library modules 栏下面的输入框中加入 s6s1v100.lib,单击 OK 完成动态链接库的链接。图 9-3 Project Settings 对话框3、 用户界面设计首先修改对话框标题为“模块化教学机器人实例程式” 。图 9-4单击窗体外框。拖拽窗体到合适大小。以图 9-12 为样本制作用户界面,并按下面步骤修改相应 ID 和标题。1) 、
27、添加单选按钮控件首先添加一个单选按钮到窗体,右键单击新加入的控件,在弹出菜单里单击Properties 项,如图 9-5 所示。图 9-5将 ID 改为 IDC_XMOTOR,Caption 改为“模块 1”,选中 Group 复选框,如图 9-6图 9-6关闭 Radio Button Properties 对话框。同样方法再添加 11 个单选按钮,ID 和控件标题按下表修改,未注明 Group 选择的不勾选 Group 项目。控件 ID 控件标题 标注IDC_XMOTOR 模块 1 Group 选择有效IDC_YMOTOR 模块 2IDC_ZMOTOR 模块 3IDC_UMOTOR 模块
28、4IDC_VMOTOR 模块 5IDC_WMOTOR 模块 6IDC_SPEED 速度模式 Group 选择有效IDC_POSITION 位置模式IDC_PDIR 正向 Group 选择有效IDC_NDIR 负向IDC_RADIO11 匀速 Group 选择有效IDC_RADIO12 加速2)、添加静态文本控件添加静态文本控件,在右键弹出菜单中单击 Properties 项,Caption 标题改为“运行速度” ,如图 9-7 所示。图 9-7再添加三个静态文本控件到窗体中,标题分别改为“目标位置” , “度/秒” , “度” ,修改后窗体如图 9-8 所示。图 9-83)、添加编辑框控件添加
29、两个编辑框控件到窗体,将 ID 分别改为 IDC_FH 和 IDC_TRANS,如下表所示。控件 ID 控件标题 标注IDC_FH 对应运行速度IDC_TRANS 对应目标位置4)、添加一个复选框按钮,在右键弹出菜单中单击 Properties 项,修改 ID 为IDC_CHECK_HAND,标题修改为“手爪张开” , 如图 9-9 所示。控件 ID 控件标题 标注IDC_CHECK_HAND 手爪张开 属性中 Styles 选项卡下Push-link 项选中图 9-9单击 Styles 选项卡,勾选 Push-like 控件,如图 9-10 所示。图 9-105)、将原有的确定按钮 ID 改
30、为 IDC_TRANS_START,标题改为“启动” ,再添加一个按钮,修改 ID 为 IDC_SUDDEN_STOP,标题为“立即停止” ,如下表所示。控件 ID 控件标题 标注IDC_TRANS_START 启动IDC_SUDDEN_STOP 立即停止IDCANCEL 退出所有控件添加完成之后,逐步调整控件大小及位置,如图 9-11 所示。图 9-116)、添加组框 6 个,修改 ID 和标题如下表所示。控件 ID 控件标题 标注IDC_STATIC 关节选择IDC_STATIC 运动方式IDC_STATIC 运行参数IDC_STATIC 运动方向IDC_STATIC 启动方式IDC_ST
31、ATIC 运动测试最终窗体如图 9-12 所示。图 9-127) 、添加成员变量选择“菜单ViewClassWizard” ,在弹出的对话框中选择“Member Variables”选项卡,按下表所示为控件添加成员变量。控件 ID 变量类型 变量名称IDC_XMOTOR Int m_axisIDC_SPEED Int m_runmodIDC_CHECK_HAND BOOL m_handIDC_TRANS Double m_transIDC_FH Double m_fhIDC_PDIR Int m_dirIDC_RADIO11 Int m_acc4、 代码添加1) 、双击窗体进入代码区,将构造函
32、数中成员变量的默认值修改为:m_axis = 0;m_hand = FALSE;m_fh = 5.0;m_trans = 15.0;m_runmod = 0;m_dir = 0;m_acc = 0;2) 、在源程序开始部分加入对动态链接库头文件的引用,代码如下:#include “s6s1.h”3) 、找到 OnInitDialog()函数,在/ TODO: Add extra initialization here后添加如下代码:BOOL CExample6sDlg:OnInitDialog()/ TODO: Add extra initialization heres6s1_set_cri
33、tical(NULL);/系统内部会创建一个临界段对象维护线程安全s6s1_init(1,NULL,true); / 初始化s6s1_select(1); /选择 1return TRUE; / return TRUE unless you set the focus to a control4) 、双击“手爪张开” 复选按钮,建立单击响应函数(默认函数名) ,并添加代码:void CExample6sDlg:OnCheckHand() / TODO: Add your control notification handler code hereif(!UpdateData(true) ret
34、urn;if(m_hand)s6s1_hand(1);/张开GetDlgItem(IDC_CHECK_HAND)-SetWindowText(“手爪张开“);elses6s1_hand(0);/闭合GetDlgItem(IDC_CHECK_HAND)-SetWindowText(“手爪闭合“);5)、 双击“启动”按钮,建立单击响应函数(默认函数名) ,并添加代码:void CExample6sDlg:OnTransStart() / TODO: Add your control notification handler code hereif(!UpdateData(true) return
35、;double spd=m_fh; /定义 m 轴的运动速度if(spd0) spd=-1*spd;if(m_runmod=0)/速度模式if(m_dir=1) spd=spd*(-1);s6s1_moveone(m_axis,m_trans,spd,true,m_acc=1);/加速移动 m 轴elses6s1_moveone(m_axis,m_trans,spd,false,m_acc=1);/以指定速度运行 m轴6) 、双击“立即停止”按钮,在代码区添加以下代码:void CExample6sDlg:OnSuddenStop() / TODO: Add your control noti
36、fication handler code hereif(!UpdateData(true) return;/如果控件显示中的数据不在变量范围之内,更新显示数据到变量成功,返回,s6s1_stop_axis(m_axis); /停止 m 轴的运动7) 、双击“退出”按钮,在代码区添加以下代码:void CExample6sDlg:OnCancel() / TODO: Add extra cleanup heres6s1_close();/关闭CDialog:OnCancel();控制卡链接库 VC 编程:1、 建立新工程1) 、打开Visual C+ 6.0;2) 、在菜单中选择 New Pr
37、oject 项目;3) 、选择 MFC Appwizard exe项;4) 、选择工程保存路径,如 D:;5) 、输入工程名 ExampleVC,单击 OK;6)、在后面弹出的窗体中选择 Dialog based 项,其它按默认设置,单击 Finish。出现下一层窗体后,直接单击 OK。至此 ExampleVC 工程创建完成。2、 将配套光盘中的s6s1文件夹下的动态链接库文件mac2ssp2v101.dll、mac2ssp2v101.lib、MAC2SSP2v101.h、mac2sspv102.dll、mac2sspv102.lib和MAC2SSPv102.h六个文件拷贝到刚刚建立的Exam
38、pleVC工程的工程文件夹下。3、 导入链接库选择“菜单ProjectSettings”项,在 Project Settings 对话框中选择 Link 选项卡,在 Object/library modules 栏下面的输入框中输入“mac2ssp2v101.lib mac2sspv102.lib”,单击 OK,将链接库导入到 ExampleVC 工程中。图 10-1 Project Settings 对话框2、 用户界面设计首先修改对话框标题为“模块化教学机器人实例程式” ,单击窗体外框。拖拽窗体到合适大小。以图 10-9 为样本制作用户界面,并按下面步骤修改相应 ID 和标题。1) 、 添
39、加单选按钮控件首先添加一个单选按钮到窗体,右键单击新加入的控件,在弹出菜单里单击Properties 项。图 10-2将 ID 改为 IDC_XMOTOR,Caption 改为“模块 1”,选中 Group 复选框,如图 10-3 所示。图 10-3关闭 Radio Button Properties 对话框。同样方法再添加 11 个单选按钮,ID 和控件标题按下表修改,未注明 Group 选择的不勾选。控件 ID 控件标题 标注IDC_XMOTOR 模块 1 Group 选择有效IDC_YMOTOR 模块 2IDC_ZMOTOR 模块 3IDC_UMOTOR 模块 4IDC_VMOTOR 模
40、块 5IDC_WMOTOR 模块 6IDC_SPEED 速度模式 Group 选择有效IDC_POSITION 位置模式IDC_PDIR 正向 Group 选择有效IDC_NDIR 负向IDC_RADIO11 匀速 Group 选择有效IDC_RADIO12 加速2)、添加静态文本控件添加静态文本控件,在右键弹出菜单中单击 Properties 项,Caption 标题改为“运行速度” ,如图 10-4 所示。图 10-4再添加三个静态文本控件到窗体中,标题分别改为“目标位置” , “度/秒” , “度” 。修改后窗体如图 10-5 所示。图 10-53)、添加编辑框控件添加两个编辑框控件到窗
41、体,将 ID 分别改为 IDC_FH 和 IDC_TRANS,如下表所示。控件 ID 控件标题 标注IDC_FH 对应运行速度IDC_TRANS 对应目标位置4)、添加一个复选框控件,在右键弹出菜单中单击 Properties 项,修改 ID 为IDC_CHECK_HAND,标题修改为“手爪张开” ,如图 10-6 所示。控件 ID 控件标题 标注IDC_CHECK_HAND 手爪张开 属性中 Styles 选项卡下Push-link 项选中图 10-6单击 Styles 选项卡,勾选 Push-like 控件,如图 10-7 所示。图 10-75)、将原有的确定按钮 ID 改为 IDC_TR
42、ANS_START,标题改为“启动” 。再添加一个按钮,修改 ID 为 IDC_SUDDEN_STOP,标题为“立即停止” ,如下表所示。控件 ID 控件标题 标注IDC_TRANS_START 启动IDC_SUDDEN_STOP 立即停止IDCANCEL 退出所有控件添加完成之后,逐步调整控件大小及位置如图 10-8 所示。图 10-86)、添加成组框控件 6 个,修改 ID 和标题如下表所示。控件 ID 控件标题 标注IDC_STATIC 模块选择IDC_STATIC 运动方式IDC_STATIC 运行参数IDC_STATIC 运动方向IDC_STATIC 启动方式IDC_STATIC 运动测试最终窗体如图 10-9 所示。