Softlab Project – Measurements Tool Summery: Project name: Project Moderator: Oren Shirak & Dan Nussinson. Project description: A software.... Developer: 1. Shay Dan: Writing interfaces for the devices that are participating in the sweep, such as Yokogawa & Agilenet. 2. Yevgeny Petrilin : Managing software end-user interface, which includes usage of both of the interfaces written by Shadi and Shay in order to handle program I/O via GUI and present it in a convenient structure for the user 3. Shadi Ibrahim: Handling DAQmx (Main device, see explanation below) I/O. Project short summary: Daq- is the main device that is capable to measure input (Voltage, current…), this device has 16 channels for measuring input and 2 channels for generating output, The main purpose of the project is to create an application that manages generating output (voltage, current ...) via multiple number of devices including the main device, and measuring; in real time; the output that these devices generate, afterwards the application suggests a number of mode in which it represents the data to the end user; mainly it is done via dynamic graph which is being processed in real time. The application suggests a various ways of determining measurement procedure (defined as sweep in the following requirements), such as procedure mode of operation; the rate of the processing, the limits, how many times it will be processed and what devices are participating in the procedure. Along with that the application offers a comfortable interface in order to present the procedure results. TERMINOLOGY: DAQ: Data Acquisition is the sampling of the real world to generate data that can be manipulated by a computer. Data acquisition typically involves acquisition of signals and waveforms and processing the signals to obtain desired information. The components of data acquisition systems include appropriate sensors that convert any measurement parameter to an electrical signal, which is acquired by data acquisition hardware. Data Acquisition device: is a self-powered system that communicated with a computer through a standard or proprietary interface. As a boxed alternative to plug-in boards, this type of system offers I/O channels, an electrical environment, and versatility/speed in adapting to different applications. GPIB: General Purpose Interface Bus defines the electrical, functional, and software specifications of an interfacing system to connect PCs to programmable instruments. 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. Amplitude sweeps are often used to characterize the transfer characteristics of a device: does a voltage increase on the input give a corresponding output voltage increase. An example of the use of sweeps is for the measurement of relative accuracy of an A/D converter. Difference measurement: A DAQ feature that enables a process of reading two parallel channels, the measurement is the difference in voltage between the two wires: any voltage common to both wires is removed. Using differential inputs can reduce noise picked up by the signal leads. For each input signal there are two signal wires. A third connector allows the signals to be referenced to ground. GUI: Graphical user interface: s a type of user interface used for interaction with a computer or other media formats which employs graphical images, widgets, along with text to represent the information and actions available to a user. The actions are usually performed through direct manipulation of the graphical elements. Project Requirements: Functional requirements: -DAQ related: req.1: The application should be able to read input from the DAQ buffer. req.2: The application should be able to write arrays of various sizes in the DAQ output buffer. req.3: The application should synchronize both reading and writing tasks in order to associate data accordingly. req.4: The application can read up to 16 channels's input in regular mode and up to 8 channels in DIFF mode at the same time. req.5: The data should be gathered from the buffer each times it is filled by DAQ in order to insure minimal overhead expense, which might lead to device low performance and inaccurate calculation. req.6: Data gathering must not be delayed till there is no place in the buffer for new data samples. req.7: Data should be passed to GUI via parallel threads in order to avoid delaying urgent DAQ interrupts or scheduling new tasks for the DAQ. req.8: DAQ output channels should be reset when a user is done using the application. req.9: Data gathered from the DAQ buffer should be stored. -GPIB related: req.1: Application should be able to communicate with the devices listed below; the application should be able to forward write-tasks to these devices. req.2: Application should identify all the connected devices to the pc at run time. req.3: Ease of use requirements: req.1: 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. req.2: User should be able to store/load sweep configuration for anytime reuse. req.3: User should be able to change the manner of the data graphical presentation at sweep run time. req.4: User should be able to change sweep rate or direction at run time. req.5: User should be able to pause/ resume sweep. req.6: User should be able to stop sweep. req.7: Look & Feel requirements: req.1: User should be able to see sweep processing graphically. req.2: The application include separate tables/panel for different configurations; source configuration panel, additional outputs, DAQ channels which are participating in the sweep and the sweep-runtime graph. Safety requirements: req.1: The arrays should be filled to with continuous point's values, 2 consecutive points written into the DAQ buffer should not have the difference of a default static coefficient set according to DAQ capabilities. Achieved Requirements: Functional requirements: -DAQ related: req.1-4: An Interface for DAQ is written, this interface include basic functions for writing/reading data from DAQ, The read function receives an array of channels to be assigned per call, theoretically it should work for 16 channel, it has been tested so far on 4, it is caller responsibility to send an order to read from no more than 16 channels from DAQ. The interface includes write function which allows caller to write various size arrays into DAQ. In case the write function is called, calling the read function is always done afterwards, and it's synchronized with write rate, in order not encounter any loss of written data. req.5-7: DAQ read/write rate can exceed a regular PC's processing rate, therefore in order not to suffer loss of data, written samples are stored locally in DAQ buffer and gathered each time its count reach a static limit set in the application, since reading big chunks of buffer cost much less time than reading each sample on time, application is able to copy and process all the data written into the DAQ buffer by the read function, this is done via DAQ interrupts, in case these interrupts are called in context of each other it'll be nest so there would be no data loss. req.8: The application initiates a simple DAQ write task which resets DAQ outputs before exiting. req.9: Data passed from DAQ interface back to the caller are stored in local file according to specified file name in GUI. -GPIB related: Req.1-2: An interface for HP3634A Agilent and Yokogawa has been written; HP3634A interface includes: -A function for writing constant value (instructing device to generate specific output) -A function that resets the device. Yokogawa interface includes: -A function for writing array of values (instructing device to generate specific set of output values at a given rate) -A function that resets the device. -A function that reads device status via GPIB. Ease of use requirements: Req.1-2: implemented. Req.3: The user can use to show the results in a graph, he can choose to draw results of any of the input devices participating in the sweep, compared to either the source device or time. Req.4: An option to change rate is added to the GUI, application stops the sweep and starts another one with the details of the end point of the previous sweep along with the new rate. Req.5-6: Implemented. Look & Feel requirements: Req.1-2: implemented. Safety requirements: req.1: A simple fast writing task is performed before starting main write task initiated by method caller, this simple task calls DAQ write function sequentially with set of output values that start with DAQ output in real time and end with the real task start values, the jump between each sequent values is big enough to insure device steady state.