lupinglade
Member
Hi all. I am new here and new to PLCs, but I am a programmer so have been able to pick it up pretty quickly. I am using a Koyo CLICK PLC. I was able to write a program to *zone* a humidifier and a dehumidifier, where each zone can either humidify or dehumidify. The PLC watches a number of inputs to check the state of the zone controller and the thermostats:
Inputs:
H1 - Humidification call on zone 1
H2 - Humidification call on zone 2
H3 - Humidification call on zone 3
D1 - Dehumidification call on zone 1
D2 - Dehumidification call on zone 2
D3 - Dehumidification call on zone 3
Z1 - Zone 1 dampers open
Z2 - Zone 2 dampers open
Z3 - Zone 3 dampers open
GT - System fan is running
And then there are these outputs:
G1 - G (fan) terminal on zone 1
G2 - G (fan) terminal on zone 2
G3 - G (fan) terminal on zone 3
HUM - Humidifier ON
DEHUM - Dehumidifier ON
I have the logic currently worked out such that once a humidification or dehumidification call is received, the PLC activates the appropriate G (fan) terminal, which causes the zone controller (separate) to turn on the fan for that zone if possible, unless it is currently heating or cooling another zone, in which case the fan will be activated as soon as the zone controller stops heating/cooling.
Then the PLC checks that the correct zone (Z1, Z2 and/or Z3) is on and checks that GT is on (that the fan is running). This lets the program know that we can now humidify or dehumidify.
All of this was not too difficult to do, but one thing I had to do is cause the dehumidification process to have priority, so that a situation where there is way too much humidity in the home does not occur (causing window condensation, etc possibly). This is a minor problem because if, for whatever reason the dehumidification call could not be satisfied (ie. humidifier failed or is disconnected), the humidification calls would never get a turn to be processed.
So my question is, how can I create logic that will share time between the humidification and dehumidification calls if there is a call for both? Ie. the PLC should be able to run the dehumidifier on the needed zones for a set amount of time and then switch to dehumidification for a set amount of time, then back to dehumidification, etc, etc until either or both calls are satisfied.
I just need some pointers on how logic like this generally gets designed?
Here's my current logic, from memory:
Inputs:
H1 - Humidification call on zone 1
H2 - Humidification call on zone 2
H3 - Humidification call on zone 3
D1 - Dehumidification call on zone 1
D2 - Dehumidification call on zone 2
D3 - Dehumidification call on zone 3
Z1 - Zone 1 dampers open
Z2 - Zone 2 dampers open
Z3 - Zone 3 dampers open
GT - System fan is running
And then there are these outputs:
G1 - G (fan) terminal on zone 1
G2 - G (fan) terminal on zone 2
G3 - G (fan) terminal on zone 3
HUM - Humidifier ON
DEHUM - Dehumidifier ON
I have the logic currently worked out such that once a humidification or dehumidification call is received, the PLC activates the appropriate G (fan) terminal, which causes the zone controller (separate) to turn on the fan for that zone if possible, unless it is currently heating or cooling another zone, in which case the fan will be activated as soon as the zone controller stops heating/cooling.
Then the PLC checks that the correct zone (Z1, Z2 and/or Z3) is on and checks that GT is on (that the fan is running). This lets the program know that we can now humidify or dehumidify.
All of this was not too difficult to do, but one thing I had to do is cause the dehumidification process to have priority, so that a situation where there is way too much humidity in the home does not occur (causing window condensation, etc possibly). This is a minor problem because if, for whatever reason the dehumidification call could not be satisfied (ie. humidifier failed or is disconnected), the humidification calls would never get a turn to be processed.
So my question is, how can I create logic that will share time between the humidification and dehumidification calls if there is a call for both? Ie. the PLC should be able to run the dehumidifier on the needed zones for a set amount of time and then switch to dehumidification for a set amount of time, then back to dehumidification, etc, etc until either or both calls are satisfied.
I just need some pointers on how logic like this generally gets designed?
Here's my current logic, from memory:
Code:
Check if there is a dehumidification call, if so, set DehumidifyMode to 1
[ ] D1 ___|_________ ( ) DehumidifyMode
[ ] D2 ___|
[ ] D3 ___|
Turn on the right G (fan) terminals
[ ] D1 ___ [ ] DehumidifyMode _____________ ( ) G1
[ ] H1 ___ [/] DehumidifyMode ___|
[ ] D2 ___ [ ] DehumidifyMode _____________ ( ) G2
[ ] H2 ___ [/] DehumidifyMode ___|
[ ] D3 ___ [ ] DehumidifyMode _____________ ( ) G3
[ ] H3 ___ [/] DehumidifyMode ___|
Dehumidify
[ ] DehumidifyMode ___ [ ] GT _______ [ ] Z1 ___________ [ ] Z1 ___ [ ] D1 ___________ [ ] Z2 ___ [ ] D2 ___________ [ ] Z3 ___ [ ] D3 ________________ ( ) DEHUM
|___ [ ] Z2 ___| |___ [/] Z1 ______________| |___ [/] Z2 ______________| |___ [/] Z3 ______________|
|___ [ ] Z3 ___|
Humidify if not dehumidifying
[/] DehumidifyMode ___ [ ] GT _______ [ ] Z1 ___________ [ ] Z1 ___ [ ] H1 ___________ [ ] Z2 ___ [ ] H2 ___________ [ ] Z3 ___ [ ] H3 ________________ ( ) HUM
|___ [ ] Z2 ___| |___ [/] Z1 ______________| |___ [/] Z2 ______________| |___ [/] Z3 ______________|
|___ [ ] Z3 ___|
Last edited: