Posts by jane3von


    Thanks for the share! Your shared code was written by Matlab and C# ? I found a lot of shared code and could not find the dll ? :wallbash:


    I used the WireShark to test the communication and found a big problem! That is if the PC receive the 1 1/2 XML Data is unavoidable then the data flag <Delay> will add 1 every communication and at last the flag <Delay> value to the max the communication will stop! I have some .pcapng in attach and you can check it. So I really want to know that how to solve the problem about receive 1 1/2 XML Data ?


    :help: :help: :help:


    According to my documents for RSI 2.1 (I don't have 2.3 handy), ST_AXISCORR has 12 inputs. Inputs 1-6 control A1-A6, and Inputs 7-12 control E1-E6.
    Have you adjusted the maximum correction? The default is 5mm for linear axes.
    You have no error messages at all?
    I can only suggest creating a test program which only creates an RSI container to control E1, add a ST_MONITOR object, and set up monitoring for the input data at various points through the RSI container. Then run the test program and examine the RSI Monitor output.


    I have set the RSI object ST_AXISCORR's default value to [-90,90] and used another RSI object ST_NEWLINK to link the ST_AXISCORR and ST_ETHERNET according the corresponding index.


    In the end, my robot can move correctly ! :toothy9:


    The key, however, is that E1/E2 should be able to move under RSI control without any complications caused by kinematic integration, with the current configuration.


    Have you performed an RSI-Monitor trace while attempting to move E1? I recommend adding traces to the E1 input and output of the External Axis Corr object, and to the E1 value of the $AXIS_ACT object. You need to determine what data is reaching the axis-corr object and what it is outputting, if anything.


    I did not performed an RSI-Monitor trace.


    As I know only ST_AXISCORR allows to set a axis correction values for the robot position every sensor cycle. But it seems only work for A1 to A6 axis !


    Now , I have no idea to use which RSI object to get data of E1 ? :sadsmiley:


    $EX_KIN can be viewed from the Variable Monitor, or from the Axis Configurator tool. Or by taking an Archive of the robot and examining the contents of /R1/MADA/$MACHINE.DAT.


    Thank you SkyeFire!


    I fond the $EX_KIN in $MACHINE.DAT and the contents is "DECL EX_KIN $EX_KIN={ET1 #NONE,ET2 #NONE,ET3 #NONE,ET4 #NONE,ET5 #NONE,ET6 #NONE} ;EXTERNE KINEMATIKEN #NONE,#EASYS,#EBSYS,#ECSYS,#EDSYS,#EESYS,#EFSYS,#ERSYS".


    There was no value ?


    I have tried moving E1 or E2 via RSI and no robot motion only show error message:"1030 P_15 SEN:RSI execution error <execute>-RSI stopped".


    I tried to move robot with E1 or E2 asynchronously but also failed.


    I mean a "vidicon" is a video camera and the detail description can see the attach pic.


    I have made robot motion by RSI 2.3 through the object ST_PATHCORR (the robot move according its XYZABC data) or the object ST_AXISCORR (the robot move according its A1 A2 A3 A4 A5 A6 data), a path correction or axis angle correction.


    But when I use ST_AXISCORR and send E1 or E2 data to robot, the axis angle correction not work and the robot do noting.


    If I should change the object in RSI and find the right object to control E1 and E2 to move ?


    As the value of $EX_KIN , where I can find ? And how to check this value ? As I know KUKA could not show its value in its control pannel.


    You mean that the received data from robot from first package is not a right XML data in communication and can modify the config XML file to get the right XML data .


    If it works can you tell me where is the config XML in the init directory and how to modify ?


    On the other hand, I once consulted the KUKA technical staff and they said that it is common to have this problem in communication between PC and
    robot and it can not avoid because the robot is a machine and it will happen this error when communicate with external device like PC.


    So I only try to joint the XML data from two received data and make one right XML data from them. The process is complex and has to think of many conditions (such as first receive one and half XML data then next time maybe only another half or another half with third one etc). I also used TCP/IP in PC (also send XML data to communicate) and KRL in robot to communicate with PC and robot and found this error too. Therefore in RSI communication this error happen is not surprised me.


    I modified the C# example program and only used the first received XML data to get the IPOC time from robot.


    Then I send XML data to robot with the IPOC time added 6ms in every send XML data. Sometimes it works well but not every time. I think maybe other problem still exist ?


    My KSS is 5.6.10 and the RSI 2.3 running on a KRC2 and my robot is KR16-2.


    Actually, sometimes my robot can work well but sometimes it run error.


    And your opinion is XML data error ?


    I did not used wireshark and can you give me a link about your open source ?


    I hope we can discuss a lot about this error. Thank you very much !


    Are you trying to move the robot, or an external axis? What happens when you attempt this? What error messages do you get? What is the configuration of the external axes and the external kinematics?


    I am intend to send data from PC program to control the robot to move with its external axis(such as E1 and E2) but the robot did not move under the RSI communication environment.


    The E1 axes was under the A1 and can move along the guide rail and E2 was connected with A6 to hold a vidicon.


    As for the external kinematics I think I have no idea about that.


    Thank you seehma !


    I also fond that problem and I even modified the received data. But the error was still happened , finally I fond there were logs on the robot called rsiErrors.log and rsiAll.log. I read the error log and it repeated said like that: 25.03.14 09:50:35 Error: ERX: Defined timeout limit reached. Answer from server missed!25.03.14 09:50:35 Error: Executing object 1000000.


    In the end, I know the problem is the C# example program expends too much time in sending data after the previous sending data.


    Therefore, I simplify the code as much as I can to communicate with robot (that is I spend least time to continue to send data) and the robot can move well until the data exceed the max setting value and still no error happen.


    So I think I solve the problem in the end! :toothy9:


    I hope it can help you. :flower:

    Hi,
    I have a KUKA 16-2 robot ,the KSS is 5.6.10 and RSI version is 2.3.

    Now I can use the RSI 2.3 in robot to communicate with external PC and the robot can work well according to the data from PC.


    But, I fond the robot can move according to the data in tag RKorr(that is: X Y Z A B C) or the data in tag AKorr(that is: A1 A2 A3 A4 A5 A6) and can not move according to the data in tag EKorr(that is external axis:E1 E2...) !


    Can anyone give me some advise? Thanks very much! :help: :help: :help:


    Each time the robot does not receive a valid reply within the same IPO cycle it increments the Delay counter. So this means that the robot is not receiving valid replies and/or not receiving replies in time. It normally means that the reply you are sending does not match the format it is expecting or sometimes that the reply is too late. It could also be that you are not including the correct IPOC number in the reply to the robot.


    The best thing that you can do is use Wireshark to log the traffic both ways, then you can look at the exact messages and their timing.


    The IPOC number is 6ms every data interval , I tried to increased the IPOC number to 12ms every time but the robot controller show error immediately when I run the program. I think I can not set the IPOC number because its value depends on the received data form robot controller's IPOC number !


    Please see the example code from KUKA C#_ServerApplication.cs below:


    I think this error may happen as the IPOC number is too small, only 6ms interval , lead to delay to error ?
    I have another question form this error that is how to keep the statement to receive external data send from PC, that is the code on the robot controller only stay on ST_SKIPSENS and it how to keep waiting for receive external data if PC do not send data for a while ?


    At this time, I think the only thing I can do is learn the Wireshark to check the send and receive data between PC and robot controller ! :bawling:


    Can you check the packet coming from the robot. Look at the value in the <Delay> tag. If this number grows then the ST_SKIPSENS will stop


    Sent from my HTC One using Tapatalk


    You are right ! :bravo:


    The value in the <Delay> tag was grow form 0 to 1,2,3...9 and the error happened!


    How to solve this problem? And why it happened? Actually, I never attention this tag and do not know its meaning.



    This 2 attachments pic explain the <Delay> tag and the ST_ETHERNET object default value 10 lead to error?


    what kind of error? same as before or something else? what are the correction values?


    same as before !


    This is error message: "1030 P_15 SEN:RSI execution error <execute>-RSI stopped" ? The no is 1030 and the source is P_15 .


    First, when I executed the RSI code connected with external PC , the PC send data to the robot controller and the robot moved quickly as the data command but after a while ,only about 100ms , the error happened and the robot controller show the error message: "1030 P_15 SEN:RSI execution error <execute>-RSI stopped" :sadsmiley:

    This is the data PC send to robot controller: only Y correction data


    Code
    <Sen Type="ImFree">   
       <EStr>ERX Message! Free config!</EStr>
       <RKorr X="0.0000" Y="0.1000" Z="0.0000" A="0.0000" B="0.0000" C="0.0000" />
       <AKorr A1="0.0000" A2="0.0000" A3="0.0000" A4="0.0000" A5="0.0000" A6="0.0000" />
       <EKorr E1="0.0000" E2="0.0000" E3="0.0000" E4="0.0000" E5="0.0000" E6="0.0000" />
       <Tech T21="0.00" T22="0.00" T23="0.00" T24="0.00" T25="0.00" T26="0.00" T27="0.00" T28="0.00" T29="0.00" T210="0.00" />
       <DiO>125</DiO>
       <IPOC></IPOC>
    </Sen>


    Thanks for any idea!
    :help: :help: :help:


    The correction values you are sending are massive.


    The values for RKorr should be a correction to be applied to the current robot position; not the position you want to go to. You are basically asking the robot to move over 1000mm in a single ipo cycle. I see that you're also giving a value for both RKorr and AKorr - I really have no idea what the robot will do in this case. They are intended to be used separately.


    So, the error you are getting looks to be correct. By default, for safely reasons, the POSCORR object stops the robot from accepting a value in RKorr that exceeds some small value (50mm if my memory serves).


    Thanks for your advice! I have modified the data send to robot and only use RKorr but the error still happened. :wallbash:


    my new code is :



    the error was still happened at the ST_SKIPSENS() :hmmm: need for help :help: :help: :help:

    Hi All,


    Have any one know about this message: "SEN:RSI execution error <execute>-RSI stopped" ? The no was 1030 and the source was P_15 .
    I look on the manual but don't have this fault.


    Thanks for any help ! :help:


    That's how it worked for me. Briefly pulsing $OUT[RSIBREAK] would terminate the MoveSens motion and let the KRL program advance to the next line.


    Thank you SkyeFire :icon_smile:


    According to your reply, $OUT[RSIBREAK] that is $OUT[25] in my robot setting would terminate the MoveSens motion.


    So if I can write the code like this: err=ST_BREAKMOVE(hBreak,0,hEthernet,19) to execute the terminate ? In this object the param hBreak is the ID of the object ST_BREAKMOVE , 0 is the ID of the container for this object ST_BREAKMOVE , hEthernet is the ID of the object (ST_ETHERNET)to link to input 1 , 19 is output index of ID1 to link to input 1 and I doubt if this output index can be received by $OUT[25] ? or ST_BREAKMOVE how to connect with $OUT[25] ?


    Thank you very much! :help: :help: :help:


    You need to look at the ST_BREAKMOVE object.


    Thank you! This is my modified code:


    I have no idea if the use of the object ST_BREAKMOVE is right ? err=ST_BREAKMOVE(hBreak,0,hEthernet,19)


    I think the object ST_BREAKMOVE should connect with the output $OUT[16] and the RSI global variable RSIBREAK should be assigned a value.


    So I modified the RSIBREAK to 25 as I saw the code ; DiO map to $OUT[8-24] .


    I think if I set RSIBREAK=25 then $OUT[25] was use to accept the break signal ?

Advertising from our partners