CDAQ line internal uses as to task DAQmx

Hello

I have a cDAQ-9178 and I would send a trigger to two different tasks (DO and HAVE) to be sure that they start at this very moment.

I want to pull the trigger using the software instead of and the external trigger on PFI lines for example. For example, I would activate when a user a press control on the front panel.

I tried to use the internal counter of the cDAQ (_ctr0) by producing a pulse on this subject. The problem is that I don't see these online when I'm the trigger of the 2 previously mentioned for task configuration. There are a lot of different line which seems to be possible to take, but I don't know how a trigger on the thesis...

Help would be appreciated!

Thank you!

Is there any installation work you can do before generating a start trigger.  For example, create a task, creating channels, configuration of timing and call back to this subject can take a few hundred milliseconds.  There are intermediate steps, you can take in front-loading from time to time configuration.

A DAQmx task has a certain number of States.  When you call start on a task, it passes through verified, reserved and committed to started.  So if you're explicitly your task, your call will be faster because your hardware is already configured.  If you had already created the task, created channels, set up the synchronization and committed to the task (via the DAQmx task control interface), the start task could take only 10 ms or more.  These numbers are on the top of my head.  This will not reduce the time it takes to start your task, only a specific stage of the issuance of your trigger for starting the software.

That said, if you go to the road to counter, you need not to do for your tasks to AI and.  Just make sure you start them before your task to counter.  You could do what I described above for task of yoru meter if you feel he was taking too much time to generate your trigger to start.

* Edit *.

I should mention that the delay time that I was talking refers only to the time of when your user requests a trigger to start generating chassis a.  The time of your trigger from start to the first sample clock in your task is essentially nothing - about 12.5 ns or so depending on your configuration.

Tags: NI Software

