EPSON机械手培训-课件.ppt

上传人:本田雅阁 文档编号:2104832 上传时间:2019-02-14 格式:PPT 页数:72 大小:4.24MB
返回 下载 相关 举报
EPSON机械手培训-课件.ppt_第1页
第1页 / 共72页
EPSON机械手培训-课件.ppt_第2页
第2页 / 共72页
EPSON机械手培训-课件.ppt_第3页
第3页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《EPSON机械手培训-课件.ppt》由会员分享,可在线阅读,更多相关《EPSON机械手培训-课件.ppt(72页珍藏版)》请在三一文库上搜索。

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

2、结果,有干涉周边设备的危险。为了避免这种情况,在点数据中必须事先指定使其在此点上动作时的手臂姿势(如下图)。此信息也也可以从程序中变更(L或者R)。,2.1 SCARA机械手的手臂姿势图,系统构成,NPN接法,PNP接法,NPN接法,PNP接法,1、控制器运行时序图,2、急停时序图,3、程序执行时序图,4、安全门输入时序图,1、I/O扩展板输入输出定义及设置,2、1号I/O扩展引脚定义,不外接急停时可以将安全I/O按如下方式接线:1,2,3,7,9,18,20短接 4,11短接 8,19,21,25短接 12,17短接 10,14,15,16短接,1. 软件IP设置(使用以太网连接时用) (1

3、)单击“设置” “电脑与控制器通讯”进入IP设置画面,然后单击工具栏图 标“ ”进入IP设置画面 ,然后单击“增加”进入右下图画面选择“通 过以太网连接到控制器”单击确定,(2)设置新增以太网连接名称及IP地址 ,控制器出厂默认控制器IP设置如右下图所示 设置好IP后单击应用,如果控制器IP忘记了,可以先用USB线连接控制器然后在 “设置”|控制器|configuration里可以查看控制器IP,电脑IP的前三位要与控制 器的前三位相同,例如“192.168.0.10”。设置好IP地址后单击“连接”连接控 制器 。,2.控制器设置 (1)单击“设置” “控制器”进入控制器设置画面,然后单击“c

4、onfiguration” 设置控制的IP地址及控制方式,当要使用外部I/O控制时须将“Control Device” 远程I/O,然后单击“Apply”,再单击关闭,等待控制器重启完毕后,按“F5”, 单击“激活远程I/O”后关闭软件即可使用外部I/O控制控制器,3. 示教画面 打开Jog&Teach页面: Tools Robot Manager Jog&Teach或单击工具栏 图标后,选择Jog&Teach页面。如下图示,Mode说明: World:在当前的局部坐标系、工具坐标系、机械手属性、ECP坐标系上,向X、Y、Z轴的方向微动动作。如果是SCARA型机械手,也可以向U方向微动。如果是

5、垂直6轴型机械手,则可以向U方向(倾斜)、V方向(仰卧)、W方向(偏转)微动。 Tool : 向工具定义的坐标系的方向微动移动。 Local: 向定义的局部坐标系的方向微动移动。 Joint : 各机械手的关节单独微动移动。不是直角坐标型的机械手使用Joint模式时,显示单独的微动按钮。 ECP : 在用当前的外部控制点定义的坐标系上,微动动作。,4. 示教点步骤 (1)在“点数据”页面中“点文件”下拉菜单中选择需要教点的点文件,单击选择点文件,(2)在步进示教页面右下角位位置选择需要示教的点编号,单击选择要示教的点位,(3)微动将机械手移动的需要示教点的位置。如果是SCARA机械手,Moto

6、r On情况下,可以在Control Panel 页面Free All释放所有轴后,手动将机械手移动需要示教点的位置后,Lock ALL锁定所有轴。,微动按钮,点位追踪按钮,在马达上伺服ON时直接移动到之前示教的点位,一般在之前点位变化需做微调时用,(4)点击Teach按钮,系统自动记录下示教点在当前坐标系的具体数值。如果需要示教的点为新增点,将弹出以下对话框,用户可根据需要对该点编辑标签及描述,编辑点标签及描述然后单击“确定”,(5)在“点数据”页面单击“保存”按钮,完成示教点。,5. 马达重置及伺服OFF 工具 机器人管理器控制面板或单击工具栏 图标后,选择“控制面板”页面。如下图示,伺服

