Transcript Device
Yevgeny Petrilin
Shay Dan
Shadi Ibrahim
SOFTLAB PROJECT
MEASUREMENTS TOOL
TERMINOLOGY
GUI: Graphical User Interface
DAQ:Data Acquisition
Data Acquisition device
GPIB
General Purpose Interface Bus.
Sweep
a self-powered system that communicated with a computer through a standard or proprietary
interface
A continuous change of a parameter in an electronic system. Most often it refers to a frequency
sweep or the sweep of a voltage.
Difference measurements
MAIN GOAL
The main goal was to write a program that can performs Mega
sweep using limited types of devices
DAQ is the Main device and it is also able to read other devices input
It can generate voltage in a limited range
Devices can be configured either manually or via measurement tool
Devices can be connected to each other in a single experiment.
The program should enable :
Configuring each device output in the range of [-10:10][V]
Controlling the devices while doing the experiment, hence changing
output values.
Saving the experiment data into database in a convent format
MAIN PRINCIPLES
Programming language: C.
OOP principals (ADT).
Device Array – pointers to functions.
Read/Write settings.
Synchronization.
Project Requirements
And results
EASE OF USE REQUIREMENTS
The user should be able to set sweep details: source device, limits, rate
(up/down), increment, number of sweeps, details of the participating
devices, and units for viewing results.
The user should be able to store/load sweep configuration for anytime
reuse.
The user should be able to change the manner of the data graphical
presentation at sweep run time.
The user should be able to change sweep rate or direction at run time.
The user should be able to pause/ resume sweep.
The user should be able to stop and reset the sweep.
DAQ RELATED:
The application should be able to read input from the DAQ buffer.
The application should support any size of sweep.
The application should synchronize both reading and writing tasks in
order to associate data accordingly.
The application can read up to 16 channel's input in regular mode and
up to 8 channels in DIFF mode at the same time.
All the experiment’s data should be gathered without any lost,
regardless of the size.
Data gathered from the DAQ buffer should be stored in a file using
parallel thread.
GPIB RELATED
The application should identify all the connected devices to
the pc at run time.
The application should enable to choose the devices
participating in the experiment and configure their values.
The application should be able to communicate with the
devices listed below; the application should be able to
forward write-tasks to these devices.
Application should be able to pause/resume/stop or
change the devices state while doing the experiment.
DATA STRUCTURES
Device
Array
ADT Interface
Device
Specific Interface
Device specific
Methods:
•write
•read
•close
Create
Destroy
Set read state
Set write state
The process of adding a device
DAQ
Dev1
.
.
.
Device
Interface
write
read
close
pause
goto
___________
Read state
Write state
USING DATA STRUCTURES
The Interface for developer usage
Device
Array
DAQ
Dev1
.
.
.
Device
Interface
write
read
close
pause
goto
___________
Read state
Write state
Device 1
Specific Interface
Device specific
Methods:
•write
•read
•close
Device 2
Specific Interface
Device specific
Methods:
•write
•read
•close
SYNCHRONIZING WRITE PROCESS SCENARIO 1
DAQ as sweep Source device
Source write function instructs main device to write an array
of sequential values in an appropriate range at a given rate
Asynchronous call
Runs in main thread
Calls a DONE interrupt when the device when DAQ finishes given
write task
Done interrupt calls a method that waits until operation of
read and handling its results is done (Plot mainly)
Sets the flags for the next iteration in sweep
Sets the parameter for read/write in the next iteration
Executes the next iteration/ ends sweep
SYNCHRONIZING WRITE PROCESS SCENARIO 2
Yokogawa as sweep Source device
Source write function instructs main device to write an array
of sequential values in an appropriate range in a given time
Asynchronous call
Runs in main thread
DONE interrupt is implemented via thread which waits during given
execution time
Done interrupt calls a method that waits until operation of
read and handling its results is done (Plot mainly)
Sets the flags for the next iteration in sweep
Sets the parameter for read/write in the next iteration
Executes the next iteration/ ends sweep
SYNCHRONIZING READ PROCESS SCENARIO 1
•
DAQ as sweep Source device
Read
function initiates DAQ with the parameters
pulled from GUI
Read
operation is triggered by DAQ write function
Read clock is synchronized with output clock
It executes an interrupt function after every N samples it
read from input, each interrupt performs
Plotting results into GUI
Calling a thread which writes results into a specified file
•
READ IS ALWAYS CALLED BEFORE WRITE
SYNCHRONIZING READ PROCESS SCENARIO 2
•
DAQ is Not the sweep Source device
Read
function initiates DAQ with the parameters
pulled from GUI
Read
operation is not triggered, it starts when it is called
Read clock is synchronized with DAQ onboard clock
It executes an interrupt function after every N samples it
read from input, each interrupt performs
Plotting results into GUI
Calling a thread which writes results into a specified file
•
READ IS ALWAYS CALLED BEFORE WRITE
READ/WRITE INTERACTION SCENARIO 1
Main interface
DAQ interface
Read()
Every N samples
Worker
Thread
1
Read
Interrupt
Write next iter.
*
Plot graph/save results
Write()
Thread
Pool
2
Main
Thread
Worker
Thread
Write is Done, Wait until
read + plot is done
Write
Register Done
Done
Interrupt
Database
READ/WRITE INTERACTION SCENARIO 2
Main interface
DAQ interface
Read()
Register
EveryN
Thread
Pool
Worker
Thread
1
Read
Interrupt
Write next iter.
Every N samples
*
Plot graph/save results
Yokogawa interface
Write ()
Main
Thread
Worker
Thread
2
Write
Sleep duration
Worker
Thread
Write is Done, Wait until
read + plot is done
Database
SETTINGS
Data structure
Devices array
Additional outputs array (subset of device array)
Sweep configuration
•
•
•
Values taken from GUI
Values set by device interface
Runtime configuration
In order to perform operations during a sweep, participating
devices data will be pulled from settings database
Runtime flags
•
•
•
Sweep direction
Display mode
…
SEQUENCE DIAGRAM SCENARIO 1
Initiating measurement tool
Main
Physical Device*
Device
Specific Device
Collect info
Identity info
Create device[info]
Retrieve pointers
SEQUENCE DIAGRAM SCENARIO 2
Running a sweep with DAQ as source
Main
Device write
Settings
Device
DAQ
DAQ write
ok
Retrieve Sweep configurations
Device read
DAQ read
DAQ done write
Retrieve Next configurations
WRITTEN INTERFACES
DAQ
Handling
device as source
Retrieving read results from channels
Yokogawa
Device
as main source
Device as additional output
HP Agilent 363xx
Device
as additional output
LOGICAL VIEW
CONFIGURATION PANEL
Setting the DAQ inputs.
We need to Add the data manualy
according to the channels we
connected.
Load / save configurations.
Apply settings will send the
configurations instructions to the
devices through the GPIB
Configuring the main sweep
source.
Here we set the limitis, the rate
and the number of iterations
Adding Additional output.
Here we define the other devices
that participates the experiment.
The devices are selected from the
GPIB device list.
ADD ADDITIONAL SOURCE PANEL
EXPERIMENT PANEL
Examining sweep online results:
1. Viewing results
2. Manipulating graph
Sweep controls.
Start/stop/pause/resume.
Enables changing the rate or the
output value of the main device.
EXPERIMENT TAB
BOUNDARIES AND LIMITATIONS
Physical devices
Throughput
(Device capabilities VS. PC)
Output range (Yoko VS. DAQ)
Software related
Programming
language restrictions
Synchronization overhead
Workspace related
Various
kinds of platforms : uniform interface?