How does one create an environment logging system that can manage an arbitrary number of distributed environment sensors and log measured values to a database, while at the same time working as a server, handling client requests for environmental values from a given sensor over a given time period?
The LabVIEW-based system makes it easy to distribute sensors by using GPIB-ENET. An object-oriented design with GOOP provides the possibility to add sensors dynamically. Measured values are stored in a database by using the SQL toolkit. The network features in LabVIEW enables the implementation of a client-server application.
Keeping track of the environment is essential when developing a product. The environment logger handles an arbitrary number of sensors which makes the system flexible and new sensors can be added, when needed.
By using TCP/IP, sensors can be distributed all over the development and production areas which makes it possible to acquire measured values and store them in a common database for later analysis. The database is also used to store sensor configuration data. Adding a new sensor is easy, just add the new sensor configuration in the database and the system is updated. No change in the code has to be performed.
The system has an active and a passive mode. When running a test the user might want a detailed environment log and the environment logger is running in an active mode. But there may also be the need to log the environment when there is no test running for the UUT ie changes in the environment overnight. Normally, this passive logging is performed not as frequently as active logging during testing. This will optimise the number of measured environment values in the database. The system works as a server and the user can configure the passive logging through a graphical user interface. The active logging can be started remotely from another application, such as a test system, by acting as a client to the system and request logging from a certain sensor over a specified time period. The logged environment values in the database can be accessed immediately through an ordinary web-browser for presentation and no additional software is required to present the measured values.
System overview
The environment logger consists of a server, one or more clients, a database, a web browser and distributed sensors. The different parts communicate through a TCP/IP network as shown in Figure 1.
The core in the system is the server program that handles communication with the distributed sensors and the logging to the database. By using GOOP (National Instruments' graphical object-orientated programming) and creating a sensor class, each sensor is now an object, making it easy to use an arbitrary number of sensors. The sensors are connected to different channels on a GPIB-controlled acquisition unit (such as HP34970A) that is distributed through GPIB-ENET. Information about the sensors is retrieved from the database where the type of sensor, channel and address of the acquisition unit, location, measurement unit, gain and offset, min and max range are stored. The user configures the passive background logging through a graphical user interface, choosing which sensors should be active and the logging interval and the values are stored in the database. The server also contains an alarm function, if any sensor value is out of range an e-mail or SMS is sent.
Client driver
The environment logger acts as a server and makes it possible for other applications to receive environment values from a certain sensor for a specified time period by connecting as a client. The measured values are stored in the database as well as being returned directly to the client, making it possible to use the environment logger as a part of its own system. A public LabVIEW driver is freely available, making client applications easy to create.
Server overview
The server consists of five parallel processes. Figure 2 shows a server overview with the internal communication between the processes.
The first process handles the graphical user interface and takes care of user actions. Two processes are used to handle client requests. Process two is only waiting for new clients to connect and as soon as one tries to connect, the request is put in the connection queue to process three that will take care of the request. This way maximum performance is achieved.
There is a separate process that handles the communication with the sensors and performs the actual logging. The logging gets the orders from the log setting queue, where commands have been queued either by client request or from the graphical user interface. The measured environment values are stored in a buffer that the last process is removing queue elements and store them in the database. By using two processes for logging and storing the results in database, logging will never be interrupted by the database storage that sometimes might be slow. This way of implementing an environment logging system creates a flexible, stable and powerful system that continually runs in the background, comfortably delivering environment data well into the future.
Products used to implement this datalogger include LabVIEW 5.1/6.02, GOOP, GPIB-ENET, GPIB-ENET/100, SQL toolkit and Internet toolkit.
National Instruments
(011) 805 8197
© Technews Publishing (Pty) Ltd | All Rights Reserved