Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Question About Speed Conversion to Percentage in FANUC CRX Post Proces

#1
Hello RoboDK Support,

I have a question regarding the FANUC post processor for the CRX series.
When I generate a program using the FANUC post processor, MoveJ speeds defined in deg/s are converted into percentage values (%) in the LS/TP file.
My questions are:

  1. How does the FANUC post processor convert joint speed (deg/s) into Speed % for CRX robots?
    • What formula or internal logic does the post processor use?
  2. Is it possible to customize or override this conversion inside the post processor?
    • For example, if I want 200 deg/s to correspond to 100%.
  3. Do other RoboDK post processors (Yaskawa, ABB, UR, etc.) also convert absolute speeds into percentage values?
    • If so, how is this handled in those controllers?
Thank you,
Keisuke Sakai
#2
The default set joint speed instruction for Fanuc converts the speed in deg/s set in RoboDK in the range of 0-200 deg/s where 200 is assumed 100%. This is converted in the post processor using the function below.
Code:
    def setSpeedJoints(self, speed_degs):
        """Changes the robot joint speed (in deg/s)"""
        self.JOINT_SPEED = '%.0f%%' % max(min(100.0 * speed_degs / 200.0, 100.0), 1)

The setSpeed instruction also sets the JOINT_SPEED variable in the post processor based on the linear speed if the joint speed is not set.
You can customize this behavior by implementing your own setSpeedJoints instruction. This example is very close to what you are trying to do:
https://robodk.com/doc/en/Post-Processor...ampleSpeed

Most post processors don't use percentage speed limits for joint speeds.

I understand that the Joint speed can only be set as a percentage for Fanuc controllers. Correct?
#3
Hello RoboDK Support,

Thank you for your previous response.
I tested the FANUC CRX speed conversion using the FANUC post processor, and I found an unexpected result:

When I set 100 deg/s for a MoveJ motion in RoboDK,
the generated LS/TP program shows 2%.

Because of this, it seems that the current conversion logic used by the post processor is not correct or does not match the real CRX controller behavior.
Could you please review the conversion again or provide the correct formula that the post processor uses to calculate Speed %?

Thank you,
Keisuke Sakai


Attached Files Thumbnail(s)
スクリーンショット 2026-03-06 090339.png   

.rdk   新しいプロジェクト (1).rdk (Size: 2.18 MB / Downloads: 6)
#4
Good point. I recommend you to split the instruction to set the linear speed and joint speed in 2 (one for each) and set the joint speed after the linear speed. This is the logic for linear speeds which affects the joint speed:
Code:
    def setSpeed(self, speed_mms):
        """Changes the robot speed (in mm/s)"""
        # Set the normal speed
        self.SPEED = '%.0fmm/sec' % max(speed_mms, 0.01)
        # assume 5000 mm/s as 100%
        self.JOINT_SPEED = '%.0f%%' % max(min(100.0 * speed_mms / 5000.0, 100.0), 1)  # Saturate percentage speed between 1 and 100

This should output your desired result:
Code:
  12:J P[1] 50% FINE ;
  13:L P[2] 100mm/sec FINE ;

See the attached example. The issue is that setting the linear speed also forces the joint speed to be set. 

We'll improve RoboDK to make sure the joint speed prevails over the linear speed for Joint movements.


Attached Files
.rdk   新しいプロジェクト-v2.rdk (Size: 2.18 MB / Downloads: 6)
#5
Dear RoboDK Support Team,

I hope you are doing well.
I have confirmed that the configuration changes for the Fanuc post processor are working correctly. Thank you again for your support.
I would like to ask one more question related to speed handling across different robot brands.
I understand that some robot manufacturers may also use percentage‑based speed definitions depending on the controller.
Therefore, if RoboDK has an official comparison table listing which robot brands use absolute speed values (mm/s, deg/s, rad/s) and which brands use percentage‑based speed definitions, I would greatly appreciate it if you could share it.
If such a table does not exist, could you please let me know whether any non‑Fanuc robot brands also require percentage‑based joint speed handling?


Thank you very much for your assistance.



Best regards,
Keisuke Sakai
#6
Thank you for your feedback. We don't have an official comparison table. However, you can double click on each post processor in the C:/RoboDK/Posts folder to see a sample output program for each controller.

Some examples include the following:
  • KUKA: deg/sec
  • Fanuc: percentage
  • Yaskawa/Motoman: percentage
  • Universal Robots: rad/s
  




Users browsing this thread:
1 Guest(s)