Skip to content

Driver for Nenion valves controller #117

@rbudhrani

Description

@rbudhrani

Description

Nenion valves are controlled with a controller. The documentation is
nlvFLUAS - help - 1.08.pdf We'd need to

  • enable motor current E
  • disable motor current D
  • go to the set-point (play button) a.k.a. "GoTo" in form G<target>, where 0 < target <= 40000
    • Possibly make this as range 0-100% integer, where 0% is 1, and then each step from there on is 400 * n%.
  • halt motor with H
  • fully close -> Call "Null" command N.
  • drive in direction CLOSE for an amount of 0,1% with M. Could have an input parameter to do multiple times with default = 1.
  • drive in direction OPEN for an amount of 0,1% with P. Could have an input parameter to do multiple times with default = 1.

Image

Instrument controller is not specific to one type of valve, it can control leak and gas-dosing valves. So naming the file as valve_controller.py and the controller class Nenion_ValveController seems reasonable. The instrument can be controlled through USB-to-serial, serial, and Ethernet connections. Serial settings from documentation are 'Baudrate: 19200 Parity: Even DataBits: 8 Stop Bits: 1 Flow Control: None'. The rest are presumed as defaults. Ethernet connection needs first setting up (static, not DHCP) IP address and port, e.g. '192.168.0.21:1512' on the controller itself. Some confusion added to these values is in the user manual of the valve, which says the USB-to-serial communication settings are 'Bits per second: 115 200, Databits: 8, Parity: None, Stopbits: 1, Float control: None'. Possibly the lower Baudrate value settings are for RS-232 cable connection, while the latter with the USB.

The __init__ should be prepared such that both 'serial' and 'tcp' transports are accepted. The respective transport environment will be configured accordingly. The end-of-line character is unclear, but probably CR is used.

Add also a CLI which should also help testing with the HW.

Modules to be created

  • qmi/instruments/nenion/init.py
  • qmi/instruments/nenion/valve_controller.py
  • bin/instruments/cli_nenion_controller.py

Modules to be modified

  • n/a

Tests to be created/updated

  • tests/instruments/nenion/test_valve_controller.py

Documentation to be updated

  • CHANGELOG.md

Hardware

  • Nenion valve controller, optionally with a leak valve.

Metadata

Metadata

Assignees

Labels

blockedAn issue is blocked by another issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions