02-19-2025 09:00 AM
Hello
I am attempting to connect a Pico TC-08 data logger device to labview 2020 with the goal of getting a temperature reading from a single thermocouple (to test right now).
This is my block diagram, and it is seen that the error 1097 comes at the beginning.
I have already run as an admin, restarted labview, ensured the correct path in the call library functions, changed usb ports, etc but cannot solve this.
Any help in the right direction or advice would be appreciated.
Solved! Go to Solution.
02-19-2025 09:09 AM
Try it in LabVIEW 32-bit, high chance the dll may have been compiled for 32-bit.
02-19-2025 09:14 AM
Hi!
thank you for your response. We are running it in the 32 bit version. For some reason, the only thing we are able to do is open the tc-08 using the call library function. The rest of the consequent blocks are: set channel -> run -> get temp -> stop -> close
02-19-2025 09:15 AM
Error 1097 just means the DLL you are using threw an error: Error 1097 Occurred at Call Library Function Node - NI
You may have created the CLFN wrong.
It could be the bit endianness. Are you using 32-bit LabVIEW with 32-bit DLL. Or 64-bit for both? You can't mix them.
Did you try to use the standard Pico software to connect and read from your logger before you tried LabVIEW? Did it work?
Did you try using the wizard to create your VIs from the DLL? Tutorial: Creating Wrapper VIs for C/C++ DLL functions using the Import Shared Library Wizard - NI C...
02-20-2025 03:43 AM - edited 02-20-2025 03:45 AM
Actually if the bitness doesn't match, LabVIEW will correctly claim that it can't load the shared library and the VI is broken (or if you enabled to specify the library path and name from the diagram it will give a file not found error).
1097 means something somewhere badly messed with the integrity of the memory and/or process space.
This can be because of wrong configured parameters, wrong calling convention, bad parameter values that the DLL is not prepared to handle, or bugs in the DLL.
After a 1097 error, your process integrity is not guaranteed anymore and continuing from there without restarting LabVIEW can potentially corrupt VIs in memory and if you happen to save them, corrupt the file on disk. Other possibilities could be to call OS functions with parameters that could hose your system.
Basically error 1097 means: LabVIEW detected that something is not as it should have been, such as stack or memory corruption. If you have enabled maximum Error Reporting in the Call Library Node configuration, it attempts to limit the damage as much as possible, for instance by adjusting the stack to what it should be according to the Call Library Node configuration, but that is just a bandaid to prevent the worst. It can not even start to guess what exactly went wrong, except that something went wrong, so fixing it after the fact is not really possible, just trying to limit the damage, so it is at least able to report an error without running into nirvana while trying to do that!
02-21-2025 03:03 PM
Have you tried the examples in GitHub - picotech/picosdk-ni-labview-examples: A set of National Instruments LabVIEW examples for Pi...?
Did you follow the instructions to place the SDK lib in the correct location?
02-23-2025 07:57 PM
Hi everyone,
I got some helpful suggestions on my last post. So I decided to use the GitHub libraries (https://github.com/bankrasrg/usbtc08) and upon playing around with some of the VI's I noticed that the one that gives continuous temperature (streaminggetemp.vi) only goes through the "false" part of the code and for the life of me, I cannot figure out why!
My goal is to put some of the VI's I need (open, channel setting, stream for reading temps, stop and close) into one VI so I can see the temperatures of all 8 channels changing on the front panel. This is my block diagram that is not working. I am aware that the indicators are not connected but I tried to use 8 of the getsingle VI's for all of the channels but did not find success.
I should note that using the getsingle.vi works, so I can use the code for just one channel/ thermocouple. I need to get the them for all the channels, so I was hoping I could just the get stream one instead and figure out why it only runs for false and I never see the true. I did try to modify it with >= and it still did not work.
I would appreciate even the slightest bit of wisdom in some direction! Thanks.
02-23-2025 07:59 PM
Thanks for the insight.
02-24-2025 12:35 AM
Hi ahmhafsa,
@ahmhafsa wrote:
I noticed that the one that gives continuous temperature (streaminggetemp.vi) only goes through the "false" part of the code and for the life of me, I cannot figure out why!
Which of the 4 case structures in your image "goes through the false case"?
You really should provide some more details!
@ahmhafsa wrote:
My goal is to put some of the VI's I need (open, channel setting, stream for reading temps, stop and close) into one VI so I can see the temperatures of all 8 channels changing on the front panel. This is my block diagram that is not working. I am aware that the indicators are not connected but I tried to use 8 of the getsingle VI's for all of the channels but did not find success.
I don't think calling 8 subVIs in parallel in random order (as there is no "THINK DATAFLOW!") will work as expected with your device…
You also don't show where you want to display the readings nor how to get those readings.
You even forgot to attach your VI and to show your channel settings!