设置每个设备变量的读写

设备管理器组件和设备驱动程序支持对单个设备变量进行安全访问设置。
这在设备连接和“单个设备驱动程序”部分中被称为按变量设置安全性

对于某些产品,为设备定义“按变量设置安全性”时的默认设置为 False。对于其他产品,默认值为 True。决定使用此功能时需要考虑以下因素:

  • 将此功能用于设备定义意味着将使用更多的系统内存,因为需要控制结构来跟踪设备的变量以及每个角色是否对于每个变量具有读取或写入访问权限。对于在内存资源有限的系统上运行的产品,这可能是相当大的开销。
  • 对于不需要按变量设置安全性的设备,不对此安全性使用系统内存意味着更多的系统内存可用于应用程序的其他部分,包括更多的已启动设备、更多的执行中触发器等。
  • 需要将访问权限控制在变量级别而非仅设备级别。
  • 需要将访问权限控制在设备级别而非触发器级别。

您可以随时定义一个设备以使用按变量设置安全性,并定义所需的安全策略,以授予角色和用户访问这些设备的各个变量所需的读写访问权限。这完全基于应用程序解决方案的要求以及应用程序在其系统环境中正确执行的能力,包括系统资源(例如 CPU 周期和内存)的可用性和使用情况。

您可以了解是否对设备启用了“按设备变量设置安全性”,如果未启用,则该设备不会在 Read(读取)和 Write(写入)动作下列出其变量。例如:

本示例显示了 Policy(策略)窗口的一部分以及名为 Default Policy(默认策略)的策略。设备 ControlLogix_1_67 和 globVar 列出了其变量,如 [+] 或 [-] 图标以及变量名称所示。这两个设备必须将 Per Variable Security(按变量设置安全性)定义为 True。设备 StoreAndForwardVariables 没有列出其变量,因此它一定是将 Per Variable Security(按变量设置安全性)定义为 False

如果未将设备的按变量设置安全性定义为 True,则访问控制仅限于授予对整个设备及其所有变量的读取和/或写入访问权限。对于某些应用程序,这可能就足够了。

如果需要按变量设置安全性,则以下步骤将启用并验证此访问控制级别:

  1. 编辑设备的定义,以将 Per Variable Security(按变量设置安全性)设置为 True。此参数可以由 Use Advanced Properties(使用高级属性)复选框控制。

    在编辑设备时,您可能需要完成编辑,然后再启动设备。
  2. 编辑适当的安全策略以授予或拒绝对每个设备变量的读写访问权限。
    在上面的默认策略示例中,已授予 Test_Admin 角色对 globVar 设备的 boolvar、TriggerStatusChange1 和 TriggerStatusChange2 变量的读取访问权限。对其余变量的读取访问已被拒绝。
    定义或更新这些用户,他们将拥有为策略所用角色定义的变量访问权限。启用策略,该策略包含已定义的变量访问权限。
  3. 验证每个用户对设备以及策略中定义的设备变量的访问权限。
    方法是借助 Use Alternate Credentials(使用备用凭据)选项以用户身份临时登录,然后使用 Variables(变量)窗口显示、读取和写入每个变量。

    如果用户没有读取(或写入)访问权限,则会显示相应的错误消息。例如:

已为用户启用正确的读写访问权限得以验证后,可以继续进行应用程序开发和验证。