7、ON,运行功率设置,马达报警时重置马达,刹车释放,Z轴刹车释放后要按住伺服指示灯旁边白色按钮才能手动移动Z轴,6. 工具坐标设置 工具 机器人管理器工具或单击工具栏 图标后,选择“工具”页面。如下图示,(1)在“工具”画面单击“工具向导”,进入工具向导画面,选择工具坐标编号,(2)选择好工具坐标编号后单击“NEXT”,进入如下画面,单击“Teach”进入机器人示教画面,(3)将U轴旋转到0度,在机器人运动范围内固定一个参考位置,然后通过移动X、Y轴移动到参考位置,然后单击确定,(4)示教好第一个位置后单击“Teach”进入如下画面,然后单击“Teach”进入第二点示 教画面,(5)将Z后提起后

8、,旋转180度后,重新移动X、Y轴至之前保存的位置,然后单击“Teach”进入下图画面,然后单击“Finish”,完成工具坐标校准,7. I/O监控 “工具” “I/O监视器”工具或单击工具栏 图标后,进入如下图示画面监控I/O状态,双击输出位时可以强制输出ON,1. 概述 SPEL+是在RC170/180、RC90控制器上运行的与BASIC相近的程序语言。它支持多任务,动作控制和I/O控制。程序以ASCII文本形式创建,被编辑在可以执行的对象文件中。 2. 程序结构 一个SPEL+程序包括有函数,变量和宏指令,每一个程序以.PRG的扩展名保持到对应的项目里(Project)。一个项目至少包含

9、有一个程序和一个main函数。函数以Function开始,Fend结束,函数名可以使用最多32个字符的半角英文数字和下划线,不区分大小写,但是不可以使用以数字和下划线开始的名称或SPEL+关键字。 3. 变量 SPEL+中有3种不同的变量。 Local : 局部变量(用在同一Function内使用的变量) Module : 模块变量(在同一程序内使用的变量) Global : 全局变量(在同一项目内使用的变量),程序示例:,MAIN.PRG Function Main Call Func1 . Fend Function Func1 Jump pickpnt .,Integer m_i 模块变

10、量m_i Global (Preserve) Integer g_i 全局变量(全局保护变量)g_i Function main Integer I 局部变量i . Fend Function Func1 Integer I 局部变量i . Fend,4. 变量的数据类型 变量有多种数据类型,使用前先说明类型,格式为:数据类型变量名。例如:Integer i,定义变量i为整型数据。另外,代入的数据和变量的类型必须一致。在下表中列出SPEL+ 语言中使用的数据类型。,动作指令分类 使机械手动作的指令叫作动作指令。 可分为:PTP动作指令,CP动作指令,Curves动作指令,Joint动作指令。,

11、NOTE: * CP模式,即Continuous Path 连续路径模式。 * 指定PTP动作指令和Joint动作指令的速度和加/减速度时,使用SPEED指令和ACCEL指令。指定CP模式动作指令时,使用使用SPEEDS指令和ACCELS指令。,2. PTP指令 包括指令:Go、Jump、BGo、TGo PTP(Pose To Pose)动作,是与其动作轨迹无关,以机械手的工具顶端为目标位臵使其动作的动作方法。PTP动作,使用各关节上配置的电动机,使机械手通过最短的路径到达目标位置。 优点:运动速度快,缺点:运动轨迹无法预测。指定PTP动作速度和加/减速,使用SPEED指令和ACCEL指令。

12、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的位置 2.2 Jump 指令 功能:通过“门形动作”使手臂手臂从当前位臵移动至目标坐标。 格式:Jump 目标坐标 示例: 1. Jump P1 机械手以“门形动作”动作到P1点 2.

13、 Jump P1 LimZ -10 以限定第三轴目标坐标Z=-10的门形动作移动到P1点,如图1示 3. Jump P1:Z(-10)LimZ -10 以限定第三轴目标坐标Z=-10的门形动作移动到P1点位臵Z坐标值为-10的位置,图1,NOTE: Go与Jump的区别Jump与Go都是使机械手手臂用PTP动作移动的命令。但是Jump有Go没有的一个功能。Jump将机械手的手部先抬起至LimZ 值,然后使手臂水平移动,快要到目标坐标上空的时候使其下降移动。此动作的标准是可以更准确地避开障碍物这一点,更重要的是通过吸附、配置动作,提高作业的周期时间。 3. CP指令 包括指令:Move、Arc、

