How to create custom HMI on KUKA KCP???

  • considering fact that you are asking this, you should really think if you want to get involved at all. you have been warned.


    https://www.wikihow.com/Create-DLL-Files

    https://www.youtube.com/result…+dll+file%3F&search_type=




    any application development software targeting Windows can be used ot make DLL file.

    heck if you really wanted to, you can hand assemble it using hex editor :winking_face:


    one easy way to start is to get programming software from company thad made Windows itself.

    for example you can get VisualStudio of particular vintage or edition and get started. there is tons of tutorials on Youtube.

    for example VB.NEt or C# are some of languages available in VisualStudio.


    common path is to start with basics and adopt more as you go along.

    learn about forms and standard controls, declarations, properties, objects, classes, timers etc.

    then try something bigger like DataGridView etc.

    then add reference to external controls (OCX, ActiveX) and use them in your program (this opens up a world of possibilities).

    Dependencywalker is used to sniff out what they can do and what else they depend on.

    then learn communication (open close socket, etc.) and communicate with KRC4 for example.

    finally how to do the same but pack it into a DLL instead of EXE.

    now you need to figure out how to integrate it in KRC4 HMI so it can be loaded, and selected from menu.

    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


  • Thank you very much for your answer, I have an application that was created on the robot and I would like to change it, but I can't open the dll to analyze the code.

    I will follow the recommended study path.


    In attachment dll

  • programmer writes code in one or more files. this set is called source code. it is what programmer wants computer to do.


    but computers cannot execute source code. there are two basic ways to proceed:

    a) use special program called interpreter that will parse and process instructions in the source code one line at a time.

    b) use special program called compiler that will convert source code into executable file (which is in a binary format).


    compilation may take long time and multiple passes to get desired result. interpreting does not have that luxury so of course compiled programs are executed faster. also interpreters require distributing source code but most companies are interested to keep their effort protected. finally executing compiled programs is simpler. user can focus on use of application rather making adaptations, setting paths etc.


    DLL is a binary file created by compiler. it does not contain source code. analysing and making changes to such files is EXTREMELY difficult and requires very advanced and specialised knowledge. it is so hard that even in a rare case where modification is done, it is a hack at best a patch (replace couple of bytes with hexeditor). essentially there is no decompiler, at best you can try disassembler but any sybolic data, comments etc will be missing. also the code may not seem intuitive any more since compilers have optimised hell out of it, to work with thin one really need to know a lot, have tons of time and patience. which is not worth it.


    just to put it into perspective:

    if learning to program is like learning to drive a car,

    then developing apps is like being ale to repair cars for a living.

    then reverse engineering compiled DLL or EXE is more like finding charred remains of a crashed UFO then fixing it and then optimising its inner working. all because you really wanted the extra trunk space when doing grocery shopping (this is what i mean by not worth it).


    if you are really interested in doing something, you will have to develop it from scratch, not patch some binary file.

    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


  • I just wanted to change the pictures on a kkk screen,

    now I understand that I will have to go a very long way.


    Starting again:


    </LegacyPlugIn>

    </KukaRoboter.SmartHMI.LegacyPlugIns>

    <KukaRoboter.SmartHMI.Menu type="KukaRoboter.SmartHMI.UIFramework.Menu.MenuRootImpl, SmartHMI">

    <MenuRoot SystemName="MainMenu">

    <MenuItem DisplayName="IHM">

    <CommandCall Target="LegacyLoader.OpenPlugIn">

    <Argument Name="PlugInName">HMI</Argument>

    </CommandCall>

    </MenuItem>

    </MenuRoot>



    this code creates the button in the main menu and calls HMI.dll

    I will follow your suggestion to create a new application.


    Thank you very much for your help

  • as long and you have a plan. i am not sure what you are really after since your posts keep changing objective:

    1. create DLL

    2. edit existing DLL

    3. replace some picture


    and what the heck is KKK screen? :fearful_face:

    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


  • You’re right, I’m still a bit confused on the way to reach my goal, thanks for your patience,


    in fact I need to change the layout and some figures on the attached screen.

  • the simplest and most efficient way is to contact author of the DLL to make changes you want.


    short of that, you can recreate this on your own from scratch as mentioned before. however this will be a significant effort and if you don't already have serious programming skill, may take years to develop. Note, forum is meant as a conversation place to share advice and point people in right direction. this is NOT substitute for formal training.


    alternative to creating everything on your own from scratch is to simply purchase it (from KUKA or 3rd party) since there are ready to use HMI packages for Krc4. this is MUCH simpler path and you should be able to get result in maybe few days or maybe 2 weeks. and it does not cost an arm and a leg (usually). Advantage of purchasing product is that things are tested, they are ready to use, learning curve is short and such products come with support. if you are developing something on your own, you need to know much more to develop usable product and - you are practically on your own.


    Example of commercial HMI for KRC4:


    KUKA.Zenon: basically full fledged HMI suite. requires purchase of Development license to create applications (this is what you install on your computer). you also need RunTime license for software that installs on KRC4. if you have 5 robots where you need custom HMI, you can buy 1 Developer license and 5 RuntimeLicenses. (one Runtime is needed for each robot). This is really nice product but it costs more than others. price of Runtime license depends on number of tags you plan on using (more tags = higher cost). i don' know the prices but i would guess that every single license is maybe $2k or so...


    Kuka.EasyHMI:

    is a low cost (guessing under $1k) per runtime. there is no Development license cost as application is generated by WorkVisual (free download). it allows to create many applications, each can have multiple screens etc. you can choose screen size t obe half a page or full page. but the number of controls you can place per page is limited by selected grid size. This looks like a response to OrangeApps.MyHMI which too did not need special development package.


    OrangeApps.MyHMI: a lower cost than KUKA.Easy (price is on the website). It predates Kuka.EasyHMI and it made it possible to create basic HMI using any text editor. to run it, one would need a runtime license per controller. free trial version is available.

    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

  • Hello. My name is starsky and i own a kuka 90 krc4. I been reading the the post but seen that the information is still not clear for me and I am full developer on c#.

    i am new on the kuka development. i just want to ask if you know if kuka provide a development libraires for there robots.

    it is because it seems for me that the KUKA.Zenon it offer more that deveploment.

  • Only for information


    if you are smart enough you can use kuka librarby (KukaRoboter.LegacyKrcServiceLib.dll) to Access KRC variables like tool, base, robot Actual position etc etc.


    I have created my own interface which I have linked in kuka Diagnosis Menu which find the Spot welding point name with x,y,z, A,B,C cordinates with tool and base also save as an excel file.

    Can someone breakdown or guess how approximately was it all implemented. I know how to read the Variables from the robot using dll and how prepare the functions on the background. What is the procedure of integration in that case?


    Is it like on call of Diagnosis menu it starts to draw ill this tables and replacing the casual appearance of the Diagnosis Menu?


    Was Diagnosis Menu used due to the limitation on Kuka hmi to integrate the new button with custom commands?

Advertising from our partners