机器人系统设计-案例3课件_第1页
机器人系统设计-案例3课件_第2页
机器人系统设计-案例3课件_第3页
机器人系统设计-案例3课件_第4页
机器人系统设计-案例3课件_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器人系统设计

案例3

机器人的远程控制蔡泽凡

课程内容案例1

机器人工作站外围设备的控制案例3机器人的远程控制案例4

机器人的多任务控制案例5

机器人视觉定位案例2机器人的示教与编程课程内容案例3机器人的远程控制3.1功能要求3.2所需软件3.3设备连接关系3.4#1机器人Ts40的程序设计3.5PLC程序的设计3.6NetSCADA程序的设计3.7相关知识3.8练习3.1功能要求3.1.1案例功能:界面效果3.1功能要求3.1.1案例功能:界面效果3.1功能要求3.1.1案例功能在NetSCADA中设计两个用户操作界面,一个是外设监控界面(该界面和案例1基本相同),另一个是机器人手动控制界面。机器人手动控制界面的功能:显示#1机器人的状态:是否就绪、是否处于加工原点、是否在运行中、是否暂停中。手动对#1机器人进行控制:远程上电、远程下电、运行、暂停、继续、停止、回加工原点、MODBUSTCP通讯进行重连。3.1功能要求3.1.2案例目标熟练掌握海得PLC、NetSCADA的使用熟练掌握通过OPC通讯协议实现PLC与NetSCADA的通讯熟练掌握史陶比尔机器人的示教编程掌握史陶比尔机器人和海得PLC之间通过MODBUSTCP进行通讯的方法3.1功能要求3.1.3案例重点海得PLC的编程NetSCADA的界面开发NetSCADA与PLC的OPC通讯史陶比尔机器人的用户界面编程史陶比尔机器人的多任务编程史陶比尔机器人与PLC的MODBUSTCP通讯3.2所需软件NetSCADA5.0-DevProject(用于编辑NetSCADA程序);NetSCADA5.0-Field(用于运行NetSCADA程序);EControlPLC2.1(用于编辑海得PLC程序);海得PLC以太驱动EPL(用于建立NetSCADA与海得PLC之间的OPC驱动);StaubliRoboticsSuite(SRS)2013.4.4(史陶比尔机器人离线编程软件);ftpsurfer107(用于访问史陶比尔机器人控制器ftp服务器,实现文件的上传与下载)。3.3设备连接关系PC、PLC、Robot通过网线和网络交换机相连PC端的NetSCADA和PLC之间通过OPC协议(基于MODBUSTCP)进行通讯ROBOT和PLC之间通过MODBUSTCP进行通讯PLC和外设之间通过数字IO电气连接。3.3.1拓扑结构3.3设备连接关系3.3.2控制信号列表:外设IO分配表(1)外设PLCNetSCADAIO类型,以PLC为主体启动按钮X000X000I,高电平有效停止按钮X001X001I,低电平有效急停按钮X002X002I,低电平有效气泵是否过压X003X003I,低电平有效伺服电机1到位信号X004X004I,高电平有效伺服电机1报警信号X005X005I,高电平有效伺服电机2到位信号X006X006I,高电平有效伺服电机2报警信号X007X007I,高电平有效气泵是否满压X010X010I,高电平有效输入备用1X011X011I,高电平有效输入备用2X012X012I,高电平有效#1机器人光电信号X013X013I,高电平有效#2机器人光电信号X014X014I,高电平有效#3机器人光电信号X015X015I,高电平有效#4机器人光电信号X016X016I,高电平有效3.3设备连接关系3.3.2控制信号列表:外设IO分配表(2)外设PLCNetSCADAIO类型,以PLC为主体输入备用3X017X017I,高电平有效红色指示灯Y000Y000O绿色指示灯Y001Y001O黄色指示灯Y002Y002O#1机器人急停信号Y003Y003O,低电平有效#2机器人急停信号#3机器人急停信号流水线伺服电机2使能Y004Y004O流水线伺服电机2运行Y005Y005O流水线伺服电机1使能Y006Y006O流水线伺服电机1运行Y007Y007O相机1光源控制Y013Y013O相机2光源控制Y014Y014O相机3光源控制Y015Y015O气泵开关Y017Y017O3.3设备连接关系3.3.2控制信号列表:外设IO分配表(3)外设PLCNetSCADAIO类型,以PLC为主体#1机器人电磁阀1Y020Y020O#1机器人电磁阀2Y021Y021O#1机器人电磁阀3Y022Y022O#1机器人电磁阀4Y023Y023O#2机器人电磁阀1Y024Y024O#2机器人电磁阀2Y025Y025O#2机器人电磁阀3Y026Y026O#2机器人电磁阀4Y027Y027O#2机器人电磁阀5Y030Y030O#3机器人电磁阀1Y033Y033O#3机器人电磁阀2Y034Y034O#3机器人电磁阀3Y035Y035O#3机器人电磁阀4Y036Y036O3.3设备连接关系3.3.2控制信号列表:控制按钮信号分配表(1)外设PLCPCNetSCADA红色指示灯按钮M2000M2000绿色指示灯按钮M2001M2001黄色指示灯按钮M2002M2002流水线伺服电机2使能按钮M2004M2004流水线伺服电机2运行按钮M2005M2005流水线伺服电机1使能按钮M2006M2006流水线伺服电机1运行按钮M2007M2007相机1光源控制按钮M2013M2013相机2光源控制按钮M2014M2014相机3光源控制按钮M2015M2015气泵开关按钮M2017M2017#1机器人电磁阀1按钮M2020M20203.3设备连接关系3.3.2控制信号列表:控制按钮信号分配表(2)外设PLCPCNetSCADA#1机器人电磁阀2按钮M2021M2021#1机器人电磁阀3按钮M2022M2022#1机器人电磁阀4按钮M2023M2023#2机器人电磁阀1按钮M2024M2024#2机器人电磁阀2按钮M2025M2025#2机器人电磁阀3按钮M2026M2026#2机器人电磁阀4按钮M2027M2027#2机器人电磁阀5按钮M2030M2030#3机器人电磁阀1按钮M2033M2033#3机器人电磁阀2按钮M2034M2034#3机器人电磁阀3按钮M2035M2035#3机器人电磁阀4按钮M2036M20363.3设备连接关系3.3.2控制信号列表:机器人1对外设的控制请求信号分配表#1机器人对外设的控制请求ROBOTPLC机器人1电磁阀1控制dOutAction[0]D3026.7、M520机器人1电磁阀2控制dOutAction[1]D3026.8、M521机器人1电磁阀3控制dOutAction[2]D3026.9、M522机器人1电磁阀4控制dOutAction[3]D3026.A、M523#1机器人状态ROBOTPLCNetSCADA准备就绪dOutRobRdyD3026.0D3026:0加工原点dOutIsHomeD3026.1D3026:1运行中dOutIsMovingD3026.6D3026:6暂停中dOutIsPauseD3026.3D3026:33.3.2控制信号列表:机器人1的状态变量信号分配表3.3设备连接关系3.3.2控制信号列表:对机器人1的手动控制信号分配表#1机器人手动控制ROBOTPLCNetSCADA通信重连无M2105M2105上电dInEnaPowerM2052、D3030.5M2052下电dInDisPowerM2055、D3030.4M2055运行dInStartCycleM2085、D3030.0M2085暂停dInPauseCycleM2074、D3030.2M2074继续dInRestartCycleM580、D3030.8M580停止dInStopCycleM2053、D3030.1M2053回加工原点dInResetRobM2054、D3030.3M20543.3设备连接关系3.3.2控制信号列表:PLC其他变量信号分配表变量名地址变量名地址MODBUS_TCP设置标志M716MODBUS_TCP建立联接标志M5030机器人1有手动控制数据的标志M3030MODBUS连接状态D3004机器人1数据清零M2080机器人1反馈回来的状态数据D3026机器人1手动下数据清零M2089发送给机器人1的控制数据D3030初始化标志M3007缓存IP地址D3000~D3003急停标志M3700缓存MBTMCON指令信息D4~D5缓存MBTMPDB指令信息D3230~D3233缓存MBTMODB指令信息D3012~D3014手动控制数据清零计时器T34MODBUS_TCP断开计时器T40数据清零计时器T12

