Skip to main content

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.

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.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyclickplc 0.4.1
File Size Uploaded
pyclickplc-0.4.1.tar.gz 152.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyclickplc 0.4.1
File Interpreter ABI Platform
pyclickplc-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 214.7 kB

Release files / pyclickplc-0.4.1.tar.gz

Download URL pyclickplc-0.4.1.tar.gz
Size 152.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dcff8fc877f74d5657d4f7789124ed6d0b2b4a2c6b95e8dcc34a02c1636d2bcd
BLAKE2b-256 checksum
How to use checksums
1b894121d3f7ec47e9eb26bc0d973bda79fd45e11a0839b3bd24e572a2f422bc
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 Oct 14, 2026.

Transparency log

Release files / pyclickplc-0.4.1-py3-none-any.whl

Download URL pyclickplc-0.4.1-py3-none-any.whl
Size 62.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a1b5fb989e8c175f0021343c0f15d64600c43f9def698295a827f22ca01cb320
BLAKE2b-256 checksum
How to use checksums
414f8e8d23d6824c4977c5880cc5454fb6f717c92d3898cfa115612385a2dc93
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 Oct 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page