機(jī)器人系統(tǒng)設(shè)計(jì)-案例3課件_第1頁
機(jī)器人系統(tǒng)設(shè)計(jì)-案例3課件_第2頁
機(jī)器人系統(tǒng)設(shè)計(jì)-案例3課件_第3頁
機(jī)器人系統(tǒng)設(shè)計(jì)-案例3課件_第4頁
機(jī)器人系統(tǒng)設(shè)計(jì)-案例3課件_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

機(jī)器人系統(tǒng)設(shè)計(jì)

案例3

機(jī)器人的遠(yuǎn)程控制蔡澤凡

課程內(nèi)容案例1

機(jī)器人工作站外圍設(shè)備的控制案例3機(jī)器人的遠(yuǎn)程控制案例4

機(jī)器人的多任務(wù)控制案例5

機(jī)器人視覺定位案例2機(jī)器人的示教與編程課程內(nèi)容案例3機(jī)器人的遠(yuǎn)程控制3.1功能要求3.2所需軟件3.3設(shè)備連接關(guān)系3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.5PLC程序的設(shè)計(jì)3.6NetSCADA程序的設(shè)計(jì)3.7相關(guān)知識(shí)3.8練習(xí)3.1功能要求3.1.1案例功能:界面效果3.1功能要求3.1.1案例功能:界面效果3.1功能要求3.1.1案例功能在NetSCADA中設(shè)計(jì)兩個(gè)用戶操作界面,一個(gè)是外設(shè)監(jiān)控界面(該界面和案例1基本相同),另一個(gè)是機(jī)器人手動(dòng)控制界面。機(jī)器人手動(dòng)控制界面的功能:顯示#1機(jī)器人的狀態(tài):是否就緒、是否處于加工原點(diǎn)、是否在運(yùn)行中、是否暫停中。手動(dòng)對(duì)#1機(jī)器人進(jìn)行控制:遠(yuǎn)程上電、遠(yuǎn)程下電、運(yùn)行、暫停、繼續(xù)、停止、回加工原點(diǎn)、MODBUSTCP通訊進(jìn)行重連。3.1功能要求3.1.2案例目標(biāo)熟練掌握海得PLC、NetSCADA的使用熟練掌握通過OPC通訊協(xié)議實(shí)現(xiàn)PLC與NetSCADA的通訊熟練掌握史陶比爾機(jī)器人的示教編程掌握史陶比爾機(jī)器人和海得PLC之間通過MODBUSTCP進(jìn)行通訊的方法3.1功能要求3.1.3案例重點(diǎn)海得PLC的編程N(yùn)etSCADA的界面開發(fā)NetSCADA與PLC的OPC通訊史陶比爾機(jī)器人的用戶界面編程史陶比爾機(jī)器人的多任務(wù)編程史陶比爾機(jī)器人與PLC的MODBUSTCP通訊3.2所需軟件NetSCADA5.0-DevProject(用于編輯NetSCADA程序);NetSCADA5.0-Field(用于運(yùn)行NetSCADA程序);EControlPLC2.1(用于編輯海得PLC程序);海得PLC以太驅(qū)動(dòng)EPL(用于建立NetSCADA與海得PLC之間的OPC驅(qū)動(dòng));StaubliRoboticsSuite(SRS)2013.4.4(史陶比爾機(jī)器人離線編程軟件);ftpsurfer107(用于訪問史陶比爾機(jī)器人控制器ftp服務(wù)器,實(shí)現(xiàn)文件的上傳與下載)。3.3設(shè)備連接關(guān)系PC、PLC、Robot通過網(wǎng)線和網(wǎng)絡(luò)交換機(jī)相連PC端的NetSCADA和PLC之間通過OPC協(xié)議(基于MODBUSTCP)進(jìn)行通訊ROBOT和PLC之間通過MODBUSTCP進(jìn)行通訊PLC和外設(shè)之間通過數(shù)字IO電氣連接。3.3.1拓?fù)浣Y(jié)構(gòu)3.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:外設(shè)IO分配表(1)外設(shè)PLCNetSCADAIO類型,以PLC為主體啟動(dòng)按鈕X000X000I,高電平有效停止按鈕X001X001I,低電平有效急停按鈕X002X002I,低電平有效氣泵是否過壓X003X003I,低電平有效伺服電機(jī)1到位信號(hào)X004X004I,高電平有效伺服電機(jī)1報(bào)警信號(hào)X005X005I,高電平有效伺服電機(jī)2到位信號(hào)X006X006I,高電平有效伺服電機(jī)2報(bào)警信號(hào)X007X007I,高電平有效氣泵是否滿壓X010X010I,高電平有效輸入備用1X011X011I,高電平有效輸入備用2X012X012I,高電平有效#1機(jī)器人光電信號(hào)X013X013I,高電平有效#2機(jī)器人光電信號(hào)X014X014I,高電平有效#3機(jī)器人光電信號(hào)X015X015I,高電平有效#4機(jī)器人光電信號(hào)X016X016I,高電平有效3.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:外設(shè)IO分配表(2)外設(shè)PLCNetSCADAIO類型,以PLC為主體輸入備用3X017X017I,高電平有效紅色指示燈Y000Y000O綠色指示燈Y001Y001O黃色指示燈Y002Y002O#1機(jī)器人急停信號(hào)Y003Y003O,低電平有效#2機(jī)器人急停信號(hào)#3機(jī)器人急停信號(hào)流水線伺服電機(jī)2使能Y004Y004O流水線伺服電機(jī)2運(yùn)行Y005Y005O流水線伺服電機(jī)1使能Y006Y006O流水線伺服電機(jī)1運(yùn)行Y007Y007O相機(jī)1光源控制Y013Y013O相機(jī)2光源控制Y014Y014O相機(jī)3光源控制Y015Y015O氣泵開關(guān)Y017Y017O3.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:外設(shè)IO分配表(3)外設(shè)PLCNetSCADAIO類型,以PLC為主體#1機(jī)器人電磁閥1Y020Y020O#1機(jī)器人電磁閥2Y021Y021O#1機(jī)器人電磁閥3Y022Y022O#1機(jī)器人電磁閥4Y023Y023O#2機(jī)器人電磁閥1Y024Y024O#2機(jī)器人電磁閥2Y025Y025O#2機(jī)器人電磁閥3Y026Y026O#2機(jī)器人電磁閥4Y027Y027O#2機(jī)器人電磁閥5Y030Y030O#3機(jī)器人電磁閥1Y033Y033O#3機(jī)器人電磁閥2Y034Y034O#3機(jī)器人電磁閥3Y035Y035O#3機(jī)器人電磁閥4Y036Y036O3.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:控制按鈕信號(hào)分配表(1)外設(shè)PLCPCNetSCADA紅色指示燈按鈕M2000M2000綠色指示燈按鈕M2001M2001黃色指示燈按鈕M2002M2002流水線伺服電機(jī)2使能按鈕M2004M2004流水線伺服電機(jī)2運(yùn)行按鈕M2005M2005流水線伺服電機(jī)1使能按鈕M2006M2006流水線伺服電機(jī)1運(yùn)行按鈕M2007M2007相機(jī)1光源控制按鈕M2013M2013相機(jī)2光源控制按鈕M2014M2014相機(jī)3光源控制按鈕M2015M2015氣泵開關(guān)按鈕M2017M2017#1機(jī)器人電磁閥1按鈕M2020M20203.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:控制按鈕信號(hào)分配表(2)外設(shè)PLCPCNetSCADA#1機(jī)器人電磁閥2按鈕M2021M2021#1機(jī)器人電磁閥3按鈕M2022M2022#1機(jī)器人電磁閥4按鈕M2023M2023#2機(jī)器人電磁閥1按鈕M2024M2024#2機(jī)器人電磁閥2按鈕M2025M2025#2機(jī)器人電磁閥3按鈕M2026M2026#2機(jī)器人電磁閥4按鈕M2027M2027#2機(jī)器人電磁閥5按鈕M2030M2030#3機(jī)器人電磁閥1按鈕M2033M2033#3機(jī)器人電磁閥2按鈕M2034M2034#3機(jī)器人電磁閥3按鈕M2035M2035#3機(jī)器人電磁閥4按鈕M2036M20363.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:機(jī)器人1對(duì)外設(shè)的控制請(qǐng)求信號(hào)分配表#1機(jī)器人對(duì)外設(shè)的控制請(qǐng)求ROBOTPLC機(jī)器人1電磁閥1控制dOutAction[0]D3026.7、M520機(jī)器人1電磁閥2控制dOutAction[1]D3026.8、M521機(jī)器人1電磁閥3控制dOutAction[2]D3026.9、M522機(jī)器人1電磁閥4控制dOutAction[3]D3026.A、M523#1機(jī)器人狀態(tài)ROBOTPLCNetSCADA準(zhǔn)備就緒dOutRobRdyD3026.0D3026:0加工原點(diǎn)dOutIsHomeD3026.1D3026:1運(yùn)行中dOutIsMovingD3026.6D3026:6暫停中dOutIsPauseD3026.3D3026:33.3.2控制信號(hào)列表:機(jī)器人1的狀態(tài)變量信號(hào)分配表3.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:對(duì)機(jī)器人1的手動(dòng)控制信號(hào)分配表#1機(jī)器人手動(dòng)控制ROBOTPLCNetSCADA通信重連無M2105M2105上電dInEnaPowerM2052、D3030.5M2052下電dInDisPowerM2055、D3030.4M2055運(yùn)行dInStartCycleM2085、D3030.0M2085暫停dInPauseCycleM2074、D3030.2M2074繼續(xù)dInRestartCycleM580、D3030.8M580停止dInStopCycleM2053、D3030.1M2053回加工原點(diǎn)dInResetRobM2054、D3030.3M20543.3設(shè)備連接關(guān)系3.3.2控制信號(hào)列表:PLC其他變量信號(hào)分配表變量名地址變量名地址MODBUS_TCP設(shè)置標(biāo)志M716MODBUS_TCP建立聯(lián)接標(biāo)志M5030機(jī)器人1有手動(dòng)控制數(shù)據(jù)的標(biāo)志M3030MODBUS連接狀態(tài)D3004機(jī)器人1數(shù)據(jù)清零M2080機(jī)器人1反饋回來的狀態(tài)數(shù)據(jù)D3026機(jī)器人1手動(dòng)下數(shù)據(jù)清零M2089發(fā)送給機(jī)器人1的控制數(shù)據(jù)D3030初始化標(biāo)志M3007緩存IP地址D3000~D3003急停標(biāo)志M3700緩存MBTMCON指令信息D4~D5緩存MBTMPDB指令信息D3230~D3233緩存MBTMODB指令信息D3012~D3014手動(dòng)控制數(shù)據(jù)清零計(jì)時(shí)器T34MODBUS_TCP斷開計(jì)時(shí)器T40數(shù)據(jù)清零計(jì)時(shí)器T12

