- Monday, June 16, 2014
ACEP at Work: BlackBox Project Logbook – Project Update
The BlackBox Project consists of the design, construction and testing of a remote data acquisition system. The goal of the project is to develop a completely self-contained system that can be left in the field unmonitored for extended periods of time.
Researchers measured the system’s inherent latency to be about 22 microseconds.
After some debugging, the main data logging routine was successfully separated into several smaller functions in order to begin the implementation of a similar routine in real time. The idea is to create several tasks within the main routine, all with different periods (times between samples). This is the proposed approach:
Main routine - Opens all the netCDF files, retrieving all of the files and their variable IDs along with the other useful information, namely the number of samples already recorded, sampling frequencies, slot letters, and channels. This information is then passed on to the reading routine.
Reading routine - With only the required information, a task is created and assigned the appropriate period, reading the correct channel and slot letter, assigning the new data pairs, timestamp and data value, to the file where all of the data is previously stored. The tasks created by this routine (for example, the routine could be called 20 times, generating 20 different tasks) should have in general higher priority than the ones present on the rest of the routines. There is NO saving of the file involved in this routine.
Writing routine - Its sole purpose is to synchronize all opened netCDF files. This is done periodically (i.e. every second) and also with a low priority, so it does not interfere with the previous routine. If possible all the files should be synchronized at the same time, in a single swoop.
Probable Scenario: Main routine is called to read 20 files, collects all information and launches 20 copies of the writing routine that will sample the data for each file indefinitely. At every second, for example, the files are synchronized and the data is then saved in the disk.
The first routine of sampling in real time at 1000 samples per second was successfully established. Latency seems to be under 20 microseconds for the majority of the samples. This was a very important milestone for the project, as a data logger should be made as close to periodic as possible, by being reliable (i.e. by not starving the sampling tasks of critical resources). Because we are not using a pure Real Time Operating System (RTOS) but RTAI (Real Time Application Interface for Linux) instead, which is a patched kernel operating system (OS) that enables real time features in a Linux kernel code, our system will not follow this literally. Nonetheless our system should be able to perform acceptably.
The next step will be to launch several of these sampling tasks in parallel and analyze the system response. After that, the routine for writing the netCDF files can be developed.
Project Lead: Marc Mueller-Stoffels, firstname.lastname@example.org
Project Engineers: Jeremy Vandermeer and Luis Pereira Miranda
Project Funding: ShellWind/Shell Foundation, Alaska Energy Authority
A rectifier prototype circuit board in the process of being assembled is pictured. It will be used to convert AC to DC for the purpose of providing positive voltages to an isolation circuit board also being developed. Photo courtesy MFrey, ACEP/UAF.