A system for programming an industrial safety relay, comprising: a memory that stores computer-executable components; and a processor, operatively coupled to the memory, that executes the computer-executable components, the computer-executable components comprising: a configuration component configured to create a configuration program for a safety relay based on configuration input that manipulates graphical function blocks (1102, 1108; 1202, 1204, 1208; 1302, 1304, 1306) and signal flow lines between the graphical function blocks; and a graphical interface component configured to receive the configuration input and to display the graphical function blocks on an editing area of a configuration interface, wherein the graphical interface component is configured to enforce an organized layout of the graphical function blocks, the layout comprising four columns of the editing area, and wherein the four columns are classified according to function block type and comprise a safety monitoring column that contains a first subset of the graphical function blocks corresponding to safety input devices, a logic level A column that contains a second subset of the graphical function blocks that define first logical operations, a logic level B column that contains a third subset of the graphical function blocks that define second logical operations, and a safety output column that contains a fourth subset of the graphical function blocks corresponding to safety outputs of the safety relay, and wherein the graphical interface component is further configured to programmatically associate an output of a first function block of the graphical function blocks with an input of a second function block of the graphical function blocks in response to a reference parameter located on the second function block being set to an identifier of the first function block. a memory that stores computer-executable components; and a processor, operatively coupled to the memory, that executes the computer-executable components, the computer-executable components comprising: a configuration component configured to create a configuration program for a safety relay based on configuration input that manipulates graphical function blocks (1102, 1108; 1202, 1204, 1208; 1302, 1304, 1306) and signal flow lines between the graphical function blocks; and a graphical interface component configured to receive the configuration input and to display the graphical function blocks on an editing area of a configuration interface, wherein the graphical interface component is configured to enforce an organized layout of the graphical function blocks, the layout comprising four columns of the editing area, and wherein the four columns are classified according to function block type and comprise a safety monitoring column that contains a first subset of the graphical function blocks corresponding to safety input devices, a logic level A column that contains a second subset of the graphical function blocks that define first logical operations, a logic level B column that contains a third subset of the graphical function blocks that define second logical operations, and a safety output column that contains a fourth subset of the graphical function blocks corresponding to safety outputs of the safety relay, and wherein the graphical interface component is further configured to programmatically associate an output of a first function block of the graphical function blocks with an input of a second function block of the graphical function blocks in response to a reference parameter located on the second function block being set to an identifier of the first function block. a configuration component configured to create a configuration program for a safety relay based on configuration input that manipulates graphical function blocks (1102, 1108; 1202, 1204, 1208; 1302, 1304, 1306) and signal flow lines between the graphical function blocks; and a graphical interface component configured to receive the configuration input and to display the graphical function blocks on an editing area of a configuration interface, wherein the graphical interface component is configured to enforce an organized layout of the graphical function blocks, the layout comprising four columns of the editing area, and wherein the four columns are classified according to function block type and comprise a safety monitoring column that contains a first subset of the graphical function blocks corresponding to safety input devices, a logic level A column that contains a second subset of the graphical function blocks that define first logical operations, a logic level B column that contains a third subset of the graphical function blocks that define second logical operations, and a safety output column that contains a fourth subset of the graphical function blocks corresponding to safety outputs of the safety relay, and wherein the graphical interface component is further configured to programmatically associate an output of a first function block of the graphical function blocks with an input of a second function block of the graphical function blocks in response to a reference parameter located on the second function block being set to an identifier of the first function block.