14、Arc3、Jump3/Jump3CP、BMove、TMove、CVMove CP(Continuous Path )指令可以指定机械手到达目标位臵的运动轨迹。 优点:轨迹可以控制,匀速动作。缺点:速度慢。 指定Linear动作速度和加/减速度,使用SPEEDS指令和ACCELS指令。 3.1 Move 指令 功能:以直线轨迹将机械手从当前位置移动到指定目标位置。全关节同时启动,同时停止。 格式:Move 目标坐标 示例:Move P1 机械手以直线轨迹动作到P1点 NOTE: Move与Go的区别到达目标点时的手臂的姿势重要的时候使用Go命令,但是比控制动作中的手臂的轨迹重要的时候,使用Mov

15、e 命令。在SCARA机械手只有Z轴上下动作时,Go与Move的轨迹一样。,3.2 Arc和Arc3 指令 功能:Arc 在XY平面上以圆弧插补动作。 Arc3 在3D空间里以圆弧插补动作。 格式:Arc 经过坐标,目标坐标 说明:将机械手从当前位臵到目标坐标,通过经过坐标用圆弧插补动作活动时使用。从所给的3点(当前坐标、经过坐标、目标坐标)自动演算圆弧插补轨道,并沿着此轨道移动机械手直至目标坐标为止。 示例:Arc P2,P3 NOTE: 即使目标坐标在机械手的动作范围内,一旦在Move或Arc运动轨迹超过允许动作范围外,机械手会突然停止,给伺服电机带来撞击,有产生故障的危险。为了防止这样的

16、事发生,请在高速执行之前先以低速进行动作范围确认。,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 CP指令 2、Jump3CP指令用法与Jump3类似,不同在于Jump3CP是3个CP动作的组合 3、SCARA机械手Z轴上升或下降动作时,使用Jump指令可以提高运动速度 3.4 BMove

17、 、TMove、CVMove 指令 BMove 在指定的局部坐标系(Local)上执行偏移直线插补动作。没有指定局部坐标系时,以局部0(基准坐标系)为基准,进行进行偏移PTP 动作。 TMove 在当前的工具坐标系上执行偏移直线插补动作。,图2,CVMove 用Curve 命令执行定义的自由曲线CP 动作。CVMove 执行设定控制器硬盘上的文件名的文件数据的自由曲线CP 动作。此文件必须事先用Curve 命令制作。 Curve “mycurve”, O, 0, 4, P1, P2, On 2, P(3:7) 设定自由曲线 Jump P1 用直线将手臂移动至P1 CVMove “mycurve

18、” 用定义的自由曲线“mycurve”移 动手臂 5. 速度设定指令 5.1 PTP指令的速度设定 Speed 功能用于设定PTP动作速度的百分比 格式:Speed s,a,b 说明:s 速度设定值;a 第三轴上升速度设定值;b 第三轴下降速度设定值。 示例:1. Speed 80 2. Speed 80,40,30 Accel 功能用于设定PTP动作加减速度的百分比。 格式:Accel a,b,c,d,e,f 说明:a/b 加/减速度设定值;c/d 第三轴上升加/减速度设定值; e/f 第三轴下降加/减速度设定值 示例:1. Accel 80,80 2. Accel 80,80,30,30,

19、60,60,图2,5.2 CP指令的速度设定 SpeedS 功能用于设定CP动作速度值 格式:SpeedS 速度设定值 说明:表1 为不同机型对应的速度设定值范围 示例:SpeedS 800 CP动作的速度设置为800mm/s AccelS功能用于设定CP动作加减速度值 格式:AccelS 加速设定值,减速设定值 说明:表1 为不同机型对应的加减速度设定值范围 示例:AccelS 800 加减速度均为800mm/S,表1,4.3 Power指令 功能:电源模式的设定 格式:Power High|Low 说明:默认值为Low。低功率模式下电机输出被限制,实际动作速度变为默认初始值的范围内。低功率

