(* === DECLARATION === *) (* Room lighting (redesign). Shower channels l_1..l_5 only — l_6 is water heater (Boiler_PRG). *) PROGRAM Lights_new VAR Living_Room: FB_ROOM; Dininng_Room: fb_room; Kitchen_Area: fb_room; Hallway: fb_room; Office: fb_room; Bedroom: fb_room; Master_Bedroom: fb_room; Master_bath: fb_room; Shower: fb_room; Guest_wc: fb_room; Outside_front: fb_room; Covered_Veranda: fb_room; Yard: fb_room; Outside_back: fb_room; END_VAR (* === IMPLEMENTATION === *) Living_Room( switches := NVL_Receiver.cmd_livingRoom, relay_status := NVL_Sender.light_livingRoom ); NVL_Sender.light_livingRoom := Living_Room.lights; Dininng_Room( switches := NVL_Receiver.cmd_dinningRoom, relay_status := NVL_Sender.light_dinningRoom ); NVL_Sender.light_dinningRoom := Dininng_Room.lights; Kitchen_Area( switches := NVL_Receiver.cmd_kitchenArea, relay_status := NVL_Sender.light_kitchenArea ); NVL_Sender.light_kitchenArea := Kitchen_Area.lights; Hallway( switches := NVL_Receiver.cmd_hallway, relay_status := NVL_Sender.light_hallway ); NVL_Sender.light_hallway := Hallway.lights; Office( switches := NVL_Receiver.cmd_office, relay_status := NVL_Sender.light_office ); NVL_Sender.light_office := Office.lights; Bedroom( switches := NVL_Receiver.cmd_bedroom, relay_status := NVL_Sender.light_bedroom ); NVL_Sender.light_bedroom := Bedroom.lights; Master_Bedroom( switches := NVL_Receiver.cmd_masterBedroom, relay_status := NVL_Sender.light_masterBedroom ); NVL_Sender.light_masterBedroom := Master_Bedroom.lights; Master_bath( switches := NVL_Receiver.cmd_masterBath, relay_status := NVL_Sender.light_masterBath ); NVL_Sender.light_masterBath := Master_bath.lights; Shower( switches := NVL_Receiver.cmd_shower, relay_status := NVL_Sender.light_shower ); // l_6 not used for shower — water heater uses boiler_status.relay_output (%QX5.4) NVL_Sender.light_shower.l_6 := FALSE; NVL_Sender.light_shower.l_6_status := FALSE; NVL_Sender.light_shower.l_1 := Shower.lights.l_1; NVL_Sender.light_shower.l_2 := Shower.lights.l_2; NVL_Sender.light_shower.l_3 := Shower.lights.l_3; NVL_Sender.light_shower.l_4 := Shower.lights.l_4; NVL_Sender.light_shower.l_5 := Shower.lights.l_5; NVL_Sender.light_shower.l_1_status := Shower.lights.l_1; NVL_Sender.light_shower.l_2_status := Shower.lights.l_2; NVL_Sender.light_shower.l_3_status := Shower.lights.l_3; NVL_Sender.light_shower.l_4_status := Shower.lights.l_4; NVL_Sender.light_shower.l_5_status := Shower.lights.l_5; Guest_wc( switches := NVL_Receiver.cmd_guestWc, relay_status := NVL_Sender.light_guestWc ); NVL_Sender.light_guestWc := Guest_wc.lights; Outside_front( switches := NVL_Receiver.cmd_outFront, relay_status := NVL_Sender.light_outFront ); NVL_Sender.light_outFront := Outside_front.lights; Covered_Veranda( switches := NVL_Receiver.cmd_coveredVeranda, relay_status := NVL_Sender.light_coveredVeranda ); NVL_Sender.light_coveredVeranda := Covered_Veranda.lights; Yard( switches := NVL_Receiver.cmd_outYard, relay_status := NVL_Sender.light_outYard ); NVL_Sender.light_outYard := Yard.lights; Outside_back( switches := NVL_Receiver.cmd_outBack, relay_status := NVL_Sender.light_outBack ); NVL_Sender.light_outBack := Outside_back.lights;