37
GEO600 Data Acquisition System Database and HTML Interface documentation Karsten K¨ otter 2002-05-21 1

GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

GEO600 Data Acquisition SystemDatabase and HTML Interface documentation

Karsten Kotter2002-05-21

1

Page 2: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

Contents

1 Introduction 4

2 HTML interface - General Topics 4

2.1 System Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Data Transmission Over The Network . . . . . . . . . . . . . . . 7

3 HTML interface - Description of Functions 7

3.1 Access Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.1.1 Log in / Log out (ACC) . . . . . . . . . . . . . . . . . . . 7

3.1.2 Change Your Password (ACC) . . . . . . . . . . . . . . . 9

3.1.3 User Management (ADMIN) . . . . . . . . . . . . . . . . 9

3.2 Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2.1 Set LockStatus Thresholds (WRITE) . . . . . . . . . . . 9

3.2.2 LockStatus / Statistics (READ) . . . . . . . . . . . . . . 10

3.2.3 Current detector status (READ) . . . . . . . . . . . . . . 11

3.2.4 Lookup Detector Status (READ) . . . . . . . . . . . . . . 12

3.2.5 Setup (SETUP) . . . . . . . . . . . . . . . . . . . . . . . 12

3.2.6 Change Detector Status (WRITE) . . . . . . . . . . . . . 13

3.3 DAQ System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.3.1 Current DAQS Status (READ) . . . . . . . . . . . . . . . 14

3.3.2 Lookup DAQS Status (READ) . . . . . . . . . . . . . . . 14

3.3.3 Current DCU/ADC-Setup (READ) . . . . . . . . . . . . 15

3.3.4 DAQS Diagnostics (READ) . . . . . . . . . . . . . . . . 15

3.3.5 Setup DAQS Hardware (SETUP) . . . . . . . . . . . . . 16

3.3.6 Configure DAQ System (WRITE) . . . . . . . . . . . . . 16

2

Page 3: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

3.3.7 Data Storage Management (SETUP) . . . . . . . . . . . . 17

3.4 Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.4.1 Show Signal List (READ) . . . . . . . . . . . . . . . . . 18

3.4.2 Lookup Signal Description (READ) . . . . . . . . . . . . 18

3.4.3 Add Signal Description (WRITE) . . . . . . . . . . . . . 18

3.4.4 Add Signal Name (WRITE) . . . . . . . . . . . . . . . . 19

3.4.5 Modify / Delete Signal (WRITE) . . . . . . . . . . . . . 19

3.5 Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.5.1 Lookup Calibration Functions (READ) . . . . . . . . . . 20

3.5.2 Add Calibration Function (WRITE) . . . . . . . . . . . . 23

3.5.3 Modify Calibration Function (WRITE) . . . . . . . . . . 24

3.5.4 Mark Calibration Function Outdated (WRITE) . . . . . . 24

3.5.5 Lookup IIR Time Domain Filter (READ) . . . . . . . . . 25

3.5.6 Add/Modify IIR Time Domain Filter (WRITE) . . . . . . 26

3.6 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.6.1 Time Conversion (READ) . . . . . . . . . . . . . . . . . 27

3.6.2 DataViewer (READ) . . . . . . . . . . . . . . . . . . . . 28

4 Database reference 31

3

Page 4: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

1 Introduction

The GEO600 data acquisition system (DAQS) consists of six software parts:

� data collecting unit (DCU) software: reads and transfers data from the ADCs(analog to digital converters)

� datacollector: collects data from the DCUs and writes the data to a hard diskarray (RAID)

� database: stores the DAQS configuration

� HTML interface: user interface to datacollector and database

� frame file related software: generates files in final data storage format (”frames1”)

� dataserver/frameserver: allow access to data over the network

This document describes the database and the HTML interface. For details on theDCU software, datacollector, frame file software and dataserver/frameserver seethe document ”1st Year Report - GEO600 Detector Characterization” by MartinHewitson.

A schematic of the GEO600 DAQS hardware can be seen in figure 1.

2 HTML interface - General Topics

2.1 System Overview

The HTML interface is designed to configure the DAQS and retrieve informationabout DAQS and detector. The configuration of the DAQS is stored in a databasethat is accessed by other software to read and update the configuration.

A schematic of the data flow involved in this process can be seen in figure 2:

The SUN server morgan runs a MySQL 2 database server with a database calleddaqslog (see. section 4 for the database structure) that is the central repositoryfor configuration information.

When the datacollector software is started, the configuration is read fromthe database. Information required by the DCUs is then propagated from the dat-acollector to the dcu main software. Configuration updates are carried out using

1http://wwwlapp.in2p3.fr/virgo/FrameL/2http://www.mysql.com

4

Page 5: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

Hannover (Institute)

Ruthe (Detector) 35+2 Mb RadioLink

SUN

workstation

switch

switch

Beowolf cluster

Linux

HTTP-server

DCU DCU DCU

SUN

Server

RAID

SUN

Server

RAID

rawdata

173GB (~3 days)

frames

383GB (~7 days)

RAIDframes

190GB (~3 days)

tape

tape

1-slot drive

7-slot drive

(transfer to Golm)

SUN

workstation

cosmeston

130.75.117.77

aspect

130.75.117.78

cordova

130.75.117.164

morgan

130.75.117.165

alchemist

130.75.117.161

thot

130.75.117.162

pandora

130.75.117.160

info.geo600.uni-hannover.de

130.75.117.71

Figure 1: Hardware Setup Of GEO600 DAQS

a web browser. The user can both retrieve information and send updated informa-tion to the database by accessing the interface on the Linux server info that isrunning an Apache3 HTTP server. This server can be accessed by using the URLhttps://info.geo600.uni-hannover.de.

The interface is implemented as a set of PHP4 script files that interface with thedatabase on morgan. By filling in forms in the web browser running on the user’smachine queries can be submitted to the database server. The result is returned asan HTML document to the browser.

When configuration changes are submitted to the HTTP server the configuration issent to the datacollector which updates its settings and the settings of the DCUs. Inaddition the information is integrated in the database.

The framemaker software is also configured by using the database. It contacts thedatabase server periodically to query information that is written to the frame files.

3http://www.apache.org4http://www.php.net

5

Page 6: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

Web Browser Apache Web Server

user's machine Linux HTTP Server"info"

DCU "alchemist"

dcu_main

DCU "alchemist"

dcu_main

SUN server "aspect"

framemaker MySQL DB server

SUN server "morgan"

datacollector

SUN server "morgan"

DCU "alchemist"

dcu_main

DCU "alchemist"

dcu_main

Figure 2: DAQS - Data Flow

2.2 Security

