RobotStudio event

Monitor Speed and Torque of joints

Hi there!

I am trying to monitor the speed and torque of each joint of my robot but I can't manage to find those signals in the Signal Analyzer, only the TCP speed. ¿Is there a way of monitoring those values?

Thanks in advance,

Alvaro

Comments

  • Which version of RW? RW 6 introduced GetMotorTorque


  • Exactly, I have RW6. Where do you look for those functions?
  • Hey there!

    For what I've seen, GetMotorTorque is generally used to compared at a given time the torque of an axis and use it to trigger an event. However, I intended to plot the torque values of each axes, does someone know a smart way to do that? 

    I've tried with 
    TestSignDefine but I have no idea as for how to access the data that is being monitored.

    Thanks in advance,

    Alvaro
  • You need to use TestSignRead with TestSignDefine 
  • All rigth, I've added both functions to my RAPID code, but now then, where can I see the resulting data in the channel? 
    Thanks for your response, I recently started working with RobotStudio so I appreciate the help.
  • Create a NUM variable to store the torque value, then write the value to the teach pendant using TPWrite. This should work with GetMotorTorque as well. 
  • Thanks a lot!

    I ended up using Write instead of TPWrite in order to export it to Notepad. I used a timer that triggers each 0.1s and calls a TRAP where I read the torque and write it. However, 0.1seconds isn't the most accurate sampling time but it looks like I can't reduce it. Do you know a smarter way of reading (and then writing) the torque value?

    Thanks in advance,

    Alvaro
  • xerim
    xerim
    edited March 2021
    You could set up 6 analog outputs and use a for loop to iterate through the TestSignDefine and TestSignRead..here is a very incomplete example:

            FOR ii FROM 1 TO 6 DO
                TestSignDefine ii, 4002, ROB_1, ii, 0.004;
            ENDFOR 

    and then

            VAR num torques{6};
                    
            WHILE TRUE DO
                
                FOR ii FROM 1 TO 6 DO
                    torques{ii} := TestSignRead(ii);
                ENDFOR  
                
                SetAO motorTorque1, torques{1};
                SetAO motorTorque2, torques{2};
                SetAO motorTorque3, torques{3};
                SetAO motorTorque4, torques{4};
                SetAO motorTorque5, torques{5};
                SetAO motorTorque6, torques{6};
                
                WaitTime 0.004;
            
            ENDWHILE<br>