Fanuc PCDK reverse engineered for .NET

  • Hi,


    I have reverse engineered the Fanuc PCDK library. I now have a pure .NET DLL (no c++ native dependencies, compatible with .NET standard, framework and Core) able to retrieve the robot position (TCP and joints), the robot state (running program, alarm state, ...), read and write registers, transfer and trigger the execution of a program.


    As it is .NET, it can also be used in LabView, Matlab or other... I tested it with .NET Core and it runs on Windows, Linux and MacOS.


    I need these features for one of my projects, but I wonder :

    • Do I have the right to retroengineer this library?
    • Do you find it useful to have a pure .NET lib ?
    • Can I legally sell this library (obfuscated version) ?


    Here is an old Related thread and another here

  • Given Fanuc's aggressiveness in defending their copyrighted manuals, I would expect at the very least a cease and desist letter from Fanuc's lawyers.


    If you wanted to continue, the court system has generally been alright with this type of reverse engineering, as long as no fraud is involved, as it reduces monopolistic behavior. I am not a lawyer, so I suggest you consult with one.


    reverse_engineering.htm

    Atari_Games_Corp._v._Nintendo_of_America_Inc.

    Sega_v._Accolade

    Check out the Fanuc position converter I wrote here! Now open source!

    Check out my example Fanuc Ethernet/IP Explicit Messaging program here!

  • (Disclaimer: I AM NOT A LAWYER)


    I have to go with Nation on this one. While I would love to see a Linux PCDK implementation, especially a 3rd-party one (and double-especially if it were open source), the legal issue seems to turn on one critical question: Did you create your interface from scratch, or by decompiling Fanuc's PCDK DLLs and translating them?


    Generally, if you did it by purely "white room" means -- reverse-engineering the protocol from scratch, without any access to Fanuc's source code, it's legal. However, proving in court that you had no "insider knowledge" or reverse-compiled Fanuc's software could be difficult. And even if you're 100% legal, Fanuc might well still be willing to spend the money to tie you up in court until you go bankrupt from paying defense attorneys.

  • Sorry for my question. But can you share your developments with the community (if you can't sell them) please?

    For example I have a similar problem to send and read registers and alarms data from robot to Linux. And I could not understood in protocol by observed the Wireshark frames.

  • ahah still alive :winking_face:


    After discussion with Fanuc, PCDK is an old protocol whose sustainability in time is no longer guaranteed.


    Fanuc advised me to look into "Robot Interface" instead. So I'm implementing it in .NET. There are almost the same features as in PCDK : access to I/O, remote control of the robot, access to the registry, robot status...


    For your information, I just published this kind of library for Universal Robots (https://underautomation.com).

    Next month, I will release the same one for Yaskawa. And then, I will industrialize the library for Fanuc. So no release before the end of this year.

  • Yes, but there is nothing to install on the robot, the goal is to implement the native communication interfaces in a fully managed .NET DLL.

    Was there any outcome for this, and what are the options to aquire a copy?

    Thanks

Advertising from our partners