By using the HTTP server accessing data and configuring the system can be donefrom any networked machine that has a web browser installed.

This approach requires a high standard of security and authentication checking forevery transaction in order to prevent unauthorized use of the system.

The following concepts are employed to make the system secure:

� The web server running the interface is protected by a firewall that onlyallows connections to pass that come from organizations involved in theGEO600 project. In addition the configuration file for the HTTP server du-plicates this set of access rules. Members of the GEO600 project can accessthe server also from outside their institutes by employing SSH tunneling.

� A user database is maintained. Read-only access is allowed without loggingin (providing a valid username and password combination) first. In order to

6

Page 7: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

use any pages that change the configuration a valid username and passwordis required. Five different levels of access rights can be granted to any in-dividual user. For all access levels different MySQL accounts with minimalrights are used to interface with the database.

� All data traffic from and to the server is encrypted using the SSL5 proto-col. This ensures secure transmission of user names, passwords and sessionidentifiers over the network.

� user input is restricted to a limited character set. All input is checked for ”in-secure” characters like (” ’ ;) that could be used to compromise the databasesecurity when inserted into MySQL queries

2.3 Data Transmission Over The Network

As shown in figure 2 the components of the DAQS communicate over the networkin order to update configuration changes. The HTTP server can send and receivethree different data formats:

� integers: integers are transmitted in ”network byte order” (which corre-sponds to big-endian order)

� strings: strings are transmitted by sending the string length (in bytes) as aninteger first and then sending the appropriate number of bytes of the stringitself.

� floats: floats are sent by sending the base-2 exponent (as an integer) first andthen the mantissa divided by 224 � 16777216 (also as an integer).

3 HTML interface - Description of Functions

The following sections describe all functionality of the interface. The functions aredescribed in the order they appear in the navigation menu.

3.1 Access Control

3.1.1 Log in / Log out (ACC)

Without logging in access is limited to read-only operation. This is valid for thetime of writing this document. In principle the default access rights can be set to

5http://www.modssl.org

7

Page 8: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

any value (e.g. even no reading allowed without logging in). Default access rightsare stored in the variable $PubAC defined in the include/init.php script.

In order to log in a valid username and password have to be provided. Clicking onthe Login link brings up a page where this information can be entered.

The username and password provided are checked against the values in the databasetable user. For security reasons the user.password column contains onlyMD56 hash values of the corresponding passwords. So it is possible to check theMD5 value of a given password against the value in the database, but it is not feasi-ble to reconstruct any password from the information in the user table.

If authentication was successful, a session identifier (called token) is generated andwritten to user.token. After that two ”cookies” will be send to the connectedweb browser: The userid and the token. After each page access user.logindateis updated. This information is used to expire logins after 60 minutes of inactivity.When trying to access a protected page the userid and the token are looked up inthe database. If the token is valid and user.logindate is not older than 60minutes, access will be granted if the access rights (in user.access level)for the user are sufficient. There are 5 levels of access rights.

� access control (ACC 0x01): The only default access right that is requiredto make the interface work properly. This access right gives access to twobasic functions: It allows the user to see the Login page and the ChangePassword page (see 3.1.2 for a comment on security about this).

� read (READ 0x02): required to see pages that only display information anddo not offer the option to change anything in the database

� write (WRITE 0x04): required for pages that can be used to change valuesin the database

� setup (SETUP 0x08): required for pages that can be used to perform ”ad-vanced changes” (see section 3.2.5, 3.2.5, 3.3.5 and 3.3.7 for details) in thedatabase and the setup of the system. These operations are not used in ”everyday” operation the DAQS and can mess up the system severely if not usedproperly.

� administrator (ADMIN 0x10): allows modifications in the user table (addand remove users, reset passwords, change access rights)

The value in user.access level is a bit mask corresponding to the accessrights (e.g. 0x07 = 0x01 (ACC) + 0x02 (READ) + 0x04 (WRITE)). Access rightsand bit masks are stored in the file include/init.php.

6http://www.faqs.org/rfcs/rfc1321.html

8

Page 9: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

A log out can be performed by clicking on the Logout link (replaces the Loginlink once a user is logged in). This will delete the token in the database so anysubsequent requests for protected pages will be denied unless the user logs in again.

3.1.2 Change Your Password (ACC)

A user’s password can be changed by providing the old password and two (iden-tical) versions of the new password. This page should be accessible by any userregardless on his access rights, so only ACC rights are required for access. There-fore in principle the page could be accessed without logging in first, so additionalcare is taken to avoid unauthorized use: Passwords will only be changed if therequesting browser can provide a valid token for the userid corresponding to thepassword requested to change (effectively turning down anybody who did not login before). In addition the old password needs to be supplied in order to performany update in the database. This page updates the user.password column inthe database.

3.1.3 User Management (ADMIN)

This page allows to add, delete or modify user accounts. User accounts can onlybe deleted if the user’s entry in the user table is not referenced in any other table.Deleting referenced user entries would make the database inconsistent. To disable auser account that is referenced in another table one should set the password to somerandom and hard-to-guess value. Userids can be referenced from the tablesIIR filters, calibration, channel log and operation log.

3.2 Detector

3.2.1 Set LockStatus Thresholds (WRITE)

The datacollector running on the machine morgan is generating four lock chan-nels that indicate whether any of the following systems is locked.

� Slave laser injection locking

� Mode cleaner 1

� Mode cleaner 2

� Power recycling cavity

9

Page 10: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

In general the lock status of a system is determined by applying an algorithm toa stretch of data from a certain channel and comparing this value to upper andlower thresholds. For example to determine the status of the laser injection lockingthe standard deviation of the channel G1:PSL SL PWR for 1 second of data iscalculated. Since fluctuations in G1:PSL SL PWR are much lower when the laseris locked this value can be checked against an upper threshold in order to determinethe lock status. For the other systems (MC1, MC2, PRC) the rms value of a channelis used for determining the lock status. See table 3.2.1 for details:

system signal algorithm data length

Slave laser injection locking G1:LSC MC1 VIS standard deviation 1 secMode cleaner 1 G1:LSC MC1 VIS rms 1 secMode cleaner 2 G1:LSC MC2 VIS rms 1 secPower recycling cavity G1:LSC MIC VIS rms 1 sec

Table 1: used parameters for determining the lock status

The page allows modifications of the thresholds. The values are stored in the ta-ble LockStatThresholds (columns thres1lo, thres1hi, . . . ). For eachchange a new entry is created. Old entries are not erased or overwritten but cur-rently there is no way of displaying them using the HTML interface.

Sensible thresholds can easily be determined by looking at the currently calculatedvalues while unlocking/re-locking the system. These values are obtained fromthe datacollector by sending the command GET CURRENT CALCULATIONS anddisplayed together with the current thresholds.

