EPSON机械手培训课件_第1页
EPSON机械手培训课件_第2页
EPSON机械手培训课件_第3页
EPSON机械手培训课件_第4页
EPSON机械手培训课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、1epson epson 机械手培训机械手培训深圳市长荣科机电设备有限公司2012年8月2一、关于机械手的基础知识二、硬件概要三、epson rc+ 用户界面四、rc+5.4.3软件操作五、spel+语言六、动作指令七、i/o八、pallet 九、!.! 并列处理十、多任务处理十一、循环控制指令十二、程序实例31、机械手坐标系1.1 scara机械手坐标系xy方向坐标(前后左右)z方向坐标(上下)u方向坐标(旋转)42. 机械手的手臂姿势 在使用机械手作业时,有必要使其用示教时的手臂姿势在指定的点上动作。如果不这样做,根据手臂姿势的不同,会产生轻微的位臵偏移,或朝着意想不到的路径动作的结果,有

2、干涉周边设备的危险。为了避免这种情况,在点数据中必须事先指定使其在此点上动作时的手臂姿势(如下图)。此信息也也可以从程序中变更(l或者r)。2.1 scara机械手的手臂姿势图5系统构成678npn接法pnp接法9npn接法pnp接法101、控制器运行时序图2、急停时序图113、程序执行时序图124、安全门输入时序图131、i/o扩展板输入输出定义及设置142、1号i/o扩展引脚定义15 不外接急停不外接急停时时可以将安全可以将安全i/o按如下方式接按如下方式接线线: :1,2,3,7,9,18,20短接短接 4,11短接短接 8,19,21,25短接短接 12,17短接短接 10,14,15

3、,16短接短接 1617三、三、epson rc+ epson rc+ 用户界面用户界面18四、四、rc+5.4.3rc+5.4.3软件操作软件操作1. 软件软件ip设置(使用以太网连接时用)设置(使用以太网连接时用) (1)单击“设置” “电脑与控制器通讯”进入ip设置画面,然后单击工具栏图 标“ ”进入ip设置画面 ,然后单击“增加”进入右下图画面选择“通 过以太网连接到控制器”单击确定 19四、四、rc+5.4.3rc+5.4.3软件操作软件操作(2)设置新增以太网连接名称及ip地址 ,控制器出厂默认控制器ip设置如右下图所示 设置好ip后单击应用,如果控制器ip忘记了,可以先用usb线

4、连接控制器然后在 “设置”|控制器|configuration里可以查看控制器ip,电脑ip的前三位要与控制 器的前三位相同,例如“192.168.0.10”。设置好ip地址后单击“连接”连接控 制器 。 20四、四、rc+5.4.3rc+5.4.3软件操作软件操作2.控制器设置控制器设置 (1)单击“设置” “控制器”进入控制器设置画面,然后单击“configuration” 设置控制的ip地址及控制方式,当要使用外部i/o控制时须将“control device” 远程i/o,然后单击“apply”,再单击关闭,等待控制器重启完毕后,按“f5”, 单击“激活远程i/o”后关闭软件即可使用外

5、部i/o控制控制器21四、四、rc+5.4.3rc+5.4.3软件操作软件操作3. 示教画面示教画面打开jog&teach页面:tools robot manager jog&teach或单击工具栏 图标后,选择jog&teach页面。如下图示mode说明:world:在当前的局部坐标系、工具坐标系、机械手属性、ecp坐标系上,向x、y、z轴的方向微动动作。如果是scara型机械手,也可以向u方向微动。如果是垂直6轴型机械手,则可以向u方向(倾斜)、v方向(仰卧)、w方向(偏转)微动。tool : 向工具定义的坐标系的方向微动移动。local: 向定义的局部坐标系的方向微动移动。joint :

6、 各机械手的关节单独微动移动。不是直角坐标型的机械手使用joint模式时,显示单独的微动按钮。ecp : 在用当前的外部控制点定义的坐标系上,微动动作。22四、四、rc+5.4.3软软件操作件操作4. 示教点步骤示教点步骤(1)在“点数据”页面中“点文件”下拉菜单中选择需要教点的点文件 单击选择点文件23四、四、rc+5.4.3软软件操作件操作(2)在步进示教页面右下角位位置选择需要示教的点编号单击选择要示教的点位24四、四、rc+5.4.3软软件操作件操作(3)微动将机械手移动的需要示教点的位置。如果是scara机械手,motor on情况下,可以在control panel 页面free

