Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
test-and-measurement:guides:getting-started-with-labview [2023/12/05 22:09] – Update regarding VIPM Fausto Soarestest-and-measurement:guides:getting-started-with-labview [2024/04/18 18:28] (current) – Add ULx callout Arthur Brown
Line 1: Line 1:
-====== Getting Started with LabVIEW and a Test and Measurement Device ======+====== Getting Started with LabVIEW and a Digilent Discovery Device ======
  
 ~~TechArticle~~ ~~TechArticle~~
Line 5: Line 5:
 {{:test-and-measurement:analog-discovery-3:labview-splashscreen.png?800|Digilent WaveForms VI}} {{:test-and-measurement:analog-discovery-3:labview-splashscreen.png?800|Digilent WaveForms VI}}
  
-The following guide presents how to install and use the Digilent WaveForms VIs LabVIEW package, to control Test and Measurement devices. Demos for controlling the Power Supply, the Digital I/O lines, the Waveform Generator, and the Oscilloscope instruments can be found in the [[getting-started-with-labview#examples|Examples]] section of this document.+The following guide presents how to install and use the Digilent WaveForms VIs LabVIEW package, to control Digilent Test and Measurement devices. Demos for controlling the Power Supply, the Digital I/O lines, the Waveform Generator, and the Oscilloscope instruments can be found in the [[getting-started-with-labview#examples|Examples]] section of this document.
 ---- ----
  
Line 13: Line 13:
   * A Digilent Test and Measurement device   * A Digilent Test and Measurement device
     * [[test-and-measurement:analog-discovery-3:start|Analog Discovery 3]]     * [[test-and-measurement:analog-discovery-3:start|Analog Discovery 3]]
 +    * [[test-and-measurement:analog-discovery-pro-5250:start|Analog Discovery Pro (ADP5250)]]
     * [[test-and-measurement:analog-discovery-pro-3x50:start|Analog Discovery Pro (ADP3450/ADP3250)]]     * [[test-and-measurement:analog-discovery-pro-3x50:start|Analog Discovery Pro (ADP3450/ADP3250)]]
 +    * [[test-and-measurement:analog-discovery-pro-2230:start|Analog Discovery Pro (ADP2230)]]
     * [[test-and-measurement:discovery-power-supply-3340:start|Discovery Power Supply (DPS3340)]]     * [[test-and-measurement:discovery-power-supply-3340:start|Discovery Power Supply (DPS3340)]]
     * [[test-and-measurement:analog-discovery-studio:start|Analog Discovery Studio]]     * [[test-and-measurement:analog-discovery-studio:start|Analog Discovery Studio]]
Line 24: Line 26:
 **Note:** //If a Test and Measurement device without analog input and/or output channels (Digital Discovery), or without variable power supplies (Analog Discovery) is selected, certain examples in this guide will not work.// **Note:** //If a Test and Measurement device without analog input and/or output channels (Digital Discovery), or without variable power supplies (Analog Discovery) is selected, certain examples in this guide will not work.//
  
-**Note:** //WaveForms can be downloaded from the [[software:waveforms:waveforms-3:start]] and the set up process is found in the [[software:waveforms:waveforms-3:getting-started-guide]]. By installing WaveForms, the Digilent WaveForms Runtime will be installed, which is needed by the WaveForms VIs.//+**Note:** //The latest installers for WaveForms can be downloaded Digilent's hosting area [[https://digilent.com/shop/software/digilent-waveforms/download|here]] and the set up process is found in the [[software:waveforms:waveforms-3:getting-started-guide]]. By installing WaveForms, the Digilent WaveForms Runtime will be installed, which is needed by the WaveForms VIs.//
  
 **Note:** //To download LabVIEW, an NI account is needed. Alternatively, LabVIEW Community can be downloaded from [[https://www.ni.com/ro-ro/shop/labview/select-edition/labview-community-edition.html/|LabVIEW Community]] and a getting started guide can be found at [[https://labviewwiki.org/wiki/Getting_Started|LabVIEW Community Getting Started]]. LabVIEW's Add-On Tool, VI Package Manager (VIPM), is used in this guide. Installation of VIPM is mentioned in the guide. // **Note:** //To download LabVIEW, an NI account is needed. Alternatively, LabVIEW Community can be downloaded from [[https://www.ni.com/ro-ro/shop/labview/select-edition/labview-community-edition.html/|LabVIEW Community]] and a getting started guide can be found at [[https://labviewwiki.org/wiki/Getting_Started|LabVIEW Community Getting Started]]. LabVIEW's Add-On Tool, VI Package Manager (VIPM), is used in this guide. Installation of VIPM is mentioned in the guide. //
 +
 +If you're looking for LabVIEW support for //Measurement Computing (MCC)// and //Data Translation (DT)// devices, check out these resource centers: [[/software/universal-library/labview/start]], [[/software/lv-link/start]].
 ---- ----
  
Line 45: Line 49:
 Launch LabVIEW and click on the **Tools** menu. Select **VI Package Manager** from the list to open the VI Package Manager (VIPM). Launch LabVIEW and click on the **Tools** menu. Select **VI Package Manager** from the list to open the VI Package Manager (VIPM).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-tools-vipm.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-tools-vipm.png? |VI Package Manager}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 69: Line 73:
 Select the LabVIEW version installed on the target system (1). Enter **Digilent** in the search field (2) to display related packages. Select the **Digilent WaveForms VIs** package (3) and then click the **Install** button (4). Select the LabVIEW version installed on the target system (1). Enter **Digilent** in the search field (2) to display related packages. Select the **Digilent WaveForms VIs** package (3) and then click the **Install** button (4).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-vipm-search-install.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-vipm-search-install.png? |VIPM application}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 75: Line 79:
 Click on an **agree** option in order to proceed. Click on an **agree** option in order to proceed.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-vipm-download-agree.png? |}}+{{ :test-and-measurement:analog-discovery-3:labview-vipm-download-agree.png? |Agreement}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 81: Line 85:
 Click the **I Accept** button to continue. Click the **I Accept** button to continue.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-vipm-terms.png? |}}+{{ :test-and-measurement:analog-discovery-3:labview-vipm-terms.png? |I Accept}}
  
 </WRAP></WRAP> </WRAP></WRAP>
