RSI Ethernet Example

  • I am new to RSI and am trying to set it up properly and test it using the kuka provided server.exe and RSI_ethernet.src. I believe I've setup the IP settings correctly as I'm able to ping both the main controller IP address and the RSI IP address from the remote PC. I'm also able to ping the remote PC from the controller via minimizing the HMI and using the command prompt.


    However, when I start the RSI_ethernet.src program, it gets to the line where it creates the RSI container:


    (ret = RSI_Create("RSI_Ethernet.rsi",CONTID,TRUE)


    and then an error appears:


    RSI_Create General Error: ETHERNET1


    During this time on the remote PC with the server.exe running, I'm not seeing anything other than "Started listening on port 49152".


    I've updated the RSI_EthernetConfig.xml file with the IP address of the remote PC and the port 49152.


    Here are my settings:


    Controller (virtual5)
    IP: 172.31.1.147
    Subnet Mask: 255.255.0.0
    Gateway: 172.31.1.1


    RSI (virtual6)
    IP: 172.31.2.147
    Subnet Mask: 255.255.255.0
    Address Type: Mixed IP Address
    Queue: Filter 6
    Filter 6: Filter Type: IP Protocol
    Filter 6: IP Addresss: 172.31.2.147
    Filter 6: Subnet Mask: 255.255.255.0
    Filter 6: Parameters: 17


    Remote PC
    IP: 172.31.1.2
    Subnet Mask: 255.255.0.0
    Default Gateway: 172.31.1.47


    Thank you for your help.

  • Where would I find that value of “ret”? The error on that line was just “General Error:Ethernet1”. Is there an interface that I can bring up on the TP that displays the current values of program variables? Sorry, I’m not used to programming in this format (I use KUKA PRC within Grasshopper).


    Thanks


  • However, when I start the RSI_ethernet.src program, it gets to the line where it creates the RSI container:


    (ret = RSI_Create("RSI_Ethernet.rsi",CONTID,TRUE)



    ret = <some RSI command>

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2


  • Where would I find that value of “ret”? The error on that line was just “General Error:Ethernet1”. Is there an interface that I can bring up on the TP that displays the current values of program variables? Sorry, I’m not used to programming in this format (I use KUKA PRC within Grasshopper).


    Thanks


    Simplest way is to declare Ret in your application's .DAT file (I think the "stock" example program declares it in the SRC). Then, after selecting the program, you can go to DISPLAY>VARIABLE>SINGLE, type in the name of the variable, and start monitoring it (pay attention to the Refresh button). That should show you the value of the variable.

  • OK, I'm getting closer. After some googling, I found another user who had a similar error and said it was caused by the filename length. I looked through the various files for the sample file and the only one that looked long (I have no idea what the character limit on filenames is) was the RSI_EthernetConfig.xml file. I changed that and the associated RSI config parameters pointing at that file to RSI_eNetConfig.xml. When I ran the file again, it finally didn't throw up an error at


    (ret = RSI_Create("RSI_Ethernet.rsi",CONTID,TRUE)


    However, it got to the RSI_MOVECORR() and then stopped with the following error:


    Stop by $CORRECTION function (reset or block selection required)
    Caused by A2


    When I then expanded the error list, it showed another error:
    Signal flow (running): Object ETHERNET1 returns error RSIBad


    UPDATE: I have finally figured it out. I'm not sure if what I did above helped or not, but I changed my IP settings to the following and it now works. There were several changes but the biggest one was to make the default gateway on the remote PC set to the RSI IP address. I also created a secondary IP address on the remote PC. The first one connects to the virtual5 main controller and the second one connects to RSI on the controller.


    Controller (virtual5)
    IP: 172.31.1.147
    Subnet Mask: 255.255.255.0
    Gateway: 172.31.1.47


    RSI (virtual6)
    IP: 172.31.2.147
    Subnet Mask: 255.255.255.0
    Address Type: Mixed IP Address
    Queue: Filter 6
    Filter 6: Filter Type: IP Protocol
    Filter 6: IP Addresss: 172.31.2.147
    Filter 6: Subnet Mask: 255.255.255.0
    Filter 6: Parameters: 17


    Remote PC KLI
    IP: 172.31.1.2
    Subnet Mask: 255.255.255.0
    Default Gateway: 172.31.1.147


    Remote PC RSI
    IP: 172.31.2.2
    Subnet Mask: 255.255.255.0

  • I suppose it is not allowed to have to virtual controllers with overlapping subnets. In your initial config


    Controller (virtual5)
    IP: 172.31.1.147
    Subnet Mask: 255.255.0.0


    RSI (virtual6)
    IP: 172.31.2.147
    Subnet Mask: 255.255.255.0


    the subnet-mask of your two controllers are not mutually exclusive.


    That is, controller "virtual5" is used to send all data belonging to 172.31.*.* (due to the subnet mask 255.255.0.0) and "virtual6" is used to communicate to IPs in the range 172.31.2.* (due to subnet-mask 255.255.255.0).
    This way, if RSI wants to connect it may first decide that an 172.31.2.X address matches the virtual5-subnet and not send it through the RSI-Adapter, but the other one. Your ping would not be disturbed by this, because both adapters propably would answer it.

  • KR16R2010_2 C4

    KSS Version: KSS 8.5.8

    RSI version: 4.0.9


    Sorry Folks,


    I am bringing up an old topic. I'm facing exactly the same issue as explained by OP. My current settings are as follows:

    1. KLI Windows Interface (virtual 5):
    IP Address: 172.31.1.147

    Subnet mask: 255.255.255.0

    Standard Gateway: 172.31.1.147


    2. vistual6 (RSI)

    IP Address: 172.31.2.147
    Subnet Mask: 255.255.255.0
    Address Type: Real-time IP Address (I also tried with mixed IP)
    Filter 6: Filter Type: IP Protocol
    Filter 6: IP Addresss: 172.31.2.147
    Filter 6: Subnet Mask: 255.255.255.0
    Filter 6: Parameters: 17


    3. Windows 10 Remote PC (KLI):

    IP Address: 172.31.1.150
    Subnet Mask: 255.255.255.0
    Default Gateway: 172.31.1.147


    4: Windows 10 Remote PC (RSI):

    IP Address: 172.31.2.150
    Subnet Mask: 255.255.255.0


    First, I configured the network as explained in the manual but it did not work and then I followed the steps explained in the forum but the results were not positive.


    I copied all the necessary files into the respective directories as explained in the manual. I entered the IP address 172.31.2.150 and port 49152 in `RSI_EthernetConfig.xml` as shown below:


    <CONFIG>

    <IP_NUMBER>172.31.2.150</IP_NUMBER> <!-- IP-number of the external socket -->

    <PORT>49152</PORT> <!-- Port-number of the external socket -->

    <SENTYPE>ImFree</SENTYPE> <!-- The name of your system send in <Sen Type="" > -->

    <ONLYSEND>FALSE</ONLYSEND> <!-- TRUE means the client don't expect answers. Do not send anything to robot -->

    </CONFIG>


    When I run the robot in T1 or AUT mode after selecting the program RSI_Ethernet.src, I get error saying KSS29002: Signal Flow (running): Object ETHERNET1 returns error RSITimeout. I tried both receive data only and send and recieve data and both modes do not work.


    I got the wireshark running and got to know that the Robot and Remote PC are only communicating over KLI interface (172.31.1.XXX subnet) and do not see any communication over RSI interface (172.31.2.XXX subnet). I can ping both the subnets (172.31.1.147 & 172.31.2.147) of the Robot from Remote PC and of the Remote PC (172.31.1.150 & 172.31.2.150) from the robot.


    Please help me figure out as to what might be the issue here.


    Thanks

  • yes but... HOW/WHERE exactly did you assign the RSI network settings? did you follow RSI manual?

    more specifically, did you do steps 1 and 2 which tells you to minimize HMI and run the separate utility, rather than configure it from SmartHMI?

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • Yes, correct. My problem is that I would like to keep virtual5 as Windows Interface so that VNC and file transfer works. And for RSI, I defined virtual6 as explained in the manual. But, both of these interfaces cannot have the IP address in the same subnet (it is not allowed). Therefore, I tried to blend the explanation in the manual and what experienced guys have mentioned herebut that is not working for me.

  • I tried what you suggested but it did not work.


    I defined the suggested IP addresses but it did not have any affect.


    On 255.255.0.0, the KUKA Interface does not allow to define 172.31.1.x and 172.31.2.x. It throws an error saying IP conflict. Ideally, it should not say so because both the IPs defined are on different subnets.

  • The complete network is explained in the earlier post. I'm sure no other computer has the IP 172.31.1.147 and 172.31.2.147 because these IP definition gives no error on subnet 255.255.255.0. Only when I change it to 255.255.0.0, the controller shows IP conflict.

  • Hi,


    here is a screen shot from the german doc



    for virtual 6 I would use a local network address (Class C) starting with 192.168.1.xx and a subnet mask with 255.255.255.0


    (This combination always worked for me)

Advertising from our partners