7、all释放所有轴后,手动将机械手移动需要示教点的位置后,lock all锁定所有轴。微动按钮点位追踪按钮,在马达上伺服on时直接移动到之前示教的点位,一般在之前点位变化需做微调时用25四、四、rc+5.4.3软软件操作件操作(4)点击teach按钮,系统自动记录下示教点在当前坐标系的具体数值。如果需要示教的点为新增点,将弹出以下对话框,用户可根据需要对该点编辑标签及描述编辑点标签及描述然后单击“确定”26四、四、rc+5.4.3软软件操作件操作(5)在“点数据”页面单击“保存”按钮,完成示教点。27四、四、rc+5.4.3rc+5.4.3软件操作软件操作5. 马达重置及伺服马达重置及伺服off

8、工具 机器人管理器控制面板或单击工具栏 图标后,选择“控制面板”页面。如下图示伺服on运行功率设置马达报警时重置马达刹车释放z轴刹车释放后要按住伺服指示灯旁边白色按钮才能手动移动z轴28四、四、rc+5.4.3rc+5.4.3软件操作软件操作6. 工具坐标设置工具坐标设置工具 机器人管理器工具或单击工具栏 图标后,选择“工具”页面。如下图示29四、四、rc+5.4.3rc+5.4.3软件操作软件操作(1)在“工具”画面单击“工具向导”,进入工具向导画面,选择工具坐标编号30四、四、rc+5.4.3rc+5.4.3软件操作软件操作(2)选择好工具坐标编号后单击“next”,进入如下画面,单击“t

9、each”进入机器人示教画面31四、四、rc+5.4.3rc+5.4.3软件操作软件操作(3)将u轴旋转到0度,在机器人运动范围内固定一个参考位置,然后通过移动x、y轴移动到参考位置,然后单击确定32四、四、rc+5.4.3rc+5.4.3软件操作软件操作(4)示教好第一个位置后单击“teach”进入如下画面,然后单击“teach”进入第二点示 教画面33四、四、rc+5.4.3rc+5.4.3软件操作软件操作(5)将z后提起后,旋转180度后,重新移动x、y轴至之前保存的位置,然后单击“teach”进入下图画面,然后单击“finish”,完成工具坐标校准34四、四、rc+5.4.3rc+5.

10、4.3软件操作软件操作7. i/o监控监控 “工具” “i/o监视器”工具或单击工具栏 图标后,进入如下图示画面监控i/o状态,双击输出位时可以强制输出on35五、五、spel+语言语言1. 概述spel+是在rc170/180、rc90控制器上运行的与basic相近的程序语言。它支持多任务,动作控制和i/o控制。程序以ascii文本形式创建,被编辑在可以执行的对象文件中。2. 程序结构一个spel+程序包括有函数,变量和宏指令,每一个程序以.prg的扩展名保持到对应的项目里(project)。一个项目至少包含有一个程序和一个main函数。函数以function开始,fend结束,函数名可以使

11、用最多32个字符的半角英文数字和下划线,不区分大小写,但是不可以使用以数字和下划线开始的名称或spel+关键字。3. 变量spel+中有3种不同的变量。 local : 局部变量(用在同一function内使用的变量) module : 模块变量(在同一程序内使用的变量) global : 全局变量(在同一项目内使用的变量)程序示例:main.prg function main call func1 . fend function func1 jump pickpnt. integer m_i模块变量m_iglobal (preserve) integer g_i全局变量(全局保护变量)g_i

12、function maininteger i局部变量i.fendfunction func1integer i局部变量i.fend36五、五、spel+语言语言4. 变量的数据类型 变量有多种数据类型,使用前先说明类型,格式为:数据类型变量名。例如:integer i,定义变量i为整型数据。另外,代入的数据和变量的类型必须一致。在下表中列出spel+ 语言中使用的数据类型。37六六、动作指令、动作指令1. 动作指令分类使机械手动作的指令叫作动作指令。可分为:ptp动作指令,cp动作指令,curves动作指令,joint动作指令。类型指令说明ptpgo、jump、bgo、tgo 是经过机械手结构