3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(1)单击物理IO(2)单击ModbusIO配置3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(3)修改连接数3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(4)保存配置,目录Controller1\usr\applicom\Modbus3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(5)ModbusIO变量列表(1)名称类型地址大小客户机访问dInStartCycleBIT01CS8Input(R/W)dInStopCycleBIT11CS8Input(R/W)dInPauseCycleBIT21CS8Input(R/W)dInResetRobBIT31CS8Input(R/W)dInDisPowerBIT41CS8Input(R/W)dInEnaPowerBIT51CS8Input(R/W)dInErrorStopBIT61CS8Input(R/W)dInProductTypeBIT71CS8Input(R/W)dInRestartCycleBIT81CS8Input(R/W)dIn3BIT91CS8Input(R/W)dOutRobRdyBIT101CS8Output(W)dOutIsHomeBIT111CS8Output(W)dOutIsCycleBIT121CS8Output(W)dOutIsPauseBIT131CS8Output(W)3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(5)ModbusIO变量列表(2)名称类型地址大小客户机访问dOutFinishBIT141CS8Output(W)dOutIsErrorBIT151CS8Output(W)dOutMovingBIT161CS8Output(W)dOutActionBIT178CS8Output(W)dOutBIT251CS8Output(W)dOut2BIT261CS8Output(W)aInOffsetXFLOAT01CS8Input(R/W)aInOffsetYFLOAT21CS8Input(R/W)aInOffsetRZFLOAT41CS8Input(R/W)aInDistFLOAT61CS8Input(R/W)aInFLOAT81CS8Input(R/W)aIn2FLOAT101CS8Input(R/W)aOutWORD124CS8Output(W)3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(6)创建所有的ModbusIO变量(1)3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(6)创建所有的ModbusIO变量(2)3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(7)保存并重启SRS软件使ModbusIO生效3.4#1机器人Ts40的程序设计3.4.1配置MODBUSIO(8)使用软件Ftpsurfer把创建的modbus.xml文件(存在于单元路径Controller1\usr\applicom\Modbus中)上传到CS8C控制器中,路径为usr/applicom/modbus。3.4#1机器人Ts40的程序设计3.4.2配置全局数据:全局变量列表(1)变量类型描述值fBallPalletframe钢珠托盘的工件坐标系X=-167.61,Y=-145.68,Z=47.73,Rx=0.17,Ry=-0.33,Rz=-89.92pBallPickPos1point建立在fBallPallet坐标系下的坐标变量X=23.62,Y=271,Z=1.75,Rx=179.67,Ry=0.17,Rz=-47.57Shoulder=sampBallPickPos2point建立在fBallPallet坐标系下的坐标变量X=128.37,Y=264.92,Z=1.34,Rx=179.67,Ry=0.17,Rz=-75.31Shoulder=samejHomejoint建立在joint坐标系下的坐标变量,表示加工原点J1=-101.74,J2=-32.846,J3=140.81,J4=64.56023.4#1机器人Ts40的程序设计3.4.2配置全局数据:全局变量列表(2)变量类型描述值mFastSpeedmdesc快速速度变量速度(%)=100,混合=关节mMiddleSpeedmdesc中速速度变量速度(%)=60,混合=关节mSlowSpeedmdesc慢速速度变量速度(%)=20,混合=关节trZtrsf几何变换变量,在Z轴方向上的偏置量X=0,Y=0,Z=-50,Rx=0,Ry=0,Rz=0bThereIsMotionbool代表机器人1是否有运动任务falsenTaskIndexnum代表运动任务的编号,0:无,1:单次点到点运动,2:循环点到点运动,3:回加工原点运动0dInDisPowerdio远程下电ModbusSrv-0\Modbus-Bit\dInDisPower3.4#1机器人Ts40的程序设计3.4.2配置全局数据:全局变量列表(3)变量类型描述值dInEnaPowerdio远程上电ModbusSrv-0\Modbus-Bit\dInEnaPowerdInPauseCycledio机器人1暂停ModbusSrv-0\Modbus-Bit\dInPauseCycledInResetRobdio机器人1回加工原点ModbusSrv-0\Modbus-Bit\dInResetRobdInRestartCycledio机器人1继续ModbusSrv-0\Modbus-Bit\dInRestartCycledInStartCycledio机器人1运行ModbusSrv-0\Modbus-Bit\dInStartCycledInStopCycledio机器人1停止ModbusSrv-0\Modbus-Bit\dInStopCycledOutIsHomedio机器人1在加工原点ModbusSrv-0\Modbus-Bit\dOutIsHomedOutIsPausedio机器人1暂停中ModbusSrv-0\Modbus-Bit\dOutIsPause3.4#1机器人Ts40的程序设计3.4.2配置全局数据:全局变量列表(4)变量类型描述值dOutMovingdio机器人1运行中ModbusSrv-0\Modbus-Bit\dOutMovingdOutRobRdydio机器人1准备就绪ModbusSrv-0\Modbus-Bit\dOutRobRdy3.4#1机器人Ts40的程序设计3.4.2配置全局数据:创建dio变量,以dInDisPower为例(1)定位到dio变量dInDisPower,按F2(连接)(2)按F6(编辑),进入物理IO选择界面(3)

