K-ROSET Lite Help!

  • I see you're using D or D+ Controller and I think you will struggle using TCP/IP via K-Roset for this.


    I myself, have never done any TCP/IP work in K-Roset using a D/D+ configuration, so never knew this was a problem.

    I have managed to replicate what you're seeing using D/D+ configuration and it is evident a connection request is coming in from within windows OS on the specified port, and even though K-Roset is accepting this request, it is not binding the port to the IP, so with my limited network skills, I am unable to determine the source of the request.

    However, using an E configuration with a ZX165U, this request does not appear to be seen, and therefore is not causing a problem.

    So, I can only assume/speculate this is a problem within K-Roset TCP/IP and the associated firmware/application programming within K-Roset.


    In usual circumstances, the accepted request would bind a socket no. provided by K-Roset to the incoming requested IP address.

    These details would be displayed in the zprsocket displayed information.

    But this is not showing a socket ID no from K-Roset or the source IP address normally displayed in reverse order - ie 1.0.0.127

    So I can only assume, this is a failing within how K-Roset is operating on the TCP/IP using the D/D+ Controller built in firmware for the simulation.


    I would be interested to see if there are any 'Network guru's' out there that could look into this and maybe track down a 'service' within windows that could be stopped and thus possibly prevent this from occurring.

    But even then, I believe the root cause would actually be attributed to K-Roset though.


    The only thing I can suggest is to continue development using a ZX165U using an E Controller inside K-Roset instead.

    This way you can test/prove your sequencing from a simulation perspective.

    Your final code should be transferrable and executable within a live D/D+ Controller when complete though.

  • AD
  • Hi,

    thanks for that. It works indeed under E-controller without any problems. Great - I can certainly use it for offline programming environment.

    Interesting enough, I've used TCPView to look into system sockets in use (https://docs.microsoft.com/en-…ternals/downloads/tcpview).


    It seems that TCP_LISTEN (with D/D+) does not open any socket actually within the system, where with E-controller it is opened immedietely by asproc.exe.

    Weird - perhaps a suggestion to K-Roset development team to fix in the new software release?


    Nonetheless, the workaround solution works well for me! Many thanks!


    Pat

  • Yes, I have to agree.

    It doesn't look like they have integrated the TCP/IP process fully into the asproc,exe for an external process.....just internal.

    Like you mention, the TCP_LISTEN doesn't seem to invoke the asproc.exe TCP connection at all.

    The socket ID is a clear giveaway to me, as the socket ID given, is not the socket ID usually given from K-Roset or a real world controller, so can only assume there is something missing in between the processes here.


    perhaps a suggestion to K-Roset development team to fix in the new software release?

    Good luck with that, D/D+ controller is now matured/discontinued, so I can't see any further developments happening with real world, or K-Roset.

    Unless someone else has discovered this issue and found an alternative solution.

  • Hi kwakisaki,


    I've been following this thread with great interest since I'm currently working on a project that requires TCP/IP communication between a Kawasaki robot and a computer. I slowly worked my way into programming Kawasaki robots so that I can handle motion programs and work with K-Roset. However, these advanced features like TCP/IP still cause problems for me. So, what I want to do:


    1. configure the robot as server and the computer as client

    2. make the robot constantly listen to the computer and react accordingly for the following events (triggered by strings that I send from the computer to the robot):

    3. do monitor commands (EXECUTE, HOLD, CONTINUE, SPEED etc.)

    4. LOAD an as-file into the robot memory

    5. Send a request from the computer to the robot to display its current pose (WHERE-command) and send this information back to the computer


    I have to say that the information as well as the program samples provided by you are a huge help in getting started with this topic. Starting off I just used "filesave.txt" and Hercules to establish a connection between my computer and the robot (for testing purposes I'm using K-ROSET instead of an actual robor atm). Just like balrog did, I can trigger MC commands within the PC-programm. The problem is, that LOAD and WHERE cannot be executed with MC.


    Port 9105 accesses the Terminal Editor.
    - This is directly connected to the Controller as the Command Line Interface.
    - Hence the login/command prompt.

    Instead, my idea was to directly address the controller via port 9105 which would make LOAD and WHERE possible. When I put port 9105 in Hercules and try to connect, "login:" pops up. However, sending the password "as" as mentioned by you causes a problem that I dont understand. For some reason this message doesnt reach the robot anymore, instead it is "sent and received" in Hercules. For clarification:



    Pink is usually the sent information, which then appears in K-Roset like this: Client: ...; here it repeats itsself in Hercules whereas in K-Roset no reaction can be seen). Also, I dont understand this blue row (NVT: FF FD 18). I think that I have a false impression on how port 9105 is accessible. I dont really find helpful content on the Internet though. Maybe you can help me in some way? You seem like an expert concerning Kawasaki robots :)


    Many thanks in advance!

  • You would probably be better off looking more into using the Kawasaki dll and then creating your own interface within windows.

    Using this method, you can connect via ethernet and send actual commands over as the dll acts as the interpreter, instead of having to use TCP/IP strings and ASCII messages and decoding them all etc.


    I'm not an expert in this side of things, but I played around with this back in the day and made a small interface up using visual studio community 2017 to test out something as a starter and it worked out quite well.

    You can connect live to a robot or use K-Roset to test it all out, and from what you've written, it sounds like a better route to me.

    (Attached is a video clip of what I did, and I'm sure this would be a better direction to take or at least something to consider as an alternative).

  • You would probably be better off looking more into using the Kawasaki dll

    MJ23 that's probably the best way forward. Especially if you're looking into file uploads.


    kwakisaki,

    I have a quick question regarding the AS if you could spare some knowledge. Is it possible to EXECUTE a program where it's name is stored in a variable?

    for example:


    $filename = "program1"

    EXECUTE $filename


    I've tried this via console and also via pc programs (MC EXECUTE) and it returns an error: ^(P0118)Illegal variable type.


    Any ideas?

    Cheers

  • I recall snippets of a conversation years ago I had regarding this - relating to RS232 and TCP/IP comms from a PLC to send program requests and the outcome was no from memory.


    The main reason was down to 2 things:

    - The interpreter does not evaluate anything contained within a string and just literally 'spits' it out.

    - The EXECUTE command is directly linked with the program named variable in the program register.


    The only real way of achieving it was by using either reals or strings in a CASE or SCASE statement to produce a lookup table of already existing programs.


    There's only one command I'm aware of that cross references string with programs and that is WHICHTASK, but this only returns a true/false result as a real variable if it is active in the stack or not.


    If there is a way, I'd also love to know about it...……..so if you stumble across anything, let us know.

  • kwakisaki  Patryk Zajdel Thanks for the quick response. After doing some research this definitely seems like the better option!


    May I ask a few questions regarding KRcc?


    - Is it correct that the programming language is C#?

    - In the documentation that I have it is stated that KRcc works only for E Controller. I am using an F Controller for the robots RS007N and RS007L, respectively. Is this gonna cause any problems?

    - Do you know if KRcc also works with the newer .NET Core instead of .NET Framework which is supposed to expire in late 2020? Best for my solution would be to integrate some Buttons (just like in the Video posted by kwakisaki) into a webpage... From what I've read so far this works only with ASP.NET Core which is not part of .NET Framework.

  • Unfortunately I don't have any further information regarding KRcc, except:

    - I do believe it is C#.

    - My video example was tested in K-Roset using an F Controller and worked in the same way (but not confirmed on real robot - But would assume it will).

    - You would need to speak to your local distributor to obtain those specifics I think to get more accurate information.


    The F Controller does also include a revised web server (the original they implemented back in the day was shocking) but I think they are starting to also develop that side of things in future models.


    I have attached the manual I have (but I have never used it)…...maybe worth looking into.


    Also, can you create a new thread for any further KRcc discussions, as this thread is becoming convoluted with a variety of topics...…:top:

  • Also, can you create a new thread for any further KRcc discussions, as this thread is becoming convoluted with a variety of topics...…:top:

    You are completely right, this was getting kinda off topic sorry for that. However, I wont need further discussions since I managed to finish my project with the information provided here so far. I just wanted to say thank you for your great advice! :-)


    KRcc was a good solution and it's really not that hard to get into it. I ended up using Winforms with VisualStudio and built a nice little application to control the robot. I can recommend this to everybody out there!

  • Patryk Zajdel

    Very impressive, looks really good indeed.

    It also splits any large robot program code and uploads it in segments while in operation, not to overfill the limited internal D-controller memory.

    Now this is 'gold', and I think many people would be interested in this feature.


    Nice work.......:top:

  • Hi kwakisaki,


    We were contacted by Patryk to see if we could develop a live communication between RoboDK and Kawasaki robots the same way he did for his software.


    We took a look at it and it should be easy enough.
    But I want to quickly talk to you regarding the usage of the library you provided in a commercial context.

    Do you know if we are allowed to?


    I don't seem to be able to send you a PM, so feel free to contact me if you want to discuss that privately or if you know whom we should ask.


    Jeremy

    RoboDK - Simulation and Offline programming software for industrial and collaborative robots.

    Visit us at RoboDK.com
    Take a look at our tutorial videos on our YouTube channel.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now