西门子工业标准电缆经销总代理商
- 供应商
- 浔之漫智控技术(上海)有限公司-西门子模组
- 认证
- 西门子
- PLC
- 模块
- 经销商
- 联系电话
- 18873121520
- 全国服务热线
- 18873121520
- 经理
- 陈经理
- 所在地
- 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 更新时间
- 2025-01-12 08:30
协调 cpu 变量的读写权限信息模型 (opc ua xml) 中读写权限的定义在 opc ua信息模型中,属性“accesslevel”调节对变量的访问权限。accesslevel 按位定义:位 0 =currentread,位 1 = currentwrite。位组合的含义如下:• accesslevel = 0:无访问权•accesslevel = 1:只读• accesslevel = 2:只写• accesslevel =3:读+写读写权限(读+写)的分配示例step 7 中读写权限的定义定义变量时,使用“从 hmi/opc ua可访问”(accessible from hmi/opc ua) 和“从 hmi/opc ua可写”(writable fromhmi/opc ua) 特性来指定访问权限。读写权限的分配示例图 11-20 读写权限的分配示例读写权限之间的交互如果已导入 opc ua 服务器接口,并且在此 opc ua xml 文件中设置了accesslevel 属性,则通过以下规则定义读写权限:各个设置的zui不广泛访问权限适用。示例• opc ua 服务器接口中的accesslevel = 1(只读)• 在 plc 变量表中选择了“从 hmi/opc ua 可访问”(accessiblefrom hmi/opc ua) 和“从hmi/opc ua 可写”(writable from hmi/opcua)。结果:该变量为只读。规则如果需要写权限:• accesslevel = 2 或 3• 启用“从 hmi/opc ua可写”(writable from hmi/opc ua)如果需要读权限:•accesslevel = 1(accesslevel 3 也可以,但是具有误导性。该设置表示 opc ua 客户端具有读写权限)•启用“从 hmi/opc ua 可访问”(accessible from hmi/opc ua),禁用“从 hmi/opc ua可写”(writable from hmi/opc ua)如果不授予读写权限(无访问权限):• accesslevel = 0•禁用“从 hmi/opc ua 可访问”(accessible from hmi/opcua)要阻止所有访问权限,需满足两个条件之一。在这种情况下,请检查 opc ua服务器接口中的变量实际上是否完全需要。访问表如果要通过 opc ua 进行访问,必须设置“从 hmi/opc ua可访问”(accessible from hmi/opcua)。如果要允许 opc ua 客户端写入变量/db 元素,必须设置“从hmi/opc ua 可写”(writablefrom hmi/opc ua)。请参见下表了解实现的访问权限。表格11-2 访问表opc ua xml step 7 (tia portal),例如变量表accesslevel 从hmi/opc ua 可访问 从 hmi/opc ua 可写西门子工业标准电缆经销总代理商访问 opc ua服务器数据11.3.2.1 opc ua 服务器的客户端访问和本地访问opc ua 服务器为网络中的 opc ua客户端提供大量信息。以下部分介绍了在 opc ua 服务器的地址空间中提供 cpu 变量(plc 变量和 db 元素)的几种方式。在opc ua 地址空间中通过服务器接口提供 cpu 变量将 cpu 变量自动传输到 opc ua 服务器地址空间zui便捷的方式:• 在cpu 的 opc ua 属性中,激活标准 simatic 服务器接口。为 opc ua 发布的所有 cpu 变量随后也会自动在cpu 名称下的 opc ua 地址空间中可用。图 11-11 opc ua 服务器的标准 simatic服务器接口opc ua 服务器接口的使用方式更灵活、程序结构更清晰,因为只需在项目树中组态服务器接口(在 cpu 下方的“opc ua通信”文件夹)。用户自定义 opc ua 服务器接口可以轻松映射opc ua 变量和 cpu 变量(本地数据)。图11-12 创建映射了 cpu 变量的用户自定义服务器接口下文以两个 s7-1500 cpu 为例清楚地说明了 opcua 客户端和 opc ua 服务器之间的数据交换将 cpu 的变量值直接写入 opc ua 变量中(设置 opc uadatavalue)自固件版本 v3.0 起,s7‑1500 cpu不仅可映射变量,还可以通过“opc_ua_writelist”指令将值直接写入服务器的本地 opc ua 变量节点。通常,cpu客户端程序中的“opc_ua_writelist”指令用于将值写入远程 opc ua 服务器的 opc ua变量中。在服务器中使用“opc_ua_writelist”的优势:除了该值之外,还可以为 opc ua 变量节点提供以下附加信息:•sourcetimestamp• statuscodeopc ua 内置有一个“datavalue”数据类型。datavalue是一个结构,用于记录 value 以及sourcetimestamp 和 statuscode 作为该值的附加信息。datavalue结构仅供 opc ua 服务使用,不能直接在 cpu程序中写入该结构的元素。只有通过使用“opc_ua_writelist”指令才能进行写访问。应用选项cpu变量无法记录指示zui后一次将值写入 cpu 变量的时间戳。如果通过服务器接口映射 cpu变量和 opc ua 变量,则 opc ua服务器不会将 sourcetimestamp 设置为 cpu变量发生变化的时间,而是设置为服务器中“采集”值的时间;例如,通过读取服务或在订阅环境中采样。例如,如果使用“opc_ua_writelist”将datavalue 直接写入 opc ua 变量节点,则可以提供在程序中确定的时间戳作为值的 sourcetimestamp。用于设置datavalues 的“opc_ua_writelist”指令的原理功能例如,datavalue 结构建模为udt,并且此数据类型的变量被传送到“opc_ua_writelist”指令。然后,该指令将变量的元素持续传输到 opc ua变量节点。“connectionhdl”指令参数的值决定了“opc_ua_writelist”指令的功能:“正常”客户端指令或写入本地opc ua 变量节点的指令。在后一种情况下,opc ua客户端可以读取带有附加信息的值并相应地对其进行评估。该原理如下图所示,一种情况是使用任意客户端,另一种情况是使用 s7‑1500cpu 作为 opcua 客户端。使用 s7‑1500 cpu 客户端时,显示了将 datavalue元素分配给“opc_ua_readlist”指令的相应指令参数的情况。可以完全访问 datavalue结构的所有元素。“opc_ua_writelist”指令的“read”(-42) 值会使服务器写入本地 opc ua变量节点。其它应用选项如果 opcua 客户端在订阅环境中向 s7-1500 cpu 注册值更改(受监视的项目),并且为相应的 datavalue提供了上述值和附加信息,则对附加信息的更改也可以触发通知。示例:二进制值变化非常快,在采样间隔内就可能恢复其原始值(快速变化 true> false >true)。未检测到值的变化。但是检测到时间戳的变化。同样,当 statuscode发生变化时,即使值没有变化,也可以触发通知。限制• opc ua 客户端只允许读取 opc ua 变量;必须为 opc ua变量相应地设置读/写权限的“accesslevel”属性。• 只能在本地设置用户自定义的服务器接口的 opc ua 变量。•在用户自定义的服务器接口中,直接写入的 opc ua 变量不得映射到 cpu 变量。图 11-16 用户自定义服务器接口有关“设置 opc uadatavalue”时“opc_ua_writelist”指令用法的详细信息,请参见通信指令帮助的相应部分。设置类型为数组和结构的opc ua datavalue 属性设置 opc ua datavalue属性时,如果使用“opc_ua_writelist”设置类型为结构或数组的 opcua变量,则系统将填充该结构或数组的所有元素。不应将类型为结构或数组的单个元素构建为较低级的 opc ua变量。原因:在该服务器地址空间中,如果将类型为数组或结构的各元素构建为较低层级的各个节点,则系统不会自动填充这些节点。对于 opcua 服务器,由于这些单独的节点没有 cpu 变量进行映射,因此与结构或数组类型的上一级 opc ua变量无关。要填充这些单独建模的节点,则需在程序中创建单独的元素作为各自的 datavalue 结构。提示:为确保 opc ua客户端能够同时了解相关节点发生的变更,可在同一个“opc_ua_writelist”调用中设置所有相关 opc ua变量的值。管理读写权限启用 opc ua 的 plc 变量和 db 变量如果 opc ua 启用了 plc 变量(默认设置),则opc ua 客户端对 plc 变量和 db 变量具有读写权限。对于已启用的变量,已选中复选框“可从 hmi/opc ua访问”(accessible from hmi/opcua)。可在 tia portal的设置中更改默认设置:“选项”(options) 菜单中的命令“设置 > plc 编程 > 常规”(settings> plc programming > general)。“块接口/数据块元素”(block interface/datablockelements) 区域中包含相应选项。以下为数组数据块的示例:图 11-17 启用 opc ua 变量的plc 变量和 db 变量opc ua 客户端可一次性完整读取该数组(请参见“节点寻址 (页147)”)。同时,该数组中的所有元素都将激活“从 hmi/opc ua 可访问”(accessible from hmi/opcua) 和“从 hmi/opc ua可写入”(writable from hmi/opc ua) 复选框。结果:opc ua客户端既可以对这些元素进行读操作,也可以对其进行写操作。撤消写入权限如果要对一个变量进行写保护,则可取消选中该变量的“从hmi/opc ua 可写”(writable fromhmi/opc ua) 选项。这将取消 opc ua 客户端和 hmi设备的写入权限。结果:opc ua 客户端和 hmi 设备仅具备读权限。opc ua 客户端将无法为该变量赋值,因此也无法影响 s7程序的执行。撤消读写权限要对变量进行读写保护,可禁用该变量的“从 hmi/opc ua 可访问”(accessible fromhmi/opcua) 选项(不选中该复选框)。这样,opc ua 服务器将从地址空间中删除该变量。opc ua 客户端无法再访问该cpu 变量。结果:opc ua 客户端和 hmi 设备无法对该变量进行读取和写入。如果移除某结构组件的读写权限,则无法将该结构或数据块作为一个整体进行写入或读取。如果移除某个plc 数据类型 (udt) 中各组件的读写权限,则将同时移除该数据类型的所有数据块的相应权限。在 hmi 工程组态中可见“在 hmi工程组态中可见”(visible in hmi engineering) 选项将影响西门子的工程组态工具。如果禁用选项“在 hmi工程组态中可见”(visible in hmi engineering)(未勾选),则无法在wincc (tia portal)对该变量进行组态。该选项不会对 opc ua 产生任何影响。规则• 如果与其它系统(控制器、嵌入式系统或mes)进行通信时需要,则只能在 step 7 中对plc 变量和数据块变量进行读取访问。而不应启用其它 plc 变量。• 如特定的plc 变量和数据块变量确实需要写入权限,则只允许通过 opc ua 进行写入访问。• 如果为数据块的所有元素复位“可通过hmi/opc ua 访问”(accessible from hmi/opc ua) 选项,则 opc ua 客户端的数据块不再显示在s7-1500 cpu 的 opc ua 服务器地址空间中。• 还可以阻止集中访问整个数据块(请参见管理整个 db 的读写权限 (页191))。此设置会“否决”db 编辑器中组件的设置。更多信息有关如何协调 cpu 变量的读写权限的信息,请参见“协调 cpu变量的读写权限 (页 193)”部分。11.3.2.3 管理整个 db 的读写权限隐藏 opc ua 客户端的 db 或 db内容可通过 opc ua 客户端轻松阻止对整个数据块的访问。利用此选项,相应 db 的数据(包括函数块的示例 db)对 opc ua客户端保持隐藏。在模式设置中,数据块可通过 opc ua 客户端进行读写。可在 tia portal的设置中更改此默认设置:“选项”(options) 菜单中的命令“设置 > plc 编程 > 常规”(settings> plc programming >general)。“新块的默认设置”(default settings fornew blocks) 区域中包含相应选项。操作步骤要对 opc ua 客户端完全隐藏某一数据块或避免通过 opc ua客户端对数据块进行写访问,请按以下步骤操作:1. 在项目树中选择要保护的数据块。说明对 db 编辑器中设置的影响如果使用此处描述的db 属性隐藏 db,则 db编辑器中组件的设置将不再相关;不能再访问或写入单个组件。提示:使用所有程序块的总览图如果使用多个数据块,则可以使用“程序块”(programblocks) 文件夹的详细总览图有选择的激活或禁用 opc ua 可访问性。请按以下步骤操作:1.在项目树中选择“程序块”(program blocks) 文件夹。2. 在“视图”(view)菜单中,选择“总览图”(overview) 命令。3. 选择“详细信息”(details) 选项卡。将显示块及其属性的总览图。4.确保选中“可通过 opc ua 访问的数据块”(data block accessible via opc ua) 列。5.仅选择要通过 opc ua 访问的数据块。