Yevgeny Petrilin Shay Dan Shadi Ibrahim. GUI : Graphical User Interface DAQ :Data Acquisition Data...
-
date post
19-Dec-2015 -
Category
Documents
-
view
215 -
download
3
Transcript of Yevgeny Petrilin Shay Dan Shadi Ibrahim. GUI : Graphical User Interface DAQ :Data Acquisition Data...
SOFTLAB PROJECT MEASUREMENTS TOOL
Yevgeny PetrilinShay DanShadi Ibrahim
TERMINOLOGY
GUI: Graphical User Interface DAQ:Data Acquisition Data Acquisition device
a self-powered system that communicated with a computer through a standard or proprietary interface
GPIB General Purpose Interface Bus.
Sweep 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 RequirementsAnd 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
DAQ
Dev1
.
.
.
writereadclosepausegoto
___________Read stateWrite state
DeviceInterface
CreateDestroySet read stateSet write state
ADT Interface
Device specific Methods:• write• read• close
Device Specific Interface
The process of adding a device
The Interface for developer usage
USING DATA STRUCTURES
Device Array
DAQ
Dev1
.
.
.
writereadclosepausegoto
___________Read stateWrite state
DeviceInterface
Device specific Methods:• write• read• close
Device 1 Specific Interface
Device specific Methods:• write• read• close
Device 2 Specific Interface
SCENARIO 1 SYNCHRONIZING WRITE PROCESS
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
SCENARIO 2 SYNCHRONIZING WRITE PROCESS
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 GUIRead operation is triggered by DAQ write
functionRead 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 GUIRead operation is not triggered, it starts when it
is calledRead 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
Main interfaceDAQ interface
Read)(
Write)(
READ/WRITE INTERACTION SCENARIO 1
Main Thread
Thread Pool
Database
Read Interru
pt
DAQ
Done Interru
pt
Register Done
Worker
Thread
Worker
Thread
Every N samples
Plot graph/save results
Write next iter.
Write
Write is Done, Wait until read + plot is done
1
2
*
Yokogawa interface
Write)(
Write)(
Main interfaceDAQ interface
Read)(
READ/WRITE INTERACTION SCENARIO 2
Main Thread
Thread Pool
Database
Read Interru
pt
DAQ
Register EveryN
Worker
Thread
Worker
Thread
Every N samples
Plot graph/save results
Write next iter.
Write
Write is Done, Wait until read + plot is done
1
2
*
Worker
Thread
Sleep duration
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 toolMain Physical Device*
Collect info
Identity info
Device
Create device[info]
Specific Device
Retrieve pointers
SEQUENCE DIAGRAM SCENARIO 2
Running a sweep with DAQ as source
Main Device write
ok
Device DAQDAQ write
DAQ readDevice read
DAQ done write
Settings
Retrieve Next configurations
Retrieve Sweep 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
Configuring the main sweep source.
Here we set the limits, 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.
Setting the DAQ inputs.We need to Add the data manually
according to the channels we connected .
Load / save configurations.
Apply settings will send the configurations instructions to the
devices through the GPIB
ADD ADDITIONAL SOURCE PANEL
EXPERIMENT PANEL
Sweep controls.Start/stop/pause/resume .
Enables changing the rate or the output value of the main device.
Examining sweep online results:1. Viewing results2. Manipulating graph
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?