版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 含子女撫養(yǎng)的離婚協(xié)議書模板
- 企業(yè)運(yùn)營管理咨詢協(xié)議樣本
- 2024工程挖掘機(jī)租賃合同標(biāo)準(zhǔn)范文
- 新住宅按揭貸款合同樣本
- 2024錄制合同模板
- 2024廣告刊登協(xié)議范本
- 動(dòng)物醫(yī)院聘用合同2024年
- 省級(jí)代理合作協(xié)議書的注意事項(xiàng)
- 我國自學(xué)考試網(wǎng)上輔導(dǎo)協(xié)議書樣本大全
- 2023年高考地理第一次模擬考試卷-(河北A卷)(全解全析)
- 空調(diào)安裝施工方案及空調(diào)安裝現(xiàn)場管理辦法
- 甘肅省黃金礦產(chǎn)資源概況
- 診所消防安全應(yīng)急方案
- 譯林版一年級(jí)上冊(cè)英語全冊(cè)課件
- 中小學(xué)德育工作指南考核試題及答案
- 凈現(xiàn)值NPV分析和總結(jié)
- 國網(wǎng)基建各專業(yè)考試題庫大全-質(zhì)量專業(yè)-中(多選題匯總)
- LTC流程介紹完整版
- 飼料加工系統(tǒng)粉塵防爆安全規(guī)程
- 一年級(jí)上冊(cè)美術(shù)課件-第11課-花兒寄深情-▏人教新課標(biāo)
- 植物的象征意義
評(píng)論
0/150
提交評(píng)論