docs: audit Sweet Grass bin alarm PLC sources and migration gaps

This commit is contained in:
2026-10-21 19:44:28 +00:00
parent 7e5e6f9f66
commit 8728839a20
3 changed files with 55 additions and 1 deletions
+5 -1
View File
@@ -2,6 +2,10 @@
Last updated: 2026-10-21 (America/Edmonton)
## Latest Sweet Grass bin alarm audit — October 21, 2026
User identifies Main Plant PLC as old Horner and wants its alarms moved to new Codesys plant PLC. Read-only HMI audit traced 39 unique bin/equipment high/high-high/high-shutdown/full alarms: 17 Main PLC, 5 Groater PLC, 13 Codesys PLC, 4 SG Dryer. See SWEET-GRASS-GUIDE.md for exact IDs, coils, tags, enabled states and migration gaps. Air Screen/Grader/Paddy already have enabled Codesys pairs; Air Screen/Paddy retain enabled legacy pairs, Grader legacy pair disabled. Indent Codesys pair and Bin G HiHi output are configured but unpolled, with no matching Hi/HiHi HMI definitions found in targeted searches. H/J similarly named alarms span Main and Groater PLCs. No live changes or writes. Next: verify PLC-side equivalence and enable ownership before migration; original Bin G HMI control remains unfinished. This was not a full plant alarm audit.
## Pending Sweet Grass Bin G Hi-Hi control — October 21, 2026
Read AGENTS.md, PROJECT.md, HANDOFF.md, Sweet Grass guide, playbook and cloud references. Production inspection found two distinct paths: enabled ALM-436 “Bin G Full” reads main:Alm436 on Main PLC coil 4427; disabled Codesys candidate main:clean_g_binG_lvl_limits_hihi_alm_in_en maps to sg_cleaning.g.binG_lvl.limits.hihi.alm.in_en. Their relationship is unverified. Asked the user which path the HMI control should operate. No site configuration or operational writes performed. See SWEET-GRASS-GUIDE.md for verified settings and next steps. Prior Lazy B timer work remains pending independently.
@@ -56,4 +60,4 @@ Use Atom GIT to open Auto/atom-hmi-ui-chatgpt on master. Read AGENTS.md, PROJECT
### Alarm history lookup — October 21, 2026
User requested checking whether any Bin G alarm previously occurred. Opened the alarm icon → Alarm History at https://www.atomhmi.com/site_sweetgrass/alarm_history. Requested Last 30 Days (September 22–October 21, 2026), then freshly reloaded and requested October 21, and finally Yesterday (October 20). Every attempt remained on Loading... without a history table, records, or an explicit empty-result message. No browser warning/error logs were captured. Occurrence, timestamps and retention therefore remain unverified; this is not evidence of no prior Bin G alarms. No acknowledgement, reset, alarm edits, register writes or page saves performed. User-confirmed update on October 21, 2026: Atom HMI was just updated and alarm logs moved to a new database; previous history is no longer available. This supersedes the earlier plan to retry for pre-migration records. Historical Bin G occurrences cannot be determined from the current database. The migration explains unavailable prior history, but the cause of the observed Loading... UI was not independently established. The intended Bin G enable/disable alarm path remains unresolved; determine it from current configuration or user/PLC confirmation.
User requested checking whether any Bin G alarm previously occurred. Opened the alarm icon → Alarm History at https://www.atomhmi.com/site_sweetgrass/alarm_history. Requested Last 30 Days (September 22–October 21, 2026), then freshly reloaded and requested October 21, and finally Yesterday (October 20). Every attempt remained on Loading... without a history table, records, or an explicit empty-result message. No browser warning/error logs were captured. Occurrence, timestamps and retention therefore remain unverified; this is not evidence of no prior Bin G alarms. No acknowledgement, reset, alarm edits, register writes or page saves performed. User-confirmed update on October 21, 2026: Atom HMI was just updated and alarm logs moved to a new database; previous history is no longer available. This supersedes the earlier plan to retry for pre-migration records. Historical Bin G occurrences cannot be determined from the current database. The migration explains unavailable prior history, but the cause of the observed Loading... UI was not independently established. The intended Bin G enable/disable alarm path remains unresolved; determine it from current configuration or user/PLC confirmation.
+4
View File
@@ -52,3 +52,7 @@ Cloud guide links:
October 21 follow-up: corrected the KAV East Water Wells series for water:g_well30_flow_out_eu from Well 29 to Well 30. Saved and verified after fresh configuration reload and on the live chart legend; bindings and other chart settings preserved. See KAV-GUIDE.md.
October 21 Lazy B follow-up: attempted to verify Well 3 timer replacements. Water System register searches found no tss, totalTmr, runtime or wellNW1 entries. Existing daily counters and disabled well3_i_UTS do not establish the requested timer semantics. No site changes made; awaiting correct PLC tags, units and lifetime runtime write semantics. See LAZY-B-GUIDE.md.
## Sweet Grass alarm migration direction — October 21, 2026
User identifies the old Main Plant PLC as Horner and wants its alarms migrated to the new Codesys plant PLC. HMI slave IDs are main_plc (Main PLC) and codesys_plc (Codesys PLC); groater_plc and sg_dryer are separate sources. SWEET-GRASS-GUIDE.md now maps 39 bin/equipment high/full alarms and migration gaps. Source reassignment and PLC logic equivalence remain unperformed/unverified. User also confirms the recent Atom HMI upgrade moved alarm logs to a new database, making previous history unavailable.
+46
View File
@@ -86,3 +86,49 @@ Asked whether the intended control is the Codesys level Hi-Hi alarm or the exist
### Alarm history lookup — October 21, 2026
User requested checking whether any Bin G alarm previously occurred. Opened the alarm icon → Alarm History at https://www.atomhmi.com/site_sweetgrass/alarm_history. Requested Last 30 Days (September 22–October 21, 2026), then freshly reloaded and requested October 21, and finally Yesterday (October 20). Every attempt remained on Loading... without a history table, records, or an explicit empty-result message. No browser warning/error logs were captured. Occurrence, timestamps and retention therefore remain unverified; this is not evidence of no prior Bin G alarms. No acknowledgement, reset, alarm edits, register writes or page saves performed. User-confirmed update on October 21, 2026: Atom HMI was just updated and alarm logs moved to a new database; previous history is no longer available. This supersedes the earlier plan to retry for pre-migration records. Historical Bin G occurrences cannot be determined from the current database. The migration explains unavailable prior history, but the cause of the observed Loading... UI was not independently established. The intended Bin G enable/disable alarm path remains unresolved; determine it from current configuration or user/PLC confirmation.
## Bin Hi/Hi-Hi alarm source audit — October 21, 2026
User-confirmed direction: the old Main Plant PLC is a Horner; alarms formerly on it should move to the new Codesys plant PLC. This audit reads HMI configuration, not PLC source logic. Configured source slave establishes where Atom reads an alarm bit; it does not prove whether that PLC computes or forwards it.
Production https://www.atomhmi.com/site_sweetgrass/; device Main PC (main). Inspected 39 unique high/high-high/high-shutdown/full HMI alarm definitions and their source registers: 17 Main PLC, 5 Groater PLC, 13 Codesys PLC, 4 SG Dryer. Included equipment level messages that omit "bin"; not a full plant alarm migration audit. No site configuration saves, polling changes, acknowledgements, resets, commands or PLC writes.
### Legacy Main PLC (main_plc; user identifies old Horner)
Each ALM-NNN calculation is exactly `|{register:main:AlmNNN}|`. All 17 source registers have polling Enabled checked. Modbus slave ID 1, Coil addresses shown as configured (no address-base conversion).
| Equipment / messages | HMI alarm IDs | Source register IDs | Coils | HMI alarm enabled |
| --- | --- | --- | --- | --- |
| Air Screen Bin Level High Alarm / High Shutdown | ALM-014 / ALM-015 | Alm014 / Alm015 | 4005 / 4006 | Both Yes |
| Indent Bin Level High Alarm / High Shutdown | ALM-019 / ALM-020 | Alm019 / Alm020 | 4010 / 4011 | Both Yes |
| Grader Bin Level High Alarm / High Shutdown | ALM-024 / ALM-025 | Alm024 / Alm025 | 4015 / 4016 | Both No |
| Paddy Bin Level High Alarm / High Shutdown | ALM-064 / ALM-065 | Alm064 / Alm065 | 4055 / 4056 | Both Yes |
| Bin H Level Hi / HiHi | ALM-124 / ALM-125 | Alm124 / Alm125 | 4115 / 4116 | Both Yes |
| Bin J Level Hi / HiHi | ALM-134 / ALM-135 | Alm134 / Alm135 | 4125 / 4126 | Both Yes |
| Bagging Bin Level Hi / HiHi | ALM-139 / ALM-140 | Alm139 / Alm140 | 4130 / 4131 | Hi No; HiHi Yes |
| Bin 21 High Level | ALM-343 | Alm343 | 4334 | Yes |
| Screenings Bin Full | ALM-435 | Alm435 | 4426 | Yes |
| Bin G Full | ALM-436 | Alm436 | 4427 | Yes |
### Other PLCs must remain distinct
Groater PLC (groater_plc), Modbus slave 1, Coil: ALM-1410 Bin H Hi → Alm1410/4401; ALM-1411 Bin H HiHi → Alm1411/4402; ALM-1412 Bin J Hi → Alm1412/4403; ALM-1413 Bin J HiHi → Alm1413/4404; ALM-1414 Bin i Hi → Alm1414/4405. All HMI alarms and source polling enabled. Calculations reference their respective main:AlmNNNN register. The H/J entries are not the same source as the Main PLC "Level" entries.
Codesys PLC (codesys_plc): existing HMI alarm IDs and source register IDs are identical:
- clean_g_bin01_lvl_limits_hi_alm_out through bin06, plus bin11: messages Bin 1–6 / 11 High Level; all HMI alarms and polling enabled. Addresses individually verified: sg_cleaning.g.binNN_lvl.limits.hi.alm.out.
- clean_g_m08_lvl_limits_hi_alm_out and ...hihi_alm_out: M08 Air Screen Level Hi / Hi Hi.
- clean_g_m12_lvl_limits_hi_alm_out and ...hihi_alm_out: M12 Grader Level Hi / Hi Hi.
- clean_g_m14_lvl_limits_hi_alm_out and ...hihi_alm_out: M14 Paddy Level Hi / Hi Hi.
All six equipment alarms and source polling enabled; addresses individually verified as sg_cleaning.g.mNN_lvl.limits.hi.alm.out or .hihi.alm.out. Every calculation directly references its matching main: register. Thus Air Screen/Paddy retain enabled Horner and enabled Codesys alarm paths; Grader's Horner definitions are already disabled. Similar equipment names establish migration candidates, not proven equivalence of thresholds, delays, inputs or shutdown logic.
SG Dryer (sg_dryer): four enabled HMI alarms and enabled source registers: dryer_g_bin21Lvl_limits_hi_alm_out, ...bin21Lvl_limits_hihi_alm_out, ...bin22Lvl_limits_hi_alm_out, ...bin22Lvl_limits_hihi_alm_out. Direct matching-register calculations. Addresses individually verified as sg_dryer.g.bin21Lvl/22Lvl.limits.hi/hihi.alm.out. Do not classify these as the Codesys plant slave merely because addresses use symbolic tags.
### Replacement gaps and next steps
- Indent: candidate Codesys registers clean_g_m10_lvl_limits_hi_alm_out and ...hihi_alm_out both exist, individually mapped to codesys_plc tags sg_cleaning.g.m10_lvl.limits.hi/hihi.alm.out, but polling disabled. Alarm search m10_lvl returned over/under fault definitions only, no Hi/HiHi definitions.
- Bin G: clean_g_binG_lvl_limits_hihi_alm_out individually verified on codesys_plc at sg_cleaning.g.binG_lvl.limits.hihi.alm.out; polling disabled. Register table also shows Hi output disabled. Alarm search binG returned no matches; "Bin G Full" ALM-436 still reads Main PLC. Earlier alarm-enable candidate .hihi.alm.in_en remains unpolled and untested.
- Numbered bins 1–6 and 11 have HiHi output register definitions, polling disabled; inspected bin-message inventory has only their Hi alarm definitions.
- Register tables also show A/B/C/F/G/T Hi and HiHi output definitions unpolled. Their complete mappings and intended service were not audited.
- No Codesys replacements for Main PLC Bin H/J/Bagging/Screenings were verified in this pass. Bin 21 has a verified SG Dryer alternative, not an established plant-Codesys replacement.
- Next: compare controller program mapping, sensor identity, thresholds, delays, enable ownership and shutdown semantics before replacing sources. Start with existing Air Screen/Grader/Paddy Codesys pairs, then address Indent and Bin G gaps. Preserve alarm messages, notifications and required behavior, and avoid duplicate notifications during cutover. Do not retire Groater/Dryer alarms as part of a Horner-only migration without verifying scope.
- The user-confirmed database migration means pre-update alarm history is unavailable; it cannot establish whether a legacy path was used.