Posts by miden
-
-
normally one would simply swap bytes in WoV while mapping IO. WorkVisual has tools for that.
WorkVisual is unsupported in KRC2, as I know.
I wrote:
To transmit +/- real from Siemens S7-1200 to Kuka KRC2, you need...
-
Good day, dear specialists.
Does anyone have experience using the RSI object ST_VEL?
I need increase/decrease TCP speed from start to end point. I'm work with profinet between KRC2, KSS5.5 and Siemens S7-1200(CPU1214) in external mode.
My network and program work good. Additionaly, I using object ST_PATHCORR. It's OK. But when I trying use ST_VEL - system variable $OV_PRO remains unchanged when I send 1-100. But when I send 0 - $OV_PRO takes 66%.
What am I doing wrong?
My code:
Code
Display More&ACCESS RVO &REL 63 &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe &PARAM EDITMASK = * DEF shl3( ) DECL RSIERR RET DECL INT obj1,obj2,obj3,obj4,obj5 DECL REAL GAIN ;FOLD INI ;FOLD BASISTECH INI GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( ) INTERRUPT ON 3 BAS (#INITMOV,0 ) ;ENDFOLD (BASISTECH INI) ;FOLD USER INI ;Make your modifications here ;ENDFOLD (USER INI) ;ENDFOLD (INI) $ADVANCE=3 INTERRUPT DECL 91 WHEN contact DO GETPOS() GAIN=0.00003 L6PosOk=FALSE RsiStop=FALSE EndPosition_X=REAL_TO_INT(XEndPosition.X) EndPosition_Y=REAL_TO_INT(XEndPosition.Y) EndPosition_Z=REAL_TO_INT(XEndPosition.Z) RET=ST_DIGIN(obj1,0,250,5,RSIUNIT_No) RET=ST_P(obj2,0,obj1,1,GAIN,RSIUNIT_M) RET=ST_PATHCORR(obj3,0) RET=ST_NEWLINK(obj2,1,obj3,3) RET=ST_SETPARAM(obj3,3,-300) ;Min corr in Z:-300 mm RET=ST_SETPARAM(obj3,9,300) ;Max corr in Z:+300 mm RET=ST_DIGIN(obj4,0,266,5,RSIUNIT_No) RET=ST_VEL(obj5,0,obj4,1) ;FOLD PTP HOME Vel=10 % DEFAULT;%{PE}%R 5.5.32,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:10, 7:DEFAULT $BWDSTART=FALSE PDAT_ACT=PDEFAULT FDAT_ACT=FHOME BAS(#PTP_PARAMS,10) $H_POS=XHOME PTP XHOME ;ENDFOLD ;1st POINT before contact ;=================================== ;FOLD LIN StartPosition Vel=0.05 m/s CPDAT1 Tool[1]:tool_1 Base[1]:base_1;%{PE}%R 5.5.32,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:StartPosition, 3:, 5:0.05, 7:CPDAT1 $BWDSTART=FALSE LDAT_ACT=LCPDAT1 FDAT_ACT=FStartPosition BAS(#CP_PARAMS,0.05) LIN XStartPosition ;ENDFOLD ;=================================== INTERRUPT ON 91 SEARCH () $ADVANCE = 3 INTERRUPT OFF 91 ;start RSI RET=ST_ON1(#TTS,1) ;MAKE USER POINTS MODIFICATIONS HERE ;ANOTHER PONTS ;=================================== ;FOLD LIN P30 CONT Vel=0.003 m/s CPDAT16 Tool[1]:tool_1 Base[1]:base_1;%{PE}%R 5.5.32,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P30, 3:C_DIS, 5:0.003, 7:CPDAT16 $BWDSTART=FALSE LDAT_ACT=LCPDAT16 FDAT_ACT=FP30 BAS(#CP_PARAMS,0.003) LIN XP30 C_DIS ;ENDFOLD ;FOLD LIN P29 CONT Vel=0.003 m/s CPDAT15 Tool[1]:tool_1 Base[1]:base_1;%{PE}%R 5.5.32,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P29, 3:C_DIS, 5:0.003, 7:CPDAT15 $BWDSTART=FALSE LDAT_ACT=LCPDAT15 FDAT_ACT=FP29 BAS(#CP_PARAMS,0.003) LIN XP29 C_DIS ;ENDFOLD ;FOLD LIN P31 CONT Vel=0.003 m/s CPDAT17 Tool[1]:tool_1 Base[1]:base_1;%{PE}%R 5.5.32,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P31, 3:C_DIS, 5:0.003, 7:CPDAT17 $BWDSTART=FALSE LDAT_ACT=LCPDAT17 FDAT_ACT=FP31 BAS(#CP_PARAMS,0.003) LIN XP31 C_DIS ;ENDFOLD ;FOLD LIN EndPosition CONT Vel=0.003 m/s CPDAT11 Tool[1]:tool_1 Base[1]:base_1;%{PE}%R 5.5.32,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:EndPosition, 3:C_DIS, 5:0.003, 7:CPDAT11 $BWDSTART=FALSE LDAT_ACT=LCPDAT11 FDAT_ACT=FEndPosition BAS(#CP_PARAMS,0.003) LIN XEndPosition C_DIS ;ENDFOLD ;================================== ;stop RSI RET=ST_OFF() PULSE(RsiStop, TRUE,0.1) ;FOLD PTP HOME Vel=10 % DEFAULT;%{PE}%R 5.5.32,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:HOME, 3:, 5:10, 7:DEFAULT $BWDSTART=FALSE PDAT_ACT=PDEFAULT FDAT_ACT=FHOME BAS(#PTP_PARAMS,10) $H_POS=XHOME PTP XHOME ;ENDFOLD END DEF GETPOS() PULSE(L6PosOk, TRUE,0.1) BRAKE RESUME END DEF SEARCH() $ADVANCE = 0 $VEL.CP=INT_TO_REAL(V9) LIN_REL {X +300} #TOOL END
-
Good day.
For connection with Siemens S7-1200
To transmit +/- real from Siemens S7-1200 to Kuka KRC2, you need to transmit a dword from Siemens, mirror it(DWORD) and mirror the bits in each byte(in DWORD).
Example:
In S7-1200:
"swapbytes"(real1 := "db1".V9,
dword1 => "V9ToKuka");
+Attached image
In Kuka:
"Variable = INT_TO_REAL(V9)",
where "INT_TO_REAL" consists of (thanks to panic mode
DEFFCT REAL INT_TO_REAL(n:in)
decl int n,ofs
decl char buf[4]
decl real f
ofs=0
cast_to(buf[],ofs,n)
ofs=0
cast_from(buf[],ofs,f)
return f
ENDFCT