1、YAMAHA常用指令讲解常用指令讲解讲 师:胡 勇讲 师:胡 勇常用指令讲解1变量、函数讲解22目录目录编程实例3YAMAHA-RCX的编程语言的编程语言MOVE P 往点资料的位置移动,以原点为基准的绝对值往点资料的位置移动,以原点为基准的绝对值(点点点点)MOVE P,P1,S=20,Z=10.00(点号码(点号码,速度速度,Z轴先到轴先到10.00处)处)MOVE L 往点资料的位置移动,以原点为基准的绝对值往点资料的位置移动,以原点为基准的绝对值(直线直线)MOVE L,P1,S=20(点号码(点号码,速度)速度)MOVE C往点资料的位置移动,以原点为基准的绝对值往点资料的位置移动,
2、以原点为基准的绝对值(圆弧圆弧)MOVE C,P1,P2 (点号码,点号码)点号码,点号码)DRIVE 指定轴的绝对位置移动指定轴的绝对位置移动DRIVE (3,5.00)(轴号,到的位置处)(轴号,到的位置处)DRIVEI 指定轴的相对位置移动指定轴的相对位置移动DRIVEI (3,5.00)(轴号,移动的距离)(轴号,移动的距离)MOVEI P以当前点为基准移动点资料的值的相对移动以当前点为基准移动点资料的值的相对移动(点点点点)MOVEI P,P1,S=20 (点号码,速度)(点号码,速度)3*AA:定义定义GOTO指令等的跳跃目的地指令等的跳跃目的地(标签名标签名)*AA:(标签名)(
3、标签名)GOTO 跳跃到指定的标签处跳跃到指定的标签处GOTO *AASET 执行通用输出或记忆体输出的执行通用输出或记忆体输出的ON控制控制SET DO(20),100 (DO或或MO号)号)DO(20)=1WAIT 一直等待到通用输入或记忆体输入成为指定状态为止一直等待到通用输入或记忆体输入成为指定状态为止WAIT DI(22)=1,1000 (DI或或MI号,输入状态)号,输入状态)DELAY 根据指定时间量等待后,进入下一个步序根据指定时间量等待后,进入下一个步序DELAY 1000 (时间(时间:MS)RESET 执行通用输出或记忆体输出的执行通用输出或记忆体输出的OFF控制控制RE
4、SET DO(20)(DO或或MO号)号)SHIFT 指定迁移坐标指定迁移坐标SHIFT S0 (移转坐标号移转坐标号)START 启动指定的多任务启动指定的多任务START *AA,T2 (标签号标签号)CUT 停止指定的多任务停止指定的多任务CUT T2 (标签号标签号)4SERVO 执行伺服的执行伺服的NO/OFFSERVO 1 (伺服状态)(伺服状态)HALT 程序执行的停止程序执行的停止HALT HOLDFOR-NEXT 循环命令循环命令FOR I=0TO10-NEXT ILOCX 点数据的点数据的X轴值轴值 LOCX(P1)(点(点P1的的X轴值轴值,X可换为可换为Y,Z,R,A,
5、B)IFTHEN-ELSE-ENDIF 如果如果则则否则否则结束结束SPEED 定义下面的移动命令的速度定义下面的移动命令的速度SPEED 50 (速度为(速度为50%)56雅马哈常用指令使用雅马哈常用指令使用常用指令常用指令MOVE 绝对位置移动命令MOVE 表达式1,表达式2,(表达式3,表达式4,.)表达式1:移动方式 P点到点移动 L直线插补 C圆弧插补表达式2:目标点位样例:MOVE P,P1 从当前位置点到点移动到P1点 MOVE L,P1 从当前位置直线移动到点P1点 MOVE C,P1,P2 从当前位置经P1圆弧移动到P2点门形移动:MOVE P,P1,Z=0.0变更速度:MO
6、VE P,P1,S=20门形加变更速度:MOVE P,P1,Z=0.0,S=20遇到条件停止运行:MOVE P,P1,Z=0.0,STOPON DI(21)=07雅马哈常用指令使用雅马哈常用指令使用常用指令常用指令DRIVE 单轴执行绝对位置移动命令DRIVE 表达式1,表达式2,(表达式3,表达式4,.)表达式1:指定移动的轴号表达式2:目标点位样例:DRIVE(3,0.0)第三轴移动到0.0位置 DRIVE(3,P1)第三轴移动到P1点Z轴位置变更速度:DRIVE(3,P1),S=20遇到条件停止运行:DRIVE(3,P1),STOPON DI(21)=0水平多关节机械手一二轴的单轴移动只
7、能是脉冲坐标不能是直角坐标错误:DRIVE(1,0.0)正确:DRIVE(1,0)8雅马哈常用指令使用雅马哈常用指令使用常用指令常用指令IF 条件判断指令(简单条件判断)IF 条件判断表达式 THEN 条件为真处理方式ELSE 条件为假处理方式ENDIF 样例:IF DI(20)=1 THEN*ST01 IF DI(20)=1 THEN MOVE P,P1,Z=0.0 ELSE MOVE P,P2,Z=0.0 ENDIF9雅马哈常用指令使用雅马哈常用指令使用常用指令常用指令IF 条件判断指令(块条件判断)IF 条件判断表达式1 THEN 条件为真处理方式ELSEIF 条件判断表达式2 THEN
8、 条件为真处理方式ELSEIF 条件判断表达式3 THEN 条件为真处理方式ELSE 其他条件处理方式ENDIF 样例:IF DI(20)=1 THEN MOVE P,P1,Z=0.0 ELSEIF DI(21)=1 THEN MOVE P,P2,Z=0.0 ELSEIF DI(22)=1 THEN MOVE P,P3,Z=0.0 ELSE MOVE P,P0,Z=0.0 ENDIF10雅马哈常用指令使用雅马哈常用指令使用常用指令常用指令WAIT 表达式 等待命令等待表达式条件满足例如:WAIT DI(21)=1 WAIT ARM 等待机械手移动到公差范围内 WAIT DI(21)=1,100
9、0 等待DI(21)=1或超过1000ms指令通过DO 输出命令例如:DO(20)=1;DO(21)=0 DO(23,22,21)=&B110;DO(23,22,21)=6 SET DO(20);SET DO(20),200;RST DO2()HOLD 暂停程序HALT 停止程序11雅马哈常用指令使用雅马哈常用指令使用常用指令常用指令托盘指令:PDEF 托盘定义指令PDEF(表达式1)=表达式2,表达式3,表达式4表达式1:托盘编号,240提供019 20个托盘编号表达式2:P1-P2之间产品个数表达式3:P1-P3之间产品个数表达式4:P1-P5之间产品个数样例:PDEF(0)=4,4,1定
10、义托盘0为4*4*1托盘1112雅马哈常用指令使用雅马哈常用指令使用常用指令常用指令PMOVE 移动到托盘中的点位PMOVE 托盘编号,托盘点编号,(表达式1,表达式2,.)样例:PMOVE(0,2)移动到托盘0第2点 PMOVE(0,NA%),Z=0.0 门形移动到托盘0第NA%点 PMOVE(0,NA%),Z=0.0,S=20注意:应用PMOVE指令前先应该对托盘进行定义1213雅马哈常用变量和函数雅马哈常用变量和函数变量:变量:YAMAHA控制器中的数据变量分为两种:动态变量和静态变量静态变量是控制器系统分配,240控制器分配8个整形静态变量SGIn(n=07)和8个实型静态变量SGRn
11、(n=07)。静态变量数据可以掉电保存。动态变量由用户定义,由类型的不同又分为整形变量,实型变量和字符串变量。动态变量定义:NG!=0.0 定义一个实型变量,NG位变量名,!表示变量类型为实型数据%表示为整形变量$表示为字符串变量例:NA%=5 NG!=5.0 DATA$=“PAIZHAO”1314雅马哈常用变量和函数雅马哈常用变量和函数函数:函数:算术函数:+-*/如:NA%=NB%+10;NA%=NB%+10*NC%;NB%=NA%2应用在移动指令中的算术运算:MOVE P,P10+NA%MOVE P,P10-P5;P10=P5-P6三角函数:NN!=SIN(NB!);NN!=NA!*SI
12、N(NB!)+NC!*COS(ND!)注意:三角函数中的角度都必须是弧度制的角度度DEGRAND(表达式)将表达式的值转化为弧度如:NA!=SIN(DEGRAND(NB!)SQR(表达式)对表达式中数据进行开方ABS(表达式)求表达式中数据的绝对值ARMCND 读取SCARA机械手的手势如:NA%=ARMCND NA%=1为左手手势 NA%=0为右手手势1415雅马哈常用变量和函数雅马哈常用变量和函数函数:函数:TIMER 读取当前系统时间以秒为单位,可用于测算机械手运动时间如:NA%=TIMER 记录机器动作前时间 机械手移动动作 NA%=TIMER-NA%计算时间差机器动作后时间减去机器动
13、作时间 PRINT“NA%=“,NA%打印时间差VAL(字符串表达式)将字符串表达式转换为数值如:NA%=VAL(“123456”)DATA$=“123456”;NA%=VAL(DATA$)1516雅马哈常用变量和函数雅马哈常用变量和函数函数:函数:字符串函数:MID$(字符串表达式,表达式1,表达式2)如:NN$=MID$(DATA$,5,5)将DATA$字符串第5个字符开始连续5字符串 组成的新字符串赋值给字符串变量NN$若DATA$=“ASDFGHJKL”则 NN$=“GHJKL”1617雅马哈常用变量和函数雅马哈常用变量和函数函数:函数:坐标点函数:PPNT$(托盘编号,托盘点编号)将
14、对应托盘编号中的点位坐标计算出来如:P10=PPNT(1,24)将托盘编号1托盘点编号24的坐标数据赋值到P10WHRXY 读取当前机械手的直角坐标如:P0=WHRXY 读取机械手当前直角坐标并赋值到P017 编程实例编程实例实例实例1:要求如下图所示:如上图所示,机械手从取料位取到产品后放到放料皮带上进行下一工序。IO分配如下:DI20 取料位有料 DI21 放料皮带1有料 DI22放料皮带2有料DI23 取料真空满足 DO20 取料电磁阀取料位放料皮带1放料皮带21818 编程实例编程实例实例实例1动作分解:动作分解:待机位取料位取料等待取料位有料皮带线1无料皮带线2无料皮带线1 2都有料
15、到皮带线1放料到皮带线1放料到放料等待位点位分配:P0 待机位 P1 取料位 P10放料等待位 P11皮带线1放料位 P12 皮带线2放料位1919 编程实例编程实例程序:程序:2020 编程实例编程实例实例实例2:要求如下图所示:如上图所示,机械手从取料位取到产品后放到放料皮带上进行下一工序。IO分配如下:DI20 取料位有料 DI21 放料皮带1有料 DI22放料皮带2有料DI23 取料真空满足 DO20 取料电磁阀添加暂停按钮和停止按钮,用程序实现。添加暂停按钮和停止按钮,用程序实现。DI24 暂停程序暂停程序 DI25 停止程序停止程序取料位放料皮带1放料皮带12121 编程实例编程实
16、例程序:程序:2222 编程实例编程实例程序:程序:2323 编程实例编程实例实例实例3:要求如下图所示:如上图所示,机械手从托盘上取到产品后放到放料皮带上进行下一工序。IO分配如下:DI20 取料位有来料 DI21 放料皮带1有料 DI22放料皮带2有料DI23 取料真空满足 DO20 取料电磁阀 DO21托盘取料完成取料位为4*4的托盘取料位放料皮带1放料皮带12424 编程实例编程实例程序:程序:2525 编程实例编程实例实例实例4:要求如下图所示:如上图所示,机械手从取料位取到料到拍照位进行精准定位后放到放料位。IO分配如下:DI20 取料位有料 DI21 放料皮带1有料 DI23 取料真空满足 DO20 取料电磁阀通讯格式:字符串PAIZHAO命令驱动相机拍照相机反馈25位数据第1位为拍照是否合格位2-9位为目标点X坐标 10-17位为目标点Y坐标 18-25位为目标点R坐标取料位放料位拍照位2626 编程实例编程实例程序:程序:2727