Similar Questions

  • Create/edit task DAQmx vs DAQmxCreateTask

    I just started using Labwindows recently, so I'm a newbie here. You have a configuration great forum and I hope you can help me with that.

    so, as the title indicates what is the difference between the use of these DAQmxCreateTask(), the functions LoadTask() and manually create a DAQmx task using the menu 'tools '.

    Don't they realize the same thing? What is the need for each of them to be here? Am I missing something?

    I have already a little used in Labview. In that, to acquire data, we must use the icon tasks DAQmx to acquire/generate anything. but it is not all available such alternative programming, if I'm not mistaken. so, what's the problem with Labwindows/CVI then?

    Tools > generate DAQmx task launches a wizard that allows you to define the characteristics of the task and create the corresponding code. You can do this by yourself by manually writing individual instructions: this can be useful if you already have an existing code that you can reuse with adaptations little or if you have a special need that cannot meet the wizard or simply if you have the habit of writing code rather than rely on assistants which is my option.

    LoadTask is used to load a task created in MAX and use it in your program. This allows a form of customization of the task without changing the source code, with the obvious caveat that excessive changes in the task can cause the end behavior or abnormal length of program errors.

    All these options are legitimate ways to perform the same operation, a task for the acquisition of coding: know the characteristics of each of them, you can choose one that is most suitable to your purpose and your programming habits.

  • simultaneous monitoring of the digital input lines when executing digital writing tasks

    I'm writing a multithreaded application in C on Windows 7, using the 9.6 DAQmx API and device USB-6509. This requires that we constantly monitor several lines on the 6509 for entry, digital using the change of the device detection feature. You must also write the digital output without having to stop monitoring the input rows. It is very important that the input rows be monitored continuously for the duration of the project.

    In the DAQmx manual reading, it seems that it is impossible to make a digital reading as well as a digital writing occurs, even if these tasks are performed in different threads. (The same I understand, that it is impossible to have several tasks of digital entry running simultaneously.)

    It seems that it would be possible to launch the task for reading (configured with the change detection), to pause playback, start the writing task, pause the task of writing, and then re - start the task of reading. But - and this is the important part - for the duration of the writing task is running, is it possible to configure it to the task of reading will always monitor the lines, even if it's just stores the data in the buffer for these periods? The key is that the data will be lost.

    Thank you

    Danielle

    Each channel is independent. If you can get the input data that you export a value. You need not make a break each task. The two tasks are parallel.

  • I 200918 error when you try to save a task DAQmx

    I have a Labview application 7.0 that creates and registers a task DAQmx (DAQmx version 8.0).  I can create a new task, but when I try to save the task I have Labview 200918 internal error. So far, this has worked very well on several machines but recently received this error message on a new Windows XP SP3 machine running.  I am able to create a backup task by using MAX (version 4.3).  Anyone know this kind of error before?

    Kind regards

    David

    This code corresponds to what is now an external error code.  The text of the error is:

    "Global channel name specified is already used for a task in the area of data.  NOR-DAQmx does not support global channel names and overlapping tasks.  Select another name. "

    I don't know why this code appears as an error internal to you, but the new text of the error, you should get going.

  • Verify that a task DAQmx is a particular type of task

    I'm trying to find a method in LabVIEW to make sure a task DAQmx contains a particular type of task.  For this particular application, I want to check a task DAQmx is a digital output (line) before you run it.

    Regulate a DAQmx control i/o filtering is an option for me, but this code will be used by other programmers and I would like to add this check additional w / error handling in the case where the task is to be of the correct type.

    Thank you for your comments.

    -Nic

    Use the property of channel-> node property of Type string and it will tell you what type of task.

    Cheers, Matt

  • Missing reference to task DAQmx

    Hello

    I have just inherited code without papers of an engineer who has left the company.

    We use a USB-6008 to control a stepper motor and take a few analog readings

    DAQmx tasks received really useful names such as "TO 0", guess that's Digital Out"0  However when I look at the tasks of the unit, "0" is not present. ""

    The program crashes and complains of an error.

    Is there something I'm missing here?  Y at - it another way that a string that "DO 0' culd be associated a task DAQmx?

    Rgds,

    Sean

    OK, I had a legacy project open.

    Virtual channels are in the new project.  I was looking everywhere on MAX, but it was in the project correct throughout.

  • How can I get a graphic display in real time of a task daqmx

    Hello

    I have set up a task DAQmx using the DAQ assistant and the task is to work and produce a graph/data, but not before the task is complete. How can I get a display in real-time of the numberical values or graphics?

    Any help would be really appreciated

    Thanks, Paul

    paultryan wrote:

    I could get set the frequency of sampling and to give a regular change of output, but im looking to get this long-term data acquisition. For example, the graph changes everything but 1 - 5 get 30 minutes of data.

    I used the DAQ assistant and labview is completely new to me, if im not sure where it take it from here.

    concerning

    Then you should use a chart - not a graphic. A graph has a story. You must set this. Right click and select "Chart History Length".

  • How to create a task DAQmx LabVIEW?

    I want to create a new task DAQmx in LV I used "create new task" VI in Bt NV. I want to see the task created in the list of tasks MAX also.

    There is no connected device. Its just simulation.

    Use the task to save DAQMx.

    http://search.NI.com/nisearch/app/main/p/bot/no/AP/global/lang/en/PG/1/q/DAQMx%20Save%20Task/

  • Convert from type string to type task DAQmx

    Hi all

    I would like to know if it's possible to convert type string DAQmx type (task DAQmx in)

    Thank you!

    This error is not associated with the conversion of the string type. I don't really know what is happening in your application, but I suspect that you are getting the error because you have not configured/registered your task properly, possibly in another application on the same system. I saw this problem before when functional using globals to save a task in one application and then read the overall task of the functional by using an another VI. This usually occurs because the functional world will save the value associated with the particular task. I would recommend that you look for the error code on the website and have a look at the following article. I apologize, but my knowledge is limited on this error.

    Recorded by program channels, NOR-DAQmx tasks and examples of scales

    TonP, I was avoiding the point of constraint

  • Clear any open task daqmx

    Hello

    I was going crazy, because all of a sudden a tasks analog output did not work any more he said it conflicted with another task "always active"... I searched my entire application. Could not find anything. So finally, I closed the application labview together, and then it worked again, as if by magic. I came to the conclusion, that my stop and and clear task was not called when I closed my program in a different way.

    So my question: is there a possibility to see what daamx tasks are active when you start your program, so that you could erase any existing task?

    Kind regards
    Thijs

    Better yet, DAQmx tasks really need to be created once, preferably during development and no runtime if you can avoid it at all the.  Presist them to the project (if you are deploying in a debug environment) or, for MAX, if you deploy a exe.  It also allows your tasks be available for troubleshooting and integration, or even a FPS "Engineering" for the station.  I don't remember the last time I've delivered a solution the DAQmx encluded create Task.vi.

    Its pretty easy to write yourself a little utility to give up and cancel all tasks DAQmx.

  • HP Photosmart 5514: HP Photosmart "in use with another task' error.

    I'm sure you're all sick to see these questions, but I have not found that a reliable solution among the responses presented anywhere else on the internet.

    I have a printer HP Photosmart 5514, part of the 5510 B111 d e-all-in-one printer series, and it currently only allow me to scan a single document (with multiple pages). I connected via USB, not the network connection. My current operating system is Windows 10, 64-bit. I've uninstalled and reinstalled the drivers several times, using different methods: a part of the HPSolutionsFramework, installation of the manual pilot on its own and even with the method of detection of device HP Support Assistant. I tried the most common answer of "unplug, restart the computer, plug in. I also tried printing HP and doctor Scan to see if there is a driver problem but it clears all controls and nothing seems to be wrong. To be clear, restarted my computer "solve" the problem, even temporarily and no is not a final solution to my problem.

    Explanation of the issue:

    I run the HP Photosmart 5510d series software and click on the button "scan a Photo Document or". When the window opens, I click on "scan document to the file" and proceed to scan my document with however many pages, adding each page I want. When I'm finished, I hit 'save', my backup file and click 'done '. When I proceed to scan another document, hit the button causes nothing happen but one his mistake. When I start printing HP and Scan doctor and trying to do an analysis of test after he tells me that everything is going well, I get the error message:

    "The HP scanning application is currently in use with another task or another user on this computer. Please wait until the other task is finished, and then try again. »

    To be quite clear, there is no other task that I'm aware of in addition to the fact that somehow the software does not seem to let go of the analysis. There are no other users who use the computer outside of me. There is no other hidden running application. I went through the Task Manager to kill all the associated HP process to see if something it stops to run again. The only chance I have is with my computer restarts, but it would be foolish to scan documents of mass and restart after each.

    It worked properly on my other hard drive with the same version of Windows 10 installed on it. 10 Windows installed on a new drive and it does not appear to want to work after 1 document.

    If anyone has a help in this case, it would be greatly appreciated.

    Hi @Yenroh,

    Welcome to the Forums of HP Support!

    I see that you are able to scan with your HP Photosmart 5514 printer wireless. I'd be happy to see this with you and don't forget to come back to this thread and check "Accept as Solution", if I have successfully helped solve you the problem. If you want to say 'Thank you' to my effort to help, click on the "thumbs up" to give me a Kudos.

    Generally speaking, the reason why you get "the HP scanning application is currently in use with another task or another user on this computer. Please wait until the other task is finished, and then try again. "is because that the network signal is lost the connection and the freezing of the task analysis or the previous scan operation never ended.

    Please, try the steps in these guides:

    TIPS:

    • Move the printer and the router more closely in order to improve the quality of the signal.
    • Change the channel on the router wireless.

    Ensure that your router and firewall do not block these ports.

    • Scanning: The UDP port: 427 TCP ports: 9220, 9500

    Please reply to this message with the result of your troubleshooting. I can't wait to hear strings attached good luck!

  • Error - line is used or not connected when sending fax machine in Windows XP.

    Original title: problem with win XP fax.

    I get a response that the telephone line is used or not connected.  The phone is next to the computer and not busy.  I have a distinctive ringtone on my phone line that will recognize the fax

    Hi Meyow,

    ·         Are you able to send a fax correctly earlier?

    ·         You did it all change hardware or software on your machine before this problem?

    You can follow this link and check if the problem persists.

    HOW to: Solve common fax problems in Microsoft Windows XP

    Hope the helps of information. Please post back and we do know.

    Concerning
    Joel S
    Microsoft Answers Support Engineer

  • OfficeJet pro 8600 print a single vertical black line when using the charger

    OfficeJet pro 8600 print a single vertical black line when using the charger

    Hi @realestatejeann,

    I see that you have found one black vertical line when using the ADF. With a few steps, we should be able to solve this problem.

    Make sure that the printer is connected directly to a wall outlet. (do not use a hub or a surge protector) This ensures that the printer is full on and can help this situation.

    Here is a document for the cleaning of the glass Strip and the underside of the scanner cover.

    Vertical stripes, lines or streaks on Copies, faxes or scans.

    If you need help, let me know.

    Good day!
    Thank you.

  • Mr President, how can I enter two rows at the same time with different default values that only the first line to use see?

    Mr President.

    My worm jdev is 12.2.1

    How to enter two rows at the same time with different default values that only the first line to use see?

    Suppose I have a table with four fields as below

    "DEBIT" VARCHAR2(7) , 
      "DRNAME" VARCHAR2(50),
      "CREDIT" VARCHAR2(7) , 
      "CRNAME" VARCHAR2(50),
    

    Now I want that when I click on a button (create an insert) to create the first line with the default values below

    firstrow.png

    So if I click on the button and then validate the second row with different values is also inserted on commit.

    The value of the second row are like the picture below

    tworows.png

    But the second row should be invisible. It could be achieved by adding vc in the vo.

    The difficult part in my question is therefore, to add the second row with the new default values.

    Because I already added default values in the first row.

    Now how to add second time default values.

    Concerning

    Mr President

    I change the code given by expensive Sameh Nassar and get my results.

    Thanks once again dear Sameh Nassar .

    My code to get my goal is

    First line of code is

        protected void doDML(int operation, TransactionEvent e) {    
    
            if(operation != DML_DELETE)
                 {
                     setAmount(getPurqty().multiply(getUnitpurprice()));
                 } 
    
            if (operation == DML_INSERT )
                       {
                               System.out.println("I am in Insert with vid= " + getVid());
                           insertSecondRowInDatabase(getVid(),getLineitem(),"6010010","SALES TAX PAYABLE",
                            (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100));      
    
                           }
    
            if(operation == DML_UPDATE)
                              {                                                    
    
                                 System.out.println("I am in Update with vid= " + getVid());
                             updateSecondRowInDatabase(getVid(),
                                 (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100));      
    
                              }                      
    
            super.doDML(operation, e);
        }
        private void insertSecondRowInDatabase(Object value1, Object value2, Object value3, Object value4, Object value5)
                  {
                    PreparedStatement stat = null;
                    try
                    {
                      String sql = "Insert into vdet (VID,LINEITEM,DEBIT,DRNAME,AMOUNT) values " +
                 "('" + value1 + "','" + value2 + "','" + value3 + "','" + value4 + "','" + value5 + "')";  
    
                      stat = getDBTransaction().createPreparedStatement(sql, 1);
                      stat.executeUpdate();
                    }
                    catch (Exception e)
                    {
                      e.printStackTrace();
                    }
                    finally
                    {
                      try
                      {
                        stat.close();
                      }
                      catch (Exception e)
                      {
                        e.printStackTrace();
                      }
                    }
                  }  
    
                  private void updateSecondRowInDatabase(Object value1, Object value5)
                  {
                    PreparedStatement stat = null;
                    try
                    {
                      String sql = "update vdet set  AMOUNT='"+ value5+"' where VID='" + value1 + "'";                     
    
                      stat = getDBTransaction().createPreparedStatement(sql, 1);  
    
                      stat.executeUpdate();
                    }
                    catch (Exception e)
                    {
                      e.printStackTrace();
                    }
                    finally
                    {
                      try
                      {
                        stat.close();
                      }
                      catch (Exception e)
                      {
                        e.printStackTrace();
                      }
                    }                  
    
                  }
    

    Second line code is inside a bean method

        public void addNewPurchaseVoucher(ActionEvent actionEvent) {
            // Add event code here...
    
            BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
                   DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("VoucherView1Iterator");
                   RowSetIterator rsi = dciter.getRowSetIterator();
                   Row lastRow = rsi.last();
                   int lastRowIndex = rsi.getRangeIndexOf(lastRow);
                   Row newRow = rsi.createRow();
                   newRow.setNewRowState(Row.STATUS_NEW);
                   rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow);
                   rsi.setCurrentRow(newRow);
    
                   BindingContainer bindings1 = BindingContext.getCurrent().getCurrentBindingsEntry();
                   DCIteratorBinding dciter1 = (DCIteratorBinding) bindings1.get("VdetView1Iterator");
                   RowSetIterator rsi1 = dciter1.getRowSetIterator();
                   Row lastRow1 = rsi1.last();
                   int lastRowIndex1 = rsi1.getRangeIndexOf(lastRow1);
                   Row newRow1 = rsi1.createRow();
                   newRow1.setNewRowState(Row.STATUS_NEW);
                   rsi1.insertRowAtRangeIndex(lastRowIndex1 +1, newRow1);
                   rsi1.setCurrentRow(newRow1);
        }
    

    And final saveUpdate method is

        public void saveUpdateButton(ActionEvent actionEvent) {
            // Add event code here...
    
            BindingContainer bindingsBC = BindingContext.getCurrent().getCurrentBindingsEntry();      
    
                   OperationBinding commit = bindingsBC.getOperationBinding("Commit");
                   commit.execute(); 
    
            OperationBinding operationBinding = BindingContext.getCurrent().getCurrentBindingsEntry().getOperationBinding("Commit");
            operationBinding.execute();
            DCIteratorBinding iter = (DCIteratorBinding) BindingContext.getCurrent().getCurrentBindingsEntry().get("VdetView1Iterator");// write iterator name from pageDef.
            iter.getViewObject().executeQuery();  
    
        }
    

    Thanks for all the cooperation to obtain the desired results.

    Concerning

  • TableView: How to show that a line of a cell contains a multi-line String using «...» »

    Hello

    I am currently working with a TableView. While I'm quite fine with the behavior of the component displaying «...» "at the end of a string that would be otherwise too long, I don't know a way to do the same thing when a channel is on more than one line...

    I already understood how to specify the height of a line by using "setFixedCellSize" so that the lines are always a high line. However, I find it embarrassing not to show «...» "to inform the user that there is more than one line of text that could let her think that there is nothing more than a line.

    Is there a way to solve the problem other that manually add «...» "every time a line separator is located?

    Thanks in advance,

    Xavier G.

    I managed to find a way to fix my problem by using the cellFactory and substituting updateItem (the called function every time the cell must be returned)

    @Override

    protected void updateItem (Object, object, boolean selected)

    {

    super.updateItem (object, selected);

    If (item is nothing)

    {

    setGraphic (null);

    setText (null);

    }

    on the other

    {

    setText (object.toString().split("\\n|\\r")) [0] + '... ») ; This line does it all

    }

    }

    }

    I post this response to the case wherever it someone else might save time

    I'm not sure it's the cleaner way to solve the problem however.

Maybe you are looking for