Files

11 KiB
Raw Permalink Blame History

Lazy B Farm & Ranch site guide

Verified through production Configure Pages and native element Copy on 2026-10-21 (America/Edmonton). This was a read-only context survey: no page saves, pastes, register writes, alarm changes, device actions, or operational command tests. Bindings describe the configured UI, not proven PLC behavior. No credentials or camera/map endpoints are retained.

Identity and scope

Production: https://www.atomhmi.com/site_lazy_b/
Configure: https://www.atomhmi.com/site_lazy_b/configure_pages

All 21 page trees were opened on October 21. Native Copy inspected representative main, sequence, water, valve, compressor and boiler subtrees. The site combines water/heating (water device prefix) and grain handling (grain). Development equivalence, PLC tag addresses, polling/logging and alarm latching were not verified.

Page map

Configure label Slug Role / roots
Main main Trend + Wells and Pumps
Outflow outflow div + row; 127 elements
Well 1 well_1 div + operating row + information/map row; 111 elements
Well 2 well_2 same three-root layout; 104 elements after timer removal
Well 3 well_3 same three-root layout; includes motor/speed control
Air Compressor air layout div + all operating root
Boiler boiler layout div + row operating root
House Valve valve spacer + all operating root
Alarms alarms spacer + all; 16 elements
Grain Alarms grain_alarms Main; 209 elements
Grain Motors grain_motors Motors; 357 elements
Receiving receiving Control Row; 77 elements
Receiving Start Stop Delays rec_startstopdelays Motors; 52 elements
Reclaim reclaim Control Row; 91 elements
Reclaim Start/Stop Delays rcl_startstopdelays Motors; 112 elements
Loadout loadout Control Row; 23 elements
Device Status (Grain) device_status_grain All; 111 elements
Device Status (Water) device_status_water All; 106 elements
Settings settings div + Wells and Pumps; 65 elements
Testing testing one Adjustible Gauge named Well 1 Flow rate
testing grounds test Trend; 60 elements

Navigation table listed Grain Motors, Loadout, main, Main, Outflow, Receiving, Reclaim, Settings. Both main and Main target page_main. No cleanup performed. Well 1's inspected tree contains displays/charts and no switch/button motor-control types, while Wells 2 and 3 include controls. Do not assume the three wells have identical templates.

Water examples: Well 3

Copied operating row contains 55 elements:

Role Binding Display/configuration
Flow water:aiWell3Flow_eu gpm; gauge 0–25
Level water:aiWell3Lvl_eu ft
Run feedback water:well3_q_run On/Off
Mode water:well3_i_autoMode 1 Auto / 0 Manual; separate run feedback
Start / Stop water:well3_i_manStart / well3_i_manStop each writes 1
Off / On level SP water:well3OffLvlSP / well3OnLvlSP editable, 0–100%
Flow SP water:Well3PIDSP editable, 0–30 gpm
Manual speed water:Well3SpeedRefManSP editable, 0–90 Hz
Today / Yesterday volume water:iWell3Vol_volDaily[0] / [1] gal
Power water:well3Power_kw kW
Energy water:well3Power_today_kwh / month_kwh / lastMonth_kwh kWh
Historical levels water:aiWell3LvlAgg_Past24Avg / Max / Min ft

Current flow/level chart navigator is water:aiWell3Flow_eu. Historical level navigator is water:aiWell3LvlAgg_Past24Avg, default button index 1. The information/map/report root is separate; preserve it during control-page replacement and do not publish its location details unnecessarily.

