| project_statsInventory of the TIA project: PLCs, block counts by type and language, and the fidelity roll-up saying how much of the project is actually readable. | Inventory of the TIA project: PLCs, block counts by type and language, and the fidelity roll-up saying how much of the project is actually readable. |
|---|
| list_blocksList blocks in the project. | List blocks in the project. |
|---|
| get_blockThe full record for one block: interface tree, per-network logic as SCL, calls, and read/write edges. | The full record for one block: interface tree, per-network logic as SCL, calls, and read/write edges. |
|---|
| who_writes_tagEvery place a tag or variable is WRITTEN, with the block, network, and the logic that writes it. | Every place a tag or variable is WRITTEN, with the block, network, and the logic that writes it. |
|---|
| who_reads_tagEvery place a tag or variable is READ, with block, network and the reading logic. | Every place a tag or variable is READ, with block, network and the reading logic. |
|---|
| who_callsWhich blocks call the given block, with the instance name used. | Which blocks call the given block, with the instance name used. |
|---|
| what_block_callsWhich blocks the given block calls (callees, from CallInfo), including the instance DB used — the downward half of the call graph; who_calls is the upward half. | Which blocks the given block calls (callees, from CallInfo), including the instance DB used — the downward half of the call graph; who_calls is the upward half. |
|---|
| unreachable_blocksCode blocks never reached from any OB — dead code candidates. | Code blocks never reached from any OB — dead code candidates. |
|---|
| search_projectRanked free-text search across block names, titles, comments and logic — and HMI content (screen texts, tag bindings, events). | Ranked free-text search across block names, titles, comments and logic — and HMI content (screen texts, tag bindings, events). |
|---|
| list_screensHMI screens, templates and popups in the scanned project — name, device, object count and fidelity. | HMI screens, templates and popups in the scanned project — name, device, object count and fidelity. |
|---|
| get_screenThe full record for one HMI screen: every object with its texts, tag bindings, animations and events, plus the tags_used and navigation rollups. | The full record for one HMI screen: every object with its texts, tag bindings, animations and events, plus the tags_used and navigation rollups. |
|---|
| hmi_tag_mapEvery HMI tag with its table, connection and the screens using it (joined by name over each screen's tags_used). | Every HMI tag with its table, connection and the screens using it (joined by name over each screen's tags_used). |
|---|
| where_is_tag_used_on_hmiWhere a PLC-side symbol shows up on the HMI: screens whose tags_used match and HMI tag tables whose tag names match. | Where a PLC-side symbol shows up on the HMI: screens whose tags_used match and HMI tag tables whose tag names match. |
|---|
| tia_statusLive environment check: installed TIA Portal Openness versions, whether a TIA Portal process is running (with PIDs), the cache being served and whether it is stale, and the scanner version. | Live environment check: installed TIA Portal Openness versions, whether a TIA Portal process is running (with PIDs), the cache being served and whether it is stale, and the scanner version. |
|---|
| refresh_scanRe-scan the exports folder into the cache this server is serving, then reload the index in place, so the cache tools answer from fresh data. | Re-scan the exports folder into the cache this server is serving, then reload the index in place, so the cache tools answer from fresh data. |
|---|
| backup_projectZip the whole project folder to a restore point beside it — the same backup every write tool takes automatically, on demand. | Zip the whole project folder to a restore point beside it — the same backup every write tool takes automatically, on demand. |
|---|
| list_devicesThe REAL project's hardware tree: devices, plugged modules, article numbers, firmware and I/O address ranges. | The REAL project's hardware tree: devices, plugged modules, article numbers, firmware and I/O address ranges. |
|---|
| generate_equipmentGenerate PLC code for pumps, valves and motors from proven templates, named per the SCL naming convention: FB FB_Pump/FB_Valve/FB_Motor (feedback supervision, thermal trip, latched faults with reset), one instance DB per equipment (IDB_Pump_P101), command struct in DB_Equipment, PLC tags I_P101_Running/Q_P101_Run in a tag table, and an FC 'Equipment' calling every instance. | Generate PLC code for pumps, valves and motors from proven templates, named per the SCL naming convention: FB FB_Pump/FB_Valve/FB_Motor (feedback supervision, thermal trip, latched faults with reset), one instance DB per equipment (IDB_Pump_P101), command struct in DB_Equipment, PLC tags I_P101_Running/Q_P101_Run in a tag table, and an FC 'Equipment' calling every instance. |
|---|
| io_list_importTurn an electrical I/O list (CSV or XLSX; columns Name/Tag, Address, optional Type, Comment, Table, Station, Module, OrderNumber, Firmware, Slot — English/German/Dutch headers recognised) into PLC tag tables (TagTables/*.xml for build_from_source), a hardware.json module plan, and an AutomationML file for hardware_import. | Turn an electrical I/O list (CSV or XLSX; columns Name/Tag, Address, optional Type, Comment, Table, Station, Module, OrderNumber, Firmware, Slot — English/German/Dutch headers recognised) into PLC tag tables (TagTables/*.xml for build_from_source), a hardware.json module plan, and an AutomationML file for hardware_import. |
|---|
| generate_alarmsGenerate a bit-coded alarm system: DB_Alarms (alarm Words), FC 'Alarms' packing each trigger into its bit, a WinCC Comfort/Advanced discrete-alarm CSV, the HMI tag list, and a Unified alarm spec for unified_build. | Generate a bit-coded alarm system: DB_Alarms (alarm Words), FC 'Alarms' packing each trigger into its bit, a WinCC Comfort/Advanced discrete-alarm CSV, the HMI tag list, and a Unified alarm spec for unified_build. |
|---|
| project_diffCompare two scans (.tiax caches) — e.g. | Compare two scans (.tiax caches) — e.g. |
|---|
| export_docsWrite project documentation from the cache: block catalogue, per-block interface tables, calls / called-by, tag tables with addresses, HMI screen inventory. | Write project documentation from the cache: block catalogue, per-block interface tables, calls / called-by, tag tables with addresses, HMI screen inventory. |
|---|
| library_listList the types (blocks, PLC data types, faceplates…) of the project library or a global library, with versions, states and the default version. | List the types (blocks, PLC data types, faceplates…) of the project library or a global library, with versions, states and the default version. |
|---|
| plc_onlineOnline state of a PLC (Offline/Connecting/Online/Incompatible…) and the PC interfaces TIA can reach it through — run before plc_download to pick pc_interface. | Online state of a PLC (Offline/Connecting/Online/Incompatible…) and the PC interfaces TIA can reach it through — run before plc_download to pick pc_interface. |
|---|
| explain_errorLook up an error message (TIA Portal, Openness, compiler, import, tiax) in the field-proven knowledge base and return the matching entries with their rule and fix. | Look up an error message (TIA Portal, Openness, compiler, import, tiax) in the field-proven knowledge base and return the matching entries with their rule and fix. |
|---|
| verify_changeThe verify gate between a baseline cache and the cache taken after a change: 1 blast radius vs the declared targets (instance DBs of a target allowed), 2 block attributes (author, family, version, language, safety, memory layout), 3 interface (start value changes = warning), 4 scan shape (counts, failure ledger, readable %, fidelity regressions), 5 remanence and External* per member. | The verify gate between a baseline cache and the cache taken after a change: 1 blast radius vs the declared targets (instance DBs of a target allowed), 2 block attributes (author, family, version, language, safety, memory layout), 3 interface (start value changes = warning), 4 scan shape (counts, failure ledger, readable %, fidelity regressions), 5 remanence and External* per member. |
|---|
| audit_projectAudit the scanned project: multiple writers, declared-never-written and written-never-read members, unwired FB inputs at call sites, POKE/PEEK/BLKMOV with literal offsets, retain in volatile DBs and mixed lifetimes, external HMI tags with no PLC match (by name), lossy renderings, and the Modbus register-map self-check on Standard-layout DBs. | Audit the scanned project: multiple writers, declared-never-written and written-never-read members, unwired FB inputs at call sites, POKE/PEEK/BLKMOV with literal offsets, retain in volatile DBs and mixed lifetimes, external HMI tags with no PLC match (by name), lossy renderings, and the Modbus register-map self-check on Standard-layout DBs. |
|---|
| finding_verdictRecord a verdict on an audit finding (by fingerprint from audit_project): accepted (real, will fix or live with), false_positive, wont_fix, or open again. | Record a verdict on an audit finding (by fingerprint from audit_project): accepted (real, will fix or live with), false_positive, wont_fix, or open again. |
|---|
| workspace_initCreate the project workspace (the per-project work folder: tiatool.workspace.json, journal.jsonl, plan.json, assumptions.md, decisions.md, findings.json — plain text, git-friendly). | Create the project workspace (the per-project work folder: tiatool.workspace.json, journal.jsonl, plan.json, assumptions.md, decisions.md, findings.json — plain text, git-friendly). |
|---|
| workspace_statusOne-call situation report: workspace, cache freshness and format, active baseline, licence, plan task counts, last writes with their verify results, open assumptions and findings, and the suggested next step. | One-call situation report: workspace, cache freshness and format, active baseline, licence, plan task counts, last writes with their verify results, open assumptions and findings, and the suggested next step. |
|---|
| taskThe change plan (plan.json). | The change plan (plan.json). |
|---|
| assumptionThe numbered assumptions register (assumptions.md; knowledge/standards/assumptions-register.md). | The numbered assumptions register (assumptions.md; knowledge/standards/assumptions-register.md). |
|---|
| decision_addAppend a decision to decisions.md (what was decided, why, by whom). | Append a decision to decisions.md (what was decided, why, by whom). |
|---|
| baseline_setFreeze the current cache as a named baseline (copied to snapshots/<name>) and make it the active baseline that verify_change and project_diff compare against. | Freeze the current cache as a named baseline (copied to snapshots/<name>) and make it the active baseline that verify_change and project_diff compare against. |
|---|
| template_listList the equipment templates (built-in, %APPDATA%\TIATool\templates overrides, <workspace>/templates overrides) with version, FB name, signal/alarm counts and where each comes from. | List the equipment templates (built-in, %APPDATA%\TIATool\templates overrides, <workspace>/templates overrides) with version, FB name, signal/alarm counts and where each comes from. |
|---|
| template_showShow one template: signals (role, direction, type, required), parameters with defaults and units, HMI commands and statuses, interlock input, ISA-18.2 alarms, compliance notes (to confirm), SimHarness tests, and the SclSelfCheck result. | Show one template: signals (role, direction, type, required), parameters with defaults and units, HMI commands and statuses, interlock input, ISA-18.2 alarms, compliance notes (to confirm), SimHarness tests, and the SclSelfCheck result. |
|---|
| model_validateCheck the equipment model (<workspace>/model/equipment.json, schema tiatool.equipment/1) without TIA Portal: templates exist, io roles and addresses (direction, size, clashes across the whole model), params, interlocks and cross-references (TAG.status), alarm overrides, cultures and CPU family. | Check the equipment model (<workspace>/model/equipment.json, schema tiatool.equipment/1) without TIA Portal: templates exist, io roles and addresses (direction, size, clashes across the whole model), params, interlocks and cross-references (TAG.status), alarm overrides, cultures and CPU family. |
|---|
| model_generateGenerate a build_from_source folder from the equipment model into <workspace>/build/<batch>/: UDTs, the used template FBs, instance DBs, the DB_HMI command/status interface DB, Equipment/Comms/CyclicControl FCs with interlocks, tag tables per area, alarms in every culture, SimHarness specs, Markdown docs (equipment list, as-built I/O, ISA-18.2 alarm list, HMI interface manual) and generation.json. | Generate a build_from_source folder from the equipment model into <workspace>/build/<batch>/: UDTs, the used template FBs, instance DBs, the DB_HMI command/status interface DB, Equipment/Comms/CyclicControl FCs with interlocks, tag tables per area, alarms in every culture, SimHarness specs, Markdown docs (equipment list, as-built I/O, ISA-18.2 alarm list, HMI interface manual) and generation.json. |
|---|
| model_from_io_listDraft model/equipment.json from an I/O list (CSV/XLSX/tab text with name, address, type, comment, table): tags like I_BP1_Running / Q_BP1_Run are grouped by equipment and matched to the template whose signals fit best. | Draft model/equipment.json from an I/O list (CSV/XLSX/tab text with name, address, type, comment, table): tags like I_BP1_Running / Q_BP1_Run are grouped by equipment and matched to the template whose signals fit best. |
|---|
| template_extractTurn an FB from the scanned project (cache) into a template skeleton in <workspace>/templates/<id>/ (template.json + fb.scl): interface → parameters and statuses; the body is copied only when the block's fidelity is native SCL. | Turn an FB from the scanned project (cache) into a template skeleton in <workspace>/templates/<id>/ (template.json + fb.scl): interface → parameters and statuses; the body is copied only when the block's fidelity is native SCL. |
|---|
| openness_browseExplore the LIVE Openness object model of the project — anything Openness exposes, including what no dedicated tool covers. | Explore the LIVE Openness object model of the project — anything Openness exposes, including what no dedicated tool covers. |
|---|
| openness_getRead ONE attribute of a live Openness object, with its access mode and types. | Read ONE attribute of a live Openness object, with its access mode and types. |
|---|
| find_toolSearch the FULL tool catalog by name and description — including tools this session does not list (tiax-agent --toolset). | Search the FULL tool catalog by name and description — including tools this session does not list (tiax-agent --toolset). |
|---|
| script_checkCompile a C# Openness script and check it against the guard rail — nothing runs and no project is opened. | Compile a C# Openness script and check it against the guard rail — nothing runs and no project is opened. |
|---|
| extension_savePromote a script that compiled AND ran successfully in this session (script_run) to a reusable extension: writes <workspace>/extensions/<id>/extension.json + script.cs (or %APPDATA%\TIATool\extensions without a workspace) with provenance (script sha256, run_id) and status unverified. | Promote a script that compiled AND ran successfully in this session (script_run) to a reusable extension: writes <workspace>/extensions/<id>/extension.json + script.cs (or %APPDATA%\TIATool\extensions without a workspace) with provenance (script sha256, run_id) and status unverified. |
|---|
| extension_listSearch the extension library: built-in pack (~40 live Openness scripts + offline cache queries: watch/force tables, text lists, technology objects, libraries, network, HMI, UMAC, tags, UDTs, blocks...), then %APPDATA%\TIATool\extensions and <workspace>/extensions overrides. | Search the extension library: built-in pack (~40 live Openness scripts + offline cache queries: watch/force tables, text lists, technology objects, libraries, network, HMI, UMAC, tags, UDTs, blocks...), then %APPDATA%\TIATool\extensions and <workspace>/extensions overrides. |
|---|
| extension_showOne extension in full: manifest (description, parameters as JSON Schema, mode, min_tia, status, provenance), where it comes from (builtin / user / workspace override) and its code (script.cs or query.js). | One extension in full: manifest (description, parameters as JSON Schema, mode, min_tia, status, provenance), where it comes from (builtin / user / workspace override) and its code (script.cs or query.js). |
|---|
| cache_queryRun JavaScript over the scanned cache — offline, read-only, no TIA Portal — for any question the fixed cache tools do not answer. | Run JavaScript over the scanned cache — offline, read-only, no TIA Portal — for any question the fixed cache tools do not answer. |
|---|
| knowledge_addRecord what this session learned so the next one does not hit it again: writes a knowledge-base entry (<workspace>/knowledge/learned/<slug>.md, or %APPDATA%\TIATool\knowledge\learned without a workspace) in the built-in format. | Record what this session learned so the next one does not hit it again: writes a knowledge-base entry (<workspace>/knowledge/learned/<slug>.md, or %APPDATA%\TIATool\knowledge\learned without a workspace) in the built-in format. |
|---|
| project_archiveArchive the REAL project to a compressed .zapNN file (Project.Archive). | Archive the REAL project to a compressed .zapNN file (Project.Archive). |
|---|
| project_retrieveRetrieve a .zapNN archive into a NEW folder (missing or empty) and report the project file found there. | Retrieve a .zapNN archive into a NEW folder (missing or empty) and report the project file found there. |
|---|
| scl_lintCheck SCL source text before it goes anywhere near TIA: every FUNCTION_BLOCK, FUNCTION, DATA_BLOCK, TYPE and ORGANIZATION_BLOCK, with line numbers. | Check SCL source text before it goes anywhere near TIA: every FUNCTION_BLOCK, FUNCTION, DATA_BLOCK, TYPE and ORGANIZATION_BLOCK, with line numbers. |
|---|
| plc_compare_onlinecompare the REAL project's PLC software with what runs on the PLC (offline vs online, the CompareToOnline tree) and list what differs. | compare the REAL project's PLC software with what runs on the PLC (offline vs online, the CompareToOnline tree) and list what differs. |
|---|