3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(1)單擊物理IO(2)單擊ModbusIO配置3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(3)修改連接數(shù)3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(4)保存配置,目錄Controller1\usr\applicom\Modbus3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(5)ModbusIO變量列表(1)名稱類型地址大小客戶機(jī)訪問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機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(5)ModbusIO變量列表(2)名稱類型地址大小客戶機(jī)訪問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機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(6)創(chuàng)建所有的ModbusIO變量(1)3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(6)創(chuàng)建所有的ModbusIO變量(2)3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(7)保存并重啟SRS軟件使ModbusIO生效3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.1配置MODBUSIO(8)使用軟件Ftpsurfer把創(chuàng)建的modbus.xml文件(存在于單元路徑Controller1\usr\applicom\Modbus中)上傳到CS8C控制器中,路徑為usr/applicom/modbus。3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.2配置全局?jǐn)?shù)據(jù):全局變量列表(1)變量類型描述值fBallPalletframe鋼珠托盤的工件坐標(biāo)系X=-167.61,Y=-145.68,Z=47.73,Rx=0.17,Ry=-0.33,Rz=-89.92pBallPickPos1point建立在fBallPallet坐標(biāo)系下的坐標(biāo)變量X=23.62,Y=271,Z=1.75,Rx=179.67,Ry=0.17,Rz=-47.57Shoulder=sampBallPickPos2point建立在fBallPallet坐標(biāo)系下的坐標(biāo)變量X=128.37,Y=264.92,Z=1.34,Rx=179.67,Ry=0.17,Rz=-75.31Shoulder=samejHomejoint建立在joint坐標(biāo)系下的坐標(biāo)變量,表示加工原點(diǎn)J1=-101.74,J2=-32.846,J3=140.81,J4=64.56023.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.2配置全局?jǐn)?shù)據(jù):全局變量列表(2)變量類型描述值mFastSpeedmdesc快速速度變量速度(%)=100,混合=關(guān)節(jié)mMiddleSpeedmdesc中速速度變量速度(%)=60,混合=關(guān)節(jié)mSlowSpeedmdesc慢速速度變量速度(%)=20,混合=關(guān)節(jié)trZtrsf幾何變換變量,在Z軸方向上的偏置量X=0,Y=0,Z=-50,Rx=0,Ry=0,Rz=0bThereIsMotionbool代表機(jī)器人1是否有運(yùn)動(dòng)任務(wù)falsenTaskIndexnum代表運(yùn)動(dòng)任務(wù)的編號(hào),0:無,1:單次點(diǎn)到點(diǎn)運(yùn)動(dòng),2:循環(huán)點(diǎn)到點(diǎn)運(yùn)動(dòng),3:回加工原點(diǎn)運(yùn)動(dòng)0dInDisPowerdio遠(yuǎn)程下電ModbusSrv-0\Modbus-Bit\dInDisPower3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.2配置全局?jǐn)?shù)據(jù):全局變量列表(3)變量類型描述值dInEnaPowerdio遠(yuǎn)程上電ModbusSrv-0\Modbus-Bit\dInEnaPowerdInPauseCycledio機(jī)器人1暫停ModbusSrv-0\Modbus-Bit\dInPauseCycledInResetRobdio機(jī)器人1回加工原點(diǎn)ModbusSrv-0\Modbus-Bit\dInResetRobdInRestartCycledio機(jī)器人1繼續(xù)ModbusSrv-0\Modbus-Bit\dInRestartCycledInStartCycledio機(jī)器人1運(yùn)行ModbusSrv-0\Modbus-Bit\dInStartCycledInStopCycledio機(jī)器人1停止ModbusSrv-0\Modbus-Bit\dInStopCycledOutIsHomedio機(jī)器人1在加工原點(diǎn)ModbusSrv-0\Modbus-Bit\dOutIsHomedOutIsPausedio機(jī)器人1暫停中ModbusSrv-0\Modbus-Bit\dOutIsPause3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.2配置全局?jǐn)?shù)據(jù):全局變量列表(4)變量類型描述值dOutMovingdio機(jī)器人1運(yùn)行中ModbusSrv-0\Modbus-Bit\dOutMovingdOutRobRdydio機(jī)器人1準(zhǔn)備就緒ModbusSrv-0\Modbus-Bit\dOutRobRdy3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.2配置全局?jǐn)?shù)據(jù):創(chuàng)建dio變量,以dInDisPower為例(1)定位到dio變量dInDisPower,按F2(連接)(2)按F6(編輯),進(jìn)入物理IO選擇界面(3)

F8(OK)完成物理IO選擇(4)按F8(OK)完成物理IO連接3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.2配置全局?jǐn)?shù)據(jù):創(chuàng)建dio變量,創(chuàng)建完畢后3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序在缺省程序start、stop的基礎(chǔ)上增加GoHome、HMI、Init、IOCmd、KeyScan、MotionMNG、P2PMove、P2PmoveForever等8個(gè)子程序3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:start//對(duì)用戶界面進(jìn)行初始化

callHMI()

//對(duì)變量、電源和初始位置進(jìn)行初始化

callInit()

//Whenalltheinstructionsintheprocessfunctionofataskfinish,thetaskwillbekilledbythesystem

//創(chuàng)建一個(gè)任務(wù)對(duì)IO變量進(jìn)行監(jiān)視并作相應(yīng)的處理

taskCreate

"IOCmd",90,IOCmd()

//創(chuàng)建一個(gè)任務(wù)對(duì)用戶界面的按鍵進(jìn)行監(jiān)視并作相應(yīng)的處理

taskCreate

"KeyScanTask",95,KeyScan()

//創(chuàng)建一個(gè)任務(wù)對(duì)機(jī)械臂的運(yùn)動(dòng)進(jìn)行管理

taskCreate

"MotionMngTask",88,MotionMNG()3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:start3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:HMI

//使示教器切換到用戶窗口

userPage()

//清空用戶窗口

cls()

//使光標(biāo)定位到第0行地0列

gotoxy(0,0)

//從光標(biāo)所在的位置輸出信息并使光標(biāo)自動(dòng)切換到下一行的第0列

putln("F1torunP2Pmoveonce")

//使光標(biāo)定位到第1行第0列

gotoxy(0,1)

putln("F2torunP2Pmoverepeatly")3.4#1機(jī)器人Ts40的程序設(shè)計(jì)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機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:Init

//復(fù)位輸出變量

//ifreadydOutRobRdy=false

//AtstartpositiondOutIsHome=false

//robotismovingdOutMoving=false

//InpausedOutIsPause=false

//復(fù)位中間變量bThereIsMotion=false

nTaskIndex=03.4#1機(jī)器人Ts40的程序設(shè)計(jì)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機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:Init//如果機(jī)器人已經(jīng)處于就緒狀態(tài)則使手臂運(yùn)行到加工原點(diǎn)

ifdOutRobRdy==true

and

taskStatus("GoHomeTask")==-1

taskCreate

"GoHomeTask",10,GoHome()

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

endIf3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:GoHome

//使手臂運(yùn)動(dòng)到加工原點(diǎn)dOutIsHome=falsedOutMoving=true

movej(jHome,flange,mSlowSpeed)

waitEndMove()dOutMoving=falsedOutIsHome=true3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:IOCmd

while

true

//上位機(jī)發(fā)給機(jī)器人的命令可能會(huì)被重復(fù)處理,因此必須做防重復(fù)的操作

//上電操作

ifdInEnaPower==true

and

dOutRobRdy==false

and

workingMode()==4

if

!isPowered()

enablePower()

if

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

autoConnectMove(true)3.4#1機(jī)器人Ts40的程序設(shè)計(jì)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機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:IOCmd

dOutMoving=false

//下電以后如果原來在工作則應(yīng)該作復(fù)位動(dòng)作

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機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:IOCmdif

taskStatus("GoHomeTask")>=0

taskKill("GoHomeTask")

endIf

resetMotion()

endIf

elsedOutRobRdy=true

endIf

endIf

endIf

3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:IOCmd

//上位機(jī)按了運(yùn)行按鈕

ifdInStartCycle==true

and

dOutRobRdy==true

and

dOutIsHome==true

ifdOutIsPause==false

andnTaskIndex==0nTaskIndex=1

endIf

endIf

//上位機(jī)按了回加工原點(diǎn)按鈕

ifdInResetRob==true

anddOutRobRdy==true

and

dOutIsHome==false

ifdOutIsPause==true

ornTaskIndex==0nTaskIndex=3dOutIsPause=false

endIf

endIf3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:IOCmd

//上位機(jī)按了暫停按鈕

ifdInPauseCycle==true

and

bThereIsMotion==true

and

dOutIsPause==falsedOutIsPause=truedOutMoving=false

stopMove()

gotoxy(33,13)

put("Pause")

endIf

//上位機(jī)按了繼續(xù)按鈕

ifdInRestartCycle==true

and

bThereIsMotion==true

and

dOutIsPause==true3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:IOCmd

dOutIsPause=falsedOutMoving=true

restartMove()

gotoxy(33,13)

put("Running")

endIf

//上位機(jī)按了停止按鈕

ifdInStopCycle==true

and

bThereIsMotion==truedOutIsPause=falsedOutMoving=false

bThereIsMotion=false3.4#1機(jī)器人Ts40的程序設(shè)計(jì)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機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:IOCmd3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:KeyScan

while

truenKeyValue=getKey()

ifnKeyValue==271

ornKeyValue==272

//按了F1(單次點(diǎn)到點(diǎn)運(yùn)動(dòng))或F2(反復(fù)點(diǎn)到點(diǎn)運(yùn)動(dòng))

ifdOutIsPause==false

andnTaskIndex==0

anddOutRobRdy==true

and

dOutIsHome==truenTaskIndex=nKeyValue-270

endIf

elseIfnKeyValue==273

//按了F3(回到加工原點(diǎn))

if

(dOutIsPause==true

ornTaskIndex==0)

anddOutRobRdy==true

and

dOutIsHome==false

nTaskIndex=33.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:KeyScan

dOutIsPause=false

endIf

elseIfnKeyValue==274

//按了F4(暫停或者繼續(xù)手臂運(yùn)動(dòng))

ifbThereIsMotion==true

ifdOutIsPause==falsedOutIsPause=truedOutMoving=false

stopMove()

gotoxy(33,13)

put("Pause")

elsedOutIsPause=falsedOutMoving=true

restartMove()3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:KeyScan

gotoxy(33,13)

put("Running")

endIf

else

popUpMsg("Thereisnomotion")

endIf

elseIfnKeyValue==275

//按了F5(停止手臂運(yùn)動(dòng))dOutIsPause=falsedOutMoving=false

ifbThereIsMotion==truebThereIsMotion=false

stopMove()

gotoxy(0,13)

put("Nomotion")3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:KeyScanif

taskStatus("GoHomeTask")>=0

taskKill("GoHomeTask")

endIf

resetMotion()

else

popUpMsg("Thereisnomotion")

endIf

endIf

delay(0)

endWhile3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:MotionMNG

//手臂運(yùn)動(dòng)管理

while

true

//判斷當(dāng)前是否存在手臂運(yùn)動(dòng)的任務(wù)nTemp=taskStatus("P2PMoveTask")

nTemp=nTemp+taskStatus("P2PMove2Task")

nTemp=nTemp+taskStatus("GoHomeTask")

//刷新用戶界面顯示

if

(nTemp>-3)

//存在手臂運(yùn)動(dòng)的任務(wù)

if

dOutIsPause==true

anddOutMoving==truedOutMoving=false

endIf

else

3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:MotionMNG//不存在手臂運(yùn)動(dòng)的任務(wù)

if

(bThereIsMotion==true)

gotoxy(0,13)

put("Noaction")bThereIsMotion=false

endIfif

dOutIsPause==truerestartMove()

endIfdOutIsPause=falsedOutMoving=false

endIf

if

(bThereIsMotion==false)

3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:MotionMNG//當(dāng)前不存在手臂運(yùn)動(dòng)的任務(wù)

if

(nTaskIndex==1)

//用戶要求創(chuàng)建手臂單次點(diǎn)到點(diǎn)運(yùn)動(dòng)任務(wù)

taskCreate

"P2PMoveTask",10,P2PMove()

gotoxy(0,13)

put("P2Pmoveonce,Running")bThereIsMotion=true

elseIf

(nTaskIndex==2)

//用戶要求創(chuàng)建手臂反復(fù)點(diǎn)到點(diǎn)運(yùn)動(dòng)任務(wù)

taskCreate

"P2PMove2Task",10,

P2PMoveForever()

gotoxy(0,13)

put("P2Pmoverrepeatly,Running")bThereIsMotion=true

endIf

endIf3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:MotionMNG

if

(nTaskIndex==3

and

taskStatus("GoHomeTask")==-1)

//當(dāng)前沒有處于回加工原點(diǎn)的狀態(tài)且用戶要求創(chuàng)建回

加工原點(diǎn)的運(yùn)動(dòng)任務(wù)

if

(bThereIsMotion==true)

stopMove()

if

taskStatus("P2PMoveTask")>=0

taskKill("P2PMoveTask")

endIf

if

taskStatus("P2PMove2Task")>=0

taskKill("P2PMove2Task")

endIf

resetMotion()

endIf

3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:MotionMNGtaskCreate

"GoHomeTask",10,GoHome()

gotoxy(0,13)

put("Gohome,Running")bThereIsMotion=true

endIfnTaskIndex=0

delay(0)

endWhile3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:P2PMove

//實(shí)現(xiàn)手臂單次點(diǎn)到點(diǎn)運(yùn)動(dòng),最終回到加工原點(diǎn)dOutIsHome=falsedOutMoving=true

