Custom scaling of DAQmx channels

Hello,
I am attempting to set up a triggered acquisition using DAQmx custom scales with 1 virtual channel containing 3 physical channels.  What I am trying to acheive is to have independent scaling applied to each physical channel input.
I have attached a snippet of my code - when I examined it in operation, only the last channel in the array is applied to the task with the final array scaling values.
Could anyone give me some advice on how to improve this?
Regards
Dave
Attachments:
customScaling.png ‏66 KB

I am not sure what is happening in your customscaling.vi as you havent posted it.
I would create the custom scales first and apply it while the task is being created as below. You will need to adjust the values as necessary.
Beginner? Try LabVIEW Basics
Sharing bits of code? Try Snippets or LAVA Code Capture Tool
Have you tried Quick Drop?, Visit QD Community.

Similar Messages

  • DAQmx Custom Scaling Issue

    I have created custom scaling for DAQmx. I have the following issue similar to this http://forums.ni.com/t5/Multifunction-DAQ/daqmx-custom-scaling-setup-issues/td-p/805374.
    I am scaling a 0 to 5V signal to 0-100 sccm.
    the slope is 20 with a Y-intercept of zero.
    Everything scales fine up to 1.07V then it displays 21.56 sccm for any measurment above this voltage.
    Cant figure out what i am doing wrong. I have verified the DAQ card is measuring volts correctly above 1.07 in NImax.

    teslaaaa wrote:
    Thats not how i read this:
    maximum value specifies in units the maximum value you expect to measure.
    minimum value specifies in units the minimum value you expect to measure.
    Max values measured is -10 to +10V , If you are correct shouldnt it say "max scaled value" ?
    It is the maximum value of the number that will come out of the DAQmx driver.  Since DAQmx applies that scale for you, it is post scale value.  So you really need to put in 100 sscm for your maximum.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Acquire 2 digital signal with custom scaling (Engg Units)

    I am a newbie to DIO world.
    I have write a VI to acquire 2 digital signals. one from a load cell and other for motor rpm (pulses). I need to acquire these two signals and then convert them into engg units using custom scaling and write them to a txt file with time stamp.
    Please suggest best ways to accomplish this task.
    Thanks
    DAQG
    Solved!
    Go to Solution.

    Look at the examples on DAQmx in the example finder.
    You wouldn't actually be acquiring 2 digital signals.  You would be acquiring an analog signal from the load cell.  A digital or counter acquisition is what you would acquire from the motor.  Search for analog measurements and counter measurements in the example finder.  Some of the example should show you how to apply the custom scaling.

  • How to Programmatically Set Scale on DAQmx Channel? Possible LabView Bug?

    Hi folks.  I have researched this question here on the forums and think I know what I need to do, but it doesn't work.
    What I'm Trying to Do
    I am creating a DAQmx Analog Out task that will write to a dozen channels.  I would like to set the scale on each of those channels to one of a handful of custom scales that I've already defined in my project.  From reading various posts on this forum, it sounds like I want to pull each channel out of the task using the DAQmx Task property node, then set each scale by writing to the AO.CustomScaleName property within the DAQmx Channel property node.  See the attached screenshots and VI file.
    The Problem
    I keep getting error 200378 "Custom scale specified does not exist".  The custom scale definitely exists in the project, but the VI won't recognize it.  It sounds similar to the bug described in this thread:  http://forums.ni.com/t5/LabVIEW/Why-do-I-receive-Error-200378-quot-Custom-scale-specified-does/td-p/...  However, I've tried the various workarounds mentioned in that thread (opening VI outside of project, then from within project, etc) and I don't get any different results.  I'm running LV 8.6.1
    Questions
    Does this VI work for anyone else once you've defined a custom scale with the same name as the one in the VI?
    Am I doing something obviously wrong?
    Is there a better way to do this?
    Thanks for any advice, it is much appreciated.  I've attached screenshots of both the VI and the Project window showing the custom scale exists, and I've attached the VI itself.
    Attachments:
    custom_scale_screenshot.JPG ‏38 KB
    project_explorer.JPG ‏68 KB
    daqmx_task_property_nodes.vi ‏64 KB

    This workaround isn't exactly what you are trying to do, but I have made a set of VI's that will let you open up the DAQmx Assistants from LabVIEW code programmatically.
    Programmatically Call NI DAQmx Assistants
    You can call the VI to edit a channel and manually reassign the scale if you want to avoid going straight to MAX.

  • Custom scaling of data without MAX?

    Okay here's my problem. Hopefully you can help me or offer some helpful advice.
    I am creating a user interface for data acquisition (only analog inputs are used). Thermocouples (Type J and Type K) will be used, as well as factory calibrated strain gauges. Some other sensors that can be linearized on a 0-5Volt scale might be used too.
    I originally had my program set up where the user had to set up their channels in MAX and then come to the program I made. There will probably be a lot of scale/offset changes made by the users so channel configuration needs to be flexible. I changed the program to custom scaling. Instead of virtual channels the user just enters scale and offset values. These values are saved to a text configuratio
    n file and later used on raw voltage.
    Then I realized I would have to have the user input what type of sensor they are using because I'd have to compensate for CJC in thermocouples. AND, I dont think the SCC-TC02 is linear.
    *Am I right in thinking I will have to use case structures when I finally scale data for LINEAR versus J THERMOCOUPLE versus K THERMOCOUPLE?
    *How innacurate would my readings be to use the Labview's Thermocouple scaler VI and set the CJC to 1.25 volts (25 degC) rather than reading from Channel X+8.
    *Is there an easier way to do what I'm trying to do? I know people do custom scaling, how is it done?
    THANKS.
    I have:
    SC-2345 Module Box
    SCC-TC02
    SCC-SG24
    LabVIEW 6.1

    I'm not sure I see where your difficulty is.
    I have always used custom scaling, MAX never did quite enough.
    I have a cluster for each channel. The cluster contains a scaler (EU/Volt), an offset (EU@0V) and a channel type enum, among other stuff (channel name, units, filters, etc.)
    When processing the data, look at the cluster for that channel. Use a CASE statement on the CHANNEL TYPE value. If linear, multiply the volts by the scaler and add the offset - you get EU (Engineering Units) out. If the channel type specifies some other type, use the appropriate linearization routine.
    How innacurate would my readings be to use the Labview's Thermocouple scaler VI and set the CJC to 1.25 volts (25 degC) rather than reading from Channel X+8.
    <
    p>
    Depends on which type TC, and where you are on it's range. You might expect 20 degrees or more error at the high end of some ranges, without proper CJC.
    There's no easy answer to that question.
    Steve Bird
    Culverson Software - Elegant software that is a pleasure to use.
    Culverson.com
    Blog for (mostly LabVIEW) programmers: Tips And Tricks

  • DAQmx Channel (AI min/max) read

    System:
    LV 2012,  DAQmx 9.7.5 on PXI-8110
    I have about 30 DAQmx channels (mostly Analog Inputs) with custom scales on my RT (8110) running LV 2012.  When I programatically read AI.Mx & Min using LV 2012, It get bogus (non zero) values for the first 15 channels and then the rest have correct values.
    Is this a bug or am I doing something wrong?
    Attachments:
    Max Export Sample.vi ‏12 KB

    The 8110 is a controller and not a DAQ card and the ai min and max for a daq card channel is not supposed to be zero. The values are the range for the A/D - +/- 5 volts for example.

  • Change a DAQmx channel property for a single channel from a channel group

    Hi,
    I'm doing some digital output, and I'd like to tristate certain lines in each port. However, I'm having difficulty figuring out how to specify which individual lines to tristate. I input a port and a line range, e.g. PXI-6533/port0/line0:7, specify to use one channel for each line in the DAQmx Create Virtual Channel VI, retrieve the channels from the DAQmx Task Property, and try to operate on the individual channels that way.  However, this results in the following error:
    Error -200428 occurred at Property Node DAQmx Channel (arg 1) in tristate_test.vi
    Possible reason(s):
    Measurements: Value passed to the Task/Channels In control is invalid.
    The value must refer to a valid task or valid virtual channels.
    Task Name: PXI-6533/port0/line0
    The NI knowledge base article that deals with this error code talks about creating a task with the DAQ assistant, or ensuring that a task has been created. However, I'm not using the DAQ assistant, as my I/O is pretty complicated; I'm just using a bunch of virtual channels. 
    Is there a way to specify individual channels to changethe properties of without having to create additional virtual channels? I have 48 digital channels I plan to use, so the less virtual channels I have to create the better. 
    Please reference the attached VI, which demonstrates the problem I am facing. 
    Thanks for any assistance. 
    Attachments:
    tristate_test.vi ‏11 KB

    You can only software-time tristate for the 6533/6534. Have a look at the attached example.
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies
    Attachments:
    tristate6533.vi ‏58 KB

  • Several DAQmx Channels with Start and Clear Task VI's

    Hi,
    I'm trying to read in several DAQmx channels in a while loop. When I just place the channels within the while loop and connect them directly to the read VI's, everything is fine. But I read in the help, that this will slow down my system, because it's opening and closing the task each cycle. So I used Start Task and Clear Task VI's to open and clear them before and after the loop. But now it's only reading one of my channels in, although I wired all of them in exactly the same manner. Anyone has an idea, what I did wrong?
    Thanks,
    Miclas
    Attachments:
    Save&Stop DAQ.JPG ‏87 KB

    You would have seen the error if you had wired up and error indicator.
    You cannot run multiple tasks of the same type (i.e. an analog input) at the same time. What you read about stopping and closing tasks is correct but it was the only way your program could work. What you don't realize is that you can have multiple channels with a single task. If you used a physical channel constant, it would be something like 'dev1/ai0:2' if you had consecutive channels or 'dev1/ai0, dev1/ai2' for non-consecutive. Global channels are done in a similar fashion. You would have 'FSR1, FSR2, Knee Angle', etc.

  • Custom Scaling greyed-out, still no answer on boards.

    I'm still looking for an answer on how I can access my custom scaling options.
    Changing the resolution does not affect it. I have a 1600x900 moniter, and I would like to change the aspect ratio. Can someone please tell me how to access these options?
    What is custom scaling:
    (These options are not actually availiable)
    Custom Scaling Selects how displayed information on the monitor will be formatted. Select:
    Fill to Screen - Image fills the entire screen and might look distorted or elongated because of non-proportional scaling of height and width.
    Fill to Aspect Ratio - Image is sized to fit the screen and maintains proportional image.

    What is the markup that you have used for the gallery pages? It looks like gibberage to me which is a far cry from HTML.
    Gramps,
    Gibberish because it's a link to an SWF file, not HTML.
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists 
    http://alt-web.com/
    http://twitter.com/altweb

  • How do I Delete DAQmx Channels

    I am pretty much a novice to LabVIEW, and many of you may see this as a very easy question, but how do i remove DAQmx channels (If this is the correct term, or is it tasks?).
    I have been playing about, and seem to have a few redundant channels and wish to remove them. I have been looking for a while now and can't seem to find it anywhere.
    Solved!
    Go to Solution.
    Attachments:
    Removing DAQ Channels.jpg ‏74 KB

    You need to open DaqMX by clicking:
    Once DaxMX is open you need to open the channels area:
    THen you need to right click on the channel or task that you want to delete and select the delete function.
    Tim
    Johnson Controls
    Holland Michigan

  • Querying DAQmx channel types in LabVIEW

    I want to have my LabVIEW application look through all the DAQmx tasks
    defined on the computer and display to the user a list of only analog
    input tasks.  I tried to do this by:
    Use the DAQmx System property node to retrieve a list of all tasks.
    For each tasks, use the DAQmx Task property node to retrieve a list of all channels.
    For each channel, use the DAQmx Channel property node to query its ChanType.
    If all ChanTypes turn out to be Analog Input, then I admit the task into the list.
    The problem is that I have tasks that I know are analog output tasks,
    but the DAQmx Channel property node still return "Analog Input" as
    their ChanType.  Am I seeing things, or is this a bona fide
    problem?  Is there a better way to get a list of the tasks I'm
    interested in?

    Hello,
    That is strange.  I built a VI which queries the DAQmx Task Types like you describe, and it works correctly for me.  If all channels in a task are analog input (by the way, this is a little redundant as all channels in a task must be of the same type), then the task name is passed to an array.  Otherwise, an empty constant is passed.
    Try running the attached VI and see if it works correctly for you.
    Regards,
    Sean C.
    Attachments:
    QueryTaskType.vi ‏34 KB

  • Accessing DAQmx channel information without DAQmx device attached to system.

    I am currently writing a LabView VI that makes use of a PXI-6229 card on a seperate chassis. The chassis is connected to a seperate computer from the one that I am using to develope the program. My problem is that I need to be able to obtain the DAQmx channel settings for various global channels, but since I don't have the DAQmx card attached to the system, I can't create global channels, and I can't set the channel nodes to return the data I need. In example, I need to be able to retrieve the Max and Min values for a voltage channel, but the channel properties node only lets me access/see the properties Active Channel, Channel Type, Physical Channel Name, and Description. Is there anyway to define a simulated channel for purposes of programming without the DAQmx card being there?
    I'm trying to avoid defining the channels at run time by using globals, but if I need to, I can define them via config file and pull the settings off that as well.
    Jon D
    Certified LabVIEW Developer.

    It is possible to have a DAQmx global channel in MAX without having the DAQ Device in that system. You will need to create the global channel in MAX on the system that does have the DAQ Device. Then select File>>Export in MAX on that system to create a .nce configuration file for MAX. You can then load that file into MAX on your development system by selecting File>>Import. That will import your global channels into MAX on your development system. However, they will show up in MAX with a red X next to them indicating that the device is not present.
    -Alan A.

  • Network bound variable on daqmx channels

    Hi all,
    I have a VI that runs fine reading data through Daqmx.
    I also have a 2nd vi running on another pc that has network shared variables bound to some digital in daqmx channels on the 1st PC.
    The problem is if i run this at the same time as my 1st vi,my 1st vi no longer processes the digital inputs (i.e.i switch to on and off and nothing happens), do i need to create network shared variables that i populate from the daqmx ones on the first pc and read those across?, im just wondering if its because you cant read the daqmx channels through the daqmx vis and also try to read them through network bound variables?
    hope that makes sense
    Mike

    Duplicate post.
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies

  • DAQmx Channel Identification

    Hi there,
    I have a problem in using DAQmx channel property node ---> Channel
    Type. many times this property node is giving error code -200088. Once
    this error happend, labview needs to restart. but the probability of
    working of this property node is 25%. I 'm clueless. I'm using this
    property to identify the global channel types whether it is Analog
    Input/ Analog output/ DI/O.
    Any one suggest the reason behind this error.
    Thanks in advance
    Vijayasiva

    Vijayasiva,
    What is it that you have wired to the "task" input of the property node? The error you are getting indicates that this task is not valid. Is it a task you define in MAX? Is it a task you create in LabVIEW? Could you possibly be clearing this task before the property node executes? It may help to post your code.
    Hope this helps,
    Ryan Verret
    Product Marketing Engineer
    Signal Generators
    National Instruments

  • Daqmx channel property node

    Hi all,
    I've downloaded an example for a quad counter which uses a daqmx channel property node to specify A,B,Z channels.
    I have tried to replicate the example using LV8.1 but the only properties that I get are 'Active Channel' and 'General Properties' with 4 sub properties. Why don't the channel properties show up? What am I missing here?
    I have attached a jpeg of what im talking about. Any help is appreciated.
    Cheers,
    Dave
    Attachments:
    prop node.jpg ‏16 KB

    Hi David,
    This happens when you have not inserted a DAQ device in your system or your DAQ device is not detected by your MAX.
    You could do one of the following
    1. Insert a DAQ card into the PCI/PXI slot
    or
    2. Simulate a DAQmx device in MAX.
    By doing this, the corresponding DAQmx properties will show up

Maybe you are looking for

  • Office 2013 Professional + Office 365 Home Premium - what happens?

    I am currently using Office 2013's Excel where I have access to Power Pivot and Power View. This is a perpetual, non-subscription version of Office with the Professional Plus product key. I am considering purchasing an Office 365 Home Premium license

  • Print Driver for HP 720C - for my eMac

    I am trying to install my old HP 720C printer onto my eMac while I send my Epson back to be serviced. I can't find a Mac print driver for the printer and my attempts to download the linux solution have to this point been unsuccessful. My computer doe

  • Quicktime codec for DVDs?

    As well the apple DVD player stinks compared to quicktime, yet quicktime doesnt appear to have a DVD player codec? any suggestions?

  • HT1849 what can i do if there's a song thats not playing it properly after purchased

    the song i purchased on itunes was not playing properly as it suppose to. so is there any way i can fix that?

  • Infotype 0759

    Hi all ECM gurus, Can we manually change the status in IT0759 after the "approved" status? What about after "active"? I'm pretty sure we cannot do it after activation. Actually, the scenario is like this: Lets say just before the payroll has to be pr