I have recently upgraded to 2020LV 64-bit from 2017 32-bit only to discover that datasocket no longer supports OPC comms. To get round this I have implemented a 32-bit helper VI that communicates with the PLC as before, and transfers the PLC data to the 64-bit application via TCP/IP. It works but is a little bit messy. Is there an alternative where I can keep everything within my 64-bit application?
Did you manage to find a solution for this, or are you still using the workaround?
In the end I wrote a 32 bit server VI to communicate with the PLC. I am using TCP to send PLC data from this VI to my 64 bit application. It’s not ideal but it does work. Ultimately, I may use the UA protocol and write my own OPC server. But that’s for another day1
I haven't found a solution that I'm happy with.
Did you need the extra memory address space provided by a 64-bit environment?
An alternative, which seems more attractive and easier than the TCP/IP route, is to use shared variables to communicate between the 64 and 32 bit programs. I deploy shared variables in my 64 bit application and then access them with the 32 bit application. You do all the PLC comms in the 32 bit application. After I have read from the PLC I update the shared variables and the changes are picked up by the 64 bit application. I can also write from the 64 bit application to the PLC via the 32 bit application.