Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Subject Name:
Intelligent Instrumentation
MM: 50
Subject Code:
EIC012
Page 1
Page 2
One of the keys to creating LabVIEW applications is understanding and using the hierarchical nature of the
VI. Therefore, a subVI is analogous to a subroutine in C. Just as there is no limit to the number of
subroutines in a C program, there is no limit to the number of subVIs used in a LabVIEW program. subVI
can be called inside another subVI. Construct subVIs to perform the necessary operations on the data as it
flows through the block diagram. If a block diagram has a large number of icons, group them into a lowerlevel VI to maintain the simplicity of the block diagram. This modular approach makes applications easy to
debug, understand, and maintain.
The created VI will reflect by icon within the block diagram that represents the subVI. SubVIs can be
customize as a same icon in the upper right corner of the subVI front panel and block diagram.
Q6. Describe clusters, charts and graphs.
Answer:
Clusters group data elements of mixed types. An example of a cluster is the LabVIEW error cluster, which
combines a Boolean value, a numeric value, and a string. A cluster is similar to a record or a struct in textbased programming languages. Similar to arrays, a cluster is either a control or an indicator and cannot
contain a mixture of controls and indicators. The difference between clusters and arrays is that a particular
cluster has a fixed size, where a particular array can vary in size. Also, a cluster can contain mixed data
types, but an array can contain only one data type.
Graphs and charts differ in the way they display and update data. VIs with graphs usually collect the data
in an array and then plot the data to the graph, which is similar to a spread sheet that first stores the data
then generates a plot of it. In contrast, a chart appends new data points to those already in the display to
create a history. On a chart, you can see the current reading or measurement in context with data previously
acquired.
Waveform Graphs and ChartsDisplay data typically acquired at a constant rate.
XY GraphsDisplay data acquired at a non-constant rate and data for multivalued functions.
Intensity Graphs and ChartsDisplay 3D data on a 2D plot by using color to display the values of the
third dimension.
Digital Waveform GraphsDisplay data as pulses or groups of digital lines.
2D GraphsDisplay 2D data on a 2D front panel plot.
3D GraphsDisplay 3D data on a 3D front panel plot.
Q7. What is current status of intelligent instrumentation? Discuss.
Answer: The latest status of intelligent system may not require general computer to compute complex
analysis. There will be dedicated systems which can take care all complex analysis and decision. In fact it
may not in the size of general computer. Example: Humanoid Robots, Control in Nuclear power plant,
Control in Satellites etc. If the intelligent system is used in industry like control and monitoring, then it
may be in a form of network. To control the network, we will be requiring a dedicated software like
LABVIEW, SCADA, DCS etc. Also NI LabVIEW has been used by millions of engineers and scientists to
develop sophisticated test, measurement, and control applications. While LabVIEW provides a variety of
features and tools ranging from interactive assistants to configurable user-defined interfaces, it is
differentiated by its graphical, general-purpose programming language (known as G) along with an
associated integrated compiler, a linker, and debugging tools.
Q8. What is LabVIEW? Explain with suitable diagram all the main components of LabVIEW.
Page 3
Answer:
LabVIEW
Laboratory Virtual Instrument Engineering Workbench
Graphical programming language that allows for instrument control, data acquisition, and pre/post
processing of acquired data.
LabVIEW is a graphical programming language that uses icons instead of lines of text to create
applications.
In contrast to text-based programming languages, where
instructions determine program execution, LabVIEW
uses dataflow programming, where data determine
execution.
In LabVIEW, you build a user interface by using a set of
tools and objects.
The user interface is known as the front panel. You then
add code using graphical representations of functions to
control the front panel objects.
The block diagram contains this code. If organized properly, the block diagram resembles a
flowchart.
LabVIEW programs are called virtual instruments, or VIs, because their appearance and operation
imitate physical instruments, such as oscilloscopes and multimeters.
Main Components of LabVIEW:
1) Front Panel
2) Block diagram
3) Icon/Connector
Front Panel
The front panel is the user interface of the VI. You build the front panel with controls and
indicators, which are the interactive input and output terminals of the VI, respectively.
Controls are knobs, push buttons, dials, and other input devices. Indicators are graphs, LEDs, and
other displays.
Controls simulate instrument input devices and supply data to the block diagram of the VI.
Indicators simulate instrument output devices and display data the block diagram acquires or
generates.
Block Diagram
After you build the front panel, you add code using
graphical representations of functions to control the
front panel objects.
The block diagram contains this graphical source
code.
Front panel objects appear as terminals on the block
diagram.
You cannot delete a terminal from the block
diagram. The terminal disappears only after you
delete its corresponding object on the front panel.
Every control or indicator on the front panel has a corresponding terminal on the block diagram.
Additionally, the block diagram contains functions and structures from built-in LabVIEW VI
libraries.
Wires connect each of the nodes on the block diagram, including control and indicator terminals,
functions and structures.
Prof. Mritunjay Rai
Page 4
Tools palette
The Tools palette is available on the front panel and the block
diagram.
A tool is a special operating mode of the mouse cursor. When you
select a tool, the cursor icon changes to the tool icon.
Use the tools to operate and modify front panel and block diagram
objects.
Select View Tools Palette from the taskbar to display the Tools
palette.
Controls palette
The Controls palette is only available on the front panel. The Controls palette contains the front
panel controls and indicators you use to create the user interface.
Select View Controls Palette or right-click the front panel workspace to display the Controls
palette.
Functions palette
The Functions palette is available only on the block diagram. The Functions palette contains the
objects you use to program your VI, such as arithmetic, instrument I/O, file I/O, and data
acquisition operations.
Select View Functions Palette from the taskbar or right-click the block diagram workspace to
display the Functions palette.
Q9. Explain with suitable diagram what is formula node? Also build a VI showing how to
concatenate an input string?
Answer:
Prof. Mritunjay Rai
Page 5
Formula Node
The Formula Node is a resizable box that you can use to enter formulas directly into a block diagram. You
place the Formula Node on the block diagram by selecting it from FunctionStructures. This feature is
useful when an equation has many variables or is otherwise complicated.
For example:
consider the equation: y = x2 + x + 1.
If you implement this equation using regular LabVIEW arithmetic
functions, the block diagram looks like the one in the following
illustration. You can implement the same equation using a Formula
Node, as shown in the following illustration.
With the Formula Node, you can directly enter a complicated formula,
or formulas, in lieu of creating block diagram subsections. You enter
formulas with the Labeling tool. You create the input and output
terminals of the Formula Node by popping up on the border of the
node and choosing Add Input (Add Output). Type the variable
name in the box. Variables are case sensitive. You enter the formula
or formulas inside the box. Each formula statement must end with a
semicolon (;).
Q10. Describe the features of Intelligent Instrumentation and give the block diagram of Intelligent
Instrumentation system.
Answer:
Page 6
Page 7
Answer:
LabVIEW has four structures: the While Loop, the For Loop,
the Case structure, and the Sequence structure. A while loop is
a control flow statement you use to execute a block of the
subdiagram code repeatedly until a given Boolean condition is
met. First, you execute the code within the subdiagram, and
then the conditional terminal is evaluated. Unlike a for loop, a
while loop does not have a set iteration count; thus, a while
loop executes indefinitely if the condition never occurs.
A for loop is a control flow statement you use to execute a block of the subdiagram code a set number of
times, but a while loop stops executing the subdiagram only if the value at the conditional terminal exists.
Building a While Loop
1. Open a new VI. You can open a blank VI by selecting FileNew VI
2. If the Functions palette is not visible, right-click any blank space on the block diagram to display a
temporary version of the palette. Click the thumbtack in the upper left corner of the Functions palette to pin
the palette so it is no longer temporary.
3. Select the while loop from the Structures palette under the
Functions palette.
4. Use the cursor to drag a selection rectangle around the
section of the block diagram you want to repeat.
5. When you release the mouse button, a while loop boundary
encloses the section you have selected.
6. Place a Stop button on the front panel. You can find this
under Controls PaletteBooleanStop.
7. Add the Stop button from the block diagram to the while loop
by dragging and dropping it inside the while loop.
8. The conditional terminal, shown below, defines when the loop
stops. There are two settings for the conditional terminal:
Continue if True and Stop if True. When set to continue if True,
the while loop runs only if a Boolean value of true is sent to the
terminal. If the conditional terminal is set to Stop if True, and a
Boolean value of true is sent to the conditional terminal, the loop
halts execution.
9. To switch the conditional terminal between Continue if True and Stop if True, right-click on the
conditional terminal and check the corresponding setting.
10. Wire the Stop button to the conditional terminal so that you can control the execution of the while loop.
When the Stop button is pressed, a true value is passed to the conditional terminal causing the while loop to
stop execution. You can wire any Boolean data to the conditional terminal to control the execution of a
while loop.
11. The iteration terminal is an output terminal that contains the number of completed iterations. The
iteration count always starts at zero. During the first iteration, the iteration terminal returns 0.
12. You have just created a simple while loop that generates random numbers and displays them until the
Stop button is pressed.
Page 8
5. A for loop contains a count terminal. The count terminal dictates how
many times the subdiagram is executed.
6. Right-click on the count terminal and Create Constant to link the count
terminal with a numeric value.
7. By inserting 100 into the numeric constant, the for loop executes 100 times
before stopping.
8. The iteration terminal, shown as follows, is an output terminal that contains the
number of completed iterations. The example below would update an indicator on the
front panel with the current iteration number.
Q13. Write a short note on GPIB/IEEE-488.
(5 Marks GBTU 2013-14)
Answer:
IEEE-488 is a short-range digital communications bus specification. It was created for use with automated
test equipment in the late 1960s, and is still in use for that purpose. IEEE-488 was created as HP-IB
(Hewlett-Packard Interface Bus), and is commonly called GPIB (General Purpose Interface Bus). It
has been the subject of several standards.The IEEE-488 interface bus, also known as the General Purpose
Interface Bus "GPIB" is an 8 bit wide byte serial, bit parallel interface system which incorporates: 5 control
lines 3 handshake lines 8 bi-directional data lines. The entire bus consists of 24 lines, with the remaining
lines occupied by ground wires. Additional features include: TTL logic levels (negative true logic), the
ability to communicate in a number of different language formats, and no minimum operational transfer
limit. The maximum data transfer rate is determined by a number of factors, but is assumed to be 1Mb/s.
Devices exist on the bus in any one of 3 general forms:
1. Controller
2. Talker
3. Listener
Page 9
A single device may incorporate all three options, although only one option may be active at a time. The
Controller makes the determination as to which device becomes active on the bus. The GPIB can handle
only 1 active controller on the bus, although it may pass operation to another controller. Any number of
active listeners can exist on the bus with an active talker as long as no more then 15 devices are connected
to the bus. The controller determines which devices become active by sending interface messages over the
bus to a particular instrument. Each individual device is associated with a 5 bit BCD code which is unique
to that device. By using this code, the controller can coordinate the activities on the bus and the individual
devices can be made to talk, listen (un-talk, un-listen) as determined by the controller. A controller can
only select a particular function of a device, if that function is incorporated within the device; for example
a listen only device cannot be made to talk to the controller.
The Talker sends data to other devices. The Listener receives the information from the Talker.
In
addition to the 3 basic functions of the controller, talker, and listener the system also incorporates a number
of operational features, such as; serial poll, parallel poll, secondary talk and listen addresses, remote/local
capability, and a device clear (trigger).
Device dependent messages are moved over the GPIB in
conjunction with the data byte transfer control lines. These three lines (DAV, NRFD, and NDAC) are used
to form a three wire interlocking handshake which controls the passage of data. The active talker would
control the DAV line (Data Valid) and the listener(s) would control the NRFD (Not Ready For Data),
and the NDAC (Not Data Accepted) line.
Q14. Write a short note on PXI.
Answer:
PCI eXtensions for Instrumentation (PXI) is a rugged PC-based platform that offers a high-performance,
low-cost deployment solution for measurement and automation systems. PXI combines the Peripheral
Component Interconnect (PCI) electrical bus with the rugged, modular Eurocard mechanical packaging of
CompactPCI and adds specialized synchronization buses and key software features. PXI also adds
mechanical, electrical, and software features that define complete systems for test and measurement, data
acquisition, and manufacturing applications. These systems serve applications such as manufacturing test,
military and aerospace, machine monitoring, automotive, and industrial test. PXI has also incorporated
higher bus bandwidth capabilities with the introduction of PXI Express. The chassis provides the rugged
and modular packaging for the system. Chassis generally are available in 4-, 6-, 8-, 14-, and 18-slot. The
chassis contains the high-performance PXI backplane, which includes the PCI bus and timing and
triggering buses. PXI modular instrumentation adds a dedicated 10 MHz system reference clock, PXI
trigger bus, star trigger bus, and slot-to-slot local bus to address the need for advanced timing,
synchronization, and sideband communication while not losing any PCI advantages.
PXI Timing and Triggering Buses PXI combines industry-standard PC components, such as the PCI bus,
with advanced triggering and synchronization extensions on the backplane.
Building on PXI capabilities, PXI Express provides the
additional timing and synchronization features of a 100
MHz differential system clock, differential signaling, and
differential star triggers. By using differential clocking and
synchronization, PXI Express systems benefit from
increased noise immunity for instrumentation clocks and
the ability to transmit at higher-frequency rates.
Most PXI chassis contain a system controller slot in the
leftmost slot of the chassis (slot 1). You can choose from a
few options when determining the best system controller
Prof. Mritunjay Rai
Page 10
for an application, including remote controllers from a desktop, workstation, server, or laptop computer and
high-performance embedded controllers with either a Microsoft OS (Windows 7/Vista/XP) or a real-time
OS (LabVIEW Real-Time). The two types of controller options are laptop control of PXI and PC control of
PXI.
PXI
Embedded
Controllers Embedded
controllers eliminate the need for an external PC,
therefore providing a complete system contained
within the PXI chassis. These embedded controllers
come with standard features such as an integrated
CPU, hard drive, RAM, Ethernet, video,
keyboard/mouse, serial, USB, and other peripherals,
as well as Microsoft Windows and all device drivers
already installed. They are available for systems
based on PXI or PXI Express, and you have your
choice of OSs, including Windows 7/Vista/XP or
LabVIEW Real-Time. PXI embedded controllers are typically built using standard PC components in a
small, PXI package. For example, the NI PXIe-8133 controller has a 1.73 GHz quad-core Intel Core i7-820
processor (3.06 GHz maximum in single-core, Turbo Boost mode), up to 8 GB of DDR3 RAM, the option
of hard-disk drive or solid-state drive, two Gigabit Ethernet ports, and standard PC peripherals such as HiSpeed USB, Express Card/34, serial, and parallel ports.
Q15. Write a short note on operating system for Instrumentation.
Answer:
An operating system (OS) is software, consisting of programs and data, that runs on computers and
manages computer hardware resources and provides common services for efficient execution of various
application software. For hardware functions such as input and output and memory allocation, the
operating system acts as an intermediary between application programs and the computer hardware,
although the application code is usually executed directly by the hardware, but will frequently call the OS
or be interrupted by it. Operating systems are found on almost any device that contains a computerfrom
cellular phones and video game consoles to supercomputers and web servers.
Examples of popular modern operating systems for personal computers are Microsoft Windows, Mac OS
X, and GNU/Linux.
Early computers were built to perform a series of single tasks, like a calculator. Operating systems did not
exist in their modern and more complex forms until the early 1960s. Some operating system features were
developed in the 1950s, such as monitor programs that could automatically run different application
programs in succession to speed up processing. Hardware features were added that enabled use of runtime
libraries, interrupts, and parallel processing. When personal computers by companies such as Apple Inc.,
Atari, IBM and Amiga became popular in the 1980s, vendors added operating system features that had
previously become widely used on mainframe and mini computers. Later, many features such as graphical
user interface were developed specifically for personal computer operating systems.
An operating system consists of many parts. One of the most important components is the kernel, which
controls low-level processes that the average user usually cannot see: it controls how memory is read and
written, the order in which processes are executed, how information is received and sent by devices like the
monitor, keyboard and mouse, and decides how to interpret information received from networks. The user
interface is a component that interacts with the computer user directly, allowing them to control and use
programs. The user interface may be graphical with icons and a desktop, or textual, with a command line.
Application programming interfaces provide services and code libraries that let applications developers
Prof. Mritunjay Rai
Page 11
write modular code reusing well defined programming sequences in user space libraries or in the operating
system itself. Which features are considered part of the operating system is defined differently in various
operating systems. For example, Microsoft Windows considers its user interface to be part of the operating
system, while many versions of Linux do not.Microsoft Windows is a family of proprietary operating
systems most commonly used on personal computers. It is the most common family of operating systems
for the personal computer, with about 90% of the market share. Currently, the most widely used version of
the Windows family is Windows XP, released on October 25, 2001. The newest version is Windows 7 for
personal computers and Windows Server 2008 R2 for servers.
Microsoft Windows originated in 1981 as an add-on to the older MS-DOS operating system for the IBM
PC. First publicly released in 1985, Windows came to dominate the business world of personal computers,
and went on to set a number of industry standards and commonplace applications. Beginning with
Windows XP, all modern versions are based on the Windows NT kernel. Current versions of Windows run
on IA-32 and x86-64 processors, although older versions sometimes supported other architectures.
Windows is also used on servers, supporting applications such as web servers and database servers. In
recent years, Microsoft has spent significant marketing and research & development money to demonstrate
that Windows is capable of running any enterprise application, which has resulted in consistent
price/performance records (see the TPC) and significant acceptance in the enterprise market. However, its
usage in servers is not as widespread as personal computers, and here Windows actively competes against
Linux and BSD for market share, while still capturing a steady majority by some accounts.
Q16. Explain what are the data Sockets and how it can be used in DAQ devices for communicating
the data.
Answer:
A socket is a software endpoint that establishes bidirectional communication between a server program and
one or more client programs. The socket associates the server program with a specific hardware port on the
machine where it runs so any client program anywhere in the network with a socket associated with that
same port can communicate with the server program. A server program typically provides resources to a
network of client programs. Client programs send requests to the server program, and the server program
responds to the request. A socket address is the combination of an IP address (the location of the computer)
and a port (which is mapped to the application program process) into a single identity, much like one end
of a telephone connection is the combination of a phone number and a particular extension.
An Internet socket is characterized by a unique combination of the following:
Within the operating system and the application that created a socket, the socket is referred to by a unique
integer number called socket identifier or socket number. The operating system forwards the payload of
Prof. Mritunjay Rai
Page 12
incoming IP packets to the corresponding application by extracting the socket address information from the
IP and transport protocol headers and stripping the headers from the application data.
These are examples of functions or methods typically provided by the API library:
socket() creates a new socket of a certain socket type, identified by an integer number, and allocates
system resources to it.
bind() is typically used on the server side, and associates a socket with a socket address structure, i.e. a
specified local port number and IP address.
listen() is used on the server side, and causes a bound TCP socket to enter listening state.
connect() is used on the client side, and assigns a free local port number to a socket. In case of a TCP
socket, it causes an attempt to establish a new TCP connection.
accept() is used on the server side. It accepts a received incoming attempt to create a new TCP
connection from the remote client, and creates a new socket associated with the socket address pair of
this connection.
send() and recv(), or write() and read(), or recvfrom() and sendto(), are used for sending and receiving
data to/from a remote socket.
Close() causes the system to release resources allocated to a socket. In case of TCP, the connection is
terminated.
gethostbyname() and gethostbyaddr() are used to resolve host names and addresses.
select() is used to prune a provided list of sockets for those that are ready to read, ready to write or
have errors
poll() is used to check on the state of a socket. The socket can be tested to see if it can be written to,
read from or has errors.
Page 13
The transducer module converts non-electric environmental input signals into analogous electric signals.
The data acquisition (DAQ) module contains one or more analog-to-digital converters (ADCs), which
sample the analog input signals and quantize the samples into binary coded (digital) signals. A bidirectional
system also contains at least one digital-to-analog converter (DAC) and a transducer that can convert
analog signals back to the corresponding environmental signals.
The DAQ-DSP connection is described in detail in this paper. The DSP-host computer connection is
described in Motorola application note, ECP Standard Parallel Interface for DSP56300 Devices
Q18. Write a short note on ISA
Answer:
Industry Standard Architecture (ISA) is a retronym term for the 16-bit internal bus of IBM PC/AT and
similar computers based on the Intel 80286 and its immediate successors during the 1980s. The bus was
(largely) backward compatible with the 8-bit bus of the 8088-based IBM PC, including the IBM PC/XT as
well as IBM PC compatibles. Originally referred to as the PC/AT-bus it was also termed I/O Channel by
IBM. The ISA concept was coined by competing PC-clone manufacturers in the late 1980s or early 1990s
as a reaction to IBM attempts to replace the AT-bus with its new and incompatible architecture. The 16-bit
ISA bus was used also with 32-bit processors for several years. An attempt to extend it to 32 bits, called
Extended Industry Standard Architecture (EISA), was not very successful. Later buses such as VESA
Local Bus and PCI were used instead, often along with ISA slots on the same mainboard. A derivative of
the AT bus structure is still used in the PCMCIA standard, Compact Flash, the PC/104 bus, and internally
within Super I/O chips.
Q19. Write a short note on DMA.
Answer:
Direct memory access (DMA) is a feature of modern computers and microprocessors that allows certain
hardware subsystems within the computer to access system memory for reading and/or writing
independently of the central processing unit. Many hardware systems use DMA including disk drive
controllers, graphics cards, network cards and sound cards. DMA is also used for intra-chip data transfer in
multi-core processors, especially in multiprocessor system-on-chips, where its processing element is
equipped with a local memory (often called scratchpad memory) and DMA is used for transferring data
between the local memory and the main memory. Computers that have DMA channels can transfer data to
and from devices with much less CPU overhead than computers without a DMA channel. Similarly a
processing element inside a multi-core processor can transfer data to and from its local memory without
occupying its processor time and allowing computation and data transfer concurrency.
The DMA controller mega function is designed for data
transfer in different system environments. Two module
typestype 0 and type 1are provided, and the user can
choose the number of each module type. Type 0 modules
are designed to transfer data residing on the same bus, and
Type 1 modules are designed to transfer data between two
different buses. Each module can support up to 4 DMA
channels; the mega function supports up to 16 total DMA
channels. Each DMA channel can be programmed for
various features, such as transfer size, synchronized and
unsynchronized transfer control, transfer priority, interrupt
generation, memory and I/O address space, and address
Prof. Mritunjay Rai
Page 14
change direction. This mega function is designed to work with 32-bit and 64-bit bus systems, including the
PCI bus, PowerPC bus, and other CPU host buses. It can also be integrated with other mega functions to
form a complete functional block.
Q20. Write a short Note on Interfacing methods of DAQ.
Answer:
DAQ hardware acts as the interface between a computer and signals from the outside world. It primarily
functions as a device that digitizes incoming analog signals so that a computer can interpret them. The
three key components of a DAQ device used for measuring a signal are the signal conditioning circuitry,
analog-to-digital converter (ADC), and computer bus. Many DAQ devices include other functions for
automating measurement systems and processes. For example, digital-to-analog converters (DACs) output
analog signals, digital I/O lines input and output digital signals, and counter/timers count and generate
digital pulses.
Q21. Explain Data Acquisition system with proper block diagram.
Answer:
Data acquisition (DAQ) is the process of measuring an
electrical or physical phenomenon such as voltage,
current, temperature, pressure, or sound with a computer.
A DAQ system consists of sensors, DAQ measurement
hardware, and a computer with programmable software.
Compared to traditional measurement systems, PC-based
DAQ systems exploit the processing power, productivity,
display, and connectivity capabilities of industry-standard
computers providing a more powerful, flexible, and costeffective measurement solution.
Key Measurement Components of a DAQ Device
Signal Conditioning
Signals from sensors or the outside world can be noisy or too dangerous to measure directly. Signal
conditioning circuitry manipulates a signal into a form that is suitable for input into an ADC. This circuitry
can include amplification, attenuation, filtering, and isolation. Some DAQ devices include built-in signal
conditioning designed for measuring specific types of sensors.
Analog-to-Digital Converter (ADC)
Analog signals from sensors must be converted into digital before they are manipulated by digital
equipment such as a computer. An ADC is a chip that provides a digital representation of an analog signal
at an instant in time. In practice, analog signals continuously vary over time and an ADC takes periodic
Page 15
samples of the signal at a predefined rate. These samples are transferred to a computer over a computer
bus where the original signal is reconstructed from the samples in software.
Q22. Describe analog and digital data acquisition method.
Answer:
DAQ hardware without software is of little use-and without proper controls the hardware can be very
difficult to program. The purpose of having appropriate software is the following:
In the following figure a complete DAQ system with LabVIEW is shown. The driver software is a lower
level driver that interfaces LabVIEW software with the DAQ boards. As a user of LabVIEW one does not
have to worry about configuration and control of components within DAQ boards. LabVIEW identifies
each board by a device number and therefore one can have as many devices as many as the computer can
accept on their expansion slots. LabVIEW can also combine and display inputs from various sources like
inputs from serial and parallel port, data acquisition board (s), and GPIB boards on a single interface as
shown in the figure below.
Q23. Explain the different analysis techniques used in intelligent instrumentation. Also comment on
DSP software used in instrumentation system.
(5 Marks GBTU 2013-14)
Answer:
DSP Tools specializes in the development of custom hardware, software, and signal processing algorithms.
DSP Tools capabilities include MATLAB, FPGA design, digital signal processing hardware and
algorithms, embedded processors, printed circuit board schematic design, layout, and rapid prototyping.
DSP Tools also writes the device drivers and DLL's needed to stream data into and out of the PC.DSP
Tools is particularly experienced in communication signal analysis and digital signal processing. The DSP
algorithms may be implemented in an FPGA, a DSP processor, or using MATLAB on a PC. The devices
we have designed sometimes include one or more TI DSPs, FPGAs, Ethernet, or USB interfaces, and highspeed A/D and D/A converters. DSP Tools has designed for biomedical, direct broadcast satellite (DBS),
test equipment, software defined radio, radio signal analysis, and SIGINT applications.
Clients often need our services to bridge the gap between their area of expertise and the capabilities of
MATLAB. For example, a biomedical company may be strong in chemistry but weaker in the ability to
develop electronics for acquiring data and getting it into MATLAB for analysis. The DSP Tools staff has
many years of experience using MATLAB and helping scientists implement their ideas using MATLAB.
Industries and Tasks
Page 16
Instrumentation
MATLAB Programming
Signal Processing
Algorithms for DSP Applications
Signal Processing Block set provides important signal processing functions that serve as building blocks of
signal processing systems in communications, audio, speech, medical, and industrial applications.All
algorithms in the block set, whether implemented as System objects or Simulink blocks, support doubleprecision and single-precision floating-point data types. Most also support integer and fixed-data point data
types.
Signal Processing Algorithms
Key categories of algorithms in the block set include:
Signal operations such as convolution, windowing, padding, modeling delays, peak finding, and zerocrossing
Signal transforms such as fast Fourier transform (FFT), discrete cosine transform (DCT), short-time
Fourier transform, and discrete wavelet transform (DWT)
Filter design and implementation methods for digital FIR and IIR filters
Statistical signal processing functions for signal statistics and spectral estimation
Signal management methods such as buffering, indexing, switching, stacking, and queuing
Linear algebra routines including linear system solvers, matrix factorizations, and matrix inverses
Scalar and vector quantizer encoding and decoding
Q24. Explain sequence and Case structure used in LabVIEW.
Answer:
Case, Stacked Sequence, Flat Sequence, and Event structures contain multiple subdiagrams. A Case
structure executes one subdiagram depending on the input value passed to the structure. A Stacked
Sequence structure and a Flat Sequence structure execute all their subdiagrams in sequential order.
An Event structure executes its subdiagrams depending on how the user interacts with the VI.
Case Structures
A Case structure, shown as follows, has two or more subdiagrams, or cases.
Only one subdiagram is visible at a time, and the structure executes only one case at a time. An input value
determines which subdiagram executes. The Case structure is similar to switch statements or if...then...else
statements in text-based programming languages. The case selector label at the top of the Case structure,
shown as follows, contains the name of the selector value that corresponds to the case in the center and
decrement and increment arrows on each side.
Page 17
Click the decrement and increment arrows to scroll through the available cases. You also can click the
down arrow next to the case name and select a case from the pull-down menu.Wire an input value, or
selector, to the selector terminal, shown as follows, to determine which case executes.
You must wire an integer, Boolean value, string, or enumerated type value to the selector terminal. You
can position the selector terminal anywhere on the left border of the Case structure. If the data type of the
selector terminal is Boolean, the structure has a True case and a False case. If the selector terminal is an
integer, string, or enumerated type value, the structure can have any number of cases.
Sequence Structures
A sequence structure contains one or more subdiagrams, or frames, that execute in sequential order. Within
each frame of a sequence structure, as in the rest of the block diagram, data dependency determines the
execution order of nodes.
There are two types of sequence structuresthe Flat Sequence structure and the Stacked Sequence
structure. Use sequence structures sparingly because they hide code. Rely on data flow rather than
sequence structures to control the order of execution. With sequence structures, you break the left-to-right
data flow paradigm whenever you use a sequence local variable.
The tunnels of a sequence structure can have only one data source, unlike Case structures. The output can
emit from any frame. If you use a Flat Sequence structure, the data from outside the sequence structure
enters the frame as each frame executes. The data leaves the frame after the frame executes. If you use a
Stacked Sequence structure, the structure does not start to execute until all data wired to the structure
arrives. The data wired from each frame leaves only when all the frames complete execution. As with Case
structures, data at input tunnels is available to all frames in either the Flat Sequence or the Stacked
Sequence structure.
Flat Sequence Structure
The Flat Sequence structure, shown as follows, executes frames from left to right and when all data values
wired to a frame are available. The data leaves each frame as the frame finishes executing. This means the
input of one frame can depend on the output of another frame.
Unlike in the Stacked Sequence structure, you do not need to use sequence locals to pass data from frame
to frame in the Flat Sequence structure. Since the Flat Sequence structure displays each frame on the block
diagram, you can wire from frame to frame without sequence locals and without hiding code.
To convert a Flat Sequence structure to a Stacked Sequence structure, right-click the Flat Sequence
structure and select Replace with Stacked Sequence from the shortcut menu. If you change a Flat
Sequence to a Stacked Sequence and then back to a Flat Sequence, LabVIEW moves all input
terminals to the first frame of the sequence. The final Flat Sequence operates the same as the
Stacked Sequence. After you change the Stacked Sequence to a Flat Sequence with all input
terminals on the first frame, you can move wires to where they were located in the original Flat
Sequence.
To convert a Flat Sequence structure to a Timed Sequence structure, right-click the Flat Sequence
structure and select Replace with Timed Sequence from the shortcut menu.
Stacked Sequence Structure
The Stacked Sequence structure, shown as follows, stacks each frame so you see only one frame at a time
and executes frame 0, then frame 1, and so on until the last frame executes.
Prof. Mritunjay Rai
Page 18
The Stacked Sequence structure returns data only after the last frame executes. Use the Stacked Sequence
structure if you want to conserve space on the block diagram.
Q25. Explain Arrays used in LabVIEW.
Answer:
Arrays
An array consists of elements and dimensions. Elements are the data that make up the array. A dimension
is the length, height, or depth of an array. An array can have one or more dimensions and as many as (2 31)
1 elements per dimension, memory permitting.
You can build arrays of numeric, Boolean, path, string, waveform, and cluster data types. Consider using
arrays when you work with a collection of similar data and when you perform repetitive computations.
Arrays are ideal for storing data you collect from waveforms or data generated in loops, where each
iteration of a loop produces one element of the array. You can export data from arrays to locations such as
Microsoft Excel. Right-click an array and select Export from the shortcut menu to view available export
options.
Examples of Arrays
An example of a simple array is a text array that lists the
eight planets of our solar system. LabVIEW represents this
as a 1D array of strings with eight elements.
Array elements are ordered. An array uses an index so you
can readily access any particular element. The index is
zero-based, which means it is in the range 0 to n 1,
where n is the number of elements in the array. For
example, n = 8 for the eight planets, so the index ranges
from 0 to 7. Earth is the third planet, so it has an index of 2.
Another example of an array is a waveform represented as a
numeric array in which each successive element is the
voltage value at successive time intervals, as shown in the
following illustration.
A more complex example of an array is a graph represented
as an array of points where each point is a cluster containing
a pair of numeric values that represent the X and Y
coordinates, as shown in the following illustration.
The previous examples use 1D arrays. A 2D array stores
elements in a grid. It requires a column index and a row
index to locate an element, both of which are zero-based.
The following illustration shows an 8 column by 8 row 2D
array, which contains 8 8 = 64 elements.
For example, a chessboard has eight columns and eight rows
for a total of 64 positions. Each position can be empty or
have one chess piece. You can represent a chessboard as a
Prof. Mritunjay Rai
Page 19
2D array of strings. Each string is the name of the piece that occupies the corresponding location on the
board or an empty string if the location is empty.
Creating Array Controls, Indicators, and Constants
Create an array control or indicator on the front panel by
adding an array shell to the front panel, as shown in the
following front panel, and dragging a data object or element,
which can be a numeric, Boolean, string, path, refnum, or
cluster control or indicator, into the array shell. The array
shell automatically resizes to accommodate the new object.
To create an array constant on the block diagram, select an array constant on the Functions palette, place
the array shell on the block diagram, and place a string constant, numeric constant, a Boolean constant, or
cluster constant in the array shell. You can use an array constant to store constant data or as a basis for
comparison with another array.
Page 20