pyclickplc
Talk to AutomationDirect CLICK PLCs from Python. Async Modbus TCP client and server, the CLICK address model, and nickname CSV and DataView CDV file I/O.
It's the wire under pyrung and ClickNick, and it stands on its own as a Modbus client for any CLICK.
- Documentation: https://pyrung.com/pyclickplc/
- LLM docs index: https://pyrung.com/pyclickplc/llms.txt
- LLM full context: https://pyrung.com/pyclickplc/llms-full.txt
Install
uv add pyclickplc
# or
pip install pyclickplc
Requires Python 3.11+.
Quick example
import asyncio
from pyclickplc import ClickClient
async def main():
async with ClickClient("192.168.1.10", 502) as plc:
# Read and write registers with native Python types
await plc.ds.write(1, 100)
ds1 = await plc.ds[1] # int
await plc.y.write(1, True) # bool
df1 = await plc.addr.read("DF1") # float
asyncio.run(main())
The quickstart uses ClickServer to simulate a PLC locally, so you don't need hardware to try it.
What's included
Modbus client — ClickClient reads and writes PLC values as native Python types (bool, int, float, str). Access by bank (plc.ds), by address string (plc.addr), or by tag name (plc.tag).
Modbus service — ModbusService wraps the async client for sync and UI applications with background polling and auto-reconnect.
Modbus server — ClickServer simulates a CLICK PLC over Modbus TCP. Use it for development and testing without hardware.
File I/O — Read and write CLICK nickname CSV and DataView CDV files. Compatible with CLICK programming software and ClickNick.
Learn more
| Quickstart | Connect, read/write, simulate a traffic light |
| Client guide | Bank accessors, address strings, tags |
| Types & values | Native Python types per bank family |
| Addressing | Normalization, sparse X/Y, XD/YD display indexing |
| File I/O | Nickname CSV and DataView CDV |
| Examples | Runnable scripts |
Development
uv sync --all-extras --dev # Install dependencies
make test # Run tests (uv run pytest)
make lint # Lint (codespell, ruff, ty)
make docs-build # Build docs (mkdocs + mkdocstrings)
make docs-serve # Serve docs locally
make # All of the above
Metadata
Release files for pyclickplc 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyclickplc-0.4.0.tar.gz | 151.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyclickplc-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 213.1 kB
Release files / pyclickplc-0.4.0.tar.gz
| Download URL | pyclickplc-0.4.0.tar.gz |
|---|---|
| Size | 151.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de2ed16b575e0cb24bcbdf3e20736b49321b7bf71c6b89d6e30739661f242169
|
|
BLAKE2b-256 checksum How to use checksums |
73504fd10ac9f808018a82b1ebfa7741f4d819a8179aa768afb5b6b1a2296ee2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency logRelease files / pyclickplc-0.4.0-py3-none-any.whl
| Download URL | pyclickplc-0.4.0-py3-none-any.whl |
|---|---|
| Size | 62.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7cb9f65f893de66bcdd198c60c177d331329fcbffb859d15ed8bbe6908391f7c
|
|
BLAKE2b-256 checksum How to use checksums |
b9eae7e1f7f7596e9e9c289c80534d869696145419227fee9bf8821806bd86f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.
Transparency log