Is CJC compensation automatically applied to Virtual Channels created with MAX?

I have a SCXI 1000 chassis, a SCXI 1102 module and a TC 2095 terminal block. I am configuring virtual channels with the names TC(n) where n is the channel number. When I configure the virtual channel, I am selecting 'built-in' CJC. The question I have is:
When I reference the virtual channel from my DAQ application, is the data I receive already cold-junction-compensated, or do I have to read the CJC voltage as a separate channel, and apply the correction factor manually on my block diagram (like we had to do in the old days)?
I gather that the data that I read, which is obviously scaled to engineering units, is, indeed, cold-junction compensated, but I would like to be certain that t
hat is the case. Thanks.

Wes;
You are right. That is the way it works. If you specify the CJC compensation in MAX when creating a Virtual channel, to be the built in CJC, the data you get is going to be CJCed already.
Hope this helps.
Filipe

Similar Messages

  • Is There a way to programmatically extract global virtual channel info from max?

    I have a group of DAQmx virtual global channels setup in MAX and I would like to be able to programmatically extract the physical channel information to be included with the data file. In the past I have been able to use traditional NI-DAQ channel utility vi's to accomplish this, but they only see traditional NI-DAQ virtual channels and not DAQmx virtual channels. Is there a group of vi's for extracting DAQmx virtual channel information? I'm using Labview 7.1 with a Windows XP OS.

    Paul,
    I can access basic properties using the approach you described, but do you know how to get the units from the global virtual channel?  Say I had a general appliance for reading in load cells, and I wanted to have the axis labels in a graph show the units of whatever load cell had been selected.

  • Scale Type of DAQ virtual channels configured using MAX

    I configured some analogue input and output channels using Measurement & Automation Explorer, under Data Neighborhood. One of the attributes I could change is called "Scale Type". I'm wondering what it's for, or where I can find information about it. Thanks

    Amyz,
    The most helpful document I found was the DAQ Channel Wizard Tutorial: http://www.ni.com/support/labview/toolkits/chanwiz​/. Step 7 of analog input or output briefly describe the scale modes. Good luck with your application.

  • Applying physics to movieclip created with createEmptyMovieClip...

    Hey all,
    Im new to the forums and actionscript so be generous...
    As the title suggests i want to apply physics (gravity mainly) to a line drawn with the curser using the createEmptyMovieClip method.
    Below is the code in the main frame (sorry its a bit long), what I'm trying to do is make something like crayon physics (i know it will be difficult).
    So far i can draw lines and make certain objects ( a ball for example) be affected by gravity, but when I try to make the drawn lines be affected by gravity it stuffs up.
    The first line drawn is produced in the wrong position, (it should be at mouse point but isn't) and you can't draw any subsequent lines. This problem doesnt exist when i remove the gravity, any help is much appreciated.
    Basically what i want is that each line that is drawn can have actions assigned to it... (so i can add gravity and unique properties for different line types)
    Hope that makes sense and you can help .
    //force settings
    //Drawing tools
    _global.general = 0x0000FF;
    //blue
    _global.rubber = 0x9400D3;
    //purule
    _global.spring = 0x32CD32;
    //green
    _global.rope = 0x8B4513;
    //brown
    _global.explosion = 0xFFFF00;
    //yellow
    _global.explosion2 = 0xFFA500;
    //orange
    //tool setings
    var thickness = 2;
    _global.tool = general;
    var alpha = 100;
    //Scene colours
    var land = 0x000000;
    //black
    var prop = 0x1D1D1D;
    //charcoal      (non-gravity affected prop)
    var gprop = 0x696969;
    //dim gray      (gravity affected prop)
    var backg = 0xD3D3D3;
    //light gray
    //Active objects
    var main = 0xFF0000;
    //red
    var orange = 0xFF4500;
    //orange
    var a = 1;
    var b = gen;
    var menu = 0;
    var d = 0;
    LineA = new Array();
    this.onLoad = function() {
    for (a in LineA) {
    LineA[a].power = 0.3;
    LineA[a].yspeed = 0;
    LineA[a].xspeed = 0;
    LineA[a].friction = 0.95;
    LineA[a].gravity = 0.1;
    LineA[a].thrust = 0.75;
    this.onEnterFrame = function() {
    d++
    for (a in LineA) {
    LineA[a].xspeed *= friction;
    LineA[a].yspeed += gravity;
    LineA[a]._y += yspeed;
    LineA[a]._x += xspeed;
    onMouseDown = function () {
    createEmptyMovieClip("Line", 1);
    Line.lineStyle(thickness, tool, alpha);
    // The function onMouseDown is activated when you click the mouse
    button.
    Line.moveTo(_xmouse, _ymouse);
    // This moves the line to the starting point, which will be directly
    where you
    // clicked._xmouse and _ymouse are the x and y position of the mouse.
    onMouseMove = function () { Line.lineTo(_xmouse, _ymouse);};
    // This creates the line to the point where ever your mouse is dragged.
    onMouseUp = function () {
    // The function onMouseUp is activated when you release the mouse
    button.
    onMouseMove = null;
    // This function turns off the onMouseMove() function so that the
    line will
    // not be drawn again until the user clicks the mouse button again.
    a++;
    // d = a
    // a = b+a
    duplicateMovieClip(LineA, "LineA"+a, a);
    // a = d
    c = a;

    try:
    //force settings
    //Drawing tools
    _global.general = 0x0000FF;
    //blue
    _global.rubber = 0x9400D3;
    //purule
    _global.spring = 0x32CD32;
    //green
    _global.rope = 0x8B4513;
    //brown
    _global.explosion = 0xFFFF00;
    //yellow
    _global.explosion2 = 0xFFA500;
    //orange
    //tool setings
    var thickness = 2;
    _global.tool = general;
    var alpha = 100;
    //Scene colours
    var land = 0x000000;
    //black
    var prop = 0x1D1D1D;
    //charcoal      (non-gravity affected prop)
    var gprop = 0x696969;
    //dim gray      (gravity affected prop)
    var backg = 0xD3D3D3;
    //light gray
    //Active objects
    var main = 0xFF0000;
    //red
    var orange = 0xFF4500;
    //orange
    var a = 1;
    var b = gen;
    var menu = 0;
    var d = 0;
    LineA = new Array();
    this.onLoad = function() {
    for (a in LineA) {
    LineA[a].power = 0.3;
    LineA[a].yspeed = 0;
    LineA[a].xspeed = 0;
    LineA[a].friction = 0.95;
    LineA[a].gravity = 0.1;
    LineA[a].thrust = 0.75;
    this.onEnterFrame = function() {
    d++
    for (a in LineA) {
    LineA[a].xspeed *= friction;
    LineA[a].yspeed += gravity;
    LineA[a]._y += yspeed;
    LineA[a]._x += xspeed;
    onMouseDown = function () {
    createEmptyMovieClip("Line", 1);
    Line.lineStyle(thickness, tool, alpha);
    // The function onMouseDown is activated when you click the mouse
    button.
    Line.moveTo(_xmouse, _ymouse);
    // This moves the line to the starting point, which will be directly
    where you
    // clicked._xmouse and _ymouse are the x and y position of the mouse.
    onMouseMove = function () { Line.lineTo(_xmouse, _ymouse);};
    // This creates the line to the point where ever your mouse is dragged.
    onMouseUp = function () {
    onMouseMove = null;
    lineA.push(Line);

  • Use virtual channel name as input to DAQmx Write? LV8 and DAQmx

    I've created a task for digital output that contains 8 named channels using the DAQmx Create Channel VI in Labview. Is it possible to use the channel name as an input to the DAQmx Write VI to reference the desired channel? I tried wiring a string with the channel name to the "task/channels in" input but I get a -200428 error that says the Value passed to the Task/Channels In control is invalid.
    The help "name to assign" input for the DAQmx Create Channel VI says
       If you use this input to provide your own names for the virtual channels, you must use the names when you refer to these channels
       in other NI-DAQmx VIs and Property Nodes
    OK, so how do you use the name assigned in other VIs?
    George

    George,
    I think that there may be some confusion here about the difference between local and global virtual channels.  First of all, please take a look at the following knowledge base:
    Physical Channels, Virtual Channels, and Tasks in NI-DAQmx
    As discussed in this KB, local global channels are created inside a task, and they only apply to that task.  In the help file for the DAQmx Write VI, the "task/channels in" description says "if you provide a list of virtual channels, NI-DAQmx creates a task automatically."  When you wire a string to this input, a new task is being created, and unless the channel name that you wire in is a global virtual channel (listed in MAX), you will get the error 200428 that you mentioned.  This is because that virtual channel that you are specifying is local to another task and is not associated with this new task. 
    One solution to this issue is to use the DAQmx Save Global Channel VI to save your local virtual channel as a global virtual channel before calling DAQmx Write.  Once this is done, you can then wire the same string constant to the "task/channels in" input of DAQmx Write or other DAQmx VI's. 
    The help text is still correct, but is only applicable in certain situations.  For example, if you create and name an analog input local virtual channel with DAQmx Create Channel, you could then use this channel name as the source input to a DAQmx Trigger VI configured for an analog edge start trigger.  You could also use that channel name as the input to the "ActiveChans" DAQmx Channel Property, which would enable you to modify the properties of that particular channel. 
    Hopefully this information is helpful to you.

  • Writing in sensor calibration data to my virtual channels in MAX using Labview.

    System consists of a few pxi6713 cards, a 6527 digital input card and some scxi cards (1520, 1104c, 1125).
    Every 3months or so we run a calibration on the testing stand which uses these cards, and the sensor ranges and physical ranges listed in MAX has to be manually entered each time.
    I am looking for a way to do this automatically.  This may be a problem, but we are using NI-DAQ legacy (perhaps if absolutely necessary we could goto daqmx).
    I have figured out howto read virtual channel information from max correctly, but I have no understanding of trying to write calibration information to the virtual channels.
    Any help is greatly appreciated!
    Thank you!
    jacob

    Hi mak90,
    There are no ways to change the sensor range and physical ranges
    programmatically in Traditional DAQ. Under DAQmx, you have Scaling VIs,
    Calibration VIs, Task VIs that allow you to change various settings in
    MAX programmatically.
    Please let us know if you have any further questions.
    Best regards,
    Nathan Yang
    Applications Engineer
    National Instruments

  • Virtual Channel with RT system

    I have configured many virtual channel on a RT system with the "Remote DAQ configuration" menu from MAX (I am not sure of the menu name because I am using the french version).
    Now I would copy all these virtual channel on the host system as virtual channel on a remote device. Is there a way to do this automaticaly ?
    If I try to create manually the virtual channel for the remote device, there is too a new virtual channel in the Remote DAQ configuration. As I want to use the same name for the remote device and for the remote DAQ configuration, I have 2 virtual channel with the same name in the remote DAQ configuration.
    A solution will be to suppress all the virtual channel from the remote DAQ configuration and to recreate the virtual
    channel on remote device from the "My System" folder. But in this case I will lose my work (I have more than 100 virtual channel).
    Thanks for your help

    Yes, I would have the same virtual channel configuration on the Windows machine as on the remote RT Engine.
    With the virtual channel configuration on the Windows machine, I can use the "Test" button (from MAX) which is an easy and very quick way to verify that the channel is working.
    In fact, as you mentionned in your answer, I just need to create a RDA device in the "Device and Interface" folder, and automatically all the virtual channels configured on this remote device are "imported" under the "Data Neigborhood" folder.
    I didn't see this functionnality in my first test because I had created the Remote Device entry before I created the virtual channel on this device.

  • Automatic PR'S to be created in system with MRP element

    Sir,
    Ply help me out how automatic PR'S will be created with the help of MRP element
    regards
    amey

    Hi,
    PLease check this link with screen shots for MRP run which will create PR:
    http://www.sap123.com/showthread.php?t=89
    Regards
    Ram

  • Is CJC accomplished automatically when using MAX to create virtual Thermocouple Channels?

    "I have a SCXI 1000 chassis, a SCXI 1102 module and a TC 2095 terminal block. I am configuring virtual channels with the names TC(n) where n is the channel number. When I configure the virtual channel, I am selecting 'built-in' CJC. The question I have is:
    When I reference the virtual channel from my DAQ application, is the data I receive already cold-junction-compensated, or do I have to read the CJC voltage as a separate channel, and apply the correction factor manually on my block diagram (like we had to do in the old days)?
    I gather that the data that I read, which is obviously scaled to engineering units, is, indeed, cold-junction compensated, but I would like to be certain
    that that is the case. Thanks."

    Wes;
    You are right in your considerations.
    If you select the built in CJC when setting a virtual channel up, the CJC will be automaticaly inserted in the channel reading when using that virtual channel.
    Regards.
    Filipe

  • How to make a virtual channel in MAX using DAQmx ?

    I want to measure the CJC temperature on the TBX 1328 ( attached to SCXI 1121). I want to create a virtual channel in MAX using DAQmx. I have right clicked on DAQmx but there is no option for virtual channel. Ther is the option of 'Traditional virtual channel' which i dont want.
    I used the VI to make the virtual channel but i want to knowhow to doit inMAX.
    thanks

    Here are 2 ways that you can create a DAQmx channel that appears in MAX.
    1) In MAX, right click on "Data Neighborhood" and select "Create New...". Then click "NI-DAQmx Global Channel" (or "NI-DAQmx Task" -- a task contains the channel(s) and triggering/timing information) and click "Next". This launches the DAQ Assistant that will guide you in creating the channel or task.
    2) In LV, place a NI-DAQmx Global Channel control on your panel or constant on your diagram. Right click on the control/constant and select "New Channel(DAQ Assistant)..." (Note: You can do the same from the NI-DAQmx Task control/constant to create a NI-DAQmx Task.)
    Deborah

  • Thermocoup​le reading has offset when I choose a large range on virtual channel?

    I am using SCXI 1102 with 1303 terminal block. I create a virtual channel for a type J thermocouple using CJC built-in. I set the range of the measurement to 0 to 500C. At ambient temperature (22C) I read 10C. If I change the range to 0 to 100C the reading is correct. How can I fix this problem?

    Well, you already tried the obvious. The less obvious might include NI-DAQ driver problems. It has happened before.
    On a SCXI-1126 frequency module, back in the 1998-2000 time frame, the underlying code within NIDAQ had a problem where when you picked a channel scaling that was EXACTLY within the boards ranges, such as 1k, 2k, 4k, 8k, etc., the board read back frequencies correctly. However, when you used a virtual channel to set up scaling to something like, say, 0-2200hz, the algorithm to span that wrange worked incorrectly. It evidenced itself as a drop off followed by a peak rather than a gradual ramp up in readings as the frequency increased. I eventually created a program that plotted the problem and showed it to our local
    rep, who got it fixed back at NI.
    The point is, the problem didn't show up in NI's production testing because they always used exact ranges in tests, while virtual channels allowed more flexibility. Somehow you need to be able to get NI to duplicate the behavior.
    - You could try using other ranges in your scaling that still have your necessary ranges as a subset.
    - You could try using DAQ MX if you are using traditional DAQ, or vice versa.
    - You could send someone at NI your NICONFIG.DAQ file and have them try it there, with whatever version of LV and DAQ you are using.
    Another thing that could have happened is that you may have a group of boards with a bad lot of chips. Check to see if all the boards you are swapping during troubleshooting have the same lot numbers on the chips. If possible, try to find at least one board that is much older or much newer when you are swapping. We resolved a 4 year problem when we finally realized 56 solid state relays on 14 different S
    CXI-1321 front end modules all had the same exact thermal problems, and were all from the same manufacturer lot. Swapping with a different module 2 years older confirmed what we had been missing for years!
    Tim Jones

  • AI Group Config Error 10001 using Virtual Channels

    In my LabVIEW block diagram, I usually enter in numbers, e.g. 0,1,2 for the channel string input of AI Config. When I try to use a virtual channel, I simply type in the virtual channel, e.g. 0,K Thermocouple,2. However, this causes AI Group Config Error 10001, which applies to an invalid channel string. What is the correct way to enter a virtual channel into the channel string?

    Do you have channels with virtual names of "0", and "2"?
    If not you may be confusing MAX by using both naming conventions.
    Try using only Virtual names.
    I generally will use an array of strings where each element is the vitual channel name with no problems.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Computer crashes when using virtual channel custom scales.

    I am using a PXI-1045, which is connected to my computer via a MXI-3, to hold 3 PXI-6115 cards as well as several other cards. I have been using virtual channels for the nine input channels I am looking at. When I added custom scaling to one of the virtual channels my LabView application crashed the next time I ran it. If I remove the scaling it goes back to working fine, but when I add it back in it crashes again. The crash causes the computer to automatically restart, but on one of the runs I got a "Fatal Internal Error: 'memory.cpp', line 593" message before the computer restarted. I've tried reinstalling MAX and updating some drivers, but nothing seems to help.
    Thank you.

    Still having the same problem. Ever the optimist, I submit the following info.
    Error window screenshot can be found here: https://dl.dropboxusercontent.com/u/22465174/safari/safari_fail_01.JPG
    Enent log entry can be found here: https://dl.dropboxusercontent.com/u/22465174/safari/safari_fail_02.txt
    Version info can be found here: https://dl.dropboxusercontent.com/u/22465174/safari/safari_fail_03.JPG

  • Can I programmatically change a virtual channel's scaling?

    I want to be able to read and write the scaling parameters for a virtual channel. Using NIDAQ 6.8 with MAX 2.0 and LV 6.0.2.
    Thanks

    This question actually belongs in one of the Measurement Devices categories. In the future, please post to the appropriate forum. You will find similar questions and get exposure to others with similar interests when you post directly into one of those categories.
    In answer to your question, you can read the virtual channel properties, but you cannot programmatically change them. If there were a finite number of changes, you could have multiple config files that contained the same virtual channel names. Then, you could programmatically switch which config file MAX was using.
    Alternatively, you can apply the scaling in your program if you read the raw value through the virtual channel (no scale) and then pass it into a scaling function.
    You can find exa
    mples for saving virtual channel properties to a text file and for changing config files in the NI Developer Zone. Start at the http://www.ni.com/support page and choose Example Programs from the Technical Resources pulldown menu. Then, type in keywords, such as "virtual channel" or "change NI-DAQ configuration".
    Regards,
    Geneva L.
    Applications Engineer
    National Instruments
    http://www.ni.com/support

  • Drive Redirection virtual channel hangs when copying a file from server to client over RDP 8.1

    Problem Summary:
    A UTF-8 without BOM Web RoE XML file output from a line of business application will not drag and drop copy nor copy/paste from a Server 2012 R2 RD Session Host running RD Gateway to a Windows 7 Remote Desktop client over an RDP 8.1 connection and the Drive
    Redirection virtual channel hangs.  The same issue affects a test client/server with only Remote Desktop enabled on the server.
    Other files copy with no issue.  See below for more info.
    Environment:
    Server 2012 R2 Standard v6.3.9600 Build 9600
    the production server runs RDS Session Host and RD Gateway roles (on the same server).  BUT,
    the issue can be reproduced on a test machine running this OS with simply Remote Desktop enabled for Remote Administration
    Windows 7 Pro w SP1v6.1.7601 SP1 Build 7601 running updates to support RDP 8.1
    More Information:
    -the file is a UTF-8 w/o BOM (Byte Order Marker) file containing XML data and has a .BLK extension.  It is a Web Record of Employment (RoE) data file exported from the Maestro accounting application.
    -the XML file that does not copy does successfully validate against CRA's validation XML Schema for Web RoE files
    -Video redirection is NOT AFFECTED and continues to work
    -the Drive Redirection virtual channel can be re-established by disconnecting/reconnecting
    -when the copy fails, a file is created on the client and is a similar size to the original.  However, the contents are incomplete.  The file appears blank but CTRL-A shows whitespace
    -we can copy the contents into a file created with Notepad and then that file, which used to copy, will then NOT copy
    -the issue affects another Server 2012 R2 test installation, not just the production server
    -it also affects other client Win7 Pro systems against affected server
    -the issue is uni-directional i.e. copy fails server to client but succeeds client to server
    -I don't notice any event log entries at the time I attempt to copy the file.
    What DOES WORK
    -downgrading to RDP 7.1 on the client WORKS
    -modifying the file > 2 characters -- either changing existing characters or adding characters (CRLFs) WORKS
    -compressing the file WORKS e.g. to a ZIP file
    -copying OTHER files of smaller, same, and larger sizes WORKS
    What DOES NOT WORK?
    -changing the name and/or extension does not work
    -copying and pasting affected content into a text file that used to have different content and did copy before, then does not work
    -Disabling SMB3 and SMB2 does not work
    -modifying TCP auto-tuning does not work
    -disabling WinFW on both client and server does not work
    As noted above, if I modify the affected file to sanitize it's contents, it will work, so it's not much help.  I'm going to try to get a sample file exported that I can upload since I can't give you the original.
    Your help is greatly appreciated!
    Thanks.
    Kevin

    Hi Dharmesh,
    Thanks for your reply!
    The issue does seem to affect multiple users.  I'm not fully clear on whether it's multiple users and the same employee's file, but I suspect so.
    The issue happens with a specific XML file and I've since determined that it seems to affect the exported RoE XML file for one employee (record?) in the software.  Other employees appear to work.
    The biggest issue is that there's limited support from the vendor in this scenario.  Their app is supported on 2012 R2 RDS.
    What I can't quite wrap my head around are
    why does it work in RDP 7.1 but not 8.1?  What differences between the two for drive redirection would have it work in 7.1 and not 8.1?
    when I examine the affected file, it really doesn't appear any different than one that works.  I used Notepad++ and it shows the encoding as the same and there doesn't appear to be any invalid characters in the affected file.  I wondered
    if there was some string of characters that was being misinterpreted by RDP or some other operation and blocked somehow but besides having disabled AV and firewall software on both ends, I'm not sure what else I could change to test that further
    Since it seems to affect only the one employee's XML file AND since modifying that file to change details in order to post it online would then make that file able to be copied, it seems I won't be able to post a sample.  Too bad.
    Kevin

Maybe you are looking for