On startup the datacollector queries the database for the threshold values. When thevalues are updated, the web server sends a THRESHOLDS CHANGED command tothe datacollector to trigger an update of values via the database.

3.2.2 LockStatus / Statistics (READ)

Display the lock statistics of the systems ”Slave laser injection locking”, ”Modecleaner 1”, ”Mode cleaner 2” and ”Power recycling cavity” for a given day. If thecurrent day is chosen, the current status of the systems will also be displayed. Thetable displayed shows the following information for each of the four subsystems:

� number of locks that lasted for more than 10 seconds

� number of locks that lasted for more than 10 minutes

� maximum lock stretch. Note that the statistics are calculated for each dayso counters are reset to zero every UTC midnight. Therefore a lock stretch

10

Page 11: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

crossing a UTC day boundary will be recorded as two lock stretches: It willbe broken down in the parts before midnight and after midnight.

� time in lock: overall time the system was in lock

� time considered: length of data included in this statistics (usually 24 hoursfor days in the past)

� duty cycle: ratio between ”time in lock” and ”time considered” in percent

This information is obtained from the dataserver by sending the command ”GETLOCK STATS”. The dataserver itself reads the information from log files thatare generated by the datacollector. There is one file for each day. These filesare located in the folder RAW DATA BASE DIR/logs (RAW DATA BASE is thebase directory for the raw data files, usually /home/raid-r/rawdata) andare named lock stats yearAAAA dayBBB.log (AAAA=year, BBB=day ofthe year).

Sample log file:

aspect daqs 7: more lock stats year2002 day004.logslave laser power (std): 11 5 13326 31996 32820 97.489334 1MC1 visibility (rms) : 105 10 6126 28408 32820 86.556976 1MC2 visibility (rms) : 74 9 6112 25185 32820 76.736748 1MI/PRC visibility (rms): 25 5 6065 15017 32820 45.755638 1

The first six columns of the file are the values mentioned above (locks � 10sec,locks � 10min, maximum lock stretch in seconds, . . . ). Column 7 is the currentstatus of the system (0=unlocked, 1=locked). This value only makes sense for thelog file of the current day.

3.2.3 Current detector status (READ)

Display the current status of GEO600 subsystems. In order to assess the data qual-ity of signals acquired by the DAQS the detector database gives information aboutthe status of the GEO600 subsystem.

A status can be assigned to components that are called ”subsubsystems”. Subsub-systems are grouped and each group of subsubsystems is called subsystem. Thestatus information is retrieved from the table operation log.

This table references the tables subsystems def, subsubsystem def andstatus def, that contain all available subsystems, subsubsystems and statusflags. Changes to the status of a subsystem are not only inserted into the tablesubsubsystems def, but also applied to subsubsystems def.status idthat contains the current status of the subsubsystem.

11

Page 12: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

3.2.4 Lookup Detector Status (READ)

Search and list status information from the table operation log.

by time Displays the status of all subsubsystems at some given point in the past.The information is queried from operation log (and tables referenced fromthere).

by status of subsystem Display all database entries that indicate a change of agiven subsystem to a given status flag (e.g. all entries indicating that the MC1 auto-alignment status was changed to ”Maintenance”). The information is queried fromthe table operation log.

by comment Display all database entries whose comment column matches agives string. The query is performed with the given string delimited by %-signs(MySQL wildcard character). So all entries that contain the given string as a sub-string will be returned.

3.2.5 Setup (SETUP)

Add SubSystem (SETUP) Add subsystems to the database. Subsystem infor-mation is stored in the table subsystems def. For each subsystem this tablestores an id (subsystems def.subsystem id), the name (subsystems-def.subsystem) and the current status (subsystems def.status id).

In addition there is a flag called subsystems def.active. This can be usedto deactivate subsystems once they are no longer used in the detector.

Note about activating/deactivating:

Deactivating a system should only be done when a system is permanently re-moved from the detector. In principle it is equivalent to deleting the entry of thesystem from the database table subsystems def / subsubsystems def.Since the subsystems def / subsubsystems def tables are referencedby other tables (e.g. operation log) entries cannot be deleted from these tableswithout making the database inconsistent. Therefore the Deactivate (sub)subsystempage offers a different way of ”removing” the system. Entries will remain in thedatabase but queries can ignore systems that are flagged ”not active”.

If a system is reactivated after it was deactivated then querying status informa-tion for the time the system was flagged deactivated will give questionable results.

12

Page 13: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

There is no log of activation/deactivation processes, so once the system is reacti-vated the database does not contain any information about the system once beingdeactivated.

Add SubSubSystem (SETUP) Add SubSubSystems to the database. SubSys-tem information is stored in the table subsubsystems def. The meaning ofthe columns in this table are identical to the subsystems def table. In addi-tion there is a subsystems def.subsystem id column, that stores the cor-responding parent subsystem for each subsubsystem.

Act. / Deact. SubSystem (SETUP) Activates/deactivate subsystems. A deacti-vated system will not be displayed in pages like Lookup Detector Statusand Current detector status. When a subsystem is deactivated, all cor-responding subsubsystems are deactivated as well. This function updates sub-subsystems def.active and subsystems def.active.

Act. / Deact. SubSubSystem (SETUP) Activates/deactivate subsubsystems.This function updates subsubsystems def.active.

Add Status Name (SETUP) Add status names that can be used to describe aSubSubSystem. To create a new entry a status name has to be entered and a colorhas to be assigned to the status. Colors are defined as hex triplets. This is a 6 digithex number. Each group of 2 digits defines one of the components red, green andblue.

This function adds entries to the status def table.

3.2.6 Change Detector Status (WRITE)

Submit status changes of subsystems. A table of all available subsubsystems andall status names will displayed. A status change can be made by clicking on the cor-responding subsubsystem/statusname combination. To explain the changing statusinformation a comment can be added. This function writes to the operation logtable and updates the subsubsystems def.status column.

3.3 DAQ System

The pages listed under this heading are used to configure the Data AcquisitionSystem (DAQS) and query information related to the DAQS.

13

Page 14: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

3.3.1 Current DAQS Status (READ)

Display the current configuration of the DAQS. For each channel of the DAQS thefollowing information is listed:

� name of the recorded signal

� sampling rate

� sampling resolution

� preamplifier gain

� date and time, when the signal was connected

� name of the person who connected the signal

� whether anti-alias low pass filtering is applied

� availability of calibration functions for the signal

� comments

The information is retrieved from the table channel log and tables referencedfrom there.

In addition the overall data rate is displayed. The data rate is stored in storage-management.data rate bytes.