//去加工原點(diǎn)

movej(jHome,flange,mFastSpeed)

waitEndMove()

//去第一個(gè)加工點(diǎn)的正上方pAppro=appro(pBallPickPos1,trZ)

movej(pAppro,flange,mFastSpeed)

//直線移動(dòng)到第一個(gè)加工點(diǎn)

movel(pBallPickPos1,flange,mSlowSpeed)

waitEndMove()

//直線返回第一個(gè)加工點(diǎn)的正上方

movel(pAppro,flange,mSlowSpeed)3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:P2PMove

//去第二個(gè)加工點(diǎn)的正上方pAppro=appro(pBallPickPos2,trZ)

movej(pAppro,flange,mFastSpeed)

//直線移動(dòng)到第二個(gè)加工點(diǎn)

movel(pBallPickPos2,flange,mSlowSpeed)

waitEndMove()

//直線返回第二個(gè)加工點(diǎn)的正上方

movel(pAppro,flange,mSlowSpeed)

//返回加工原點(diǎn)

callGoHome()3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.3編輯程序:P2PMoveForever

//反復(fù)調(diào)用手臂點(diǎn)到點(diǎn)的運(yùn)動(dòng)

while

true

callP2PMove()

delay(0)

endWhile3.4#1機(jī)器人Ts40的程序設(shè)計(jì)3.4.4程序運(yùn)行效果3.5PLC程序的設(shè)計(jì)3.5.1建立PLC工程文件建立一個(gè)海得PLC的工程,命名為為EPLCExample3,PLC的型號(hào)和硬件配置和案例1相同。3.5PLC程序的設(shè)計(jì)3.5.2創(chuàng)建變量(1)3.5PLC程序的設(shè)計(jì)3.5.2創(chuàng)建變量(2)3.5PLC程序的設(shè)計(jì)3.5.2創(chuàng)建變量(3)3.5PLC程序的設(shè)計(jì)3.5.2創(chuàng)建變量(4)3.5PLC程序的設(shè)計(jì)3.5.2創(chuàng)建變量(5)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:Main3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:初始化(P1)程序3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:數(shù)字量輸入輸出(P2)程序(1)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:數(shù)字量輸入輸出(P2)程序(2)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:數(shù)字量輸入輸出(P2)程序(3)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:急停管理(P3)程序3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(1)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(2)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(3)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(4)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(5)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(6)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(7)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序(8)3.5PLC程序的設(shè)計(jì)3.5.3創(chuàng)建程序:機(jī)器人1通訊管理(P4)程序3.6NetSCADA程序的設(shè)計(jì)3.6.1建立NetSCADA工程文件建立一個(gè)NetSCADA項(xiàng)目,命名為NetSCADAExample3。3.6NetSCADA程序的設(shè)計(jì)3.6.2建立OPC驅(qū)動(dòng)并配置數(shù)據(jù)塊3.6NetSCADA程序的設(shè)計(jì)3.6.3配置變量在案例1的基礎(chǔ)上,再建立一個(gè)自定義變量組“機(jī)器人1手動(dòng)控制變量”3.6NetSCADA程序的設(shè)計(jì)3.6.4創(chuàng)建數(shù)值映射表本案例所需要的數(shù)值映射表和案例1一致,具體如表1.5.2所列。3.6NetSCADA程序的設(shè)計(jì)3.6.5編輯用戶界面窗口本案例需要?jiǎng)?chuàng)建兩個(gè)用戶界面窗口,一個(gè)是外設(shè)監(jiān)控界面,名稱為“ShouDong”(該界面和案例1基本相同),另一個(gè)是機(jī)器人手動(dòng)控制界面,名稱為“MainPage”。3.6.5編輯用戶界面窗口外設(shè)監(jiān)控界面(ShouDong)3.6.5編輯用戶界面窗口外設(shè)監(jiān)控界面(ShouDong)屬性設(shè)置3.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì)(

