Click Dialect API
Tier: Dialect Surface
Click prebuilt blocks, aliases, and validation/communication helpers.
Mapping and Runtime Helpers
TagMap
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mappings
|
dict[Tag | Block, Tag | BlockRange] | Iterable[MappingEntry] | None
|
|
None
|
include_system
|
bool
|
Whether to include built-in system tag mappings
(SC/SD points). Default |
True
|
from_nickname_file
classmethod
to_nickname_file
validate
validate(
program: Program,
mode: ValidationMode = "warn",
profile: HardwareProfile | None = None,
) -> ClickValidationReport
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
program
|
Program
|
The Program to validate. |
required |
mode
|
ValidationMode
|
"warn" (findings as hints) or "strict" (findings as errors). |
'warn'
|
profile
|
HardwareProfile | None
|
Optional hardware capability profile override. |
None
|
Returns:
| Type | Description |
|---|---|
ClickValidationReport
|
ClickValidationReport with categorized findings. |
tags_from_plc_data
tags_from_plc_data(
data: Mapping[str, bool | int | float | str],
*,
blocks: Iterable[Any] | None = None,
) -> dict[str, bool | int | float | str]
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data
|
Mapping[str, bool | int | float | str]
|
|
required |
blocks
|
Iterable[Any] | None
|
Click bank blocks whose slots the program uses directly,
without a TagMap entry ( |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, bool | int | float | str]
|
|
dict[str, bool | int | float | str]
|
that appear in both data and this TagMap (or blocks). |
load_snapshot
load_snapshot(
path: str | Path,
*,
skip_default: bool = True,
blocks: Iterable[Any] | None = None,
) -> SystemState
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str | Path
|
Path to a CSV file exported via Click Programming Software's PLC → Read Data from PLC → All → Save. |
required |
skip_default
|
bool
|
If |
True
|
blocks
|
Iterable[Any] | None
|
Click bank blocks to seed for slots used without a
TagMap entry; see :meth: |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
A |
SystemState
|
class: |
SystemNicknameRepair
dataclass
SystemNicknameRepairRequired
Bases: ValueError
LadderBundle
dataclass
LadderExportError
Bases: RuntimeError
CodegenIdentityError
Bases: Exception
ClickDataProvider
ModbusAddress
dataclass
ModbusReceiveInstruction
dataclass
ModbusRtuTarget
dataclass
ModbusSendInstruction
dataclass
Bases: Instruction
ModbusTcpTarget
dataclass
RegisterType
Bases: Enum
WordOrder
Bases: Enum
NopInstruction
ladder_to_pyrung
ladder_to_pyrung(
source: str | Path | LadderBundle,
*,
nickname_csv: str | Path | None = None,
nicknames: dict[str, str] | None = None,
analog_inputs: Iterable[str] = (),
output_path: str | Path | None = None,
validate: bool = True,
) -> str
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
source
|
str | Path | LadderBundle
|
A file path (to main.csv or a directory containing main.csv
and optional |
required |
nickname_csv
|
str | Path | None
|
Optional path to a Click nickname CSV file (Address.csv).
Read via |
None
|
nicknames
|
dict[str, str] | None
|
Optional pre-parsed |
None
|
analog_inputs
|
Iterable[str]
|
Analog input DF addresses supplied by project channel parameters; their generated tags are marked external. |
()
|
output_path
|
str | Path | None
|
Optional path to write the generated Python file.
If |
None
|
validate
|
bool
|
When True (default), run codegen self-checks: a decl-level
identity check that the generated structure defaults reconstruct
every source per-slot value (raises :class: |
True
|
Returns:
| Type | Description |
|---|---|
str
|
The generated Python source code as a string. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If both |
TypeError
|
If |
CodegenIdentityError
|
If |
ladder_to_pyrung_project
ladder_to_pyrung_project(
source: str | Path | LadderBundle,
*,
nickname_csv: str | Path | None = None,
nicknames: dict[str, str] | None = None,
analog_inputs: Iterable[str] = (),
output_dir: str | Path | None = None,
index: bool = False,
overwrite: bool = False,
machine_name: str = "PLC",
workspace_kind: WorkspaceKind = "temporary",
validate: bool = True,
) -> dict[str, str]
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
source
|
str | Path | LadderBundle
|
A file path (to main.csv or a directory containing main.csv
and optional |
required |
nickname_csv
|
str | Path | None
|
Optional path to a Click nickname CSV file (Address.csv). |
None
|
nicknames
|
dict[str, str] | None
|
Optional pre-parsed |
None
|
analog_inputs
|
Iterable[str]
|
Analog input DF addresses supplied by project channel parameters; their generated tags are marked external. |
()
|
output_dir
|
str | Path | None
|
Optional directory to write the project files into.
If |
None
|
overwrite
|
bool
|
When False (default), scaffolding files (pyproject.toml, README.md, .vscode/) are skipped if they already exist on disk. Logic files under src/plc/ are always written. |
False
|
machine_name
|
str
|
Human-readable machine name for AGENTS.md header (e.g. from the .ckp filename). |
'PLC'
|
workspace_kind
|
WorkspaceKind
|
Whether generated lifecycle guidance describes a temporary CLICK project folder or a configured persistent workspace. |
'temporary'
|
validate
|
bool
|
When True (default), run codegen self-checks (see
:func: |
True
|
Returns:
| Type | Description |
|---|---|
dict[str, str]
|
A dict mapping relative file paths to their content, e.g. |
dict[str, str]
|
|
refresh_workspace_lifecycle_guidance
pyrung_to_ladder
pyrung_to_ladder(
program: Program,
tag_map: TagMap,
*,
index: bool = False,
validate: bool = True,
) -> LadderBundle
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
program
|
Program
|
The Program to export. |
required |
tag_map
|
TagMap
|
TagMap mapping logical tags to Click hardware addresses. |
required |
index
|
bool
|
When True, number rung markers sequentially (R1, R2, ...)
instead of bare |
False
|
validate
|
bool
|
When True (default), run pre-export checks and round-trip verification. Set to False to skip validation for speed. |
True
|
Returns:
| Type | Description |
|---|---|
LadderBundle
|
A LadderBundle containing main and subroutine row matrices. |
send
send(
*,
target: str | ModbusTcpTarget | ModbusRtuTarget,
remote_start: str | ModbusAddress,
source: Tag | BlockRange,
sending: Tag,
success: Tag,
error: Tag,
exception_response: Tag,
count: int | None = None,
word_swap: bool = False,
) -> None