3.3.2 Lookup DAQS Status (READ)

By Time Show the status of the DAQS at some given point in time. The timecan be specified either in UTC or as GPS seconds. The displayed information isidentical to the output of the Current DAQS Status page. The information isretrieved from the table channel log.

By Signal Name Display information about a specific signal. This is useful whena user is interested in a certain signal and wants to find out when it was recordedand what the parameters were (sampling rate, sampling resolution, ...). A (part of a)signal name has to be specified and the database will be queried for times when thesignal was connected. This information is retrieved from the table channel log.

14

Page 15: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

3.3.3 Current DCU/ADC-Setup (READ)

The setup of the DAQS hardware can be changed, that means that ADCs can bemoved from one DCU to another. This page shows the current configuration ofADCs and DCUs. It displays a table that shows which ADC board is installed inwhich DCU. Some additional information about the DCUs (IP address, location)and ADCs (number of channels, maximum sampling rate and resolution) are alsodisplayed. IP address and location of a DCU is stored in the table dcu. Since itis unlikely that this information will ever change, it cannot be modified using theHTML interface. If it should ever be required to move a DCU from one buildingto another the database entries in the dcu table should be changed by hand (wrongentries in this table will not stop the DAQS from working) or the DCU has to bereconfigured (name and IP changed).

This information about the current DCU/ADC setup is retrieved from the tableadc log.

3.3.4 DAQS Diagnostics (READ)

This page can be used to check that the DAQS is running properly. It displaysinformation about the data acquisition process and the frame building.

The upper table shows the status of the raw data writing process on the servermorgan in Ruthe. The information is retrieved from the raw dataserver by send-ing the command GET DCU LATEST. The raw dataserver reads the value fromthe log files in the directory RAW DATA BASE DIR/logs. The log files are calledXXXXX current.log where XXXXX is the name of the DCU. These files con-tain the GPS second of the last chunk of available data. This GPS second is dis-played in the table together with the corresponding UTC time. If one of the DCUsfalls behind by a number of seconds larger than specified in $DCUBehindLimit,the table field will be displayed in red to indicate a problem with acquisition pro-cess. The value $DCUBehindLimit is currently set to 20 seconds which is thelength of the data buffer in the DCU.

The lower table shows the status of the frame building process. The status of thehour- and day-trend builder is also shown. The hour-tend builder will fall back forup to 1 hour during normal operation. This is because it waits for a full hour ofdata being available before starting to generate a frame file. This is similar for theday-trend builder that does not start to generate a frame file unless a full day worthof new hour trend data is available.

15

Page 16: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

3.3.5 Setup DAQS Hardware (SETUP)

Updates the DCU / ADC configuration. As stated above an ADC board can beinstalled in any of the three DCUs. For proper operation of the DAQS it is requiredthat every change in the hardware configuration is reflected in the database. Thispage allows to write the proper configuration to the database. In the first step it hasto be specified which ADC is installed in which DCU.

Then for all ADC boards is can be chosen whether its individual channels shouldbe switched off, switched on with specified values or whether the configurationshould be left unchanged. The information is written to the table adc log.

Updating the DCU / ADC configuration should only be done when the systemis stopped (powered down), which is required to install and remove ADC boardsanyway. The DCU / ADC configuration is only read from the database on startup,so any changes during runtime will not be recognized by the system. This can causesevere problems with the configuration of the individual channels of the ADCs.

3.3.6 Configure DAQ System (WRITE)

Configure the channels of an ADC board. Configuration works in several steps.In the first step the ADC board that holds the channel to be configured has to beselected. After that a table with the current configuration of all channels on thisADC board will be displayed. The configuration of a channel can be changed byclicking on the modify link in the right column of the table. This brings up a pagewhere the following parameters can be configured:

� Signal Name: The name of the signal being recorded on that channel (list istaken from the signals table).

� Record: Selects whether this channel is recorded by the DAQS. If this is setto ”OFF” all other parameters apart from the comment are ignored.

� SWLP: Selects whether anti-aliasing software low pass filtering is performedby the datacollector. This can be used to prevent aliasing when a samplingrate lower than the maximum rate of 16384Hz is used. The signal will befiltered with a 6 pole IIR Butterworth filter with a corner frequency of .3 ofthe sampling rate. When the maximum sampling rate of 16384Hz is chosen,the SWLP setting will be ignored and filtering is always switched off.

� sampling rate

� sampling resolution

16

Page 17: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

� preamplifier gain (only available if the channel belongs to a ICS110B board,that is equipped with on-board preamplifier). The preamplifier setting canbe used to attenuate of amplify the signal connected to the DAQS patch baybefore it goes to the ADC converter in order to match the ADC input rangeof � 2V . The amplifier has an input range range of � 5V , therefore it is notuseful to attenuate the signal by more than the factor 2

5� 8dB. The signal can

be amplified by up to 31dB but this is not recommended since it introducesextra noise.

� comment: An optional comment that is written to the database entry

All configuration changes are stored in the database table channel log.In addi-tion the username and the time is recorded.

3.3.7 Data Storage Management (SETUP)

Configure the storage of raw and frame data. Due to the limited amount of diskspace available both in Ruthe and Hannover the data acquired by the DAQS is onlystored for a limited amount of time before being deleted. For final storage the datais written to tapes that are shipped to ZIB (Berlin).

The raw data written by the datacollector is stored on the RAID system in Ruthe.Using the Data Storage Management page the available disk space for datastorage and the storage time (the time that data is kept before being deleted) canbe specified. The values are stored in the table storage management. Usingthese numbers and the current data rate generated by the DAQS the fraction of theavailable disk space required for data storage is calculated and it is checked thatthere is sufficient space on the disk.

When the configuration of a DAQS channel (using Configure DAQ System)is changed in a way that the data rate is increased by an amount that would exceedthe available storage capacity the user will be warned and the configuration changewill be rejected.

Deletion of old raw data files is performed by the datacollector. While writing newdata files the disk is checked for files that are older than the storage time and filesare deleted if necessary.

Values for the frame files can also be specified (frame storage time and the size ofthe disk array in Hannover). The framemaker retrieves the configuration from thedatabase once a minute and deletes old frame files accordingly.

17

Page 18: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

3.4 Signals

3.4.1 Show Signal List (READ)

Display a list of available signal names. A list of all signal names is retrieved fromthe table signals.

3.4.2 Lookup Signal Description (READ)

Display signal description documents. In order to provide data analysis people withinformation about the signals recorded in the GEO600 DAQS signal descriptiondocuments are being provided. The documents can be retrieved using the LookupSignal Description page. After a signal name was specified a list of docu-ments that belong to the selected channel will be displayed. The list is ordered byversion number of the document, so the most recent one will be listed first. Any ofthe documents can be viewed or downloaded by clicking on the corresponding link.All documents are in PDF7 format. The document meta information displayed inthe table (author, date, version, described signal) is stored in the database tablesignal description. The documents are stored in the file system of the webserver running the interface info.geo600.uni-hannover.de in the direc-tory HTTP DOCUMENT ROOT/SignalDescriptionDocs. For more detailsabout document storage see the Add Signal Description section below.

3.4.3 Add Signal Description (WRITE)

Add signal description documents. The first thing to do (after writing the documentto be submitted :-) ) is to select the signal that is described in the document. It ispossible to assign multiple signals to one document. To do so one has to click onthe select an additional signal button. If a document for the selectedsignal already exists and this document describes multiple signals the user willbe asked whether he wants to assign the new document to the existing group ofsignals. This check is performed by querying the signal description tablefor entries with different signal ids but identical doc id field.

The next step after selecting the signal(s) is to upload the document to the server.A version number and the filename of the document on the local disk has to bespecified. Version numbers have to increase by 0.01 to 1 compared to the mostrecent available document. When the document is uploaded on the server it will bestored in the directory HTTP DOCUMENT ROOT/SignalDescriptionDocs.It will be given a name that is a 8-digit number followed by the extension .pdf.

7http://www.adobe.com/products/acrobat/adobepdf.html

18

Page 19: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

At the same time an entry in the signal description table is generated. Thesignal description table has the following columns:

� id: index of entry

� signal id: references the signals table. Specifies the signal that isdescribed in the document. If more than one signal is described by the samedocument, multiple entries are generated in the signal descriptiontable.

� userid: user that submitted the document

� date: date and time when the document was submitted

� doc id: document id number. The document is stored with the docu-ment id number as filename on disk (doc id=4 � document is stored asHTTP DOCUMENT ROOT/SignalDescriptionDocs/00000004.pdf)

� version: version number of the document. To avoid using floating pointnumbers (may lead to document numbers like 1.49999999997 instead of 1.5depending on floating point storage format in the database) the version num-ber multiplied by 100 is stored as an integer.

3.4.4 Add Signal Name (WRITE)

