




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目1.5 数控铣床上下料机器人工作站一、项目目的通过本次项目的知识学习和实践操作训练,拟达到以下三大目标:1、知识目标(1)熟知机器人语言中非位置类数据,重点掌握IO变量与信号种类、数值常数;(2)熟知机器人编程语言中的运算符及其优先级。(3)熟知条件分支语句,重点掌握IF判断语句的种类与结构。(4)熟知机器人程序控制指令的语法构成。(5)熟知标签语句的语法结构;(6)熟知程序循环语句的语法结构;2、技能目标(1)会运用程序调用等指令语句优化程序结构;(2)会控制机器人完成上下料任务;(3)会控制机器人完成喷涂作业;3、素质目标(1)形成操作谨慎、安全作业的职业忧患意识;(2)培养共同讨论、
2、相互配合的团队合作精神; (3)养成认真负责、坚守岗位的岗位工作态度;二、项目引入与分析图1.5- 1所示的为数控铣床上下料工业机器人工作站。有3条纵向传送带向工业机器人传输待加工毛坯工件,机器人从初始位置启动,按照“先到先抓,同到以S1、S2、S3的顺序依次抓取”的原则,将毛坯工件放置在铣床夹具上。放置前,先卸下夹具上已加工好的成品工件。最后将成品工件放置于横向传送带上,输送至下一工位。为了完成本次项目,需要对机器人的移动轨迹进行规划,运用条件判断语句、输入输出变量、程序调用与转移语句、等待语句与程序循环语句等知识来编写机器人程序,针对轨迹规划中的各个位置进行示教。J1P20S1S2S3图1
3、.5- 1 多传送带工件搬运作业示意图三、项目任务任务1.5.1基于IO信号条件判断的搬运作业任务铣床上下料及程序优化四、项目知识 非位置类数据在项目1.4中,已经就机器人程序语言中的直交位置型数据和关节位置型数据做了讨论和实验,本项目对剩余的数值型、字符型和角度等数据做讲解说明。(一)非位置常量用于表达数值型数据的常数称为数值常数,表示固定不变的数。具体如下:(1)十进制数值常数引用形式:数值+后缀符号十进制数值常数又分为整数、长整数、单精度实数和双精度实数等,其符号如下:十进制数据类型就及后缀符号举例整数整型:%10%长整型:&10000000&实数单精度:!1.0005!
4、双精度:#1.000000003#(2)十六进制常数引用形式:&H+数值例如:&H0000、&H000F。(3)二进制常数引用形式:&B+数值例如:&B0000000000000000、&B0000001100000000。引用形式:”ABC”、”A”用于表达字符型数据的常数称为字符常数,表示固定不变的字符,必须以双引号的形式将字符引用。 角度值非不是指"弧度",而是在表现"度"时使用。记述为100deg的话,会变成角度值,可以在三角函数等自变量中使用。例:sin(90Deg)- 表示为90度正弦。(二)非
5、位置变量定义:以M文字开头的变量,或通过Def Inte(整型)、Def Long(长整型)、Def Float(单精度实数)、Def Double(双精度实数)等指令定义的变量。例如:类型:M%:整型变量,存储范围:-3276832767,例如M1%=1000; M&:长整型变量,存储范围:-21474836482147483647,例如M1&=32769; M!:单精度变量,存储范围:-3.40282347e+38 3.40282347e+38,例如MNum!=1.0006; M#:双精度变量,存储范围:-1.7976931348623157e+308 1.79769313
6、48623157e+308,例如MX_Val!=1.12345678。举例:M1%=32767DEF LONG NumNum=2147483647M2&=1147483640定义:以C文字开头的变量,或通过Def CHAR指令定义的变量。举例:C1$=”ABC”CS$=C1$Def Char MojiMoji=”I Love You”3.输入状态变量M_In、M_In8(b)、M_In16(w)、M_In32功能:读取位输入信号、连续8位信号、连续16位信号、连续32位信号中的值。格式:数值变量 In(输入信号)数值变量 Inb(输入信号)数值变量 Inw(输入信号)数值变量 In32
7、(输入信号)用语:数值变量:指可变的数值变量。输入信号: CRnQ系列: 1000018191:多CPU共享内存 716731:多抓手输入 900907:抓手输入 CRnD系列: 0255:远程输入 716731:多抓手输入 900907:抓手输入 20005071:PROFIBUS输入 60008047:CC-Link输入例子:1 M1=M_In(10010) ' 在M1输入输入信号10010号的值(1或0)。2 M2=M_Inb(900) ' 在M2输入从输入信号900号开始位量的值。3 M3=M_Inb(10300)And&H7 ' 在M3输入从输入信号1
8、0300开始3位量的值。4 M4=M_Inw(15000) ' 在M4输入从输入信号15000号开始16位量的值。4.输出状态变量M_Out、M_Out8(b)、M_Out16(w)、M_Out32功能:将位、字节、字、32位数值数据写入到输出信号。格式:MOut(输入信号) 数据MOutb(输入信号) 数据MOutw(输入信号) 数据MOut32(输入信号) 数据用语:数值变量:指可变的数值变量。输出信号: CRnQ系列: 1000018191:多CPU共享内存 716731:多抓手输入 900907:抓手输入 CRnD系列: 0255:远程输入 716731:多抓手输入 90090
9、7:抓手输入 20005071:PROFIBUS输入 60008047:CC-Link输入例子:1 M_Out(902)=1 ' 将输出信号902(位)开启。2 M_Outb(10016)=&HFF ' 将输出信号从100168位开启。3 M_Outw(10032)=&HFFFF ' 将输出信号从1003216位开启。4 M4=M_Outb(10200)And&H0F ' 在M4输入输出信号从102004位的值。 输入输出信号三菱工业机器人类型按照CPU内置与外置的不同分为D系列工业机器人和Q系列工业机器人,其各自的IO信号如表1.5-
10、1所示。D系列和Q系列工业机器人都分别有8个抓手输入信号和8个输出信号。这个8个输入信号和8个输出信号有对应的接线端子,被安装在工业机器人本体中。D系列工业机器人的通用内存IO信号和Q系列工业机器人的共享内存IO信号没有直接可对应的接线端子。但是,D系列工业机器人通过扩展并行输入输出I/F或并行输入输出单元、Q系列工业机器人借助于iQ平台的输入输出模块,也能为相应的内存IO信号分配接线端子。表1.5- 1 工业机器人输入输出信号工业机器人类别信号名称信号号码备注使用方法D系列工业机器人远程输入输出0255需要扩展并行输入输出I/F或并行输入输出单元才能与外部设备连接使用;或通过以太网通信被触摸
11、屏使用。可以在M_In, M_Inb, M_Inw, M_Out, M_Outb, M_Outw 变量里参照/代入指令。例:If M_In(900) Then M_Out(900)=1;If M_In(10080)=1 Then M_Out(10080)=1If M_In(15)=1 Then M_Out(15)=1多抓手输入输出716731安装抓手I/F卡时可以在程序中使用。抓手输入输出900907可直接与外部设备连接使用。PROFIBUS输入输出20005071PROFIBUS现场总线通信模块时可用。CC-Link输入输出60008047CC-Link现场总线通信模块时可用。Q系列工业机器
12、人多抓手输入输出716731安装抓手I/F卡时可以在程序中使用。抓手输入输出900907可直接与外部设备连接使用共享内存输入输出1000018191需要借助iQ平台直接与QPLC的CPU的共享内存相互使用。也可以通过以太网通信被触摸屏使用。对于CRnQ机器人而言,按照机器人CPU与之交换数据的对象不同,机器人外部信号种类可分为控制抓手的输入输出号和连接Q系列PLC的输入输出共享内存号,其全体信号的总括如表1.5- 1所示。对于CRnD机器人而言,机器人外部输入输出信号为032767。小节里做具体介绍。2. 抓手输入输出信号按照驱动方式的不同,机器人手爪分为气动手爪和电动手爪;相应地,由安装在机
13、器人上的气动I/F和电动I/F控制。在单电控模式中,1台机器人最多可以安装6个手爪,在示教盒上分别由X、Y、Z、A、B、C等6个键控制。在双电控模式中,1台机器人最多可以安装4个手爪,在示教盒上分别由C、B、A、Z等4个键控制。以双电控为例,出厂时抓手号与抓手输入输出号之间的对应关系如表2- 1所示。表2- 1 抓手输入输出信号与抓手号对应表抓手种类状态输入输出号及其状态气动抓手抓手1=开抓手2=开抓手3=开抓手4=开900=1 901=0902=1 903=0904=1 905=0906=1 907=0电动抓手抓手=开M_Out(9*0)M_Out(9*7)为系统所使用的,因此使用者无法使用
14、。使用的话,会无法正常的开闭抓手。未安装时-M_Out(9*0)M_Out(9*7)无功能在实际使用时,最好不要通过输入输出变量来控制抓手,建议采用抓手控制指令HOPEN和HCLOSE来控制抓手的开闭。 运算数据的运算本质上是对数据进行的加工操作。机器人语言中采用一些符号来描述运算形式,这些符号被称为运算符,被运算的数据被称为运算量,由运算符和运算量构成了运算表达式。机器人语言提供了丰富的运算符给用户使用,如数值运算、逻辑运算、比较运算及赋值语句等。在机器人语言中,运算表达式如下:左 项运算量 运算符 右项运算量运算结果例如:15 AND 25615(即:数值型 AND 数值型的运算结果还是为
15、数) P1 * M1P2(即:位置型变量 × 数值型变量的运算结果还是位置型变量) M1 * P1(即:数值型变量 × 位置型变量的运算结果会出错并报警)运算结果的数据类型会被强制类型转换,转换类型与左右项运算量及运算符有关。不是所有的运算量类型都可以进行组合运算,例如左项运算量类型为数值型、而右项运算量类型为位置型时,运算结果就会报错。可组合的运算量类型机运算结果类型请参见表2- 2。表2- 2 运算量类型组合表及运算结果类型左项运算符右项字符型数值型位置型关节型整数实数字符型=(赋值)+(加法)比较运算符字符串字符串整数整数型+(加法)-(减法)*(乘法)/(除法)
16、165;(整除)Mod(余数)(指数)=(赋值)比较运算逻辑运算整数整数整数整数整数整数整数整数整数整数实数实数实数实数整数整数实数整数整数整数实数型+(加法)-(减法)*(乘法)/(除法)¥(整除)Mod(余数)(指数)=(赋值)比较运算逻辑运算实数实数实数实数整数整数实数整数整数整数实数实数实数实数实数实数实数整数整数整数位置型+(加法)-(减法)*(乘法)/(除法)¥(整除)Mod(余数)(指数)=(赋值)比较运算逻辑运算位置型位置型位置型位置型位置型位置型位置型位置型位置型关节型+(加法)-(减法)*(乘法)/(除法)¥(整除)Mod(余数)(指数)=(赋
17、值)比较运算逻辑运算关节型关节型关节型关节型关节型关节型关节型只有右项(单项)(反转)NOT(否定)整数整数整数整数位置关节机器人语言规定了运算符的优先级和结合性,在表达式求值时,先按运算符的优先级别的高低次序执行运算,表2- 3列出了所有运算符的优先级别。表2- 3 运算符及其优先级运算符运算种类优先级()括弧运算高低函数标识名函数指数数值运算* /乘 除数值运算¥整除数值运算MOD余数数值运算+ 加减数值运算 逻辑运算=,<>,>,<,<=,>=,比较运算NOT逻辑运算And逻辑运算Or逻辑运算XOr逻辑运算 条件分支指令(一)IF条件语句功能
18、:针对单个条件进行流程判断与单行语句处理格式:IF <条件表达式> THEN 处理1IF <条件表达式> THEN 处理1 ELSE 处理2参数:<条件表达式>:为必须项,记述符合逻辑条件的计算表达式或逻辑表达式,其结果只能为1(TRUE)或0(FALSE)处理1:可选项,记述IF条件判断为1(TRUE)时的处理语句。处理2:可选项,记述IF条件判断为0(FALSE)时的处理语句。例子:If M1>10 Then *L100 ' M1 比 10大的情况下,跳转到标识L100If M1>10 Then GoTo *L20 Else GoTo
19、 *L30 ' M1比10大的话,跳转到标识L20;M1比10小的话,跳转到标识L30.说明:(1)If Then Else 以一行记述。(2)单行IF语句中ELSE可以省略。(3)在Then 或 Else的后面接连GoTo的情况下,可以将GoTo省略。流程示意图如图1.5- 2所示。图1.5- 2 单行IF流程示意图ENDIF语句功能:针对单个条件进行流程判断与多行语句处理格式:IF <条件表达式> THEN 处理1 处理2 ELSE 处理3 处理4ENDIF参数:<条件表达式>:为必须项,记述符合逻辑条件的计算表达式或逻辑表达式,其结果只能为1(TRUE)或
20、0(FALSE)处理1:可选项,记述IF条件判断为1(TRUE)时的处理语句。处理2:可选项,记述IF条件判断为1(TRUE)时的处理语句。处理3:可选项,记述IF条件判断为0(FALSE)时的处理语句。处理4:可选项,记述IF条件判断为0(FALSE)时的处理语句。例子:10 If M1>10 Then 当M1的值大于10时,执行11和12步语句11 M1=1012 Mov P113 Else 当M1的值小于10时,执行14和15步语句14 M1=-1015 Mov P216 EndIf 结束IF多行语句说明:(1)多行IF语句的情况下,必须使用ENDIF结束IF语句。(2)在多行IF
21、ENDIF情况下,不得使用GOTO指令让其跳转,否则控制器会因内存不足而报警。流程示意图如图1.5- 3所示。图1.5- 3 多行IF流程示意图功能:针对多个条件进行流程判断与多行语句的处理。格式1: 格式2:IF <条件表达式1> THEN IF <条件表达式1> THEN IF <条件表达式2> THEN 处理11 IF <条件表达式2> THEN 处理1 处理11 处理2 处理12 ELSE ELSE 处理3 处理13 处理4 处理14ENDIF ENDIF ELSE 处理3 处理4参数:<条件表达式>:为必须项,记述符合逻辑条
22、件的计算表达式或逻辑表达式,其结果只能为1(TRUE)或0(FALSE)处理11:可选项,记述两次IF条件判断同时为1(TRUE)时的处理语句。处理12:可选项,记述两次IF条件判断同时为1(TRUE)时的处理语句。处理13:可选项,记述IF条件1判断为1且条件2为0时的处理语句。处理14:可选项,记述IF条件1判断为1且条件2为0时的处理语句。处理3:可选项,记述IF条件1判断为0时的处理语句。处理14:可选项,记述IF条件1判断为0时的处理语句。例子:30 If M1>10 Then31 If M2 > 20 Then32 M1 = 1033 M2 = 1034 Else35
23、M1 = 036 M2 = 037 EndIf38 Else39 M1 = -1040 M2 = -1041 EndIf说明:图1.5- 4 多行IF流程示意图(1)If Then Else EndIf 的情况下,在Then 或 Else 里,可以继续嵌套单行IF或多行IFENDIF语句。最多可嵌套8段IF语句。(2)在多行IFENDIF情况下,不得使用GOTO指令让其跳转,否则控制器会因内存不足而报警。流程示意图如图1.5- 4所示。在多行IFENDIF语句和嵌套IF语句中,不可使用GOTO跳转指令,但是可以使用BREAK语句跳出IFENDIF语句,程序将执行ENDIF语句的下一行语句。例如
24、:30 If M1>10 Then31 If M2 > 20 Then Break ' 条件成立的话,跳转到STEP号码39。32 M1 = 1033 M2 = 1034 Else35 M1 = -1036 If M2 > 20 Then Break '条件成立的话,跳转到STEP号码39。37 M2 = -1038 EndIf39 If M_BrkCq=1 Then Hlt40 Mov P1(二)SELECT条件语句格式:SELECT <条件> CASE <式> 语句块 BREAK CASE <式> 语句块 BREAK :
25、END SELECT功能:对应指定变量及其值的指定条件进行跳转。值的条件可任意的指定。参数: <条件>:记述数值表达式。 <式>:式以下列的形式记述。型则必须和 条件 的型相同。 I 比较运算 常数 常数 常数 T 常数例子: 1 Select MCNT 2 M1=10 ' 此行不会被执行。 3 Case Is <= 10 ' MCNT 4 Mov P1 5 Break 6 Case 11 ' MCNT 11 OR MCNT 12 6 Case 12 7 Mov P2 8 Break 9 Case 13 To 18 ' 13MCNT
26、18 10 Mov P4 11 Break 12 Default ' 上记以外 13 M_Out(10)=1 14 Break 15 End Select说明:(1) 在没有Default的情况下,以无处理跳转到End Select的下一行。 (2) Select Case和End Select文必须要一一对应。在Case区域内以GoToGoTo指令跳转到Select Case以外的话,会因为控制构造用内存(堆栈内存)减少,而在以连续行的情况下,不知道在何时会发生报警。(3) 执行没有对应Select Case的End Select文的情况下,执行时会发生报警。(4) 可以在Selec
27、t Case中,嵌套Select Case(最多嵌套8次)。(5) 在Case文中可以嵌套 While - WEndWhile-WEnd和 For-Next 。(6) 在式中使用比较运算( 、等)的时候,使用Case Is。(7) Break可以省略。(Case文里处理会遵照为(1) 子程序调用(转移)指令(一)GoSub语句功能:调用指定标签的子程序。格式:GoSub <目的程序>参数:<目的程序>:以”*名称”的标识名格式定义的标签名。例子:10 GoSub *LBL11 End:100 *LBL101 Mov P1102 Return 务必以Return指令返回。
28、说明:(1) 在子程序最后,请务必以ReturnReturn指令返回。以GoTo指令返回的话,机制构造用内存(堆栈内存)会减少,且会变成连续运行时发生报警的原因。(2) 从子程序中,可以依据Gosub再度呼出其它的子程序。子程序可以呼出的段数大约为800段。(3) 呼出处以标签名指定。呼出处的标签不存在的情况下,执行时会发生报警。(二)CallP语句功能:执行指定的程序的程序。 (GoSubGoSub Return 的程序调用版)。用子程序,用 EndEnd 指令或在最终行返回到主程序。格式:CallP "<程序名> " , <自变量> , <
29、自变量>参数:<程序名> 在字符串常数或字符串变量指定程序。<自变量> 程序被呼叫出时,程序会指定替换的变量或常数。自变量的最大个数为16。例子:(1)在调用程序替换自变量时主程序1 M1=02 CallP "10" ,M1,P1,P23 M1=14 CallP "10" ,M1,P1,P2:10 CallP "10", M2,P3,P4:15 End "10"子程序侧1 FPrm M01, P01,P022 If M01<>0 Then GoTo *LBL13 Mov P
30、014 *LBL15 Mvs P026 End '在此会回返回到主程序*在主程序的STEP号码2、4被执行时,M1, P1, P2各别被设定为子程序的 M01, P01, P02,在主程序的STEP号码10被执行时, M2, P3, P4被设定为子程序的M01, P01, P02。(2)在调用程序没有替换自变量时主程序文件的指令1 Mov P12 CallP "20"3 Mov P24 CallP "20"5 End"20"子程序文件的指令1 Mov P1 '子程序的 P1和主程序的P1不同。2 Mvs P0023 M
31、_Out(17)=14 End '在此会回返回到主程序说明:(1) 在CallP指令里被执行的子程序,以EndEnd 指令结束,并返回到主程序。(和GoSub执行时ReturnReturn GoSub Return 指令相当GoSub Return)。 没有EndEnd 指令等的情况下,最终行执行后,返回到主程序。(2) 将自变量替换的情况下,以Call P指令记述自变量的同时,必须在子程序的前头以FPrmFPrm 指令定义自变量。(3) 主程序和子程序 ,自变量的型及个数不同的情况下(在FPrmFPrm 指令下),执行时会发生报警。 (4) 将程序复位的情况下,会返回到主程序的前头控
32、制。(5) 在主程序里执行的定义文(Def ActDef Act, Def FNDef FN, Def PltDef Plt, DimDim 指令) 在子程序为无效。从子程序返回的时点会再度变成有效。(6) 速度、TOOL数据即使在子程序里也全部有效。 AccelAccel 、 SpdSpd 的值为无效。 OadlOAdl 的模式为有效。(7) 在子程序中使用CallP 并且可以执行别的子程序。但是,无法在主程序及已经有在别的任务插槽中,呼叫出执行中的程序。而且,也无法呼叫出本身的程序。(8) 可以从最初的主程序开始,执行8阶段(阶层) 的子程序 CallP 。(9) 从主程序往子程序,可以依
33、据自变量替换变量的值,但是无法在子程序的处理结果代入自变量,然后替换到主程序。将子程序的处理结果使用在主程序的情况下,请使用外部变量替换值。 (三)GOTO语句功能:无条件地跳转到指定的标识名程序步格式:GOTO <目的程序步>参数:<目的程序步>:以”*名称”的标识名格式定义的标签名例子:10 GOTO *L100 ' 无条件地跳转到标识L100的程序步:100 *L100 标识名程序步101 MVS P1 ' 直线插补到P1位置说明:(1)必须存在指定的标识名,否则报错;(2)不得在IF ENDIF语句之间或SELECT END SELECT语句之间
34、使用GOTO跳转,否则程序报错;(3)跳转后不可用Return指令返回,也无需返回。 标签语句标签是作为分支端的记号,以*开头加上标签名的组合表示(即“*”+“名称”);其中,标签的名称必须符合标识符的命名规则,且不得以已经被变量使用的名字命名。例如:10 Goto *Check50 *Check 程序结束指令功能:(1)定义程序的最终行。(2)在以子程序记述在程序的后半段的时候,在主处理的最后以End指令记述,且明白的表示程序的结束时也可以使用。在以CallP 呼出子程序的情况下,以End指令的执行返回到主程序。格式:END例子:1 Mov P12 GoSub *ABC3 End '
35、 程序的结束:10 *ABC11 M1=112 Return说明:(1) 从操作面板执行的时候,因为是以连续运行的模式执行,所以即使有End指令也会再度从头开始执行。想要以End指令结束的情况下,请按下操作面板的End键,使循环停止。(2) 即使在一个程序里记述复数的End指令也没有关系。(3) 在程序的终端即使没有记述End指令也没有关系。(4) 在以CallP呼出的程序里执行End指令的话,控制会返回到主程序。会变成和子程序(GoSub指令) 的RETURNReturn指令同样的动作。(5) 以End指令的执行,被开启的档案及通信端口全部会被关闭。(6) 以End指令的执行, SpdSpd
36、, AccelAccel, OadlOAdl, JOvrdJOvrd, OvrdOvrd, Fine, Fine CntCnt的设定会被初始化。循环指令功能:将For文和Next文间的程序,到满足结束条件前,反复的执行。格式:For <计数器> = <初期值> To <结束值> Step <增量>:Next <计数器>参数:计数器:作为反复控制的计数器,记述数值变量。初期值:将反复控制的计数器的初期值以数值表达式设定。结束值:将反复控制的计数器的结束值以数值表达式设定。增 量:将反复控制的计数器的增量以数值表达式设定。将STEP以后省
37、略的话,增量会变成1。例子:(1)求出从1到 10的合计程序1 MSUM=0 ' 将合计MSUM初始化。2 For M1=1 To 10 ' 使数值变量M1,从1开始 以计数每次增加 +1到10为止。3 MSUM=MSUM+M1 ' 在数值变量 MSUM加上 M1的值。4 Next M1 ' 返回到STEP号码2。(2)将2个数值的相乘结果设定在2次元排列变量的程序1 Dim MBOX(10,10) ' 确保10 × 10的排列领域。2 For M1=1 To 10 Step 1 ' 使数值变量M1从1开始以计数每次增加 1到10为止。
38、3 For M2=1 To 10 Step 1 ' 使数值变量M2从1开始以计数每次增加 1到10为止。4 MBOX(M1,M2)=M1*M2 ' 在排列变量 MBOX(M1,M2)里代入 M1*M2的值。5 Next M2 ' 返回到STEP号码2。6 Next M1 ' 返回到STEP号码2。说明:(1) 在For 文和Next 文的中间可以记述其它的ForNext。但是,一组的For Next 的控制会将程序内的控制构造更加深一段。程序内的控制构造深度,最高可以到16 段的深度。超过16 段的情况下,执行时会发生报警。(2) 在For文和Next文之间以G
39、oToGoTo指令强制的执行跳转的话,因为控制构造用内存(堆栈内存)的减少,在连续执行的情况下,迟早会发生报警。请使For文的条件成立,执行脱离循环(Loop)的程序。(3) 下列条件的情况下,执行时会发生报警。(1)计数器的初期值比结束值 大, 增量为正的值的情况;(2)计数器的初期值比结束值 小, 增量为负的值的情况(4) For文和Next文没有相对应的情况下,执行时会发生报警。(5) Next文的计数器变量可以省略。在例子里,可以省略STEP号码5的M2和STEP号码6的M1。将计数器变量省略的话,某些处理会变快。功能:将While文和End文之间的程序,满足循环(loop)条件时反复
40、执行。格式:While <循环条件>:WEnd参数:循环条件:描述数值表达式。例子:数值变值 M1的值在 -5到 +5的范围之间,反复处理,超越范围的情况下,移往WEnd的下一行控制。1 While (M1>=-5) And (M1<=5) ' 变量 M1值在-5到+5的范围之间,反复处理2 M1=-(M1+1) ' 把1加到M1上,将符号反转。3 M_Out(8)=M1 ' 输出M1的值。4 WEnd ' 返回到While文(STEP 1)。5 End ' 程序结束。说明:(1) 反复执行While文和WEnd文之间的程序。(2
41、) 式的结果为真(不为0)期间,控制移到While文的下一行,反复处理。(3) 式的结果不为真(为0)的情况下,控制移到WEnd文的下一行。(4) 从While文和Wend之间以GoToGoTo指令强制的跳转的话,控制构告用内存(堆栈内存)会减少,而在以连续行的情况下,不知道在何时会发生报警。请使程序的While文条件成立,脱离循环。功能:程序等待,直到条件满足,执行下一步程序格式:WAIT <条件逻辑表达式>参数:<条件逻辑表达式>:以=、>、<、>=、<=等逻辑比较符号表示的比较表达式或逻辑表达式。例子:10 WAIT M_In(10048)
42、=1 ' 程序等待,直到输入10048的值等于1时,执行下一步程序。11 MVS P1 直线插补到P1位置12 MVS P2 '直线插补到P2位置五、项目实施任务 基于IO信号条件判断的搬运作业(一)任务内容机器人在退避点位置等待。有3个传送带,工件到位信号记为S1、S2、S3,按照“先到先抓,或同到按照S1、S2、S3的优先顺序抓取”原则分别抓取该3个传送带上的工件,搬运至传送带4上,如图1.5- 5所示。S1S2S3图1.5- 5 多传送带工件搬运作业示意图(二)任务所需知识点1、IO变量M_In()与M_Out;2、抓手IO信号;3、条件判断语句IF;4、跳转指令GoTo
43、;5、标签语句。(三)任务实施步骤第1步:新建机器人工程文件。参照任务和任务1.3.3有关操作步骤。第2步:输入以下程序。1 Mov J02 *WT03 If M_In8(900)=0 then Goto *WT0 ' 返回,等待工件到位信号4 If M_In(900) =1 Then Goto *Get1 ' 跳转至Get1,抓取传送带1工件5 *WT16 If M_In(901) =1 Then Goto *Get2 ' 跳转至Get2,抓取传送带2工件7 *WT28 If M_In(902) =1 Then Goto *Get3 ' 跳转至Get3,抓取传
44、送带3工件9 Goto *WT0 10 ''''''''''''''''''''以下程序为抓取传送带1工件11 *Get112 Mov Pwork1,-15013 Mvs Pwork114 15 HClose 116 17 Mvs Pwork1,-15018 Mov J019 Mov J120 Mov Put,-5021 Mvs Put22 23 HOpen 124 25 Mvs Put,-5026 Mov J1 Wth M_Out(9
45、07) = 127 Mov J0 M_Out(907) = 028 Goto *WT129' '''''''''''''''''''以下程序为抓取传送带2工件30 * Get231 Mov Pwork2,-15032 Mvs Pwork233 Dl34 HC lose 135 36 Mvs Pwork2,-15037 Mov J038 Mov J139 Mov Put,-5040 Mvs Put41 42 HOpen 143 44 Mv
46、s Put,-5045 Mov J1 M_Out(907) = 146 Mov J0 M_Out(907) = 047 Goto *WT248 ''''''''''''''''''以下程序为抓取传送带3工件49 *Get350 Mov Pwork3,-15051 Mvs Pwork352 53 HClose 154 55 Mvs Pwork3,-15056 Mov J057 Mov J158 Mov Put,-5059 Mvs Put60 61 HOp
47、en 162 63 Mvs Put,-5064 Mov J1 M_Out(907) = 165 Mov J0 M_Out(907) = 066 Goto *WT0第3步:单步运行程序并示教位置。参照任务有关步骤。第4步:自动运行程序。参照任务的详细操作步骤执行本步的操作。(四)任务思考将第16步指令语句中的“P10+P2”修改为“P10,-100”,观察有何不同。注意,垂直关节机器人(RV型)的接近距离设置为“-100”,水平关节机器人(RH型)的接近距离设置为“+100”。任务 铣床上下料及程序优化(一)任务内容在任务基础上,优化并增加机器人程序,完成如图1.5- 1所示的上下料任务。(二)
48、任务所需知识点1、子程序调用指令GoSub;2、子程序调用指令CallP;3、等待指令Wait;4、主程序结束指令。(三)任务实施步骤第1步:新建机器人工程文件。参照任务和任务1.3.3有关操作步骤。第2步:输入以下程序。Mov J0 J0为纵向传送带上空位置Wait M_In8(900) <>0If M_In(900) =1 Then GoSub *Get1 ' 调用Get1,抓取传送带1工件If M_In(901) =1 Then GoSub *Get2 ' 调用Get2,抓取传送带2工件If M_In(902) =1 Then GoSub *Get3 '
49、; 调用Get3,抓取传送带3工件GoSub *FeedEnd'''''''''''''''''''以下程序为抓取传送带1工件*Get1Mov Pwork1,-150Mvs Pwork1HClose 1Mvs Pwork1,-150Mov J0Return'''''''''''''''''''&
50、#39;以下程序为抓取传送带2工件*Get2Mov Pwork2,-150Mvs Pwork2HClose 1Mvs Pwork2,-150Mov J0Return''''''''''''''''''''以下程序为抓取传送带3工件*Get3Mov Pwork3,-150Mvs Pwork3HClose 1Mvs Pwork3,-150Mov J0Return''''''''
51、''''''''''''以下程序为上下料动作*FeedMov J1 J1为机床门前等待位置''''''''''''''''''''''''''''''''''''''''''临时放置毛坯Mov Pfix1,-50 ' 夹具旁边位置1放置毛坯Mvs Pfix1HOpen 1Mvs Pfix1,-50'''''''''''''''''
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 火锅行业2025年市场格局演变与创新驱动策略研究报告
- 2025【合同范本】企业员工安全管理协议书
- 2025年专职辅导员的试卷及答案
- 永泰运:最近一年的财务报告及其审计报告以及最近一期的财务报告
- 棕榈股份:贵安新区棕榈文化置业有限公司48套(公寓、别墅)房产项目价值咨询报告
- 景嘉微:无锡诚恒微电子有限公司审计报告
- 2025年地铁防护人员试卷及答案
- 油田地面工程建设方案(3篇)
- 吊车百变工程搭建方案(3篇)
- 脊柱机器人科普课件
- 象棋入门教学课件
- 风雨操场调研报告
- 2025年重庆市中考数学试卷真题(含标准答案)
- 旋挖钻机地基承载力验算2017.7
- 机组资源管理(CRM)训练指南
- 建立隐患闭环管理制度
- T/CECS 10026-2019绿色建材评价建筑门窗及配件
- 2025-2030中国甘草酸铵行业市场现状供需分析及投资评估规划分析研究报告
- 银川文化园全民健身体育运动馆地块土壤污染状况调查报告
- 天然药物活性成分的发现与筛选课件
- 2025年全国保密教育线上培训考试试题库完整答案附带答案详解
评论
0/150
提交评论