Delay a table

Hello

I have a table 29 x 41 that is the output of a datasocket. The datasocket collects data from a wavefront sensor and each number of the interval is a measure of a microlense (there are 29 x 41 microlenses). The problem is that when I change the settings of the Wavefront sensor to use only a part of the microlenses (exodus 29 x 29) values that correspond to unused lenses continue to be their last measured values and I need the values of unused lenses from scratch.

In other words, I have a table of 29 x 41 with certain values that are constantly evolving and some that are stable. I need to change the ones that are stable at zero.

I thought that I could remove the table with this same table but 1 second later. Any ideas how to do this or other suggestions?

Thank you

Max

You can use a shift register or a feedback node so that you will keep the values in the previous table and can compare it.

Tags: NI Software

Similar Questions

  • Why is the Table in the loop without delay time flashing

    Hello everyone

    Why I put Table in the loop without any delay, the front table still flashes?

    How can I avoid this situation?

    This situation is related to the level of the PC?

    Hello

    This problem was presented as a request for corrective measures, several years ago although there always seems to be involved.

    Sometimes this is because the table is constantly updated, but at a slow pace, enough to be visible. If you place a Boolean button on the table on front panel indicator and make transparent (I used a Cancel button that uses a locking mechanism when released), this will force off update screen and flashing minimum.

  • Add a delay time before pushing in a table?

    I have a function, loadXML, that loads an xml file with a list of locations to OTHER xml files.  In this function, I load each individual xml file and perform a new function, parseXML, each of the variables that I wish to submit individual xml files in a table.

    It all works fine and dandy on my computer, but when I run it online it breaks down.

    What I believe happens is that the original xml file is loaded correctly, but because the referenced xml files are on the web and are different sizes, they stop in the load order and data not corresponding to the xml file that is referenced in the referenceListA table.  (ie. all data of every referenced file item1, item2 and item3 will stay together because they are called at the same time, but it will be mixed from the referenced xml file).

    This normally wouldn't be a big deal, but because I also want to create a link to the xml file that is referenced, not sometimes the link will lead to the right place (it will lead to another xml file in the list).

    Someone at - it ideas?  I thought the addition of a time delay somehow in the loadXML function to give time to load the file newxml, but still problematic...

    How can I make sure that the referenceListA [i] mathes until its own information?

    ---

    referenceListA = [];

    xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load ("list.xml");
    function loadXML (loaded) {}
    If {(responsible)
    var root = this.firstChild; The root node
    for (var i = root.firstChild; i! = null; i = i.nextSibling) {}

    referenceListA.push (i.attributes.location);
    newxml = new XML();
    newxml.ignoreWhite = true;
    newxml.onLoad = parseXML;
    newxml. Load ("details.xml" + i.Attributes.Location);
    }
    } else {}
    trace ("file not loaded!");
    }
    }

    item1A = [];
    item2A = [];
    item3A = [];
    parseXML() {} function
    item1A.push(this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue);
    item2A.push(this.firstChild.childNodes[0].childNodes[1].firstChild.nodeValue);
    item3A.push(this.firstChild.childNodes[0].childNodes[2].firstChild.nodeValue);
    }

    trace (referenceListA);
    trace (item1A);
    trace (item2A);
    trace (item3A);

    I can't be sure that what you stated where and what things are in your code, but more like what I was describing what I show below - it is a quick edit, so just try to get the idea of the...

    referenceListA = [];

    locationA = [];

    item1A = [];
    item2A = [];
    item3A = [];

    var xmlData = new XML();
    xmlData.ignoreWhite = true;
    xmlData.onLoad = loadXML;
    xmlData.load ("list.xml");
    function loadXML (loaded) {}
    If {(responsible)
    var root = this.firstChild; The root node
    for (var i = root.firstChild; i! = null; i = i.nextSibling) {}
    referenceListA.push (i.attributes.location);

    }

    functionA(); load the first file

    } else {}
    trace ("file not loaded!");
    }

    }

    locationA = [];

    item1A = [];
    item2A = [];
    item3A = [];

    var num:Number = 0;

    function functionA() {/ / load the current file identified by index value num}

    newxml = new XML();
    newxml.ignoreWhite = true;
    newxml.onLoad = parseXML;
    newxml. Load (referenceListA [num] + "details.xml");
    }

    parseXML() function {/ / what I called the B function}

    locationA.push (this);
    item1A.push(this.firstChild.childNodes[0].childNodes[0].firstChild.nodeValue);
    item2A.push(this.firstChild.childNodes[0].childNodes[1].firstChild.nodeValue);
    item3A.push(this.firstChild.childNodes[0].childNodes[2].firstChild.nodeValue);

    Num += 1;

    If (num<>

    functionA();    Load the next file

    }
    }

  • Delay in a partitioned table index population

    Hello

    We have a 3 TB database, which earns about 5 GB per day. Fat is partitioned by date (a partition for each day), as well as their local indexes. The population of data is made by IBM DataStage and assume that it uses a bulk loading. I have 2 questions:

    1. is the index updated immediately for cargo in bulk, or Oracle wait until the load has finished updating indexes on table?
    2. is there a way to tell Oracle to have an index for a table, but not for a partition of this table? What I want to do is fill partition today the table with data today, but be able to build the index for this partition at a later date. Deletion and re-creation of the index for the entire table are not an option.

    Thank you.

    What you would normally do here is to load the data into a separate intermediate table, build indexes on this staging of the table, and then create a swap partition to load the data into the partitioned table. Exchange partition is a way to exchange very quickly a partition of a partitioned with a separate table and unpartitioned table. This happens almost instantly.

    Justin

  • How do you return a blank in table 2, when there is no data in the cell related in table 1?

    I run a recreational League of golf and have been recording the scores of the players (50 + players in total) with the intention of maintaining a form of disability from the League.

    So far, I did most of the calculations manually in number. Recently, I have experimented using the Lookup function but have encountered a problem with the time where the player does not play this week.

    In table 1, where I do all scores record cel when they do not play is left blank. However, in table 2 than corresponding cel returns a 0... strikes completely out of whack handicaps.

    Here is what I used in table 2 for the information of table 1...  SEARCH (name, 2016 Stats::Table 1 $Last: $ name, 2016 Stats::Table 1::G44)

    I also tried to add an IF statement, but I have obviously not understood correctly as he said I tried to refer to a cel in the statement itself.

    Example of the disability Page in the table 2 list a 0 is returned in cel 6... which is then averaged in the cel of last second... namely the problem. The cel with the 6 in it is a formula that counts the number of moves played and see it 6 because it counts as a trick played 0. This shows the wrong average score of 65.666

    Them

    A

    78

    1

    78

    Me

    Me

    80

    75

    81

    0

    81

    77

    6

    65.6666666666667

    -10

    As it appears in table 1. indicating the total number of rounds played in 5 and returning the precise average score of 78.8

    Me

    Me

    80

    75

    81

    81

    77

    5

    78.8

    Hi pondball,

    (Could be my 'golf name' somedays)

    Formula in Handicap::B2 and filled to the bottom and right at Handicap::X4

    = IF (LOOKUP ($A, data: $A, Data::B)=0,"",LOOKUP($A,Data::$A,Data::B))))

    IF compared the results of the first SEARCH and if it is zero, returns an empty string. If the comparison returns FALSE, the second SEARCH is called, find and returns the result of zero. AVERAGE does not take into account all results of text, including the string NULL, a zero-length text value.

    COUNT (used in the column count the number of turns) also ignores the text values.

    4th place of disability shows one of the reasons for not using LOOKUP.

    SEARCH alwas accepts a "close fit" with the search value. 'near match' for RESEARCH is defined as 'the largest value equal or less than the value of the research', and for the values text, "less than or equal" can be described as "identical or come forward in a list of items of text in alphabetical order.»

    For us, the other two values in the name list are 'less' us and the most important is 'Them', the values for 'Them' are returned.

    For this reason, I tend to use VLOOKUP instead of RESEARCH in many cases.

    VLOOKUP present the disadvantage of requiring her research-where location which will be the first column of the lookup table (which is not a problem here, because the location of the research is one ot the column data table).

    But also has the advantage of af being able to require an "exact match" search value.

    Here's the same tables of two, with VLOOKUP replacing LOOKUP. Note that the VLOOKUP function has a different syntax than the LOOKUP function.

    Formula VLOOKUP in Handicap::B2, filled with verse down and right at Handicap::X4:

    = IF (VLOOKUP ($A, Data: $A:$ X, COLUMN (), FALSE) = 0,"", VLOOKUP ($A, Data: $A:$ X, COLUMN (), FALSE) ")

    Written as above, the formula works correctly in rows 2 and 3, but will just return the error in the 4th row triangles, since it will not find a match (exact n) for 'Us' in column A of data.

    After confirming that it produces no unexpected error, wrap the formula in function SIERREUR as shown below and repeat the filling down and the right filling operations above.

    SIERREUR function interrupt all errors, including those affecting the results without your knowledge if they occur. Always delay adding IFERROR until you know what are the errors he fools.

    =IFERROR (IF (VLOOKUP ($A, data: $A:$ X, COLUMN (), FALSE) = 0,' ", VLOOKUP ($A, data: $A:$ X, COLUMN (), F ALSE))," ")

    Y2: = COUNT (C2:X 2)

    Z2: = AVERAGE(C2:X2) (base form)

    Z2: = IF (Y = 0,' ", AVERAGE (C2:X 2)) (real form)

    The encapsulation of the AVERAGE function in the IF statement deletes the calculation if the number of items to the average value is zero, AVERAGE preventing from return to a division by zero error. The number of circles in the column there is NOT used in the calculation of the average (AVERAGE did his own count), but is used as a switch 'OK to calculate' leaving the calculation of the AVERAGE to move forward.

    Kind regards

    Barry

  • spend a CVI to TestStand function reference tables

    I need to switch tables (double, for example) a CVI function (usually a dll), return to TestStand.  and vice versa.

    I followed a method that uses features of TestStand CVI such as 'TS_PropertyGetValNumber' and 'TS_PropertySetValString' and I understand how simple values, but the tables are killing me.   I do not see why it would be so difficult, so I must be missing something fundamental

    Here is a simple example of what I'm doing.   I need to add a way to pass an allocated array of doubles (as declared and held in TestStand) in the CVI function where it is called 'values', have my CVI function fill this table of the 'values' and then pass the array back.

    void TestStand_DUT_Transfer (CAObjHandle seqContextCVI, char reportText [1024],)
    short * errorOccurred, long * errorCode, char errorMsg [1024])
    {
    error int = 0;
    char response [DUT_TS_MAX_BUF_SIZE] = {'\0'};
    Double delayResponse = 0.0;
    ErrMsg errMsg = {'\0'};
    ERRORINFO errorInfo.

    get the double value of TS
    tsErrChk (TS_PropertyGetValNumber (seqContextCVI, & errorInfo, 'Properties.Delay',
    TS_PropOption_NoOptions, & delay));

    /* */
    / * How DO I GET AN ALLOCATED TEST DOUBLES TABLE? */
    /* */

    Send command to the device, return a response string and double values table

    DUT_TS_ErrChk (DUT_Transfer (delay, response, values)); //<=== here="" is="" "values"="">


    /* */
    / * I PASS SUSTAIN HOW THE VALUES BACK to THE TEST BENCH? */
    /* */

    Send the char string to TS
    tsErrChk (TS_PropertySetValString (seqContextCVI, & errorInfo, 'Properties.DUTResponse',
    TS_PropOption_NoOptions, response);

    Error:
    If (error! = NO_ERROR)
    {
    DUT_Error_Handler (error, error);
    * errorOccurred = TRUE;
    * error code = error;
    strcpy (errorMsg, errMsg);
    }
    }

    Thank you for the review.

    well, I received a response OR support.  I guess that's a common question since they have an example written, but for later use (since I couldn't find an answer by searching on forums), I will post it here:

    \Examples\AccessingArraysUsingAPI\UsingCVI

  • The Stimulus of the Table load and run in the stream or target RT via Ethernet?

    I need to re-read a CAN track with the high fidelity and sequencing of rapid fire. The PC operating system is in the way too much to be able to control this tight of the moment. It must be managed within the target in real time.

    Do the stimulus of the table the stimulus replay load data to the RT, and then run the target of RT, or don't work space running on the PC the data flow to the RT for execution? Streaming would be subject to delays of PC operating system and network transport times.

    Thanks in advance for your help.

    Table of stimulus data gets loaded completely in memory on the target of RT and are replayed from there. PC or network delays has no effect on reading as soon as it starts.

  • PCI-6602 Initial delay

    Hello

    Currently, I use the code below to run counters to a frequency fixed/market factor.  After the first counter triggers the rest of the counters, take turn of shooting using the terminal of initial delay on the creation of the channel vi.  It works well and keeps them all to shoot at a time.

    Now, I need to change the frequency/duty cycle once per second for 70 seconds (70 different points table) and repeat until I want to stop.  I'm able to do it without any problem.

    My problem is to put my initial delay each second based on my frequency to keep a nice ripple effect.  In order to define the initial deadline, I have to stop the task.  Is there another way to keep the evenly spaced counters (a beautiful ripple) depends on the frequency without stop the task?

    I'm assuming that your need to stagger the injectors 'cooking' means that you are concerned by the timing of the active edges of the pulse.  Whether rising asset or fall may not be particularly relevant if we can just make them very short duration.

    1. I would like to begin by suggesting understand you the max freq reasonable you'll never need to host and then plan to stagger the firings through this same interval of time even when you operate at a slower rate that will simplify things considerably.

    2 configure all of your counters in slaves to be redeclenchables (as you already are), but REMOVE the call to Timing.vi DAQmx they will all then be generators of redeclenchables pulse.  Keep have triggered them by CTR0, the master clock.

    3 set the slaves in terms of time of low / high time.  Assuming the State of inactivity which is low (the default if I remember correctly), each 'initial period' equal to this unique 'small time' counters and define the minimum 'big time' can accommodate your system.

    Note: unless the behavior has changed in more recent versions of DAQmx, the value of 'initial period' is used after 1st relaxation while the "small time" value is used for all of the following triggers.  Don't ask * me * why, but NEITHER people have weighed in on this subject in the preliminary discussions, calling it of "expected behavior".   EXPECTED by which is exactly what I wonder.  I have yet to see a single comment saying: ' Yes, great, that's just how I * wanted * he behave. "   IN ANY CASE...

    4. start all your slave counters before you run the master.

    5. the freq of the main counter can be changed on the fly without stopping and reprogramming it.  All counters of the slave will continue to draw a single impulse per side assets of the master.

    6 speculative idea, I haven't checked.  You can * probably * update of low time / pairs high time the slave of counters on the fly as well.  If so, this will allow you to broadcast the 'ripple' overall most of the available range during operation at low speed.  It seems that your application can live with the possibility that these updates of the slave synchronization cannot occur in the same cycle of pulse master.

    -Kevin P

  • Adding items in a table

    Hello guys, I looked for a solution to my problem, but I can not find the correct answer...

    Here's the thing;

    I have a variable (let's call it 'Variable Case'). Whenever this variable goes from 0 to 1, I want to add to the value of another variable (let's call this a "Defective nozzle") to an array of 2D. So far, nothing impressive, but things will get worse now!
    To be sure I added correctly the value of "Defective nozzle" in my table, I have another variable (let's call it 'Successfully added') which goes from 0 (Nothing) to 1 (the value added in the table). When 'Successfully added' is '1', I have to set the value of 'Box' return from 1 to 0 (the 'Case' variable is in a while loop which is refreshed every 100 ms so it is very important that "The case" goes to 0 as soon as 'Defective nozzle' writing is done) and once the 'case' is 0 , the value 'Successfully added' aswell 0.
    In addition, the size of the array is set to 10 items and whenever a value is written in this document, I have to increment the value of the index for the next value.

    How to understand;

    First iteration:

    • I have (from table) = 0

    • Business goes from 0 to 1

    • I insert the "Defective nozzle" value in the table

    • "Successfully added" goes from 0 to 1 (the value was written in the table)

    • I put back 'Case' to 0

    • I (index table) ++

    • 'Successfully added' move to '0 '.

    Second iteration:

    • I have (from table) = 1

    • Business goes from 0 to 1

    • I insert the "Defective nozzle" value in the table

    • "Successfully added" goes from 0 to 1 (the value was written in the table)

    • I put back 'Case' to 0

    • I (index table) ++

    • 'Successfully added' move to '0 '.

    Third generation (you have the thing...)

    I have everything works but the "I ++" thingy. Could you take a look at my vi and tell me what I'm doing wrong? Thanks for your help!

    Hello Claude,.

    meaning of GerdW, is, that you don't find the answers to many questions.

    1. Due to the paradigm of data flow of LabVIEW, independent (and not with the wire) parts of the diagram run in parallel. If the sequence you have described in your message will run not in your VI, because the structure of the case, the structure of the event and the select node are independent of each other. You see, if you perform the VI mode with the debugging light bulb on.

    2. Shared variables are not the best way to store values, except that you want to share these values with other applications on remote computers. The best way to pass values from one part of the block diagram to another is a thread!

    3. "Change the value" - event fires only if the value is passed to the user interface, this means only by the user or through the 'value (signalling)' property node. So in your VI this event never fires. And because the terminal timeout is not wired, the structure of the event you expected forever to run your loop don't cycle.

    4. The part with the select node is already described in the Rube Goldberg-Thread, this means: If TRUE then TRUE else FALSE

    I modified your VI so that he could answer some of your needs. Have a look at it and maybe you can answer the questions that came up to me:

    1. Why "table initialized" a 2D array and to what index elements must be inserted?

    2. Why 'table initialized' limited to 5 rows and 2 columns, and what happens when you want to insert multiple items? You can start again by the index 0? Do the loop terminate?

    3. If you want an unlimited size of the "initialized array", you must use the node 'build array' instead of 'subset of table to replace.

  • The delay between the "successfully added" definition affecting the value TRUE and FALSE reset is very short (about 10 ns), do you really need this information?
  • For some reason, I'm not able to view a VI. I get the message error that the extension doesn't ' corresponds to the file type.

  • Remove the entry from the ARP table

    I need to create a program to remove an entry in the ARP table in Windows 7 with LabVIEW and TestStand.  The test that I develop contacts ESA via Ethernet.  Each HAD has the same IP address at the beginning but different MAC addresses.  I note that there may be long delays in test is running when you try to connect and remove the previous entry in the ARP table seems to help.  But now I have to do it manually through the command line.  The command 'arp d' requires elevated privileges.  I had a hard time getting LabVIEW to raise the system exec.  Does anyone have an ideas? Is there a .NET access to the ARP table?

    Thank you

    Paul

    I'll try to look into ARP sync settings setting in Windows.

    We have suffered from various problems of connection-performance TCP a few years ago and our solution was to change the default number of TCP sockets and delays (we knew port exhaustion). The tweeks eliminated most of our problems, no changes to code LV/TS not required.

    I tried to find info on ARP parameters for Windows 7, but it seems that there is much less info available that ther is for XP.

    Key words of the most common registry for older versions of Windows have been 'ArpCacheLife' and 'ArpCacheMinReferencedLife.

    EDIT:

    These parameters were apparently kidnapped in Vista. I found this on the site of $ M; they can apply to later versions, as well as M$ is a request for change to the management of the ARP...

    http://support.Microsoft.com/kb/949589

  • Indexing for loop while seizing the unique values in table

    Hi all

    I have another question. Overall, I have a table and I want to take each element of this array. My thoughts of how do are the following:

    I use a loop for the indexing of my table. Then I create a local variable outside of the loop in order to get the individual elements of the array. But it does not work I think because the local variable is not updated at each iteration.

    Also, it feels like there is a more elegant way to do what I want to do.

    Can someone give me some advice to solve my problem?

    Thank you very much.

    Best regards

    Tresdin

    I don't know why you are so hung up with a local variable to send sequential orders of VISA.

    Here's what I do:

    That sends commands to the SCPI 7 to my AC source with a delay of 100 ms between each command sent.

  • Enjoying a voltage sensor record position (with delay)

    Hi all

    I was wondering if someone could help me here, I'm still pretty novice Labview... Basically I have a vi that I created that supplies analog sensor values in my main vi in parallel with another sub vi, which feeds in position gps in a combined string of latitude and longitude. What I try to do is to save the locations in a visible table on the front panel, when acceleration exceeds a certain amount (1 g).

    The question I have is I don't want to take down the chain to a location for each time that the acceleration is outdated, so I want to put in place some sort of delay so that when the acceleration increases beyond 1 g, the position is saved and then the program waits for a moment before taking the next position (I want only one place registered per event). But I can't work on how to do this. The only way I can think of to achieve it will give me several values of position whenever the acceleration goes the limit.

    Any help would be greatly appreciated.

    Thank you

    Hey o..

    the simplest solution would be to read your "string concat" using a local variable in the right event loop. Accumulate this "marker table" using a registry to offset (as usual)...

  • And outputs analog table 2D through 4 lines (PCI 6711)

    Hello

    I want to design a user interface where the user can set the level of analog voltage of a specific analog channel for a certain period of time.  Basically, I need a 2D table where the columns represent each channel on the PCI 6711 map (Ao 0:3) and the lines represent a specific amount of time for each line to last.  I guess it would have to be another array of verical 1 d with integers representing the number of ticks that each line will last.  I can't seem to find an example of code where this is implemented, so some examples or suggestions would be grealty appreciated.  I have included a picture of another program that does this, and I would like to reproduce this configuration.

    Pass the array using a loop for. This example gets each line. You can then use the subset of the table to get the columns with the voltage. This gets wired to a game of writing DAQmx for n channels 1 sample. The duration column index and son to a delay. Try it and post back you're stuck.

    Sorry, but the answer above is meaningless to me.

  • Permutation between 2 lines in a control table

    How do swap you 2 lines in a table without delay effect?

    Currently, I copied all the data for a row to a temporary buffer, crush the line with the line to be traded. Then replace the line interchanged with the data in the temporary buffer, something like the bubble sort algorithm.

    I've only used the "GetTableCellVal" and "SetTableCellVal" functions with multiple loops "for".

    I'm able to exchange between the rows, but the Exchange takes some time.

    No idea how to switch lines without delay a time important?

    If all the cells in each row have the same type of cell (and the type of data, if they are digital) then you can use GetTableCellRangeVals / SetTableCellRangeVals instead, which should speed things up.

    Another trick is to hide the table temporarily (attribute ATTR_VISIBLE) around the entire operation. This prevents the SetTableCellVal or SetTableCellRangeVals to start a new drawing of the table. Redesigns can be slow, and in this case you don't need any drawing until you have finished with the swap. When you make the table visible once again, it will redraw automatically the next time that the events are handled.

    An alternative to creating and getting each value is to use the Clipboard table functions. I don't really know if it would be faster, but you can test it and find out. The code should look like this:

    GetNumTableRows (Panel, PANEL_TABLE, & numRows);
    InsertTableRows (Panel, PANEL_TABLE, numRows + 1, 1, VAL_USE_MASTER_CELL_TYPE);
    ClipboardPutTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE (row1));
    ClipboardGetTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE(numRows+1), NULL);
    ClipboardPutTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE (row2));
    ClipboardGetTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE (row1), NULL);
    ClipboardPutTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE(numRows+1));
    ClipboardGetTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE (row2), NULL);
    DeleteTableRows (Panel, PANEL_TABLE, numRows, 1);

    It was not clear from your description that you can assume that the two lines to be swapped are always adjacent. If they are, then the code above could be greatly simplified, since in this case, simply make a copy of leapfrog:

    InsertTableRows (Panel, PANEL_TABLE, topRow + 2, 1, VAL_USE_MASTER_CELL_TYPE);
    ClipboardPutTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE (topRow));
    ClipboardGetTableVals (Panel, PANEL_TABLE, VAL_TABLE_ROW_RANGE(topRow+2), NULL);
    DeleteTableRows (Panel, PANEL_TABLE, topRow, 1);

    Hope this helps,

    Luis

  • KEITHLEY 238 / NI GPIB-USB-HS-change delay time

    Hello

    I have a keithley 238 meters the current measures such as voltage is swept. It's the GPIB device and connected to my PC via NI GPIB-USB-HS

    adapter. I would like to control with Labview 8.6. I used the VI available at your instrument driver network who directed me to the website keithley and is attached below. Keithley said that the VI is unsupported freeware. The VI is located at

    http://www.Keithley.com/products/CurrentVoltage/?path=238/downloads#1

    The first "sample program" on this site Web is the VI that I use.

    Now the VI works well.  The VI sweeps the tension and shows the current measured as a table and a chart.

    I want to just change the scanning time, but I can't increase it beyond 1000 ms. Why is it so?

    Scan delay is the time that he made a break after each increment of voltage.

    I don't know if there's a change in the VI or NI GPIB-USB-HS adapter settings are a problem. I checked the settings of this device under MAX - time settings are the following

    (1) time I / O-> by default set to 13 (10 sec)

    (2) antipolling - verified

    (3) then there are a few termination settings and advanced settings, there is a setting, bus game calendar to-2 (500nsec)

    So are bad parameters GPIB or code needs to be changed? How and where to change the code?

    The reason why the VI will not attribute to a value greater than 1000 is simple to understand. Just right click and select data entry and you will see that the maximum value is set to 1000. It is set so that I don't know. Have you looked in the manual to see if 1 s is a limitation of the instrument?

Maybe you are looking for