Pool Systems Automation: Difference between revisions

 
(72 intermediate revisions by the same user not shown)
Line 23: Line 23:


==== Main Pump Motor ====
==== Main Pump Motor ====
The [[Pool Main Pump Motor|main pump motor]] is monitored via an auxiliary contact on the motor starter.  The contacts close upon pressing the <b>Start</b> button, assuming sufficient voltage is present and the overload is not tripped.  The contacts open upon pressing the <b>Stop</b> button, or when another motor-stopping event occurs.
The main pump motor auxiliary contact and a snapshot of the flow rate (via the flow meter) determines the operating state.
{| class="wikitable"
!State
!LCD Notification
!Condition(s)
!Stack Light
|-
|Pump Stopped
|<tt>Pump Stopped</tt>
|The default state upon initialization.  Set when the pump is stopped.
|Red (Flashing)
|-
|Pump Startup
|<tt>Pump Startup</tt>
|The pump is starting up (a 10-second static delay once the motor starter contacts are closed).
|Off
|-
|Operating
|<tt>Pump Operating</tt>
|The pump is operating and filter flow is in the normal operating direction.
|Green/Yellow (Flashing)
|-
|Backwash
|<tt>Pump Backwash</tt>
|The pump is operating and filter flow has been set in the backwash direction.
|Alternating Red-Green
|}


==== Filter Tank Pressure ====
==== Filter Tank Pressure ====


==== Water Flow ====
[[File:Pool Filter Tank Pressure Gauges.jpg|thumbnail|A set of pressure gauges.  Per the design principle, all electronic measurements have an accompanying manual gauge.]]
 
