Python API for VICI Valco Universal Electric Actuator
Project description
VICI valve
This repo contains a driver class for the VICI Valco Universal Electric Actuator (aka VICI valve). The code should work for both the USB and the RS232/485 variety.
This is an unofficial package; we are not affiliated with VICI (Valco Instruments Company Inc.).
Installation
Install vicivalve
from PyPI by running pip install vicivalve
or add vicivalve
to your requirements.txt
file.
Alternately, run pip install git+https://gitlab.com/heingroup/vicivalve
or add git+https://gitlab.com/heingroup/vicivalve
to your
requirements.txt
file.
Getting started
This package is intended for use with the VICI Universal Electric Actuator. This actuator works for two position and multiposition valves, and comes in two varieties: one with a USB B receptacle at the back, and one with three pins that can be used with either RS232 or RS485. A third variety uses BCD (binary coded decimal) but this version is not compatible with this library. Note also that the RS232/485 versions have two different order codes, but according to the manual they can be converted by setting a switch on the PCB.
The USB variety uses an FTDI chip and shows up as virtual COM port or VCP on your PC. The USB version works with this
package directly, just plug it into your PC and crack on. The RS232/485 version uses two
internally connected 3 pin TE Connectivity AMP connector headers. The valve comes with a mating cable assembly, the user
can also make their own connector (Housing: 102241-1, contacts:
87756-4). Either way, in order to work with this package, an
FTDI USB to serial converter cable is required (I personally
recommend buying the wire ended FTDI cable and crimping on a connector). The ftdi_serial
library currently does not
work properly with non-FTDI converter cables!
Usage
The package is meant to be as simple and user friendly as possible. The VICI class takes a Serial object as argument:
from ftdi_serial import Serial
from vicivalve import VICI
serial = Serial(device_serial='FOO', baudrate=9600)
valve = VICI(serial=serial)
The device_serial
is the unique serial number of your valve (if it's USB) or your converter cable. In order to find
that ID, plug in your valve/cable and run Serial.list_device_serials()
from a Python console.
The Baud rate is a property of the controller and needs to be set explicitly. 9600 is the default baud rate. If you can't establish communication, a wrong baud rate is the most likely cause. Refer to the manual for viewing and changing the baud rate of a controller.
With RS485, multiple actuators can be daisy-chained and used with one USB converter. In that case, the same Serial
object is passed to both valve instances:
valve1 = VICI(serial=serial, address=1)
valve2 = VICI(serial=serial, address=2)
However, in that case, every valve has to have its own address. Refer to the manual for details on multidrop communication and how to set the device address.
Once instantiated, the valve can be switched like so:
valve.home() # sends the valve to position A or 1
valve.switch_valve("B") # sends the valve to position B
valve.switch_valve(1) # sends the valve back to position A, using an integer as argument
valve.toggle() # sends the valve to position B, since it was in A before
valve.toggle() # sends the valve back to position A
Lastly, if a new valve head is installed, the actuator needs to "learn" the new end stop positions:
valve.learn()
This will stall the actuator against both end stops and record those positions. This takes a few seconds and sounds pretty awful, but don't worry, it's supposed to work that way.
Authors
- Sebastian Steiner - Initial work, current maintainer
- Sean Clark - Tech support
License
MIT
Acknowledgements
- VICI Valco
- Stack Overflow
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file vicivalve-0.0.13-py3-none-any.whl
.
File metadata
- Download URL: vicivalve-0.0.13-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.11.2 requests/2.32.3 setuptools/75.2.0 requests-toolbelt/1.0.0 tqdm/4.66.5 CPython/3.8.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 309118ccef2a65299485c2eb07560a2149a3733dc969b516a972e1ad3487dd50 |
|
MD5 | c710bdf8ddec3d03591b2ab3b60f33d0 |
|
BLAKE2b-256 | d7f7336dbd9df91c00ec00c04adac5f9216ba346522875f216abe735faa48cf9 |