1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
Everywhere
  • Everywhere
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Members
  3. snewk

Posts by snewk

  • Deploy code to robot with github actions

    • snewk
    • December 6, 2024 at 9:12 PM
    Quote from massula

    are You saying that these files are being inserted on WorkVisual Project, or in WorkVisual repository created by WorkOnline function?

    I'm not familiar with WorkOnline. Google doesn't seem to return much, but I see you've mentioned it a few times on the forum. Will read more about this, thanks.


    Quote from SkyeFire

    If your main goal is to support multiple people working on a single shared code base, it gets trickier.

    SkyFire, this is essentially what we are looking for here. We've used Dirloader in the past. Its tricky, but probably will work for our purposes. I wonder if it might be possible to actually set up the D drive transfer folder as a git repository for dirloader to copy files out of. Using comments for versioning sounds like a huge PITA. Would love to avoid that if possible...

  • Deploy code to robot with github actions

    • snewk
    • December 5, 2024 at 7:07 PM

    I might get flamed for this question, but here goes nothing.

    I'm a developer/integrator working primarily with Kuka robots (KR C4 and KR C5). We have grown a lot in the past few years, and have added additional software developers to the team.

    With our influx of developers we have started using git for version control on our software. These repositories use manually uploaded robot archives to track key files on the C drive and the KRC directory, but we still haven't solved a "graceful" way to deploy this code back to the robot. Currently we are manually copying files from our version controlled git directory into workvisual. This is obviously a pain in the a**, does not scale well, and is prone to errors if a dev is not meticulous about ensuring files are copied correctly.

    Does anyone here have a better solution for git version control of robot code?

  • Editing Reference Tool in Inline Form point programmatically

    • snewk
    • April 1, 2024 at 5:45 PM

    Thanks Hermann. My "HALT, HALT" code was not intended as a very robust solution to prevent code execution. Will definitely add an IF wrapper around these points.

    I'm still a bit unclear whether the new point data would be saved in the correct cartesian position when updating with a new tool, but I can continue testing to see if it does or not.

  • Editing Reference Tool in Inline Form point programmatically

    • snewk
    • March 29, 2024 at 8:10 PM

    I'm writing a program designed to capture 7 points around an initial start point. The user will not play the program using any of these points.

    First, we capture the initial point, then each movement is executed via geometric offset from this point. After each movement, a list of points (originally created via inline form) is updated to $POS_ACT. I would like to allow the user to run this program with any tool, however when I created the program I used Tool1, so all my inline form points reference tool1.

    Is it possible to programmatically change the reference tool for a point captured via inline form?

    See code below:

    System is a KRC4 KR120 R3100-2 on KSS 8.6.12

    Code
    &ACCESS RVP
    &REL 32
    &PARAM EDITMASK = *
    &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
    &PARAM DISKPATH = KRC:\R1\PRODUCTION
    DEF Calibration( )
    ;FOLD DECL
        E6POS SphereCenter ;used as reference for relative motions during calibration
        FRAME OffsetCalibrator ;offset positin for calibrator gap
        FRAME OffsetAPos ;offset position for calibration orientation
        FRAME OffsetANeg ;offset position for calibration orientation
        FRAME OffsetBPos ;offset position for calibration orientation
        FRAME OffsetBNeg ;offset position for calibration orientation
        FRAME OffsetCPos ;offset position for calibration orientation
        FRAME OffsetCNeg ;offset position for calibration orientation
        INT rAnswer ;used for prompts
        REAL currORI1
        REAL currORI2
    
    ;ENDFOLD DECL
    ;FOLD INI;%{PE}
      ;FOLD BASISTECH INI
        GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
        INTERRUPT ON 3 
        BAS (#INITMOV,0 )
        BAS(#BASE,0) ;activate world coords
      ;ENDFOLD (BASISTECH INI)
      ;FOLD USER INI
        ;capture current VEL.ORI
        currORI1=$VEL.ORI1
        currORI2=$VEL.ORI2
        ;lower ori velocity
        $SPL_VEL_RESTR.ORI_VEL = #ON
        $VEL.ORI1=10
        $VEL.ORI2=10
        ;set neutral offset
        OffsetCalibrator = {X -285, Y 0, Z 0, A 0, B 0, C 0}
        ;set offset positions/rotations around TCP
        OffsetAPos = {X 0, Y 0, Z 0, A 90, B 0, C 0}
        OffsetANeg = {X 0, Y 0, Z 0, A -90, B 0, C 0}
        OffsetBPos = {X 0, Y 0, Z 0, A 0, B 90, C 0}
        OffsetBNeg = {X 0, Y 0, Z 0, A 0, B -45, C 0}
        OffsetCPos = {X 0, Y 0, Z 0, A 0, B 0, C 90}
        OffsetCNeg = {X 0, Y 0, Z 0, A 0, B 0, C -90}
      ;ENDFOLD (USER INI)
    ;ENDFOLD (INI)
    
    rAnswer=0
    MsgDialog(rAnswer,"Jog robot above calibration sphere and select OK when in position.","Calibrate",,"Cancel","OK",,,,,,,)
    SWITCH rAnswer
        Case 6
            ;ok
            SphereCenter = $POS_ACT
        Case 7
            ;cancel
            MsgQuit("calibration canceled by user.")
    ENDSWITCH
    
    PTP SphereCenter ;initmove
    SLIN SphereCenter : OffsetCalibrator ;move to allow calibratior installation
    
    rAnswer=0
    MsgDialog(rAnswer,"Capture start position..","Calibrate",,"Cancel","OK",,,,,,,)
    SWITCH rAnswer
        Case 6
            ;ok
            XP1 = $POS_ACT ;save pivot position data here
        Case 7
            ;cancel
            MsgQuit("calibration canceled by user.")
    ENDSWITCH
    
    ;;;;;;;;;;;;; CALIBRATION MOVEMENTS  ;;;;;;;;;;;;;;;
    SLIN SphereCenter : OffsetCalibrator : OffsetAPos
            XP2 = $POS_ACT
    SLIN SphereCenter : OffsetCalibrator ;return to neutral orientation
    SLIN SphereCenter : OffsetCalibrator : OffsetANeg
            XP3 = $POS_ACT
    SLIN SphereCenter : OffsetCalibrator ;go back to neutral orientation
    SLIN SphereCenter : OffsetCalibrator : OffsetBPos
            XP4 = $POS_ACT
    SLIN SphereCenter : OffsetCalibrator ;return to neutral orientation
    SLIN SphereCenter : OffsetCalibrator : OffsetBNeg
            XP5 = $POS_ACT
    SLIN SphereCenter : OffsetCalibrator ;return to neutral orientation
    SLIN SphereCenter : OffsetCalibrator : OffsetCPos
            XP6 = $POS_ACT
    SLIN SphereCenter : OffsetCalibrator ;return to neutral orientation
    SLIN SphereCenter : OffsetCalibrator : OffsetCNeg
            XP7 = $POS_ACT
    SLIN SphereCenter : OffsetCalibrator ;return to neutral orientation
    ;;;;;;;;;;;; END OF CALIBRATION RUN ;;;;;;;;;;;;;;;;
    $SPL_VEL_RESTR.ORI_VEL = #OFF
    $VEL.ORI1=currORI1
    $VEL.ORI2=currORI2
    
    HALT
    HALT
    
    ;;;;;;;;;;;;;;;;;DO NOT RUN PAST HERE;;;;;;;;;;;;;;;
    ;The following points are used to store the calibration run
    ;to execute calibration:
    ;1) Save this file (DAT and SRC) to the PC
    ;2) Delete all lines before point P1. Your file should only contain 7 points
    ;3) Upload the DAT and SRC to software suite
    
    ;FOLD SLIN P1 Vel=0.1 m/s CPDAT1 Tool[1]:SpikeTesting Base[0] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P1; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT1; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
    ;ENDFOLD
    SLIN XP1 WITH $VEL = SVEL_CP(0.1, , LCPDAT1), $TOOL = STOOL2(FP1), $BASE = SBASE(FP1.BASE_NO), $IPO_MODE = SIPO_MODE(FP1.IPO_FRAME), $LOAD = SLOAD(FP1.TOOL_NO), $ACC = SACC_CP(LCPDAT1), $ORI_TYPE = SORI_TYP(LCPDAT1), $APO = SAPO(LCPDAT1), $JERK = SJERK(LCPDAT1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    ;FOLD SLIN P2 Vel=0.1 m/s CPDAT2 Tool[1]:SpikeTesting Base[0] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P2; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT2; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
    ;ENDFOLD
    SLIN XP2 WITH $VEL = SVEL_CP(0.1, , LCPDAT2), $TOOL = STOOL2(FP2), $BASE = SBASE(FP2.BASE_NO), $IPO_MODE = SIPO_MODE(FP2.IPO_FRAME), $LOAD = SLOAD(FP2.TOOL_NO), $ACC = SACC_CP(LCPDAT2), $ORI_TYPE = SORI_TYP(LCPDAT2), $APO = SAPO(LCPDAT2), $JERK = SJERK(LCPDAT2), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    ;FOLD SLIN P3 Vel=0.1 m/s CPDAT3 Tool[1]:SpikeTesting Base[0] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P3; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT3; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
    ;ENDFOLD
    SLIN XP3 WITH $VEL = SVEL_CP(0.1, , LCPDAT3), $TOOL = STOOL2(FP3), $BASE = SBASE(FP3.BASE_NO), $IPO_MODE = SIPO_MODE(FP3.IPO_FRAME), $LOAD = SLOAD(FP3.TOOL_NO), $ACC = SACC_CP(LCPDAT3), $ORI_TYPE = SORI_TYP(LCPDAT3), $APO = SAPO(LCPDAT3), $JERK = SJERK(LCPDAT3), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    ;FOLD SLIN P4 Vel=0.1 m/s CPDAT4 Tool[1]:SpikeTesting Base[0] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P4; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT4; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
    ;ENDFOLD
    SLIN XP4 WITH $VEL = SVEL_CP(0.1, , LCPDAT4), $TOOL = STOOL2(FP4), $BASE = SBASE(FP4.BASE_NO), $IPO_MODE = SIPO_MODE(FP4.IPO_FRAME), $LOAD = SLOAD(FP4.TOOL_NO), $ACC = SACC_CP(LCPDAT4), $ORI_TYPE = SORI_TYP(LCPDAT4), $APO = SAPO(LCPDAT4), $JERK = SJERK(LCPDAT4), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    ;FOLD SLIN P5 Vel=0.1 m/s CPDAT5 Tool[1]:SpikeTesting Base[0] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P5; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT5; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
    ;ENDFOLD
    SLIN XP5 WITH $VEL = SVEL_CP(0.1, , LCPDAT5), $TOOL = STOOL2(FP5), $BASE = SBASE(FP5.BASE_NO), $IPO_MODE = SIPO_MODE(FP5.IPO_FRAME), $LOAD = SLOAD(FP5.TOOL_NO), $ACC = SACC_CP(LCPDAT5), $ORI_TYPE = SORI_TYP(LCPDAT5), $APO = SAPO(LCPDAT5), $JERK = SJERK(LCPDAT5), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    ;FOLD SLIN P6 Vel=0.1 m/s CPDAT6 Tool[1]:SpikeTesting Base[0] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P6; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT6; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
    ;ENDFOLD
    SLIN XP6 WITH $VEL = SVEL_CP(0.1, , LCPDAT6), $TOOL = STOOL2(FP6), $BASE = SBASE(FP6.BASE_NO), $IPO_MODE = SIPO_MODE(FP6.IPO_FRAME), $LOAD = SLOAD(FP6.TOOL_NO), $ACC = SACC_CP(LCPDAT6), $ORI_TYPE = SORI_TYP(LCPDAT6), $APO = SAPO(LCPDAT6), $JERK = SJERK(LCPDAT6), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    ;FOLD SLIN P7 Vel=0.1 m/s CPDAT7 Tool[1]:SpikeTesting Base[0] ;%{PE}
    ;FOLD Parameters ;%{h}
    ;Params IlfProvider=kukaroboter.basistech.inlineforms.movement.spline; Kuka.IsGlobalPoint=False; Kuka.PointName=P7; Kuka.BlendingEnabled=False; Kuka.MoveDataName=CPDAT7; Kuka.VelocityPath=0.1; Kuka.VelocityFieldEnabled=True; Kuka.ColDetectFieldEnabled=True; Kuka.CurrentCDSetIndex=0; Kuka.MovementParameterFieldEnabled=True; IlfCommand=SLIN
    ;ENDFOLD
    SLIN XP7 WITH $VEL = SVEL_CP(0.1, , LCPDAT7), $TOOL = STOOL2(FP7), $BASE = SBASE(FP7.BASE_NO), $IPO_MODE = SIPO_MODE(FP7.IPO_FRAME), $LOAD = SLOAD(FP7.TOOL_NO), $ACC = SACC_CP(LCPDAT7), $ORI_TYPE = SORI_TYP(LCPDAT7), $APO = SAPO(LCPDAT7), $JERK = SJERK(LCPDAT7), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
    ;ENDFOLD
    
    END
    Display More
  • Data Inconsistency detected for Base Kuka KRC4

    • snewk
    • March 4, 2024 at 3:48 PM

    After going through all of this, my assumption is that any change made to BASE_DATA, BASE_NAME, TOOL_DATA, TOOL_NAME, LOAD_DATA, LOAD_NAME, etc. outside of the BTM HMI will result in the Base Tool Management HMI displaying this notification the next time it is launched.

  • Data Inconsistency detected for Base Kuka KRC4

    • snewk
    • March 1, 2024 at 5:48 PM

    Ok, so it seems this is related to C:\KRC\USER\MEASUREMENTPOINTS.xml as Danny suggested.

    After I write to BASE_DATA, the base information is stored in $config.dat and it is valid for use in program, however this updated base data is not reflected in measurement points unless the user opens the Tool/Base Management HMI. This is also when the notification message pops up.

    I suppose we could avoid the notification if we were to take the additional step of writing the base data to measurementpoints.xml, but it seems unnecessary now; I understand what is causing the notification, and it is simply a "notify" message.

    Skyfire, this system does not have mXAutomation installed, and searching through the project archive for BTM was a bust. I'm now thinking BTM stands for BaseToolManagement, since this is the active HMI at the time of the message (KukaRoboter.SmartHMI.BaseToolManagement).

    Panic, Apologies for not sharing more of the code. This code is highly modularized, and there are at least a dozen different functions controlling reading/writing/sending/receiving data over ethernetKRL which makes sharing it rather cumbersome. None of this is done in the submit loop, and the input buffer data is indeed validated before being written to any variables. I will also remove the sps reset since it's unnecessary :smiling_face:

    Thanks to all three of you for your help figuring this out!

  • Data Inconsistency detected for Base Kuka KRC4

    • snewk
    • February 29, 2024 at 11:03 PM
    Quote

    no, there is nothing other than your code that is modifying base data.

    Perhaps my question was ambiguously worded. Is data for bases stored anywhere other than $config.dat?

    Quote

    what is the purpose of restarting submit?

    When opening $config.dat on the controller, the system will automatically stop the submit. I assumed stopping submit in my program would prevent the "data inconsistency" message.

    Quote

    why did you truncate the message? what is the COMPLETE message and value of that base?

    Frustratingly, there are multiple function calls within this program making it difficult to share the entire code in one snippet. The variables are declared as follows:

    Code
    INT rNewBaseID
    CHAR rNewBaseName[24]
    FRAME rNewBaseFrame

    I have verified the data received on the controller for rNewBaseFrame is a properly formatted frame:

    {X 1596.34741,Y -471.842,Z 539.848816,A -90.9623795,B 0.0270521715,C 0.136301115}

    In fact, the base data and name are even successfully written into $config, and I can verify this by checking Tool/Base Management.

    The message "BTM 23, Data inconsistency detected for base" still appears, however. I could simply ignore it, but I'd like to understand why the robot is warning me in the first place.

  • Data Inconsistency detected for Base Kuka KRC4

    • snewk
    • February 29, 2024 at 6:45 PM

    One other thing to note, this system uses MultiSubmit, so sps.sub's interpreter ID is '2'

  • Data Inconsistency detected for Base Kuka KRC4

    • snewk
    • February 29, 2024 at 6:15 PM

    Bumping this thread.

    I'm working on an automated base teaching program using a Renishaw touch probe. We use EthernetKRL connected to Renishaw's probing software to capture point data and calculate the plane for our new base.

    Once the robot receives this information, our probing program stops and deselects sps, writes off the updated base information, then restarts sps. I'm still getting the error message above in the original post.

    My question is this: Is there somewhere else in the controller where this base data is stored that could be causing this "inconsistency"?

    Robot: KR210-r2700 KR C4 on KSS 8.6.10

    Code
    CWRITE($CMD,rSTAT,rMODE,"STOP 2") ;stop system Submit
    WAIT FOR $PROG_INFO[2].P_STATE==#P_STOP
    
    CWRITE($CMD,rSTAT,rMODE,"RESET 2") ;reset system Submit
    WAIT FOR $PROG_INFO[2].P_STATE==#P_RESET
    
    CWRITE($CMD,rSTAT,rMODE,"CANCEL 2") ;reset system Submit
    WAIT FOR $PROG_INFO[2].P_STATE==#P_FREE
    
    
    ;name new base
    BASE_NAME[rNewBaseID,]=rNewBaseName[]
    ;write new base
    BASE_DATA[ rNewBaseID ] = rNewBaseFrame
    
    WAIT SEC 0
    CWRITE($CMD,rSTAT,rMODE,"RUN 2") ;restart system Submit
    Display More
  • Heater PID Control in SPS

    • snewk
    • October 30, 2023 at 3:02 AM

    Thanks hermann and panic.

    We have traditionally used thermal pid controllers for this task, but we wanted the ability to set and read temps directly on the teach pendant while also simplifying the BoM, hence the direct control in sps.

    For now we decided to go with the pulse method and it seems to be working well. Using multisubmit crossed my mind, however it still doesn't solve the edge case where the power output is TRUE and all submits are off.

    One thing i still may try is to map the system variable $PRO_STATE0 to an output group and then trial-and-error my way into finding a single unique bit from that group which is only true when the value is #P_ACTIVE. I honestly doubt this will work, so i'll probably just add a thermal fuse to the circuit.

  • Heater PID Control in SPS

    • snewk
    • October 24, 2023 at 2:06 AM

    I am attempting to write a PID control loop which I intend to run in either the system submit or potentially in a separate loop using multisub. This function will control power to a heater based on a temperature input. One problem is that if the heater is powered on when a user opens sps for editing (or if sps crashes), the submit interpreter will no longer be running and power will remain on indefinitely.

    A potential safeguard would be to check the state of the system submit interpreter via $PRO_STATE0, and set an output connected to a relay which would disconnect power to the heater. Generally, I would check $PRO_STATE0, but without using submit itself I am not sure how to set a boolean when $PRO_STATE0 <> #P_ACTIVE.

    A second option would be setting a brief ~500ms timer and have the submit loop reset the timer each time it cycles. With this method, I could use the $TIMER_FLAG boolean to evaluate if the submit interpreter is no longer running. The problem here is that "SIGNAL $TIMER_FLAG[n] $OUT[n]" is not syntactically valid according to workvisual.

    My only other thought would be to never set the output to TRUE directly, instead using PULSE so the power is only ever on for a defined duration.

    Feels like I am overthinking this.... Looking for a sanity check here :loudly_crying_face:

    The system in question is a KRC4 KR150 on KSS 8.6.9

  • $Spindle System Variable

    • snewk
    • August 6, 2023 at 6:08 PM

    I see. So "spindle" in this case isn't referring to a machining spindle.

    I'm assuming you use this bit in conjunction with something like a linear actuator attached to the flange of a6?

  • $Spindle System Variable

    • snewk
    • August 5, 2023 at 9:27 PM

    This system is built around a kr210 r2700-2.

    From my machine.dat:

    $KINCLASS=#STANDARD

    $MAIN_AXIS=#NR

    $WRIST_AXIS=#ZEH

    you are correct about the values of all the above variables.

    Just to satisfy my curiosity, would you have an idea of what type of robot/configuration might have a "spindle axis"? I am unfamiliar with this term.

  • $Spindle System Variable

    • snewk
    • August 5, 2023 at 2:47 PM

    Thanks, Mom. Unfortunately this is not much more helpful than the code comment:

    machine.dat description from kuka xpert

  • $Spindle System Variable

    • snewk
    • August 5, 2023 at 1:06 AM

    I was poking around in Mada\$machine.dat and came across the following:

    Code
    INT $SPINDLE=0 ;SPINDELN (0 = NEIN, 1 = JA)

    Unfortunately, searching the forum for "$Spindle" turned up a ton of results with just the word "spindle" and not really anything related to this specific system variable. There is also no reference to this in the Kuka System Variables manual, nor the System Integrator manual.

    Does anyone have insight as to what this actually does? My intuition is that it could potentially tell the system the installed tool is symmetrical around the tool axis, thus allowing the motion planner to reach a given position at any orientation around tool X.

    This would be a big help to me, since most of the machines I work with are milling and 3d printing robots :upside_down_face:

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download