13、上最容易活动的路径到达目标位臵的动作命令cpmove、arc、arc3、jump3/jump3cp、 bmove、tmove、cvmove 指定机械手到达目标位臵运动轨迹的指令note: * cp模式,即continuous path 连续路径模式。* 指定ptp动作指令和joint动作指令的速度和加/减速度时,使用speed指令和accel指令。指定cp模式动作指令时,使用使用speeds指令和accels指令。38六六、动作指令、动作指令2. ptp指令包括指令:go、jump、bgo、tgoptp(pose to pose)动作,是与其动作轨迹无关,以机械手的工具顶端为目标位臵使其动作的

14、动作方法。ptp动作,使用各关节上配置的电动机,使机械手通过最短的路径到达目标位置。优点:运动速度快,缺点:运动轨迹无法预测。指定ptp动作速度和加/减速,使用speed指令和accel指令。2.1 go 指令功能:全轴同时的ptp动作,动作的轨迹是各关节分别对从当前的点到目标坐标进行插补。格式:go 目标坐标示例:1. go p1 机械手动作到p1点2. go xy(50, 400, 0, 0) 机械手动作到x=50,y=400,z=0,u=0 3. go p1+x(50) 机械手动作到p1点x坐标值偏移量为+50的位置4. go p1:x(50) 机械手动作到p1点对应x坐标值为50的位置

15、2.2 jump 指令功能:通过“门形动作”使手臂手臂从当前位臵移动至目标坐标。格式:jump 目标坐标示例:1. jump p1 机械手以“门形动作”动作到p1点2. jump p1 limz -10以限定第三轴目标坐标z=-10的门形动作移动到p1点,如图1示3. jump p1:z(-10)limz -10 以限定第三轴目标坐标z=-10的门形动作移动到p1点位臵z坐标值为-10的位置图139六六、动作指令、动作指令note:go与jump的区别jump与go都是使机械手手臂用ptp动作移动的命令。但是jump有go没有的一个功能。jump将机械手的手部先抬起至limz 值,然后使手臂水

16、平移动,快要到目标坐标上空的时候使其下降移动。此动作的标准是可以更准确地避开障碍物这一点,更重要的是通过吸附、配置动作,提高作业的周期时间。3. cp指令包括指令:move、arc、arc3、jump3/jump3cp、bmove、tmove、cvmovecp(continuous path )指令可以指定机械手到达目标位臵的运动轨迹。优点:轨迹可以控制,匀速动作。缺点:速度慢。指定linear动作速度和加/减速度,使用speeds指令和accels指令。3.1 move 指令功能:以直线轨迹将机械手从当前位置移动到指定目标位置。全关节同时启动,同时停止。格式:move 目标坐标示例:move

17、 p1机械手以直线轨迹动作到p1点note:move与go的区别到达目标点时的手臂的姿势重要的时候使用go命令,但是比控制动作中的手臂的轨迹重要的时候,使用move 命令。在scara机械手只有z轴上下动作时,go与move的轨迹一样。40六六、动作指令、动作指令3.2 arc和arc3 指令功能:arc 在xy平面上以圆弧插补动作。 arc3 在3d空间里以圆弧插补动作。格式:arc 经过坐标,目标坐标说明:将机械手从当前位臵到目标坐标,通过经过坐标用圆弧插补动作活动时使用。从所给的3点(当前坐标、经过坐标、目标坐标)自动演算圆弧插补轨道,并沿着此轨道移动机械手直至目标坐标为止。示例:arc

18、 p2,p3note:即使目标坐标在机械手的动作范围内,一旦在move或arc运动轨迹超过允许动作范围外,机械手会突然停止,给伺服电机带来撞击,有产生故障的危险。为了防止这样的事发生,请在高速执行之前先以低速进行动作范围确认。41六六、动作指令、动作指令3.3 jump3/jump3cp指令功能将手臂用3 维门形动作移动。jump3是两个cp动作与1个ptp动作的组合格式jump3 退避坐标,接近开始坐标,目标坐标示例jump3 p1,p2,p3从当前位臵经过保存坐标p1,接近坐标p2运动到目标坐标p3。图2示note:1、jump不能用于6轴机械手,6轴机械手只能使用jump3和jump3