Line 95: Line 99:
 If prompted with a **VIPM - Batch Process Error**, click the **OK** button. If prompted with a **VIPM - Batch Process Error**, click the **OK** button.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-vipm-batch-error.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-vipm-batch-error.png? |VIPM Batch Error}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 Next, click the **Finish** button and restart LabVIEW.  Next, click the **Finish** button and restart LabVIEW. 
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-vipm-not-installed.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-vipm-not-installed.png? |VIPM}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 Once back into LabVIEW, click on **Tools** from the top menu and then select **Options**. Once back into LabVIEW, click on **Tools** from the top menu and then select **Options**.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-tools-options.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-tools-options.png? |Options}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 In the **Options** window, select **VI Server** and then scroll down on the right side until you reach **Machine Access**.  Enter your system name in the //Machine name/address// field and then click the **Add** button to add the name to the //Machine Access List// Afterwards, click the **OK** button. In the **Options** window, select **VI Server** and then scroll down on the right side until you reach **Machine Access**.  Enter your system name in the //Machine name/address// field and then click the **Add** button to add the name to the //Machine Access List// Afterwards, click the **OK** button.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-options-vi-server-machine-access.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-options-vi-server-machine-access.png? |VI Server}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 **Note:**  //Use Windows System Information to determine your computer's system name.// **Note:**  //Use Windows System Information to determine your computer's system name.//
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:system-information.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:system-information.png? |Windows System Information}}
 </WRAP></WRAP> </WRAP></WRAP>
 <-- <--
