工业机器人控制系统_第1页
工业机器人控制系统_第2页
工业机器人控制系统_第3页
工业机器人控制系统_第4页
工业机器人控制系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、1 更多论文请加 QQ 1634189238 492186520 第一章 绪论 1.1工业机器人的发展及分类 1.1.1工业机器人的发展 工业机器人的发展通常可规划分为三代: 第一代工业机器人:通常是指目前国际上商品化与使用化的 “可编程的工业 机器人”,乂称“示教再现工业机器人”,即为了让工业机器人完成某项作业,首 先由操作者将完成该作业所需要的各种知识(如运动轨迹、作业条件、作业顺序 和作业时间等),通过直接或间接手段,对工业机器人进行“示教”,工业机器人 将这些知识记忆下来后,即可根据“再现”指令,在一定精度范围内,忠实的重 复再现各种被示教的动作。1962年美国万能自动化公司的第一台

2、Unimate工业 机器人在美国通用汽车公司投入使用,标志着第一代工业机器人的诞生。 第二代工业机器人:通常是指具有某种智能(如触觉、力觉、视觉等)功能 的“智能机器人”。即有传感器得到触觉、力觉和视觉等信息计算机处理后,控 制机器人的操作机完成相应的适当操作。1982年美国通用汽车在装配线上为工 业机器人装备了视觉系统,从而宣布了新一代智能工业机器人的问世。 第三代工业机器人:即所谓的“只治式工业机器人”。它不仅具有感知功能, 而且还有一定的决策及规划能力。第一代工业机器人目前仍处在实验室研究阶 段。工业机器人经历了诞生-成长-成熟期后,已成为制造业中不可缺少的核心 装备,世界上有约75万台

3、工业机器人正与工人朋友并肩战斗在个条生产线上, 特种机器人作为机器人家族的后起之秀,由于其用途广泛而大有后来居上之势, 仿人机器人、农业机器人、服务机器人、水下机器人、医疗机器人、军用机器人、 娱乐机器人等各种用途发特种机器人纷纷面世,而且正以飞快的速度向实用化迈 进。 我国的工业机器人从80年代“七五”科技攻关开始起步,在国家的支持下, 通过“七五”、“八五”科技攻关,目前已基本掌握了机器人的操作机的设计制造 技术、控制系统硬件和软件设计技术、运动学和轨迹规划技术、生产了部分机器 人的关键元器件,开发出喷漆、焊弧、点焊、装配、搬运等机器人;其中有 130 多台配套喷漆机器人在二十与家企业的近

4、 30条自动喷漆生产线上获得规模应 用,弧焊机器人已应用在汽车制造厂的焊装线上。 但总的来看,我国的工业机器人技术及其工程应用水平和国外比还有一定的 距离,如:可靠性低于国外产品;机器人应工程起步较晚,应用领域窄,生产线 系统技术与国外比有差距;在应用规模上,我国已安装的国产工业机器人约 200 台,约占全球已安装台数的万分之四。 以上原因主要是没有形成机器人产业, 当 前我国的机器人生产都是应用户的要求,“一客户,一次重新设计”,品种规格多、 批量小、零部件通用化程度低、供货周期长、成本也不低,而且质量、可靠性不 稳定。因此迫切需要解决产业化前期的关键技术, 对产品进行全面规划,搞好系 列化

5、、通用化、模化设计,积极推进产业化进程。 1.1.2工业机器人的分类 工业机器人按不同的方法可分下述类型 工业机器人按操作机坐标形式分以下几类:(坐标形式是指操作机的手臂在 运动时所取的参考坐标系的形式。) (1) 直角坐标型工业机器人 其运动部分由三个相互垂直的直线移动(即 PPP)组成,其工作空间图形为 长方形。它2 在各个轴向的移动距离,可在各个坐标轴上直接读出,直观性强,易 于位置和姿态的编程计算,定位精度高,控制无耦合,结构简单,但机体所占空 间体积大,动作范围小,灵活性差,难与其他工业机器人协调工作。 (2) 圆柱坐标型工业机器人 其运动形式是通过一个转动和两个移动组成的运动系统来

6、实现的, 其工作空 问图形为圆柱,与直角坐标型工业机器人相比,在相同的工作空间条件下,机体 所占体积小,而运动范围大,其位置精度仅次于直角坐标型机器人, 难与其他工 业机器人协调工作。 (3) 球坐标型工业机器人 乂称极坐标型工业机器人,其手臂的运动由两个转动和一个直线移动(即 RRP厂个回转,一个俯仰和一个伸缩运动)所组成,其工作空间为一球体,它可 以作上下俯仰动作并能抓取地面上或教低位置的协调工件, 其位置精度高,位置 误差与臂长成正比。 (4) 多关节型工业机器人 乂称回转坐标型工业机器人,这种工业机器人的手臂与人一体上肢类似, 其 前三个关节是回转副(即RRR),该工业机器人一般由立柱

