RobotStudio event

PC SDK - 64 dll






Any one succeeds to work with IBB ver 5.14 with 64 bit project?<?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />



I tried to use them but getting
exception when it need to loads ABB.Robotics.dll




John Wiberg2012-03-06 16:10:39

Comments




  • Hi avicohen,
     
    Right now the PC SDK does not fully support 64 bit. (But RS SDK does).
     
    So if you check out the release notes you will see it mentioned, along with the workaround for your issue.
    [quote]Note! PC SDK application that shall be executed on Windows 7 ?_" 64 bit edition, must be
    built with target platform set to ?_ox86?__. The default setting in VisualStudio 2008 is ?_oAnyCPU?__[/quote]
    This is due to some old communication parts vs the robot.
     
     

    Niklas Skoglund2012-03-06 23:44:51




  • Thanks John for the information.<?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />



    Some beginner questions if possible.



    1. What is the different between using PC SDK and RS SDK for develop application ?



    2. Is there a possibility to develop an application which connect to a real robot
    load a module to robot and run a routine using RS SDK ?



    3. Where i can get an example for this ?



    Regards



    Avi.








  • [Double post removed for clarity]


    John Wiberg2012-03-07 16:08:57


  • 1) PC SDK is for direct communication vs the controller. Virtual and Real. Like reading RAPID variables on the controller or loading modules etc.
    2) Nope. As soon as you want to communicate with the controller you are going to use the PC SDK.
    3) If it's an example of 2 then no.


  • Thanks Jone for the information. One more Question if possible.<?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    As I understand changing the target platform to x86 will create an 32 bits application, and not 64 bits ?<?: prefix = o />

    So it is not real workaround for the problem in case that my target must be 64 application ? Or I am missing something?

    The only way I can think of is to create 2 exe's one for my application (64 bit) and one for PC SDK (32 bit) and communicate between them using socket or WCF.

    Can you suggest any other workaround which involved with only one exe ?

    Thanks again.

    Avi



  • You are right. It's not a solution, only a mere workaround.
    So if you need the app to be in 64 bit then yes you are right you'd have to divide it up. Maybe not necessarily into two exe.


  • Here is the story:

    First of all, any 64-bit application (process) must consist of only 64-bit components/dlls. This is an operating system restriction, and just something one has to live with. Conversely, a 32-bit process must consist of only 32-bit components.

    Now, managed .NET dlls are a bit special. As long as they don't reference any native dlls, the same dll can run inside both a 32-bit and a 64-bit process.

    The current version of PC-SDK will only work inside a 32-bit process, even if it is a .NET API. That is because it has some native parts inside it. This means that any app you write using PC-SDK today has to be a 32-bit app. We are looking at providing a version of the PC-SDK for 64-bit apps for a future release, but I cannot promise any dates.

    The RobotStudio SDK is primarily for building add-ins to RobotStudio. The released version of RobotStudio is 32-bit only, but a 64-bit version is in development. Again, any "pure" .NET addins will be able to run fine on both 32 and 64-bit RobotStudio. An addin with references to native 32-bit code (such as todays PC SDK) will not run on 64-bit RobotStudio.

    /Anders

    Anders Ekelund
    Architect, RobotStudio
    ABB




  • Thanks Ekelund and John for the information.<?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />



    It look like that the only solution right now for
    developing an 64 bit application which connectet to ABB libs is to split the project to 2
    exe one 64 and one 32 and establish communication between them.



    its add a lot of complexity to the code but I
    can't find any other workaround.



     



    Avi.