Thank you for your answer. but my question is, is it possible to do a communication between robostudio and Siemens PLC?
Posts by Abhi123
-
-
Siemens PLC s7-1500 and virtual robot to pick and place.
-
Hello all,
I have question regarding communication between ABB robot and PLC. is it posible, if i do robot programming in Robostudio and then connect to PLC via TCP/IP or OPC UA. so, is Robostudio able to transfer the I/O to PLC?
Thank you.
-
Hello everyone,
I am doing robot pick and place robot programming in KUKA.Sim software. I have one question about programming. I have to pick 8 boxes one by one from different positions. And therefore
I have 32 different positions of boxes as I have 4 different possibilities of stacking boxes. To pick the box, everytime the box coordinates are received from Camera to PLC and PLC to robot. so, my question is, how can I write a function for that in KUKA.Sim software?I have attached one photo here.
Thank you. -
Thank you for your answer. That means, First, I can give the dimensions and value to the robot arm in the officelite software and then simulate it in KUKA.sim. Right?
how should i give the robot arm unknown position in officelite.
Thank you
-
I am new to KUKA robot programming. I am working on one project and it has robot programming. The problem is, I don't have a real robot and controller because the project is just an idea. Therefore, I need to do a robot programming wihout robot and controller. I have installed the Workvisual software and I know about the KRL syntax but the problem is, I don't know how to put it in the workvisual .
One more problem is, I don't know how can I put robot arm position without knowing in real.
We have to pick and place around 40-45 kg so, I had select the KR 50 R2500 robot with KR C4 controller.
Any suggestion would be very helpful.
Thank you
-
Hello,
I am new to KUKA robot programming. I have a project to program a KUKA robot for pick and place. can anyone suggest me that what information I need before starting the programming? for example, Which controller we are using and then...
thanks.
-
Hello,
Area.DriveIn = TRUE
Area.DriveOut = TRUE
CONTINUE
WAIT FOR diGrp_GS OR diGrp_AS
I have 2 question regarding above program.
1. Area.DriveIn / Out = what does it mean apart from it is used in manual mode.
2. diGrp GS OR diGrp AS = What is the meaning of GS and AS in this grasp/gripper.
thanks.
-
I had receive only program files from my boss.
-
Thanks for your reply.
if you have BAS.SRC file then can you please send me.
Abhi
-
Thank you for your answer. but i want to need a little explanation about below part.
1.
IF ($MODE_OP==#T1) OR ($MODE_OP==#T2) THEN
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
ENDIF
2.
Message_Write(1,0,$PRO_IP.SNR, $PRO_NAME[])
3.
IF ($MODE_OP==#T1) OR ($MODE_OP==#T2) THEN
INTERRUPT DECL 10 WHEN NOT $CYCFLAG[1] DO I_Ueberwachung(2)
Area.DriveIn = TRUE
Area.DriveOut = TRUE
ENDIF
4.
$TIMER[1] = 0 ;Timer ruecksetzen
$TIMER_STOP[1] = FALSE ;Timer starten
BAS(#VEL_PTP, 100)
BAS(#ACC_PTP, 100)
BAS(#VEL_CP, 2)
BAS(#ACC_CP, 100)
5.
$BWDSTART = FALSE
PDAT_ACT = PPDAT3
FDAT_ACT = FEndPos_1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XEndPos_1
Thanks.
-
can someone please explain these program as i am very new to KUKA program.
&ACCESS RVP1
&REL 75
&PARAM DISKPATH = KRC:\R1\Program
DEF p1_Unl_Modula (iPosNr :IN)
;FOLD Declaration
DECL INT iPosNr
;ENDFOLD (Declaration)
;FOLD INI;%{PE}
;FOLD BASISTECH INI
IF ($MODE_OP==#T1) OR ($MODE_OP==#T2) THEN
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
ENDIF
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here
;=============================
; IO setup
SWITCH iPosNr
CASE 1
Area.Release_IO_Nr = 241
CASE 2
Area.Release_IO_Nr = 241
DEFAULT
LOOP
Message_Write(1,0,$PRO_IP.SNR, $PRO_NAME[]) ; Logik fehler!!!
HALT
ENDLOOP
ENDSWITCH
;=============================
IF ($MODE_OP==#T1) OR ($MODE_OP==#T2) THEN
INTERRUPT DECL 10 WHEN NOT $CYCFLAG[1] DO I_Ueberwachung(2)
Area.DriveIn = TRUE
Area.DriveOut = TRUE
ENDIF
$TIMER[1] = 0 ;Timer ruecksetzen
$TIMER_STOP[1] = FALSE ;Timer starten
BAS(#VEL_PTP, 100)
BAS(#ACC_PTP, 100)
BAS(#VEL_CP, 2)
BAS(#ACC_CP, 100)
;ENDFOLD (USER INI)
;ENDFOLD (INI)
;**************************************************;
; Unload Modula ;
;**************************************************;
;FOLD Test Start Condition
IF NOT diACK_Wrfl_rot==TRUE THEN
doWrfl_gruen=FALSE
doWrfl_rot=TRUE
WAIT FOR diACK_Wrfl_rot==TRUE
doWrfl_rot=FALSE
ENDIF
IF ($MODE_OP==#EX) THEN
doWrfl_rot=TRUE
ENDIF
;ENDFOLD (Test Start Condition)
;FOLD Position calculation
SWITCH iPosNr
CASE 1
xEnd_Position = XEndPos_1
CASE 2
xEnd_Position = XEndPos_2
DEFAULT
Loop
Message_Write(1,0,$PRO_IP.SNR, $PRO_NAME[])
ENDLOOP
ENDSWITCH
; Movement In to the station
InPos1 = FrameAdd(xEnd_Position,{X 0,Y 0,Z 30,A 0,B 0,C 0,E1 0,S 0,T 0})
InPos2 = FrameAdd(InPos1, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
InPos3 = FrameAdd(InPos2, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
InPos4 = FrameAdd(InPos3, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
InPos5 = FrameAdd(InPos4, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
; Movement Out from the station
OutPos1 = FrameAdd(xEnd_Position, {X 0,Y 0,Z 30,A 0,B 0,C 0,E1 0,S 0,T 0})
OutPos2 = FrameAdd(OutPos1, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
OutPos3 = FrameAdd(OutPos2, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
OutPos4 = FrameAdd(OutPos3, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
OutPos5 = FrameAdd(OutPos4, {X 0,Y 0,Z 0,A 0,B 0,C 0,E1 0,S 0,T 0})
;ENDFOLD (Position calculation)
;*************************************
;FOLD Touch up End points
IF FALSE THEN
;FOLD PTP EndPos_1 Vel=100 % PDAT3 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=EndPos_1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT3; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT3
FDAT_ACT = FEndPos_1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XEndPos_1
;ENDFOLD
;FOLD PTP EndPos_2 Vel=100 % PDAT4 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=EndPos_2; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT4; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT4
FDAT_ACT = FEndPos_2
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XEndPos_2
;ENDFOLD
HALT
ENDIF ;Inbetriebnahme
;ENDFOLD (Touch up End points)
;*************************************
CONTINUE
IF Area.DriveIN THEN
;FOLD PTP pHome1 Vel=100 % PDAT1 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=pHome1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT1; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT1
FDAT_ACT = FpHome1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XpHome1
;ENDFOLD
ENDIF
;FOLD PTP pVor1_1 CONT Vel=100 % PDAT5 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=pVor1_1; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT5; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT5
FDAT_ACT = FpVor1_1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XpVor1_1 C_Dis
;ENDFOLD
CONTINUE
Monitor_ReleaseArea_ON()
;Drive In to Station
;------------------------
BAS(#BASE,0)
BAS(#TOOL,1)
BAS(#VEL_CP,1.0)
LIN InPos3 C_DIS
;========================
LIN InPos2 C_DIS
;========================
LIN InPos1 C_DIS
;========================
LIN xEnd_Position
;*************************************
;FOLD Robot in Unloading Position
WAIT SEC 0.0
doWrfl_rot=FALSE
doWrfl_gruen=TRUE
WAIT FOR diACK_Wrfl_gruen==TRUE
WAIT SEC 0.2
BAS(#TOOL,1)
;ENDFOLD (Robot in Unloading Position)
;*************************************
;========================
LIN OutPos1 C_DIS
;========================
$VEL.CP=2.0
LIN OutPos2 C_DIS
;========================
TRIGGER WHEN DISTANCE=1 DELAY=0 DO Monitor_ReleaseArea_OFF() PRIO=-1
LIN OutPos3 C_DIS
;FOLD PTP pVor1_2 CONT Vel=100 % PDAT6 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=pVor1_2; Kuka.BlendingEnabled=True; Kuka.MoveDataPtpName=PDAT6; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT6
FDAT_ACT = FpVor1_2
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XpVor1_2 C_Dis
;ENDFOLD
CONTINUE
IF Area.DriveOut THEN
;FOLD PTP pHome2 Vel=100 % PDAT2 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=pHome2; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT2; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT2
FDAT_ACT = FpHome2
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XpHome2
;ENDFOLD
ENDIF
END
thank you
-
Thank you for your reply. Actually, I got a KUKA robot pick-and-place program from my boss and have to find out how the robot executes the process. I have .dat and .src file so, from which file do I have to read the main program so, i can get the process of robot.
Abhi
-
Hello,
can someone please explain me this part of program as I am a new to KUKA.
;FOLD PTP EndPos_1 Vel=100 % PDAT3 Tool[1] Base[0] ;%{PE}
;FOLD Parameters ;%{h}
;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.old; Kuka.IsGlobalPoint=False; Kuka.PointName=EndPos_1; Kuka.BlendingEnabled=False; Kuka.MoveDataPtpName=PDAT3; Kuka.VelocityPtp=100; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=PTP
;ENDFOLD
$BWDSTART = FALSE
PDAT_ACT = PPDAT3
FDAT_ACT = FEndPos_1
BAS(#PTP_PARAMS, 100.0)
SET_CD_PARAMS (0)
PTP XEndPos_1
;ENDFOLD