R12 - Input and Output Tax Classification Codes in Invoices Workbench
Hello,
After upgrade from 11i to R12, in invoices workbench, the Tax Classification Code LoV (invoice line field) contains taxes that formerly were both input and output.
In the E-Business Tax Implementation guide says that :
Release 11i tax codes and tax groups migrate to E-Business Tax as tax classification
codes. Payables and Purchasing tax codes migrate as tax classification codes under
ZX_INPUT_CLASSIFICATIONS. Receivables and Projects tax codes migrate as tax
classification codes under ZX_OUTPUT_CLASSIFICATIONS.
In invoices workbench form (APXINWKB), I looked in the record group for the LoV and the values are all from the same view zx_input_classifications_v.
SELECT lookup_code, meaning, description
FROM zx_input_classifications_v
WHERE lookup_type = 'ZX_INPUT_CLASSIFICATIONS'
AND org_id IN (:inv_sum_folder.org_id, -99)
AND enabled_flag = 'Y'
AND nvl(:inv_sum_folder.invoice_date, sysdate)
between start_date_active and nvl(end_date_active, :inv_sum_folder.invoice_date)
UNION
SELECT lookup_code, meaning, description
FROM zx_input_classifications_v
WHERE lookup_type = 'ZX_WEB_EXP_TAX_CLASSIFICATIONS'
AND org_id IN (:inv_sum_folder.org_id, -99)
AND enabled_flag = 'Y'
AND nvl(:inv_sum_folder.invoice_date, sysdate)
between start_date_active and nvl(end_date_active, :inv_sum_folder.invoice_date)
It follows that some formerly Payables and Purchasing tax codes were migrated as 'ZX_INPUT_CLASSIFICATIONS' or 'ZX_WEB_EXP_TAX_CLASSIFICATIONS'.
Anybody knows how is the 11i tax code data migrated to R12 ? Is this the intended behavior ?
Thanks
I'm not a functional expert but I would suggest reviewing the following docs and see if it helps.
How To Update EBusiness Tax Lookup Codes? (Doc ID 466578.1)
Payables - Invoices - Invoice Lines Tax Classification LOV duplicating entries (Doc ID 1265315.1)
Upgraded Tax Classification Codes Not Enabled For Iexpenses (Doc ID 851607.1)
Thanks,
Hussein
Similar Messages
-
Input Tax and Output Tax calculating wrong figures
Hi,
I have created Input Tax and Output Tax codes in SAP.
Input Tax- 3%
Output Tax- 4%
All the configuration is done as required. But when I am posting the Purchase and Sales Invoice, the tax amount is not calculating correctly.
For example:
Input Tax Calculation should be:
Vendor A/C.............. Cr 30000-
Expense A/C............ Dr 29100
Input Tax A/C............ Dr 900 (@3% on 30000)
Input Tax Calculation in SAP:
Vendor A/C.............. Cr 30000-
Expense A/C............ Dr 29126.21
Input Tax A/C............ Dr 873.79 (@3% on 30000)
The same is happening to Output Tax transactions.
Please advice.My understanding about the Input Tax and Output Tax was wrong. In the issue reported
Input Tax Calculation should be:
Vendor A/C.............. Cr 30000-
Expense A/C............ Dr 29100
Input Tax A/C............ Dr 900 (@3% on 30000)---my understanding was wrong.
Input Tax 3% should be charged on Expense amount, in this case Rs 30000. But because in the editing option calculate tax on net amount option was not selected, hence SAP was giving the below entry, which is correct as well.
Vendor A/C.............. Cr 30000-
Expense A/C............ Dr 29126.21
Input Tax A/C............ Dr 873.79 (@3% on 29126.21) which is correct.
Hence, the Vendor amount should be Expense + Input Tax= 30000 * 3%=900 + 30000 (expense) = 30900.
Correct Entry should be:
Vendor A/C...............Cr 30900
Expense A/C............Dr 30000
Input Tax A/C............Dr 900
Resolved. Pankaj has given the correct answer. -
On R12---
customer import data in interface table like followings.
1 line => Item : 9000 KRW Tax Classification Code :'매입과세10%'
2 line => Tax : 900 KRW Tax Classification Code :'매입과세10%'
3 line => Item : -9000 KRW Tax Classification Code : NULL
and after run the Payables Open Interface Import Currenct Pgm 16:15
found invoice was created like followings.
1 line => Item : 9000 KRW Tax Classification Code :'매입과세10%'
2 line => Tax : 900 KRW Tax Classification Code :'매입과세10%'
3 line => Item : -9000 KRW Tax Classification Code :'매입과세10%'
the 3rd line was different before and after
and when do validation , the system calculates item=9000+(-9000) and got 0.
is it standard functionality?Hi,
If no tax classification code is entered the system will populate it based on the default code applied to either the supplier or you AP config.
Regards
Carl -
How do I create an xControl with multiple inputs and outputs?
Hello,
i am trying to write a new Xcontrol Element. In the data model I can create data types using the cluster to create compound types, eg an int and an int array. But how do I create an xcontrol which has multiple data inputs and outputs?
Kind RegardsLimping_Twerp wrote:
Alright: I see: An xcontrol is either an input OR an output. How do I achieve an output? Secondly: So you are saying the only Elements that can have multiple inputs and outputs are VIs?
Can you take a few steps back and explain what you are actually trying to do. SubVIs and Xcontrols have nothing in common and it is not clear why you even try to compare them side by side (e.g. in terms of the number of connectors).
Your questions about input or output tell us that you seems to have some misconceptions about xcontrols. Xcontrols are like regular controls, except they have some built-in intelligence that you can program. Most front panel object can be either controls or indicators and the same is true for Xcontrol. You create an Xcontrol, and after placing it on the front panel you can decide if it should be a control (where the code reads the value) or an indicator (were the code writes values to it). When you define the xcontrol facade, you also need to program how the visuals change if it is changed from control to indicator or vice versa.
As a first step, you should opend the example finder and look at some xcontrol examples.
Again, what are you actually trying to do?
LabVIEW Champion . Do more with less code and in less time . -
How to temporally match/save Input and Output Channels's data?
Hello, I have a voltage-input, voltage-output SISO system, and need to indentify its dynamic response (or transfer function) as a reference to a PID control. Without using the system identification toolbox, my goal is to generate/provide a sine sweep input (ranging 1Hz-5kHz for 10sec) to the system and to save the corresponding output response signal as well as the sweep input signal simultaneously.
I got a sample program online and am trying to modify it as attached, but I really need your advices/comments concerning several problems I am facing with:
1) With the below setting, the number of the acquired Input channel samples obtained is 5461, which is smaller than expected (i.e., 10000). What would I be missing in setting parameters?
- H/W: NI-USB-6341 DAQ
- AO: continuous samples with the waveform timing (1k sampling, 10000 samples => 10 sec, slower sampling just for testing purpose)
- AI: continuous samples, samples to read: 30k, rate: 1k
2) I am using flat sequence structure as a way to making the start point of saving AI and AO data same, but wonders if this is a right method or if there is other better approaches. (I had an idea of using an internal clock with "1-sample mode" for sync, but this may not work at the high speed sine sweep like 5kHz, right?)
3) I just want to provide the sine sweep just once to the system and do not require the "reset" functionality implemented in the original sample program. I failed to remove this "reset" part as I did not fully understand the sample code. If I run the attahed, the generated AO signal is periodically provided to the system. Please give me any advice to modify the program as I want.
Thanks for your help and valualble time.
Attachments:
siso.vi 230 KBHi J. Kim,
To begin, you say you want to synchronize your analog input and output so that they start at the exact same time, yes? To achieve tight synchronization, you need to use DAQmx VIs instead of the DAQ Assistant. There's a good overview of DAQmx VIs here. There's also a document that deals specifically with synchronization in DAQmx here. Additionally, if you go to Help>>Find Examples in the LabVIEW example finder, you can see many other examples of acquiring data using DAQmx.
As for your configuration, you have your analog input DAQ assistant wired far before your analog output DAQ assistant in your sequence strucutre, so the dataflow of the program will cause the analog input DAQ Assistant to execute before the output. They cannot be in different sequences if they are executing simoultaneously, and I would not use flat sequences here except to start the two tasks in DAQmx. Where did you find this example?
Best,
Dan N
Applications Engineer
National Instruments -
Multiple inputs and outputs using DAQmx VIs
Hello,
I am fairly new with the LabView programming language. I have a few training books that I have been reading, and I have been following online tutorials and reading the forums. However, I have come to a problem where I don’t see a clear solution. I am using LabView 2009 (9.0f3) and DAQmx VIs.
I am using a NI 9172 chassis PLC, with two 9201 AI cards, 9217 AI RTD card, 9472 DO card, 9263 AO card, and two 9237 AI Bridge cards.
I am reading eight analog inputs with the 9201 cards, two analog RTD inputs with the 9217 card, three digital outputs with the 9472 card, three analog outputs with the 9263, and eight analog inputs with the 9237 cards.
I wrote a simple program to test one digital output task, two of the analog output tasks, and a single analog input task. I put all of them in the same while loop, and it worked perfectly. However, when I add analog input tasks to the same loop, I get an error 200022. So I tested each sensor individually by changing the channel before each run. I searched error 200022 and found that this is because I cannot start another analog input task until the previous one ends. With this said, I don’t know how to acquire an analog voltage in the same task as an analog RTD voltage. Both inputs take different constants in the start task DAQmx icon.
Attached is my test program. It is titled “Test All”. This is the program I used to test the various sensors. I tested the input sensors one at a time, and it worked fine. A few tasks are written just to test functionality, and will be added to later. The data is only displayed on the screen. I will add triggers and data write to disk functions later. This program works now, but if I add more analog inputs, it will generate the 200022 error.
Can someone show me how to correctly write the code for multiple inputs and outputs using DAQmx? All training materials and tutorials I can find all show a single input or single output, not multiples of each. Thanks for looking.
-Randy
Attachments:
TestAll-NI.vi 32 KBHi RandyC,
The Knowledge Base article Using Different Types of DAQmx Global Channels in the Same Task goes into a little more depth of what Bryan is talking about, and it also includes some example code to help show what to do.
Hope that helps, -
How to get input and output using math interface toolkit
Hi,
I am fairly new to labview and i am trying to convert my labview code
into matlab mex files using math interface toolkit. I cant see any
input or output terminals when i try to convert the code to mex files
even though my vi has plenty of inputs and outputs that should be
available during conversion.
just to cross check i made another vi in which i inputted an
array of data to an fft and outputted it to an array again. i tried to
convert this code to mex files but was still not able to see any input
or output terminals, which makes me believe that i must be doing
something wrong at the very basic level and inspite of trying really
hard for some days now i have not been able to figure out that might be.
So please help.
I am attaching the basic vi that i created along with the link that i followed for converting labview code to mex files.
http://zone.ni.com/devzone/conceptd.nsf/webmain/EEFA8F98491D04C586256E490002F100
I am using labview 7.1
Thanks
Attachments:
test.vi 17 KBYes, you've made a very basic mistake. You have front panel controls and indicators but none of them are connected to the VI's connector pane. right click on the VI's icon and select "Show Connector". You use the wiring tool to select a connection there and then select a control or indicator. Use the on-line help and look up the topic "connector panes". There are some sub-topics on how to assign, confirm, delete, etc.
-
Input and output on same device, producer/consumer structure
Hello interested people,
I have a question about using the same device for both digital inputs
and outputs. I have written a simple program of one while loop
that continuously polls the device, processes, and requests. I
have addressed the device using two DAQmx Asst. and I have attached
them with their error in/out cluster terminals to provide data flow and
eliminate the chance of addressing the devices at the same time (which
produces an error). Now I want to change this program structure
to a producer/consumer loop foundation with state machine.
In this design, I will have the DI in the producer loop and the DO in
the consumer loop, under one of the states. I can't simply
connect the error in/out ports in this configuration, so my question is
how to avoid the error caused by addressing the same device
simultaneously with two different tasks (input and output)? I
have attached two VI's, the "One Loop" vi is the original configuration
(simplified), and the Producer-Consumer vi is a NONSENSICAL program
that simply represents the desired configuration. (I don't need
any comments on the programming of this vi, it is only an example for
illustration of the problem).
I am thinking about bundling the input data and the error cluster, both
from the PXI 6528 DI, into one cluster, queueing that up, and
unbundling the de-queued elements for some kind of data flow between
the producer loop and the "Request" state of the consumer loop.
Is this the right approach, or am I barking up the wrong tree?
Thanks
Attachments:
One Loop DO DI.vi 102 KB
Producer-Consumer DI-DO.vi 106 KBHello,
It sounds to me like you really have two modes:
1. user interface actions determine execution
2. user interface is locked, and execution is automated.
I think it would make sense to use the producer consumer for an architecture. Basically you would do the following:
1. program the producer to handle the user interface as you normally would.
2. provide one additional event case in the producer which would be your "automated handling" case. In that case, you could put a state machine which could run until whatever conditions were met to put your program back in "user interface mode".
Keep in mind that you can use custom USER EVENTS to programmatically generate events ie. you can trigger the start of your "automated handling" form anywhere in your code at virtually any time.
I think this would allow you to take advantage of the producer consumer architecture in its intended spirit, while integrating an automated routine.
I hope this helps!
Best Regards,
JLS
Best,
JLS
Sixclear -
How to change the input and output schema in BPEL process
hi',
Please tell me how to change the input and output schema in BPEL process after the process is made.
thanks
YatanIf your intention is just changing the content you are passing to bpel/returning from bpel
Here is another way
just update your default created xsd files with new elements, update wsdl elements in message definition and chnage bpel code to reflect new elements in activities
Regards,
Praveen -
Wrong input and output files path?
When i tried to run my code i got wrong path of input and output files, why it was and where is the mistake? I did not meant the path \tmp\xorout.txt and C:\jar\org\joone\samples\engine\xor\xor.txt in the source code - where are they from? :
* XOR.java
* Sample class to demostrate the use of the Joone's core engine
* see the Developer Guide for more details
* JOONE - Java Object Oriented Neural Engine
* http://joone.sourceforge.net
package org.joone.samples.engine.xor;
import java.io.File;
import org.joone.engine.*;
import org.joone.engine.learning.*;
import org.joone.io.*;
import org.joone.net.NeuralNet;
public class XOR implements NeuralNetListener {
/** Creates new XOR */
public XOR() {
* @param args the command line arguments
public static void main() {
XOR xor = new XOR();
xor.Go();
public void Go() {
* Firts, creates the three Layers
LinearLayer input = new LinearLayer();
SigmoidLayer hidden = new SigmoidLayer();
SigmoidLayer output = new SigmoidLayer();
input.setLayerName("input");
hidden.setLayerName("hidden");
output.setLayerName("output");
/* sets their dimensions */
input.setRows(2);
hidden.setRows(3);
output.setRows(1);
* Now create the two Synapses
FullSynapse synapse_IH = new FullSynapse(); /* input -> hidden conn. */
FullSynapse synapse_HO = new FullSynapse(); /* hidden -> output conn. */
synapse_IH.setName("IH");
synapse_HO.setName("HO");
* Connect the input layer whit the hidden layer
input.addOutputSynapse(synapse_IH);
hidden.addInputSynapse(synapse_IH);
* Connect the hidden layer whit the output layer
hidden.addOutputSynapse(synapse_HO);
output.addInputSynapse(synapse_HO);
FileInputSynapse inputStream = new FileInputSynapse();
/* The first two columns contain the input values */
inputStream.setAdvancedColumnSelector("1,2");
/* This is the file that contains the input data */
inputStream.setInputFile(new File("c:\\xor.txt"));
input.addInputSynapse(inputStream);
TeachingSynapse trainer = new TeachingSynapse();
/* Setting of the file containing the desired responses,
provided by a FileInputSynapse */
FileInputSynapse samples = new FileInputSynapse();
samples.setInputFile(new File("c:\\xor.txt"));
/* The output values are on the third column of the file */
samples.setAdvancedColumnSelector("3");
trainer.setDesired(samples);
/* Creates the error output file */
FileOutputSynapse error = new FileOutputSynapse();
error.setFileName("c:\\xorout.txt");
//error.setBuffered(false);
trainer.addResultSynapse(error);
/* Connects the Teacher to the last layer of the net */
output.addOutputSynapse(trainer);
NeuralNet nnet = new NeuralNet();
nnet.addLayer(input, NeuralNet.INPUT_LAYER);
nnet.addLayer(hidden, NeuralNet.HIDDEN_LAYER);
nnet.addLayer(output, NeuralNet.OUTPUT_LAYER);
nnet.setTeacher(trainer);
FileOutputSynapse results = new FileOutputSynapse();
results.setFileName("c:\\results.txt");
output.addOutputSynapse(results);
// Gets the Monitor object and set the learning parameters
Monitor monitor = nnet.getMonitor();
monitor.setLearningRate(0.8);
monitor.setMomentum(0.3);
/* The application registers itself as monitor's listener
* so it can receive the notifications of termination from
* the net.
monitor.addNeuralNetListener(this);
monitor.setTrainingPatterns(4); /* # of rows (patterns) contained in the input file */
monitor.setTotCicles(2000); /* How many times the net must be trained on the input patterns */
monitor.setLearning(true); /* The net must be trained */
nnet.go(); /* The net starts the training job */
public void netStopped(NeuralNetEvent e) {
System.out.println("Training finished");
public void cicleTerminated(NeuralNetEvent e) {
public void netStarted(NeuralNetEvent e) {
System.out.println("Training...");
public void errorChanged(NeuralNetEvent e) {
Monitor mon = (Monitor)e.getSource();
/* We want print the results every 200 cycles */
if (mon.getCurrentCicle() % 200 == 0)
System.out.println(mon.getCurrentCicle() + " epochs remaining - RMSE = " + mon.getGlobalError());
public void netStoppedError(NeuralNetEvent e,String error) {
ERROR:
C:\jar>java -cp joone-engine.jar org.joone.samples.engine.xor.XOR C:\\xor.txt C:
\\xorout.txt
[main] [ERROR] - org.joone.io.FileOutputSynapse - IOException in Synapse 6. Mess
age is : \tmp\xorout.txt (The system cannot find the path specified)
Training...
[Thread-0] [WARN] - org.joone.io.FileInputSynapse - IOException in Synapse 3. Me
ssage is : C:\jar\org\joone\samples\engine\xor\xor.txt (The system cannot find t
he path specified)
[Thread-0] [WARN] - org.joone.io.FileInputSynapse - IOException in Synapse 3. Me
ssage is : C:\jar\org\joone\samples\engine\xor\xor.txt (The system cannot find t
he path specified)
java.lang.NullPointerException
at org.joone.io.StreamInputSynapse.getStream(StreamInputSynapse.java:176
at org.joone.io.StreamInputSynapse.readAll(StreamInputSynapse.java:288)
at org.joone.io.StreamInputSynapse.fwdGet(StreamInputSynapse.java:106)
at org.joone.engine.Layer.fireFwdGet(Layer.java:212)
at org.joone.engine.Layer.fwdRun(Layer.java:1225)
at org.joone.net.NeuralNet.stepForward(NeuralNet.java:1015)
at org.joone.net.NeuralNet.fastRun(NeuralNet.java:970)
at org.joone.net.NeuralNet.fastRun(NeuralNet.java:937)
at org.joone.net.NeuralNet$1.run(NeuralNet.java:890)
at java.lang.Thread.run(Thread.java:534)c:xor.txt
c:/xor.txt
i think c:xor stands for somthing else like a virtual drive but ima not sure -
I'm trying to initiate the analog input and output streams to start reliably at the same sample. I've tried triggering the output from the start of the input using the following code [NI-DAQmx Base 2.1 under Mac OS X with an M-Series multifunction board]. It compiles and runs, but gives an error message at the call to "DAQmxBaseCfgDigEdgeStartTrig". Any suggestions about synchronized I/O on this platform?
#include "NIDAQmxBase.h"
#include
#include
#include
#define DAQmxErrorCheck( functionCall ) { if ( DAQmxFailed( error=( functionCall ) ) ) { goto Error; } }
int main( int argc, char *argv[] )
// Task parameters
int32 error = 0;
TaskHandle inputTaskHandle = 0;
TaskHandle outputTaskHandle = 0;
char errorString[ 2048 ] = {'\0'};
int32 i;
time_t startTime;
// input channel parameters
char inputChannelList[] = "Dev1/ai0, Dev1/ai1";
float64 inputVoltageRangeMinimum = -10.0;
float64 inputVoltageRangeMaximum = 10.0;
// output channel parameters
char outputChannelList[] = "Dev1/ao0, Dev1/ao1";
char outputTrigger[] = "Dev1/ai/StartTrigger";
float64 outputVoltageRangeMinimum = -10.0;
float64 outputVoltageRangeMaximum = 10.0;
// Timing parameters
char clockSource[] = "OnboardClock";
uInt64 samplesPerChannel = 100000;
float64 sampleRate = 10000.0;
// Input data parameters
static const uInt32 inputBufferSize = 100;
int16 inputData[ inputBufferSize * 2 ];
int32 pointsToRead = inputBufferSize;
int32 pointsRead;
float64 timeout = 10.0;
int32 totalRead = 0;
// Output data parameters
static const uInt32 outputBufferSize = 1000;
float64 outputData[ outputBufferSize * 2 ];
int32 pointsToWrite = outputBufferSize;
int32 pointsWritten;
for( int i = 0; i < outputBufferSize; i++ )
outputData[ 2 * i ] = 9.95 * sin( 2.0 * 3.14159 * i / outputBufferSize );
outputData[ 2 * i + 1 ] = -9.95 * sin( 2.0 * 3.14159 * i / outputBufferSize );
// ------------------- configure input task -----------------------
DAQmxErrorCheck ( DAQmxBaseCreateTask( "", &inputTaskHandle ) );
printf( "Created input task\n" );
DAQmxErrorCheck ( DAQmxBaseCreateAIVoltageChan( inputTaskHandle, inputChannelList, "", DAQmx_Val_RSE, inputVoltageRangeMinimum, inputVoltageRangeMaximum, DAQmx_Val_Volts, NULL ) );
printf( "Created AI Voltage Chan\n" );
DAQmxErrorCheck ( DAQmxBaseCfgSampClkTiming( inputTaskHandle, clockSource, sampleRate, DAQmx_Val_Rising, DAQmx_Val_ContSamps, samplesPerChannel ) );
printf( "Set sample rate\n" );
// ------------------- configure output task -----------------------
DAQmxErrorCheck ( DAQmxBaseCreateTask( "", &outputTaskHandle ) );
printf( "Created output task\n" );
DAQmxErrorCheck ( DAQmxBaseCreateAOVoltageChan( outputTaskHandle, outputChannelList, "", outputVoltageRangeMinimum, outputVoltageRangeMaximum, DAQmx_Val_Volts, NULL ) );
printf( "Created AO Voltage Chan OK\n" );
DAQmxErrorCheck ( DAQmxBaseCfgSampClkTiming( outputTaskHandle, clockSource, sampleRate, DAQmx_Val_Rising, DAQmx_Val_ContSamps, samplesPerChannel ) );
printf( "Set sample rate\n" );
// trigger output when input starts
DAQmxErrorCheck ( DAQmxBaseCfgDigEdgeStartTrig( outputTaskHandle, outputTrigger, DAQmx_Val_Rising ) );
printf( "Set output trigger\n" );
// ------------------- configuration -----------------------
// write output signal
DAQmxErrorCheck ( DAQmxBaseWriteAnalogF64( outputTaskHandle, pointsToWrite, 0, timeout, DAQmx_Val_GroupByScanNumber, outputData, &pointsWritten, NULL ) );
printf( "Write output signal\n" );
// set up input buffer
DAQmxErrorCheck ( DAQmxBaseCfgInputBuffer( inputTaskHandle, 200000 ) ); // use a 100,000 sample DMA buffer
// initiate acquisition - must start output task first
DAQmxErrorCheck ( DAQmxBaseStartTask( outputTaskHandle ) );
DAQmxErrorCheck ( DAQmxBaseStartTask( inputTaskHandle ) );
// The loop will quit after 10 seconds
Dr John Clements
Lead Programmer
AxoGraph ScientificHi Michael,
First of all, thanks very much for taking the time to investigate this problem! Much appreciated.
You asked for "an actual error code you got and any description that is given". The full output from the program that I posted earlier in this thread is appended to the end of this message. In summary, following the call to...
DAQmxErrorCheck ( DAQmxBaseCfgDigEdgeStartTrig( outputTaskHandle, outputTrigger, DAQmx_Val_Rising ) );
... with ...
char outputTrigger[] = "Dev1/ai/StartTrigger";
...the error message is ...
DAQmxBase Error: Specified route cannot be satisfied, because the hardware does not support it.
You asked "specifically which M series device you are using"? It is the PCIe 6251 (with BNC 2111 connector block). I'm testing and developing on an Intel Mac Pro (dual boot OS X and Windows XP).
You asked for "the location you pulled the code from". Here it is...
http://zone.ni.com/devzone/cda/epd/p/id/879
...specifically from the file "Multi-Function-Synch AI-AO_Fn.c".
I adapted the NI-DAQmx calls to their NI-DAQmx Base equivalents.
Finally, you asked "Is the trigger necessary, or do you just need to know that the measurements are running on the same clock?". I believe that some kind of sychronized trigger is necessary in my situation (correct me if I'm wrong). Timing is crucial. Say I initiate an analog output stream that delivers a voltage command step 5 ms from the onset. I need to record the response (analog input stream) so that its onset is accurately aligned (synchronized) at 5 ms. A typical recording situation would stimulate and record a short data 'sweep', then wait for the (biological) system to recover, then stimulate and record another short sweep, and repeat. I need all the recorded sweeps to align accurately so that they can be averaged and analyzed conveniently.
I definitely do not want my customers to rely on an expensive external TTL pulse generator to initiate and synchronize each 'sweep'. That would effectively eliminate the cost advantage of an NI board, as well as adding unnecessary complexity in setup and use. It would be a show-stopper for me.
It seems perverse, but would it be possible to use a digital output channel connected directly to a digital input chanel to trigger the input and output streams?
Regards,
John.
Full output from test program. Compiled with gcc 4 under OS X...
[Session started at 2007-05-23 14:17:01 +1000.]
LoadRuntime: MainBundle
CFBundle 0x303cc0 (executable, loaded)
_CompatibleWithLabVIEWVersion: linkedAgainst: 08208002
_CompatibleWithLabVIEWVersion: result= false, mgErr= 1, theActualVersion= 00000000
_CompatibleWithLabVIEWVersion: linkedAgainst: deadbeef
_CompatibleWithLabVIEWVersion: Reseting Linked Against
_CompatibleWithLabVIEWVersion: linkedAgainst: 08208002
_CompatibleWithLabVIEWVersion: result= true, mgErr= 0, theActualVersion= 00000000
_CompatibleWithLabVIEWVersion: linkedAgainst: 08208002
_CompatibleWithLabVIEWVersion: result= true, mgErr= 0, theActualVersion= 00000000
com.ni.LabVIEW.dll.nidaqmxbaselv
CFBundle 0x313760 (framework, loaded)
{type = 15, string = file://localhost/Library/Frameworks/nidaqmxbaselv.framework/, base = (null)}
Amethyst:Library:Frameworks:nidaqmxbaselv.framework
2007-05-23 14:17:02.248 test-ni[4445] CFLog (21): Error loading /Library/Frameworks/LabVIEW 8.2 Runtime.framework/resource/nitaglv.framework/nitaglv: error code 4, error number 0 (no suitable image found. Did find:
/Library/Frameworks/LabVIEW 8.2 Runtime.framework/resource/nitaglv.framework/nitaglv: mach-o, but wrong architecture)
CFBundle 0x1751fdc0 (framework, not loaded)
Created input task
Created AI Voltage Chan
Set sample rate
Created output task
Created AO Voltage Chan OK
Set sample rate
DAQmxBase Error: Specified route cannot be satisfied, because the hardware does not support it.
test-ni has exited with status 0.
Dr John Clements
Lead Programmer
AxoGraph Scientific -
Hi,
I am trying to select a tax classification code for an AP Invoice at line level and I couldn't find the respective codes.
I checked in the Look up codes with ZX_INPUT_CLASSIFICATIONS and they are enabled and active.
Request you to guide me further on how can I view the Tax Classification Codes and select them at AP Invoice line level.
TIA.
Regards,
NiranjanWhat you are talking about? I don't know that in Clusterware world.
-
Data types used in a sub VI - selecting the correct input and output types?
data types used in a sub VI - selecting the correct input and output types?
I can never work out how to choose an input or output format for Subvi's.
I want to create a SubVI for the code in red. I needs an VI Server Reference compatible input and an output that goes to a waveform.
Thanks in advance.
Attachments:
data types.PNG 11 KBGerdW,
I realise now I have taken us in the wrong direction. apologies for that.
History, this is not my code and I do not own the process and NOT my preferred method of using it. I was looking for a simple way to make subtle changes.
What we do - We use these programs to collect data from typically 6 pressures and 6 temperature probes and capture RS232 / USB VISA strings from sensors.
So every few weeks / months or up to a year we rearrange each sensor location to suit the new process. I did not write the code. I cannot change the procedure too much without resistance.
So headers in the CSV file have the DaqMX string passed through the code. Great.
Other data to the CSV file comes from calculations or extracted from the VISA string. Hence why we have headers with "Untitled 1 ()". These values also go to a History Chart.
So I was looking for a simple way to read the the local variable label as it is always linked to the front page indicator. People can cope with editing the indicator label, save the VI and hit run.
TL;DR - GerdW is now a psychologist.
Attachments:
data to csv and history chart.png 1043 KB -
How to save input and output in file
hi ni
i have program that has some input and some output
i try to save the input and output in file word office or excel like this
error
extended
ideal
value
wq
wp
value
xq
xp
0.857143
0.7
0.6
2
0.5
1
1
thank in advace
best regards
m.s
lab view 2011
hi ?Q>
Solved!
Go to Solution.
Attachments:
adder in exteded stochastic.vi 37 KBjohnsold wrote:
Read from and Write to Spreadsheet File VIs should do what you want.
I did not take the time to try to decipher what your program is doing, but I think you could replace all those feedback nodes and Build Arrays with an integer data type and the Rotate function from the Numeric >> Data Manipulation palette. You will still need one shift regsiter or rfeedback node for each of the four signals.
You have duplicated code: Divide by 65535, multiply by 2, and subtact 1 followed by a > comparison. Make that a subVI and place 4 instances on your block diagram.
Those simple changes will make you diagram understandable, reduce its size to the size of a postcard, and make any future changes easier.
Lynn
thank
hi ?Q> -
Synchronizing analog input and output
I am in the middle of converting some Traditional NI-DAQ code to the
DAQmx API (I am using C++). Most of it is going quite well: my
code complexity has been greatly reduced and (since upgrading to 7.4)
my CPU usage has plummeted. However, in one particular case I
need my input and output buffers to be synchronized. I.e. sample
0 of my input buffer should be read at the same instant sample 0 of my
output buffer went out on the line. In Traditional NI-DAQ, I
synchronized my input and output start triggers using the following
method (which I believe I found in an example somewhere):
error = Select_Signal(addr, ND_PFI_6, ND_OUT_START_TRIGGER, ND_LOW_TO_HIGH);
error = Select_Signal(addr, ND_IN_START_TRIGGER, ND_PFI_6, ND_LOW_TO_HIGH);
This then allowed me to setup my input thread, then initialize
everything in my output thread and when my output got the start
command, so did my input. The result was that I could perfectly
match buffers of output data to buffers of input data (after taking all
the appropriate buffering into account).
When I try the same method with the DAQmxConnectTerms function, my
buffers don't line up. They are off by 15-20 ms out of a 400ms
buffer (sampling at 10kHz). I tried cutting out the middle man of
PFI6 with similar results. So my current "synchronize" block
looks like this:
error = m_fnConnectTerms("/Dev1/ao/StartTrigger", "/Dev1/ai/StartTrigger", 0);
I get no error. This also seems to cause my output loop to hang
after a few seconds, although that could be a side effect of something
else that I haven't tracked down yet. Is there a better way to do
what I'm trying to do here? Perhaps it is a misunderstanding of
the way buffering works on the M series cards (I am currently using a
6221).Don't use Connect Terminals. Use the technique shown in this example program
C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Synchronization\Multi-Function\ContAI-Read Dig Chan
which is the sharing of sample clocks via the DAQmxCfqSampClkTiming function where the sample clock source of one task is set to the clock of the other task. This example slaves a digital input task to an analog input task but the idea is the same for your application.
Maybe you are looking for
-
Finder and Dock not responding to mouseover
You know how when you right click on a file and mouseover the 'open with' option to get a list of programs that are associated with the file type? That stopped working on all of these type of menus, including the 'services' option that every programs
-
Non-automatic send in Apple Mail?
My wife has switched! That's the good news. Now we're trying to get her into the Mac groove. On her PC in Outlook there was a switch that allowed her messages to not be sent but put into an outbox where she could later send from there. Is there an op
-
Unable to connect to CMC and Java Infoview
Hi I am unable to connect to CMC and Java Infoview. When I am attempting to connect, then the following message is displayed. "Oops! Internet Explorer could not connect to <web server>:<port number>" Please give me some suggestions. Thanks!
-
Can I share files from other programs or just Adobe apps files. I work with Final Cut and Premiere X.? Need to share files up to 6GB. I need to know if the 20 gb limit is about all that I share, or if it's just about whatis in the clouds. If I take,
-
Challenging inDesign Crash Issue - attn Problem Solvers!
Hello... been struggling with this for weeks.... And before I begin, I know you should not open and work with InDesign files across a network... AND I have no solution to change our workflow, and the following set up has been working for months with