下面列出了 Machine Expert - Safety 用户界面的基本信息以及安全相关代码和变量的特性。
有关更多信息和详情,请参阅 EcoStruxure Machine Expert - Safety - User Guide。
oPOU 被组织整理在 Project Tree 窗口中。
o安全相关项目只包含 IEC 61131-3 程序类型的一个名为 Main 的 POU。此 POU 无法删除或重命名,也无法添加其他用户定义的 IEC 61131-3 程序(仅 FB)。
o执行此程序的安全相关任务也是预定义的,但在 Machine Expert - Safety 中不显示。无法编辑此任务配置。
注意: 由于 SLC 仅执行一个安全相关任务,因此 SLC 循环时间的修改具有与更改任务循环时间相同的作用。
o您可以创建用户定义的安全相关功能块(根据 IEC 61131-3),但无法创建功能。
o您可以插入提供安全相关功能和功能块的库。
o每个 POU 均由一个或多个代码工作表以及包含局部变量声明的变量表组成。双击树图标,可打开相应的工作表以供编辑。
o全局变量声明包含在单独的变量网格中。单击主工具栏上的 Global decl. 图标,可打开此表格。
oEdit Wizard 提供功能和功能块。在(通过项目树中 Libraries 文件夹的上下文菜单)添加了 POU 库之后,可以单独的 Group 选择所包含的功能块。
o安全相关代码和标准代码在 Machine Expert - Safety 中进行了严格的区分。因此,同样也区分了安全相关变量和标准变量,或者更准确地讲,区分了安全相关数据类型和标准数据类型。比如,无法将标准数据类型的变量连接到需要安全相关变量的形式参数。
安全相关变量在显示时,其代码的背景色为红色背景。标准数据类型的变量在显示时没有背景色。
o安全相关系统 FU/FB 以及安全相关库 FB 显示为红色。标准功能块显示为灰蓝色。用户 FU/FB 显示为绿色。
o在混用安全相关变量和标准变量时,Machine Expert - Safety 对 FBD/LD 代码执行数据流分析,并突出显示(即,以红色粗线来显示)网络的主要安全相关信号路径。安全相关路径始终以安全相关输出变量结尾,或者如果是标准输出变量,则以位于此输出之前的最后一个对象输入结尾。如果标准信号路径以安全相关输出结尾,则此输出显示为红色阴影背景。
下面的简单程序考虑了示例项目中配置的 TM5 I/O 模块。下面的章节介绍了此示例的开发过程。
请参阅 EcoStruxure Machine Expert User Guide 中的 FBD/LD 代码开发,详细了解编辑器功能。
TM5SDI4DFS 模块的输入信号 SafeDigitalInput01 通过 AND_S 功能读取并映射到 TM5SDO4TFS 模块的输出信号 SafeDigitalOutput01。得益于 AND_S 功能,可评估安全相关 I/O 模块的 SafeModuleOK 诊断信号。如果在任何模块中检测到故障,则会切断 SafeDigitalOutput01 信号 (SAFEFALSE)。
此外,SafeDigitalOutput01 被写入到布尔交换变量 SLC2LMC_Bool0_7_0,此变量属于在 Logic Builder 中 SLC 设备配置中配置的 SLC2LMC 交换数据。这样,标准应用程序就能够读取输出状态。(SafeDigitalOutputxx 信号可用于数字量输出模块。它向标准应用程序指示安全应用程序是否设置了安全相关输出)。由于允许从安全相关数据类型转换成标准数据类型,因此安全相关变量能够直接连接到标准交换变量 SLC2LMC_Bool0_7_0。
定时器功能块 TON_S 使 ReleaseOutput01 信号延迟。这个释放信号会禁用已激活的重启禁止功能,并启用 TM5SDO4TFS 模块 SafeDigitalOutput01 信号的输出通道。延迟时间设置为 50 ms。
注意: 这个编程的延迟时间会影响系统的总安全响应时间。
步骤 |
操作 |
---|---|
1 |
双击 Project Tree Window 中 Main 程序工作表的图标,从而打开此工作表。 |
2 |
在 Edit Wizard 选择区域,选择所需的功能块。 如果功能块未显示,必须先选择 Group <all FUs and FBs>。 |
3 |
将功能块从 Edit Wizard 选择区域拖入代码工作表中,左键单击并插入功能块轮廓,然后再次通过鼠标左键单击,将其放在所需的位置上。 |
4 |
如果是功能块(示例中为 TON_S),则必须声明实例变量。 结果:显示 Variable 对话框,其中提供了一个实例名称,如有需要,可以修改此名称。 |
5 |
在 Variable 对话框中,单击 OK。 结果:功能块实例被插入代码中,相关的实例变量被插入 Main POU 的局部声明中。您可以通过单击主工具栏中的 ToggleWS 图标来打开声明工作表。 |
6 |
在示例中,AND_S 功能需要四个输入。如要调整功能,请右键单击功能块图标,然后从上下文菜单中选择 Object Properties。在 Formal Parameters 列表中选择 IN2,然后单击两次 Duplicate FP,添加两个另外的输入。单击 OK,关闭对话框。 |
以下过程适用于 Devices 窗口中设备节点下方所提供的设备信号。其中包括为 SLC 定义的交换变量以及安全相关 I/O 模块的诊断和控制信号。
步骤 |
操作 |
---|---|
1 |
打开要插入信号的代码工作表。 |
2 |
在 Devices 窗口中,打开左侧的设备树,然后展开相应模块 (SL1.SMx) 的节点。 |
3 |
将所需信号拖入代码工作表。 结果:放开鼠标按键时,显示 Variable 对话框。 |
4 |
在 Variable 对话框中,接受所提议的名称,选择现有全局变量,或者声明新的全局变量。示例中所使用的变量名称如图所示。 |
5 |
单击 OK,确认 Variable 对话框,然后通过左键单击的方式,将变量放到所需的位置。 结果:变量被插入代码中,其变量声明被自动插入全局变量工作表中。 您可以将变量直接拖到功能块输出或输入上,从而在插入时将其连接。 |
比如,按下述方法插入以下信号:
o将 TM5SDI4DFS 模块的 SafeDigitalInput01 连接到 AND_S 输入。
o将每个 I/O 模块的 SafeModuleOK 连接到 AND_S 输入。
o将 TM5SDO4TFS 模块的 SafeDigitalOutput01 连接到 AND_S 输出。
第二次插入此变量,并将其放在无连接的空位置。
o将 TM5SDO4TFS 模块的 ReleaseOutput01 连接到 TON_S 输出。
o将 SLC 的 SLC2LMC_Bool0_7_0 交换变量连接到未连接的 SafeDigitalOutput01 变量的输入(蓝色连接点)。这样,输出变量就被写入到布尔交换变量。
以下过程介绍了如何将字面量插入代码。必须使用字面量,才能将常量值输入到代码中。它们可以在不指定声明的情况下使用。
步骤 |
操作 |
---|---|
1 |
您可以插入未连接或已连接/已赋值的常量: o如要插入已经连接到功能或功能块的常量,请双击相应的形式参数。 o如要插入未连接到任何对象的常量,请单击工作表中的空位置,然后按 F5,或者单击编辑器工具栏中的 Variable 图标。 结果:显示 Variable 对话框。 |
2 |
指定 Scope = Constant。 |
3 |
Type 组合框中提议了数据类型。如有需要,可调整此设置。 |
4 |
在 Name 字段中输入所需的字面量(常量)。 请注意此表格下方的规则要求。 |
5 |
按 OK。 结果:常量被插入 FBD/LD 代码。 |
有关常量以及特例“全局常量”的更多详细信息,请参阅 EcoStruxure Machine Expert User Guide 中的常量(字面量):插入和声明 。
常量规则:
o必须始终输入包含数据类型的字面量(比如,SAFEINT#1000)。
例外:TRUE 和 FALSE 始终被视为 BOOL 类型,SAFETRUE/SAFEFALSE 始终被视为 SAFEBOOL 类型。比如,不必输入 BOOL#TRUE。
o标准 INT 常量在输入时可以不包含数据类型(比如,1000 是指 INT#1000),因为十进制输入被自动视为 INT。
例外:在与布尔数据类型一起使用时的 0 和 1。
有关 IEC 61131-3 标准字面量的更多信息,请参阅 EcoStruxure Machine Expert User Guide 中的章节 Constants vs. Literals。
以下过程介绍了如何将新变量插入代码。声明会自动插入相应的声明工作表中。
步骤 |
操作 |
---|---|
1 |
您可以插入未连接或已连接/已赋值的变量: o如要插入已经连接到功能或功能块的变量,请双击相应的形式参数。 o如要插入未连接到任何对象的变量,请单击工作表中的空位置,然后按 F5,或者单击编辑器工具栏中的 Variable 图标。 o如要为触点或线圈插入变量,请双击特定的 LD 对象。 结果:显示 Variable 对话框。 |
2 |
选择变量的 Scope。 结果:对于局部变量,声明被插入当前 POU(需使用 ToggleWS 图标打开)的声明工作表中。全局声明被插入全局声明工作表中,此全局声明工作表可以通过单击 Global Decl. 图标来打开。 |
3 |
指定新变量的数据类型,输入变量 Name,并定义其他属性。 |
4 |
按 OK。 结果:变量被插入 FBD/LD 代码,且声明被插入相应的声明工作表中。 |
也可以通过其他方式来声明变量。有关详细信息,请参阅 EcoStruxure Machine Expert User Guide 中的章节 Variables: Inserting and Declaring。
如要在对象和功能块形式参数之间连线,必须单击编辑器工具栏上的 Connect 图标,从而激活连接模式。
单击编辑器工具栏上的 Mark 图标时,会将编辑器切换至可以选择和移动对象的标记模式。
安全相关项目不得包含未使用的安全相关 TM5/TM7 模块。未使用是指 Machine Expert - Safety Devices 窗口中设备节点下方列出的所有信号都未在安全相关项目中使用。必须将每个模块的至少一个信号分配到 Machine Expert - Safety 中的全局安全相关变量。否则,编译器将报错。
这同样适用于 Logic Builder 中定义的 SLC 交换信号(请参阅章节为安全 PLC 交换数据配置)。
注意: 声明安全相关变量并在不将其用在代码中的情况下将其分配到设备信号,这在项目开发期间是非常有用的,因为它使得安全相关项目能够被编译。在实际应用中,必须确保在安全相关应用程序中读取或写入了相关变量。
步骤 |
操作 |
---|---|
1 |
在 Machine Expert - Safety 中,单击工具栏上的 Global decl. 图标,从而打开全局变量工作表。 |
2 |
右键单击网格,并从上下文菜单中选择 New Variable。 结果:创建了具有缺省名称(您可以修改此名称)的新变量。 |
3 |
在 Devices 窗口中,打开左侧的设备树。展开要使用设备终端的设备的树节点。 |
4 |
将要连接的设备信号拖入全局变量工作表,并放在所需的声明上。 结果: o已连接的设备信号的 Channel Name 现在显示在变量工作表中全局声明的 Terminal 列中。 o全局变量的数据类型已根据所分配的设备信号的数据类型加以调整。 o在 Devices 窗口中,在 Variable 列中为此设备信号显示所连接的变量的名称。 |
注意: 利用此操作,您还可以替换全局变量与设备信号之间的现有分配。请参阅 EcoStruxure Machine Expert - Safety - User Guide 的章节连接/断开过程数据项和全局 I/O 变量中的风险说明。
如要将声明的变量插入代码中,请使用 Variable 对话框,您可以通过编辑器工具栏上的 Variable 图标来打开此对话框。有关详细信息,请参阅 EcoStruxure Machine Expert - Safety - User Guide 中的章节 Variables: Inserting and Declaring。
在完成对安全相关项目的开发之后,必须对其进行编译。(如果项目树中的 POU 标有星号 (*),则说明此项目在变量或代码编辑完成之后尚未编译。在成功编译后,会删除星号。)
步骤 |
操作 |
---|---|
1 |
按 F9,或者单击工具栏上的 Compile 图标。 |
2 |
纠正被编译器检测到并在消息窗口中报告的任何错误。 双击错误消息,可跳转到嫌疑错误位置。 |
3 |
在正确无误地编译了项目之后,将项目下载到 SLC。请参阅章节下载安全相关应用程序。 |