Resolved by removal — October 21, 2026: at the user's request, removed Time Since Start and Hours from production Well 2 (well_2) and Well 3 (well_3). Both pages had copied wellNW1 references with no verified corresponding Water System timer registers. Removed only elements 3a7413f1-6213-44be-842c-350f715ceb6d and c8a9b2ea-35d5-448b-9d68-756715e25df6 (Well 2), and 6e6f612c-c2e5-4ee9-a468-849e6191b523 and 4e613f5b-e0e3-4526-88dd-b9a81695d75e (Well 3). Saved both pages and freshly reopened: Well 2 element count 106→104; Well 3 124→122; the only removed IDs were these four and no elements were added. Runtime pages show the remaining motor controls without timer fields. Well 1 has no timer fields and was unchanged. Local native Copy backups: /tmp/lazy-b-well-timer-removal-backup.json. No PLC counters were reset, register definitions altered, or operational commands submitted. Removal supersedes the earlier request to locate replacement timer bindings; adding timers later requires verified PLC tags/units.

Historical audit before removal — October 21, 2026: rechecked production Well 3 (well_3). Time Since Start, element 6e6f612c-c2e5-4ee9-a468-849e6191b523, then read |{register:water:wellNW1_tssTmr}| * 1000, non-editable, HH:mm:ss, blank updateRegister. Hours, element 4e613f5b-e0e3-4526-88dd-b9a81695d75e, then read |{register:water:wellNW1_totalTmr}| * 1000, editable, writes value / 1000 to water:wellNW1_totalTmr, format d [days] HH:mm. Captured both original configurations and left them unchanged. The Water System (water) register table contained 1,660 entries; searches for tss, totalTmr, runtime and wellNW1 returned no matches. The Well 3 family has no verified replacement for either timer. Existing enabled iWell3Vol_rtDaily[0] / [1] are daily counters, not established equivalents of time-since-start or lifetime Hours; units were not independently verified. well3Power_total_onTime exists disabled and is likewise not a verified replacement. Disabled well3_i_UTS has blank description, slave Well Shack 2080-LC20-20QBB, address well3.i.UTS; its role/units do not establish a timer binding. Do not invent well3_tssTmr/well3_totalTmr mappings or enable an unrelated counter. Initially requested correct PLC tags, units and lifetime-counter write semantics; the user subsequently chose removal instead. No page/register saves, counter resets, polling changes or operational tests were performed.

Valve, compressor and boiler

House Valve:

  • Feedback reads water:doHouseVlvOp and water:doHouseVlvCl.
  • Mode water:HouseVlvAuto, 1/0.
  • Open / Close / Stop → water:HouseVlvCmdOpen / HouseVlvCmdClose / HouseVlvCmdStop, each 1.
  • Maintain Pressure water:spHousePrs and Deadband water:spHouseVlvCtrlDb, direct editable values with configured limits 0–100 psi.

Air Compressor:

  • Feedback water:AirComp_q_run; mode AirComp_i_autoMode, 1/0.
  • Start/Stop → water:AirComp_i_manStart / AirComp_i_manStop, each 1.
  • On Time displays water:AirCompTimeSP * 1000 in Timespan (ms), writes value / 1000. Preserve conversion symmetry.

Boiler:

  • Pressure water:aiBoilerPrs_eu, psi.
  • Water temperature water:aiBoilerTe_eu, °F.
  • Outside temperature water:aiAmbianteu, °C.
  • Trend uses separate case-sensitive scales temp (0–200 °F), psi (0–20), Temp (-40–40 °C), navigator water:aiBoilerTe_eu.
  • Internal element names such as Well 3 Water Temp / boiler water temp do not reliably describe their displayed binding.

Grain sequences

Function Receiving Reclaim
Status grain:g_rec_out_status grain:g_rcl_out_status
Destination/source selection grain:g_b_recDstIdx grain:g_b_rclSrcIdx
Start grain:g_rec_in_manStart = 1 grain:g_rcl_in_manStart = 1
Normal stop grain:g_rec_in_manStop = 1 grain:g_rcl_in_manStop = 1
Rapid stop grain:g_hmiRecRpdStp = 1 grain:g_hmiRclRpdStp = 1
Timed-stop value grain:g_rec_in_manOnMaxSP grain:g_rcl_in_manOnMaxSP

