260 likes | 399 Views
Yevgeny Petrilin Shay Dan Shadi Ibrahim. Softlab Project Measurements Tool. 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
E N D
Yevgeny Petrilin Shay Dan Shadi Ibrahim Softlab ProjectMeasurements Tool
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 TERMINOLOGY
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 goal
Programming language: C. • OOP principals (ADT). • Device Array – pointers to functions. • Read/Write settings. • Synchronization. Main Principles
Project Requirements And results
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. Ease of use requirements
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. DAQ 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. GPIB related
Data structures Create Destroy Set read state Set write state write read close pause goto___________ Read state Write state Device Specific Interface ADT Interface Device Interface • Device specific • Methods: • write • read • close The process of adding a device
Using Data structures The Interface for developer usage • Device specific • Methods: • write • read • close Device 1 Specific Interface • Device specific • Methods: • write • read • close Device 2 Specific Interface write read close pause goto___________ Read state Write state Device Interface
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 1Synchronizing 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 scenario 2Synchronizing WRITE Process
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 1
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 Synchronizing Read Process scenario 2
Read/Write interaction scenario 1 DAQ interface Read() Write() Main interface Thread Pool ReadInterrupt Worker Thread Every N samples 1 Write next iter. Main Thread * Worker Thread Plot graph/save results Write is Done, Wait until read + plot is done 2 Write Register Done Done Interrupt Database DAQ
Read/Write interaction scenario 2 DAQ interface Read() Main interface Thread Pool Register EveryN ReadInterrupt Worker Thread 1 Write next iter. Every N samples Main Thread DAQ * Worker Thread Plot graph/save results Yokogawa interface Write () Write() 2 Write Sleep duration Database Write is Done, Wait until read + plot is done Worker Thread
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 • … Settings
Initiating measurement tool Sequence diagram scenario 1 Main Specific Device Physical Device* Device Collect info Identity info Create device[info] Retrieve pointers
Running a sweep with DAQ as source Sequence diagram scenario 2 Settings Device DAQ Main Device write DAQ write ok Retrieve Sweep configurations Device read DAQ read DAQ done write Retrieve Next configurations
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 Written interfaces
Configuration panel Setting the DAQ inputs. We need to Add the data manually according to the channels we connected. 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. Load / save configurations. Apply settings will send the configurations instructions to the devices through the GPIB
Experiment panel • Examining sweep online results: • Viewing results • Manipulating graph Sweep controls. Start/stop/pause/resume. Enables changing the rate or the output value of the main device.
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? Boundaries and limitations