(* GVL: NVL stubs (or replace by CODESYS Network Variable lists NVL_In / NVL_Out). In the real project, bind these to your UDP/network variable sender/receiver. DI_Emergency_Stop: link to physical input or leave FALSE. *) VAR_GLOBAL NVL_In: STRUCT open_plan_living_room: struct_room_cmds; open_plan_dining_room: struct_room_cmds; open_plan_entrance: struct_room_cmds; open_plan_guest_wc: struct_room_cmds; kitchen_kitchen: struct_room_cmds; kitchen_pantry: struct_room_cmds; bedrooms_office: struct_room_cmds; bedrooms_hallway: struct_room_cmds; bedrooms_laundry: struct_room_cmds; bedrooms_shower: struct_room_cmds; bedrooms_bedroom: struct_room_cmds; master_bedroom_suite: struct_room_cmds; master_bedroom_bathroom: struct_room_cmds; exterior_veranda: struct_room_cmds; exterior_entrance: struct_room_cmds; exterior_yard: struct_room_cmds; boiler: struct_boiler_cmd; END_STRUCT; NVL_Out: STRUCT l_open_plan_living_room: struct_room_outs; l_open_plan_dining_room: struct_room_outs; l_open_plan_entrance: struct_room_outs; l_open_plan_guest_wc: struct_room_outs; l_kitchen_kitchen: struct_room_outs; l_kitchen_pantry: struct_room_outs; l_bedrooms_office: struct_room_outs; l_bedrooms_hallway: struct_room_outs; l_bedrooms_laundry: struct_room_outs; l_bedrooms_shower: struct_room_outs; l_bedrooms_bedroom: struct_room_outs; l_master_bedroom_suite: struct_room_outs; l_master_bedroom_bathroom: struct_room_outs; l_exterior_veranda: struct_room_outs; l_exterior_entrance: struct_room_outs; l_exterior_yard: struct_room_outs; boiler_status: struct_boiler_status; END_STRUCT; DI_Emergency_Stop: BOOL := FALSE; END_VAR