From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

Getting the Temperature from TC001

I am trying to get the temperature from a thermocouple and display it on my main window. It works perfectly on my computer. The temperature updates every two seconds as it is supposed to. I had previously posted a question about required DLLs for this to work on the lab computers which do not have NI software installed. I was told I needed to install the NIDaq Runtime engine. I installed that but still got the error:

"System.IO.FileLoadException: A procedure imported by 'NationalInstruments.DAQmx.dll' could not be loaded."

The stack trace takes it back to the constructor where I call the "Watch Temperature" method which does the following.

 

                try
                {
                    TempScanner = new Thermocouple();
                    TempWorker = new BackgroundWorker();
                    TempWorker.WorkerReportsProgress = true;
                    TempWorker.WorkerSupportsCancellation = true;

                    TempWorker.DoWork += (s, e) =>
                    {
                        TempScanner.TempWorker = TempWorker;
                        TempScanner.MonitorTemp(ref watchTemp);
                    };

                    TempWorker.ProgressChanged += (s, e) =>
                    {
                        var t = e.UserState as Temperature;
                        this.Temperature = t.Temp;
                    };

                    TempWorker.RunWorkerCompleted += (s, e) =>
                    {
                        TempWorker = null;
                        TempScanner = null;
                    };

                    TempWorker.RunWorkerAsync();
                }

The critical parts of the thermocouple class are shown below.

 

        public Thermocouple()
        {
            //These are the default values.
            SecondsDelay = 2;
            MinimumTemp = -70;
            MaximumTemp = 200;
            List<string> chnls = GetPhysicalChannels();

            PhysicalChannelName = chnls[0];
            string[] ary = chnls[0].Split('/');
            AssignedChannelName = ary[0];
            ThermocoupleType = AIThermocoupleType.J;
            tempChannel = tempTask.AIChannels.CreateThermocoupleChannel(
                        PhysicalChannelName, AssignedChannelName, MinimumTemp, MaximumTemp, ThermocoupleType, AITemperatureUnits.DegreesC);
            tempReader = new AnalogSingleChannelReader(tempTask.Stream);
        }

        public void MonitorTemp(ref bool watchTemp)
        {
            while (watchTemp)
            {
                if (!TempWorker.CancellationPending)
                {

                    Temperature t = new Temperature();
                    t.Temp = GetTemp();
                    TempWorker.ReportProgress(100, t);
                    t = null;
                    Thread.Sleep(milliseconds);
                }
                else
                {
                    tempReader = null;
                    tempChannel = null;
                    tempTask = null;
                }
            };
        }


The runtime engine I installed was NIDAQ1410f1Runtime.

 

 

As you can see it is not all that complex. There must be a simple solution to this problem.

 

Thank you

0 Kudos
Message 1 of 2
(2,206 Views)

What version of the DAQmx do you have on the working computer? It sounds like the development computer has a version newer than 14.1, and you just need a newer version of the runtime.

 

If it turns out to be a version conflict, you can download the latest version of the runtime here:

NI-DAQmx Runtime 17.1.0
http://www.ni.com/download/ni-daqmx-run-time-engine-17.1/6838/en/

NickelsAndDimes
Product Support Engineer - sbRIO
National Instruments
0 Kudos
Message 2 of 2
(2,159 Views)