7、和大小臂组成,立柱 与大臂见形成肩关节,大臂和小臂间形成肘关节,可使大臂做回转运动和俯仰摆 动,小臂做仰俯摆动。其结构最紧凑,灵活性大,占地面积最小,能与其他工业 机器人协调工作,但位置精度教低,有平衡问题,控制耦合,这种工业机器人应 用越来越广泛。 (5) 平面关节型工业机器人 它采用一个移动关节和两个回转关节(即 PRR),移动关节实现上下运动, 而两个回转关节则控制前后、左右运动。这种形式的工业机器人乂称 (SCARA(Seletive Compliance Assembly Robot Arm)装配机器人。在水平 方向则具有柔顺性,而在垂直方向则有教大的刚性。它结构简单,动作灵活,多

8、用于装配作业中,特别适合小规格零件的插接装配,如在电子工业的插接、装配 中应用广泛。 工业机器人按驱动方式分以下几类: (1) 气动式工业机器人 这类工业机器人以压缩空气来驱动操作机, 其优点 是空气来源方便,动作迅速,结构简单造价低,无污染,缺点是空气具有可压缩 性,导致工作速度的稳定性较差,乂因气源压力一般只有 6kPa左右,所以这类 工业机器人抓举力较小,一般只有几十牛顿,最大白余牛顿。 (2) 液压式工业机器人 液压压力比气压压力高得多,一般为70kPa左右, 故液压传动工业机器人具有较大的抓举能力,可达上千牛顿。这类工业机器人结 构紧凑,传动平稳,动作灵敏,但对密封要求较高,且不宜在

9、高温或低温环境下 工作。 (3) 电动式工业机器人 这是目前用得最多的一类工业机器人,不仅因为 电动机品种众多,为工业机器人设计提供了多种选择,也因为它们可以运用多种 灵活控制的方法。早期多采用步进电机驱动,后来发展了直流伺服驱动单元,目 前交流伺服驱动单元也在迅速发展。这些驱动单元或是直接驱动操作机,或是通 过诸如谐波减速器的装置来减速后驱动,结构十分紧凑、简单。 1.2工业机器人控制系统 1.2.1工业机器人控制系统的特点 工业机器人的控制技术是在传统机械系统的控制技术的基础上发展起来的, 因此两者之间并无根本的不同但工业机器人控制系统也有许多特殊之处。 其特点 如下: 3 (1) 工业机

10、器人有若十个关节,典型工业机器人有五六个关节,每个关节由 一个伺服系统控制,多个关节的运动要求各个伺服系统协同工作。 (2) 工业机器人的工作任务是要求操作机的手部进行空间点位运动或连续轨 迹运动,对工业机器人的运动控制,需要进行复杂的坐标变换运算, 以及矩阵函 数的逆运算。 (3) 工业机器人的数学模型是一个多变量、非线性和变参数的复杂模型, 各变量之间还存在着耦合,因此工业机器人的控制中经常使用前馈、 补偿、解耦 和自适应等复杂控制技术。 (4) 较高级的工业机器人要求对环境条件、控制指令进行测定和分析,采用 计算机建立庞大的信息库,用人工智能的方法进行控制、决策、管理和操作,按 照给定的

11、要求,自动选择最佳控制规律。 工业机器人的控制系统发基本要求有: (1) 实现对工业机器人的位置、速度、加速度等控制功能,对于连续轨迹运 动的工业机器人还必须具有轨迹的规划与控制功能。 (2) 方便的人-机交互功能,操作人员采用直接指令代码对工业机器人进行 作用指示。使用工业机器人具有作业知识的记忆、修正和工作程序的跳转功能。 (3) 具有对外部环境(包括作业条件)的检测和感觉功能。为使工业机器人 具有对外部状态变化的适应能力,工业机器人应能对诸如视觉、力觉、触觉等有 关信息进行测量、识别、判断、理解等功能。在自动化生产线中,工业机器人应 用与其它设备交换信息,协调工作的能力。 1.2.2工业

12、机器人控制系统的分类: 工业机器人控制系统可以从不同角度分类, 如控制运动的方式不同,可为关 节控制、笛卡尔空间运动控制和自适应控制; 按轨迹控制方式的不同,可分为点 位控制和连续轨迹控制;按速度控制方式的不同,可分为速度控制、加速度控制、 力控制。 程序控制系统:给每个自由度施加一定规律的控制作用, 机器人就可实现要 求的空间轨迹。 自适应控制系统:当外界条件变化时,为保证所要求的品质或为了随着经验 的积累而自行改善控制品质,其过程是基于操作机的状态和伺服误差的观察, 再 调整非线性模型的参数,一直到误差消失为止。这种系统的结构和参数能随时间 和条件自动改变。 人工智能系统:事先无法编制运动

13、程序,而是要求在运动过程中根据所获得 的周围状态信息,实时确定控制作用。当外界条件变化时,为保证所要求的品质 或为了随着经验的积累而自行改善控制品质, 其过程是基于操作机的状态和伺服 误差的观察,再调整非线性模型的参数,一直到误差消失为止。这种系统的结构 和参数能随时间和条件自动改变。因而本系统是一种自适应控制系统。 第二章 基于运动卡的控制系统的建立 2.1总体系统的构建 2.1.1总体方案的确定 机器人控制系统是一种典型的多轴实时运动控制系统。 传统的机器人控制系 统基本上是设计者基于自己的独立结构和生产目的而开发,它采用了专用计算 机、专用机器人语言、专用微处理器的封闭式体系结构。 这种

14、结构的控制器存在 制造和使用成本高,开发周期长,升级换代困难,无法添加系统的新功能等一系 列缺点。该系统基于 TRIO运动控制卡的开放式结构机器人控制系统,采用 IPC+DSP的结构来实现机器人的控制。这种机器人控制系统采用开放式硬件、 软件结构,可以根据需要方便地扩展功能,具有良好的开放性和扩展性,能适应 于不同类型机器人或机器人自动生产线。通过运动控制卡在工业4 机器人控制系统 中的应用,根据运动控制的相关理论和直流伺服电机的具有不易受十扰、 易于用 微机实现数字控制、无积累误差等特性以及其动作迅速、反映快、维护简单、可 实现过载自动保护等特点作为相关背景的基础之上提出了基于 TRIO运动

15、控制卡 的自动化程度和定位精度均较高的工业机器人控制系统。这种机器人控制系统的 重要特点在于它采用通用个人计算机加 DSP 一多控制回路的开放式体系结构以 及它的网络控制特性。 2.1.2可行性论证 目前,由于高起动转矩、大转矩、低惯量的交、直流伺服电动机在工业机器 人中得到广泛应用一般负载1000N(相当100kgf)以下的工业机器人大多采用电 伺服驱动系统。所采用的关节驱动电动机主要是 AC伺服电动机。其中,交流伺 服电动机、直流伺服电动机、直流驱动电动机( DD)均采用位置闭环控制,一 股应用于高精度、高速度的机器人驱动系统中。利用运动控制卡(运动控制和逻 辑算法有机的结合,轻松实现多种

16、运动形式的运动控制器)对机器人驱动系统进 行控制能够有效地提高整个机器人系统的性能及开发效率。 由于机器人需要精确 的控制和精准的定位,采用合适的直流电机调速器和光电轴角编码器即能满足要 求。 PCI208是Trio Motion公司的一款基于PC的PCI总线控制的数字运动控 制卡,该控制卡采用了独立的120MHZ大DSP微处理器技术,提高了电机运动 和计算速度。该控制卡可以控制2 8轴的伺服电机或步进电机或者二者的任意 结合;32-bit的33MZ, 2.2版本的PCI总线。采用100-pin的高精度屏蔽电缆与 外部转接板模块连接,提高了设备的抗十扰信号的能力。提供 ActiveX可以用 V

17、B、VC C/C+玲高级语言根据设备的需要进行二次开发,还有 CAN总线口,可 以根据设备的需要对I/O和摸拟输入口进行扩展,能够满足要求。 由于所选用的硬件设备都是市场上成熟的,综上所述,本设计题目的理论基 础、整体的构想和所实施的方案是切实可行的, 在老师的指导下,借鉴相关书籍, 通过通过自己的学习,能够达到本次设计的要求。 2.1.3系统的构成 该系统主要由个人PC PCI 208系列TRIO运动控制卡、运动卡外接线板、 ZK4系列直流电机调速器、光电轴角编码器、系统工作状态检测输入行程开关等 组成。TRIO运动控制卡通过对直流电机调速器发出模拟电压信号对直流伺服电 动机的转上速、角位移

18、、正、反转等进行控制,从而外控制输出电机驱动;且还 在系统中采用光电轴角编码器对电机的参数运行状态以及程序的运行状态进行 反馈;另外还设置行程开关对电机的行程位置进行控制。 2.1.4机器人控制工作原理 机器人具有三个自由度(即:RRP-大臂回旋、仰角、小臂伸缩三个运动) 和一个爪开合动作,采用全电机驱动控制。机器人本体由机身、大臂、小臂、手 找等组成。机身固定在机械小车上;大臂可以绕着机身在水平面内和垂直面内旋 转;小臂在丝杆的传动下,可以前后进行伸缩。在大臂和小臂的共同作用下,机 械手的手爪能够接近要抓的物体。当物体被控制在手爪的控制范围内时, 手爪火 紧物体,然后通过大臂的旋转和小臂的伸

19、缩运动,最终将物体置丁规定的位置。 机器人大臂回旋运动和大臂仰角运动均采用直流电动机、谐波减速器传动, PWF#宽调速器控制,可实现20-2000mm/Mi优级调速控制。 机器人本体结构如下图: 5 1机械手爪 2 机械手小臂 3 机械手大臂 4 机身 手爪开合采用连杆及螺旋机构,同步电机驱动,其结构简单,无调速器,电 路控制方便。由丁在机械结构设计中采用了谐波减速器、 滚珠丝杆、滚珠直线导 轨等精密传动装置,机器人手爪定位可达到较高的精度。 控制系统电气原理图如图,其工作原理如下: 机器人大臂回旋运动和大臂仰角运动均采用直流电动机 M1和M2空制,小臂 伸缩采用直流电动机 M3控制,手爪的开

20、合由单相交流电动机 M4控制,每个电 动机均由两个中间继电器控制其正、反转。首先是各运动轴分别复位,电动机 ml、m2 m3反转输出端口 OUT11 OUT13 OUT1骊出24V电压各轴正向运动。 当它们踏上了各自的行程开关时外接 24V分别输入到INPUT0 INPUT1 INPUT2 的输入端口由运动控制卡进行判断并作为运动的原点。然后,当运动控制卡的 24 V电压输出端口 OUT11 俞出指令时,接通继电器 KA4,电动机M1得点正转, 机器人大臂向上仰运动,到达极限位置时撞下前限位开关 ST1,继 电 器KA4线圈 断电机停止运转。当运动控制卡电压输出端口 OUT12输出指令时,继电

21、器 KA5 线圈得电,电动机M1得电反转机器人大臂向下仰运动,到达极限位置时撞下后 限位开光ST2,继电器KA5断电,电机停止运转。电动机 M1的运动控制由运动 控制卡的+10/-10V模拟电压输出端口 OUT0俞出的指令控制。当运动控制卡电压 输出端口 OUT13俞出指令时,继电器KA6线圈得电,电动机M2得电正转,机器 人大臂向左旋运动,到达极限位置时撞下前限位开关 ST3,继电器KA6断电,电 机停止运转。当运动控制卡电压输出端口 OUT14俞出指令时,继电器KA7线圈得 电,电动机M2得电反转,机器人大臂向右旋运动,到达极限位置时撞下后限位 开关ST4,继电器KA7断电,电机停止运转,

22、电动机 M2的运转速度由运动控制 卡+10/-10V模拟电压输出端口 OUT佐出指令控制。当运动控制卡电压输出端口 OUT1骊出指令时,继电器KA8线圈得电,电动机 M3得电正转,机器人小臂向 前伸运动, 到达极限位置时撞下前限位开关 ST5,继电器KA8线圈断电,电机 停止运转,当运动控制卡输出断口 OUT1晰出指令时继电器KA9线圈得电,电动 机M3得电反转,机器人小臂向后缩运动到过极限位置时撞下后限位开关 ST6, 继电器KA9断电,电机停止运动,电动机 M3运转速度由运动控制卡+10/-10V 模拟电压输出端口 OUT没出指令控制。继电器 KA1和KA2分别控制机器人手爪 的开合当向前

23、伸时OUTPUT帖出24V,撞到前限位开关停止运动;当 OUTPUT9 出时向后伸缩撞到后限位开关停止运动。 光电轴角编码器由三个编码器输入端口 反馈回各轴的实际运动位置给运动控制卡。 6 2.2软件介绍 2.2.1软件编程语言的特点 TRIO Basic 一种类似欲BASIC的语言,简单明了,易学易用。 OCX Component 在VB、VC Delphi、C+Builder中,直接调用运动函数 PCI208的安装 运行 Install_TrioPCMotion_1_2_3.exe 程序。该程序将 a) 自斯将 PCI208而设备驱动文件 TrioPCI.sys 安装到 目录下; b) 自