Line 122: Line 126:
 Next, when prompted with **VIPM - Package License Agreements**, select the **Yes, I accept...** button. Next, when prompted with **VIPM - Package License Agreements**, select the **Yes, I accept...** button.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-vipm-license-agreement.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-vipm-license-agreement.png? |License Agreement}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 Click the **Finish** button once the package has been installed and then restart LabVIEW. Click the **Finish** button once the package has been installed and then restart LabVIEW.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-vipm-installed.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-vipm-installed.png?nolink |VIPM}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 133: Line 137:
 To access the Digilent WaveForms VIs Reference, launch LabVIEW, click on **Help**, and then select **Digilent WaveForms VIs Reference**.  To access the Digilent WaveForms VIs Reference, launch LabVIEW, click on **Help**, and then select **Digilent WaveForms VIs Reference**. 
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-help-digilent-reference.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-help-digilent-reference.png? |Digilent WaveForms VIs Reference}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 139: Line 143:
 To access the Digilent WaveForms VI functions via the Block Diagram, click on **View** from the top menu and then select **Functions Palette**. Alternatively, right click on the whitespace to open the **Functions Palette**. To access the Digilent WaveForms VI functions via the Block Diagram, click on **View** from the top menu and then select **Functions Palette**. Alternatively, right click on the whitespace to open the **Functions Palette**.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:digilent-function-palette-vis.png?nolink |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:digilent-function-palette-vis.png? |Functions Palette}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 145: Line 149:
 The Digilent WaveForms VI examples are located in the target system's directory 'C:\Program Files\National Instruments\LabVIEW {version}\examples\DigilentWF'. The Digilent WaveForms VI examples are located in the target system's directory 'C:\Program Files\National Instruments\LabVIEW {version}\examples\DigilentWF'.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:labview-digilentwf-examples-location.png?nolink |}}+{{ :test-and-measurement:analog-discovery-3:labview-digilentwf-examples-location.png? |Examples Location}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 167: Line 171:
   * Other subvis for reading the voltage, reading the current limit, checking whether the supplies are enabled or not, resetting  the instrument, etc. are also available (these are not used in the example program).   * Other subvis for reading the voltage, reading the current limit, checking whether the supplies are enabled or not, resetting  the instrument, etc. are also available (these are not used in the example program).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_tools.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_tools.png?&600 |Power Supply Tools}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 181: Line 185:
 In this example the panel is separated in two parts with decorative elements. In the upper part there is a drop-down list with the name Device which is used to select the Test and Measurement device used. The Stop button (2) is also found here. With this button the program can be stopped, and the power supplies turned off. In this example the panel is separated in two parts with decorative elements. In the upper part there is a drop-down list with the name Device which is used to select the Test and Measurement device used. The Stop button (2) is also found here. With this button the program can be stopped, and the power supplies turned off.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_front_panel_explained.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_front_panel_explained.png?&400 |Power Supply Front Panel}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 The lower part contains the Master Enable switch and a virtual LED which signals the state of this switch, and two separated parts for the positive and negative power supply. Both parts contain an ON/OFF switch with a virtual LED which signals the power supply state and a slider, which sets the voltage level of the power supply. If the Digital Discovery is chosen in the upper part and the program is started with the **Run** button, the objects controlling the negative power supply will be disabled and grayed out. The lower part contains the Master Enable switch and a virtual LED which signals the state of this switch, and two separated parts for the positive and negative power supply. Both parts contain an ON/OFF switch with a virtual LED which signals the power supply state and a slider, which sets the voltage level of the power supply. If the Digital Discovery is chosen in the upper part and the program is started with the **Run** button, the objects controlling the negative power supply will be disabled and grayed out.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_front_panel_greyed_out.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_front_panel_greyed_out.png?&400 |Front Panel}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 196: Line 200:
 In this example the Block Diagram is separated in three parts with the help of decorative and functional structures. The first part named Device selection and initialization contains the combo box Device (control element), compares its output to predefined strings and initializes the //Power Supplies// instrument with the selected device name. This part has zero incoming and three outgoing signals: the //Power Supplies// instrument device handler, the errors and a flag which is true if the Digital Discovery, the ADP3450, or the ADP3250 was selected and false otherwise. In this example the Block Diagram is separated in three parts with the help of decorative and functional structures. The first part named Device selection and initialization contains the combo box Device (control element), compares its output to predefined strings and initializes the //Power Supplies// instrument with the selected device name. This part has zero incoming and three outgoing signals: the //Power Supplies// instrument device handler, the errors and a flag which is true if the Digital Discovery, the ADP3450, or the ADP3250 was selected and false otherwise.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:power_block_1.png?nolink&600 |}}+{{ reference:test-and-measurement:guides:power_block_1.png?&600 |Power Block}}
 </WRAP></WRAP> </WRAP></WRAP>
  
