Skip to content
/ mfc Public

Python driver and command line tool for MKS mass flow controllers.

License

Notifications You must be signed in to change notification settings

numat/mfc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mfc

Python driver and command-line tool for MKS mass flow controllers.

Installation

pip install mfc

If you want the older python2/tornado driver, use pip install mfc==0.2.11 and review this README.

Usage

This driver uses the ethernet port on the side of the device for communication. If you use this driver, you only need to provide power to the top ports.

Command Line

To test your connection and stream real-time data, use the command-line interface. You can read the flow rate with:

$ mfc 192.168.1.200
{
  "actual": 4.99,
  "gas": "CO2",
  "max": 37,
  "setpoint": 5.00,
  "temperature": 27.34
}

You can optionally specify a setpoint flow and/or gas with e.g. mfc 192.168.1.150 --set 7.5 --set-gas N2. See mfc --help for more.

Python

This uses Python ≥3.5's async/await syntax to asynchronously communicate with the mass flow controller. For example:

import asyncio
from mfc import FlowController

async def get():
    async with FlowController('the-mfc-ip-address') as fc:
        print(await fc.get())

asyncio.run(get())

The API that matters is get, set, and set_gas.

>>> await fc.get()
{
  "actual": 4.99,
  "gas": "CO2",
  "max": 37,
  "setpoint": 5.00,
  "temperature": 27.34
}
>>> await fc.set(10)
>>> await fc.open()   # set to max flow
>>> await fc.close()  # set to zero flow
>>> await fc.set_gas('N2')

There is also set_display, which will only work on devices that support it.

>>> await fc.set_display('flow')

About

Python driver and command line tool for MKS mass flow controllers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages