thanks for testing exactly what i need. On what did u test this. OfficePC or Officelite?
KUKAVARPROXY for KRC4
-
dddomodossola -
February 3, 2023 at 9:14 AM -
Thread is Resolved
-
-
OfficeLite
-
cool thanks
-
Hi Mr, the only way to connect to the ips its from the discovery function?, if i need to read a variable from specific ip, but without using the for ip in IPs because every cycle the value of the robot its from different robot, i have 10 robots.
Thanks
-
the discovery function is used to find out what robots are accessible.
but that has nothing to do with connecting and exchanging data with the robot. in fat one can skip discovery.
when using KVPC4 one need to to connect to it, optionally run discovery (use own list of IPs), then select IP to be accessed and then exchange the messages.
one can select IP only when needed (and keep messaging that KRC).
another option is to select IP every time - before each message. your call...
-
Hi Mr, this example its in python or in your client?,
tested on my busy PC while running bunch of other apps using structure that resembles following
Codeinit connection with KVP_C4 set robot ip start stopwatch FOR n=1 to 1000 read $AXIS_ACT textbox.append( result and status) NEXT stop stopwatch display stopwatch result
the "read" in above pseudo code included composing message each time and decoding each response and stripping out timestamp.
it takes about 11000ms or 11ms per message
i suspected that UI probably takes a lot of time adding more and more text to a textbox, so i also tried commenting out the textbox.append. in this case result was about 6400ms or 6.4ms roundtrip per message.
the extracted value is 147 byte long:
Code$AXIS_ACT, {E6AXIS: A1 -97.3276443, A2 -43.2973099, A3 109.029694, A4 -8.19240665, A5 -4.03252316, A6 -55.1122, E1 0, E2 0, E3 0, E4 0, E5 0, E6 0}
according to task manager memory load was negligible, CPU load by KRCserver was averaging about 1% (0.9-1.1%)
command to set robot ip is processed only locally by the server (nothing to transfer to/from robot) so it should be faster than reading variable.
for that i moved that command inside loop just before read, so it too is executed 1000 times.
this was done in 7000ms or 7ms per pair of commands (setIP + read var). so setIP round trip was averaging 7ms-6.4ms = 0.6ms
next, i replaced reading of $AXIS_ACT to $OV_PRO to see effect of much shorter response. $OV_PRO was set to 50 so payload is only two characters. loop still had both commands to set robot IP and read variable, no output to textbox.
to my surprise this took on average a bit longer 7100ms (it was 5000-7500ms in multiple runs)
then i tried to misspell variable. this should take even longer, so removed dollar sign and tried reading nonexistent OV_PRO, loop took 18500ms pretty consistently.
-
this was done in my app (WinForm created in VisualStudio)
-
can you share a example?
-
an example of what exactly?
the pseudo code that was used for benchmarking is already shared. this can be implemented in any programming language that is capable of using TCP socket. btw the results are also shared so what is the point in repeating the test? i don't think this is a heavy load for the machine. in fact i did my test while computer was running quite the load. while values will vary somewhat, my goal was getting just some figure for orientation.
-
Hello friends,
Just to inform that the repository already contains a client example in python
KUKAVARPROXY_KRC4/py_kukavarproxy4_client.py at main · skilledAutomation/KUKAVARPROXY_KRC4KUKAVARPROXY for KRC4 controllers. Contribute to skilledAutomation/KUKAVARPROXY_KRC4 development by creating an account on GitHub.github.comSo rafa del angel can use it.
Kind Regards
-
and the message format is documented
-
Hello friends,
Just to inform that the repository already contains a client example in python
https://github.com/skilledAutomat…roxy4_client.py
So rafa del angel can use it.
Kind Regards
hi when im trying to read $OUT[] for readArray i have an error
-
looks like wrong call structure. looking inside PY file indicates that readArray has two parameters but you are only transferring one.
-
Hello guys! I'm new here and I wonder if I can simulate digital inputs/outputs with this soft? My goal is starting several robots program by one click from pc and maybe there is simpler way to implement this
-
inputs are read only. controlling inputs needs IO driver and so far i am not aware of product that can do that other than Y200. but writing outputs or any other variable (that is not read only) is not a problem.
-
writing outputs or any other variable (that is not read only) is not a problem.
Sorry to bother you, but does this allow me to send an output from my pc? If I put input in KRL waiting for output before start. I just found this in documentation of KUKA Variables:
$WAIT_FOR
Description WAIT FOR statement at which the robot interpreter is currently waiting
Reading of the variable is only possible in a robot program. It cannot be read
in a submit program. The variable is write-protected.CodeIt's hard to understand for me if it can work. Now I have in my mind something like this: //it's pseudocode wait for $in[1] move robot to start position wait for &in[2] start .emily file via ready2_animate
Added: I don't want to clogging this thread so I'll just ask here.inputs are read only.
As I understand inputs receive outputs so I don't need to control inputs or I am wrong?
-
You cannot write to inputs.
Therefore your program using
Wait for $in[1]
Will wait forever, since the input does not change
But you can use other variables...
-
As I understand inputs receive outputs so I don't need to control inputs or I am wrong?
Not exactly. $INs can only be "written" by KUKA I/O drivers (Ethernet/IP, Profinet, EtherCat, etc). From the program level, $INs are read-only. KUKAVARPROXY cannot (as far as I know) control $INs, as it executes at the program level.
That said, WAIT commands can wait for $OUTs or variable states:
WAIT FOR $OUT[1]
WAIT FOR MyIntegerVariable==17
-
That said, WAIT commands can wait for $OUTs or variable states:
WAIT FOR $OUT[1]
WAIT FOR MyIntegerVariable==17
But you can use other variables...
Wow, that's what I looked for, thanks guys a lot!
-
Hi,
Thanks for this very interesting thread.
I was actually wondering if there is any way to interrogate kukavarproxy on port 7000 via a linux command line ?
I recall having read something like gryphrx or gryphtx. Most likely using the Gryphon Communication Protocol but cannot get my hands on these utilities
Thanks
-