# `init_plc_config` (procedure) - **Type:** PROCEDURE - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `sNodeData` | `longtext` | | 2 | IN | `sIp` | `varchar(100)` | | 3 | IN | `iSemens` | `int` | | 4 | IN | `iDbName` | `int` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE PROCEDURE `init_plc_config`'`._ ## Narrative **Business context:** PLC 集成 / 设备数据采集 — DBA seeding tool that bulk-populates `plc_machineaddrmap_import` (the PLC address-map import-staging table) with the per-tag config for 12 sibling machines that share the same Siemens DB layout but differ in `sMachineNo` and `iPlcsStatusAdd` offset. **What it does:** `TRUNCATE`s `plc_machineaddrmap_import`, then loops `sMachineNo = 1..12`. Each iteration parses the JSON `sNodeData` via `JSON_TABLE` to extract `C_name/name/data_type/length/offset/plc_no_start`, and inserts one row per JSON tag with `iPlcsStatusAdd = (sMachineNo-1) * (sDataType='Real' ? sMachineNo : 2) + offset` — i.e. each machine gets its tag block stamped at a stride-shifted PLC address. **Invocation:** Status: appears orphaned. No form-master, gdsmodule hook, routine caller, or xly-src reference. DBA-driven; the hardcoded brand/subsidiary literal `'1111111111'` and the magic `12`-machine loop bound confirm this is a one-shot import helper for a specific deployment rather than a tenant-aware production path.