Skip to main content

Python driver for Alicat mass flow controllers.

Project description

alicat

Serial driver and command line tool for Alicat mass flow controllers.

If you are using Analyt-MTC flow controllers, go to this repository for more info.

Example Connections

  • The standard DB9 cable connected directly to a computer (unix: /dev/ttyS0, windows: COM1).
    • Good with older computers that still have the connector.
  • The cable connected to a computer through a USB converter (unix: /dev/ttyUSB0, windows: COM1).
    • Good for newer computers and maker boards such as Raspberry Pis.
  • Cables routed through a TCP device server (tcp://192.168.1.100:4000, requires python >3.4).
    • Good in conjunction with PLCs for professional-looking control boxes.
  • Multiple cables connected to one port via a splitter and Alicat's addressing (A-D).
    • Good when number of ports is limited.

Installation

pip install alicat

If you don't like pip, you can also install from source:

git clone https://github.com/numat/alicat.git
cd alicat
python setup.py install

Usage

Command Line

For basic tasks, this driver includes a command-line interface. Read the help for more.

alicat --help

Python

For more complex projects, use python to automate your workflow.

from alicat import FlowController
flow_controller = FlowController(port='/dev/ttyUSB0')
print(flow_controller.get())

If the flow controller is communicating on the specified port, this should return a dictionary of the form:

{
  'setpoint': 0.0,         # Setpoint, either mass flow rate or pressure
  'control_point': 'flow', # Either 'flow' or 'pressure'
  'gas': 'Air',            # Can be any option in `flow_controller.gases`
  'mass_flow': 0.0,        # Mass flow (in units specified at time of purchase)
  'pressure': 25.46,       # Pressure (normally in psia)
  'temperature': 23.62,    # Temperature (normally in C)
  'total_flow': 0.0,       # Optional. If totalizer function purchased, will be included
  'volumetric_flow': 0.0   # Volumetric flow (in units specified at time of purchase)
}

You can also set the gas type and flow rate / pressure.

flow_controller.set_gas('N2')
flow_controller.set_flow_rate(1.0)
flow_controller.set_pressure(20)

Alicat Addressing

You can have multiple controllers on the same port by using Alicat's A-D addresses and an RS-232 splitter.

flow_controller_1 = FlowController(address='A')
flow_controller_2 = FlowController(address='B')

flow_controller_1.set_flow_rate(1.0)
flow_controller_2.set_flow_rate(0.5)

flow_controller_1.close() #/dev/ttyUSB0 is still open!
flow_controller_2.close()

Asynchronous TCP

Some people wire their RS-232 devices through an ethernet proxy server (example), enabling network access. This is supported through asyncio (python >3.4) and python's built-in asynchronous syntax.

import asyncio
from alicat.tcp import FlowController

flow_controller = FlowController('192.168.1.100', 4000)

async def print_state():
    print(await flow_controller.get())

ioloop = asyncio.get_event_loop()
ioloop.run_until_complete(print_state())
ioloop.close()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alicat-0.2.10.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alicat-0.2.10-py2.py3-none-any.whl (19.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file alicat-0.2.10.tar.gz.

File metadata

  • Download URL: alicat-0.2.10.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for alicat-0.2.10.tar.gz
Algorithm Hash digest
SHA256 a9e00683b2177d4311c902f8896ed30d8fe954156077c28e0e6d348dba43ccc4
MD5 03656d1808f91f254214cd48ef9f00b1
BLAKE2b-256 be0b5086287d886671ff324f7b87e50aef9122b194becdffe7d4d41d47896f8a

See more details on using hashes here.

File details

Details for the file alicat-0.2.10-py2.py3-none-any.whl.

File metadata

  • Download URL: alicat-0.2.10-py2.py3-none-any.whl
  • Upload date:
  • Size: 19.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0.post20200518 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.7

File hashes

Hashes for alicat-0.2.10-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 03db5c147dab9c6df675682d393b411cf70d942a04ad0fb019e6869e3f1df0d1
MD5 16e25b0b6ec67fd38b4e0bcee19ab48d
BLAKE2b-256 25af29d7576bf47f94e2dfd586eb5c7c4788cf00770913be4f988056593a2609

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page