19、cp指令2、jump3cp指令用法与jump3类似,不同在于jump3cp是3个cp动作的组合3、scara机械手z轴上升或下降动作时,使用jump指令可以提高运动速度3.4 bmove 、tmove、cvmove 指令bmove 在指定的局部坐标系(local)上执行偏移直线插补动作。没有指定局部坐标系时,以局部0(基准坐标系)为基准,进行进行偏移ptp 动作。tmove 在当前的工具坐标系上执行偏移直线插补动作。图242六六、动作指令、动作指令cvmove 用curve 命令执行定义的自由曲线cp 动作。cvmove 执行设定控制器硬盘上的文件名的文件数据的自由曲线cp 动作。此文件必须事

20、先用curve 命令制作。 curve “mycurve”, o, 0, 4, p1, p2, on 2, p(3:7) 设定自由曲线 jump p1用直线将手臂移动至p1 cvmove “mycurve” 用定义的自由曲线“mycurve”移 动手臂5. 速度设定指令5.1 ptp指令的速度设定speed 功能用于设定ptp动作速度的百分比格式:speed s,a,b说明:s 速度设定值;a 第三轴上升速度设定值;b 第三轴下降速度设定值。示例:1. speed 80 2. speed 80,40,30accel 功能用于设定ptp动作加减速度的百分比。格式:accel a,b,c,d,e,

21、f说明:a/b 加/减速度设定值;c/d 第三轴上升加/减速度设定值; e/f 第三轴下降加/减速度设定值示例:1. accel 80,80 2. accel 80,80,30,30,60,60图243六六、动作指令、动作指令5.2 cp指令的速度设定speeds 功能用于设定cp动作速度值格式:speeds 速度设定值说明:表1 为不同机型对应的速度设定值范围示例:speeds 800 cp动作的速度设置为800mm/saccels功能用于设定cp动作加减速度值格式:accels 加速设定值,减速设定值说明:表1 为不同机型对应的加减速度设定值范围示例:accels 800 加减速度均为80

22、0mm/s机械手型号speeds值范围mm/saccels值范围mm/se2系列1112015000g系列12000125000ps系列12000125000rs系列12000125000ls系列12000125000表144六六、动作指令、动作指令4.3 power指令功能:电源模式的设定格式:power high|low说明:默认值为low。低功率模式下电机输出被限制,实际动作速度变为默认初始值的范围内。低功率模式设定时,从监控窗口或程序中即使出现设为高速的指示,也会按初始值速度动作。如果需要用更高的速度动作时,必须设定为power high。4.4 weight指令功能:进行补偿ptp

23、动作时的速度加减速度的参数设定格式:weight 手部重量说明:手部重量指指定手臂上垂挂的夹治具和其他工件的重量。由设定值计算出的等价搬运重量超过最大可搬运重量时,会出现错误。45六、动作指令六、动作指令5. jump 指令的修饰5.1 拱形动作在jump指令后通过指定门形参数cn(n=07),可以改变拱形的形状。上图中a,b的值与c06对默认初始值(单位:mm)如下表列,7为门形动作。要改变c06对应的a,b的值,使用arch指令。也可以tools|robot manager|arch选项卡中修改。拱形编号01234567a30405060708090门型运动b304050607080904

24、6六、动作指令六、动作指令5.2 arch指令功能:用于设定jump动作拱形参数设定格式arch 拱形编号,垂直上升距离,垂直下降距离说明设定值比垂直移动距离大时变为门形动作。设定值即使掉电也会被保持。运动轨迹根据运动速度、机械手的动作方式而改变,所以动作前请先确认动作轨迹示例:arch 0,10,4047七、七、i/o控制指令控制指令rc90控制器标配了24位输入和16位输出,用户可以通过安装i/o板卡扩展i/o位数。每张i/o板卡包括32位输入和32位输出,最多可以安装4张i/o板卡,既最多可增加128位输入和128位输出。1硬件连接1.1 输入电路:输入电压范围: + 12 24v 10

25、on 电压: + 10.8v(最小)off 电压: + 5v(最大)输入电流: 10ma,24v输入时,典型值48七、七、i/o控制指令控制指令1.2 输出电路额定输出电压: + 12 24v 10最大输出电流::100ma(典型值)1输出输出驱动器::photo mos继电器通态电阻(平均)::23.5以下输出49七、七、i/o控制指令控制指令2 输出指令on 功能:打开指定输出位格式:on 输出位编号, 时间, 非同步指定输出位编号:可使用的输出位编号;时间:以秒为单位,最小有效位为0.01秒;非同步指定:0或1说明:非同步指定在时间指定时可以指定,功能如表1 示示例:1. on 1 2.

