Manual de Practicas de Adquisicion de Datos Con C

Embed Size (px)

Citation preview

  • PRCTICA I

    Elaboracin de una tarea digital de entrada en el MAX

    1. Conecte la tarjeta DAQ USB 6009 a la computadora.

    2. Abra el software Automation Xplorer, MAX.

    3. Asegrese de que el MAX reconozca a la tarjeta USB 6009 en el men

    Devices and Interfases ---- NI-DAQmx Devices.

    4. Seleccione la tarjeta que se encuentra en el men del paso 3.

    5. Oprima el botn derecho del mouse y seleccione crear una tarea: Create

    New Task.

    6. Seleccione Generate Signal --- Digital Input --- Port Input.

    7. Escoja Port0.

  • 8. Elija un nombre que identifique a la tarea digital que se esta elaborando.

    9. Grabe la tarea. Si no esta habilitada la funcin de grabar habilite Invert

    All Lines y enseguida deshabilite la misma opcin.

    10. Si realiza todo este procedimiento, esta lista la tarea para usarla en

    Visual Studio o Labview.

  • PRCTICA II

    Adquisicin de seales digitales

    1. Seleccione un nuevo proyecto en Visual Studio.

    2. Elija Measurement Studio ---- NI Window Application.

    3. Asegrese de que este activada la opcin NI DAQmx Library.

    4. Oprima finalizar.

    5. Redimensione el panel frontal o form1.

    6. Del men de herramientas elija 8 leds individuales.

    7. Cambie el color de modo ON y Off de los leds.

    8. Del men de herramientas seleccione un botn y cambie la propiedad

    texto a la siguiente palabra: SALIR.

    9. Doble click en el botn de salir y escriba

    This.Close();

    10. Del men de herramientas seleccione un botn y cambie la propiedad

    texto a la siguiente palabra: ADQUIRIR.

    11. Doble click en el botn y escriba el siguiente cdigo, respetando las

    palabras reservadas.

  • string taskName = "aqu va el nombre de la tarea creada en el MAX";

    using (Task digitalReadTask = DaqSystem.Local.LoadTask(taskName)

    {

    DigitalSingleChannelReader reader = new

    DigitalSingleChannelReader(digitalReadTask.Stream);

    int dataValueRead = reader.ReadSingleSamplePortInt32();

    bool[] dataArray = new bool[8];

    for (int i = 0; i < 8; i++)

    {

    if (((dataValueRead >> i) & 1) == 1)

    dataArray[i] = true;

    }

    led1.Value = dataArray[0];

    led2.Value = dataArray[1];

    led3.Value = dataArray[2];

    led4.Value = dataArray[3];

    led5.Value = dataArray[4];

    led6.Value = dataArray[5];

    led7.Value = dataArray[6];

    led8.Value = dataArray[7];

    }

    12. Conecte el circuito de 8 interruptores armado en el protoboard.

    13. Ejecute el programa, de ser necesario corrija los errores.

    14. Mueva hacia la posicin ON un interruptor, oprima el botn de adquirir.

    15. Observe lo que ocurre en el panel frontal o forma.

    16. Repita el paso 15 con diferentes interruptores.

    17. Observe y comente lo que ocurre.

  • PRCTICA III

    Elaboracin de una tarea digital de salida en el MAX

    11. Conecte la tarjeta DAQ USB 6009 a la computadora.

    12. Abra el software Automation Xplorer, MAX.

    13. Asegrese de que el MAX reconozca a la tarjeta USB 6009 en el men

    Devices and Interfases ---- NI-DAQmx Devices.

    14. Seleccione la tarjeta que se encuentra en el men del paso 3.

    15. Oprima el botn derecho del mouse y seleccione crear una tarea: Create

    New Task.

    16. Seleccione la opcin mostrada por la siguiente figura.

  • 17. Generate Signal --- Digital Output --- Port Output.

    18. Seleccione Port0.

    19. Elija un nombre que identifique a la tarea digital que se esta elaborando.

    20. Grabe la tarea. Si no esta habilitada la funcin de grabar habilite Invert

    All Lines y enseguida deshabilite la misma opcin.

    21. Si realiza todo este procedimiento, esta lista la tarea para usarla en

    Visual Studio o Labview.

  • PRCTICA IV

    Adquisicin de seales digitales

    18. Seleccione un nuevo proyecto en Visual Studio.

    19. Elija Measurement Studio ---- NI Window Application.

    20. Asegrese de que este activada la opcin NI DAQmx Library.

    21. Oprima finalizar.

    22. Redimensione el panel frontal o form1.

    23. Del men de herramientas elija 8 interruptores individuales localizado en

    Measurement Studio.

    24. Cambie el color de los interruptores, si lo desea.

    25. Del men de herramientas seleccione un botn y cambie la propiedad

    texto a la siguiente palabra: SALIR.

    26. Doble click en el botn de salir y escriba

    This.Close();

    27. Haga doble click en cada uno de los interruptores y verifique que se

    inicialize el evento mostrado para cada uno de los interruptores.

    private void switch1_StateChanged_1(object sender, ActionEventArgs e)

  • {

    }

    28. Escriba el siguiente cdigo para cada uno de los eventos creados por los

    interruptores

    private void switch1_StateChanged_1(object sender, ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 1);

    }

    }

    private void switch2_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 2);

    }

    }

    private void switch3_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 4);

    }

    }

    private void switch4_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 8);

  • }

    }

    private void switch5_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 16);

    }

    }

    private void switch6_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 32);

    }

    }

    private void switch7_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 64);

    }

    }

    private void switch8_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = "MyDigitalOutTask";

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 128);

    }

    }

  • 29. Conecte el circuito de cada terminal del puerto 0 a cada uno de los leds

    implementados en el protoboard.

    30. Ejecute el programa, de ser necesario corrija los errores.

    31. Mueva hacia la posicin ON cada interruptor y observe el led

    correspondiente.

    32. Observe y comente lo que ocurre.

    PRCTICA V

    Elaboracin de un programa de lectura y escritura digital

    1. Elabore una tarea de entrada y otra de salida en el MAX, configurando al

    Port0 con 4 bits de salida y al Port1 con 4 bits de entrada.

    2. Seleccione 4 interruptores individuales del men de Measurement Studio

    localizado en la paleta de herramientas, personalice cada uno de estos

    objetos.

    3. Seleccione 4 leds individuales del men de Measurement Studio

    localizado en la paleta de herramientas, personalice cada uno de estos

    objetos.

    4. Doble click con el botn derecho del Mouse en cada interruptor y escriba

    el siguiente cdigo para cada uno de los interruptores, en la parte

    correspondiente a la declaracin de la tarea, ponga el nombre que le di

    a la tarea creada en el MAX.

    Private void switch1_StateChanged_1(object sender, ActionEventArgs e)

    {

    string taskName = aqu va el nombre de la tarea creada en el MAX;

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 1);

  • }

    }

    private void switch2_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = aqu va el nombre de la tarea creada en el MAX;

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 2);

    }

    }

    private void switch3_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = aqu va el nombre de la tarea creada en el MAX;

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 4);

    }

    }

    private void switch4_StateChanged(object sender,

    ActionEventArgs e)

    {

    string taskName = aqu va el nombre de la tarea creada en el MAX;

    using (Task digitalWriteTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    DigitalSingleChannelWriter writer = new

    DigitalSingleChannelWriter(digitalWriteTask.Stream);

    writer.WriteSingleSamplePort(true, 8);

    }

    }

    5. Ponga un botn y cambie la propiedad text a la palabra LEER. Doble

    click con el botn derecho del mouse y escriba el siguiente cdigo

    correspondiente a la lectura digital, en la parte de declaracin de la

    tarea. Ponga el nombre de la tarea que usted creo en el MAX.

    String taskName = aqu va el nombre de la tarea creada en el MAX;

    using (Task digitalReadTask = DaqSystem.Local.LoadTask(taskName)

    {

    DigitalSingleChannelReader reader = new

    DigitalSingleChannelReader(digitalReadTask.Stream);

    int dataValueRead = reader.ReadSingleSamplePortInt32();

  • bool[] dataArray = new bool[8];

    for (int i = 0; i < 4; i++)

    {

    if (((dataValueRead >> i) & 1) == 1)

    dataArray[i] = true;

    }

    led1.Value = dataArray[0];

    led2.Value = dataArray[1];

    led3.Value = dataArray[2];

    led4.Value = dataArray[3];

    }

    6. Conecte las terminales de salida del Port0 a las terminales de entrada

    del Port1.

    7. Ponga un botn para salir del modo de ejecucin del programa, escriba

    el cdigo adecuado para cumplir con esta funcin.

    8. Ejecute el programa y observe.

  • PRCTICA VI

    Elaboracin de una tarea analgica de entrada en el MAX

    1. Conecte la tarjeta DAQ USB 6009 a la computadora.

    2. Abra el software Automation Xplorer, MAX.

    3. Asegrese de que el MAX reconozca a la tarjeta USB 6009 en el men

    Devices and Interfases ---- NI-DAQmx Devices.

    4. Seleccione la tarjeta que se encuentra en el men del paso 3.

    5. Oprima el botn derecho del mouse y seleccione crear una tarea: Create

    New Task.

    6. Seleccione Acquire Signal --- Analog Input --- Voltage.

  • 7. Seleccione ai0.

    8. Elija un nombre que identifique a la tarea analgica que se esta

    elaborando.

    9. Configure la tarea en la opcin Single Input Range a 10 Volts.

    10. Configura la opcin Scaled Unit a Volts.

    11. Seleccione en Terminal Configuration: Differential.

    12. La opcin Acquisition Mode a Continuos Samples.

    13. Grabe la tarea.

    14. En la parte inferior de la pantalla de configuracin de la tarea seleccione

    Conection Diagram. Observe la forma de conectar la tarjeta a la fuente

    de voltaje en las terminales seleccionadas.

    15. Si realiza todo este procedimiento, esta lista la tarea para usarla en

    Visual Studio o Labview.

  • PRCTICA VII

    Adquisicin de seales analgicas

    1. Seleccione un nuevo proyecto en Visual Studio.

    2. Elija Measurement Studio ---- NI Window Application.

    3. Asegrese de que este activada la opcin NI DAQmx Library.

    4. Oprima finalizar.

    5. Redimensione el panel frontal o form1.

    6. Del men de herramientas elija un botn.

    7. Del men de herramientas seleccione un botn y cambie la propiedad

    texto a la siguiente palabra: SALIR.

    8. Doble click en el botn de salir y escriba

    This.Close();

    9. Del cuadro de herramientas elija una textbox, nmbrela textbox1

    10. Del men de herramientas seleccione un botn y cambie la propiedad

    texto a la siguiente palabra: ADQUIRIR SEAL.

    11. Doble click en el botn y escriba el siguiente cdigo, respetando las

    palabras reservadas.

  • string taskName = "Nombre de la tarea analgica de entrada";

    using (Task analogReadTask =

    DaqSystem.Local.LoadTask(taskName))

    {

    analogSingleChannelReader reader = new

    analogSingleChannelReader(analogReadTask.Stream);

    int dataValueRead = reader.ReadSingleSamplePortInt32();

    textBox1.Text = Convert.ToString(dataValueRead);

    }

    12. Conecte una fuente de voltaje en las terminales de entrada analgica

    configurada en la tarea hecha en el MAX. Ponga la salida de voltaje de la

    fuente al mnimo.

    13. Ejecute el programa, de ser necesario corrija los errores.

    14. Incremente despacio el valor de voltaje de la fuente. Cada vez que haga

    esto oprima el botn de adquirir seal.

    15. Observe los valores que se presentan en el textbox.

    16. Repita desde el paso 14, cuidando de no pasarse del voltaje mximo que

    acepta la tarjeta DAQ.

    17. Observe y comente lo que ocurre.

  • PRCTICA VIII

    Elaboracin de una tarea analgica de salida en el MAX

    1. Conecte la tarjeta DAQ USB 6009 a la computadora.

    2. Abra el software Automation Xplorer, MAX.

    3. Asegrese de que el MAX reconozca a la tarjeta USB 6009 en el men

    Devices and Interfases ---- NI-DAQmx Devices.

    4. Seleccione la tarjeta que se encuentra en el men del paso 3.

    5. Oprima el botn derecho del mouse y seleccione crear una tarea: Create

    New Task.

    6. Seleccione Generate Signal --- Analog Output --- Voltage.

  • 7. Seleccione ao0.

    8. Elija un nombre que identifique a la tarea analgica que se esta

    elaborando.

    9. Configure la tarea en la opcin Single Output Range de 0 a 5 Volts.

    10. Configura la opcin Scaled Unit a Volts.

    11. Seleccione en Terminal Configuration: RSE

    12. La opcin Generation Mode a Continuous Samples.

    13. Grabe la tarea.

    14. Si realiza todo este procedimiento, esta lista la tarea para usarla en

    Visual Studio o Labview.

  • PRCTICA IX

    Generacin de seales analgicas

    1. Seleccione un nuevo proyecto en Visual Studio.

    2. Elija Measurement Studio ---- NI Window Application.

    3. Asegrese de que este activada la opcin NI DAQmx Library.

    4. Oprima finalizar.

    5. Redimensione el panel frontal o form1.

    6. Del men de herramientas elija un botn.

    7. Del men de herramientas seleccione un botn y cambie la propiedad

    texto a la siguiente palabra: SALIR.

    8. Doble click en el botn de salir y escriba

    This.Close();

    9. Del cuadro de herramientas elija una textbox, nmbrela textbox1

    10. Del men de herramientas seleccione un botn y cambie la propiedad

    texto a la siguiente palabra: GENERAR SEAL.

    11. Doble click en el botn y escriba el siguiente cdigo, respetando las

    palabras reservadas.

  • {

    float dato = Single.Parse(textBox1.Text);

    string taskName = "MyVoltageOutTask";

    using (Task AnalogWriteTask = DaqSystem.Local.LoadTask(taskName))

    {

    AnalogSingleChannelWriter writer = new

    AnalogSingleChannelWriter(AnalogWriteTask.Stream);

    writer.WriteSingleSample(true, dato);

    }

    }

    12. Conecte voltmetro en la salida correspondiente; terminal positivo a la

    terminal 14 de la DAQ y terminal negativo a la terminal 13 de la DAQ.

    13. Ejecute el programa, de ser necesario corrija los errores.

    14. Escriba un valor de voltaje entre 0 y 5 Volts en la caja de texto, utilize la

    coma como el punto decimal.

    15. Observe el voltmetro.

    16. Repita desde el paso 14, cuidando de no pasarse del voltaje mximo

    configurado en la tarea de la tarjeta DAQ.

    17. Observe y comente lo que ocurre.

  • PRCTICA X

    Elaboracin de una tarea de entrada configurada como

    contador de pulsos en el MAX

    1. Conecte la tarjeta DAQ USB 6009 a la computadora.

    2. Abra el software Automation Xplorer, MAX.

    3. Asegrese de que el MAX reconozca a la tarjeta USB 6009 en el men

    Devices and Interfases ---- NI-DAQmx Devices.

    4. Seleccione la tarjeta que se encuentra en el men del paso 3.

    5. Oprima el botn derecho del mouse y seleccione crear una tarea: Create

    New Task.

    6. Seleccione Acquire Signals --- Counter Input --- Edge Count.

    7. Escoja ctr0.

  • 8. Elija un nombre que identifique a la tarea digital que se esta elaborando.

    9. Revise que la configuracin este de acuerdo a los datos que muestra la

    siguiente ventana.

    10. Grabe la tarea. Si no esta habilitada la funcin de grabar active en la

    opcin Count direction Count down y luego vuelva a seleccionar Count

    Up.

    11. Si realiza todo este procedimiento, esta lista la tarea para usarla en

    Visual Studio o Labview.

  • PRCTICA XI

    Adquisicin de seales digitales

    1. Seleccione un nuevo proyecto en Visual Studio.

    2. Elija Measurement Studio ---- NI Window Application.

    3. Asegrese de que este activada la opcin NI DAQmx Library.

    4. Oprima finalizar.

    5. Redimensione el panel frontal o form1.

    6. Del men de herramientas seleccione un ComboBox.

    7. Del men de herramientas seleccione una caja de texto.

    8. Ponga un botn que muestre la leyenda Iniciar cuenta de pulsos.

    9. Haga doble click en el botn y escriba el siguiente cdigo.

    myTask = new Task();

    myTask.CIChannels.CreateCountEdgesChannel(comboBox1.Text,

    "Nombre de la tarea",

    CICountEdgesActiveEdge.Falling, 0,

    CICountEdgesCountDirection.Up);

    myCounterReader = new CounterReader(myTask.Stream);

    myTask.Start();

    loopTimer.Start();

    10. Ponga un botn que muestre la leyenda Parar la cuenta de pulsos.

    myTask.Stop();

    11. Del men de herramientas escoja un Timer.

    12. Haga doble click sobre el timer y escriba el siguiente cdigo.

    uint reading = myCounterReader.ReadSingleSampleUInt32();

    textBox1.Text = Convert.ToString(reading);

    13. Haga doble click en el form1 y escriba este cdigo.

    comboBox1.Items.AddRange(DaqSystem.Local.GetPhysicalChannels(PhysicalC

    hannelTypes.CI, PhysicalChannelAccess.External));

  • if (comboBox1.Items.Count > 0)

    comboBox1.SelectedIndex = 0;

    14. Doble click en el botn de salir y escriba

    This.Close();

    15. Ejecute el programa, de ser necesario corrija los errores.

    16. Si el programa al ejecutarlo no muestra ningn error, preguntele a su

    profesor cual es el hardware que se va a conectar.

    17. Observe y comente lo que ocurre.