F8(OK)完成物理IO选择(4)按F8(OK)完成物理IO连接3.4#1机器人Ts40的程序设计3.4.2配置全局数据:创建dio变量,创建完毕后3.4#1机器人Ts40的程序设计3.4.3编辑程序在缺省程序start、stop的基础上增加GoHome、HMI、Init、IOCmd、KeyScan、MotionMNG、P2PMove、P2PmoveForever等8个子程序3.4#1机器人Ts40的程序设计3.4.3编辑程序:start//对用户界面进行初始化

callHMI()

//对变量、电源和初始位置进行初始化

callInit()

//Whenalltheinstructionsintheprocessfunctionofataskfinish,thetaskwillbekilledbythesystem

//创建一个任务对IO变量进行监视并作相应的处理

taskCreate

"IOCmd",90,IOCmd()

//创建一个任务对用户界面的按键进行监视并作相应的处理

taskCreate

"KeyScanTask",95,KeyScan()

//创建一个任务对机械臂的运动进行管理

taskCreate

"MotionMngTask",88,MotionMNG()3.4#1机器人Ts40的程序设计3.4.3编辑程序:start3.4#1机器人Ts40的程序设计3.4.3编辑程序:HMI

//使示教器切换到用户窗口

userPage()

//清空用户窗口

