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

Analog Output Value not reflected during the real robot run

#1
Hello,

Please consider the following snippet from my robot (JAKA Zu20) program. As you can see, there is an analog output command before a movL. For context, I have added the 3D printing extrusion logic successfully (discussed in my previous posts). Thanks to Samuel for his assistance.

Quick facts:

1) Right now, the robot is executing the movement commands precisely.

2) However, it is not executing the analog output commands at all. The JAKA analog output is in the range 0-10V but you will see that my values are multiplied by 10. This is because, for getting a certain voltage value at the output, I must give 10 times that value in the input (said by JAKA). I have edited the post processor to reflect this change. 

I have a stepper motor connected to an Arduino, and I am able to drive this at different speeds by changing the voltage values manually from the JAKA application interface. However, I must be able to execute this through RoboDK. Could you please let me know if I am doing anything wrong? Please let me know if you want to have a look at my post processor files.

Thanks!

Code:
# This script was generated with the JAKA post and is suitable for JAKA 1.7.x.

# Global parameters:
endPosJ =[0,0,0,0,0,0]
endPosL =[0,0,0,0,0,0]
pos_mvl =[0,0,0,0,0,0]
pos_waypoint =[0,0,0,0,0,0]
set_tool_id(0)
set_user_frame_id(0)

# Main program:
# Program generated by RoboDK v5.9.2 for JAKA Zu20 on 24/11/2025 11:49:23
# Using nominal kinematics.
ucspos = [152.638, -1184.57, -13.96, -0.24, -0.115, -1.773]
set_user_frame(ucspos)
toolpos = [0, 0, 299.31, 0, 0, 0]
set_tool(toolpos)
# Show tooltest4
endPosJ=[-91.6998, 55.0219, -99.4523, 134.671, -270.114, -1.69974]
movj(endPosJ,0,60,200,0)
endPosJ = [-91.6993, 54.8095, -99.5359, 134.967, -270.114, -1.69929]
endPosL = [1.5, -6.625, 0.35, 180, 0, -178.227]
movl(endPosL,0,130.0,250,0.0)
set_analog_output(0,0,30,1)
endPosJ = [-91.59, 54.8112, -99.5388, 134.968, -270.114, -1.58997]
endPosL = [3.759, -6.228, 0.35, -180, 0, -178.227]
movl(endPosL,0,30.0,250,0.917)
#2
Do you mean that your program works when you generate the program offline and run it on the robot, but not when you use the driver and the real time connection? If so, can you send us a screenshot of the robot connection log?

Also, are you saying that we currently apply a multiplier factor on JAKA's analog outputs but we should not be doing this? We can update our default post processor accordingly.
#3
Hi Albert,

RoboDK-generated programs run perfectly on the real JAKA robot (movements work), but all analog output (AO) commands are ignored.

No, it is actually the opposite. Let's say you want to see an output of 10V. You will have put a numerical value of 100. Similarly, 10 for getting 1V output and 20 for getting 2V output.

JAKA tested my program and told me that this program runs from the JAKA Application interface, but I usually run my programs from RoboDK. Makes my life a lot easier.
The problem is when the same program is executed via RoboDK, AO commands are completely skipped.

I will be happy to share my custom JAKA post-processor for review/improvement. For context, I am not using the source code anymore, only the compiled version.
#4
Thank you for your feedback. We'll properly fix the JAKA post processor with our next update in one week or so. With this new update the default JAKA post will multiply the output value by 10 to properly output the desired voltage.

Do you mean that setting analog outputs don't work when you use the driver?
#5
The analog outputs work perfectly when I run the robot program from the JAKA app interface. However, it does not work when I try to run it from RoboDK. I might be messing up with something I don't really know.
#6
Can you share your RoboDK project file and the connection log after trying to setup the Analog output? Are you also multiplying the Analog value by 10 when using the driver?
  




Users browsing this thread:
1 Guest(s)