To high measurement time for NI PXI 4132
Hi,
I'm using 4132 to measure very small current of photo transistor device. with 25v source to the DUT it takes me more than 100ms to get an stable current reading.
How will i reduce measurement time?
tnx!
Hi edakoto,
What current levels are you reading? How are you acquiring the data in software?
One thing to try is to reduce the Aperture time of the device. The PXI 4132 defaults to an aperture time of 16.6 ms. You can reduce this using the Configure Aperture Time VI or function. For more information see here:
http://zone.ni.com/reference/en-XX/help/370736F-01/ni_dc_power_supplies_help/4132_aperture/
Thanks
Patrick W.
Applications Engineer
National Instruments
Similar Messages
-
Measure time for a program in SE30 transaction code
where should i get the help files and i want to know how should we measure the time for the two different programs and upto how much time the program will take if the program is exactly right means with no errors and in the graph it is showing when i'm analyzing the performance of a program i.e abap with 77% in red, database with 10% in green, and system with 20% in green what does it represent. for a exactly correct program how much percentage should needed and it should be in which color?
Hi,
for a good program,
the database and system time values should be green always.
abap program can be red also not a problem.
but if database is in red colour, (after it crosses 50%), then it means that it gives much load in database server and you should change your code performance.
Regards,
Sakthi Sri. -
High-resolution timer for the iPhone
The NSDate class is actually very high-resolution.
NSDate *startDate = [[NSDate alloc] init];
// do something
NSDate *endDate = [[NSDate alloc] init];
double seconds = [endDate timeIntervalSinceDate:startDate];
iPhone simulator: 0.001013 or 0.000983 ms accuracy (about twice as long as it takes to pull the date)
iPhone debug: between about 0.014 and 0.015 ms accuracy (it takes that long to pull the date)
The [NSDate date] might be simpler than alloc and init, but it actually takes about 3 millionths of a second longer on the simulator.So are you asking for a way to obtain a timestamp with less latency or how to implement a timer?
-
Queries taking high execution time for zero count
Hi,
i have procedures executing as jobs.
the procedures take a lot of time to execute when the cursor count is zero.
what might be the reason for this?GreenHorn wrote:
cursor 1 - select a.col1, b.col1,decode(c.col1,1,c.col1,2,c.col2,null) col3 from a,b,c
where joing conditions
and nvl(c.col3,c.col4) = b.col3
and c.col5 is null
cursor 2 - cursor 1 - select a.col1, b.col1,decode(c.col1,1,c.col1,2,c.col2,null) col3 from a,b,c
where joing conditions
and a.timestamp > sysdate-1
and nvl(c.col3,c.col4) = b.col3
and c.col5 is not nulll
cursor 2 first updates the values of col5 to null
cursor 1 recalculates the value of col5 and updates it.
c is a partitioned table and partition code is also present in the where condition.One question: Since you say that the cursor is "updating", but the cursor is a query, does this mean that you're performing row-by-row processing in a loop?
If yes, you might be better off with doing this in one or two plain SQL statements, which is probably much faster.
Another question: You say that after taking the described measures the performance was significantly better but became again worse after a couple of days again, is this right?
Can you provide more details, what "good" and "bad" performance means, e.g. in terms of execution time?
You might want to check if the execution plans change between the "good" performance and the "bad" performance.
If your table continuously gets data deleted and for some reason the deleted rows are not re-used, e.g. by using direct-path inserts to add new data, then your segment might become larger and larger and you would need to re-organize the table if you use regularly full table scans against it.
The execution plan posted is not really helpful. Try to use DBMS_XPLAN.DISPLAY to get a proper output including the "Predicate Information" section below the plan and specify to which of the two statements the plan corresponds.
Use the {noformat}{noformat} tags to format the plan output properly here in mono-space fonts.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/
Edited by: Randolf Geist on Dec 12, 2008 9:57 AM
Note regarding execution plan added -
Very high parse times for query rewrite using cube materialized views
We recently upgraded to version 11.2.0.2 (both AWM and Oracle database server). We are using cube materialized views with query rewrite enabled. Some observations of changes that took place when we rebuilt all the dimensions and cubes in this version:
1. Queries against the base tables take about 35 seconds to parse. Then they execute in a tenth of a second. Even simple queries that just get a sum of the amount from the fact table (which is joined to all the dimensions) takes that long to parse. Once parsed, the queries fly.
2. I noticed that the materialized views used to use grouping sets in the group by clause in version 11.2.0.1, but now they use group by rollup, rollup, rollup...
If we disable query rewrite on the MV or for my session, parse times drop to less than a second. Ideas?There does appear to be a slow down in parse times between 11.1.0.7 and 11.2. We are still investigating this, but in the meantime here is a way to force the code in 11.2 to generate a GROUPING SETS clause instead of the new ROLLUP syntax.
The trick is to create a dummy hierarchy containing only the leaf level. This is necessary for all dimensions that currently have a single hierarchy. As a simple example I created a dimension, PROD, with three levels, A, B, and C, in a single hierarchy. I then created a one dimensional cube, PC. Here is the SELECT statement for the MV in 11.2. Note the ROLLUP clause in the GROUP BY.
SELECT
GROUPING_ID(T3."CLASS_ID", T3."FAMILY_ID", T3."ITEM_ID") SYS_GID,
(CASE GROUPING_ID(T3."CLASS_ID", T3."FAMILY_ID", T3."ITEM_ID")
WHEN 3
THEN TO_CHAR(('A_' || T3."CLASS_ID") )
WHEN 1
THEN TO_CHAR(('B_' || T3."FAMILY_ID") )
ELSE TO_CHAR(('C_' || T3."ITEM_ID") ) END) "PROD",
T3."CLASS_ID" "D1_PROD_A_ID",
T3."FAMILY_ID" "D1_PROD_B_ID",
T3."ITEM_ID" "D1_PROD_C_ID",
SUM(T2."UNIT_PRICE") "PRICE",
COUNT(T2."UNIT_PRICE") "COUNT_PRICE",
COUNT(*) "SYS_COUNT"
FROM
GLOBAL."PRICE_AND_COST_FACT" T2,
GLOBAL."PRODUCT_DIM" T3
WHERE
(T3."ITEM_ID" = T2."ITEM_ID")
GROUP BY
(T3."CLASS_ID") ,
ROLLUP ((T3."FAMILY_ID") , (T3."ITEM_ID") )Next I modified the dimension to add a new hierarchy, DUMMY, containing just the leaf level, C. Once I have mapped the new level and re-enabled MVs, I get the following formulation.
SELECT
GROUPING_ID(T3."CLASS_ID", T3."FAMILY_ID", T3."ITEM_ID") SYS_GID,
(CASE GROUPING_ID(T3."CLASS_ID", T3."FAMILY_ID", T3."ITEM_ID")
WHEN 3
THEN ('A_' || T3."CLASS_ID")
WHEN 1
THEN ('B_' || T3."FAMILY_ID")
WHEN 0
THEN ('C_' || T3."ITEM_ID")
ELSE NULL END) "PROD",
T3."CLASS_ID" "D1_PROD_A_ID",
T3."FAMILY_ID" "D1_PROD_B_ID",
T3."ITEM_ID" "D1_PROD_C_ID",
SUM(T2."UNIT_PRICE") "PRICE",
COUNT(T2."UNIT_PRICE") "COUNT_PRICE",
COUNT(*) "SYS_COUNT"
FROM
GLOBAL."PRICE_AND_COST_FACT" T2,
GLOBAL."PRODUCT_DIM" T3
WHERE
(T3."ITEM_ID" = T2."ITEM_ID")
GROUP BY
GROUPING SETS ((T3."CLASS_ID") , (T3."FAMILY_ID", T3."CLASS_ID") , (T3."ITEM_ID", T3."FAMILY_ID", T3."CLASS_ID") )This puts things back the way they were in 11.1.0.7 when the GROUPING SETS clause was used in all cases. Note that the two queries are logically equivalent. -
Is anyone experiencing High loading times for iCal events using Outlook exchange
I am using an iPad2 and use the default iCal and another calendar app (HD Informant) connected Exchange and synched to Outlook. Recently it is taking over 45 seconds to a minute to load calendar events. When I go to swipe to a new week, it freezes' or at least takes another 45 seconds to move day to day, week to week or month to month.
Is anyone experiencing similar issues?categories are not supported at present. If you add a contact to your phone and sync, you will need to categorize in outlook.
-
Ni scope measurement time delay
使用niscope measurement 测量 time delay ,如何使测量更加准确,现在测出来的值的浮动范围很大,另,能不能提供其测量的具体算法编程
The PXI 1031 is just the chassis and power supply. It does not read anything. So I am guessing that the 5105 is doing the measurements.
What is the resistor value you are using to convert the current to voltage? Have you verified that the resistor is actually close to the nominal value? Is the voltage in the current loop within the common mode range of the measurement device? Do you have the loop grounded at two different points? Does the pressure actually exceed 62 bar? Does the current from the transducer actually go to 20 mA?
Your calculation is correct for a 1-5 V input corresponding to 0-100 bar.
You have several questions which all seem to be related to the same project. Do you have a good overall plan for the total project? Did someone sit down and create a specification for the hardware and the software? Have the various subsystems been designed in detail before you started developing code and buying hardware? Do you have a System Architect (Project Manager, or other title) who has a good overall idea of how this thing is supposed to work?
Without that you will likely continue to be frustrated and not too productive.
Lynn -
Is it normal when physical Memory running high all time ?
Dear Expert
We have server production running apex application.
Data & Fact
OS : windows server 2008 R2 standard (64 bit)
intel xeon
RAM : 4 GB
installed product:
DB : Oracle 11g R2
APEX : APEX 4.1
listener : OHS
on resource monitor
Used Physical Memory running high all time (80 %).
is it normal?
Regard
Lutfi HedirLutfi.Hedir wrote:
Hi Earl thanks for respond
My curiosity is why used memory high all time for 24 hour not on peak hour only?, when i stop db console service it drop litle bit :D.
My suspicion is that Oracle is grabbing as much memory as it can on startup and it's simply holding on to it. Memory usage is generally not going to go down from some baseline once an application has been started. It's not like the CPU utilization, which can fluctuate quite a bit for any one application. Memory usage will likely increase if you run some memory intensive operations, but doubtful that you will ever see it go down much.
Earl -
Hi there,
I have developed an application to detect interrupts generated by a electronic card and act in consequence. The program has been developed in labview but it calls a dll; that was created with labwindows. The dll is programmed to open the visa communication, enable events and install the interrupt handler and when an interrupt is detected, it reads the value of the different registers of the card and returns it to labview to visualize them.
The problem is that when the program waits for an interrupt, a prompt appears with the message "Waiting for real-time target (RT PXI target) to respond" and the only option I have is to click on the button to disconnect from the pxi or just wait. If I wait and I generate an interrupt, the prompt disappears and the application visualize the data like it was expected.
To wait for the interrupt the following code has been programmed in the function:
while (flag == 0)
Sleep (1000);
When an interrupt occurs, the value of flag changes to 1 and the function continue without any problem. I am not really sure, but probably here is the problem and probably this is not the best way to wait for an interrupt because the sleep function suspends the thread for the configured time, but at least the computing load in the PXI is between 0% and 1%. I was wondering if somebody knows how to wait for an interrupt without "lost" the communication with the PXI and if there is a better way to do it.
Any answer will be welcome and thanks for them,
Jaime
Solved!
Go to Solution.Hello Naity,
First of all, in which thread runs the waiting process? Is it scheduled in another thread than the function setting the flag?
It scheduled in the same thread that I use to configure the communications and configure the card. Anyway, here is the pseudo code of the function interrupt that I programmed under labwindows,.
char* interrupt(void)
1. Open visa communications
2.Install handler interrupt --> status = viInstallHandler (instr, VI_EVENT_PXI_INTR, IntrHandler, VI_NULL); // the function IntrHandler will be called when an interrupt occurs
3. Enable event PXI interrupt
4. Wait
while (flag == 0)
Sleep (1000);
5. Visualize the data coming from the interrupt (registers and values measured with the card)
6. Uninstall handler interrupt
7. Close visa session
The interrupt handler function IntrHandler is called immediately when an interrupt occurs and the pseudo code is like this
ViStatus _VI_FUNCH IntrHandler(ViSession instr, ViEventType etype, ViEvent event, ViAddr userhandle)
1. Disable some functions of the card to avoid damages.
2. Read registers and put them in a buffer
3. Change the value of flag ---> flag = 1;
In labview, I call the function interrupt with a call library function node (see the capture attached) and the program reads and saves the data from returned from the function.
Secondly, I am not sure this method is the most elegant. You could for example register an event with the function and, insteand of setting a flag to 1, trigger the event and schedule it in another thread (if the function is thread safe). This could reduce your CPU Load even more and seem a bit cleaner to me.
I've never used events before in labwindows but I will try to do it in this way. But anyway, I suppose that I should; somehow, wait the event to occurs in labview while the waiting for the event is programmed inside the dll...and probably the same prompt that i am trying to avoid is going to appear again, because I am not returning the "control" to labview (I mean, labview executes the dll and waits for the event to occur. Then the execution of the labview program is stopped in the call library function node executing the dll)
Third point, which environment of development are you using?
I am working with LV 2010 sp1 and Labwindows cv 10.0.1 and with the real time module.
I did also another test, I divided the program in different functions, one to initialize the communication, another to wait until a interrupt has been detected and the other to obtain the data from the interrupt and close communications. With labview I call first with the call library function node the function to initialize, later I call inside a while loop the wait function like this
int waitAseconds (double seconds, short stop_waiting)
if(flag==1 || stop_waiting == 1)
flag = 1; //to detect the stop_waiting button
printf("flagAA =1 stop waiting = %d time = %d\n", stop_waiting, clock());
return flag;
else
SleepUS(seconds*1000000);
//a++;
printf("flag a= %d stop waiting = %d time = %d\n", flag, stop_waiting, clock());
return flag;
and when the program detects an interrupt, the function returns to labview the flag and stops the loop. Finally, it reads the values and close communications.
In this way, the prompt appears but after running the application for 10 or 20 minutes and also i checked that there is a time gap between the executions in the loop.
Thanks for your reply and your help,
Jaime
Attachments:
capture.png 40 KB -
What is the best way to create shared variable for multiple Real time (PXI) to GUI PC? I have 16 Nos of PXI system in network and 1 nos of GUI PC. I want to send command to all the PXI system with using single variable from GUI PC(Like Start Data acquisition, Stop data Acquisition) and I also want data from each PXI system to GUI PC display purpose. Can anybody suggest me best performance system configuration. Where to create variable?(Host PC or at individual PXI system).
Dear Ravens,
I want to control real-time application from host(Command from GUI PC to PXI).Host PC should have access to all 16 sets PXI's variable. During communication failure with PXI, Host will stop data display for particular station.
Ravens Fan wrote:
Either. For the best performance, you need to determine what that means. Is it more important for each PXI machine to have access to the shared variable, or for the host PC to have access to all 16 sets of variables? If you have slowdown or issue with the network communication, what kinds of problems would it cause for each machine?
You want to located the shared variable library on whatever machine is more critical. That is probably each PXI machine, but only you know your application.
Ravens Fan wrote:
Either. For the best performance, you need to determine what that means. Is it more important for each PXI machine to have access to the shared variable, or for the host PC to have access to all 16 sets of variables? If you have slowdown or issue with the network communication, what kinds of problems would it cause for each machine?
You want to located the shared variable library on whatever machine is more critical. That is probably each PXI machine, but only you know your application. -
Hi, I'm trying to do something that should be simple and appears totally possible but I can't get there.
I'd like to plot some data on the y axis vs. the date/time on the x-axis. I've looked at the samples, and tried modifying the chart properties but I'm doing something wrong and can't get it properly.
Any chance someone has a very simple example of plotting a few points vs. date/time that they can share?
Thanks for any feedback!!Hey Larrymcd,
What format is your date/time currently in? That might help us find the best way to do this. I was able to find a few examples of plotting a graph with time on the X-axis:
http://forums.ni.com/t5/Measurement-Studio-for-NET/Measurement-Studio-Graph-to-plot-with-time-scale/...
http://digital.ni.com/public.nsf/allkb/FFC867DDE42029BA8625760300477BEB
http://zone.ni.com/devzone/cda/epd/p/id/3334
Hopefully some of these can point you in the right direction. If you have any more questions after checking those examples out, please let us know!
Daniel E.
TestStand Product Support Engineer
National Instruments -
High Avg Response time for logon requests via CMS
Hi Team ,
We are continuously receiving observing high Average reponse time for logon requests to the BO system via Central Management Server.
We observe response time up to 25043 ms .
Currently we are on SAP BO 4.0 SP7 patch 9 (4.0.7.9)
DB = SQL server 2008 R2
App Server = SAP NW 7.31 SP 7.
Also the size of our CMS DB is around 15 GB .
What could be the possible reasons ?
Regards ,
AbhinavHi Abhinav,
As one of the issues has been raised as a bug which is resolved in BI 4.1 so you can upgrade to resolve this bug. Also if the CMS database size is large then CMS has to search for objects through huge number of rows hence that will affect overall performance. So you can try to reduce this size as per my previous upate.
Apart this you can try following steps
Try to ping CMS DB server from BO servers and confirm the response is coming in 1 ms. Run tracert <DB servers name> from CMD and check the number of hops. If response time is not 1 ms or there are more number of hops then ask your network team to resolve network latency issue
You can increase the "System database connections" for each CMS from server properties. It is set to 14 by default which means the CMS will establish 14 connections to CMS database at any time. You can increase this value, however please make sure that the system database allows more connections than default 14 from DB side. This needs to be confirmed from your DBA.
Please add CMS cluster members in platformservices.properties file under Tomcat folder. Please refer following SAP KBA for steps to add the cluster members
http://service.sap.com/sap/support/notes/1668515
http://service.sap.com/sap/support/notes/1766935
4. Also please confirm number of users simultaneously login to system at peak time. Usually one CMS is capable of handling around 500 requests. So if you have more then 1000 users then add another new CMS on same nodes if there is enough free memory on the server
Regards,
Hrishikesh -
How to Measure time taken for a some lines of code in a program?
Hi
I have one requirement to measure time taken for executing a block of code in report . How we can find it ?
Is there any way to code something in report to caluculate it ?
Please send solution as early as possible
thank uOk.. try this code...
DATA : t1 TYPE i,
t2 TYPE i,
delta(16) TYPE p.
GET RUN TIME FIELD t1.
PERFORM get_data. "your block of code
GET RUN TIME FIELD t2.
delta = t2 - t1.
delta = delta / 1000000.
WRITE :/ 'Time elapsed : ', delta , 'Secs'. "time in secs. -
Thanks for responding to my question. The annwer for your questions are: Measurment time : 300seconds, Sampling Frequency : 2 Hertz, and Window Type : Hanning. Hope you could hint me on this soon.
ok, I see you posted parts of your VI in a different location. There is a sub-VI missing though ( Spline Interpolate.vi). But I re-constructed your data and can see the following things:
1 - Your signal has a significant DC-offset (approximatelly 1000) and this will result in a power value for DC of approximatelly 10E6 (though you wrote 10E8 in your first posting).
2 - If you ignore that DC, you can see on the time signal that there is another signal at very low frequency (order of magnitude amplitude = 10, power spectrum around bin 1 = 100) and you are not capturing an entire period of that signal, so either a measurement time of 300 seconds is not enough or this is a signal caused by a drift that you want to ignore.
But overall there is not much sign
al left once you remove your DC and eventually the very low frequency signal. But given your input signal, the power spectrum looks right. Remember also that the DC component will be replicated (with 6 dB reduction) on bin 1 when you apply a Hanning window. Try eventually without the Hanning window (but you'll still have to ignore your DC bin). Alternatively subtract the dc value from your time signal before computing your power spectrum. -
Time measuring efficiency for my code
Hi,
I would like to measure time elapse,which is like "tic" and "toc" in MATLAB. Does anybody know how to measure time in LabVIEW?
ThanksSee e.g. this thread.
LabVIEW Champion . Do more with less code and in less time .
Maybe you are looking for
-
Is it Possible to Make an Object Dissappear in a Shot?
Hey Everyone... I am finishing a short film and happened to notice one minor issue. In one of my master shots, I can see a light that should not be in the shot. Unfortunately, it cannot be wire framed out. I know this is a crazy question, but is ther
-
How can I maintain multiple white spaces in a PDF written from InDesign?
I need to have 2 white spaces maintained (within a part #) in the PDF I write, but when I open in Acrobat it converts it to one space. I've tried word spaces, set spaces and applying "no color" to a placeholder character and nothing is working! Any i
-
Execute DBMS_SNAPSHOT.refresh_all does nothing
I have created a couple of MVs and tried to execute: execute DBMS_SNAPSHOT.refresh_all I get a "PL/SQL procedure successfully completed" message. However, the MVs are not really refreshed. The data is stale. I am able to refresh using enterprise mana
-
I'm running JES Q42005, the whole messaging stack. When I import an ICS file using both csimport, and the webmail (via UWC and directly to CS) interface, the time isn't coming over properly. As a control, I used two identical calendar entries that we
-
ITunes will not copy bought CD to Library
iTunes has copied CD 1 of 2 (purchased box set) to the Library but baulks at the second CD with the message "The file "1. Symphony" couldn't be converted. You do not have write access for your iTunes Music folder or a folder within it. To change perm