版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章绪论1.1工业机器人的开展及分类1.1.1工业机器人的开展工业机器人的开展通常可规划分为三代:第一代工业机器人:通常是指目前国际上商品化与使用化的“可编程的工业机器人〞,又称“示教再现工业机器人〞,即为了让工业机器人完成某项作业,首先由操作者将完成该作业所需要的各种知识〔如运动轨迹、作业条件、作业顺序和作业时间等〕,通过直接或间接手段,对工业机器人进行“示教〞,工业机器人将这些知识记忆下来后,即可根据“再现〞指令,在一定精度范围内,忠实的重复再现各种被示教的动作。1962年美国万能自动化公司的第一台Unimate工业机器人在美国通用汽车公司投入使用,标志着第一代工业机器人的诞生。第二代工业机器人:通常是指具有某种智能〔如触觉、力觉、视觉等〕功能的“智能机器人〞。即有传感器得到触觉、力觉和视觉等信息计算机处理后,控制机器人的操作机完成相应的适当操作。1982年美国通用汽车在装配线上为工业机器人装备了视觉系统,从而宣布了新一代智能工业机器人的问世。第三代工业机器人:即所谓的“只治式工业机器人〞。它不仅具有感知功能,而且还有一定的决策及规划能力。第一代工业机器人目前仍处在实验室研究阶段。工业机器人经历了诞生---成长---成熟期后,已成为制造业中不可缺少的核心装备,世界上有约75万台工业机器人正与工人朋友并肩战斗在个条生产线上,特种机器人作为机器人家族的后起之秀,由于其用途广泛而大有后来居上之势,仿人机器人、农业机器人、效劳机器人、水下机器人、医疗机器人、军用机器人、娱乐机器人等各种用途发特种机器人纷纷面世,而且正以飞快的速度向实用化迈进。我国的工业机器人从80年代“七五〞科技攻关开始起步,在国家的支持下,通过“七五〞、“八五〞科技攻关,目前已根本掌握了机器人的操作机的设计制造技术、控制系统硬件和软件设计技术、运动学和轨迹规划技术、生产了局部机器人的关键元器件,开发出喷漆、焊弧、点焊、装配、搬运等机器人;其中有130多台配套喷漆机器人在二十与家企业的近30条自动喷漆生产线上获得规模应用,弧焊机器人已应用在汽车制造厂的焊装线上。但总的来看,我国的工业机器人技术及其工程应用水平和国外比还有一定的距离,如:可靠性低于国外产品;机器人应工程起步较晚,应用领域窄,生产线系统技术与国外比有差距;在应用规模上,我国已安装的国产工业机器人约200台,约占全球已安装台数的万分之四。以上原因主要是没有形成机器人产业,当前我国的机器人生产都是应用户的要求,“一客户,一次重新设计〞,品种规格多、批量小、零部件通用化程度低、供货周期长、本钱也不低,而且质量、可靠性不稳定。因此迫切需要解决产业化前期的关键技术,对产品进行全面规划,搞好系列化、通用化、模化设计,积极推进产业化进程。1.1.2工业机器人的分类工业机器人按不同的方法可分下述类型工业机器人按操作机坐标形式分以下几类:〔坐标形式是指操作机的手臂在运动时所取的参考坐标系的形式。〕〔1〕直角坐标型工业机器人其运动局部由三个相互垂直的直线移动〔即PPP〕组成,其工作空间图形为长方形。它在各个轴向的移动距离,可在各个坐标轴上直接读出,直观性强,易于位置和姿态的编程计算,定位精度高,控制无耦合,结构简单,但机体所占空间体积大,动作范围小,灵活性差,难与其他工业机器人协调工作。〔2〕圆柱坐标型工业机器人其运动形式是通过一个转动和两个移动组成的运动系统来实现的,其工作空间图形为圆柱,与直角坐标型工业机器人相比,在相同的工作空间条件下,机体所占体积小,而运动范围大,其位置精度仅次于直角坐标型机器人,难与其他工业机器人协调工作。〔3〕球坐标型工业机器人又称极坐标型工业机器人,其手臂的运动由两个转动和一个直线移动〔即RRP,一个回转,一个俯仰和一个伸缩运动〕所组成,其工作空间为一球体,它可以作上下俯仰动作并能抓取地面上或教低位置的协调工件,其位置精度高,位置误差与臂长成正比。〔4〕多关节型工业机器人又称回转坐标型工业机器人,这种工业机器人的手臂与人一体上肢类似,其前三个关节是回转副〔即RRR〕,该工业机器人一般由立柱和大小臂组成,立柱与大臂见形成肩关节,大臂和小臂间形成肘关节,可使大臂做回转运动和俯仰摆动,小臂做仰俯摆动。其结构最紧凑,灵活性大,占地面积最小,能与其他工业机器人协调工作,但位置精度教低,有平衡问题,控制耦合,这种工业机器人应用越来越广泛。〔5〕平面关节型工业机器人它采用一个移动关节和两个回转关节〔即PRR〕,移动关节实现上下运动,而两个回转关节那么控制前后、左右运动。这种形式的工业机器人又称〔SCARA(SeletiveComplianceAssemblyRobotArm)装配机器人。在水平方向那么具有柔顺性,而在垂直方向那么有教大的刚性。它结构简单,动作灵活,多用于装配作业中,特别适合小规格零件的插接装配,如在电子工业的插接、装配中应用广泛。工业机器人按驱动方式分以下几类:〔1〕气动式工业机器人这类工业机器人以压缩空气来驱动操作机,其优点是空气来源方便,动作迅速,结构简单造价低,无污染,缺点是空气具有可压缩性,导致工作速度的稳定性较差,又因气源压力一般只有6kPa左右,所以这类工业机器人抓举力较小,一般只有几十牛顿,最大百余牛顿。〔2〕液压式工业机器人液压压力比气压压力高得多,一般为70kPa左右,故液压传开工业机器人具有较大的抓举能力,可达上千牛顿。这类工业机器人结构紧凑,传动平稳,动作灵敏,但对密封要求较高,且不宜在高温或低温环境下工作。〔3〕电动式工业机器人这是目前用得最多的一类工业机器人,不仅因为电动机品种众多,为工业机器人设计提供了多种选择,也因为它们可以运用多种灵活控制的方法。早期多采用步进电机驱动,后来开展了直流伺服驱动单元,目前交流伺服驱动单元也在迅速开展。这些驱动单元或是直接驱动操作机,或是通过诸如谐波减速器的装置来减速后驱动,结构十分紧凑、简单。1.2工业机器人控制系统1.2.1工业机器人控制系统的特点工业机器人的控制技术是在传统机械系统的控制技术的根底上开展起来的,因此两者之间并无根本的不同但工业机器人控制系统也有许多特殊之处。其特点如下:〔1〕工业机器人有假设干个关节,典型工业机器人有五六个关节,每个关节由一个伺服系统控制,多个关节的运动要求各个伺服系统协同工作。〔2〕工业机器人的工作任务是要求操作机的手部进行空间点位运动或连续轨迹运动,对工业机器人的运动控制,需要进行复杂的坐标变换运算,以及矩阵函数的逆运算。〔3〕工业机器人的数学模型是一个多变量、非线性和变参数的复杂模型,各变量之间还存在着耦合,因此工业机器人的控制中经常使用前馈、补偿、解耦和自适应等复杂控制技术。〔4〕较高级的工业机器人要求对环境条件、控制指令进行测定和分析,采用计算机建立庞大的信息库,用人工智能的方法进行控制、决策、管理和操作,按照给定的要求,自动选择最正确控制规律。工业机器人的控制系统发根本要求有:〔1〕实现对工业机器人的位置、速度、加速度等控制功能,对于连续轨迹运动的工业机器人还必须具有轨迹的规划与控制功能。〔2〕方便的人---机交互功能,操作人员采用直接指令代码对工业机器人进行作用指示。使用工业机器人具有作业知识的记忆、修正和工作程序的跳转功能。〔3〕具有对外部环境〔包括作业条件〕的检测和感觉功能。为使工业机器人具有对外部状态变化的适应能力,工业机器人应能对诸如视觉、力觉、触觉等有关信息进行测量、识别、判断、理解等功能。在自动化生产线中,工业机器人应用与其它设备交换信息,协调工作的能力。1.2.2工业机器人控制系统的分类:工业机器人控制系统可以从不同角度分类,如控制运动的方式不同,可为关节控制、笛卡尔空间运动控制和自适应控制;按轨迹控制方式的不同,可分为点位控制和连续轨迹控制;按速度控制方式的不同,可分为速度控制、加速度控制、力控制。程序控制系统:给每个自由度施加一定规律的控制作用,机器人就可实现要求的空间轨迹。自适应控制系统:当外界条件变化时,为保证所要求的品质或为了随着经验的积累而自行改善控制品质,其过程是基于操作机的状态和伺服误差的观察,再调整非线性模型的参数,一直到误差消失为止。这种系统的结构和参数能随时间和条件自动改变。人工智能系统:事先无法编制运动程序,而是要求在运动过程中根据所获得的周围状态信息,实时确定控制作用。当外界条件变化时,为保证所要求的品质或为了随着经验的积累而自行改善控制品质,其过程是基于操作机的状态和伺服误差的观察,再调整非线性模型的参数,一直到误差消失为止。这种系统的结构和参数能随时间和条件自动改变。因而本系统是一种自适应控制系统。第二章基于运动卡的控制系统的建立2.1总体系统的构建2.1.1总体方案确实定机器人控制系统是一种典型的多轴实时运动控制系统。传统的机器人控制系统根本上是设计者基于自己的独立结构和生产目的而开发,它采用了专用计算机、专用机器人语言、专用微处理器的封闭式体系结构。这种结构的控制器存在制造和使用本钱高,开发周期长,升级换代困难,无法添加系统的新功能等一系列缺点。该系统基于TRIO运动控制卡的开放式结构机器人控制系统,采用IPC+DSP的结构来实现机器人的控制。这种机器人控制系统采用开放式硬件、软件结构,可以根据需要方便地扩展功能,具有良好的开放性和扩展性,能适应于不同类型机器人或机器人自动生产线。通过运动控制卡在工业机器人控制系统中的应用,根据运动控制的相关理论和直流伺服电机的具有不易受干扰、易于用微机实现数字控制、无积累误差等特性以及其动作迅速、反映快、维护简单、可实现过载自动保护等特点作为相关背景的根底之上提出了基于TRIO运动控制卡的自动化程度和定位精度均较高的工业机器人控制系统。这种机器人控制系统的重要特点在于它采用通用个人计算机加DSP—多控制回路的开放式体系结构以及它的网络控制特性。2.1.2可行性论证目前,由于高起动转矩、大转矩、低惯量的交、直流伺服电动机在工业机器人中得到广泛应用一般负载1000N〔相当100kgf〕以下的工业机器人大多采用电伺服驱动系统。所采用的关节驱动电动机主要是AC伺服电动机。其中,交流伺服电动机、直流伺服电动机、直流驱动电动机〔DD〕均采用位置闭环控制,一般应用于高精度、高速度的机器人驱动系统中。利用运动控制卡〔运动控制和逻辑算法有机的结合,轻松实现多种运动形式的运动控制器〕对机器人驱动系统进行控制能够有效地提高整个机器人系统的性能及开发效率。由于机器人需要精确的控制和精准的定位,采用适宜的直流电机调速器和光电轴角编码器即能满足要求。PCI—208是TrioMotion公司的一款基于PC的PCI总线控制的数字运动控制卡,该控制卡采用了独立的120MHZ大DSP微处理器技术,提高了电机运动和计算速度。该控制卡可以控制2—8轴的伺服电机或步进电机或者二者的任意结合;32-bit的33MZ,2.2版本的PCI总线。采用100-pin的高精度屏蔽电缆与外部转接板模块连接,提高了设备的抗干扰信号的能力。提供ActiveX可以用VB、VC、C/C++等高级语言根据设备的需要进行二次开发,还有CAN总线口,可以根据设备的需要对I/O和摸拟输入口进行扩展,能够满足要求。由于所选用的硬件设备都是市场上成熟的,综上所述,本设计题目的理论根底、整体的设想和所实施的方案是切实可行的,在老师的指导下,借鉴相关书籍,通过通过自己的学习,能够到达本次设计的要求。2.1.3系统的构成该系统主要由个人PC、PCI—208系列TRIO运动控制卡、运动卡外接线板、ZK4系列直流电机调速器、光电轴角编码器、系统工作状态检测输入行程开关等组成。TRIO运动控制卡通过对直流电机调速器发出模拟电压信号对直流伺服电动机的转上速、角位移、正、反转等进行控制,从而外控制输出电机驱动;且还在系统中采用光电轴角编码器对电机的参数运行状态以及程序的运行状态进行反响;另外还设置行程开关对电机的行程位置进行控制。2.1.4机器人控制工作原理机器人具有三个自由度〔即:RRP—大臂盘旋、仰角、小臂伸缩三个运动〕和一个爪开合动作,采用全电机驱动控制。机器人本体由机身、大臂、小臂、手找等组成。机身固定在机械小车上;大臂可以绕着机身在水平面内和垂直面内旋转;小臂在丝杆的传动下,可以前后进行伸缩。在大臂和小臂的共同作用下,机械手的手爪能够接近要抓的物体。当物体被控制在手爪的控制范围内时,手爪夹紧物体,然后通过大臂的旋转和小臂的伸缩运动,最终将物体置于规定的位置。机器人大臂盘旋运动和大臂仰角运动均采用直流电动机、谐波减速器传动,PWM脉宽调速器控制,可实现20—2000mm/Min无级调速控制。机器人本体结构如下列图:1—机械手爪2—机械手小臂3—机械手大臂4—机身手爪开合采用连杆及螺旋机构,同步电机驱动,其结构简单,无调速器,电路控制方便。由于在机械结构设计中采用了谐波减速器、滚珠丝杆、滚珠直线导轨等精密传动装置,机器人手爪定位可到达较高的精度。控制系统电气原理图如图,其工作原理如下:机器人大臂盘旋运动和大臂仰角运动均采用直流电动机M1和M2控制,小臂伸缩采用直流电动机M3控制,手爪的开合由单相交流电动机M4控制,每个电动机均由两个中间继电器控制其正、反转。首先是各运动轴分别复位,电动机m1、m2、m3反转输出端口OUT11、OUT13、OUT15输出24V电压各轴正向运动。当它们踏上了各自的行程开关时外接24V分别输入到INPUT0、INPUT1、INPUT2的输入端口由运动控制卡进行判断并作为运动的原点。然后,当运动控制卡的24V电压输出端口OUT11输出指令时,接通继电器KA4,电动机M1得点正转,机器人大臂向上仰运动,到达极限位置时撞下前限位开关ST1,继电器KA4线圈断电机停止运转。当运动控制卡电压输出端口OUT12输出指令时,继电器KA5线圈得电,电动机M1得电反转机器人大臂向下仰运动,到达极限位置时撞下后限位开光ST2,继电器KA5断电,电机停止运转。电动机M1的运动控制由运动控制卡的+10/-10V模拟电压输出端口OUT0输出的指令控制。当运动控制卡电压输出端口OUT13输出指令时,继电器KA6线圈得电,电动机M2得电正转,机器人大臂向左旋运动,到达极限位置时撞下前限位开关ST3,继电器KA6断电,电机停止运转。当运动控制卡电压输出端口OUT14输出指令时,继电器KA7线圈得电,电动机M2得电反转,机器人大臂向右旋运动,到达极限位置时撞下后限位开关ST4,继电器KA7断电,电机停止运转,电动机M2的运转速度由运动控制卡+10/-10V模拟电压输出端口OUT1发出指令控制。当运动控制卡电压输出端口OUT15输出指令时,继电器KA8线圈得电,电动机M3得电正转,机器人小臂向前伸运动,到达极限位置时撞下前限位开关ST5,继电器KA8线圈断电,电机停止运转,当运动控制卡输出断口OUT16输出指令时继电器KA9线圈得电,电动机M3得电反转,机器人小臂向后缩运动到过极限位置时撞下后限位开关ST6,继电器KA9断电,电机停止运动,电动机M3运转速度由运动控制卡+10/-10V模拟电压输出端口OUT2发出指令控制。继电器KA1和KA2分别控制机器人手爪的开合当向前伸时OUTPUT8输出24V,撞到前限位开关停止运动;当OUTPUT9输出时向后伸缩撞到后限位开关停止运动。光电轴角编码器由三个编码器输入端口反响回各轴的实际运动位置给运动控制卡。2.2软件介绍2.2.1软件编程语言的特点TRIOBasic一种类似欲BASIC的语言,简单明了,易学易用。OCXComponent在VB、VC、Delphi、C++Builder中,直接调用运动函数PCI—208的安装运行Install_TrioPCMotion_1_2_3.exe程序。该程序将a)自动将PCI208的设备驱动文件TrioPCI.sys安装到c:\windows\system32\driver\目录下;b)自动将Active控件TrioPC.ocx及其帮助文件TrioPcMotionActiveX.chm安装到C:\ProgramFiles\TrioMotion\TrioPCMotion\目录下。安装成功后,在“设备管理器〞中可查看有关PCI208的相关信息,如下列图示程序界面在VB6.0中翻开工程文件“Project1.vbp〞,在编译环境中,直接运行〔F5〕,程序操作画面及介绍如下:首先进入Form1显示“欢送使用PCI208运动控制操作界面〞,单击进入按扭便进入Form2程序界面。如果单击翻开按扭TRIOPCI由红色小方块变为绿色小方框,说明PCI208和OCX之间已成功建立连接。如果仍然为红色说明PCI208和OCX之间的连接未成功建立。在此程序中,可进行运动控制和轴位置及I/O状态显示等功能。运动控制主要是OUTPUT8-17的输出的开关控制,还有INPUT33-35的原点检测控制,及运动距离输出控制等方面。其中关闭按扭是关闭trio软件的连接;运动按扭是根据输入的距离值进行运动;复位按扭是进行各轴的原点复位运动;单击退出操作便结束程序的执行。2.2.2OCXComponent向工程中添加TrioPCOCX控件如图在工程中调用函数图:程序框图界面:2.2.3指令系统〔1〕轴指令BASE、AXIS:指定以下运动指令所对应的轴号UNITS:指定每一个编程单位所对应的指令脉冲数ATYPE:指定轴类型SPEED:指定轴运行速度ACCEL:指定轴加速度DECEL:指定轴减速度DATUM_IN:指定原点输入点OFFPOS:位置偏置MPOS:读取实际位置DPOS:读取指令位置DAC:设置模拟量输出AIN:读取模拟量输入FHOLD_IN:设置进给保持输入点FHSPEED:设置进给保持速度〔2〕运动指令MOVE:相对运动MOVEABS:绝对运动FORWARD:恒速正向运动REVERSE:恒速负向运动RAPIDSTOP:停止DATUM:回原点MOVEMODIFY:运动中改变目标位置DEFPOS:重新定义当前位置ADD_DAC:全闭环控制WDOG:输出使能〔3〕输入、输出指令AIN:读取模拟量输入DAC:设置模拟量输出IN:读取开关量输入OP:设置开关量输出PSWITCH:位置比拟输出PRINT:显示〔4〕程序流程控制IF……THEN….ELSE….ENDIF:条件判断FOR…TO..STEP…NEXT:循环控制GOTO:无条件跳转GOTOSUB:调用子程序ON…GOTO:条件跳转ON..GOTOSUB:条件调用子程序REPEAT..UNTIL:重复执行控制WHILE:条件判断WAITIDLE:等待运动结束WAITUNTIL:等待WA:延时〔5〕运算处理指令1、算术运算:+、-、*、/、SQR、EXP2、逻辑运算:=、<>、>、<、>=、<=、AND、NOT、OR、XOR2.2.4运动控制程序如下:PrivateSubCommand1_Click()Form2.ShowUnloadForm1EndSubPrivateSubForm_Load()Label1.Caption="欢送使用PCI208运动控制界面"Label1.FontSize=18Label1.Font=楷体_GB2312Form1.BackColor=&HFFFF80EndSubOptionExplicitDimg_brunningIOAsBooleanDimg_brunningMoveAsBooleanDimg_nIOCountAsIntegerDimg_nMoveNoAsIntegerConstgk_sDefaultHostAddressAsString="192.168.0.250"Constgk_nDefaultPciBoardAsInteger=0Constgk_nDefaultLinkAsInteger=0Constgk_ndefaultModeAsInteger=0Constgk_nMaxAxesAsInteger=8Constgk_nAxesInUseAsInteger=3PrivateSubCommand1_Click()DimbopenAsBooleanTrioPCI.HostAddress=gk_sDefaultHostAddressTrioPCI.Board=gk_nDefaultPciBoardbopen=TrioPCI.Open(gk_nDefaultLink,gk_ndefaultMode)CallUpdateButtonStatesRefreshEndSubPrivateSubCommand2_Click()IfTrioPCI.IsOpen(gk_ndefaultMode)ThenTrioPCI.Close(gk_ndefaultMode)EndIfCallUpdateButtonStatesRefreshEndSubPrivateSubCommand3_Click()CallInitAxesIfTrioPCI.IsOpen(gk_ndefaultMode)ThenCallproccessStateRunEndIfEndSubPrivateSubCommand4_Click()DimAxisAsIntegerDimbokAsBooleanDimdreadvalAsDoubleIfTrioPCI.IsOpen(gk_ndefaultMode)Theng_brunningMove=TrueIfg_brunningMoveThenForAxis=0To2bok=TrioPCI.Op(12+2*Axis,1#)DoUntilLabel(33+Axis).Caption="on"CallreadIOLoopIfLabel(33+Axis).Caption="on"Thenbok=TrioPCI.Op(12+2*Axis,0#)EndIfCallReadAxisPostionsNextnAxisg_brunningMove=FalseCallUpdateButtonStatesEndIfEndIfEndSubPrivateSubCommand5_Click()EndEndSubPrivateSubForm2_Load()g_brunningIO=Falseg_brunningMove=FalsetimUpdate.Enabled=Trueg_nIOCount=0g_nMoveNo=0UpdateButtonStateEndSubPrivateSubForm_Load()Label27.Caption="运动距离的输入:"Label27.FontSize=15Label31.Caption="轴位置显示:"Label31.FontSize=15Label32.Caption="I/O状态显示:"Label32.FontSize=15Form2.BackColor=&HC0FFC0EndSubPrivateSubForm_Unload(CancelAsInteger)IfTrioPCI.IsOpen(gk_ndefaultMode)ThenaxTrioPC.Close(gk_ndefaultMode)EndIfEndSubOptionExplicitPrivateSubInitAxes()DimbokAsBooleanDimnAxiseAsIntegerDimnBases(gk_nAxesInUse)AsIntegerDimdreadvalAsDoubleIfTrioPCI.IsOpen(gk_ndefaultMode)Thenbok=TrioPCI.GetVariable("WDOG",dreadval)Ifdreadval>0.5Thenbok=TrioPCI.SetVariable("WDOG",0#)EndIfFornAxis=0Togk_nAxesInUse-1nBases(0)=nAxisbok=TrioPCI.Base(1,nBases)IfbokThenbok=TrioPCI.SetVariable("SERVO",0#)EndIfIfbokThenbok=TrioPCI.SetVariable("ATYPE",0#)EndIfIfbokThenbok=TrioPCI.SetVariable("UNITS",100#)EndIfIfbokThenbok=TrioPCI.SetVariable("REPDIST",1#)EndIfIfbokThenbok=TrioPCI.SetVariable("SPEED",100#)EndIfIfbokThenbok=TrioPCI.SetVariable("ACCEL",100#)EndIfIfbokThenbok=TrioPCI.SetVariable("DECEL",100#)EndIfIfbokThenbok=TrioPCI.SetVariable("FELIMIT",1000#)EndIfIfbokThenbok=TrioPCI.SetVariable("SERVO",1#)EndIfNextnAxisbok=TrioPCI.SetVariable("WDOG",1#)EndIfEndSubPrivateSubUpdateButtonStates()DimbopenAsBooleanbopen=TrioPCI.IsOpen(0)Command1.Enabled=NotbopenCommand2.Enabled=bopenAndNot(g_brunningIOOrg_brunningMove)Command3.Enabled=bopenAndNot(g_brunningIOAndg_brunningMove)EndSubPrivateSubReadAxisPostions()DimnAxisAsIntegerDimnAxes(gk_nMaxAxes)AsIntegerDimdpositionAsDoubleDimnMBRAsIntegerDimbokAsBooleanIfTrioPCI.IsOpen(gk_ndefaultMode)ThenFornAxis=0Togk_nAxesInUse-1nAxes(0)=nAxisIfTrioPCI.Base(1,nAxes)Thenbok=TrioPCI.GetVariable("DPOS",dposition)IfbokThenLabel(nAxis+1).Caption=Int(dposition)Label(nAxis+1).RefreshElsenMBR=MsgBox("errorreadingaxispositon")nAxis=gk_nAxesInUseEndIfElsenMBR=MsgBox("errorsettingbaseforreadingaxisposition")nAxis=gk_nAxesInUseNextnAxisElsenMBR=MsgBox("connectionnotopen")EndIfEndSubPrivateSubproccessStateRun()DimbokAsBooleanDimnAxisAsIntegerDimdreadvalAsDoubleDimnIOAsIntegerg_brunningIO=TrueIfg_brunningIOThennIO=0CallReadAxisPostionsFornIO=0To2CallreadIOIfVal(Text(nIO+1).Text)>50ThenMsgBox("数据过大")Elsebok=TrioPCI.Op(12+2*nIO,1#)bok=TrioPCI.MoveAbs(3,Val(Text(nIO+1).Text),nIO)CallReadAxisPostionsbok=TrioPCI.Op(11+2*nIO,0#)nIO=nIO+1EndIfNextnIOg_brunningIO=FalseCallUpdateButtonStatesEndIfEndSubPrivateSubreadIO()DimIIOAsLongDimnBitAsIntegerDimnMBRAsIntegerDimIBitAsIntegerDimInptAsLongIfTrioPCI.IsOpen(gk_ndefaultMode)ThenIfTrioPCI.In(8,17,IIO)ThenFornBit=7To16IfIIO<>0ThenLabel(nBit).Caption="on"Label(nBit).ForeColor=vbBlueElseLabel(nBit).Caption="off"Label(nBit).ForeColor=vbRedEndIfLabel(nBit).RefreshNextnBitElsenMBR=MsgBox("errorreadingIO")EndIfIfTrioPCI.In(0,2,Inpt)ThenForIBit=33To35IfInpt<>0ThenLabel(IBit).Caption="on"Label(nBit).ForeColor=vbBlueElseLabel(nBit).Caption="off"Label(nBit).ForeColor=vbRedEndIfLabel(IBit).RefreshNextnBitElsenMBR=MsgBox("errorreadingIO")EndIfElsenMBR=MsgBox("connectionnotopen")EndIfEndSub2.2.5运动控制程序运行过程的简介:当程序运行时,自动进入窗体一〔Form1〕点击进入按扭通过调用窗体显示程序进入窗体二〔Form2〕。进入后首先应该通过控件翻开VB与MotionPerfect软件的连接,这个可通过界面的翻开按扭运用OPEN命令即可翻开与软件的连接,并通过调用子程序UpdateButtonStates更新其状态。翻开了软件连接后,机器人各轴的位置应该回到初始状态,这个功能的实现了是通过复位程序来实现的。当点击复位按扭时就运行复位程序复位,在程序运行之前还要通过子程序InitAxes()进行各轴的参数进行设置,而设置参数是通过连接命令SetVariable来分别进行设置的。设置完后而复位过程就通过循环来复位,即当各轴进行复位时分别通过控件连接的命令OP〔即OUTPUT〕输出电动机的反转电信号〔24V电压〕这时在软件中相应的输出角状态变为ON。在各轴的复位运行过程中通过子程序readIO分别循环检测各轴的原点开关输入信号(24V电压)的状态是否为ON并显示各输入输出的状态,而该状态的读取是通过控件连接命令IN输入的。如果为该状态就退出循环通过OP命令来输出OFF来关断反转电信号即该轴就回到了原点,随后再通过子程序ReadAxisPostions显示编码器反响回的各轴的位置,该数据的读取是读取轴参数DPOS的值并通过连接命令GetVariable进行获取到变量postions通过赋值显示并把该位置做为一个相对原点坐标这样整个复位程序运行完成了。各轴复位完成以后,我们要进行运动数据的输入,即该轴要运动的距离。由于各轴运动的距离有限,所以在每次运行时都要进行文本框距离数据的判断,假设距离值超过了设定值即要显示一个对话框显示数据过大。如果数据在正常的范围之内,就通过控件OP命令分别输出各电动机的正转运动信号,并通过控件连接命令MoveAbs相对与反响位置点运动一断相对距离,运动完成后再通过ReadAxisPostions子程序进行位置显示和readIO子程序进行输出状态显示,同样通过GetVariable命令来获取反响值之后再通过OP输出OFF关闭各轴的运动电信号,这些运动的实现是在子程序proccessStateRun()完成的。当点击运动按扭时就调用该子程序实现整个运动的过程。这样各轴的运动距离通过循环运行子程序就到了预定的运动位置。最后在运动过程完成以后就要通过控件连接命令Close关闭与软件的连接,并调用子程序UpdateButtonStates刷新按扭的状态,通过点击退出按扭便退出操作就这样整个程序的循环与检测再运行过程就结束了。第三章TRIOBASIC指令系统编程3.1运动及轴命令说明或编程ACC类型:轴指令语法:ACC(acc率)注意:这个指令用来和旧的Trio控制器兼容。加速度率和减速度率可用ACCEL和DECEL轴参数设定。说明:同时设定加速度率和减速度率参数:acc率:参数单位决定于单位轴参数。加速度因子从UNITS/SEC/SEC输入。应用:ACC(100)AXIS类型:修改指令语法:AXIS〔轴数〕说明:AXIS修改设置单轴运动指令或单轴参数读写。AXIS参数在命令行或程序行特别有效。使用BASE指令改变根本轴。参数:轴数任何有效的BASIC表达式特定轴数。注意:AXIS指令可用于修改以下指令的轴参数:ADDAX,CAM,CAMBOX,CANCEL,CONNECT,DATUM,DEFPOS,FORWARD,MOVEABS,MOVECIRC,MOVELINK,MOVE,MOVEMODIFY,REVERSE,REGIST,WAITIDLE,WAITLOADED。参阅:BASE()应用:例子1PRINTMPOSAXIS〔3〕例子2MOVE〔300〕AXIS〔2〕例子3REPDISTAXIS〔3〕=100BASE类型:运动控制指令语法:BASE〔轴1,轴2,轴3〕BASE参数:BA〔轴1,轴2,轴3〕BA说明:BASE指令用于导向下一个运动指令轴的参数读/写入特定轴或轴组,设置的缺省值依次为:0,1,2…每一个过程有其自己的BASE根本轴组,每个程序能单独赋值。TrioBasic程序与控制轴运动的运动发生器分开。每个轴的运动发生器有其独立的功能,,因此每个轴能以自己的速度、加速度等进行编程,单独运动,或者通过插补或链接运动链接在一起。AXIS〔〕命令只要应用正在进行的单命令可以重新导向不同的轴。而BASE〔〕指令除非规定轴号,否那么导向接下来的所有指令。参数:轴号:轴号或轴组号成为新的基准轴排列,即轴号或轴组发送运动指令给多轴指令里的第一个轴。根本轴的轴数和顺序轴在轴组用于多轴运动。应用:例子1每轴可以有自己的速度,加速度和其它参数。BASE〔1〕UNITS=2000‘设置轴1的转换因子。SPEED=100‘设置轴1的速度ACCEL=5000‘设置轴1的加速度BASE〔2〕UNITS=2000‘设置轴2的转换因子SPEED=125‘设置轴2的速度ACCEL=10000‘设置轴2的加速度CANCEL类型:运动控制指令语法:CANCEL/CANCEL〔1〕备选:CA说明:CANCEL指令取消轴插补轴组的当前运动。速度轨迹〔FORWARD,REVERSE,MOVE,MOVEABS,MOVECIRC〕将会以DECEL参数减速直到停止。其它运动会立即停止。CANCEL〔1〕指令取消已缓存的运动而不影响正在执行的运动,CANCEL工作在缺省轴,除非使用AXIS参数定义临时根本轴。注意:1.CANCEL只能取消当前执行的运动。如果在缓存中还有运动,它会继续被加载。2.在当前运动的减速过程中,另外的CANCELS会被忽略。3.CANCEL〔1〕只取消当前缓存中的运动。存储在任务缓存中的运动由PMOVE参数定义,可以被加载到缓存一旦缓存运动被取消。参阅:AXIS,MTYPE,NTYPE,PMOVE,RAPIDSTOP应用:例子1FORWARDWA〔10000〕CANCEL例子2MOVE〔1000〕MOVEABS〔3000〕CANCEL‘取消运动到3000,而运动到4000。MOVEABS〔4000〕注意MOVEMODIFY是修改运动结束点最好方法。DATUMDATUM原点搜寻类型:运动控制指令语法:DATUM〔sequence〕说明:DATUM指令执行6种方法中的一种搜寻原点位置,其为绝对位置同时可以重置跟随误差。伺服驱动器机构原点搜寻用于轴0。轴1用于MC控制单元机构。DATUM使用CREEP速度和目标速度用于原点搜寻。伺服驱动器用于轴0。爬行速度用CREEP参数设定。目标速度用SPEED参数设定。原点搜寻输入数由DATUM_IN参数决定,用于3或7中。DATUM〔0〕用于轴出错时重新启动系统,位置不变。。参数:sequence0DATUM〔0〕指令去除跟随误差。将当前位置设定为目标位置同时AXISSTATUS状态会被去除。注如果产生错误的问题仍然存在,误差不能被去除。1轴以爬行速度〔CREEP〕正向运行直到发现Z信号。目标位置重置为0同时纠正测量位置,维持跟随误差。2轴以爬行速度〔CREEP〕反向运行直到发现Z信号。目标位置重置为0同时纠正测量位置,维持跟随误差。3轴以目标速度〔SPEED〕正向运行,直到碰到原点开关。随后轴以爬行速度正向运动直到原点开关复位。目标位置重置为0同时纠正测量位置,维持跟随误差。4轴以目标速度〔SPEED〕反向运行,直到碰到原点开关。随后轴以爬行速度正向运动直到原点开关复位。目标位置重置为0同时纠正测量位置,维持跟随误差。5轴以目标速度〔SPEED〕正向运行,直到碰到原点开关。随后轴以爬行速度正向运动直到碰到Z信号。目标位置重置为0同时纠正测量位置,维持跟随误差。6轴以目标速度〔SPEED〕反向运行,直到碰到原点开关。随后轴以爬行速度正向运动直到碰到Z信号。目标位置重置为0同时纠正测量位置,维持跟随误差。注意:原点输入低电平有效。当输入OFF时设置原点开关。feedhold,reversejog,forwardjog,forward,reverselimitinputs均是低电平有效。低电平输入用于使能自动防护接线。例子:DATUMIN=10DATUM〔5〕MOVE类型:运动控制指令语法:MOVE〔dist_1[,dist_2[,dist_3]]〕备选:MO〔dist_1[,dist_2[,dist_3]]〕说明:MOVE指令使一轴或多轴在目标速度,加速度和减速度下以增量的方式运动到特定位置。在多轴运动中,速度,加速度,减速度是基于根本轴的插补运动。特定长度的比例由转换因子UNITS参数设定。例如,一轴编码器是4000edges/mm,于是轴的单元数设为4000,MOVE〔12.5〕将会移动12.5毫米。MOVE工作在缺省轴,除非AXIS定义临时根本轴。参数dist_1定义为缺省轴,dist_2作为另一个轴等等。通过改变轴在独立运动,非插补,非同步可以获得多轴运动。增量运动可以合并成连续运动轨迹,通过设置MERGE=ON。考虑两轴运动,每轴速度可以由以下等式计算得到。指令MOVE〔x1,x2〕和速度Vp由SPEED,ACCEL和DECEL参数计算得到。多轴运动距离L。每轴任何时候的独立速度计算如下:轴i任何时刻的分速度vi由以下公式计算参数:dist_I任意轴I的运动距离,从用户定义的根本轴开始。参阅:AXIS,MOVEABS,UNITS应用:例子1系统转换因子为1和1000线的编码器。因此,需要如下指令使电机运动10圈。〔1000线编码器给出4000edges/turn〕。MOVE〔40000〕例子2在这个例子中,轴0,1,2独立运动〔没有插补〕。每轴会以程序的速度和其它参数运动。MOVE〔10〕AXIS〔0〕MOVE〔10〕AXIS〔1〕MOVE〔10〕AXIS〔2〕例子3X-Y平面在工作范围内可以在任意位置写文本。独立运动可以被定义成相对与起始点相对运动。因此在任何位置都可以使用相同的指令。字母〞m〞的子程序如下:M:Move〔0,12〕‘A->BMove〔3,-6〕‘A->CMove〔3,6〕‘C->DMove〔0,-12〕‘D->EMOVEABS类型:运动控制指令语法:MOVEABS〔pos_1[,pos_2[,pos_3]]〕备选:MA〔pos_1[,pos_2[,pos_3]]〕说明:MOVEABS指令使一轴或多轴在目标速度,加速度和减速度下以绝对的方式运动到特定位置。在多轴运动中,速度,加速度,减速度是基于根本轴的插补运动。特定长度的比例由转换因子UNITS参数设定。例如,一轴编码器是4000edges/mm,于是轴的单元数设为4000,MOVEABS〔12.5〕将会从起始点移动12.5毫米。MOVEABS工作在缺省轴除非AXIS定义临时根本轴。参数dist_1定义为缺省轴,dist_2作为另一个轴等等。通过改变轴在独立运动,非插补,非同步可以获得多轴运动。增量运动可以合并成连续运动轨迹,通过设置MERGE=ON。考虑两轴运动,每轴速度可以由以下等式计算得到。指令MOVE〔ax1,ax2〕和当前位置〔ay1,ay2〕,速度Vp由SPEED,ACCEL和DECEL参数计算得到。多轴运动距离L。每轴任何时候的独立速度计算如下:参数:pos_i任意轴I的运动距离,从用户定义的根本轴开始。参阅:AXIS,MOVE,UNITS应用:例子1X-Y平面有一个笔,圆盘的位置相对与起始点固定。改变笔的位置,当指令执行时,圆盘的绝对运动与平面位置不相关。MOVEABS〔20,350〕例子2一个货盘由小格组成,容器离包装机器85毫米。从固定点取容器,货盘的开始位置用DEFPOS指令定义成原点〔0,0〕。到容器的一局部程序如下:xloop:forx=0to5yloop:fory=0to7MOVEABS〔-340,-516.5〕‘运动到捡起点GOSUBpick‘跳转到捡起子程序PRINT“MOVETOPOSITION:“;X*6+Y+1MOVEABS〔x*85,y*85〕GOSUBplace‘转到place子程序NEXTyNEXTxREVERSE类型:运动控制指令语法:REVERSE备选:RE说明:REVERSE反向连续运动,速度由SPEED参数设置。加速率由ACCEL参数设置。REVERSE工作在缺省根本轴,除非AXIS定义临时根本轴。注意:反向运动可以被CANCEL或RAPIDSTOP指令停止。或到达反向限位,禁止或原点返回。参阅:AXIS,CANCEL,FORWARD,RAPIDSTOP应用:back:REVERSEWAITUNTILIN〔0〕=ON‘等待停止信号CANCEL3.2输入/输出指令说明或编程AIN类型:系统参数语法:AIN〔模拟通道〕说明:从模拟输入口读取数值,各种模拟输入模块可与运动控制器连接。有的运动控制器本身具有1至2个模拟输入。返回的值是十进位的,与读自A至D转换器的二进制数字相等。参数:模拟输入通道0…710…31P325CAN模拟输入通道31…39运动控制器本身模拟输入通道40…71P225模拟输入子板AIN2通道的S_RATE参数可每分钟将数据转换成接近的值。对于AIN1和AIN3通道,T_RATE参数可将数据转换成扭矩的百分率。附录:IN,S_RATE,T_RATE应用:生产线的速度由材料供应的速率决定。材料供应通过安装有超声传感器装置上松散的环安排。超声传感器输出范围在0V—4V,4V时环最长。模拟输入值尽管应为正的值但也需检查确保大于0。当值为负时进来的信号有噪音,由于除FORWARD或REVERSE外负速对与任一类型运动无效而引起错误。注意:模拟反响速度取决于所发生的模块。P324以10msec更新,P225以SERVO_PERIOD更新,内置的模拟端口以1msec更新。如果未安装P325总线模块,AIN(0)和AIN(1)将读取内置的通道以保持与老版本的兼容。HEX类型:指令说明:HEX指令用于打印语句,输出一个十六进制格式的数。HEX指令不用在MC202或MC216应用:PRINT#5,HEX(IN(8,16))IN()IN类型:I/O功能语法:IN〔input_number[,final_input_number]〕/ININ说明:IN功能返回数字输入的值。IN〔input_number,final_input_number〕将会返回输入的二进制。两个参数必须小于24分隔。IN〔input_number〕包括输入值小于32将会返回特定通道的值。IN〔withoutarguments〕将会返回前24个输入的二进制。〔IN〔0,23〕〕。参考3-3-2参数:input_number输入返回的值。值是在0到31的整数。Final_input_number最后输入返回的值。值是在0到31的整数。应用:例子1下行可用于运动手轮与因子乘积的位置。手轮与输入4,5,6,7连结,输出BCD。Moveloop:Moveabs〔IN〔4,7〕*1.5467〕WaitidleGotomoveloopOP类型:I/O功能/指令语法:OP[([outputno,]value)]说明:OP指令设置一个或多个输出或返回前24个输出状态。OP有三种不同形式决定于参数。指令OP〔output_number,value〕设置单输出通道。output_number的范围[8,17]。值为0或1。指令OP〔binary_pattern〕依据binary_pattern的值设置24个输出的二进制形式。功能OP返回24个输出的状态。这就允许多输出设置而不需要改变其它不需要改变的。参考3-3-2说明:前8个输出〔0-7〕,在MC控制单元中不实际存在,他们不能被写入,并返回零。参数:outputno设置输出数value被输出的值,OFF或ON。所有非零值被看作ON。参阅:IN应用:例子1以下两行等价。OP〔44,1〕OP〔44,ON〕PRINT类型:指令语法:PRINT指令让TrioBasic输出一系列字符串到串口,或适宜的光纤端口。PRINT指令可以输出参数,固定ascii串,单个ascii字符串。只要多个工程用逗号,或分号分隔,都可以通过单个PRINT语句打印。逗号,分号控制输出字串的格式。应用:PRINT"CAPITALSandlowercaseCANBEPRINTED"3.3程序循环和结构编程IF..THEN..ELSE..ENDIF类型:结构指令语法:IFconditionTHEN<commands>[else<commands>]ENDIFIFconditonTHEN<commands>说明:IF…THEN…ELSE…ENDIF结构依据条件结果控制程序流程。如果条件真,接下来的THEN到ELSE将会执行。如果条件假,ELSE将会执行或程序会跳到ENDIF如果没有ELSE。ENDIF用于标记条件段的结束。注意:IF…THEN[ELSE]ENDIF过程可以没有限制的嵌套。对于多行IF…THEN结构,在THEN后没有任何陈述。单结构不用ENDIF。参数:cindition任何有效的逻辑表达式。commands任何有效的逻辑表达式。应用:例子1IFMPOS>〔0。22*VR〔0〕〕THENGOTOexceeds_length例子2IFIN〔0〕=ONThenCount=count+1PRINT“COUNTS=〞countFail=0ElseFail=fail+1EndifFOR..TO..STEP..NEXT类型:循环和条件结构指令语法:FORvariable=starttoend[stepincrement]<commands>nextvariable说明:FOR…NEXT允许将FOR和NEXT之间的局部重复执行屡次。进入这个循环,变量初始化成start同时指令局部开始执行,直到执行到NEXT指令。variable以增量方式增加。直到step值,step值可正可负。如果省略认为是1。当variable小于或等于end时。重复执行指令区,直到variable大于end。在next之后的程序继续执行。注意:FOR…NEXT在BASIC程序中可以嵌套8个指令。参数:variable任何有效的BASIC表达式。既可以是一个环形变量或者是一个本地变量start任何有效的BASIC表达式end任何有效的BASIC表达式increment任何有效的BASIC表达式〔可选〕参阅:REPEAT,WHILE应用:例子1以下例子将输出10到18置ONFORopnum=10to18OP〔opnum,on〕NEXTOPNUMON..GOSUB类型:结构指令语法:ONexpressionGOSUBlabel{,label}说明:ON…GOSUB结构使能条件跳转。整数表达式用于从列表中选择label。如果表达式的值是1,使用第一个label,对于值2使用第二个label,以此类推。依据GOSUB指令执行子程序或跳转。注意:如果表达式无效,不会执行跳转。参数:expression任何有效的BASIC表达式。Label程序中任何有效的标志。参阅:GOSUB,GOTO应用:REPEATGET#5,charUNTIL1<=charandchar<=3OncharGOSUBmover,stopper,changeON..GOTO类型:结构指令语法:ONexpressionGOSUBlabel{,label}说明:ON…GOTO结构使能条件跳转。整数表达式用于从列表中选择label。如果表达式的值是1,使用第一个label,对于值2使用第二个label,以此类推。依据GOTO指令执行子程序或跳转。注意:如果表达式无效,不会执行跳转。参数:expression任何有效的BASIC表达式。Label程序中任何有效的标志。参阅:GOSUB,GOTO应用:REPEATGET#5,charUNTIL1<=charandchar<=3OncharGOTOmover,stopper,changeWA类型:系统指令语法:WA〔time〕说明:WA指令暂停程序执行一段时间。指令只能用在程序中。参数:time暂停程序的毫秒数。应用:以下例子将输出11置OFF两秒钟后输出17置ON。OP〔11,OFF〕WA〔2000〕OP〔17,ON〕WAIT..UNTIL类型:系统指令语法:WAITUNTILcondition说明:WAITUNTIL指令重复评估条件直到变成真。此后程序继续执行。指令只能用在程序中。参数:condition任何有效BASIC逻辑表达式。应用:例子1此例中,程序等待轴0的测量位置超出150,然后开始轴1的运动。WAITUNTILMPOSAXIS〔0〕>150MOVE〔100〕AXIS〔1〕例子2表达式的复杂程度可由用户来定WAITUNTILDPOSAXIS〔2〕<=0ORIN〔1〕=ON以上行会等待轴2的目标位置小于或等于0或输入1置ON。WHILE..WEND类型:结构指令语法:Whilecondition说明:WHILE…WEND结构程序之间的指令连续执行,直到条件变成FALSE。此时程序会继续执行WEND后的程序。注意:WHILE…WEND可以无限制嵌套。参数:condition任何有效的逻辑BASIC表达式。参阅:FOR,REPEAT应用:WHILEIN〔12〕=OFFMOVE〔200〕WAITIDLEOP〔10,OFF〕MOVE〔-200〕WAITIDLEOP〔10,ON〕WENDWAITUNTIL类型:系统指令语法:WAITUNTILcondition说明:WAITUNTIL指令重复评估条件直到变成真。此后程序继续执行。指令只能用在程序中。参数:condition任何有效BASIC逻辑表达式。应用:例子1此例中,程序等待轴0的测量位置超出150,然后开始轴1的运动。WAITUNTILMPOSAXIS〔0〕>150MOVE〔100〕AXIS〔1〕3.4恒量FALSE类型:常数说明:FALSE常数返回数值零。注:常数为只读。应用:test:res=IN〔0〕ORIN〔2〕IFres=FALSETHENPRINT“inputareoff〞EndifOFF类型:常量说明:OFF常量返回数值0。注:常量为只读。应用:OP〔lever,OFF〕以上设置输知名为lever的设置成OFF。ON类型:常量说明:ON常量返回值1。注:此参数为只读。应用:OP〔lever,ON〕以上命令将输知名为lever设置成ON。PI类型:常量说明:PI常量返回数值3。1416。注:此常量位只读。应用:circum=100PRINT“Radius=〞;circum/〔2*PI〕TRUE类型:常量说明:TRUE常量返回数值-1。注:常量为只读。应用:test:T=IN〔0〕ANDIN〔2〕IFT=TRUETHENPRINT“inputareON〞ENDIF3.5轴参数说明或编程ACCEL类型:轴的参数说明:ACCEL参数包括轴的加速率。单位units/s2。参数可以是任意正数包括零。参阅:AXIS,DECEL,UNITS应用:BASE〔0〕ACCEL=100‘设置加速率PRINT“Accelerationrate:“;〞mm/s/s〞ACCELAXIS〔2〕=100‘设置轴2的加速率ADDAX_AXIS类型:轴的参数说明:ADDAX_AXIS参数返回由ADDAX连接的轴数。注:此参数为只读参数。参阅:AXIS,ADDAX应用:>>BASE〔0〕>>ADDAX〔2〕>>PRINTADDAX_AXIS2.0000类型:轴的参数ATYPE说明:ATYPE参数设置轴的类型。轴数轴的类型ATYPE值0伺服13〔固定〕1虚拟轴0伺服轴2编码器输入3〔缺省〕编码器输出142虚拟轴0〔固定〕开始上电时ATYPE参数设置成轴的缺省值。参考3-3。参阅:AXIS应用:以下指令将轴1设置成编码器输出。>>ATYPEAXIS〔1〕=14AXISSTATUS类型:轴的参数说明:AXISSTATUS参数包括轴的状态。AXISSTATUS参数对三轴定义如下。位数描述值字符〔用在MotionPerfect中〕轴0〔伺服轴〕轴1〔编码器输入/输出/虚拟轴〕轴2〔虚拟轴〕0-1----1跟随误差报警2WX--2伺服驱动器通讯错误4AX--3伺服驱动器报警8MX--4正向限位16FXXX5反向限位32RXXX6原点搜寻64DXXX7反响限制输入128HXXX8跟随误差限制256EX--9正向软件限位512XXXX10反向软件限位1024YXXX11取消运动2048CXXX12编码器输出超速4096O-X-AXISATATUS参数用于处理运动错误。参考8-2注:此为只读参数。参阅:AXISERRORMASK应用:IF〔AXISSTATUSAND16〕>0THENPRINT“inforwardlimit〞CREEP类型:轴的参数说明:CREEP包括轴的爬行速度。爬行速度用于进行原点搜寻。CREEP允许任何正值〔包括0〕。CREEP速度单位为units/s。使用因子转换。例如,如果转换因子设为编码器数edges/inch,速度设为inchs/s。参阅:AXIS,DATUM,UNITS应用:BASE〔2〕CREEP=10SPEED=500DATUM〔4〕CREEPAXIS〔1〕=10SPEEDAXIS〔1〕=500DATUM〔4〕AXIS〔1〕DAC类型:轴的参数说明:当SERVO=OFF时写进此轴参数允许用户强加一个指定电压到伺服候。12位DAC能采用的值范围为:DAC=2048相应于10V电压DAC=-2047相应于-10V电压16位DAC能采用的值范围为:DAC=32767相应于10V电压DAC=-32768相应于-10V电压DECEL类型:轴的参数说明:DECEL参数包括轴的减速率。单位为units/s2。参数可以是任意正数包括零。参阅:ACCEL,AXIS,UNITS应用:DECEL=100‘设置减速率PRINT“Decelerationrateis“;“mm/s/s“I_GAIN类型:轴的参数说明:I_GAIN参数包括轴的积分增益。积分输出通过计算跟随误差的总和。-缺省值是0。叠加积分增益到伺服系统减少静止或运动时的位置误差。他可以减少超调,振动。因此适用系统工作在常速和慢加速的场合。Oi=Kix⊕e注意:为了防止系统的不稳定性,伺服增益需在SERVO=OFF时改变。参阅:D_GAIN,OV_GAIN,P_GAIN,VFF_GAINMPOS类型:轴的参数说明:MPOS参数表示用户单位的测量位置,从编码器得到。这个参数可应用DEFPOS指令设置。OFFPOS参数可用于移动起始点。MPOS在上电时重置成零。测量位置的范围由REPDIST和REP_OPTION参数控制。注:此参数为只读。参阅:AXIS,DEFPOS,DPOS,ENCODER,FE,OFFPOS,REPDIST,REP_OPTION,UNITS应用:WAITUNTILMPOS>=1250SPEED=2.5MTYPE类型:轴的参数说明:MTYPE参数包括当前执行的运动类型。下面给出可能值。运动数运动类型IDLEMOVE2MOVEABS3 MHELICAL4MOVECIRC5MOVEMODIFY10FORWARD11REVERSE12DATUM13CAM14
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清洁合同范本
- 实验室试剂盒购买合同范本
- 04版长期供货合同2篇
- 二零二四年度通信设备采购与维护合同
- 2024年度地震监测深井建设与数据共享合同
- 二零二四年租赁合同(房地产)
- 二零二四年工程承包合同施工要求
- 二零二四年度窗帘环保性能检测与认证合同
- 二零二四年度运输合同标的货物运输方式与时间安排
- 宠物寄养中心运营管理合同04
- 光伏发电项目试验检测计划
- 国开(陕西)2024年秋《社会调查》形考作业1-4答案
- 人力资源许可证制度(服务流程、服务协议、收费标准、信息发布审查和投诉处理)
- 2024年舟山继续教育公需课考试题库
- 一年级拼音默写表
- 家长会课件:七年级家长会班主任优质课件
- 《思想道德与法治》 课件 第四章 明确价值要求 践行价值准则
- 乒乓球比赛分组对阵表(8人、16人、32人)
- 小学数学教材图形与几何教学实践研究
- 现代自然地理学理论第四章地理学的基本研究方法
- 工商局机器设备抵押合同
评论
0/150
提交评论