108 lines
7.0 KiB
Markdown
108 lines
7.0 KiB
Markdown
# 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; 106 elements |
|
||
| 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.
|
||
|
||
**Unresolved timer reference:** Well 3's Time Since Start reads `water:wellNW1_tssTmr * 1000`; editable Hours reads `water:wellNW1_totalTmr * 1000` and writes `value / 1000` to `water:wellNW1_totalTmr`. These names differ from the Well 3 family. Verified in copied JSON; intended PLC mapping remains unknown. No reset/write was made.
|
||
|
||
## 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.
|
||
|
||
## 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.
|