Line 202: Line 206:
 The next section is in a while loop, so it is repeated until a certain condition is met, with 100ms wait time between iterations. This part has as incoming signals the three from the previous section. The error signal and the device handler are cascaded to the //Power Supply// instrument settings, which also receive data from other control elements: voltage level sliders (V+ voltage and V- voltage) and power supply state switches (V+ and V-). These settings blocks are followed by property nodes, which are able to modify different parameters of existing blocks, in this case according to the device type, the V- channel is enabled/disabled and the V+ voltage slider’s range is modified. The next block turns the instrument on/off according to the state of the Master Enable switch. All these settings are inside a switch case, which changes constant parameters according to the selected device name (limits the voltage range for Digital Discovery). The loop is exited if there is an error, or the **Stop** button is pressed on the Front Panel. The next section is in a while loop, so it is repeated until a certain condition is met, with 100ms wait time between iterations. This part has as incoming signals the three from the previous section. The error signal and the device handler are cascaded to the //Power Supply// instrument settings, which also receive data from other control elements: voltage level sliders (V+ voltage and V- voltage) and power supply state switches (V+ and V-). These settings blocks are followed by property nodes, which are able to modify different parameters of existing blocks, in this case according to the device type, the V- channel is enabled/disabled and the V+ voltage slider’s range is modified. The next block turns the instrument on/off according to the state of the Master Enable switch. All these settings are inside a switch case, which changes constant parameters according to the selected device name (limits the voltage range for Digital Discovery). The loop is exited if there is an error, or the **Stop** button is pressed on the Front Panel.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_block_diagram_2_false.png?nolink&600 |}} +{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_block_diagram_2_false.png?&600 |}} 
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_block_diagram_2_true.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_block_diagram_2_true.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 If the loop is exited, the device handler and the errors are passed to the next section, which turns off the supplies, closes the instrument and sets all switches and virtual LEDs to off state, then displays an error message if there was one. If the loop is exited, the device handler and the errors are passed to the next section, which turns off the supplies, closes the instrument and sets all switches and virtual LEDs to off state, then displays an error message if there was one.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_block_diagram_3.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_block_diagram_3.png?&600 |Power Supply}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 215: Line 219:
 To run the VI, first on the front panel select the Test and Measurement device used, then press the **Run** button. To run the VI, first on the front panel select the Test and Measurement device used, then press the **Run** button.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_running.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:power_supply_running.png?&400 |Power Supply}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 From here the power supply channels can be enabled with the help of the switches and adjusted with the help of the sliders. To visualize the output voltage, an LED should be connected in series with a 220Ω  resistor between the V+ and the GND (down arrow) pins of the Test and Measurement device like in the image shown to the right. The program can be stopped with the **Stop** button on the Front Panel. From here the power supply channels can be enabled with the help of the switches and adjusted with the help of the sliders. To visualize the output voltage, an LED should be connected in series with a 220Ω  resistor between the V+ and the GND (down arrow) pins of the Test and Measurement device like in the image shown to the right. The program can be stopped with the **Stop** button on the Front Panel.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:ad3-resistor-led.png?nolink&400 |}}+{{ :test-and-measurement:analog-discovery-3:ad3-resistor-led.png?&400 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 237: Line 241:
   * Other subvis for adding tristate buffers to the I/O  lines, resetting the instrument or getting information about the state of the  lines (tristated/static) are also available (these are not used in the example program).   * Other subvis for adding tristate buffers to the I/O  lines, resetting the instrument or getting information about the state of the  lines (tristated/static) are also available (these are not used in the example program).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_tools.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_tools.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 253: Line 257:
 The lower part contains a slider ranging from 0 to 16 (control) and 16 virtual LEDs, each one named after a digital I/O line. When the program is running, the slider determines how many of the digital lines will be HIGH. By moving the slider, the number of lines set to HIGH can be modified. The virtual LEDs indicate if a line is HIGH (they are lit if HIGH and dark if LOW). The lower part contains a slider ranging from 0 to 16 (control) and 16 virtual LEDs, each one named after a digital I/O line. When the program is running, the slider determines how many of the digital lines will be HIGH. By moving the slider, the number of lines set to HIGH can be modified. The virtual LEDs indicate if a line is HIGH (they are lit if HIGH and dark if LOW).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_front_panel_explained.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_front_panel_explained.png?&400 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 263: Line 267:
 In this example the Block Diagram is separated in three parts with the help of decorative and functional structures. The first part named Device selection and initialization contains the combo box Device (control element) and initializes the //Digital IO// instrument with the selected device name. This part has zero incoming and two outgoing signals: the //Digital IO// instrument device handler and the error signal. In this example the Block Diagram is separated in three parts with the help of decorative and functional structures. The first part named Device selection and initialization contains the combo box Device (control element) and initializes the //Digital IO// instrument with the selected device name. This part has zero incoming and two outgoing signals: the //Digital IO// instrument device handler and the error signal.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:dio2_block_1.png?nolink&600 |}}+{{ reference:test-and-measurement:guides:dio2_block_1.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
  
Line 269: Line 273:
 The next section is in a while loop, so it is repeated until a certain condition is met, with 100ms wait time between iterations. This part has as incoming signals the two from the previous section. The error signal and the device handler are connected to the DIO-Write block, which also receives data from the input slider. The number outputted by the slider is converted to a Boolean array with 8 elements, then the content of this array is written to the digital I/O lines. The error and instrument handle signals are connected then to the DIO-Read block. With the help of this block, the program reads the values of digital I/O lines 0 to 15, then converts the Boolean array to a number. This number is compared to constant values and the result of each comparison decides the state of the virtual LEDs. The loop is exited if there is an error, or the **Stop** button is pressed on the Front Panel. The instrument handle and the errors are sent towards the next part. The next section is in a while loop, so it is repeated until a certain condition is met, with 100ms wait time between iterations. This part has as incoming signals the two from the previous section. The error signal and the device handler are connected to the DIO-Write block, which also receives data from the input slider. The number outputted by the slider is converted to a Boolean array with 8 elements, then the content of this array is written to the digital I/O lines. The error and instrument handle signals are connected then to the DIO-Read block. With the help of this block, the program reads the values of digital I/O lines 0 to 15, then converts the Boolean array to a number. This number is compared to constant values and the result of each comparison decides the state of the virtual LEDs. The loop is exited if there is an error, or the **Stop** button is pressed on the Front Panel. The instrument handle and the errors are sent towards the next part.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:dio_block_2.png?nolink&600 |}}+{{ reference:test-and-measurement:guides:dio_block_2.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 If the loop is exited, the state of all virtual LEDs is set to false (LEDs are turned off) with the help of property nodes, then an all 0 boolean array is written to the digital I/O lines (all lines are set to LOW). The instrument is closed making it available to other programs, then an error message is displayed, if there were any errors. If the loop is exited, the state of all virtual LEDs is set to false (LEDs are turned off) with the help of property nodes, then an all 0 boolean array is written to the digital I/O lines (all lines are set to LOW). The instrument is closed making it available to other programs, then an error message is displayed, if there were any errors.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_block_diagram_3.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_block_diagram_3.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 283: Line 287:
 From here the state of  digital I/O lines 0 to 15 can be set by the slider. The state of the pins is also read back and displayed with the help of the virtual LEDs . The program can be terminated with the **Stop** button on the Front Panel. From here the state of  digital I/O lines 0 to 15 can be set by the slider. The state of the pins is also read back and displayed with the help of the virtual LEDs . The program can be terminated with the **Stop** button on the Front Panel.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_running.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_running.png?&400 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 300: Line 304:
   * Other subvis for adding tristate buffers to the I/O  lines, resetting the instrument or getting information about the state of the  lines (tristated/static) are also available (these are not used in the example program).   * Other subvis for adding tristate buffers to the I/O  lines, resetting the instrument or getting information about the state of the  lines (tristated/static) are also available (these are not used in the example program).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_tools.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:digital_tools.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 316: Line 320:
 The lower part contains a slider ranging from 0 to 9 (control), two text fields (indicator), 7 virtual LEDs, and a seven-segment display. When the program is running, the number set with the slider is used to determine which segments should be lit on the seven-segment display, the list of these segments being displayed in one of the text fields. The other text field contains the binary number which should be written to the digital I/O lines 0-6. Virtual LEDs show the state of these lines. The seven-segment display is connected to digital I/O lines 8-14 and segments are turned on/off according to the state of these pins. The lower part contains a slider ranging from 0 to 9 (control), two text fields (indicator), 7 virtual LEDs, and a seven-segment display. When the program is running, the number set with the slider is used to determine which segments should be lit on the seven-segment display, the list of these segments being displayed in one of the text fields. The other text field contains the binary number which should be written to the digital I/O lines 0-6. Virtual LEDs show the state of these lines. The seven-segment display is connected to digital I/O lines 8-14 and segments are turned on/off according to the state of these pins.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:front_panel.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:front_panel.png?&400 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 326: Line 330:
 In this example the Block Diagram is separated in three parts with the help of decorative and functional structures. The first part named Device selection and initialization contains the combo box list Device (control element) and initializes the //Digital IO// instrument with the selected device name. This part has zero incoming and two outgoing signals: the //Digital IO// instrument device handler and the error signal. In this example the Block Diagram is separated in three parts with the help of decorative and functional structures. The first part named Device selection and initialization contains the combo box list Device (control element) and initializes the //Digital IO// instrument with the selected device name. This part has zero incoming and two outgoing signals: the //Digital IO// instrument device handler and the error signal.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:dio2_block_1.png?nolink&600 |}}+{{ reference:test-and-measurement:guides:dio2_block_1.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
  
Line 334: Line 338:
 As a next step, the state of the digital I/O lines 8-14 is read and the segments of the seven-segment display are controlled according to the received values. The loop is exited if there is an error, or the **Stop** button is pressed on the Front Panel. The instrument handle and the errors are sent towards the next part. As a next step, the state of the digital I/O lines 8-14 is read and the segments of the seven-segment display are controlled according to the received values. The loop is exited if there is an error, or the **Stop** button is pressed on the Front Panel. The instrument handle and the errors are sent towards the next part.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:block_diagram_2.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:block_diagram_2.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 When the loop is exited, the state of all virtual LEDs is set to false (LEDs are turned off) with the help of property nodes, the strings are replaced with an empty string, then an all 0 Boolean array is written to the digital I/O lines (all lines are set to LOW). The instrument is closed making it available to other programs, then an error message is displayed, if there were any errors. When the loop is exited, the state of all virtual LEDs is set to false (LEDs are turned off) with the help of property nodes, the strings are replaced with an empty string, then an all 0 Boolean array is written to the digital I/O lines (all lines are set to LOW). The instrument is closed making it available to other programs, then an error message is displayed, if there were any errors.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:block_diagram_3.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:block_diagram_3.png?&400 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 348: Line 352:
 Connect DIO pins 0-6 to DIO pins 8-14, as seen in the diagram to the right. DIO lines 0-6 are used as output and are controlled by the slider. As the segments of the seven-segment display are connected to digital I/O lines 8-14, connecting the respective pins will display the number set on the slider. The program can be terminated with the **Stop** button on the Front Panel Connect DIO pins 0-6 to DIO pins 8-14, as seen in the diagram to the right. DIO lines 0-6 are used as output and are controlled by the slider. As the segments of the seven-segment display are connected to digital I/O lines 8-14, connecting the respective pins will display the number set on the slider. The program can be terminated with the **Stop** button on the Front Panel
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :test-and-measurement:analog-discovery-3:ad3-dio-short.png?nolink&400 |}} +{{ :test-and-measurement:analog-discovery-3:ad3-dio-short.png?&400 |}} 
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:running.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:running.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 367: Line 371:
   * Other subvis for generating arbitrary waveforms, returning data about the state of the function generator, resetting the instrument, etc. are also available (these are not used in the example program).   * Other subvis for generating arbitrary waveforms, returning data about the state of the function generator, resetting the instrument, etc. are also available (these are not used in the example program).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:wavegen_tools.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:wavegen_tools.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group> <WRAP group>