Add a signal name and comment. All signal names used in the DAQS have tobe added to the table signals first. This can be done using the Add SignalName page. One has to make sure that all signal names entered comply with theGEO600 naming convention(see https://info.geo600.uni-hannover.de/naming/ for details).A very crude check is performed to reject signals that obviously do not comply tothe convention.

3.4.5 Modify / Delete Signal (WRITE)

Delete signals or modify signal comments. Using this page the comment that goeswith a signal can be modified. Signals can also be deleted. Deleting a signal isonly possible if the entry in the signals table is not referenced from any other table.Deleting a referenced signal would render the database inconsistent. A signal isreferenced and cannot be deleted under the following circumstances:

� The signal name was ever used for recording a signal in the DAQS(reference from channel log table)

19

Page 20: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

� A calibration function exists for the signal(reference from calibration table)

� A signal description exists for the signal(reference from signal description table)

� An IIR time domain calibration function exists(reference from IIR filters table)

If any of these conditions is fulfilled, no delete link will be displayed for thissignal.

3.5 Calibration

3.5.1 Lookup Calibration Functions (READ)

Show frequency domain calibration functions. For each signal calibration func-tions can be provided to convert the voltage recorded in the DAQS to a physicallymeaningful signal (e.g convert the voltage output from an accelerometer to a dis-placement signal in the unit ”meters”. Two different types of calibration functionscan be entered:

� system function: describes the transfer function of the system or sensor thatgenerates the signal

� whitening filter function: describes the electronic transfer function of thewhitening filter applied to the signal before being passed to the DAQS

In order to look up a function a signal has to be selected first. A list of all availablefunctions (both system and whitening filter) will be displayed then. Some functionsare marked as ”outdated”. That means that they are no longer valid and might havebeen replaced by a newer function. Clicking on view detailswill display a listof poles and zeros and a gain that define the function. A graph with an amplitudeand phase plot is also generated.

The data of the calibration functions is stored in the table calibration. Eachcalibration function is defined by poles (pi), zeros (zi) and a gain (k). See equation1 for the exact definition.

T � s � � k∏m

i s � zi

∏ni s � pi

(1)

The table calibration contains the following information:

20

Page 21: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

� id: id number if the entry

� time: date and time when the calibration function was entered

� userid: user that submitted the calibration function

� signalid: signal assigned to the calibration function

� type: type of calibration function: (0: system function, 1: whitening filterfunction)

� StartF: start frequency of the frequency interval where the function isvalid

� StopF: stop frequency of the frequency interval where the function is valid

� unit in: unit of the quantity that is multiplied by the function to get acalibrated signal (usually Volt)

� unit out: unit of the resulting quantity after multiplication with the func-tion

� gain: gain of the transfer function (see formula 1)

� offset: offset that needs to be added to the signal after the calibrationfunction was applied. This is required for the signal of some sensors thatadd an offset to the measured quantity.

� poleszeros: string that contains the values of the poles and zeros of thecalibration function. The string contains a series of numbers delimited bythe hash mark (#).

The numbers have the following meaning:

– number of poles in this function (n)

– number of zeros in this function (m)

– real part of pole 1

– imaginary part of pole 1

– . . .

– real part of pole n

– imaginary part of pole n

– real part of zero 1

– imaginary part of zero 1

– . . .

– real part of zero m

– imaginary part of zero m

21

Page 22: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

� outdated: this field is set to NULL for the most recent entries (there canbe multiple ”non-outdated” entries for the same signal if the entries have anon-overlapping frequency range). Once a function is replaced by a newerfunction, the outdate field is set to the date / time when the new function wasentered.

� comment: string that contains a comment for each pole and zero. The com-ments are delimited by hash marks (#). The format of the string is the fol-lowing

– comment for pole 1

– . . .

– comment for pole n

– comment for zero 1

– . . .

– comment for zero m

– general comment for the whole function

In addition to this there is link called Display a template LISO filefor IIR filter design for this signal at the bottom of the page.Clicking on this link will bring up a text file that can be used as an input file forthe program LISO8. This program can be used to generate a digital time domainfilter from the analog frequency domain representation of the calibration function.The text file contains all poles, zeros and the gain of function in a LISO compatiblenotation. Since LISO cannot deal with poles and zeros at zero frequency thesevalues are replaced by a tag that has to be set to a finite value by the user (seesample file below).

Sample LISO file:

pole 0.54943469454184pole PTag1pole PTag2zero 0.99992830503821 1.8200274723201zero 3.3863397241663factor 7.2911939242076E-06/(PTag1*2*pi)/(PTag2*2*pi)freq log .10 8192 100iir 16384 start

## Note: This transfer function contained poles# at a frequency of 0Hz.

8https://info.geo600.uni-hannover.de/cgi-bin/dcnote.pl?nb=notebook&action=view&page=35

22

Page 23: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

# These values have been replaced by "PTag.." and you# have to set them to finite values.

For details about IIR filters in the database see section 3.5.5 and 3.5.6.

3.5.2 Add Calibration Function (WRITE)

Add calibration functions to the database.

The first step is to select a signal. In addition it has to be specified whether the func-tion is a system transfer function or a whitening filter function (the type). Usingthis information the database is queried for all existing functions matching thesecriteria and the result is displayed. So the user can check for which frequencybands functions are already available.

Now the following information about the new function to be entered has to bespecified:

� start frequency: start frequency of the frequency interval where the functionis valid

� stop frequency: stop frequency of the frequency interval where the functionis valid

� unit of function: The calibration function converts the recorded voltage sig-nal to another physical quantity (e.g. ”displacement [m]” for a seismometer). The unit of the output has to be specified here.

� units of poles/zeros: the location of poles and zeros can be specified eitherin radian (default) or in Hz (radian value divided by 2π)

� Number Of Poles

� Number Of Zoles

The unit of the function has to be selected from a list that shows the values readfrom the units table. This table cannot be modified using the HTML interface.If it should ever turn out that an additional unit is needed, it has to be entered intothe table manually. The units table has only two columns: id is a index that isfilled in automatically and name which is the name of the unit.

After all these values have been entered it is checked whether the given frequencyinterval � start frequency;stop frequency � overlaps with an existing function. Thismakes sure that no conflicting entries exists in the database at any time. If a con-flicting function exists, the function will be displayed with the option to mark it

23

Page 24: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

outdated. If no conflicting function exists, a form to enter the values of poles, ze-ros, gain and comment will be displayed. After the values are submitted a crudecheck of the values is carried out. The following checks are performed on thesubmitted values:

� Are gain, offset, real/imaginary part of poles and zeros numeric values?

� Is gain ! � 0 and 1020?

� Is there a corresponding complex conjugated pole for each complex pole?

� Is there a corresponding complex conjugated zero for each complex zero?

If any of these test test fail, the function is rejected and the user is notified aboutthe problem with the function.

In addition some more tests are carried out. It is not mandatory for a function topass these additional test, but the person trying to enter a function failing thesetest is notified about the potential problem with the function. The user can thendecide to change the function or ignore the warning and submit the function to thedatabase.

These are the additional test:

� Do all poles lie in the left half of the s-plane Re � pi � 0

� Do all zeros lie in the left half of the s-plane Re � pi � 0

3.5.3 Modify Calibration Function (WRITE)

Modify an existing function. This works similar to the creation of a new function.At first a signal has to be selected. Then one of the current calibration function canbe chosen to be modified. The function being will be marked outdated and the newversion is submitted to the database as currently valid calibration function.

3.5.4 Mark Calibration Function Outdated (WRITE)

Mark Calibration functions outdated. In order to mark a signal outdated the cor-responding signal has to be selected first. A list of all current functions for thatsignal is displayed then. A function can be marked outdated by clicking on thecorresponding link. After a signal is marked as outdated it will not be written tothe frame files anymore.

24

Page 25: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

3.5.5 Lookup IIR Time Domain Filter (READ)

Look up IIR filters in the database. The calibration functions stored in the databasein combination with the HTML interface functions described in sections 3.5.1 to3.5.4 allow the calibration of data in the frequency domain. In order to have arobust and efficient way to generate calibrated time series of data stretches it isdesirable to have a set of digital IIR filters for each signal. Therefore the daqs-log database can also store IIR time domain filters in addition to the (analog,frequency-domain) calibration functions. The IIR filters can be generated fromthe calibration functions by using the program LISO9. An input file for LISO con-taining all data of a given analog calibration function can be downloaded fromthe Lookup Calibration Functions page (see section 3.5.1). The dataof the IIR filter can be entered by using the Add/Modify IIR Time DomainFilter (see section 3.5.6)

After selecting a signal name a list of all filter sets in the database will be displayed.The list is ordered by creation date of the filters. Details of the filter can be dis-played by clicking on the link in the table. the all current IIR filters for the signalwill be displayed. After selecting a signal name all current IIR filters for the signalwill be displayed.

On the top of the page there is table with global information about the filter that iscommon to all filters listed below the table. The common values are

� The signal that can be calibrated by the filters

� The unit of the signal after it is calibrated

� The offset that has to be added to the signal after the IIR filter has beenapplied

� The username of the person who added (or modified) the filter

� The date and time of the last modification

Below this information there is a table for each filter with the a and b coefficients.The naming of the coefficients can be deduced from equation 2 that is used forfiltering the signal.

yn� M

∑k � 0

akxn � k N

∑j � 1

b jyn � j (2)

9https://info.geo600.uni-hannover.de/cgi-bin/dcnote.pl?nb=notebook&action=view&page=35

25

Page 26: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

xn are the samples of the input time series and yn the samples of the output timeseries.

For each sample rate that is used to acquire a signal a different IIR filter is re-quired. Therefore the database can hold multiple groups of filters, one group foreach sampling frequency.

All filters of a group for a given sampling frequency have to be applied sequentially.So it is possible to break down a complex filter into several simple filters to improvethe numerical stability of the filtering process.

The IIR filters are stored in the table IIR filters.

3.5.6 Add/Modify IIR Time Domain Filter (WRITE)

Add and modify time domain IIR filters. To add an IIR filter a signal has to beselected first. Then a list with all currently available filters for the selected signalwill be displayed. After that the currently available filters will be displayed in thesame format than described in section 3.5.5. To add a filter the from on the bottomof the page has to be filled in with the following information:

� LISO file name: The filter data for the filter to add will be read from LISOoutput files. The LISO program will write the a and b coefficient of thegenerated filter to a file with the extension .out. The web browser has tobe pointed to this file by using the browse button or typing in the path andthe filename manually. The file will then be uploaded to the web server andprocessed to extract the coefficients and the sampling rate. To speed up theprocess of uploading multiple files to the server several LISO output filescan be concatenated and uploaded as a single file.

� Offset: The offset that has to be added to the signal after filtering it.

� The function type: As already mentioned for the calibration functions thefunctions are grouped in ”system functions” and ”whitening filter functions”.The whitening filter functions can be used to undo the electronic pre-whiteningthat is performed prior to sending the signal to the DAQS. The ”system func-tions” can be used to retrieve a physically meaningful signal (e.g. a displace-ment measured in meters) from the output signal (which is always a voltage)of a sensor.

� unit: the physical unit of the signal after the calibration

After clicking on the Add filter from LISO file link the specified filewill be uploaded and processed by the server and an updated version of the cur-rently available filters will be displayed.

26

Page 27: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

Filter can be deleted by using the check box next to table of the filter that shouldbe deleted. After clicking on the delete button an updated version of the filterwill be displayed.

The data of the IIR filters is stored in the columns of the table IIR filters.

� id: an index of the entries

� time: date and time when the entry was generated

� userid: userid of the person who entered the filter (references the tableuser)

� signalid: id of the signal that can be calibrated by the filter (referencesthe table signals)

� unitid: id of the unit of the signal after the calibration (references the tableunits)

� ab: string that contains the a and b coefficients of the filters. The string isformatted in the following way (fields are separated by a hash mark (#):

– number of filter described in the string

– sampling rate of filter 0

– type of filter 0 (0: system function, 1: whitening filter function)

– number of a coefficients in filter 0 (n)

– number of b coefficients in filter 0 (m)

– a0 of filter 0

– . . .

– an of filter 0

– b0 of filter 0

– . . .

– bm of filter 0

– . . . data for filter 1. . .

– . . .

� offset: offset that needs to be added after the filtering

3.6 Tools

3.6.1 Time Conversion (READ)

Convert date and time formats. The datetime can be specified in four differentformats:

27

Page 28: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

� ISO format (UTC) (YYYY-MM-DD hh:mm:ss) YYYY: year, MM: month ofyear (numeric 1-12), DD: day of month, hh: hour of day (24h format), mm:minutes, ss: seconds). Time has to be specified in ”Coordinated UniversalTime”10 (UTC). All fields accept values that are out of bounds and carrythem forward properly (e.g. 2002-04-35 is converted to 2002-05-05).

� GPS 11(week from GPS origin - second of week): Format used by GPS satel-lite signals. The GPS origin was 1980-01-06 00:00:00 (UTC). The weekcounter used by GPS satellites is a 10bit register and therefore rolled overon 1999-08-22 00:00:00 (UTC), so the week counters used by the satellitesstarted at 0 again after that time. The time conversion in this interface countsweeks always from the GPS origin 1980-01-06 00:00:00 (UTC) (using num-bers that exceed 210 � 1024) to avoid ambiguity.

� GPS (seconds): GPS second counted from the GPS origin on 1980-01-0600:00:00 (UTC). Note that GPS second counting is not taking care of leapseconds introduced in UTC time. At the time of writing (20002-05-21) 13leap seconds have been introduced to UTC time since the GPS origin. There-fore UTC minute boundaries do not line up anymore with a GPS secondscount that is divisible by 60 (e.g. 2002-05-24 17:46:00 (UTC) correspondsto GPS second 706297573 and not to 706297560 as it would be without the13 leap seconds introduced in UTC time).

� raw data file format (YYYY-DayOfYear-hh-mm): represents the directorystructure in which the raw data files are stored (e.g. the raw data file recordedfor the second 2002-05-25 11:10:18 is stored in the file2002/day145/hour11/min10/GEO 706360231.grd)

To convert a date format fill out the corresponding line in the table and press thesubmit button. This will bring up a table displaying the specified time in all fouravailable formats.

3.6.2 DataViewer (READ)

Display data recorded with the GEO600 DAQS.

All signals acquired with the GEO600 DAQS are used to produce three differentdata streams:

� data at full sampling rate (stored in ”minute frames”=frames that contain oneminute worth of data per file)

10http://aa.usno.navy.mil/faq/docs/UT.html11http://tycho.usno.navy.mil/gps.html

28

Page 29: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

� data decimated to 1Hz sampling rate (stored in ”hour frames”=frames thatcontain one hour worth of data per file)

� data decimated to 1 � 60Hz sampling rate (stored in ”day frames”=frames thatcontain one day worth of data per file)

Data can be acquired by the DAQS in three different ways.

� DAQS data:

– The signal can be connected to one of the ICS110B boards (64 (32+16+16)channels, sampling rate 2nHz (n=5..14): 32, 64, . . . , 16384 Hz)

– The signal can be connected to the VMIC board (64 channels, samplingrate 2nHz (n=0..9): 1, 2, . . . , 512 Hz)

� control data:

– The signal can be recorded by the Labview control system( � 1000channels, sampling rate 1 Hz)

The DataViewer gives access to all these signals and data streams.

The first step to display data is to select the frameserver that will be used to retrievethe data. At the time of writing two frameservers are available:

� aspect (IP 130.75.117.78): This machine is located in the AEI Hannover andhas access to the 380GB RAID that holds the latest 7 days of data.

� morbo (IP 194.94.224.83): This machine is located in the AEI Golm and hasaccess to several RAIDs with a capacity of more than 1GB.

The next step is to select the data stream that should be retrieved. Either DAQSdata (recorded on the ICS110B or the VMIC hardware) or control data (recordedwith the LabView system) can be retrieved. In principle both options can be com-bined with any choice of minute, hour, or trend files. Since the LabView data isrecorded at 1Hz only, looking at hour files (sampling rate is also 1Hz) is equivalentto looking at the full data rate. Therefore the combination (full data rate, controldata) is omitted. In addition frequency domain data generated from DAQS datacan be selected.

In the next step the start time and the length of the data stretch to look at has to bespecified. The start time can either be specified in UTC time or in GPS seconds. Byclicking on the Get Latest Second button the server will determine the GPS

29

Page 30: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

second of the latest available data by sending one of the commands GET LATEST,GET HOUR LATEST or GET DAY LATEST to the frameserver.

Now the frameserver is queried for the available signals for the specified timeby sending one of the commands GET CHANNEL LIST, GET HOUR CHANNELLIST,GET DAY CHANNEL LIST,GET HOUR TREND CHANNEL LIST,GETDAY TREND CHANNEL LIST,GET HOUR CONTROL CHANNEL LIST or GETDAY CONTROL CHANNEL LIST. A list of available signals is then displayed.

The data will be display in a Java applet that is embedded in a HTML page. In orderto achieve maximum compatibility and with any browser two different versions ofthe viewer are available:

� basic viewer: This viewer has only limited functionality, but it shouldrun with any of the Java engines shipped with web browsers.

� advanced viewer: Has full functionality, but requires the Java RuntimeEnvironment12 to be installed.

After pressing the display data button the page with the viewer is loaded. Itis possible to zoom into the plot and also to configure the plot options (when usingthe advanced viewer). The data displayed can be downloaded as an ASCII file byclicking on the Download data file link.

12http://java.sun.com/j2se/1.3/jre/

30

Page 31: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

4 Database reference

# phpMyAdmin MySQL-Dump# version 2.2.0# http://phpwizard.net/phpMyAdmin/# http://phpmyadmin.sourceforge.net/ (download page)## Host: localhost# Generation Time: May 21, 2002, 11:05 pm# Server version: 3.23.49# PHP Version: 4.2.0# Database : ‘daqslog‘# --------------------------------------------------------

## Table structure for table ‘IIR filters‘#

CREATE TABLE IIR filters (id int(11) NOT NULL auto increment,time datetime NOT NULL default ’0000-00-00 00:00:00’,userid varchar(100) NOT NULL default ’0’,signalid int(11) NOT NULL default ’0’,unitid int(11) NOT NULL default ’0’,ab text NOT NULL,offset double NOT NULL default ’0’,PRIMARY KEY (id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘LockStatThresholds‘#

CREATE TABLE LockStatThresholds (id int(11) NOT NULL auto increment,date datetime NOT NULL default ’0000-00-00 00:00:00’,userid char(50) NOT NULL default ’’,thres1lo double NOT NULL default ’0’,thres1hi double NOT NULL default ’0’,thres2lo double NOT NULL default ’0’,thres2hi double NOT NULL default ’0’,

31

Page 32: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

thres3lo double NOT NULL default ’0’,thres3hi double NOT NULL default ’0’,thres4lo double NOT NULL default ’0’,thres4hi double NOT NULL default ’0’,PRIMARY KEY (id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘adc‘#

CREATE TABLE adc (adc id int(11) NOT NULL auto increment,num channels smallint(5) unsigned NOT NULL default ’0’,MaxRate int(11) default NULL,MaxRes int(11) default NULL,InputRangeV double default NULL,name text NOT NULL,PRIMARY KEY (adc id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘adc log‘#

CREATE TABLE adc log (id int(11) NOT NULL auto increment,adc id int(11) NOT NULL default ’0’,parent dcu id int(11) NOT NULL default ’0’,date datetime NOT NULL default ’0000-00-00 00:00:00’,PRIMARY KEY (id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘calibration‘#

CREATE TABLE calibration (id int(11) NOT NULL auto increment,time datetime default NULL,userid varchar(100) default NULL,

32

Page 33: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

signalid int(11) default NULL,type tinyint(4) default NULL,StartF float default NULL,StopF float default NULL,unit in int(11) default NULL,unit out int(11) default NULL,gain float default NULL,offset float NOT NULL default ’0’,poleszeros text,outdated datetime default NULL,comment text,PRIMARY KEY (id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘channel‘#

CREATE TABLE channel (channel id int(11) NOT NULL auto increment,channel num int(10) unsigned NOT NULL default ’0’,parent adc id tinyint(3) unsigned NOT NULL default ’0’,biasV double NOT NULL default ’0’,PRIMARY KEY (channel id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘channel log‘#

CREATE TABLE channel log (log entry int(11) NOT NULL auto increment,channel id int(10) unsigned NOT NULL default ’0’,date datetime default NULL,state tinyint(3) unsigned NOT NULL default ’0’,swlp tinyint(4) default ’0’,signal id int(11) default NULL,sampling rate int(10) unsigned default NULL,sampling resolution int(11) default NULL,gain int(11) default NULL,user text,comments text,

33

Page 34: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

PRIMARY KEY (log entry)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘dcu‘#

CREATE TABLE dcu (dcu id int(11) NOT NULL default ’0’,name mediumtext NOT NULL,ip address text NOT NULL,location mediumtext,PRIMARY KEY (dcu id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘operation log‘#

CREATE TABLE operation log (log entry int(10) unsigned NOT NULL auto increment,time datetime default NULL,user text,subsubsystem id int(11) NOT NULL default ’0’,status id tinyint(3) unsigned default NULL,comments text,PRIMARY KEY (log entry)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘signal description‘#

CREATE TABLE signal description (id int(11) NOT NULL auto increment,signal id int(11) NOT NULL default ’0’,userid varchar(50) NOT NULL default ’’,date datetime NOT NULL default ’0000-00-00 00:00:00’,doc id int(11) NOT NULL default ’0’,version int(11) NOT NULL default ’1’,PRIMARY KEY (id)

34

Page 35: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘signals‘#

CREATE TABLE signals (id int(11) NOT NULL auto increment,name varchar(100) default NULL,comment varchar(255) default NULL,PRIMARY KEY (id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘status def‘#

CREATE TABLE status def (status id tinyint(4) NOT NULL auto increment,status name text,sortorder int(11) default NULL,color value varchar(10) default ’505050’,PRIMARY KEY (status id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘storage management‘#

CREATE TABLE storage management (raid r size bytes bigint(20) unsigned NOT NULL default ’0’,raid h size bytes bigint(20) unsigned NOT NULL default ’0’,data rate bytes bigint(20) unsigned NOT NULL default ’0’,raw storage time sec bigint(20) unsigned NOT NULL default’0’,frame storage time sec bigint(20) unsigned NOT NULL default’0’) TYPE=MyISAM;# --------------------------------------------------------

#

35

Page 36: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

# Table structure for table ‘subsubsystems def‘#

CREATE TABLE subsubsystems def (subsubsystem id int(10) unsigned NOT NULL auto increment,subsystem id int(10) unsigned default NULL,subsubsystem text,active tinyint(3) unsigned NOT NULL default ’0’,status id int(11) default NULL,PRIMARY KEY (subsubsystem id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘subsystems def‘#

CREATE TABLE subsystems def (subsystem id int(11) NOT NULL auto increment,subsystem text,active tinyint(3) unsigned default NULL,status id int(11) default NULL,PRIMARY KEY (subsystem id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘units‘#

CREATE TABLE units (id int(11) NOT NULL auto increment,name varchar(50) default NULL,PRIMARY KEY (id)) TYPE=MyISAM;# --------------------------------------------------------

## Table structure for table ‘user‘#

CREATE TABLE user (userid varchar(50) NOT NULL default ’’,passwd varchar(50) default NULL,

36

Page 37: GEO600 Data Acquisition System Database and HTML Interface ...ros/geo600_docu/data_aq/HTMLInterfaceDoc.pdf · the document ”1st Year Report - GEO600 Detector Characterization”

access level int(11) default NULL,f name text,l name text,email text,token varchar(50) NOT NULL default ’NOTLOGGEDIN’,logindate datetime NOT NULL default ’2000-01-01 00:00:00’,PRIMARY KEY (userid)) TYPE=MyISAM;

37