24、动将 Active 控件 TrioPC.ocx 及其帮助文件 Trio Pc Motion ActiveX.chm 安装到 C:ProgramFilesTrioMotionTrio PC 目录下。安 装成功后,在“设备管理器”中可查看有关 PCI208的相关信息,如下图示 程序界面 在VB6.0中打开工程文件“ Project1.vbp ”,在编译环境中,直接运行(F5),7 程序操作画面及介绍如下: 首先进入Forml显示“欢迎使用PCI208运动控制操作界面”,单击进入按扭 便进入Form2程序界面。如果单击打开按 ffl TRIOPCI由红色小方块变为绿色小方 框,表明PCI208和OC

25、X之间已成功建立连接。如果仍然为红色表明 PCI208和 OC次间的连接未成功建立。在此程序中,可进行运动控制和轴位置及 I/O状态 显示等功能。运动控制主要是 OUTPUT8-1的输出的开关控制,还有INPUT33-35 的原点检测控制,及运动距离输出控制等方面。其中关闭按扭是关闭 trio 软件 的连接;运动按扭是根据输入的距离值进行运动; 复位按扭是进行各轴的原点复 位运动;单击退出操作便结束程序的执行。 8 2.2.2 OCX Component ED虫 iiliillll BH 序 n Frr prjauar) X- 甫胜(! 口骂力出温罟邺O)苜工(D曲 哦最 海尝 ()m 顷卫渤

26、 M工(圉祉(需鲫 却尊 :图诲园田副中部工丑fflw+iaxoo OdOUi叫业中部工回0 O R F 启匿 ) / r 园 L O F E 匪1溟 qe| I彳尊皓今 10 11 2.2.3指 W 系统 (1)轴指令BASE AXIS:指定以下运动指令所对应的轴号 UNITS:指定每一个编程单位所对应的指令脉冲数 ATYPE指定轴类型 SPEED:指定轴运行速度 DECELJ旨定轴减速度 OFFPO:S位置偏置 DPOSW取指令位置 AIN:读取模拟量输入 FHSPEE改置进给保持速度 MOVEABS:对运动 REVERSE!速负向运动 DATUMU原点 DEFPOSt新定义当前位置 WD

27、OG:出使能 DAC设置模拟量输出 OP:设置开关量输出 PRINT:显示 FOR TO. STEP NEXT循环控制 GOTOSUffi用子程序 ON.GOTOSU杂件调用子程序 WHILE条件判断 WAIT UNTIL:等待 (5 )运算处理指令 1、 算术运算:+、-、*、/、SQR EXP 2、 逻辑运算:=、=、=、AND NOT、OR XOR 2.2.4运动控制程序如下: J I 固 Din bopwin M Bocilehn rr L FCI. Ho E LAd s-E = $k_sD4 f-aul LHs t/kd.d - AX.E Tr i rfCI Baud = fik.n

28、UtfftiltPciB rd boj43i 二 Tr I aPCI. QpAH tk_EiiD4f A.U! tLa Eik g_TLdd fultHoda.) C ll Up d*ttBTLtt OBS toiles RAEr A-di EndL Sub Fi*也L* Sub C i ek 0 If Tri aFCI. I sDp tri7ik_ndef 4J1 J Th皿 TridFCI.CLdE* 面槌ulL机如 End If tLl Uji Llitvl Rp (c_nd&f aul tllod*) Ih n till pr47*3vt End. If End Swb Fri

29、 V4t* Sub C wvn ULI!4C1 I ck Q Dan s AE Intecer Din lok As BaolA&TL Dan dresdv l As Double If Tri ciFCI. I sDp n (cndAf 4J1 Thru - True I f g_brhmjLLiLMov4 Thm For WKU = 0 To 2 b k = TriioJTi.opaa + 2 *:加服.uj ACCEL:旨定轴加速度 DATUM_lNf定原点输入点 MPOS如实际位置 DAC设置模拟量输出 FHOLD_INS置进给保持输入点 (2 )运动指令 MOVES目对运动

30、FORWAR匝速正向运动 RAPIDSTOP亭止 MOVEMODIFY动中改变目标位置 ADD_DACr闭环控制 (3 )输入、输出指令 AIN:读取模拟量输入 IN:读取开关量输入 PSWITCHft置比较输出 (4 )程序流程控制 IF, THEN ELSE .ENDIF:条件判断 GOTCffi条件跳转 ON GOT软件跳转 REPEAT.UNTIL重复执行控制 WAIT IDLE:等待运动结束 WA: Tf i vat* C witn uidl _C1 h dk 0 立件更)遍揖I百 投图俗 工程心 格式钮)词信勤 津仃 Si4CU)图晟 工旦中 外技程序 窗口电1帮助如 A商 GMU

