Hello everyone, I'm a newbie kuka robot. I am using the robot kuka krc4 v 8.3.351 and I need to read the current value position robot for an application. This value returns to WF C# using TCP protocol but I don't know how to do it. Can you help me ? Thanks all.
Read current value position robot kuka
-
Nguyen Truong Chinh -
March 7, 2023 at 2:50 PM -
Thread is Unresolved
-
-
SkyeFire
March 7, 2023 at 2:51 PM Approved the thread. -
This value returns to WF C#
WF? I assume you are running a C# program on a regular desktop PC?
using TCP protocol
TCP/IP -- in what way? ASCII text? Binary stream?
KSS only supports TCP/IP communication if the EthernetKRL (EKX) option from KUKA is installed. You can find many discussions of EKX in the forum archives, but basically EKX allows you to built a socket communication channel on the robot that can exchange information with a PC over TCP/IP or UDP, in either raw ASCII, binary, or XML.
-
WF? do you mean WPF? what value you are reading and in what format you receive it?
what are you having problem with? C#? WPF? using TCP? more info is needed
-
WF? I assume you are running a C# program on a regular desktop PC?
TCP/IP -- in what way? ASCII text? Binary stream?
KSS only supports TCP/IP communication if the EthernetKRL (EKX) option from KUKA is installed. You can find many discussions of EKX in the forum archives, but basically EKX allows you to built a socket communication channel on the robot that can exchange information with a PC over TCP/IP or UDP, in either raw ASCII, binary, or XML.
WF? do you mean WPF? what value you are reading and in what format you receive it?
what are you having problem with? C#? WPF? using TCP? more info is needed
WF is winform in C#, I would like to read the current value of the robot and WF C# will received this value. On WF c#, it will present on label for monitoring. I'm having trouble with set up communication at kuka robot, about set variable to store values current position of robot and how to set up to send this values for WF C# using TCP/IP
-
ok but you still did not answer any of the questions. so let me offer some suggestions...
to read robot axis positions you may want to check $AXIS_ACT
for Cartesian positions you will want $POS_ACT
but axis positions you can read any time without restrictions, cartesian position is only available when tool and base are selected.
next, if you want to develop something in C# to communicate with robot there are several paths one can take:
1. using KUKA.EthernetKRL or also KUKA.OPC. this is the standard way, requires optional package EthernetKRL or KUKA.OPC. documentation includes message format, same code etc.
2. using KUKA.PluginSDK. as far as i know it was only used for internal development, not sure if it is offered to 3rd party unless that 3rd party was close partner collaborating with KUKA.
3. using one of the servers (KVP, KVP for C4, C3 bridge...). The servers are free to use but you need to implement matching client in your application. if using KVP or C3B, server must be installed on the robot. if using KVP for C4, server does not need to be on the robot, it can be running on external machine. these servers are not created or supported by KUKA. they are largely based on very old and spotty info and a lot of reverse engineering.
4. writing code that directly talks to KSS. basically doing in your own code what the servers do. this requires insider knowledge (from KUKA or by reading source code of the servers etc.).
which approach one chooses depends on number of things including:
a) support (not just development but long term support so your effort does not go to waste when next KSS is released),
b) where the application is supposed to run (on the robot or on external machine), anything that one puts on the robot need to be lightweight, you do not want to hog resources on a machine that does things in real time.
c) type of access (read only, read write) and operating mode
d) frequency of access
e) SPOC, etc.
those things hold irrespective if your application is Windows form, WPF, CLI or webpage or something else.
"using TCP/IP" also does not tell much. the implementation is different for client and for server.
using C# also does not tell much. it is just a name of a programming language. could as well be VB, or C++ or Python or whatever.
where this application is supposed to reside is also something to consider. if it is running locally inside KRC? is it integrated into KSS menu call structure? is it integrated into KSS window structure? is it running on external machine? what else is needed to be installed or configured? this will have an effect on things like network settings.
how many robots you want to monitor? there is a big difference between 1 and 100. if it is 100, it is probably good idea to avoid installing and configuring something 100x.
all of this was covered before. what research did you do?