20、模式设定时,从监控窗口或程序中即使出现设为高速的指示,也会按初始值速度动作。如果需要用更高的速 度动作时,必须设定为Power High。 4.4 Weight指令 功能:进行补偿PTP 动作时的速度加减速度的参数设定 格式:Weight 手部重量 说明:手部重量指指定手臂上垂挂的夹治具和其他工件的重量。由设定值计算出的等价搬运重量超过最大可搬运重量时,会出现错误。,5. Jump 指令的修饰 5.1 拱形动作 在Jump指令后通过指定门形参数Cn(n=07),可以改变拱形的形状。 上图中a,b的值与C06对默认初始值(单位:mm)如下表列,7为门形动作。要改变C06对应的a,b的值,使用Ar

21、ch指令。也可以Tools|Robot Manager|Arch选项卡中修改。,5.2 Arch指令 功能:用于设定Jump动作拱形参数设定格式Arch 拱形编号,垂直上升距离,垂直下降距离说明设定值比垂直移动距离大时变为门形动作。设定值即使掉电也会被保持。运动轨迹根据运动速度、机械手的动作方式而改变,所以动作前请先确认动作轨迹 示例:Arch 0,10,40,RC90控制器标配了24位输入和16位输出,用户可以通过安装I/O板卡扩展I/O位数。每张I/O板卡包括32位输入和32位输出,最多可以安装4张I/O板卡,既最多可增加128位输入和128位输出。 1硬件连接 1.1 输入电路:输入电压

22、范围: + 12 24V 10 ON 电压: + 10.8V(最小)OFF 电压: + 5V(最大) 输入电流: 10mA,24V输入时,典型值,1.2 输出电路 额定输出电压: + 12 24V 10 最大输出电流::100mA(典型值)1输出 输出驱动器::Photo Mos继电器 通态电阻(平均)::23.5以下输出,2 输出指令 On 功能:打开指定输出位 格式:On 输出位编号, 时间, 非同步指定 输出位编号:可使用的输出位编号;时间:以秒为单位,最小有效位为0.01秒;非同步指定:0或1 说明:非同步指定在时间指定时可以指定,功能如表1 示 示例:1. On 1 2. On 1,

23、0.5,0 Off 功能:关闭指定输出位 格式:Off 输出位编号, 时间, 非同步指定 输出位编号:可使用的输出位编号;时间:以秒为单位,最小有效位为0.01秒;非同步指定:0或1 说明非同步指定在时间指定时可以指定,功能如表1 示 示例:1. Off 1 2. Off 1,0.5,0,表1,2 输出指令 Out 功能:同时设定输出8个输出位 格式:Out 端口编号,输出数据 端口编号:构成可使用输出位的组;输出数据:用端口编号指定的组的输出模式 说明:端口编号与输出数据的组合后同时设定8个输出位。输出位8位1组。首先在用端口编号指定的组中 指定输出数据参数中特定的输出模式。输出数据参数用1