31、fr ifeX I 30 进入 12 Private Sub Command1_Click() Form2.Show Unload Form1 End Sub Private Sub Form_Load() Label1.Caption =欢迎使用 PCI208运动控制界面 Label1.FontSize = 18 Label1.Font = 楷体 _GB2312 Form1.BackColor = &HFFFF80 End Sub Option Explicit Dim g_brunningIO As Boolean Dim g_brunningMove As Boolean Dim

32、 g_nIOCount As Integer Dim g_nMoveNo As Integer Const gk_sDefaultHostAddress As String = 192.168.0.250” Const gk_nDefaultPciBoard As Integer = 0 Const gk_nDefaultLink As Integer = 0 Const gk_ndefaultMode As Integer = 0 Const gk_nMaxAxes As Integer = 8 Const gk_nAxesInUse As Integer = 3 Private Sub C

33、ommand1_Click() Dim bopen As Boolean TrioPCI.HostAddress = gk_sDefaultHostAddress TrioPCI.Board = gk_nDefaultPciBoard bopen = TrioPCI.Open(gk_nDefaultLink, gk_ndefaultMode) Call UpdateButtonStates Refresh End Sub Private Sub Command2_Click() If TrioPCI.IsOpen(gk_ndefaultMode) Then TrioPCI.Close (gk_

34、ndefaultMode) End If Call UpdateButtonStates Refresh End Sub Private Sub Command3_Click() Call InitAxes If TrioPCI.IsOpen(gk_ndefaultMode) Then Call proccessStateRun End If End Sub Private Sub Command4_Click() Dim Axis As Integer Dim bok As Boolean Dim dreadval As Double If TrioPCI.IsOpen(gk_ndefaul

35、tMode) Then g_brunningMove = True If g_brunningMove Then 13 For Axis = 0 To 2 bok = TrioPCI.Op(12 + 2 * Axis, 1#) Do Until Label(33 + Axis).Caption = on Call readIO Loop If Label(33 + Axis).Caption = on Then bok = TrioPCI.Op(12 + 2 * Axis, 0#) End If Call ReadAxisPostions Next nAxis g_brunningMove =

36、 False Call UpdateButtonStates End If End If End Sub Private Sub Command5_Click() End End Sub Private Sub Form2_Load() g_brunningIO = False g_brunningMove = False timUpdate.Enabled = True g_nIOCount = 0 g_nMoveNo = 0 UpdateButtonState End Sub Private Sub Form_Load() Label27.Caption =运动距离的输入: Label27

37、.FontSize = 15 Label31.Caption =轴位置显示: Label31.FontSize = 15 Label32.Caption = I/O 状态显示: Label32.FontSize = 15 Form2.BackColor = &HC0FFC0 End Sub Private Sub Form_Unload(Cancel As Integer) If TrioPCI.IsOpen(gk_ndefaultMode) Then axTrioPC.Close (gk_ndefaultMode) End If End Sub Option Explicit Pri

38、vate Sub InitAxes() Dim bok As Boolean Dim nAxise As Integer Dim nBases(gk_nAxesInUse) As Integer Dim dreadval As Double If TrioPCI.IsOpen(gk_ndefaultMode) Then bok = TrioPCI.GetVariable(WDOG”, dreadval) If dreadval 0.5 Then 14 bok = TrioPCI.SetVariable(WDOG”, 0#) End If For nAxis = 0 To gk_nAxesInU

39、se - 1 nBases(0) = nAxis bok = TrioPCI.Base(1, nBases) If bok Then bok = TrioPCI.SetVariable(SERVO”, 0#) End If If bok Then bok = TrioPCI.SetVariable(ATYPE”, 0#) End If If bok Then bok = TrioPCI.SetVariable(UNITS”, 100#) End If If bok Then bok = TrioPCI.SetVariable(REPDIST”, 1#) End If If bok Then b

40、ok = TrioPCI.SetVariable(SPEED”, 100#) End If If bok Then bok = TrioPCI.SetVariable(ACCEL”, 100#) End If If bok Then bok = TrioPCI.SetVariable(DECEL”, 100#) End If If bok Then bok = TrioPCI.SetVariable(FELIMIT”, 1000#) End If If bok Then bok = TrioPCI.SetVariable(SERVO”, 1#) End If Next nAxis bok =

41、TrioPCI.SetV ariable(WDOG”, 1#) End If End Sub Private Sub UpdateButtonStates() Dim bopen As Boolean bopen = TrioPCI.IsOpen(0) Command1.Enabled = Not bopen Command2.Enabled = bopen And Not (g_brunningIO Or g_brunningMove) Command3.Enabled = bopen And Not (g_brunningIO And g_brunningMove) End Sub Pri

42、vate Sub ReadAxisPostions() Dim nAxis As Integer Dim nAxes(gk_nMaxAxes) As Integer 15 Dim dposition As Double Dim nMBR As Integer Dim bok As Boolean If TrioPCI.IsOpen(gk_ndefaultMode) Then For nAxis = 0 To gk_nAxesInUse - 1 nAxes(0) = nAxis If TrioPCI.Base(1, nAxes) Then bok = TrioPCI.GetVariable(DP

43、OS, dposition) If bok Then Label(nAxis + 1).Caption = Int(dposition) Label(nAxis + 1).Refresh Else nMBR = MsgBox(error reading axis positon) nAxis = gk_nAxesInUse End If Else nMBR = MsgBox(error setting base for reading axis position) nAxis = gk_nAxesInUse Next nAxis Else nMBR = MsgBox(connection no

44、t open) End If End Sub Private Sub proccessStateRun() Dim bok As Boolean Dim nAxis As Integer Dim dreadval As Double Dim nIO As Integer g_brunningIO = True If g_brunningIO Then nIO = 0 Call ReadAxisPostions For nIO = 0 To 2 Call readIO If Val(Text(nIO + 1).Text) 50 Then MsgBox (数据过大) Else bok = Trio

45、PCI.Op(12 + 2 * nIO, 1#) bok = TrioPCI.MoveAbs(3, Val(Text(nIO + 1).Text), nIO) Call ReadAxisPostions bok = TrioPCI.Op(11 + 2 * nIO, 0#) nIO = nIO + 1 End If Next nIO g_brunningIO = False Call UpdateButtonStates End If 16 End Sub Private Sub readIO() Dim IIO As Long Dim nBit As Integer Dim nMBR As I

46、nteger Dim 旧 it As Integer Dim Inpt As Long If TrioPCI.IsOpen(gk_ndefaultMode) Then If TrioPCI.In(8, 17, IIO) Then For nBit = 7 To 16 If IIO 0 Then Label(nBit).Caption = on Label(nBit).ForeColor = vbBlue Else Label(nBit).Caption = off Label(nBit).ForeColor = vbRed End If Label(nBit).Refresh Next nBi

47、t Else nMBR = MsgBox(error reading IO) End If If TrioPCI.In(0, 2, Inpt) Then For I Bit = 33 To 35 If Inpt 0 Then Label (I Bit).Caption = on Label(nBit).ForeColor = vbBlue Else Label(nBit).Caption = off Label(nBit).ForeColor = vbRed End If Label( I Bit).Refresh Next nBit Else nMBR = MsgBox(error read

48、ing IO) End If Else nMBR = MsgBox(connection not open) End If End Sub 2.2.5 运动控制程序运行过程的简介: 当程序运行时,自动进入窗体一(Forml)点击进入按扭通过调用窗体显示程 序进入窗体二(Form2)。进入后首先应该通过控件打开 VB与Motion Perfect软 件的连接,这个可通过界面的打开按扭运用 OPENT令即可打开与软件的连接, 并通过调用子程序UpdateButtonStates更新其状态。打开了软件连接后,机器人 各轴的位置应该回到初始状态,这个功能的实现了是通过复位程序来实现的。 当 点击复位按

49、扭时就运行复位程序复位,在程序运行之前还要通过子程序InitAxes() 进行17 各轴的参数进行设置,而设置参数是通过连接命令 SetVariable来分别进行 设置的。设置完后而复位过程就通过循环来复位, 即当各轴进行复位时分别通过 控件连接的命令OP (即OUTPUT)输出电动机的反转电信号(24V电压)这时 在软件中相应的输出角状态变为 ON。在各轴的复位运行过程中通过子程序 readIO分别循环检测各轴的原点开关输入信号(24V电压)的状态是否为ON并 显示各输入输出的状态,而该状态的读取是通过控件连接命令 IN输入的。如果 为该状态就退出循环通过 OP命令来输出OFF来关断反转电信

50、号即该轴就回到 了原点,随后再通过子程序 ReadAxisPostions显示编码器反馈回的各轴的位置, 该数据的读取是读取轴参数 DPOS的值并通过连接命令 GetVariable进行获取到 变量postions通过赋值显示并把该位置做为一个相对原点坐标这样整个复位程序 运行完成了。各轴复位完成以后,我们要进行运动数据的输入,即该轴要运动的 距离。由于各轴运动的距离有限,所以在每次运行时都要进行文本框距离数据的 判断,假如距离值超过了设定值即要显示一个对话框显示数据过大。 如果数据在 正常的范围之内,就通过控件 OP命令分别输出各电动机的正转运动信号,并通 过控件连接命令MoveAbs相对与

51、反馈位置点运动一断相对距离,运动完成后再 通过ReadAxisPostions子程序进行位置显示和readIO子程序进行输出状态显示, 同样通过GetVariable命令来获取反馈值之后再通过 OP输出OFF关闭各轴的运 动电信号,这些运动的实现是在子程序 proccessStateRun庞成的。当点击运动按 扭时就调用该子程序实现整个运动的过程。这样各轴的运动距离通过循环运行子 程序就到了预定的运动位置。最后在运动过程完成以后就要通过控件连接命令 Close关闭与软件的连接,并调用子程序UpdateButtonStates刷新按扭的状态,通 过点击退出按扭便退出操作就这样整个程序的循环与检测

52、再运行过程就结束了 第三章 TRIO BASIC 指令系统编程 3.1运动及轴命令说明或编程 ACC 类型:轴指令 语法:ACC(acc率) 注意:这个指令用来和旧的Trio控制器兼容。加速度率和减速度率可用 ACCEL 和DECEL轴参数设定。 说明:同时设定加速度率和减速度率 参数:acc率:参数单位决定于单位轴参数。加速度因子从UNITS/SEC/SEC输入。 应用:ACC(100) AXIS 类型:修改指令 语法:AXIS (轴数) 说明:AXIS修改设置单轴运动指令或单轴参数读写。 AXIS参数在命令行或程 序行特别有效。使用BASE指令改变基本轴。 参数:轴数 任何有效的BASIC

53、表达式特定轴数。 18 注意:AXIS指令可用于修改以下指令的轴参数: ADDAX , CAM , CAMBOX , CANCEL , CONNECT , DATUM , DEFPOS, FORWARD, MOVEABS , MOVECIRC , MOVELINK , MOVE , MOVEMODIFY , REVERSE, REGIST, WAIT IDLE , WAIT LOADED。 参阅:BASE() 应用:例子1 PRINT MPOS AXIS (3) 例子2 MOVE (300) AXIS (2) 例子3 REPDIST AXIS (3) =100 BASE 类型:运动控制指令 语

54、法:BASE (轴1,轴2,轴3) BASE 参数:BA (轴1,轴2,轴3) BA 说明:BASE指令用于导向下一个运动指令轴的参数读/写入特定轴或轴组,设 置的缺省值19 依次为:0, 1, 2- 每一个过程有其自己的BASE基本轴组,每个程序能单独赋值。 Trio Basic程序与控制轴运动的运动发生器分开。每个轴的运动发生器有 其独立的 功能,因此每个轴能以自己的速度、加速度等进行编程,单独运动,或 者通过插补 或链接运动链接在一起。 AXIS ()命令只要应用正在进行的单命令可以重新导向不同的轴。 而BASE ()指 令除非规定轴号,否则导向接下来的所有指令。 参数:轴号:轴号或轴组

55、号成为新的基准轴排列,即轴号或轴组发送运动指令 给多轴指令 里的第一个轴。 基本轴的轴数和顺序轴在轴组用于多轴运动。 应用:例子1 每轴可以有自己的速度,加速度和其它参数。 BASE (1) UNITS=2000 SPEED=100 ACCEL=5000 BASE (2) UNITS=2000 SPEED=125 ACCEL=10000 CANCEL 类型:运动控制指令 语法:CANCEL/ CANCEL (1) 备选:CA 说明:CANCEL指令取消轴插补轴组的当前运动。速度轨迹(FORWARD, REVERSE, MOVE , MOVEABS , MOVECIRC )将会以 DECEL 参

56、数减速直至U 停止。其它运动会立即停止。 CANCEL (1)指令取消已缓存的运动而不影响正在执行的运动, CANCEL工作在缺省轴,除非使用 AXIS参数定义临时基本轴。 注意:1.CANCEL只能取消当前执行的运动。如果在缓存中还有运动,它会继续 被加载。 2. 在当前运动的减速过程中,另外的 CANCELS会被忽略。 3. CANCEL (1)只取消当前缓存中的运动。存储在任务缓存中的运动由 PMOVE参数定义,可以被加载到缓存一旦缓存运动被取消。 参阅:AXIS , MTYPE , NTYPE, PMOVE, RAPIDSTOP 应用:例子1 FORWARD WA (10000) CA

57、NCEL 例子2 MOVE (1000) ,设置轴1的转换因子。 ,设置轴1的速度 ,设置轴1的加速度 ,设置轴2的转换因子 ,设置轴2的速度 ,设置轴2的加速度 20 MOVEABS (3000) CANCEL ,取消运动到3000,而运动到4000。 MOVEABS (4000) 注意MOVEMODIFY是修改运动结束点最好方法。 DATUM DATUMDATUM原点搜寻 类型:运动控制指令 语法:DATUM (sequence 说明:DATUM指令执行6种方法中的一种搜寻原点位置,其为绝对位置同时 可以重置跟随误差。伺服驱动器机构原点搜寻用于轴 0。轴1用于MC控制单元 机构。 DATU

58、M使用CREEP速度和目标速度用于原点搜寻。伺服驱动器用于轴 0。爬 行速度用CREEP参数设定。目标速度用SPEED参数设定。原点搜寻输入数由 DATUM_IN参数决定,用于3或7中。 DATUM (0)用于轴出错时重新启动系统,位置不变。 参数:sequence 0 DATUM (0)指令活除跟随误差。将当前位置设定为目标位置同时 AXISSTATUS 状态会被活除。注如果产生错误的问题仍然存在,误差不能被活除。 1轴以爬行速度(CREEP)正向运行直到发现Z信号。目标位置重置为0同时 纠正测量位置,维持跟随误差。 2轴以爬行速度(CREEP)反向运行直到发现Z信号。目标位置重置为0同时

59、纠正测量位置,维持跟随误差。 3轴以目标速度(SPEED)正向运行,直到碰到原点开关。随后轴以爬行速度正 向运动直到原点开关复位。 目标位置重置为0同时纠正测量位置,维持跟随误 差。 4轴以目标速度(SPEED)反向运行,直到碰到原点开关。随后轴以爬行速度正 向运动直到原点开关复位。 目标位置重置为0同时纠正测量位置,维持跟随误 差。 5轴以目标速度(SPEED)正向运行,直到碰到原点开关。随后轴以爬行速度正 向运动直到碰到Z信号。目标位置重置为0同时纠正测量位置,维持跟随误差。 6轴以目标速度(SPEED)反向运行,直到碰到原点开关。随后轴以爬行速度正 向运动直到碰到Z信号。目标位置重置为0

60、同时纠正测量位置,维持跟随误差。 注意:原点输入低电平有效。当输入OFF时设置原点开关。feedhold, reverse jog, forward jog, forward, reverse limit inputs均是低电平有效。低电平输入用于使能 自动防护接线。 例子:DATUM _IN=10 DATUM (5) MOVE 类型:运动控制指令 语法:MOVE (dist_1, dist_2, dist_3) 备选:MO (dist_1, dist_2, dist_3) 说明:MOVE指令使一轴心轴在目标速度,加速度和减速度下以增量的方式 运动到特定位置。在多轴运动中, 速度,加速度,减速度是基丁基本轴的插补 运动。

温馨提示

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

评论

0/150

提交评论