关于我们
书单推荐
新书推荐
|
工业机器人编程指令详解
本书从实用的角度出发,对工业机器人的基本和特殊功能、编程指令、状态变量、参数功能及设置、机器人专用输入输出信号的使用及专用编程软件应用等方面做了全面的、深入浅出的介绍,并结合具体的工业应用案例来对照学习具体的编程指令及参数设置,加深对编程指令的理解。
本书可供工业机器人设计、应用的工程技术人员,高等院校机械、电气控制、自动化等专业师生学习和参考。
1.内容实用,案例为主:对工业机器人的基本和特殊功能、编程指令、状态变量、参数功能及设置、机器人专用输入输出信号的使用及专用编程软件应用等方面做了全面的、深入浅出的介绍。。2.侧重机器人高级应用:结合具体的工业应用案例来对照学习具体的编程指令及参数设置,加深对编程指令的理解。
20世纪60年代,在桂林的一个小人书摊前,一个小孩坐在小凳上看一本科幻的小人书,书中讲述了一个机器人冒充足球队员踢球的故事,这个冒名顶替的足球队员又能跑,又能抢,关键是射门准确,只要球队处于劣势,把他换上场就无往而不胜。这个故事太吸引人了,小孩恨不得自己就是那个机器人。这个小孩就是当年的我。50年过去了,有些科幻成了现实,有些现实超越了科幻。机器人在人们的生活中越来越多地出现,而工业机器人是机器人领域中的重要分支。近年来,工业机器人在制造领域的应用如火如荼,是智能制造的核心技术。工业机器人行业是国家和地方政府大力扶持的高新技术行业。据国际机器人联合会估计,2014年全球工业机器人销量约为225000台,较2013年增长27%。工业机器人销量在全球所有主要市场均出现增长,其中亚洲市场增长过半。中国市场表现尤为耀眼,2014年中国地区工业机器人销量约为56000台,同比增长54%,这表明中国正在加快工业机器人普及速度。2016年中国安装的工业机器人数量将位居全球之首。本书从实用的角度出发,对工业机器人的特殊功能、编程指令、状态变量、参数功能及软件应用等方面做了深入浅出的介绍,提供了大量的程序指令解说案例。本书第1章是机器人的基本功能介绍,是机器人应用的理论基础,主要介绍了机器人的选型、特殊功能。工业机器人实质上也是一种运动控制器,机器人具有的特殊功能是其他运动控制器所没有的。根据二八原则,可能只有20%的功能是最常用的,因此在第2章介绍的是最常用的编程指令,便于读者的快速入门和应用。在第3章介绍了全部的编程指令。第4章介绍了机器人的状态变量,状态变量表示了机器人的实际工作状态,在实际编程中会经常使用。第5章介绍了机器人编程中要使用的各种计算函数。正确地使用计算函数可以大大简化编程工作。第6章介绍了参数功能及设置。参数赋予了机器人各种功能,在实际使用中对参数的设置是必不可少的。本章结合软件的使用对重点参数的功能及设置做了说明,这也是从使用者的角度着想的。第7章介绍了机器人专用输入输出信号的使用。作为自动化生产线上的一个核心控制设备,机器人必须与主控系统、外围检测信号有许多信息交流,为了便于机器人的使用,机器人系统配置了许多专用输入输出信号,正确地连接和使用这些输入输出信号是机器人正常工作的前提。第8章介绍了编程软件的使用,事实上所有的编程和参数设置都是在软件上完成的。该软件同时还具备状态监视和模拟运行的功能。第9章提供了一个应用案例,结合应用案例可以对照学习编程指令及参数设置,加深对编程指令的理解。感谢林步东先生对本书的写作提供了大量的支持。笔者学识有限,书中不足之处在所难免,请读者批评指正。笔者邮箱:hhhfff57710@163.com。编著者
第1章工业机器人基本知识和特有的功能 / 001 1.1机器人概述 / 001 1.1.1机器人基本知识 / 001 1.1.2机器人通用功能 / 002 1.1.3机器人型号 / 002 1.2机器人技术规格 / 003 1.2.1垂直多功能机器人技术规格 / 003 1.2.2水平多功能机器人技术规格 / 005 1.3技术规格中若干性能指标的解释 / 006 1.3.1机器人部分有关规格的名词术语 / 006 1.3.2控制器技术规格 / 006 1.3.3控制器有关规格的名词术语 / 007 1.4机器人特有的功能 / 008 1.4.1机器人坐标系及原点 / 008 1.4.2专用输入输出信号 / 014 1.4.3操作权 / 015 1.4.4最佳速度控制 / 016 1.4.5最佳加减速度控制 / 016 1.4.6柔性控制功能 / 016 1.4.7碰撞检测功能 / 016 1.4.8连续轨迹控制功能 / 016 1.4.9程序连续执行功能 / 016 1.4.10附加轴控制 / 016 1.4.11多机器控制 / 016 1.4.12与外部机器通信功能 / 017 1.4.13中断功能 / 017 1.4.14子程序功能 / 017 1.4.15码垛指令功能 / 017 1.4.16用户定义区 / 017 1.4.17动作范围限制 / 017 1.4.18特异点 / 017 1.4.19保持紧急停止时的运动轨迹 / 017 1.4.20机器人的形位(pose) / 017 第2章编程指令快速入门 / 022 2.1MELFA-BASIC V的详细规格 / 022 2.1.1MELFA-BASIC V的详细规格 / 022 2.1.2有特别定义的文字 / 023 2.1.3数据类型 / 024 2.2动作指令 / 024 2.2.1关节插补 / 024 2.2.2直线插补 / 026 2.2.3Mvc(Move C)三维真圆插补指令 / 027 2.2.4Cnt(Continuous)连续轨迹运行 / 027 2.2.5加减速时间与速度控制 / 028 2.2.6Fine定位精度 / 029 2.2.7Prec高精度轨迹控制 / 030 2.2.8抓手TOOL控制 / 030 2.2.9PALLET(码垛)指令 / 031 2.3程序结构指令 / 034 2.3.1无条件跳转指令 / 034 2.3.2根据条件执行程序分支跳转的指令 / 034 2.4外部输入输出信号指令 / 036 2.4.1输入信号 / 036 2.4.2输出信号 / 036 2.5通信指令 / 036 2.5.1Open通信启动指令 / 037 2.5.2Print输出字符串指令 / 038 2.5.3Input从指定的文件中接收数据,接收的数值为ASCII码 / 039 2.5.4On Com GoSub指令 / 039 2.5.5Com On/Com Off/Com Stop / 040 2.6运算指令 / 040 2.6.1位置数据运算(乘法) / 040 2.6.2位置数据运算(加法) / 040 2.7多任务处理 / 041 2.7.1多任务定义 / 041 2.7.2设置多程序任务的方法 / 042 2.7.3多任务应用案例 / 044 第3章编程指令详细说明 / 047 3.1动作控制指令 / 047 3.1.1Mov(Move)关节插补 / 048 3.1.2Mvs(Move S) / 049 3.1.3Mvr(Move R) / 050 3.1.4Mvr2(Move R2) / 051 3.1.5Mvr3(Move R3) / 052 3.1.6Mvc(Move C)三维真圆插补指令 / 052 3.1.7Mva(Move Arch)过渡连接型圆弧插补指令 / 053 3.1.8Mv Tune(Move Tune) / 054 3.1.9Ovrd(Override) / 054 3.1.10Spd(Speed) / 055 3.1.11JOvrd(J Override) / 055 3.1.12Cnt(Continuous) / 055 3.1.13Accel(Accelerate) / 057 3.1.14Cmp Jnt(Comp Joint) / 057 3.1.15Cmp Pos(Composition Posture) / 057 3.1.16Cmp Tool(Composition Tool) / 058 3.1.17Cmp Off(Composition Off) / 058 3.1.18CmpG(Composition Gain) / 059 3.1.19Mxt(Move External) / 059 3.1.20Oadl(Optimal Acceleration) / 060 3.1.21LoadSet(Load Set) / 060 3.1.22Prec(Precision) / 061 3.1.23Torq(Torque) / 061 3.1.24JRC(Joint Roll Change) / 062 3.1.25Fine(Fine) / 063 3.1.26Fine J(Fine Joint) / 063 3.1.27Fine P以直线距离设置定位精度 / 064 3.1.28Servo(Servo)指令伺服电源的ON/OFF / 064 3.1.29Wth(With)在插补动作时附加处理的指令 / 064 3.1.30WthIf(With If) / 064 3.1.31CavChk On防碰撞功能是否生效 / 065 3.1.32ColLvl (ColLevel)设置碰撞检测量级 / 065 3.2程序控制流程相关的指令 / 065 3.2.1Rem(Remarks) / 066 3.2.2If…Then…Else…EndIf(If Then Else) / 067 3.2.3Select Case(Select Case) / 068 3.2.4GoTo(Go To) / 070 3.2.5GoSub(Return)(Go Subroutine) / 070 3.2.6Reset Err(Reset Error) / 071 3.2.7CallP(Call P) / 071 3.2.8FPrm(FPRM) / 072 3.2.9Dly(Delay) / 073 3.2.10Hlt(Halt) / 073 3.2.11On…GoTo(On Go To) / 074 3.2.12On…GoSub(ON Go Subroutine) / 075 3.2.13While…WEnd(While End) / 075 3.2.14Open(Open) / 076 3.2.15Print(Print) / 077 3.2.16Input(Input) / 078 3.2.17Close(Close) / 079 3.2.18ColChk(Col Check) / 079 3.2.19On Com GoSub(ON CommunicationGo Subroutine) / 080 3.2.20Com On/Com Off/Com Stop(Communication ON/OFF/STOP) / 081 3.2.21HOpen/HClose(Hand Open/HandClose) / 081 3.2.22Error(Error) / 081 3.2.23Skip(Skip) / 082 3.2.24Wait(Wait) / 082 3.2.25Clr(Clear) / 082 3.2.26END程序段结束指令 / 083 3.2.27For □ Next循环指令 / 083 3.2.28Return子程序/中断程序结束及返回 / 084 3.2.29Label(标签、指针) / 084 3.3定义指令 / 085 3.3.1Dim(Dim) / 085 3.3.2Def Plt(Define Pallet) / 086 3.3.3Plt(Pallet) / 089 3.3.4Def Act(Define Act) / 090 3.3.5Act(Act) / 091 3.3.6Def Arch(Define Arch) / 092 3.3.7Def Jnt(Define Joint) / 093 3.3.8Def Pos(Define Position) / 093 3.3.9Def Inte/Def Long/Def Float/DefDouble / 093 3.3.10Def Char(Define Character) / 094 3.3.11Def IO(Define IO) / 094 3.3.12Def FN(Define Function) / 095 3.3.13Tool(Tool) / 096 3.3.14Base(Base) / 096 3.3.15Title(Title) / 097 3.3.16赋值指令(代入指令) / 097 3.4多任务相关指令 / 098 3.4.1XLoad(X Load)加载程序指令 / 098 3.4.2XRun(X Run)多任务工作时的程序启动指令 / 099 3.4.3XStp(X Stop)多任务工作时的程序停止指令 / 099 3.4.4XRst(X Reset)复位指令 / 099 3.4.5XClr(X Clear)多程序工作时,解除某任务区(task slot)的程序选择状态 / 100 3.4.6GetM(Get Mechanism) / 100 3.4.7RelM(Release Mechanism) / 101 3.4.8Priority(Priority)优先执行指令 / 101 3.4.9Reset Err(Reset Error) / 102 3.5视觉功能相关指令 / 102 3.5.1NVOpen(Network vision sensor lineopen)连接视觉通信线路 / 102 3.5.2NVClose关断视觉传感器通信线路指令 / 104 3.5.3NVLoad(Network vision sensorload) / 105 3.5.4NVRun(Network vision sensorrun) / 105 3.5.5NVPst(Network vision programstart) / 106 3.5.6NVIn(Network vision sensorinput) / 109 3.5.7NVTrg(Network vision sensortrigger) / 110 3.5.8EBRead(EasyBuilder read) / 111 3.6视觉追踪功能指令 / 113 3.6.1TrBase指令 / 113 3.6.2TrClr追踪缓存区数据清零指令 / 113 3.6.3Trk追踪功能指令 / 114 3.6.4TrOut输出信号和读取编码器数值指令 / 114 3.6.5TrRd读追踪数据指令 / 115 3.6.6TrWrt写追踪数据指令 / 116 3.7其他指令 / 117 3.7.1ChrSrch(Character Search)查找字符串编号 / 117 3.8附录以起首字母排列的指令 / 117 第4章机器人状态变量 / 122 4.1C-J状态变量 / 122 4.1.1C_Date当前日期(年/月/日) / 122 4.1.2C_Maker制造商信息 / 122 4.1.3C_Mecha机器人型号 / 122 4.1.4C_Prg已经选择的程序号 / 123 4.1.5C_Time当前时间(以24小时显示时/分/秒) / 123 4.1.6C_User用户参数USERMSG所设置的数据 / 123 4.1.7J_Curr各关节轴的当前位置数据 / 123 4.1.8J_ColMxl碰撞检测中推测转矩与实际转矩之差的最大值 / 124 4.1.9J_ECurr当前编码器脉冲数 / 126 4.1.10J_Fbc/J-AmpFbc关节轴的当前位置/关节轴的当前电流值 / 126 4.1.11 J_Origin原点位置数据 / 126 4.2M开头的状态变量 / 127 4.2.1M_Acl/M_DAcl/M_NAcl/M_NDAcl/M_AclSts / 127 4.2.2M_BsNo当前基本坐标系编号 / 127 4.2.3M_BrkCqBreak指令的执行状态 / 128 4.2.4M_BTime电池可工作时间 / 128 4.2.5M_CavSts发生干涉的机器人CPU号 / 128 4.2.6M_CmpDst伺服柔性控制状态下指令值与实际值之差 / 129 4.2.7M_CmpLmt伺服柔性控制状态下指令值是否超出限制 / 129 4.2.8M_ColSts碰撞检测结果 / 130 4.2.9M_Cstp检测程序是否处于循环停止中 / 130 4.2.10M_Cys检测程序是否处于循环中 / 130 4.2.11M_DIn/M_DOut读取/写入CCLINK远程寄存器的数据 / 131 4.2.12M_Err/M_ErrLvl/M_ErrNo报警信息 / 131 4.2.13M_Exp自然对数 / 132 4.2.14M_Fbd指令位置与反馈位置之差 / 132 4.2.15M_G重力常数(9.80665) / 132 4.2.16M_HndCq抓手输入信号状态 / 132 4.2.17M_In/M_Inb/M_In8/M_Inw/M_In16输入信号状态 / 133 4.2.18M_In32存储32位外部输入数据 / 133 4.2.19M_JOvrd/M_NJOvrd/M_OPovrd/M_Ovrd/M_NOvrd速度倍率值 / 134 4.2.20M_Line当前执行的程序行号 / 134 4.2.21M_LdFact各轴的负载率 / 134 4.2.22M_Mode操作面板的当前工作模式 / 135 4.2.23M_On/M_Off / 135 4.2.24M_Open被打开文件的状态 / 135 4.2.25M_Out/M_Outb/M_Out8/M_Outw/M_Out16输出信号状态(指定输出或读取输出信号状态) / 136 4.2.26M_Out32向外部输出或读取32bit 的数据 / 137 4.2.27M_PI圆周率 / 137 4.2.28M_Psa任务区的程序是否为可选择状态 / 137 4.2.29M_Ratio(在插补移动过程中)当前位置与目标位置的比率 / 138 4.2.30M_RDst(在插补移动过程中)距离目标位置的剩余距离 / 138 4.2.31M_Run任务区内程序执行状态 / 138 4.2.32M_SetAdl设置指定轴的加减速时间比例(注意不是状态值) / 138 4.2.33M_SkipCq Skip指令的执行状态 / 139 4.2.34M_Spd/M_NSpd/M_RSpd插补速度 / 139 4.2.35M_Svo伺服电源状态 / 139 4.2.36M_Timer计时器(以ms为单位) / 140 4.2.37M_Tool设定或读取TOOL坐标系的编号 / 140 4.2.38M_Uar机器人任务区域编号 / 141 4.2.39M_Uar32机器人任务区域状态 / 141 4.2.40M_UDevW/ M_UDevD多CPU之间的数据读取及写入指令 / 141 4.2.41M_Wai任务区内的程序执行状态 / 142 4.2.42M_Wupov预热运行速度倍率 / 142 4.2.43M_Wuprt在预热运行模式时距离预热模式结束的时间(秒) / 143 4.2.44M_Wupst从解除预热模式到重新进入预热模式的时间 / 143 4.2.45M_XDev/M_XDevB/M_XDevW/M_XDevDPLC 输入信号数据 / 143 4.2.46M_YDev/M_YDevB/M_YDevW/M_YDevD PLC 输出信号数据 / 144 4.3P开头状态变量 / 144 4.3.1P_Base/P_NBase基本坐标系偏置值 / 144 4.3.2P_CavDir机器人发生干涉碰撞时的位置数据 / 145 4.3.3P_ColDir机器人发生干涉碰撞时的位置数据 / 145 4.3.4P_Curr当前位置(X,Y,Z,A,B,C,L1,L2)(FL1,FL2) / 145 4.3.5P_Fbc以伺服反馈脉冲表示的当前位置(X,Y,Z,A,B,C,L1,L2)(FL1,FL2) / 146 4.3.6P_Safe待避点位置 / 146 4.3.7P_Tool/P_NToolTOOL坐标系数据 / 146 4.3.8P_WkCord设置或读取当前工件坐标系数据 / 147 4.3.9P_Zero零点[(0,0,0,0,0,0,0,0)(0,0)] / 147 第5章编程指令中使用的函数 / 148 5.1A起首字母 / 148 5.1.1Abs求绝对值 / 148 5.1.2Align / 148 5.1.3Asc求字符串的ASCII码 / 148 5.1.4Atn/Atn2(余切函数)计算余切 / 149 5.2B起首字母 / 150 5.2.1Bin$将数据变换为二进制字符串 / 150 5.3C起首字母 / 150 5.3.1CalArc / 150 5.3.2Chr$将ASCII码变换为字符 / 151 5.3.3CInt将数据四舍五入后取整 / 151 5.3.4CkSum进行字符串的和校验计算 / 151 5.3.5Cos余弦函数(求余弦) / 151 5.3.6Cvi对字符串的起始2个字符的ASCII码转换为整数 / 152 5.3.7Cvs将字符串的起始4个字符的ASCII码转换为单精度实数 / 152 5.3.8Cvd将字符串的起始8个字符的ASCII码转换为双精度实数 / 152 5.4D起首字母 / 152 5.4.1Deg将角度单位从弧度rad变换为度deg / 152 5.4.2Dist求2点之间的距离(mm) / 153 5.5E起首字母 / 153 5.5.1Exp计算e为底的指数函数 / 153 5.5.2Fix计算数据的整数部分 / 153 5.5.3Fram建立坐标系 / 153 5.6H起首字母 / 154 5.6.1Hex$将十六进制数据转换为字符串 / 154 5.7I开头 / 154 5.7.1Int计算数据最大值的整数 / 154 5.7.2Inv对位置数据进行反向变换 / 154 5.8J起首字母 / 155 5.8.1JtoP将关节位置数据转成直角坐标系数据 / 155 5.9L起首字母 / 155 5.9.1Left$按指定长度截取字符串 / 155 5.9.2Len计算字符串的长度(字符个数) / 156 5.9.3Ln计算自然对数(以e为底的对数) / 156 5.9.4Log计算常用对数(以10为底的对数) / 156 5.10M起首字母 / 156 5.10.1Max计算最大值 / 156 5.10.2Mid$根据设定求字符串的部分长度的字符 / 156 5.10.3Min求最小值 / 157 5.10.4Mirror$字符串计算 / 157 5.10.5Mki$字符串计算 / 157 5.10.6Mks$字符串计算 / 158 5.10.7Mkd$字符串计算 / 158 5.11P起首字母 / 158 5.11.1PosCq检查给出的位置点是否在允许动作区域内 / 158 5.11.2PosMid求出2点之间做直线插补的中间位置点 / 158 5.11.3PtoJ将直角型位置数据转换为关节型数据 / 159 5.12R起首字母 / 159 5.12.1Rad将角度单位(deg)转换为弧度单位(rad) / 159 5.12.2Rdfl1将形位(pose)结构标志用字符R/L,A/B,N/F表示 / 159 5.12.3Rdfl2求指定关节轴的旋转圈数 / 160 5.12.4Rnd产生一个随机数 / 160 5.12.5Right$从字符串右端截取指定长度的字符串 / 160 5.13S起首字母 / 161 5.13.1Setfl1变更指定位置点的形位(pose)结构标志FL1 / 161 5.13.2Setfl2变更指定位置点的形位(pose)结构标志FL2 / 161 5.13.3SetJnt设置各关节变量的值 / 162 5.13.4SetPos设置直交型位置变量数值 / 162 5.13.5Sgn求数据的符号 / 163 5.13.6Sin求正弦值 / 163 5.13.7Sqr求平方根 / 163 5.13.8Strpos在字符串里检索指定的字符串的位置 / 163 5.13.9Str$将数据转换为十进制字符串 / 164 5.14T起首字母 / 164 5.14.1Tan求正切 / 164 5.15V起首字母 / 164 5.15.1Val将字符串转换为数值 / 164 5.16Z起首字母 / 164 5.16.1Zone检查指定的位置点是否进入指定的区域 / 164 5.16.2Zone2检查指定的位置点是否进入指定的区域(圆筒型) / 165 5.16.3Zone3检查指定的位置点是否进入指定的区域(长方体) / 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.4JOG运行信号 / 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.1RT软件的基本功能 / 242 8.1.1RT软件的功能概述 / 242 8.1.2RT软件的功能一览 / 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.5TOOL长度自动计算 / 269 8.5.6伺服监视 / 269 8.5.7密码设定 / 270 8.5.8文件管理 / 270 8.5.92D视觉校准 / 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.6JOG操作功能 / 277 8.83D监视 / 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
你还可能感兴趣
我要评论
|