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?