Skip to main content

Python driver for Koyo Ethernet ClickPLCs.

Project description

clickplc

Python ≥3.8 driver and command-line tool for Koyo Ethernet ClickPLCs.

Installation

pip install syscon_clickplc

Usage

Command Line

$ syscon_clickplc the-plc-ip-address

This will print all the X, Y, DS, and DF registers to stdout as JSON. You can pipe this as needed. However, you'll likely want the python functionality below.

Python

This uses Python ≥3.5's async/await syntax to asynchronously communicate with a ClickPLC. For example:

import asyncio
from syscon_clickplc import ClickPLC


async def get():
    async with ClickPLC('the-plc-ip-address') as plc:
        print(await plc.get('df1-df500'))


asyncio.run(get())

The entire API is get and set, and takes a range of inputs:

>>> await plc.get('df1')
0.0
>>> await plc.get('df1-df20')
{'df1': 0.0, 'df2': 0.0, ..., 'df20': 0.0}
>>> await plc.get('y101-y316')
{'y101': False, 'y102': False, ..., 'y316': False}

>>> await plc.set('df1', 0.0)  # Sets DF1 to 0.0
>>> await plc.set('df1', [0.0, 0.0, 0.0])  # Sets DF1-DF3 to 0.0.
>>> await plc.set('y101', True)  # Sets Y101 to true

Currently, only X, Y, C, DS, DF, and CTD are supported:

x bool Input point
y bool Output point
c bool (C)ontrol relay
df float (D)ata register, (f)loating point
ds int16 (D)ata register, (s)igned int
ctd int32 (C)oun(t)er Current Values, (d)ouble int

We personally haven't needed to use the other categories, but they are straightforward to add if needed.

Tags / Nicknames

Recent ClickPLC software provides the ability to export a "tags file", which contains all variables with user-assigned nicknames. The tags file can be used with this driver to improve code readability. (Who really wants to think about modbus addresses and register/coil types?)

To export a tags file, open the ClickPLC software, go to the Address Picker, select "Display MODBUS address", and export the file.

Once you have this file, simply pass the file path to the driver. You can now set variables by name and get all named variables by default.

async with ClickPLC('the-plc-ip-address', 'path-to-tags.csv') as plc:
    await plc.set('my-nickname', True)  # Set variable by nickname
    print(await plc.get())  # Get all named variables in tags file

Additionally, the tags file can be used with the commandline tool to provide more informative output:

$ syscon_clickplc the-plc-ip-address tags-filepath

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syscon_clickplc-0.0.4.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

syscon_clickplc-0.0.4-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file syscon_clickplc-0.0.4.tar.gz.

File metadata

  • Download URL: syscon_clickplc-0.0.4.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for syscon_clickplc-0.0.4.tar.gz
Algorithm Hash digest
SHA256 fd7cd9027f1345323832d2464e18a457a122c98581397fe5a738ff82c54006ce
MD5 e35b0aa4440e2648f47fc75c3faa8264
BLAKE2b-256 3c0a3bbcb82f83c4737c4b302f4c65cf3ccb7c6b7f4640497da3c98e224aefbc

See more details on using hashes here.

File details

Details for the file syscon_clickplc-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for syscon_clickplc-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2069b84724cc111d8a329b5898813f8255fa624d8ce72ba9fe67a2ea1f1a9312
MD5 9644218174eadf39ee079f45929fa2c9
BLAKE2b-256 176a25f72c1b23138131816d612d534cfa8f1c8babc6a38fb2aa714ceedd789b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page