Line 382: Line 386:
   * Other subvis for setting channel and trigger properties, returning data about the state of the oscilloscope, resetting the instrument, etc. are also available (these are not used in the example program).    * Other subvis for setting channel and trigger properties, returning data about the state of the oscilloscope, resetting the instrument, etc. are also available (these are not used in the example program). 
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:scope_tools_1.png?nolink&600 |}} +{{ :learn:instrumentation:tutorials:getting-started-with-labview:scope_tools_1.png?&600 |}} 
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:scope_tools_2.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:scope_tools_2.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 399: Line 403:
 The lower left part contains all the control elements for the //Wavegen// instrument: channel and function selector drop-down lists, sliders and text boxes for setting the amplitude and DC offset voltages and text boxes for setting the duty cycle, the starting and ending frequency and the frequency increment of the sweep. The lower left part contains all the control elements for the //Wavegen// instrument: channel and function selector drop-down lists, sliders and text boxes for setting the amplitude and DC offset voltages and text boxes for setting the duty cycle, the starting and ending frequency and the frequency increment of the sweep.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:analog_front_panel_left.png?nolink&400 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:analog_front_panel_left.png?&400 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 The right part named Oscilloscope contains four drop-down lists for scope channel selection, setting coupling type, setting trigger edge, and setting probe attenuation (by default this is set to 1X, should be modified if BNC probes are used) and a numeric control to set the speed of the measurements (it sets the acquisition time for every step). Beside of the control fields, a plot pane is also present: here will be displayed the measured signal. The range of the axis is set automatically. The right part named Oscilloscope contains four drop-down lists for scope channel selection, setting coupling type, setting trigger edge, and setting probe attenuation (by default this is set to 1X, should be modified if BNC probes are used) and a numeric control to set the speed of the measurements (it sets the acquisition time for every step). Beside of the control fields, a plot pane is also present: here will be displayed the measured signal. The range of the axis is set automatically.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:analog_io_front_3.png?nolink&400 |}}+{{ reference:test-and-measurement:guides:analog_io_front_3.png?&400 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 423: Line 427:
 The axis ranges of the plot pane are also set here: the X axis is ranging from 0 to the starting period and the Y axis is set to display the full peak-to-peak range of the signal.   The axis ranges of the plot pane are also set here: the X axis is ranging from 0 to the starting period and the Y axis is set to display the full peak-to-peak range of the signal.  
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:analog_io_block_1.png?nolink&600 |}}+{{ reference:test-and-measurement:guides:analog_io_block_1.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
Line 430: Line 434:
 The loop also contains the **Run** block, which starts the Scope and takes a measurement, and a **Read** block connected to the indicator Analog Data, which is the plot pane on the Front Panel. The outgoing signals of this section are just the error signals and the instrument handles. The loop also contains the **Run** block, which starts the Scope and takes a measurement, and a **Read** block connected to the indicator Analog Data, which is the plot pane on the Front Panel. The outgoing signals of this section are just the error signals and the instrument handles.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:analog_io_block_2.png?nolink&600 |}}+{{ reference:test-and-measurement:guides:analog_io_block_2.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 If the loop is exited, both instruments are stopped and closed, to make them available for other software. The two error signals are merged and handled: an error message is displayed, if there were any errors during execution. If the loop is exited, both instruments are stopped and closed, to make them available for other software. The two error signals are merged and handled: an error message is displayed, if there were any errors during execution.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:getting-started-with-labview:analog_block_diagram_4.png?nolink&200 |}}+{{ :learn:instrumentation:tutorials:getting-started-with-labview:analog_block_diagram_4.png?&200 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 ---- ----
Line 442: Line 446:
 To run the VI, first, on the Front Panel select the Test and Measurement device used, set the attributes of the desired waveform and the parameters of the frequency sweep, then press the **Run** button. The measurement can be stopped at any time  with the **Stop** button, or is finished when the ending frequency is reached. To run the VI, first, on the Front Panel select the Test and Measurement device used, set the attributes of the desired waveform and the parameters of the frequency sweep, then press the **Run** button. The measurement can be stopped at any time  with the **Stop** button, or is finished when the ending frequency is reached.
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ reference:test-and-measurement:guides:analog_io_running.png?nolink&600 |}}+{{ reference:test-and-measurement:guides:analog_io_running.png?&600 |}}
 </WRAP></WRAP> </WRAP></WRAP>
 <WRAP group><WRAP column half> <WRAP group><WRAP column half>
 To to test the example , connect the Test and Measurement device's Oscilloscope Channel 1 pin (orange wire/circle) to the device's Wavegen Channel 1 output pin (yellow wire/circle). For devices that use differential input channels, such as the Analog Discovery 3 with MTE cables, make sure to connect the Oscilloscope Channel 1 negative pin (orange wire with white stripes) to the ground pin associated with Wavegen Channel 1 (black wire). To to test the example , connect the Test and Measurement device's Oscilloscope Channel 1 pin (orange wire/circle) to the device's Wavegen Channel 1 output pin (yellow wire/circle). For devices that use differential input channels, such as the Analog Discovery 3 with MTE cables, make sure to connect the Oscilloscope Channel 1 negative pin (orange wire with white stripes) to the ground pin associated with Wavegen Channel 1 (black wire).
 </WRAP><WRAP column half> </WRAP><WRAP column half>
-{{ :learn:instrumentation:tutorials:analog-discovery-studio-oscilloscope:scope-hw-setup.png?nolink&600 |}}+{{ :learn:instrumentation:tutorials:analog-discovery-studio-oscilloscope:scope-hw-setup.png?&600 |}}
 </WRAP> </WRAP>