Both timed-stop fields use Timespan (ms), direct writeValue=value, configured limits 0–356400000 and HH:mm:ss. Their disable buttons write 0 to the same target. Receiving enable uses grain:g_recEn (1/0). Its chart includes M01/M03/M04 speed % and current A; navigator grain:g_m01_out_current.

Receiving also shows M02Temp, M01, M02, M03, M04 feedback. M03 current control uses grain:g_m03CurCtlEn, g_m03CurSp, g_m03PID_Kp and g_m03PID_Tn. Kp/Tn limits=false despite populated 0/100 fields. Tn's displayed suffix is KP, a possible label issue left unchanged.

Reclaim includes M21–M29 run feedback among its motor cards. Reopen the precise motor before adapting it.

Loadout controls M41:

  • Position buttons target grain:g_m41_in_autoPos with values 0,20,40,60,80,100.
  • Mode grain:g_m41_in_autoMode (1/0); Open/Stop/Close grain:g_m41_in_manOpen/manStop/manClose, each 1.
  • One internal name is 100% Button but its configured value is 80; another writes 100. Internal element names alone are insufficient to establish a button's behavior.
  • Status expression references grain:g_m41_out_fault/open/close. No claim about physical valve movement or interlocks.

User-authorized production graph change at https://www.atomhmi.com/site_lazy_b/ (the requested site_lazyb resolves in project context to Lazy B, site_lazy_b). Edited existing Trend forms through Configure Pages; no register definitions, polling, setpoints or operational commands changed.

  • Receiving (page_receiving), Trend 8ba2e7b6-c517-4a04-b8db-aa9479111724: retained six speed/current series and added M01 RPM, M02 RPM, M03 RPM, M04 RPM, bound respectively to grain:g_m01Spd_out_eu through grain:g_m04Spd_out_eu. Colors: M01 blue #0072B2; M02 vermilion #D55E00; M03 green #009E73; M04 purple #CC79A7.
  • Reclaim (page_reclaim), Trend 88723cfc-585b-4e32-bf0f-fdacca341fca: retained M31 speed/current and added M29 RPM (blue #0072B2), M30 RPM (vermilion #D55E00), M31 RPM (green #009E73), using grain:g_m29Spd_out_eu, grain:g_m30Spd_out_eu, grain:g_m31Spd_out_eu.
  • Each graph has its own RPM scale (name/id RPM), min 0, automatic maximum, opposite true, neutral #444444 title/labels. The native renderer adds tickAmount "7". Colors distinguish RPM sensors within each sequence graph; they do not indicate alarm state.
  • Verified these RPM bindings from existing read-only numerical displays. M02TEMP and M02 both reference g_m02Spd_out_eu; charted this sensor once as M02 RPM. Separate physical sensor ownership for M02TEMP remains unverified. M21–M28 cards on Reclaim have no RPM display. Grain Motors has no Trend components in its current editor tree.
  • Saved both pages and freshly reloaded/reopened native Copy configurations. Full subtree comparisons, excluding regenerated data.id values, matched the intended series/scale additions plus native tickAmount only. Original element IDs and other configuration were retained. Fresh runtime pages show all seven RPM legend entries and RPM axes. Motors were off at verification; nonzero historical RPM plotting was not established.
  • Local originals: /tmp/lazy-b-rpm-backup.json. Runtime screenshots: /tmp/lazy-b-receiving-rpm.png and /tmp/lazy-b-reclaim-rpm.png. These local artifacts are not committed.

Future use

Use Main/Settings for navigation context, the specific well for water, Receiving/Reclaim for sequence controls, and Grain Motors for individual equipment. Diagnostics contains consequential maintenance actions; inspect its element configuration without clicking the operational buttons. Treat alarms pages as UI content, not an audit of Manage Alarms definitions. Test-named pages are existing content, not authorized disposable pages.