24、0进制数(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位全部关闭,3 输入指令 3.1 Wait 功能:时间等待或输入位等待 格式:Wait 时间 Wait 输入条件,时间 时间:02147483,最小有效位为0.01秒;输入条件:记述待机条件 说明:只指定时间时,指定时间待机后执行下一个命令。只指定输入条件

25、式时,待机至条件成立。指定输入条 件与时间时,条件式成立或指定时间到都会执行下一个命令。使用Sw函数,可以确认输入条件式是否成 立,或指定时间是否已到。 示例:Wait 1.5 待机1.5秒后,继续执行程序 Wait Sw(3)=On 待机直到输入位3开启 3.2 Sw函数 功能:返回指定的输入位状态 格式:Sw (输入位编号) 输入位编号:可以使用的输入位编号 说明:进行I/O输入的状态确认。指定的输入打开时返回1,关闭时返回0。 示例:Print Sw(3) 打印输入位3的状态 Wait Sw(1)=On and Sw(2)=On 待机直到输入位1和2开启 Wait Sw(1)=On or

26、 Sw(2)=On 待机直到输入位1或2开启,3.3 In函数 功能:返回指定的输入位端口 格式:In(端口编号) 端口编号:构成可以使用输入位的组 说明:可同时确认8个输入位的值。可以使其待机直到2个以上的I/O位的状态在特定的条件下一致。 返回值为0255范围的整数值。 示例:Print In(0) 打印输入位3的状态 Wait In(0)=0 待机到07位全部关闭 Wait In(0)=255 待机到07位全部开启,格式:Pallet Outside, Pallet 编号, Pi, Pj, Pk,Pm , 列数, 行数 参数: Outside 创建在指定的行及列的范围外可以访问的Pall

27、et。指定范围:-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。(行数列数32767) 说明:在机械手上至少必须示教Pi, Pj, Pk这3 点,并指定Pi 与Pj的分割数及Pi 与Pk的分割数,才能定义pallet。,Pallet 如果是高精度的四方

28、形,则只要指定角上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 不正确的pallet 的定义 如果搞错了点的顺序或点间的分割数,会出现错误的pallet顺序。,Pallet 面的定义 用角上3 点的Z 坐标值定义pallet 平面的高度。所以,也可以定义垂

29、直方向的pallet。 1 列pallet 的pallet 定义 通过3 点指定的Pallet 命令,也可以定义1 列的pallet。如果是1 列,应示教两端的2 点,并如下输入、执行。 同一编号方向的分割数为1。 Pallet 2, P20, P21, P20, 5, 1 定义一个5x1 的pallet Pallet 使用示例 以下是从监控窗口设定用P1、P2、P3 定义的pallet 的示例。Pallet 而平均配臵15 点,P1-P2 间排列。 pallet 1, P1, P2, P3, 3, 5 jump pallet(1, 2) Jump to position on pallet

30、此设定的创建的pallet 如右图所示。,动作中并列进行I/O 等的输入输出处理。 使用示例 1) 将并列处理连同Jump命令同时使用。第3 关节上升移动结束,第1、第2、第4 关节 开始动作的阶段打开输出位1。输出位1 在Jump动作完成50%的阶段再次关闭。 Function test Jump P1 !D0; On 1; D50; Off 1! Fend 2) 将并列处理连同Jump 命令一起使用。第3 关节上升移动结束,第1、第2、第4 关节各自完成到P1 的移动的 10%的阶段打开输出位5,0.5 秒后关闭输出位5。 Function test2 Jump P1 !D10; On 5

31、; Wait 0.5; Off 5! Fend 注意: 所有I/O 命令结束前动作结束的情况下 即使结束特定动作命令的动作所有的并列处理语句的执行也没有结束时,等全部结束以后执行下一个程 序。这种状况在必须并列处理多个I/O 命令的短距离移动动作时特别要注意 用停止手臂的Till 语句中途结束动作时,并联I/O 的执行 如果移动的中途停止手臂的Till 语句被使用,动作语句执行的下一个语句等待至全部并列处理语句执行结 束后执行。,多重任务是多个作业同时执行,可以大幅度缩短任务时间(作业时间)。也可以同时控制周边设备,这样系统整体效率提高生产性也会提高。作业分为各个任务后,程序会变得易懂,且维修

32、也可以对各任务分别进行,要新增作业时只需添加任务就可以了。可以同时执行的任务最多可以是16 个。 格式:Xqt 任务编号, 函数名(自变量一览表) ,Normal | NoPause | NoEmgAbort 动作 任务1 : 重复P1P4的Jump动作 任务2 : 每5秒打开/关闭1次I/O。 程序: Function test9 Integer i Xqt IO Do For i= 1 To 4 Jump P(i) Next Loop FEND FUNCTION IO Do On 1; Wait 0.5 Off 1; Wait 0.5 Loop Fend,1、Do . Loop 功能:条件

33、一致或不一致时反复执行Do Loop直接的程序,直到条件一致为止 格式1:Do while |until条件式 语句】 Exit Do 语句 Loop 格式2:Do 语句】 Exit Do 语句 Loopwhile |until条件式 说明:当条件式省略时,且Do . Loop循环中没有Eixt Do语句则为一个无限循环。当条件式成立时退出循环。退出Do.Loop的另一个方法是可以在Do.Loop中的任何位置,插入任意个Exit Do语句。Exit Do经常使用在对If.Then 等几个条件进行评价之后。在If.Then 上使用Exit Do语句后,将控制Loop移至下一个语句。 示例:Do

