![]() |
|
VAV logic - Printable Version +- LogicMachine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: VAV logic (/showthread.php?tid=6031) |
VAV logic - Haug1 - 20.06.2025 Hi. I need some help to make this script: Fist i need a ga/ input that chenges between summer and winter mode. I have 4 g/a with cooling command 0-100%. I need to make a sum based on of the cooling modes are activ. The cooling is activ if the avlue is more than 0 (1-100) This sum is the setpoint of the ventilation system that i need to send to on g/a Summertime: If not activ: cooling cmd 1: 250 cooling cmd 2: 390 cooling cmd 3: 500 cooling cmd 4: 180 If activ: cooling cmd 1: 250 cooling cmd 2: 650 cooling cmd 3: 850 cooling cmd 4: 250 Wintertime: If not activ: cooling cmd 1: 250 cooling cmd 2: 250 cooling cmd 3: 250 cooling cmd 4: 120 If activ: cooling cmd 1: 250 cooling cmd 2: 250 cooling cmd 3: 250 cooling cmd 4: 120 I Also need a new g/a output ff the colling command is not 0 (1-100) to controll some vav dampers summer time i want the following: cooling cmd 1: if 0 =0%, if 1-100 =100% cooling cmd 2: if 0 =35%, if 1-100 =100% cooling cmd 3: if 0 =42%, if 1-100 =100% cooling cmd 4: if 0 =46%, if 1-100 =100% in winter time i want the following: cooling cmd 1: if 0 =0%, if 1-100 =0% cooling cmd 2: if 0 =0%, if 1-100 =0% cooling cmd 3: if 0 =0%, if 1-100 =0% cooling cmd 4: if 0 =0%, if 1-100 =0% RE: VAV logic - admin - 20.06.2025 Provide some examples how the final value is calculated. Two commands have the same output value for both active and inactive states. To what value is 70% applied? RE: VAV logic - Haug1 - 21.06.2025 I have 8 VAV dampers (2 per floor) that are controlled using a 0–100% command, corresponding to vMin–vMax. Currently, some of the VAV dampers have the same vMin and vMax values, but this may change later. When there is a cooling command, the corresponding VAV damper should switch to vMax = 100% in summer mode. When this change to vMax occurs, I also need to increase the setpoint of the ventilation system accordingly. Example – Setpoint Airflow Calculation: Cooling Command Status Value Cooling Cmd 1 Not active 250 Cooling Cmd 2 Active 650 Cooling Cmd 3 Active 850 Cooling Cmd 4 Not active 180 Resulting ventilation system setpoint = 1930 The 70% that i first decribe i see was wrong. I have change that part now i the main topic. RE: VAV logic - admin - 25.06.2025 Add a common tag to all cooling cmd input group addresses and summer/winter group address. Attach an event script to this tag. Modify group addresses, value presets and setpoints as needed. Code: value = grp.getvalue('0/0/1')
mode = value and 'summer' or 'winter'
items = {
{
input = '0/0/21', -- command value
output = '0/0/22', -- damper control
summer = {
on_value = 100,
off_value = 35,
on_setpoint = 650,
off_setpoint = 390,
},
winter = {
on_value = 70,
off_value = 0,
on_setpoint = 450,
off_setpoint = 250,
},
},
{
input = '0/0/23', -- command value
output = '0/0/24', -- damper control
summer = {
on_value = 100,
off_value = 35,
on_setpoint = 650,
off_setpoint = 390,
},
winter = {
on_value = 70,
off_value = 0,
on_setpoint = 450,
off_setpoint = 250,
},
},
{
input = '0/0/25', -- command value
output = '0/0/26', -- damper control
summer = {
on_value = 100,
off_value = 35,
on_setpoint = 650,
off_setpoint = 390,
},
winter = {
on_value = 70,
off_value = 0,
on_setpoint = 450,
off_setpoint = 250,
},
},
{
input = '0/0/27', -- command value
output = '0/0/28', -- damper control
summer = {
on_value = 100,
off_value = 35,
on_setpoint = 650,
off_setpoint = 390,
},
winter = {
on_value = 70,
off_value = 0,
on_setpoint = 450,
off_setpoint = 250,
},
},
}
setpoint = 0
for _, item in ipairs(items) do
conf = item[ mode ]
value = grp.getvalue(item.input)
key = toboolean(value) and 'on' or 'off'
grp.checkwrite(item.output, conf[key .. '_value'])
setpoint = setpoint + conf[key .. '_setpoint']
end
grp.checkupdate('0/0/3', setpoint) |