sylo-plc-comms0.1.1
PLC comms layer for Studio 5000/Logix — CIP (EtherNet/IP via ciplogix, vendored wheel) controller info + tag reads/writes, and OPC UA (asyncua) browse/read/write. No Logix Designer SDK required.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
sylo-plc-comms
Sylo package: PLC comms layer for Studio 5000/Logix — CIP (EtherNet/IP via
ciplogix, vendored wheel) controller info + tag reads/writes, and OPC UA
(asyncua) browse/read/write against the controller's OPC UA server. No
Logix Designer SDK required.
Split out of sylo-allen-bradley on 2026-09-09. Sibling packages in this
bundle:
sylo-allen-bradley— Logix Designer SDK wrapper (.acdupload/download, L5X export/import). SDK not bundled.sylo-logicforge— L5X parse/IO-scaffold, Parse Rules UI, bundled LogicForge backend.
Tools
| Tool | What it does |
|---|---|
plc_comms_cip_plc_info |
Full controller attributes (read-only CIP Identity) |
plc_comms_cip_tag_list |
Controller + program tag list (read-only) |
plc_comms_cip_tag_read |
Read one/many tags (pycomm3 syntax) |
plc_comms_cip_tag_write |
Write one/many tags — allowlist-gated |
plc_comms_opcua_status |
Probe the OPC UA server (endpoints, namespaces) |
plc_comms_opcua_browse |
Browse the address space (read-only) |
plc_comms_opcua_tag_list |
Recursive Tags-namespace listing (read-only) |
plc_comms_opcua_read |
Read nodes by node-id/tag path (read-only) |
plc_comms_opcua_write |
Write nodes — allowlist-gated |
Allowlist
Writes (cip_tag_write, opcua_write) are gated by the same operator-managed
download allowlist as project downloads. The canonical file lives in
sylo-logicforge at packages/sylo-logicforge/assets/download-allowlist.json
(this package's loader resolves it across the monorepo); env override:
LOGICFORGE_DOWNLOAD_ALLOWLIST.
Python
ciplogix installs on demand from vendor/ciplogix/*.whl (committed);
asyncua pip-installs on demand (see scripts/requirements.txt). Runs on the
same SYLO_PYTHON as the other controls packages — no SDK Python needed.