34、While Sw(8) =On 当输入8为ON时一直执行Do . Loop之间语句 Go p1 移动到P1位置 On 8 打开输入8 Go p2 移动P2位置 Off 8 关闭输入8 Loop,2、If . Then . Elseif . Endif 功能:根据指定条件分歧执行命令 格式1:If 条件式 Then 语句 T1 . . Elseif 条件式 Then 语句 T1 . . Else 语句 F1 . . Endif 格式2:If 条件式 Then 语句T1 ;语句T2. Else 语句 F1 ;语句 F2. 说明:If . Then . Else 在满足条件时执行语句T1以后部分,不

35、满足条件时执行F1以后部分,Else部分可省略,不满足条件时就执行 Endif 以后部分。按照格式1编辑程序时必须以Endif结束,按照格式2将语句编辑到同一行时可省略 Endif,If.Then.Else 语句的程序段,嵌套最多可以有20段 示例: If SW(8)=ON then 当输入8接通时移动到P1 Go P1 Endif,3、 For . Next 功能:For . Next 之间一连串的语句执行指定次数 格式1:For 变量名=初始值 To 结束值 Step 增值 语句 . Next 变量名 说明: 初始值的数值为计数器最初的值。如果正确设定了结束值变量与增值,就可以设定负的数值

36、。结束值为计数器的最终值。到达此值后循环立即结束,程序控制移至Next 命令的下一个命令。 For 语句的下一个语句被执行至到达Next 命令为止。计数器变量(变量名)根据增值参数,只增值指定的值。如果没有设定增值值,计数器每1 增减。 然后计数器变量(变量名) 与最终值比较。计数器比最终值小或相同时, For 命令的下一个语句被再次执行。计数器变量(变量名)大于最终值时在For.Next循环以外分支,在Next 命令的下一个命令上继续。 在For. Next间再次使用For.Next语句叫做嵌套。嵌套最高可以到16段 示例: For ctr = 1 to 10 Go Pctr Next ct

37、r For ctr = 10 to 1 Step -1 Go Pctr Next ctr,4、GoSub . Return 功能:GoSub 是将程序控制转移至子程序。子程序的执行结束后控制回到GoSub 命令的下 一行。 格式1:GoSub 行编号 | 标签 行编号|标签: 语句 Return . 说明:GoSub 命令将程序控制转移至指定的行或标签。程序执行转移目标的语句,就这样一直执行转移目标行,直到Return 命令。GoSub 命令在执行子程序以后用Return 返回GoSub 命令的下一行。请务必用Return 结束子程序。 NOTE: 1)GoSub 命令在转移目标中指定不存在的

38、行编号或标签后,会发生错误1650。 2)GoSub 命令的嵌套最多只能有16段。即转移目标的子程序内再次执行GoSub 命令, 并再次执行子程序可以有16次。想执行第17次GoSub 命令就会发生错误7 。 3)Return 命令将执行了GoSub 命令的部分恢复至原来的程序。如果没有GoSub ,但使 用了Return ,就会发生错误3 。没有GoSub 时使用Return ,不知道恢复至哪里,所以 无任何意义。 示例:Function main Go Sub checkio GoSub using Label On 1 Exit Function checkio: Subroutine

39、starts here var1 = In(0) var2 = In(1) Return Subroutine ends here,5、Goto 功能:GoTo命令是将程序控制转移至指定的行或标签 格式:GoTo 行编号 | 标签 说明:GoTo 命令将程序控制转移至指定的语句行或标签。程序执行转移目标的语句行,并执行以下的行 NOTE:在1 个程序中,如果过多使用GoTo命令,程序就会变得难懂,请注意。通常尽量不要使用GoTo命令。实际上,有时不得不使用GoTo,但是像GoTo 语句将源代码到处转移的使用会造成错误或引起其他问题 示例:Function main If Sw(1) = Off

40、 Then GoTo mainAbort EndIf Print “Input 1 was On, continuing cycle“ . Exit Function mainAbort: Print “Input 1 was OFF, cycle aborted!“ Fend,6、Call 功能:将函数作为子程序调出 格式1:Call 函数名 ( 自变量列表) . 说明:通过Call 命令,Function.Fend 将程序控制移至定义的函数。通过Call 命令,程序的执行 从当前的函数移至Call 命令指定的函数。程序一直用调出的函数继续,直到找开Exit Function 或Fend。接

41、着用Call 命令的下一个语句返回原来的函数控制。 示例: Function main Call InitRobot(1) Fend Function InitRobot(robotNumber As Integer) Integer savRobot savRobot = Robot Robot robotNumber Motor On If Not MCalComplete Then MCal End If Robot savRobot Fend,7、While. Wend 功能:条件成立期间,执行While. Wend 之间的指定的语句。 格式1:While 条件式 语句 Wend .

42、说明:指定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 While/Wend if i 60 . i = i +

43、 2 Wend,8、Select. Send 功能:根据表达式的值将控制移至几个语句中的任意一个上。 格式1:Select 表达式 Case项目 语句 Default 语句 Send . 说明:1)Case 语句的项目中如果有与Select 语句的表达式结果一致的,则执行Case 语句后的语 句群。执行后,程序控制移至Send语句上连接的语句。 2)Case 语句的项目中如果没有与Select 语句的表达式结果一致的,则执行Default语句,程 序控制移至Send语句上连接的语句。 3)Case 语句的项目中如果没有与Select 语句的表达式结果一致的,且Default被省略,不执 行任何

44、语句,程序控制移至Send语句的下一个语句。 4)Select 语句的表达式与CASE 语句的项目中可以指定使用常数、变量、And Or Xor 等 的逻辑算符。 5)1 个Select 命令上最多可以创建250 段的Case 语句。 示例:Select I Case 0 Off 1;On 2;Jump P1 Case 3 On 1;Off 2 Jump P2;Move P3;On 3 Case 7,9、OnErr 功能:发生错误时,在错误处理子程序上设定使控制分支的中断。使用记可以进行错误处理。 格式1: OnErr GoTo 标签 | 行编号 | 0 . 说明:1)通过OnErr 用户可以

45、进行错误处理。如果没有使用OnErr,发生错误时任务被中止,显示 错 误。但是,如果使用OnErr,为做到自动地从错误中恢复,可以将控制移至错误处理子 程序。恢复错误后,控制移至用OnErr 命令指定的行编号。这样,即使发生错误,也不会 中断任务的执行,且可以自动进行错误处理。另外,容易变得复杂的问题也可以用同样的 方法自动处理,所以可以明显地提高工作效率。 2)OnErr 命令在指定参数 0 后被设定时,清除当前的OnErr 设定。 OnErr 0执行后,如 果发生错误,程序的执行会立即停止。 示例:Function errDemo Integer i, errNum OnErr GoTo

46、errHandler For i = 0 To 399 temp = CX(P(i) Next i Exit Function errHandler: errNum = Err If errNum = 78 Then Print “Point number P“, i, “ is undefined!“ Else Print “ERROR: Error number “, errNum, “ occurred while“ Print “ trying to process point P“, i, “ !“ EndIf EResume Next Fend,1、以下程序为一个分拣演示程序,先通

47、过EPSON视觉照相获取模版位置,然后 将不同的料排列到不同矩阵盘,然后再从矩阵盘就料取出随意放入料盘, 如此往复运行。 Integer num, num1 定义全局整形变量 *主函数* Function main Call InitRobot 调用初始化子函数 Jump daiji 移动到待机位置 Do Call Robot1 调用Robot1子函数 Loop Fend *初始化子函数* Function InitRobot If Motor = Off Then 当马达伺服未上时使伺服ON Motor On 开伺服 EndIf Power High 运行功率为高功率 Speed 10 定义

48、PTP速度 Accel 80, 80 定义加减速 Off 8 关闭输出8 Pallet 1, y1, y2, y3, 3, 2 定义一个三列二行矩阵1 Pallet 2, y10, y11, y12, 3, 2 定义一个三列二行矩阵2 Fend,*视觉子程序* Function Vision1 Integer i, j 定义整形变量 Real X(50), Y(50), Z, U(50) 定义二个实形变量 Z = -106.5 给Z赋值 VRun wyl 运行wyl序列 VGet wyl.Geom03.NumberFound, num 获取模版Geom03个数 If num 0 Then For i = 1 To num VGet wyl.Geom03.RobotXY

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1