cls()

//使光标定位到第0行地0列

gotoxy(0,0)

//从光标所在的位置输出信息并使光标自动切换到下一行的第0列

putln("F1torunP2Pmoveonce")

//使光标定位到第1行第0列

gotoxy(0,1)

putln("F2torunP2Pmoverepeatly")3.4#1机器人Ts40的程序设计3.4.3编辑程序:HMIgotoxy(0,2)

putln("F3togohome")

gotoxy(0,3)

putln("F4topause/restartmove")

gotoxy(0,4)

putln("F5tostopmoving")

gotoxy(0,12)

putln("Status:")

gotoxy(0,13)

put("Noaction")3.4#1机器人Ts40的程序设计3.4.3编辑程序:Init

//复位输出变量

//ifreadydOutRobRdy=false

//AtstartpositiondOutIsHome=false

//robotismovingdOutMoving=false

//InpausedOutIsPause=false

//复位中间变量bThereIsMotion=false

nTaskIndex=03.4#1机器人Ts40的程序设计3.4.3编辑程序:Init//上电管理

if

watch(isPowered(),3)==true

//robotpowerisondOutRobRdy=true

else

//robotpowerisoff

if

workingMode()==4

enablePower()

if

watch(isPowered(),3)==truedOutRobRdy=true

endIf

