Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

multiple analog out on PCI 6251

Hi

what kind of code I must write in Bisual Basic.NET 2003 for have Multiple Analog Out (both channel simoultaneous)?
I have try this but Buffer.WriteMultiSample want a 1D array also if I have create 2 channels!!

Dim MyTask_Dati_Out As New Task("Task_Dati_Out")
Dim Buffer As New AnalogSingleChannelWriter(MyTask_Dati_Out.Stream)

Vettore_Dati_Out = Array.CreateInstance(GetType(Double), 2, 200)

Try
'Creo il Task
MyTask_Dati_Out.AOChannels.CreateVoltageChannel("Dev1/ao0", "", -10, 10, AOVoltageUnits.Volts)
MyTask_Dati_Out.AOChannels.CreateVoltageChannel("Dev1/ao1", "", -10, 10, AOVoltageUnits.Volts)
' Verifico il task creato
MyTask_Dati_Out.Control(TaskAction.Verify)
'Imposto l'oscillatore di Uscita
MyTask_Dati_Out.Timing.ConfigureSampleClock("", Oscillatore_di_Uscita, SampleClockActiveEdge.Rising.Rising, SampleQuantityMode.ContinuousSamples)
'Scrivo i dati nel buffer e parto
Buffer.WriteMultiSample(False, Vettore_Dati_Out)
'Inizio a produrre la forma d'onda
MyTask_Dati_Out.Start()
Catch err As DaqException
MessageBox.Show(err.Message)
MyTask_Dati_Out.Dispose()
End Try
0 Kudos
Message 1 of 2
(3,394 Views)
Hi,

the code reported below can be a reference for programming your application for multiple analog output channels.

==============================
' Create task
myTask = New Task("aoTask")

' Create Channel 0
myTask.AOChannels.CreateVoltageChannel(PhysCh0Name,"",Min,Max,AOVoltageUnits.Volts)

' Create Channel 1
myTask.AOChannels.CreateVoltageChannel(PhysCh1Name,"",Min,Max,AOVoltageUnits.Volts)

' Verify the task before doing the waveform calculations
myTask.Control(TaskAction.Verify)

' Calculate some waveform parameters and generate data
Dim fGen As New FunctionGenerator(myTask.Timing,freq,samplesPerBuffer,cyclesPerBuffer,signalType,ampl)

Dim fGen1 As New FunctionGenerator(myTask.Timing,freq,samplesPerBuffer,cyclesPerBuffer,signalType,ampl)

' Configure the sample clock with the calculated rate
myTask.Timing.ConfigureSampleClock("",fGen.ResultingSampleClockRate,ActiveEdge,SampleMode)

Dim buffer(1, N) As Double
Dim i As Int16

For i = 0 To N-1

buffer(0, i) = fGen.Data(i)
buffer(1, i) = fGen1.Data(i)
Next

' Write the data to the buffer
Dim writer As New AnalogMultiChannelWriter(myTask.Stream)
writer.WriteMultiSample(False, buffer)

'Start writing out data
myTask.Start()
startButton.Enabled = False
stopButton.Enabled = True

statusCheckTimer.Enabled = True
Catch err As DaqException
statusCheckTimer.Enabled = False
MessageBox.Show(err.Message)
myTask.Dispose()
End Try
Cursor.Current = Cursors.Default
End Sub
========================================


Regards,
AlessioD
National Instruments
0 Kudos
Message 2 of 2
(3,383 Views)