-
Notifications
You must be signed in to change notification settings - Fork 7
Description
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.
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.