26、 on 1,0.5,0off 功能:关闭指定输出位格式:off 输出位编号, 时间, 非同步指定输出位编号:可使用的输出位编号;时间:以秒为单位,最小有效位为0.01秒;非同步指定:0或1说明非同步指定在时间指定时可以指定,功能如表1 示示例:1. off 1 2. off 1,0.5,0指定1时指定时间打开后关闭,执行下一个命令。指定0时on命令开始执行的同时,执行下一个命令。省略时与指定1时限同表150七、七、i/o控制指令控制指令2 输出指令out 功能:同时设定输出8个输出位格式:out 端口编号,输出数据 端口编号:构成可使用输出位的组;输出数据:用端口编号指定的组的输出模式说明:端

27、口编号与输出数据的组合后同时设定8个输出位。输出位8位1组。首先在用端口编号指定的组中指定输出数据参数中特定的输出模式。输出数据参数用10进制数(0255)或16进制数(&h0&hff)指定。端口编号如下与位编号对应。端口编号 位编号 0 0-7 1 8-15 2 16-23 . . 63 504-511示例:out 0, 0 将07位全部关闭out 1, 255将815位全部打开out 0, 100将2,5,6位全部关闭out 0, &h64 将2,5,6位全部关闭51七、七、i/o控制指令控制指令3 输入指令3.1 wait 功能:时间等待或输入位等待格式:wait 时间 wait 输入条

28、件,时间 时间:02147483,最小有效位为0.01秒;输入条件:记述待机条件说明:只指定时间时,指定时间待机后执行下一个命令。只指定输入条件式时,待机至条件成立。指定输入条 件与时间时,条件式成立或指定时间到都会执行下一个命令。使用sw函数,可以确认输入条件式是否成 立,或指定时间是否已到。示例:wait 1.5 待机1.5秒后,继续执行程序 wait sw(3)=on 待机直到输入位3开启3.2 sw函数功能:返回指定的输入位状态格式:sw (输入位编号) 输入位编号:可以使用的输入位编号说明:进行i/o输入的状态确认。指定的输入打开时返回1,关闭时返回0。示例:print sw(3)打

29、印输入位3的状态 wait sw(1)=on and sw(2)=on 待机直到输入位1和2开启 wait sw(1)=on or sw(2)=on 待机直到输入位1或2开启52七、七、i/o控制指令控制指令3.3 in函数功能:返回指定的输入位端口格式:in(端口编号) 端口编号:构成可以使用输入位的组说明:可同时确认8个输入位的值。可以使其待机直到2个以上的i/o位的状态在特定的条件下一致。 返回值为0255范围的整数值。示例:print in(0)打印输入位3的状态 wait in(0)=0 待机到07位全部关闭 wait in(0)=255 待机到07位全部开启53八、八、pallet

30、格式:pallet outside, pallet 编号, pi, pj, pk,pm , 列数, 行数参数: outside 创建在指定的行及列的范围外可以访问的pallet。指定范围:-32768 to 32767。可省略。 pallet 编号用0到15的整数指定pallet编号。 pi, pj, pk 指定使用在pallet定义(标准的3 点定义)中的点变量。 pm 与pi, pj, pk 一起使用定义pallet的点变量。可省略。 列数 用整数指定pi 与pj的列数。范围为1到32767。(行数列数32767) 行数 用整数指定pi 与pk的行数。范围为1到32767。(行数列数327

31、67)说明:在机械手上至少必须示教pi, pj, pk这3 点,并指定pi 与pj的分割数及pi 与pk的分割数,才能定义pallet。54八、八、pallet pallet 如果是高精度的四方形,则只要指定角上4 点中的3 个点就足够了,但是,还是建议指定全角4点的位臵后进行pallet 定义。 定义pallet 时,首先要示教角的3 或4 个点,4 点定义时:以下表示p1、p2、p3 及p4。p1-p2 间有3 点,p1-p3 间有4点,总计使用12点用以下格式定义。表示pallet的分割的各点自动地分配分割编号 (1-12)。 示教p1、p2、p3 时,尽量使三点的姿势一致。 notes

32、不正确的pallet 的定义 如果搞错了点的顺序或点间的分割数,会出现错误的pallet顺序。55八、八、palletpallet 面的定义 用角上3 点的z 坐标值定义pallet 平面的高度。所以,也可以定义垂直方向的pallet。1 列pallet 的pallet 定义 通过3 点指定的pallet 命令,也可以定义1 列的pallet。如果是1 列,应示教两端的2 点,并如下输入、执行。 同一编号方向的分割数为1。 pallet 2, p20, p21, p20, 5, 1 定义一个5x1 的palletpallet 使用示例 以下是从监控窗口设定用p1、p2、p3 定义的pallet

33、 的示例。pallet 而平均配臵15 点,p1-p2 间排列。 pallet 1, p1, p2, p3, 3, 5 jump pallet(1, 2)jump to position on pallet 此设定的创建的pallet 如右图所示。56九、九、!.! 并列处理并列处理动作中并列进行i/o 等的输入输出处理。使用示例 1) 将并列处理连同jump命令同时使用。第3 关节上升移动结束,第1、第2、第4 关节 开始动作的阶段打开输出位1。输出位1 在jump动作完成50%的阶段再次关闭。function testjump p1 !d0; on 1; d50; off 1!fend2)

34、 将并列处理连同jump 命令一起使用。第3 关节上升移动结束,第1、第2、第4 关节各自完成到p1 的移动的 10%的阶段打开输出位5,0.5 秒后关闭输出位5。function test2jump p1 !d10; on 5; wait 0.5; off 5!fend注意:所有i/o 命令结束前动作结束的情况下 即使结束特定动作命令的动作所有的并列处理语句的执行也没有结束时,等全部结束以后执行下一个程 序。这种状况在必须并列处理多个i/o 命令的短距离移动动作时特别要注意用停止手臂的till 语句中途结束动作时,并联i/o 的执行 如果移动的中途停止手臂的till 语句被使用,动作语句执行

35、的下一个语句等待至全部并列处理语句执行结 束后执行。57十、多任务处理十、多任务处理多重任务是多个作业同时执行,可以大幅度缩短任务时间(作业时间)。也可以同时控制周边设备,这样系统整体效率提高生产性也会提高。作业分为各个任务后,程序会变得易懂,且维修也可以对各任务分别进行,要新增作业时只需添加任务就可以了。可以同时执行的任务最多可以是16 个。格式:xqt 任务编号, 函数名(自变量一览表) ,normal | nopause | noemgabort 动作任务1 : 重复p1p4的jump动作任务2 : 每5秒打开/关闭1次i/o。程序:function test9integer ixqt

36、iodofor i= 1 to 4 jump p(i)nextloopfendfunction iodoon 1; wait 0.5off 1; wait 0.5loopfend58十一、循环控制指令十一、循环控制指令1、do . loop功能:条件一致或不一致时反复执行do . loop直接的程序,直到条件一致为止格式1:do while |until条件式 语句】 exit do 语句 loop格式2:do 语句】 exit do 语句 loopwhile |until条件式说明:当条件式省略时,且do . loop循环中没有eixt do语句则为一个无限循环。当条件式成立时退出循环。退出

37、do.loop的另一个方法是可以在do.loop中的任何位置,插入任意个exit do语句。exit do经常使用在对if.then 等几个条件进行评价之后。在if.then 上使用exit do语句后,将控制loop移至下一个语句。示例:do while sw(8) =on 当输入8为on时一直执行do . loop之间语句 go p1 移动到p1位置 on 8 打开输入8 go p2 移动p2位置 off 8 关闭输入8 loop 59十一、循环控制指令十一、循环控制指令2、if . then . elseif . endif功能:根据指定条件分歧执行命令格式1:if 条件式 then 语

38、句 t1 . . elseif 条件式 then 语句 t1 . . else 语句 f1 . . endif格式2:if 条件式 then 语句t1 ;语句t2. else 语句 f1 ;语句 f2.说明:if . then . else 在满足条件时执行语句t1以后部分,不满足条件时执行f1以后部分,else部分可省略,不满足条件时就执行 endif 以后部分。按照格式1编辑程序时必须以endif结束,按照格式2将语句编辑到同一行时可省略 endif,if.then.else 语句的程序段,嵌套最多可以有20段示例: if sw(8)=on then 当输入8接通时移动到p1 go p1