MainPage)3.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì)(

MainPage)3.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì):(1)背景的設(shè)計(jì)圖像組件3.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì):(2)界面切換按鈕的設(shè)計(jì)該按鈕需要設(shè)置一個(gè)事件——鼠標(biāo)點(diǎn)擊左鍵的動(dòng)作,該動(dòng)作是打開窗口ShouDong。3.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì):(2)界面切換按鈕的設(shè)計(jì)該按鈕需要設(shè)置一個(gè)事件——鼠標(biāo)點(diǎn)擊左鍵的動(dòng)作,該動(dòng)作是打開窗口ShouDong。3.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì):(3)狀態(tài)指示標(biāo)志的設(shè)計(jì)橢圓的填充屬性設(shè)置

準(zhǔn)備就緒原點(diǎn)運(yùn)行中暫停中表達(dá)式Rob1RdyRob1IsHomeRob1IsMovingRob1IsPause背景色(白色)

色調(diào):160,飽和度:0,亮度:240;紅:255,綠:255,藍(lán):255實(shí)體填充顏色(綠色)

色調(diào):80,飽和度:240,亮度:120;紅:0,綠:255,藍(lán):03.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì):(4)普通按鈕的設(shè)計(jì)灰色設(shè)置為:色調(diào)160,飽和度0,亮度206,紅219,綠219,藍(lán)219;藍(lán)色設(shè)置為:色調(diào)160,飽和度240,亮度120,紅0,綠0,藍(lán)255。按鈕顯示表達(dá)式填充事件MODBUS通信重連D3004!=2表達(dá)式:Rob1ModbusReconnect(范圍:0、1)背景色:灰色填充色:藍(lán)色鼠標(biāo)左鍵按下,開關(guān)賦值:Rob1ModbusReconnect1號(hào)機(jī)器人上電!Rob1Rdy表達(dá)式:Rob1EnaPower(范圍:0、1)背景色:灰色填充色:藍(lán)色鼠標(biāo)左鍵按下,絕對(duì)賦值:Rob1EnaPower=13.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì):(4)普通按鈕的設(shè)計(jì)按鈕顯示表達(dá)式填充事件1號(hào)機(jī)器人下電Rob1Rdy表達(dá)式:Rob1DisPower(范圍:0、1)背景色:灰色填充色:藍(lán)色鼠標(biāo)左鍵按下,絕對(duì)賦值:Rob1DisPower=11號(hào)機(jī)器人運(yùn)行Rob1Rdy&&Rob1IsHome表達(dá)式:Rob1StartCycle(范圍:0、1)背景色:灰色填充色:藍(lán)色鼠標(biāo)左鍵按下,開關(guān)賦值:Rob1StartCycle1號(hào)機(jī)器人暫停Rob1IsMoving表達(dá)式:Rob1PauseCycle(范圍:0、1)背景色:灰色填充色:藍(lán)色鼠標(biāo)左鍵按下,絕對(duì)賦值:Rob1PauseCycle=13.6.5編輯用戶界面窗口機(jī)器人手動(dòng)控制界面的設(shè)計(jì):(4)普通按鈕的設(shè)計(jì)按鈕顯示表達(dá)式填充事件1號(hào)機(jī)器人繼續(xù)Rob1IsPause表達(dá)式:Rob1RestartCycle(范圍:0、1)背景色:灰色填充色:藍(lán)色鼠標(biāo)左鍵按下,絕對(duì)賦值:Rob1RestartCycle=11號(hào)機(jī)器人停止Rob1IsPause||Rob1IsMoving無鼠標(biāo)左鍵按下,開關(guān)賦值:Rob1StopCycle1號(hào)機(jī)器人會(huì)加工原點(diǎn)Rob1Rdy&&(!Rob1IsHome)無鼠標(biāo)左鍵按下,開關(guān)賦值:Rob1GoHome3.6NetSCADA程序的設(shè)計(jì)3.6.6設(shè)置運(yùn)行參數(shù)把程序運(yùn)行時(shí)自動(dòng)打開的窗口設(shè)為MainPage.gpi。3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:call3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:userPage、cls3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:gotoxy3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:put、putln3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:popUpMsg3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:getKey3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:workingMode、isPowered3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:enablePower、disablePower3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:watch3.7相關(guān)知識(shí)3.7.1機(jī)器人相關(guān)指令解釋:wait、delay3.7相關(guān)知識(shí)3.7.1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論