Four [[Pool Filter Tanks|filter tank]] pressures are monitored by [[Pool Systems Automation#Sensors|sensors]] with internal signal conditioning.  When fed by a 24 VDC (each sensor is independently fused), a 1 V to 5 V output corresponds with 0 to 100 psi of pressure.
 
A value is considered valid if the measured voltage is 1 V or greater (less than 1 V suggests an open circuit or failed sensor).  The low and high thresholds are somewhat arbitrary and based upon observation.  A nominal pressure of 10 psi is assumed (add 8 psi to the limit per PHTA guidelines for a single-gauge backwash threshold).
 
{| class="wikitable"
!Qualifier
!Threshold
!Result
!LCD Notification
!Stack Light
|-
|Operating
|< 8 psi
|Pressure Low
|<tt>Flt Tank Pres L</tt>
|Yellow
|-
|Operating
|&GreaterEqual; 8 psi and < 18 psi
|Pressure OK
|None
|Green (unless overridden)
|-
|Operating
|&GreaterEqual; 18 psi
|Pressure High
|<tt>Flt Tank Pres H</tt>
|Yellow
|}
 
When in the <b>Pump Startup</b>, <b>Operating</b> or <b>Backwash</b> state, each tank pressure is briefly shown on the LCD in psi.  If the value is not valid, <tt>Fault</tt> is shown in place of a pressure value.  If rare circumstances (sensor failure, testing) the administrator may disable certain tank(s).  It this case, the value will be shown as <tt>Disabled</tt> and any potential faults related to a particular pressure sensor will not affect the overall system status.
 
==== Output Water Flow ====
 
[[File:Pool Output Water Flow Meter.jpg|thumbnail|The output water flow meter.]]
 
The output water flow is monitored by a paddlewheel flow meter that generates a sine wave with a frequency proportional to the flow rate.  A flow "transmitter" (GF Signet 8512) translates that analog output from the flow meter into a 4-20 mA signal proportional to the flow rate.
 
The value is considered valid if the current measured is greater than or equal to 4 mA (not an open circuit).  The low and high thresholds are based upon the required flow turnover rate for the pool volume and a maximum to avoid issues (channeling) in the filter tanks.
 
{| class="wikitable"
!Qualifier
!Threshold
!Result
!LCD Notification
!Stack Light
|-
|Operating
|< 570 GPM
|Low Flow Rate
|<tt>Out Flow L</tt>
|Yellow
|-
|Operating
|&GreaterEqual; 570 GPM and < 670 GPM
|Flow Rate OK
|None
|Green (unless overridden)
|-
|Operating
|&GreaterEqual; 670 GPM
|Flow Rate High
|<tt>Out Flow H</tt>
|Yellow
|}
 
When in the <b>Pump Startup</b> or <b>Operating</b> state, the flow rate is briefly shown on the LCD in GPM.  If the value is not valid, <tt>Fault</tt> is shown in place of a flow rate value.
 
==== Surge Tank Level ====


==== Water Level ====
The surge tank level is monitored by a differential pressure sensor with built-in signal conditioning that generates a 4-20 mA signal proportional to the water depth.


==== Boiler Operation ====
The value is considered valid if the current measured is greater than or equal to 4 mA (not an open circuit).  The low and high thresholds are based upon the required flow turnover rate for the pool volume and a maximum to avoid issues (channeling) in the filter tanks.
 
{| class="wikitable"
!Qualifier
!Threshold
!Result
!LCD Notification
!Stack Light
|-
|Operating or Backwash
|< 16 in
|Level Critical Low (LL)
|<tt>Surge Tank LL</tt>
|Flashing Red (See Note 1)
|-
|Operating or Backwash
|&GreaterEqual; 16 in and < 46 in
|Level Low (L)
|<tt>Surge Tank L</tt> (See Note 2)
|Yellow (See Note 2)
|-
|Operating or Backwash
|&GreaterEqual; 46 in and < 60 in
|Level Nominal
|None
|Green (unless overridden)
|-
|Operating or Backwash
|&GreaterEqual; 60 in and < 76 in
|Level High (H)
|<tt>Surge Tank H</tt> (See Note 2)
|Yellow (See Note 2)
|-
|Operating or Backwash
|&GreaterEqual; 76 in
|Level Critical High (HH)
|<tt>Surge Tank HH</tt>
|Yellow
|}
 
<b>Notes:</b>
 
* <b>Note 1:</b> After a brief delay (presently set to 5 seconds), a critical low (LL) level triggers a pump motor stop to prevent running the pump dry.  The state changes to <b>Pump Stopped</b> and the stack light is set to flashing red.  The operator should take care to eliminate the root cause of the critical low surge tank level before restarting the pump.
* <b>Note 2:</b> These messages and stack light state are only applicable if [[Pool Systems Automation#Auto Fill|Auto Fill]] is disabled.  If [[Pool Systems Automation#Auto Fill|Auto Fill]] is enabled, no fault message is shown on the LCD.  The stack light will blink during the fill process.
 
==== Boiler Status ====
 
Details to follow.


=== Control ===
=== Control ===
==== Auto Fill ====
If proper conditions are met, the pool is automatically filled when a low threshold is met via the surge tank water level sensor.
Auto fill is enabled by default.  This is indicated by a periodic <tt>AutoFill Enabled</tt> LCD notification.  It may start during any state other than <b>Backwash</b> and the waiting to restart states following a "Critical Level Low (LL)" result.  When in the one of those states, auto fill is paused and <tt>AutoFill Paused</tt> is periodically shown on the LCD.
When auto fill is enabled, the "Level Low (L)" and "Level High (H)" results of the surge tank level are not fault/warning conditions; they becomes strictly thresholds at which auto fill starts/stops. 
Auto fill operates until the high level is met or auto fill is disabled.  Auto fill operates for at least 2 minutes.  If the high level threshold is not met after 4 hours, a timeout occurs.  A timeout prevents auto fill for 12 hours in an effort to prevent over-filling the pool in the event of a sensor failure.  This is indicated by a periodic <tt>Fill: TO (12 hr)</tt> LCD notification.  If the high threshold is met within the 4 hour period, a minimum off time (MOT) prevents auto fill for 4 hours to prevent frequent cycling.  This is indicated by a periodic <tt>Fill: MOT (4 hr)</tt> LCD notification.  In theory, 3-5 cycles of auto fill may complete in a day, though thresholds should be set to keep this to 2 or less.


=== User Interfaces ===
=== User Interfaces ===
Line 64: Line 222:
|Flashing Red
|Flashing Red
|The pump is stopped due to the surge tank level.
|The pump is stopped due to the surge tank level.
|-
|Alternating Red-Green
|The system is [[Backwashing|backwashing]].
|}
|}


==== LCD/Keypad ====
==== Display and Keypad ====
 
Details to follow.
 
==== Remote Monitoring ====


==== Remote Monitoring (Dashboard) ====
Details to follow.  Remote monitoring is largely done via the [[Pool Systems Dashboard|dashboard]].


== Design ==
== Design ==


=== Programmable Logic Controller (PLC) ===
=== Programmable Logic Controller ===
 
[[File:Pool Systems Automation PLC.jpg|thumbnail|The PLC and support components (power supply and Lantronix unit).]]


A DirectLogic 06 (D0-06DD2) programmable logic controller (PLC) is used for as the base for monitoring and control.  A PLC was selected due to its reliability and relative ease-of-maintenance by volunteer maintenance staff.  Within the electrical engineering community, most have had some level of experience with PLCs and/or ladder logic.  It is assumed that within the membership, there will always be someone with the knowledge that can volunteer on an as-needed basis.
A DirectLogic 06 (D0-06DD2) programmable logic controller (PLC) is used for as the base for monitoring and control.  A PLC was selected due to its reliability and relative ease-of-maintenance by volunteer maintenance staff.  Within the electrical engineering community, most have had some level of experience with PLCs and/or ladder logic.  It is assumed that within the membership, there will always be someone with the knowledge that can volunteer on an as-needed basis.


The controller consists of an internal CPU, 24V inputs/outputs (I/O) and multiple add-on modules for analog measurements.  Serial communication carried over WiFi via a Lantronix PremierWave XN, presenting the PLC as if it were connected to a virtual communication port on the host PC.
The controller consists of an internal CPU, 24V inputs/outputs (I/O) and multiple add-on modules for analog measurements.  Serial communication carried over WiFi via a Lantronix PremierWave XN, presenting the PLC as if it were connected to a virtual communication port on the host PC.
==== Digital Inputs ====
{| class="wikitable"
!Input
!Function
!Description
|-
|X4
|Surge Tank Float
|Not presently implemented; reserved for future use.
|-
|X5
|Motor Starter Status
|Active when the main pump is operating.
|-
|X10
|Boiler Stage A
|Active when conditions described in [[Pool Boiler#Stage A: Demand for Heat|Pool Boiler Stage A: Demand for Heat]] are met.
|-
|X11
|Boiler Stage B
|Active when conditions described in [[Pool Boiler#Stage B: Flow/Temperature Interlocks|Pool Boiler Stage B: Flow/Temperature Interlocks]] are met.
|-
|X12
|Boiler Stage C
|
|-
|X13
|Boiler Stage D
|
|-
|X14
|Boiler Stage E
|
|}
==== Digital Outputs ====
{| class="wikitable"
!Output
!Function
!Description
|-
|Y4
|Stack Light Red
|Drives the red element of the stack light.
|-
|Y5
|Stack Light Yellow
|Drives the yellow element of the stack light.
|-
|Y6
|Stack Light Green
|Drives the green element of the stack light.
|-
|Y10
|Fill Valve
|Drives the pool fill valve into the open position (spring-return when off).
|-
|Y11
|Motor Starter Stop
|Stops the main pump by mimicking "stop" button closure.
|-
|Y12
|Boiler Disable
|Disables boiler operation when a significant fault condition is observed.
|}


==== Expansion Modules ====
==== Expansion Modules ====
Line 109: Line 344:
==== Serial Interfaces ====
==== Serial Interfaces ====


The DL06 PLC has two serial interfaces.  On this unit, they are configured as follows:
The DL06 PLC has two built-in serial interfaces.  Each port is connected to a port on the Lantronix Premierwave XN.  The configuration as follows:


{| class="wikitable"
{| class="wikitable"
!Serial Interface
!Serial<br>Interface
!Electrical Configuration
!Electrical<br>Configuration
!Serial Configuration
!Serial<br>Configuration
!Purpose
!Purpose
!Lantronix<br>Port
|-
|-
|Port 1
|Port 1
|RS-232
|RS-232
|9600 8O1/None
|9600 8O1/None
|Programming
|Local Programming<br>(using interface cable)
|Port 2
|-
|-
|Port 2
|Port 2
|RS-232
|RS-232
|38400 8N1/None
|38400 8N1/None
|Modbus Polling
|Modbus Slave<br>([[Pool Systems Dashboard|dashboard monitoring]])
|Port 1
|-
|<b>Planned:</b> D0-DCM Port 1
|RS-232
|Default
|Not Used<br>(spare)
|N/A
|-
|<b>Planned:</b> D0-DCM Port 2
|RS-485
|19200 8N1
|Modbus Master<br>([[Pool Main Pump Motor|VFD]] and [[Boiler Temperature Controller|boiler temperature control]])
|N/A
|}
|}
Notes:
* Port 1 is limited to 9600 baud, odd parity and RS-232 communication.


=== Sensors ===
=== Sensors ===
Line 151: Line 405:
|Pressure
|Pressure
|Measurement Specialties MSP-300-100-P-4-N-1
|Measurement Specialties MSP-300-100-P-4-N-1
|0-100 psi
|0 to 100 psi
|1-5 V analog
|1-5 V analog
|-
|-
Line 171: Line 425:


NOTE: The flow meter was previously a GF Signet MK515.3P1.  Erratic behavior prompted its replacement in early June 2021.
NOTE: The flow meter was previously a GF Signet MK515.3P1.  Erratic behavior prompted its replacement in early June 2021.
=== Power Budget ===
{| class="wikitable"
!Item
!Consumption
!Comments
|-
|EA7-T8C Panel
|625 mA
|-
|Lantronix PremierWave XN
|94 mA
|Per the spec sheet, the device consumes 2.25 W @ 30 VDC.  Using the same figure for 24 VDC.
|-
|Pressure Tank Sensors (4)
|80 mA
|A quantity of 4 x 4-20 mA sensors.
|-
|Depth Sensor
|20 mA
|A single 4-20 mA sensor.
|-
|Flow Meter
|20 mA
|A single 4-20 mA sensor.
|-
|Digital Inputs (10)
|85 mA
|On the PLC base, X0 to X3 consume 13 mA, X4 to X23 consume 8.5 mA.  Assuming ten digital inputs.
|-
|Relays (3)
|112.5 mA
|Each coil has a nominal resistance of 640 Ohms (37.5 mA @ 24 VDC).
|-
|Stack Light
|50 mA
|The LME-302L consumes 18 mA per red/yellow and 14 mA for green.
|-
|Programmed Stop Button
|26 mA
|
|-
|Total
|1,112.5 mA
|487.5 mA without EA7-T8C
|}


=== Drawings ===
=== Drawings ===


Drawings have been updated as of January 23rd, 2021 with multiple corrections and as-built updates.  They are still in-process and subject to review and change.
Drawings in the automation system package have an FFSC-001 prefix.  Drawings have been updated as of May 14th, 2022 with multiple corrections and as-built updates.  They are still in process and subject to review and change.


==== Panel Layout ====
==== Panel Layout ====


Pages 5-9 are reserved for enclosure panel layouts.
Pages 5-9 are reserved for enclosure panel layouts.
<b>NOTE:</b> Panel layout drawings are created for initial planning purposes and may not accurately reflect later modifications.


[[File:FFSC-001 Pg 5 - PLC Panel Layout.png|300px]]
[[File:FFSC-001 Pg 5 - PLC Panel Layout.png|300px]]


==== Sensors ====
==== Sensor Wiring ====


Pages 10-19 are reserved for sensors (including "flow meters") and their associated cabling.
Pages 10-19 are reserved for sensors (including "flow meters") and their associated wiring.
 
<b>NOTE:</b> The water level probe is presently not used.  Documentation is preserved for reference purposes.


[[File:FFSC-001 Pg 10 - Filter Tank Pressure Sensors.png|300px]]
[[File:FFSC-001 Pg 10 - Filter Tank Pressure Sensors.png|300px]]
Line 191: Line 496:
[[File:FFSC-001 Pg 13 - Water Level Probe.png|300px]]
[[File:FFSC-001 Pg 13 - Water Level Probe.png|300px]]


==== Programmable Logic Controller (PLC) ====
==== Programmable Logic Controller ====


Pages 20-29 are reserved for the PLC and its expansion modules.
Pages 20-29 are reserved for the PLC and its expansion modules.
Line 198: Line 503:
[[File:FFSC-001 Pg 21 - PLC Digital Inputs.png|300px]]
[[File:FFSC-001 Pg 21 - PLC Digital Inputs.png|300px]]
[[File:FFSC-001 Pg 22 - PLC Digital Outputs.png|300px]]
[[File:FFSC-001 Pg 22 - PLC Digital Outputs.png|300px]]
[[File:FFSC-001 Pg 23 - PLC Digital IO.png|300px]]
[[File:FFSC-001 Pg 24 - PLC Slot 2 - 0-5 V Analog Inputs.png|300px]]
[[File:FFSC-001 Pg 24 - PLC Slot 2 - 0-5 V Analog Inputs.png|300px]]
[[File:FFSC-001 Pg 25 - PLC Slot 3 - 4-20 mA Analog Inputs.png|300px]]
[[File:FFSC-001 Pg 25 - PLC Slot 3 - 4-20 mA Analog Inputs.png|300px]]
Line 203: Line 509:
==== Auxiliary ====
==== Auxiliary ====


Pages 40-49 are reserved for systems related to the automation system (via interconnection).
Pages 40-49 are reserved for systems related to the automation system.
 
<b>NOTE:</b> Page 41 is out-of-date and pending update (need to remove magnetic starter to reflect use of VFD).


[[File:FFSC-001 Pg 40 - Boiler Auxiliary.png|300px]]
[[File:FFSC-001 Pg 40 - Boiler Auxiliary.png|300px]]
[[File:FFSC-001 Pg 41 - Pump House Motor.png|300px]]
[[File:FFSC-001 Pg 41 - Pump House Motor.png|300px]]
[[File:FFSC-001 Pg 42 - Chlorinator.png|300px]]
 
[[File:FFSC-001 Pg 43 - PC2100 Auxiliary.png|300px]]
==== Other Drawings ====
 
Some systems related to the automation system are complex enough to justify their own drawing package.  These systems are related, but only share some signals (i.e. RS-485 link) and are not dependent upon the automation system to function.
 
Drawings that were previously part of the automation system drawing package, but have since been moved:
 
* [[:File:FFSC-003 Pg 1 - PC2100 Wiring.png|FFSC-003 Pg 1 - PC2100 Wiring.png]]
* [[:File:FFSC-004 Pg 1 - Chlorinator.png|FFSC-004 Pg 1 - Chlorinator.png]]
 
== Known Issues ==
 
* Detection of backwash (versus operating) is occasionally incorrect.  This is likely due to the ramp-of of the flow meter.
* Some PLC LCD time display screens are buggy.
 
== Planning ==
 
The following features are planned when possible:
 
* Implement time-of-day auto-fill to reduce the frequency at which the pool is filled during the day.  The club is not billed at a time-of-day rate, but as "good citizens" it is ideal to fill during low-demand periods to help reduce water bills for all city residents.
* Add a float switch as a failsafe means for detecting over-fill.  In the event that the depth sensor fails.
* Add [[Pool Main Pump Motor#Variable Frequency Drive|variable frequency drive]] control for the main pump motor, when and if implemented.
* Add [[Surge Tank#Motorized Actuator|motorized actuator]] control for a surge tank modulating drain valve, when and if implemented.