Debugging Extractor for determining Time stamp values.
Hi,
Am in the process of debugging a FISL extractor that uses the Function module G_BIW_GET_TT_DATA to fetch records into BW.
Since the RSA3 extractor checker does not allow me to debug with Update mode Delta, I am not being able to ascertain exactly how this extractor determines the Timestamp for fetching records into BW...
If you could shed some light into this or could suggest a method through which I could debug a delta load it would be really helpful.
Thanks and Regards
VK!
Hi,
Debug the same in BW while loading it to some Info provider from R/3 at the stage of transformation using delta.
I hope it will help.
Thanks,
S
Similar Messages
-
hi experts,
in one of my reports i need to take the field ' shipement time stamp' value, kindly tell me in table name and field name.
i checked VTTK table, but i didn't find
thanks in advance
regards,
pavanHi Pavan kumar,
Get it from VBFA (document flow) table.
with Subsequent document category (VBTYP_N) = '8' and VBELN = shipment number ERDAT and ERZET will represent creation date and time of shipment.
Note : For IS you have to use different VBTYP_N. example : for IS-OIL, use VBTYP_N = 'r' which represent TD-Bulk shipment.
Regards,
Mohaiyuddin -
FileMonitor issue for date time stamp change.
Hi I have an app that runs with a minor issue and I am looking for some insight for a workaround or code change.
I have a File Monitor that checks a specific directory every second.
Users send a batch run to this directory throughout the day. There are two types of files, .ZIPs and .DONEs.
So for each .ZIP a .DONE is sent to notify the app it can begin to process the file.
Here is what I receive
/elements/process/File1.ZIP Oct 15 08:19
/elements/process/File1.DONE Oct 15 08:19
The problem I am encountering is sometimes the .DONE and. ZIP are sent and the date time stamp of both files are the same so when the monitor reads the directory it looks like there is no change so both files sit in the directory and do not process. To make this work, I usually go in and touch a file to change the date time stamp.
This is a java app that runs on an AIX box.
Here is my code, is there anything any once can suggest to help me out. Thanks in advance.
* Subclass of FileMonitor, Handles the timer event
* @param none
private class FileMonitorNotifier extends TimerTask
public void run()
// Loop over the registered files and see which have changed.
// Uses the Modifed DateTimeStamp to determine if there was a change.
// Use a copy of the list in case listener wants to alter the
// list within its fileChanged method.
try
Collection files = new ArrayList (hmFiles.keySet());
for (Iterator i = files.iterator(); i.hasNext(); )
File file = (File) i.next();
long lastModifiedTime = ((Long) hmFiles.get (file)).longValue();
long newModifiedTime = file.exists() ? file.lastModified() : -1;
// Check if file has changed
if (newModifiedTime != lastModifiedTime)
// Register new modified time
hmFiles.put(file, new Long (newModifiedTime));
// Notify listeners
for (Iterator j = colListeners.iterator(); j.hasNext(); )
WeakReference reference = (WeakReference) j.next();
FileListener listener = (FileListener) reference.get();
// Remove from list if the back-end object has been GC'd
if (listener == null)
j.remove();
else
listener.fileChanged (file);
catch(Exception ex)
m_odLaunch.logError(OdIntegrationConstants.ERROR_LEVEL_MIDLEVEL, ex);
}Yes, I guess you are right, I don't care what time each file came, as long as I have both I can being to unzip and process and delete the .DONE.
The code itself was based on if a filechanged then do work.... I could just take this out. Thanks!
* This is the main entry point when there is a change to the modified date/time
* of the monitor directory
* @param file directory we are monitoring
public void fileChanged (File file)
StringBuffer sbMessage;
try
sbMessage = new StringBuffer();
//Make sure this is a Directory
if(file.isDirectory())
//Return list of files with extension we are looking for
File[] arFiles = file.listFiles((FilenameFilter)new FileSuffixMonitor(m_odLauncher));
for(int i=0;i < arFiles.length;i++)
sbMessage.append("Found file association to move-" );
sbMessage.append(arFiles.toString());
m_odLauncher.logInstance(sbMessage.toString());
processMoveFile(arFiles[i]);
catch(Exception ex)
sbMessage = null; -
hello people!
Is there a way to debug an extractor when charging in BW ambient?
Not in RSA3...
Thanks in advance,
DenisHi Denis,
You can debug the start routine in the transfer rules. That way, you can see the data that extractor has supplied from R/3. I am not aware of any other way to debug extractor in BW. Hope this helps.
Thanks and Regards
Subray Hegde -
Triggered aquisition for determined time
I am using a PCI-6371 to trigger a continuous AI aquisition on 8 channels of a NI-4472 at 15 ks/s, while displaying and writing the data to a file. I am currently using the get date/time in seconds function to determine when to exit the loop, but the time is not accurate enough. I need to aquire data for a pre-determined amount of time with a high degree of accuracy. Is there a way to set up a timed AI aquisition as opposed to continuous in a loop, while maintaining the display and file writing aspects?
Dave,
I don't have a particular example here, but looking at the shipping example you mentioned, here's a couple quick things to try:
1. Increase your buffer size from the 2500 scan default. Give yourself a few seconds worth of buffer, say 4 seconds worth for a size of 60000.
2. Increase the # of scans to read (& display & file) at a time. The minimum I'd bother trying is 500, which would correspond to updating your chart 30 times a second. You may find you need to increase it from there however.
Operating on larger chunks of data less frequently lowers the fraction of overhead cost such as formatting to spreadsheet string, updating chart.
3. Consider writing to a binary file so you don't have to convert all that data
into a string format before writing to file.
Hope these ideas are enough to get a trial version running for you.
-Kevin P. -
BAPI for insert time machine values
Hai all,
Kindly tell me is there any BAPI available for insert values(date, time,emp no) from time machine?
Pls let me know the BAPI name.
Otherwise is there any other solution available to insert values into bapi?
RegardsHi,
Try BAPI BAPI_PTIMEOVERVIEW_GET
Cheers,
Surinder -
Encore 2.0's starting PTS (presentation time stamp) ?
Greetings:
Could you please provide the starting PTS (presentation time stamp) in number of ticks based on a 27 MHZ clock?
(I own a subtitle extractor that computes different time stamp values and was told that the PTS was different for Encore 2.0.)
Thanks,
William JohnstonRuud:
A sample text line is shown below:
00:01:43:16&00:01:46:08#G:\DVD\Subtitle Extractor output\Cowboy Bebop Remix\images\extractor output\EXT_03_1_1\temp_1.bmp
I use OCR software to create text from the bitmap.
The 27Mhz clock was from a technical contact. The company name is authoringware.com.
As an aside, I purchased a program from authoringware that recomputes VOB files based on a new DTS value.
Hopefully, I can create timestamps that are the same as Encore's TextScript timestamps.
I am still researching the issue.
Regards,
William Johnston -
Date time stamp to be converted into only date
Hi Experts,
when i am using substirng functoin for converting datetimestamp to date it is giving the following error
i am using RNIF pip to be converted into IDOC ORDERS 05
the time stamp value from pip should modified in that so that i can get only the date
by elemiting the time asscioated with it so i used substring functoin it is giving following error
/ORDERS05/IDOC/E1EDK02/DATUM. The message is: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499] com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ORDERS05/IDOC/E1EDK02/DATUM. The message is: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499] at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:347) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499] at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:56) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:47) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 8 at java.lang.String.substring(String.java:1441) at com.sap.aii.mappingtool.flib3.TextFunctions.substring(TextFunctions.java:33) ... 26 more RuntimeException in Message-Mapping transformation: Runtime exception during processing target field mapping /ORDERS05/IDOC/E1EDK02/DATUM. The message is: Exception:[java.lang.StringIndexOutOfBoundsException: String index out of range: 8] in class com.sap.aii.mappingtool.flib3.TextFunctions method substring[, com.sap.aii.mappingtool.tf3.rt.Context@107c499]
thanks
sunilHi,
Do as follows.
Use standard date transformation function.In that format of source date give as hh:mm:ss ddMMyyyy and format of targeet date as you wish..It wil solve.
Please award marks if found useful.
Thanks
Hamja -
CF6004 Time Stamp log into file
I am trying to attach the time stamp to the data log that I obtain from
the NI CF6004. Is there an example that I can look at? I would like to
print <Time stamp> <value> in the file. I am sampling
for multiple channels but one sample value at a time.
In addition to this, I wanted to generate a plot displaying the value
of multiple channels with respect to time values. Is it possible?
Thanks in Advance,
KarthikHi Karthik,
Since you are simply taking a single sample at a time and logging it to
a file that should be relatively easy. Essentially when you
create a file you decide how to format the data. In your case you
may want to log everything as ASCII data. If that's the case,
then you will need to simply use the Get Date/Time String and
Concatenate that string with a Number converted to a Fractional
String. You can see how to do this below:
I also made sure to make this tab delimited so you could read it in a spreadsheet later.
There are lots of ways to do what you are trying to do, but this is just the way that I chose.
Have fun programming the rest of your application,
Message Edited by Otis on 10-04-2005 01:42 PM
Otis
Training and Certification
Product Support Engineer
National Instruments
Attachments:
726143-Create_Spreadsheet_String.GIF 5 KB -
OIM 11g - DBUM Connector Reconciliation Time Stamp
Hi,
We're using OIM 11.1.1.5.2 with the 9.1.0.4 Database User Management Connector.
We're trying to use incremental reconciliation but it doesn't seem to work right.
As per the connector's guide:
"The Last Execution Time attribute holds the time stamp at which the last reconciliation
run started. This attribute is used in conjunction with the reconciliation query
specified by the Query Name attribute. During a reconciliation run, only target system
records added or modified after the time stamp value stored in the Last Execution
Time attribute are fetched into Oracle Identity Manager for reconciliation."
However everytime we run the reconciliation for a specific target, we only get reconciliation for users CREATED after the last reconciliation dates, users MODIFIED after last reconciliation dates are not being reconciled.
The connector is not working as documented, when i review the log, i can see that it is using the following query for recon:
SELECT USERNAME, DECODE(PASSWORD, 'EXTERNAL', 'EXTERNAL', 'GLOBAL', 'GLOBAL', 'PASSWORD') PASSWORD, EXTERNAL_NAME , DEFAULT_TABLESPACE, ACCOUNT_STATUS, TEMPORARY_TABLESPACE, PROFILE, (SELECT MAX_BYTES FROM DBA_TS_QUOTAS WHERE dba.USERNAME = USERNAME AND TABLESPACE_NAME = dba.DEFAULT_TABLESPACE) AS DEFAULT_TABLESPACE_QUOTA , (SELECT MAX_BYTES FROM DBA_TS_QUOTAS WHERE dba.USERNAME = USERNAME AND TABLESPACE_NAME = dba.TEMPORARY_TABLESPACE) AS TEMPORARY_TABLESPACE_QUOTA FROM DBA_USERS dba WHERE ((CREATED - TO_DATE('01011970','ddmmyyyy')) *24*60*60*1000) >1341440733000
I don't think the "CREATED" field on the dba_users table is changed everytime the user is modified, and that field is the only one used on the where clause of the query, so, seems like there's something wrong with it.
The only way to reconcile changes on users right now is running a full reconciliation.
Has anyone ran into this problem before?
Thanks.Thanks Nishith,
I tested that approach and it worked. However, i had an interesting discussion on the DB forum and they convinced me not to use custom triggers on ddl, but instead use the audit capabilities of the database itself, so i came up with a new query using audit on alter user and grant and revoke role:
Creating a system event DDL trigger for alter user statement
What i used was a join between dba_users and dba_audit_trail, like i said in the other thread, it's not the efficient query ever, but it works, and i think it should work just fine as long as our dba's keep purging the audit tables regularly...
SELECT dba.USERNAME, DECODE(dba.PASSWORD, 'EXTERNAL', 'EXTERNAL', 'GLOBAL', 'GLOBAL', 'PASSWORD') PASSWORD, dba.EXTERNAL_NAME , dba.DEFAULT_TABLESPACE,
dba.ACCOUNT_STATUS, dba.TEMPORARY_TABLESPACE, dba.PROFILE,
(SELECT MAX_BYTES FROM DBA_TS_QUOTAS WHERE dba.USERNAME = USERNAME AND TABLESPACE_NAME = dba.DEFAULT_TABLESPACE) AS DEFAULT_TABLESPACE_QUOTA ,
(SELECT MAX_BYTES FROM DBA_TS_QUOTAS WHERE dba.USERNAME = USERNAME AND TABLESPACE_NAME = dba.TEMPORARY_TABLESPACE) AS TEMPORARY_TABLESPACE_QUOTA
FROM DBA_USERS dba , DBA_AUDIT_TRAIL aud
WHERE dba.username = aud.obj_name
AND aud.action_name not like 'DROP%'
AND ((aud.TIMESTAMP - TO_DATE('01011970','ddmmyyyy')) *24*60*60*1000) > :lastExecutionTime
UNION
SELECT dba.USERNAME, DECODE(dba.PASSWORD, 'EXTERNAL', 'EXTERNAL', 'GLOBAL', 'GLOBAL', 'PASSWORD') PASSWORD, dba.EXTERNAL_NAME , dba.DEFAULT_TABLESPACE,
dba.ACCOUNT_STATUS, dba.TEMPORARY_TABLESPACE, dba.PROFILE,
(SELECT MAX_BYTES FROM DBA_TS_QUOTAS WHERE dba.USERNAME = USERNAME AND TABLESPACE_NAME = dba.DEFAULT_TABLESPACE) AS DEFAULT_TABLESPACE_QUOTA ,
(SELECT MAX_BYTES FROM DBA_TS_QUOTAS WHERE dba.USERNAME = USERNAME AND TABLESPACE_NAME = dba.TEMPORARY_TABLESPACE) AS TEMPORARY_TABLESPACE_QUOTA
FROM DBA_USERS dba , DBA_AUDIT_TRAIL aud
WHERE dba.username = aud.grantee
AND ((aud.TIMESTAMP - TO_DATE('01011970','ddmmyyyy')) *24*60*60*1000) > :lastExecutionTime;
Thanks. -
Attached is a code I am building to generate and acquire waveform signals and then write them to a text file with appropriate time stamps. As it stands, I have only linked up the writing portion to the acquired signals (I plan to write generated signals next); however, my time stamps are not being written alongside my voltages, as I was expecting them to. I have had some trouble with this (probably because I am an absolute novice at this), but would appreciate some expert knowledge in this area. Can anyone help me out? The code and a text file from a dummy test are attached. Thanks!
Solved!
Go to Solution.
Attachments:
Gen_Acq_Signals_BE_UARK.vi 119 KB
Test 1.txt 565 KBThank you. I used the Index Waveform Array function and that seemed to do the trick. Since I've got this thread going already, I have a few more questions.
My end goal is to write voltages in one column and corresponding time stamps in an adjacent column. What I get when I run a dummy test (writing 1000 samples of an 8000 Hz, 1V square wave signal, sampling at 16000 Hz) is attached as a text file. I see three columns - one for the time stamp, check, one for the supposed input voltage, check, (though not sure why all the values are the same here?) and one more for I have no idea what. It's just a column full of zeroes.
Any insight on what the third column might be and why my voltage readings are flat in the second column? I would hazard a guess and say it is a sampling rate issue, though I can't pinpont what it is.
On another unrelated note, in an earlier version of this program, I was using shift registers, though I don't know if I need to be doing that now that I have a different code architecture.
Attachments:
Test 2.txt 32 KB
Gen_Acq_Signals_BE_UARK_V2.vi 120 KB -
To convert time stamp (data element ARFCTIME (char 8)) into date and time
Hi All,
ARFCSDATA table stores time stamp value like 41C9EC9D or 41D2DA75 (in char8 format)...how to convert it to date & time?
Thanks in advance.
VithalprasadHi All,
Thanks a lot for your response.
All these FMs are using timestamp which is having length of 14 or 16. .But in this case the field ARFCSDATA-ARFCTIME is having values in char 8 field and these values are in hexa decimal format.
Please pass the information in this regard if you have.
Thanks a lot.
Vithalprasad -
How to convert hex string to time stamp?
Hello everyone..
I am currently working on a project in which I have to read the data from a unit and display that data using LabVIEW. I am using serial communication for reading the data. The read data is in hex format.
Now, I want to convert this hex string to a time stamp value. I am reading total 16 bytes. How to convert this hex data to a time stamp value. I have developed a VI. But I want to know that the displayed time stamp is correct or not? Or suggest me some other solution.
I am using LabVIEW 2011.
Thanks & Regards,
Manisha
Attachments:
Test.vi 7 KBHi mancan,
As Iam using LV2009 Iam unable to open your example.Anyway for converting hex to time stamp
Thanks as kudos only -
I'm try to log data at a fast rate and I'm using the 1904 time stamp. I've noticed that the system clock only updates every 15 msec. I'm logging data every 5 msec. So when I plot the data I have three readings per time slice.
I don't know what the true update time is it exactly it looks to be around 15msec to 16 msec. If I sync to nist I will get an accurate time stamp but I'm still stuck with the slow 15msec update rate of the system clock. The time stamp accuracy isn't that important but the elapsed time from start of the test is. You can see some times you get 3 readings at the same time stamp and some time 4. To get elapsed time what I did is put time stamp value into excel then subtract that value from all values taken after that point (= D4-$D4$). Since the number of reading at each time stamp varies I can use my simple excel formula. Thank you both for you replies.
elapsed time voltage 1 voltage 2
0 5.432934 7.762001
0 5.437446 7.765869
0 5.443248 7.764257
0.014989853 5.44486 7.762646
0.014989853 5.438413 7.762646
0.014989853 5.448083 7.762968
0.014989853 5.442603 7.766836
0.014989853 5.441314 7.76329
0.030990124 5.436802 7.761034
0.030990124 5.450017 7.760389
0.030990124 5.43938 7.763935
0.030990124 5.443893 7.765547
0.046999931 5.44486 7.760389
0.046999931 5.440347 7.762323
0.046999931 5.446149 7.766836
0.046999931 5.44905 7.767158 -
Adjusting time stamp of AI waveform when using pause triggering
Hi Everybody,
I've written a VI that acquires data (AI) at specified time intervals
by using pause triggering and a counter signal, but the resulting time
stamps associated with the data points in the AI waveform are NOT the
actual time relative to the start of the initial acquisition. I was
thinking of modifying the time stamps (post-acquisition) for each set
of data points per interval by adding the "off" time as set by the
counter signal, thereby adjusting the time stamps of the data to real
time. I then have a subVI that will convert the time stamps to elapsed
time. I also have an AO waveform being generated at the same time, and
was wondering if I could somehow use those time stamps values if they
were synced to the AI somehow, although this seems more difficult. The
adjustment does not need to be extremely accurate, and can vary on the
order of seconds (e.g., the last data point could be at 9990 seconds
for an acquisition that actually ended after 10000 seconds). Any
suggestions?
As an aside, the important point of this part of my program is to
reduce the amount of data being collected. I need a high sampling rate
to acquire waveforms with pulse widths on the order of milliseconds,
but typically run the experiment overnight (+12 hrs.) so the files get
really big (e.g., 3 GB!). I could try writing to binary files, but I
haven't figured out how to read the file and then split the data into
smaller files of user-defined size that can then be converted to
text/.xls files. If you have any ideas on how I might do this as well,
I'd greatly appreciate the help! Thanks!
UnagiUnagi,
I am not exactly sure what you are trying to do, but I can
take a guess. When performing analog input measurements the waveform is
composed of t0, dt and Y. You can manipulate any of these values after
the data has been acquired. If you set up the task the waveform should
contain an absolute time, not relative. If relative is required, as you
suggested, this can be done post acquisition with the build waveform components
vi.
I do not understand exactly what you want do with the
timestamps for the analog output. Do you
want to use the relative time computed from the analog input data for the
analog output waveform? If so, you could
build a waveform and use the t0, dt from the analog input processed/relative
time waveform. Again this would be done with the build waveform components
vi.
Finally, a binary file would reduce the amount of memory
required when saving your data. A binary file is fairly simple to save
and open in LabVIEW. There are a couple examples in NI Example Finder (i.e.
Write Binary File and Read Binary File) that show you how to write and read
binary files. If you write the data to a binary file during acquisition,
and modify/split it later you could open the binary file, retrieve the data in
LabVIEW, and write a small subset to a text file. Alternatively, you could
perform some analysis of the data during acquisition and only save the set of
data that you require post acquisition.
Regards,
Jesse O.
Application Engineering
National Instruments
Jesse O. | National Instruments R&D
Maybe you are looking for
-
Hi, I am trying to build a 3-tier SharePoint 2013 farm. 1. SQL Server 2012, Windows 2012 VM 2. DC Server, Windows 2012 VM 3. SharePoint 2013, Windows 2012 VM I didn't built the DC server. Someone else did. However, I created about 14 service domain u
-
Availability of Standard Physical Sample Report
QPR3 Tcode provides Physical Sample details for only one Inspection Lot at a time Instead I need below details Input Data : Material From To Batch From To Plant From To Inspection Lot Fr
-
I have done repated installs and deletes of all Apple files and find that some of the files identified as 64 bit when downloaded show they are for 32 bit only. repeated attempts from different sites frequently include games toolbars etc. that must be
-
i want to run EM in the browser but this message is diplayed "Connexion to localhost:5500 is impossible " however emctl start dbconsole is doing and EM is Started and before EM is displayed in the browser also isqlplus is displayed in the browser i u
-
I want to be able to change my projectors default background while using my mac book pro. Currently it is showing Apple's signature background. I would like to change it to a plain black background so that when I disengage mirroring the screen the au