39、endif60十一、循环控制指令十一、循环控制指令3、 for . next功能:for . next 之间一连串的语句执行指定次数格式1:for 变量名=初始值 to 结束值 step 增值 语句 . next 变量名说明: 初始值的数值为计数器最初的值。如果正确设定了结束值变量与增值,就可以设定负的数值。结束值为计数器的最终值。到达此值后循环立即结束,程序控制移至next 命令的下一个命令。 for 语句的下一个语句被执行至到达next 命令为止。计数器变量(变量名)根据增值参数,只增值指定的值。如果没有设定增值值,计数器每1 增减。 然后计数器变量(变量名) 与最终值比较。计数器比最终值

40、小或相同时, for 命令的下一个语句被再次执行。计数器变量(变量名)大于最终值时在for.next循环以外分支,在next 命令的下一个命令上继续。 在for. next间再次使用for.next语句叫做嵌套。嵌套最高可以到16段 示例: for ctr = 1 to 10 go pctr next ctr for ctr = 10 to 1 step -1 go pctr next ctr 61十一、循环控制指令十一、循环控制指令4、gosub . return功能:gosub 是将程序控制转移至子程序。子程序的执行结束后控制回到gosub 命令的下 一行。格式1:gosub 行编号 |

41、标签 行编号|标签: 语句 return .说明:gosub 命令将程序控制转移至指定的行或标签。程序执行转移目标的语句,就这样一直执行转移目标行,直到return 命令。gosub 命令在执行子程序以后用return 返回gosub 命令的下一行。请务必用return 结束子程序。note: 1)gosub 命令在转移目标中指定不存在的行编号或标签后,会发生错误1650。 2)gosub 命令的嵌套最多只能有16段。即转移目标的子程序内再次执行gosub 命令, 并再次执行子程序可以有16次。想执行第17次gosub 命令就会发生错误7 。 3)return 命令将执行了gosub 命令的部

42、分恢复至原来的程序。如果没有gosub ,但使 用了return ,就会发生错误3 。没有gosub 时使用return ,不知道恢复至哪里,所以 无任何意义。示例:function main go sub checkio gosub using label on 1 exit function checkio: subroutine starts here var1 = in(0) var2 = in(1) return subroutine ends here62十一、循环控制指令十一、循环控制指令5、goto功能:goto命令是将程序控制转移至指定的行或标签格式:goto 行编号 | 标

43、签 说明:goto 命令将程序控制转移至指定的语句行或标签。程序执行转移目标的语句行,并执行以下的行note:在1 个程序中,如果过多使用goto命令,程序就会变得难懂,请注意。通常尽量不要使用goto命令。实际上,有时不得不使用goto,但是像goto 语句将源代码到处转移的使用会造成错误或引起其他问题示例:function main if sw(1) = off then goto mainabort endif print input 1 was on, continuing cycle . exit function mainabort: print input 1 was off,

44、cycle aborted! fend63十一、循环控制指令十一、循环控制指令6、call功能:将函数作为子程序调出格式1:call 函数名 ( 自变量列表) .说明:通过call 命令,function.fend 将程序控制移至定义的函数。通过call 命令,程序的执行 从当前的函数移至call 命令指定的函数。程序一直用调出的函数继续,直到找开exit function 或fend。接着用call 命令的下一个语句返回原来的函数控制。示例: function main call initrobot(1) fend function initrobot(robotnumber as inte

45、ger) integer savrobot savrobot = robot robot robotnumber motor on if not mcalcomplete then mcal end if robot savrobot fend64十一、循环控制指令十一、循环控制指令7、while. wend功能:条件成立期间,执行while. wend 之间的指定的语句。格式1:while 条件式 语句 wend .说明:指定while条件。如果条件成立,在whilewend 间的语句被执行,再一次确认while条件。 while条件成立期间,重复whilewend 间的语句的执行与while条件的确认。如果while 条件不成立,程序控制移至wend的下一个命令。如果第1 次确认后while条件不成立, whilewend 间的语句一次都不被执行。note:在一个while.wend 循环中可嵌套的while.wend循环最多为16段。示例:long i i = 1 while i 60 execute statements between wh

温馨提示

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

评论

0/150

提交评论