The Micromeritics 3Flex has the added capability to collect and display pressure & quantity adsorbed versus time measurements. Data are collected every half second. This application note is a tutorial on how to collect the data being transmitted over the Ethernet cable used for instrument communication using a client such as PuTTY or HyperTerminal. Also, it will be shown how the captured data can easily be handled using scripts created in languages such as Python.
INSTALLING THE PuTTY CLIENT
PuTTY is an open source (free to download) SSH and telnet client that can easily be used to access all of the transient data output by the 3FLEX 3500 instrument. Since PuTTY is open source and easy to download, it will be the client discussed in this tutorial. No program installation is required. The .exe file runs directly from a Windows desktop. The software can be downloaded online (only save the putty.exe file):
COLLECTING THE PRESSURE VERSUS TIME DATA
In order to connect to the instrument, the following items have to be configured:
- Input 3FLEX IP address, found in the Unit Configuration, into the PuTTY software
- Input 54000 in the ‘Port’ field
- Select ‘Raw’ connection type
- Save session settings (optional)
- To save the data, go to the ‘Logging’ settings (see Figure 3).
- Select ‘All session output’
- Select destination (using ‘Browse…’) to save file and create a .txt file (helpful to name this file the same as your sample file to be analyzed)
- Click ‘Open’ to start collecting the data (note: this program can be started before the 3FLEX starts collecting data—it will be ‘waiting’ for when data output from the 3FLEX begins).
USING THE DATA
The text file containing the transient data can be accessed using any means that accepts tab separated values. Possibilities include Notepad, Microsoft Excel (or other spreadsheet software), or programming languages that read .txt or .xls files. Within programming languages, MATLAB®, Octave, and Python may be a few that come to mind. MATLAB® has the xlsread() function and Octave has the textread() function which are easy to use. However, the use of Python is chosen as the focus of this application note since Python is free to use, well supported in terms of online documentation / user forums, and the use of python code is also possible within the 3FLEX software (sample files). Please refer to Appendix I for a description of all of the data contained within the saved file. Refer to Appendix II for installing the proper components of Python, and refer to Appendix III for example code and how to execute the use of Python to view transient data on demand.
DESCRIPTION OF ALL COLUMNS IN COLLECTED DATA FILE
The data file generated during this collection process has 58 columns of tab-delimited, or separated, values. When viewed in Microsoft Excel or other spreadsheet program, the data occupy columns ‘A’ though ‘BF’. The identity of each of these columns of data is given below:
PYTHON INSTALLATION COMPONENTS
In order to operate Python in a way that on-demand data can be viewed, 3 components need to be installed: Python 3.2, NumPY (for numerical functions), and MatPlotLIB (for graphical display of the data).
INSTALLING PYTHON 3.2
Installation of Python needs to be done first. Python version 3.2.3 can be downloaded from python.org.
Depending on your computer system, appropriate versions may vary, but the following file should be compatible with most, if not all, computers that operate the 3FLEX instrument:
NumPY can be installed next and contains numerous numerical functions and libraries which are needed in order to properly handle the transient data extracted from the .txt file collected during an analysis. NumPY version 1.6.2 should be downloaded to be compatible with the installed version of Python.
The last necessary component of the installation is MatPlotLIB. Version 1.2.1 is compatible with the previously mentioned / installed software and can be downloaded.
SAMPLE PYTHON CODE
The below is example code that was used to produce the data shown in Figure A3.1. This is the most basic code needed to see transient data, but the flexibility exists to script a more detailed file—allowing for flexibility such as comparing pressure or quantity adsorbed between ports, generating a separate figure for each port, etc.
import numpy as np import matplotlib.pyplot as plt myFile = 'carbon.txt' data = np.genfromtxt(myFile, skip_header=2, skip_footer = 1) ################ # Time (minutes) ################ x=data[:,3] x = x/1000/60 # Sample pressure PORT 1(torr) y=data[:,4] plt.plot(x,y,'ko') plt.ylabel('Pressure (torr)') plt.xlabel('time (minutes)') plt.show()
Example pressure data obtained from transient data recording.
Sample of transient data displayed in a text editor. Note the ASCII art and labels of the first two rows of data—which need to be excluded from the numerical data.
While this code is very basic and only begins to explore the possible script configurations, scripts with greater power and flexibility can readily be created. Micromeritics’ applications specialists would be glad to discuss and support creating custom scripts for individual applications.