第 4步: 创建子模块 "Light"

像之前对开关以及简单开关所做的一样,对于模块 "Light",一个模块定义为 "Light",一个功能块 "Light" 和接口 "ILight" 需要被创建。模块应该被定义为功能块,功能块本身应该被定义为接口 "ILight"。

允许模块 "Light" 添加到模块 "Room" 下,之后的定义需要通过选择Slots进行扩展。在这个部分一个子部分Slot_Multi需要被创建,命名为 "Lights" 并且将会被添加到模块类型 "Light"。灯的数量,可以并且必须添加到一个房间是通过参数Cardinality (在这种情况是 1 和 3 灯之间)定义。进一步讲需要定义两个变量: "Variable" (pLights,将保持等模块的功能块实例添加到 room 中) 并且Var_Count (uiNumberOfLights,将会按照灯模块的数量添加到 room 中)。

插图 380: 'Slots' 定义部分

变量pLights 以及 uiNumberOfLights必须添加到模块 "Lights"的功能块实例中,同时uiNumberOfLights一个 UINT 类型的pLights ha必须是类型POINTER TO ILight。之后定义需要相同时间限制模块节点 "Lights" 到模块,此功能块也包含实现接口"ILight"。模块,功能块不通过 "ILight" 实现,将不会添加到节点 "Lights"."

插图 381: 功能块 'Room' 的定义

连接模块 "Room" 的相同节点现在用于模块 "Light",所以 "Light" 的定义部分包含一个节点 "Switch" 并且不是 "Multi_Slot" 而是一个 "Slot"。"Light" 的附加参数是调光器的速度rSpeed 以及最大亮度uiMaxValue。最终一个输出定义,相当于连接到他的灯光。所有参数,节点和输出必须添加到功能块 "Light" 模块并作为一个参数。

插图 382: 模块 "Light" 的定义
插图 383: 'Light' 功能块的定义
插图 384: 文本列表和图像池

“第5步: 创建子模块 "简易灯"”