endIf

endIf3.4#1机器人Ts40的程序设计3.4.3编辑程序:Init//如果机器人已经处于就绪状态则使手臂运行到加工原点

ifdOutRobRdy==true

and

taskStatus("GoHomeTask")==-1

taskCreate

"GoHomeTask",10,GoHome()

wait(taskStatus("GoHomeTask")==1)

endIf3.4#1机器人Ts40的程序设计3.4.3编辑程序:GoHome

//使手臂运动到加工原点dOutIsHome=falsedOutMoving=true

movej(jHome,flange,mSlowSpeed)

waitEndMove()dOutMoving=falsedOutIsHome=true3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmd

while

true

//上位机发给机器人的命令可能会被重复处理,因此必须做防重复的操作

//上电操作

ifdInEnaPower==true

and

dOutRobRdy==false

and

workingMode()==4

if

!isPowered()

enablePower()

if

(watch(isPowered(),2)==true)dOutRobRdy=true

autoConnectMove(true)3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmdelsedOutRobRdy=false

endIf

endIf

endIf

//下电操作

ifdInDisPower==true

anddOutRobRdy==true

and

workingMode()==4

if

isPowered()

disablePower()

if

(watch(isPowered(),2)==false)dOutRobRdy=false

dOutIsPause=false3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmd

dOutMoving=false

//下电以后如果原来在工作则应该作复位动作

ifbThereIsMotion==truebThereIsMotion=false

stopMove()

gotoxy(0,13)

put("Nomotion

")

if

taskStatus("P2PMoveTask")>=0

taskKill("P2PMoveTask")

endIf

if

taskStatus("P2PMove2Task")>=0

taskKill("P2PMove2Task")

endIf3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmdif

taskStatus("GoHomeTask")>=0

taskKill("GoHomeTask")

endIf

resetMotion()

endIf

elsedOutRobRdy=true

endIf

endIf

endIf

3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmd

//上位机按了运行按钮

ifdInStartCycle==true

and

dOutRobRdy==true

and

dOutIsHome==true

ifdOutIsPause==false

andnTaskIndex==0nTaskIndex=1

endIf

endIf

//上位机按了回加工原点按钮

ifdInResetRob==true

anddOutRobRdy==true

and

dOutIsHome==false

ifdOutIsPause==true

ornTaskIndex==0nTaskIndex=3dOutIsPause=false

endIf

endIf3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmd

//上位机按了暂停按钮

ifdInPauseCycle==true

and

bThereIsMotion==true

and

dOutIsPause==falsedOutIsPause=truedOutMoving=false

stopMove()

gotoxy(33,13)

put("Pause")

endIf

//上位机按了继续按钮

ifdInRestartCycle==true

and

bThereIsMotion==true

and

dOutIsPause==true3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmd

dOutIsPause=falsedOutMoving=true

restartMove()

gotoxy(33,13)

put("Running")

endIf

//上位机按了停止按钮

ifdInStopCycle==true

and

bThereIsMotion==truedOutIsPause=falsedOutMoving=false

bThereIsMotion=false3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmdstopMove()

gotoxy(0,13)

put("Nomotion

")

if

taskStatus("P2PMoveTask")>=0

taskKill("P2PMoveTask")

endIf

if

taskStatus("P2PMove2Task")>=0

taskKill("P2PMove2Task")

endIf

if

taskStatus("GoHomeTask")>=0

taskKill("GoHomeTask")

endIf

resetMotion()

endIf

endWhile3.4#1机器人Ts40的程序设计3.4.3编辑程序:IOCmd3.4#1机器人Ts40的程序设计3.4.3编辑程序:KeyScan

while

truenKeyValue=getKey()

ifnKeyValue==271

ornKeyValue==272

//按了F1(单次点到点运动)或F2(反复点到点运动)

ifdOutIsPause==false

andnTaskIndex==0

anddOutRobRdy==true

and

dOutIsHome==truenTaskIndex=nKeyValue-270

endIf

elseIfnKeyValue==273

//按了F3(回到加工原点)

if

(dOutIsPause==true

ornTaskIndex==0)

anddOutRobRdy==true

and

dOutIsHome==false

nTaskIndex=33.4#1机器人Ts40的程序设计3.4.3编辑程序:KeyScan

dOutIsPause=false

endIf

elseIfnKeyValue==274

//按了F4(暂停或者继续手臂运动)

ifbThereIsMotion==true

ifdOutIsPause==falsedOutIsPause=truedOutMoving=false

stopMove()

gotoxy(33,13)

put("Pause")

elsedOutIsPause=falsedOutMoving=true

restartMove()3.4#1机器人Ts40的程序设计3.4.3编辑程序:KeyScan

gotoxy(33,13)

put("Running")

endIf

else

popUpMsg("Thereisnomotion")

endIf

elseIfnKeyValue==275

//按了F5(停止手臂运动)dOutIsPause=falsedOutMoving=false

ifbThereIsMotion==truebThereIsMotion=false

stopMove()

gotoxy(0,13)

put("Nomotion")3.4#1机器人Ts40的程序设计3.4.3编辑程序:KeyScanif

taskStatus("GoHomeTask")>=0

taskKill("GoHomeTask")

endIf

resetMotion()

else

popUpMsg("Thereisnomotion")

endIf

endIf

delay(0)

endWhile3.4#1机器人Ts40的程序设计3.4.3编辑程序:MotionMNG

//手臂运动管理

while

true

//判断当前是否存在手臂运动的任务nTemp=taskStatus("P2PMoveTask")

nTemp=nTemp+taskStatus("P2PMove2Task")

nTemp=nTemp+taskStatus("GoHomeTask")

//刷新用户界面显示

if

(nTemp>-3)

//存在手臂运动的任务

if

dOutIsPause==true

anddOutMoving==truedOutMoving=false

endIf

else

3.4#1机器人Ts40的程序设计3.4.3编辑程序:MotionMNG//不存在手臂运动的任务

if

(bThereIsMotion==true)

gotoxy(0,13)

put("Noaction")bThereIsMotion=false

endIfif

dOutIsPause==truerestartMove()

endIfdOutIsPause=falsedOutMoving=false

endIf

if

(bThereIsMotion==false)

3.4#1机器人Ts40的程序设计3.4.3编辑程序:MotionMNG//当前不存在手臂运动的任务

if

(nTaskIndex==1)

//用户要求创建手臂单次点到点运动任务

taskCreate

"P2PMoveTask",10,P2PMove()

gotoxy(0,13)

put("P2Pmoveonce,Running")bThereIsMotion=true

elseIf

(nTaskIndex==2)

//用户要求创建手臂反复点到点运动任务

taskCreate

"P2PMove2Task",10,

P2PMoveForever()

gotoxy(0,13)

put("P2Pmoverrepeatly,Running")bThereIsMotion=true

endIf

endIf3.4#1机器人Ts40的程序设计3.4.3编辑程序:MotionMNG

if

(nTaskIndex==3

and

taskStatus("GoHomeTask")==-1)

//当前没有处于回加工原点的状态且用户要求创建回

加工原点的运动任务

if

(bThereIsMotion==true)

stopMove()

if

taskStatus("P2PMoveTask")>=0

taskKill("P2PMoveTask")

endIf

if

taskStatus("P2PMove2Task")>=0

taskKill("P2PMove2Task")

endIf

resetMotion()

endIf

3.4#1机器人Ts40的程序设计3.4.3编辑程序:MotionMNGtaskCreate

"GoHomeTask",10,GoHome()

gotoxy(0,13)

put("Gohome,Running")bThereIsMotion=true

endIfnTaskIndex=0

delay(0)

endWhile3.4#1机器人Ts40的程序设计3.4.3编辑程序:P2PMove

//实现手臂单次点到点运动,最终回到加工原点dOutIsHome=falsedOutMoving=true

//去加工原点

movej(jHome,flange,mFastSpeed)

waitEndMove()

//去第一个加工点的正上方pAppro=appro(pBallPickPos1,trZ)

movej(pAppro,flange,mFastSpeed)

//直线移动到第一个加工点

movel(pBallPickPos1,flange,mSlowSpeed)

waitEndMove()

//直线返回第一个加工点的正上方

movel(pAppro,flange,mSlowSpeed)3.4#1机器人Ts40的程序设计3.4.3编辑程序:P2PMove

//去第二个加工点的正上方pAppro=appro(pBallPickPos2,trZ)

movej(pAppro,flange,mFastSpeed)

//直线移动到第二个加工点

movel(pBallPickPos2,flange,mSlowSpeed)

waitEndMove()

//直线返回第二个加工点的正上方

movel(pAppro,flange,mSlowSpeed)

//返回加工原点

callGoHome()3.4#1机器人Ts40的程序设计3.4.3编辑程序:P2PMoveForever

//反复调用手臂点到点的运动

while

true

callP2PMove()

delay(0)

endWhile3.4#1机器人Ts40的程序设计3.4.4程序运行效果3.5PLC程序的设计3.5.1建立PLC工程文件建立一个海得PLC的工程,命名为为EPLCExample3,PLC的型号和硬件配置和案例1相同。3.5PLC程序的设计3.5.2创建变量(1)3.5PLC程序的设计3.5.2创建变量(2)3.5PLC程序的设计3.5.2创建变量(3)3.5PLC程序的设计3.5.2创建变量(4)3.5PLC程序的设计3.5.2创建变量(5)3.5PLC程序的设计3.5.3创建程序:Main3.5PLC程序的设计3.5.3创建程序:初始化(P1)程序3.5PLC程序的设计3.5.3创建程序:数字量输入输出(P2)程序(1)3.5PLC程序的设计3.5.3创建程序:数字量输入输出(P2)程序(2)3.5PLC程序的设计3.5.3创建程序:数字量输入输出(P2)程序(3)3.5PLC程序的设计3.5.3创建程序:急停管理(P3)程序3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(1)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(2)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(3)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(4)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(5)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(6)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(7)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序(8)3.5PLC程序的设计3.5.3创建程序:机器人1通讯管理(P4)程序3.6NetSCADA程序的设计3.6.1建立NetSCADA工程文件建立一个NetSCADA项目,命名为NetSCADAExample3。3.6NetSCADA程序的设计3.6.2建立OPC驱动并配置数据块3.6NetSCADA程序的设计3.6.3配置变量在案例1的基础上,再建立一个自定义变量组“机器人1手动控制变量”3.6NetSCADA程序的设计3.6.4创建数值映射表本案例所需要的数值映射表和案例1一致,具体如表1.5.2所列。3.6NetSCADA程序的设计3.6.5编辑用户界面窗口本案例需要创建两个用户界面窗口,一个是外设监控界面,名称为“ShouDong”(该界面和案例1基本相同),另一个是机器人手动控制界面,名称为“MainPage”。3.6.5编辑用户界面窗口外设监控界面(ShouDong)3.6.5编辑用户界面窗口外设监控界面(ShouDong)属性设置3.6.5编辑用户界面窗口机器人手动控制界面的设计(

MainPage)3.6.5编辑用户界面窗口机器人手动控制界面的设计(

MainPage)3.6.5编辑用户界面窗口机器人手动控制界面的设计:(1)背景的设计图像组件3.6.5编辑用户界面窗口机器人手动控制界面的设计:(2)界面切换按钮的设计该按钮需要设置一个事件——鼠标点击左键的动作,该动作是打开窗口ShouDong。3.6.5编辑用户界面窗口机器人手动控制界面的设计:(2)界面切换按钮的设计该按钮需要设置一个事件——鼠标点击左键的动作,该动作是打开窗口ShouDong。3.6.5编辑用户界面窗口机器人手动控制界面的设计:(3)状态指示标志的设计椭圆的填充属性设置

准备就绪原点运行中暂停中表达式Rob1RdyRob1IsHomeRob1IsMovingRob1IsPause背景色(白色)

色调:160,饱和度:0,亮度:240;红:255,绿:255,蓝:255实体填充颜色(绿色)

色调:80,饱和度:240,亮度:120;红:0,绿:255,蓝:03.6.5编辑用户界面窗口机器人手动控制界面的设计:(4)普通按钮的设计灰色设置为:色调160,饱和度0,亮度206,红219,绿219,蓝219;蓝色设置为:色调160,饱和度240,亮度120,红0,绿0,蓝255。按钮显示表达式填充事件MODBUS通信重连D3004!=2表达式:Rob1ModbusReconnect(范围:0、1)背景色:灰色填充色:蓝色鼠标左键按下,开关赋值:Rob1ModbusReconnect1号机器人上电!Rob1Rdy表达式:Rob1EnaPower(范围:0、1)背景色:灰色填充色:蓝色鼠标左键按下,绝对赋值:Rob1EnaPower=13.6.5编辑用户界面窗口机器人手动控制界面的设计:(4)普通按钮的设计按钮显示表达式填充事件1号机器人下电Rob1Rdy表达式:Rob1DisPower(范围:0、1)背景色:灰色填充色:蓝色鼠标左键按下,绝对赋值:Rob1DisPower=11号机器人运行Rob1Rdy&&Rob1IsHome表达式:Rob1StartCycle(范围:0、1)背景色:灰色填充色:蓝色鼠标左键按下,开关赋值:Rob1StartCycle1号机器人暂停Rob1IsMoving表达式:Rob1PauseCycle(范围:0、1)背景色:灰色填充色:蓝色鼠标左键按下,绝对赋值:Rob1PauseCycle=13.6.5编辑用户界面窗口机器人手动控制界面的设计:(4)普通按钮的设计按钮显示表达式填充事件1号机器人继续Rob1IsPause表达式:Rob1RestartCycle(范围:0、1)背景色:灰色填充色:蓝色鼠标左键按下,绝对赋值:Rob1RestartCycle=11号机器人停止Rob1IsPause||Rob1IsMoving无鼠标左键按下,开关赋值:Rob1StopCycle1号机器人会加工原点Rob1Rdy&&(!Rob1IsHome)无鼠标左键按下,开关赋值:Rob1GoHome3.6NetSCADA程序的设计3.6.6设置运行参数把程序运行时自动打开的窗口设为MainPage.gpi。3.7相关知识3.7.1机器人相关指令解释:call3.7相关知识3.7.1机器人相关指令解释:userPage、cls3.7相关知识3.7.1机器人相关指令解释:gotoxy3.7相关知识3.7.1机器人相关指令解释:put、putln3.7相关知识3.7.1机器人相关指令解释:popUpMsg3.7相关知识3.7.1机器人相关指令解释:getKey3.7相关知识3.7.1机器人相关指令解释:workingMode、isPowered3.7相关知识3.7.1机器人相关指令解释:enablePower、disablePower3.7相关知识3.7.1机器人相关指令解释:watch3.7相关知识3.7.1机器人相关指令解释:wait、delay3.7相关知识3.7.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论