第1章 工业机器人基本知识和特有的功能 1
1.1 机器人概述 1
1.1.1 机器人基本知识 1
1.1.2 机器人通用功能 2
1.1.3 机器人型号 2
1.2 机器人技术规格 3
1.2.1 垂直多功能机器人技术规格 3
1.2.2 水平多功能机器人技术规格 5
1.3 技术规格中若干性能指标的解释 6
1.3.1 机器人部分有关规格的名词术语 6
1.3.2 控制器技术规格 6
1.3.3 控制器有关规格的名词术语 7
1.4 机器人特有的功能 8
1.4.1 机器人坐标系及原点 8
1.4.2 专用输入输出信号 14
1.4.3 操作权 15
1.4.4 最佳速度控制 16
1.4.5 最佳加减速度控制 16
1.4.6 柔性控制功能 16
1.4.7 碰撞检测功能 16
1.4.8 连续轨迹控制功能 16
1.4.9 程序连续执行功能 16
1.4.10 附加轴控制 16
1.4.11 多机器控制 16
1.4.12 与外部机器通信功能 17
1.4.13 中断功能 17
1.4.14 子程序功能 17
1.4.15 码垛指令功能 17
1.4.16 用户定义区 17
1.4.17 动作范围限制 17
1.4.18 特异点 17
1.4.19 保持紧急停止时的运动轨迹 17
1.4.20 机器人的“形位(pose)” 17
第2章 编程指令快速入门 22
2.1 MELFA-BASIC Ⅴ的详细规格 22
2.1.1 MELFA-BASIC Ⅴ的详细规格 22
2.1.2 有特别定义的文字 23
2.1.3 数据类型 24
2.2 动作指令 24
2.2.1 关节插补 24
2.2.2 直线插补 26
2.2.3 Mvc(Move C)——三维真圆插补指令 27
2.2.4 Cnt(Continuous)——连续轨迹运行 27
2.2.5 加减速时间与速度控制 28
2.2.6 Fine定位精度 29
2.2.7 Prec高精度轨迹控制 30
2.2.8 抓手TOOL控制 30
2.2.9 PALLET(码垛)指令 31
2.3 程序结构指令 34
2.3.1 无条件跳转指令 34
2.3.2 根据条件执行程序分支跳转的指令 34
2.4 外部输入输出信号指令 36
2.4.1 输入信号 36
2.4.2 输出信号 36
2.5 通信指令 36
2.5.1 Open——通信启动指令 37
2.5.2 Print——输出字符串指令 38
2.5.3 Input——从指定的文件中接收数据,接收的数值为ASCII码 39
2.5.4 OnCom GoSub指令 39
2.5.5 Com On/Com Off/Com Stop 40
2.6 运算指令 40
2.6.1 位置数据运算(乘法) 40
2.6.2 位置数据运算(加法) 40
2.7 多任务处理 41
2.7.1 多任务定义 41
2.7.2 设置多程序任务的方法 42
2.7.3 多任务应用案例 44
第3章 编程指令详细说明 47
3.1 动作控制指令 47
3.1.1 Mov(Move)——关节插补 48
3.1.2 Mvs(Move S) 49
3.1.3 Mvr(Move R) 50
3.1.4 Mvr2(Move R2) 51
3.1.5 Mvr3(Move R3) 52
3.1.6 Mvc(Move C)——三维真圆插补指令 52
3.1.7 Mva(Move Arch)——过渡连接型圆弧插补指令 53
3.1.8 Mv Tune(Move Tune) 54
3.1.9 Ovrd(Override) 54
3.1.10 Spd(Speed) 55
3.1.11 JOvrd(J Override) 55
3.1.12 Cnt(Continuous) 55
3.1.13 Accel(Accelerate) 57
3.1.14 Cmp Jnt(Comp Joint) 57
3.1.15 Cmp Pos(Composition Posture) 57
3.1.16 Cmp Tool(Composition Tool) 58
3.1.17 Cmp Off(Composition Off) 58
3.1.18 CmpG(Composition Gain) 59
3.1.19 Mxt(Move External) 59
3.1.20 Oadl(Optimal Acceleration) 60
3.1.21 LoadSet(Load Set) 60
3.1.22 Prec(Precision) 61
3.1.23 Torq(Torque) 61
3.1.24 JRC(Joint Roll Change) 62
3.1.25 Fine(Fine) 63
3.1.26 Fine J(Fine Joint) 63
3.1.27 Fine P——以直线距离设置定位精度 64
3.1.28 Servo(Servo)——指令伺服电源的ON/OFF 64
3.1.29 Wth(With)——在插补动作时附加处理的指令 64
3.1.30 WthIf(With If) 64
3.1.31 CavChk On——“防碰撞功能”是否生效 65
3.1.32 ColLvl(ColLevel)——设置碰撞检测量级 65
3.2 程序控制流程相关的指令 65
3.2.1 Rem(Remarks) 66
3.2.2 If…Then…Else&EndIf(If Then Else) 67
3.2.3 Select Case(Select Case) 68
3.2.4 GoTo(Go To) 70
3.2.5 GoSub(Return)(Go Subroutine) 70
3.2.6 Reset Err(Reset Error) 71
3.2.7 CallP(Call P) 71
3.2.8 FPrm(FPRM) 72
3.2.9 Dly(Delay) 73
3.2.10 Hlt(Halt) 73
3.2.11 On&GoTo(On Go To) 74
3.2.12 On&GoSub(ON Go Subroutine) 75
3.2.13 While&WEnd(While End) 75
3.2.14 Open(Open) 76
3.2.15 Print(Print) 77
3.2.16 Input(Input) 78
3.2.17 Close(Close) 79
3.2.18 ColChk(Col Check) 79
3.2.19 On Com GoSub(ON Communication Go Subroutine) 80
3.2.20 Com On/Com Off/Com Stop(Communication ON/OFF/STOP) 81
3.2.21 HOpen/HClose(Hand Open/Hand Close) 81
3.2.22 Error(Error) 81
3.2.23 Skip(Skip) 82
3.2.24 Wait(Wait) 82
3.2.25 Clr(Clear) 82
3.2.26 END——程序段结束指令 83
3.2.27 For□Next——循环指令 83
3.2.28 Return——子程序/中断程序结束及返回 84
3.2.29 Label(标签、指针) 84
3.3 定义指令 85
3.3.1 Dim(Dim) 85
3.3.2 Def Plt(Define Pallet) 86
3.3.3 Plt(Pallet) 89
3.3.4 Def Act(Define Act) 90
3.3.5 Act(Act) 91
3.3.6 Def Arch(Define Arch) 92
3.3.7 Def Jnt(Define Joint) 93
3.3.8 Def Pos(Define Position) 93
3.3.9 Def Inte/Def Long/Def Float/Def Double 93
3.3.10 Def Char(Define Character) 94
3.3.11 Def IO(Define IO) 94
3.3.12 Def FN(Define Function) 95
3.3.13 Tool(Tool) 96
3.3.14 Baase(Base) 96
3.3.15 Title(Title) 97
3.3.16 赋值指令(代入指令) 97
3.4 多任务相关指令 98
3.4.1 XLoad(X Load)——加载程序指令 98
3.4.2 XRun(X Run)——多任务工作时的程序启动指令 99
3.4.3 XStp(X Stop)——多任务工作时的程序停止指令 99
3.4.4 XRst(X Reset)——复位指令 99
3.4.5 XClr(X Clear)——多程序工作时,解除某任务区(task slot)的程序选择状态 100
3.4.6 GetM(Get Mechanism) 100
3.4.7 RelM(Release Mechanism) 101
3.4.8 Priority(Priority)——优先执行指令 101
3.4.9 Reset Err(Reset Error) 102
3.5 视觉功能相关指令 102
3.5.1 NVOpen(Network vision sensor line open)——连接视觉通信线路 102
3.5.2 NVClose——关断视觉传感器通信线路指令 104
3.5.3 NVLoad(Network vision sensor load) 105
3.5.4 NVRun(Network vision sensor run) 105
3.5.5 NVPst(Network vision program start) 106
3.5.6 NVIn(Network vision sensor input) 109
3.5.7 NVTrg(Network vision sensor trigger) 110
3.5.8 EBRead(EasyBuilder read) 111
3.6 视觉追踪功能指令 113
3.6.1 TrBase指令 113
3.6.2 TrClr——追踪缓存区数据清零指令 113
3.6.3 Trk——追踪功能指令 114
3.6.4 TrOut——输出信号和读取编码器数值指令 114
3.6.5 TrRd——读追踪数据指令 115
3.6.6 TrWrt——写追踪数据指令 116
3.7 其他指令 117
3.7.1 ChrSrch(Character Search)——查找“字符串”编号 117
3.8 附录——以起首字母排列的指令 117
第4章 机器人状态变量 122
4.1 C-J状态变量 122
4.1.1 C_Date——当前日期(年/月/日) 122
4.1.2 C_Maker——制造商信息 122
4.1.3 C_Mecha——机器人型号 122
4.1.4 C_Prg——已经选择的程序号 123
4.1.5 C_Time——当前时间(以24小时显示时/分/秒) 123
4.1.6 C_User——用户参数“USERMSG”所设置的数据 123
4.1.7 J_Curr——各关节轴的当前位置数据 123
4.1.8 J_ColMxl——碰撞检测中“推测转矩”与“实际转矩”之差的最大值 124
4.1.9 J_ECurr——当前编码器脉冲数 126
4.1.10 J_FbcJ-AmpFbc——关节轴的当前位置关节轴的当前电流值 126
4.1.11 J_Origin——原点位置数据 126
4.2 M开头的状态变量 127
4.2.1 M_Acl/M_DAcl/M_NAcl/M_NDAcl/M-AclSts 127
4.2.2 M-BsNo——当前基本坐标系编号 127
4.2.3 M_BrkCq——Break指令的执行状态 128
4.2.4 M_BTime——电池可工作时间 128
4.2.5 M_CavSts——发生干涉的机器人CPU号 128
4.2.6 M_CmpDst——伺服柔性控制状态下指令值与实际值之差 129
4.2.7 M_CmpLmt——伺服柔性控制状态下指令值是否超出限制 129
4.2.8 M_ColSts——碰撞检测结果 130
4.2.9 M_Cstp——检测程序是否处于“循环停止中” 130
4.2.10 M_Cys——检测程序是否处于“循环中” 130
4.2.11 M_DIn/M_DOut——读取写入CCLINK远程寄存器的数据 131
4.2.12 M_Err/M_ErrLvl/M_ErrNo——报警信息 131
4.2.13 M_Exp——自然对数 132
4.2.14 M_Fbd——指令位置与反馈位置之差 132
4.2.15 M_G——重力常数(9.8 0665) 132
4.2.16 M_HndCq——抓手输入信号状态 132
4.2.17 M_In/M_Inb/M_In8/M_Inw/M_In16——输入信号状态 133
4.2.18 M_In32——存储32位外部输入数据 133
4.2.19 M_JOvrd/M_NJOvrd/M_OPovrd/M_Ovrd/M-NOvrd——速度倍率值 134
4.2.20 M-Line——当前执行的程序行号 134
4.2.21 M_LdFact——各轴的负载率 134
4.2.22 M_Mode——操作面板的当前工作模式 135
4.2.23 M_On/M_Off 135
4.2.24 M_Open——被打开文件的状态 135
4.2.25 M_Out/M_Outb/M_Out8/M_Outw/M_Out16——输出信号状态(指定输出或读取输出信号状态) 136
4.2.26 M_Out32——向外部输出或读取32bit的数据 137
4.2.27 M_PI——圆周率 137
4.2.28 M_Psa——任务区的程序是否为可选择状态 137
4.2.29 M_Ratio(在插补移动过程中)当前位置与目标位置的比率 138
4.2.30 M_RDst——(在插补移动过程中)距离目标位置的“剩余距离” 138
4.2.31 M_Run——任务区内程序执行状态 138
4.2.32 M_SetAdl——设置指定轴的加减速时间比例(注意不是状态值) 138
4.2.33 M_SkipCq——Skip指令的执行状态 139
4.2.34 M_Spd/M_NSpd/M_RSpd——插补速度 139
4.2.35 M_Svo——伺服电源状态 139
4.2.36 M_Timer——计时器(以ms为单位) 140
4.2.37 M_Tool——设定或读取TOOL坐标系的编号 140
4.2.38 M_Uar——机器人任务区域编号 141
4.2.39 M_Uar32——机器人任务区域状态 141
4.2.40 M_UDevW/M_UDevD——多CPU之间的数据读取及写入指令 141
4.2.41 M_Wai——任务区内的程序执行状态 142
4.2.42 M_Wupov——预热运行速度倍率 142
4.2.43 M_Wuprt——在预热运行模式时距离预热模式结束的时间(秒) 143
4.2.44 M_Wupst——从解除预热模式到重新进入预热模式的时间 143
4.2.45 M_XDev/M_XDevB/M_XDevW/M_XDevD——PLC输入信号数据 143
4.2.46 M_YDevM_YDevB/M_YDevW/M_YDevD—PLC输出信号数据 144
4.3 P开头状态变量 144
4.3.1 P_Base/P_NBase——基本坐标系偏置值 144
4.3.2 P_CavDir——机器人发生干涉碰撞时的位置数据 145
4.3.3 P_ColDir——机器人发生干涉碰撞时的位置数据 145
4.3.4 P_Curr——当前位置(X,Y,Z,A,B,C,L1,L2)(FL1,FL2) 145
4.3.5 P_Fbc——以伺服反馈脉冲表示的当前位置(X,Y,Z,A,B,C,L1,L2)(FL1,FL2) 146
4.3.6 P_Safe——待避点位置 146
4.3.7 P_Tool/P_NTool——TOOL坐标系数据 146
4.3.8 P_WkCord——设置或读取当前“工件坐标系”数据 147
4.3.9 P_Zero——零点[(0,0,0,0,0,0,0,0)(0,0)] 147
第5章 编程指令中使用的函数 148
5.1 A起首字母 148
5.1.1 Abs——求绝对值 148
5.1.2 Align 148
5.1.3 Asc——求字符串的ASCII码 148
5.1.4 Atn/Atn2——(余切函数)计算余切 149
5.2 B起首字母 150
5.2.1 Bin$——将数据变换为二进制字符串 150
5.3 C起首字母 150
5.3.1 CalArc 150
5.3.2 Chr$——将ASCII码变换为“字符” 151
5.3.3 CInt——将数据四舍五入后取整 151
5.3.4 CkSum——进行字符串的“和校验”计算 151
5.3.5 Cos——余弦函数(求余弦) 151
5.3.6 Cvi——对字符串的起始2个字符的ASCII码转换为整数 152
5.3.7 Cvs——将字符串的起始4个字符的ASCII码转换为单精度实数 152
5.3.8 Cvd——将字符串的起始8个字符的ASCII码转换为双精度实数 152
5.4 D起首字母 152
5.4.1 Deg——将角度单位从弧度rad变换为度deg 152
5.4.2 Dist——求2点之间的距离(mm) 153
5.5 E起首字母 153
5.5.1 Exp——计算e为底的指数函数 153
5.5.2 Fix——计算数据的整数部分 153
5.5.3 Fram——建立坐标系 153
5.6 H起首字母 154
5.6.1 Hex$——将十六进制数据转换为“字符串” 154
5.7 I开头 154
5.7.1 Int——计算数据最大值的整数 154
5.7.2 Inv——对位置数据进行“反向变换” 154
5.8 J起首字母 155
5.8.1 JtoP——将关节位置数据转成“直角坐标系数据” 155
5.9 L起首字母 155
5.9.1 Left$——按指定长度截取字符串 155
5.9.2 Len——计算字符串的长度(字符个数) 156
5.9.3 Ln——计算自然对数(以e为底的对数) 156
5.9.4 Log——计算常用对数(以10为底的对数) 156
5.10 M起首字母 156
5.10.1 Max——计算最大值 156
5.10.2 Mid$——根据设定求字符串的部分长度的字符 156
5.10.3 Min——求最小值 157
5.10.4 Mirror$——字符串计算 157
5.10.5 Mki$——字符串计算 157
5.10.6 Mks$——字符串计算 158
5.10.7 Mkd$——字符串计算 158
5.11 P起首字母 158
5.11.1 PosCq——检查给出的位置点是否在允许动作区域内 158
5.11.2 PosMid——求出2点之间做直线插补的中间位置点 158
5.11.3 PtoJ——将直角型位置数据转换为关节型数据 159
5.12 R起首字母 159
5.12.1 Rad——将角度单位(deg)转换为弧度单位(rad) 159
5.12.2 Rdfl1——将形位(pose)结构标志用字符“R”“L”,“A”“B”,“N”“F”表示 159
5.12.3 Rdfl2——求指定关节轴的“旋转圈数” 160
5.12.4 Rnd——产生一个随机数 160
5.12.5 Right$——从字符串右端截取“指定长度”的字符串 160
5.13 S起首字母 161
5.13.1 Setfl1——变更指定“位置点”的“形位(pose)结构标志FL1” 161
5.13.2 Setfl2——变更指定“位置点”的“形位(pose)结构标志FL2” 161
5.13.3 SetJnt——设置各关节变量的值 162
5.13.4 SetPos——设置直交型位置变量数值 162
5.13.5 Sgn——求数据的符号 163
5.13.6 Sin——求正弦值 163
5.13.7 Sqr——求平方根 163
5.13.8 Strpos——在字符串里检索“指定的字符串”的位置 163
5.13.9 Str$——将数据转换为十进制字符串 164
5.14 T起首字母 164
5.14.1 Tan——求正切 164
5.15 V起首字母 164
5.15.1 Val——将字符串转换为数值 164
5.16 Z起首字母 164
5.16.1 Zone——检查指定的位置点是否进入指定的区域 164
5.16.2 Zone2——检查指定的位置点是否进入指定的区域(圆筒型) 165
5.16.3 Zone3——检查指定的位置点是否进入指定的区域(长方体) 165
第6章 参数功能及设置 167
6.1 参数一览表 167
6.1.1 动作型参数一览表 167
6.1.2 程序型参数一览表 169
6.1.3 操作型参数一览表 170
6.1.4 专用输入输出信号参数一览表 170
6.1.5 通信及现场网络参数一览表 172
6.2 动作参数详解 172
6.3 程序参数 189
6.4 专用输入输出信号 196
6.4.1 通用输入输出1 197
6.4.2 通用输入输出2 198
6.4.3 数据参数 198
6.4.4 JOG运行信号 199
6.4.5 各任务区启动信号 200
6.4.6 各任务区停止信号 201
6.4.7 (各机器人)伺服ON/OFF 201
6.4.8 (各机器人)机械锁定 202
6.4.9 选择各机器人预热运行模式 202
6.4.10 附加轴 202
6.5 操作参数详解 205
6.6 通信及网络参数详解 211
第7章 输入输出信号 212
7.1 输入输出信号的分类 212
7.2 专用输入输出信号详解 212
7.2.1 专用输入输出信号一览表 212
7.2.2 专用输入信号详解 216
7.2.3 专用输出信号详解 226
7.3 使用外部信号选择程序的方法 238
7.3.1 先选择程序再启动 238
7.3.2 选择程序号与启动信号同时生效 240
第8章 RT ToolBox2软件的使用 242
8.1 RT软件的基本功能 242
8.1.1 RT软件的功能概述 242
8.1.2 RT软件的功能一览 242
8.2 程序的编制调试管理 243
8.2.1 编制程序 243
8.2.2 程序的管理 251
8.2.3 样条曲线的编制和保存 253
8.2.4 程序的调试 254
8.3 参数设置 256
8.3.1 使用参数一览表 256
8.3.2 按功能分类设置参数 257
8.4 机器人工作状态监视 261
8.4.1 动作监视 261
8.4.2 信号监视 262
8.4.3 运行监视 264
8.5 维护 264
8.5.1 原点设置 264
8.5.2 初始化 268
8.5.3 维修信息预报 268
8.5.4 位置恢复支持功能 269
8.5.5 TOOL长度自动计算 269
8.5.6 伺服监视 269
8.5.7 密码设定 270
8.5.8 文件管理 270
8.5.9 2D视觉校准 270
8.6 备份 272
8.7 模拟运行 272
8.7.1 选择模拟工作模式 272
8.7.2 自动运行 273
8.7.3 程序的调试运行 275
8.7.4 运行状态监视 276
8.7.5 直接指令 276
8.7.6 JOG操作功能 277
8.8 3D监视 278
8.8.1 机器人显示选项 278
8.8.2 布局 278
8.8.3 抓手的设计 280
第9章 应用案例——机器人在仪表检测项目中的应用 283
9.1 项目综述 283
9.2 解决方案 283
9.2.1 硬件配置 284
9.2.2 输入输出点分配 284
9.3 编程 286
9.3.1 总流程 286
9.3.2 初始化程序流程 288
9.3.3 上料流程 288
9.3.4 卸料工序流程 291
9.3.5 不良品处理程序 293
9.3.6 不良品在1#工位的处理流程(31TOX) 295
9.3.7 主程序子程序汇总表 297
9.4 结语 300
参考文献 301