保护 保护功能概述简介本部分描述了用于防止未经授权的访问的功能:• 保护机密的组态数据• 访问保护• 专有技术保护• 通过锁定 CPU 进行保护其它 CPU 保护措施下列措施进一步防止了通过外部资源和网络进行未经授权的访问:• 不激活通过 NTP 服务器进行时间同步。
• 不激活 PUT/GET 通信。
10.2 保护机密的组态数据自 STEP 7 V17 起,可通过指定一个密码保护相应 CPU 的机密组态数据。
包括诸如私钥等基于证书的协议正常运行所需数据。
通过“RH_GetPrimaryID”确定主 CPU使用“RH_GetPrimaryID”指令读取当前作为主 CPU 的 CPU。
该指令会在块参数 Ret_Val 中输出主 CPU 的冗余 ID。
图 9-4 “RH_GetPrimaryID”指令示例:从主 CPU 的 SIMATIC 存储卡中读取维护信息从主 CPU 的 SIMATIC 存储卡中读取维护信息的操作步骤如下:1. 通过“RH_GetPrimaryID”获取主 CPU 的冗余 ID。
2. 通过“GetSMCInfo”从主 CPU 的 SIMATIC 存储卡中读取维护信息。
– 如果冗余 ID 为 1 的 CPU 为主 CPU,则在块参数 Mode 中输入“12”(“1”代表冗余ID,“2”代表维护信息)。
– 如果冗余 ID 为 2 的 CPU 为主 CPU,则在块参数 Mode 中输入“22”(“2”代表冗余ID,“2”代表维护信息)。
参考有关“RH_GetPrimaryID”指令的更多信息,请参见 STEP 7 在线帮助。
程序执行的基本知识9.5 异步指令S7-1500R/H 冗余系统280 系统手册, 01/2023, A5E41815205-AE9.5 异步指令简介在程序执行过程中,同步和异步指令有着显著不同。
“同步”和“异步”属性与指令调用与执行间的时间顺序相关。
以下情况适用于同步指令:同步指令调用完成时,指令执行也完成。
而异步指令,则情况有所不同:异步指令调用完成时,异步指令的执行不一定完成。
这也就意味着,异步指令的执行可以跨多次调用。
在 CPU 中,异步指令的执行与用户程序循环同时进行。
异步指令在 CPU 中生成待处理的作业。
异步指令通常用于传输数据(例如,模块的数据记录、通信数据或诊断数据)。
同步/异步指令之间的不同之处下图显示了异步指令和同步指令处理的不同之处。
在该图中,CPU 在指令执行完成(如,完成传输数据记录)之前,调用该异步指令五次。
使用同步指令,在每次调用中全面执行该指令。
① 第一次调用异步指令,开始执行② 中间调用异步指令,继续执行。
③ 最后一次调用异步指令,执行完成④ 每次调用后,作业会完全通过同步指令进行处理。
完全执行的作业的持续时间图 9-5 异步指令和同步指令之间的不同之处程序执行的基本知识9.5 异步指令S7-1500R/H 冗余系统系统手册, 01/2023, A5E41815205-AE 281说明SYNCUP 系统状态下处理异步指令。
如果 S7-1500R/H 冗余系统执行 SYNCUP,会延长异步指令的处理时间。
需要循环调用异步指令(例如在 OB 1 中)才能实现 SYNCUP 系统状态的动态响应。
异步指令作业的并行处理CPU 可同时执行多个异步指令作业。
在以下情况下,CPU 将并行执行多个作业:• 用于异步指令的作业会启动,而该指令的其它作业仍在运行中。
• 但不超出该指令可同时运行的作业最大数目。
下图显示了 WRREC 指令中两个作业的并行处理。
在一段时间内,两个指令同时执行。
图 9-6 异步指令 WRREC 的并行执行说明异步语句之间的依赖关系用户程序中的调用顺序可能不同于异步指令的处理顺序。
这可能导致异步指令之间的依赖关系出现问题。
解决方法:为确保能够正确地按先后顺序进行处理,请在顺控器中使用异步语句的状态输出。
仅当异步指令已完成且已通过参数 DONE 确认后,才能开始执行下一条异步指令。
示例:对于 Recipeimport 和 RecipeExport 配方功能,需要使用 CSV 文件存储配方数据。
如果导入和导出时使用同一 CSV 文件,则两个异步语句会建立相互依赖关系。
在顺控器中,将跳转中 Recipeimport 指令的参数 DONE 状态关联到将执行 RecipeExport 的下一步。
进行此关联后,可确保正确进行处理。
程序执行的基本知识9.5 异步指令S7-1500R/H 冗余系统282 系统手册, 01/2023, A5E41815205-AE为作业分配指令调用要跨多个调用执行一个指令,CPU 需向该指令正在运行的作业唯一指定一个后续调用。
CPU 可通过以下两种方式为作业分配一个调用,具体取决于指令的类型:• 使用指令的背景数据块(“SFB”类型)• 使用标识该作业的指令的输入参数。
在异步指令的执行过程中,这些输入参数必须与执行过程中的各调用相匹配。
示例:指令“RD_DPARA”由 LADDR 和 RECNUM 标识。
异步指令的状态异步指令通过块参数 STATUS/RET_VAL 和 BUSY 显示指令的状态。
有些异步指令也会使用块参数 DONE 和 ERROR 显示。
下图显示了两个异步指令 WRREC 和 RD_DPARA 的执行① 输入参数 REQ 用于启动作业,执行异步指令。
② 输出参数 DONE 用于指示该作业已完成且无错误。
③ 输出参数 BUSY 用于指示作业是否正在执行。
BUSY=1 时,为该异步指令分配资源。
BUSY= 0 时,未分配资源。
④ 输出参数 ERROR 用于指示发生了错误。
⑤ 输出参数 STATUS/RET_VAL 用于提供有关作业执行的状态信息。
发生错误后,输出参数 STATUS/RET_VAL 用于接收错误信息。
图 9-7 指令 WRREC 和 RD_DPARA 示例中,异步指令的块参数说明。
程序执行的基本知识9.5 异步指令S7-1500R/H 冗余系统系统手册, 01/2023, A5E41815205-AE 283总结下表简要列出了上文中介绍的参数关系。
在该表格中,还特别列示了调用后但指令执行不完整时可能的输出参数值。
说明同步指令的输出参数可以在每次调用时更改。
因此,每次调用异步指令后,需对相关输出参数进行评估。
资源的使用异步指令在执行过程中将占用 CPU 中的资源。
根据 CPU 类型和指令的不同,资源的使用具有一定限制。
CPU 仅可同时处理设定的最大数目的异步指令作业。
在作业成功完成后或在出错后,这些资源将再次可用。
示例:对于 RDREC 指令,S7-1500R/H CPU 最多可以并行处理 20 个作业。
如果超出一个指令可同时运行的最大作业数量,开始另一作业时,会出现以下情况:• 作业未执行。
• ERROR 输出参数返回值 1。
• STATUS 块参数返回错误代码 W#16#80C3(资源不足)。
说明低层级的异步指令某些异步指令可使用一个或多个低层级的异步指令进行处理。
下表列出了这种相关性。
请注意,每条级别较低的指令通常占用指令资源池中的一个资源。
扩展指令:可同时运行作业的最大数目表格 9- 7 所用的扩展异步指令和级别较低的指令中可同时运行的最大作业数扩展指令 1513R-1 PN 1515R-2 PN 1517H-3 PN 1518HF-4 PN分布式 I/ORDREC 20WRREC 20ASI_CTRL 使用 RDREC、WRRECPROFIenergyPE_START_END 使用 RDREC、WRRECPE_CMD 使用 RDREC、WRRECPE_DS3_Write_ET200S使用 RDREC、WRRECPE_WOL 使用 RDREC、WRREC、TUSEND、TURCV、TCON、TDISCON 组态 CPU 的访问保护简介S7-1500R/H 冗余系统提供了四种或五种不同的访问级别,用于限制对特定功能的访问。
设置访问等级和密码后,需输入密码才能访问功能和存储区。
将在 CPU 的对象属性中指定各种访问级别及其相应密码。
密码规则确保密码的安全性足够高。
密码不得采用机器可识别的模式。
请遵循以下规则:• 分配的密码长度至少为 8 个字符。
• 使用不同格式和字符:大写/小写、数字和特殊字符。
CPU 的访问级别表格 10- 1 访问级别和访问限制访问级别 访问限制完全访问权限,包括故障安全(无任何保护)STEP 7 和 HMI 应用程序的用户有权访问所有标准功能和故障安全功能。
无需密码。
完全访问权限(无保护)STEP 7 的用户有权访问标准功能。
HMI 应用程序可访问所有功能(故障安全功能和标准功能)。
需要密码:要具备访问故障安全功能的权限,用户需在 STEP 7 中输入“完全访问权限,包括故障安全”(Full access incl. fail-safe) 的密码。
读访问权 使用此访问级别,仅允许在不输入密码的情况下对硬件配置和块进行读访问。
还可以进行 HMI 访问和诊断数据访问。
如果不输入密码,则不能将块或硬件配置下载到 CPU 中。
如果没有密码,也无法进行以下操作:写测试功能和固件更新(在线)。
保护10.3 组态 CPU 的访问保护S7-1500R/H 冗余系统系统手册, 01/2023, A5E41815205-AE 289访问级别 访问限制HMI 访问权 相同的访问限制适用于 HMI 访问的读访问。
如果没有密码,也无法进行以下操作:更改操作状态 (RUN/STOP/SYNCUP) 以及显示在线/离线比较状态。
无访问权(完全保护)对 CPU 进行全面保护时,不能对硬件配置或块进行读/写访问(不提供密码形式的访问权限)。
同样无法进行 HMI 访问。
必须输入正确密码,通过验证后,才能再次获得 CPU 的完全访问权。
参考有关不同访问等级可执行的功能列表,请参见 STEP 7 在线帮助中的“设置保护选项”(Setting options for the protection)。
访问级别的属性每个访问级别都允许在不输入密码的情况下对某些功能进行无限制访问,例如,使用“可访问设备”功能进行识别。
CPU 的默认设置为“无访问权限(完全保护)”。
在默认访问级别下,不允许用户读取或更改硬件配置或块。
要获得对 CPU 的访问权限,也可以在 CPU 属性中分配参数:• “无访问权限(完全保护)”保护级别的密码• 其它保护级别,例如“完全访问权限(无保护)”CPU 之间的通信(通过块中的通信函数)不受 CPU 的访问等级的限制。
输入正确的密码可以访问对应级别中允许的所有功能。
说明组态一个访问级别并不能取代专有技术保护通过组态访问等级,可提供一个较高的防护等级,有效防止通过网络访问对 CPU 进行未经授权的更改。
访问级别可用于限制将硬件和软件组态下载到 CPU 的权限。
但不会对SIMATIC 存储卡上的块进行读写保护。
使用专有技术保护则可以保护 SIMATIC 存储卡上的代码块。
不同访问级别下的功能特性STEP 7 在线帮助提供了一张表,其中列出了不同访问级别下可以使用的在线功能。
保护10.3 组态 CPU 的访问保护S7-1500R/H 冗余系统290 系统手册, 01/2023, A5E41815205-AE组态访问级别组态 CPU 访问级别的操作步骤如下:1. 在巡视窗口中,打开 CPU 的特性。
2. 打开区域导航栏中的“保护与安全”(Protection & Security)。
将在巡视窗口中显示一张列有各种访问级别的表格。
图 10-1 可能的访问级别3. 激活表格第一列中所需的保护等级。
列中访问级别右侧的绿色复选标记将指示如不输入密码仍可执行的操作。
在上例中(图:可能的访问级别),没有密码仍可进行读访问和HMI 访问。
4. 在“输入密码”(Enter password) 列中,在第一行指定“完全访问权限”(Full access) 访问级别的密码。
在“确认密码”(Confirm password) 列中,再次输入所选密码以免输入错误。
5. 根据需要为其它访问级别分配密码。
6. 下载硬件配置以使访问级别生效。
CPU 会通过条目将以下操作记录到诊断缓冲区中:• 正确或错误密码的输入• 访问级别组态的更改保护10.3 组态 CPU 的访问保护S7-1500R/H 冗余系统系统手册, 01/2023, A5E41815205-AE 291操作期间受密码保护的 CPU 的行为将设置加载到 CPU 后,CPU 保护将在在线连接后生效。
如果设置较高的访问级别且将其下载到 CPU,其它所有在线连接都将中断。
随后需要建立新的在线连接。
在执行在线功能之前,STEP 7 检查所需的权限,必要时将提示用户输入密码。
在任何时刻,只能在一个 PG/PC 执行受密码保护的功能。
其它 PG/PC 无法登录。
会在在线连接持续时间内或 STEP 7 打开的时间段内应用对受保护数据的访问权限。
“在线 > 清除访问权限”(online > Clear access rights) 会清除访问权限。
在 RUN 状态下,可在显示屏本地限制对受密码保护的 CPU 的访问。
这样,即使输入密码也无法进行访问。
使用显示屏设置其它密码保护禁止访问受密码保护的 CPU可在 CPU 显示屏上阻止访问受密码保护的 CPU(本地密码阻止)。
如果模式选择器设为RUN,阻止会生效。
阻止访问需要在 STEP 7 中组态保护等级并加以应用(不考虑是否采用密码保护)。
即使通过连接的 PG/PC 访问 CPU,并且输入了正确的密码,也会拒绝访问 CPU。
可以分别在显示屏上为每个访问级别设置访问阻止。
在 SYNCUP 状态下备用 CPU 接管设置。
对于处于 RUN-Redundant 系统状态的主 CPU 或备用 CPU,切换至访问阻止的操作也适用于对方。
操作步骤如果要通过显示屏阻止访问 CPU,需要在 STEP 7 中组态使用密码的访问级别。
如果在显示屏上为 CPU 设置本地访问保护,在 RUN-Redundant 系统状态下,会阻止访问两个 CPU。
请按以下步骤操作:1. 在显示屏上,选择“设置 > 保护”(Settings > Protection) 菜单。
2. 单击“确定”(OK) 确认选择。
为每个访问级别指定是否允许在 RUN 操作状态下进行访问。
– 允许:在 STEP 7 中输入正确密码可访问 CPU。
– 在 RUN 下取消激活:如果模式选择器设为 RUN,不能再使用该访问级别的权限登录 CPU。
即使用户知道密码,也会拒绝其访问。
如果操作模式开关处于 STOP 位置,则会再次启用通过密码进行访问。
显示屏访问保护在 STEP 7 中,在 CPU 的特性中组态显示屏密码。
这样便可通过本地密码实现本地访问保护。
保护10.5 使用用户程序设置其它访问保护S7-1500R/H 冗余系统系统手册, 01/2023, A5E41815205-AE 29310.5 使用用户程序设置其它访问保护通过用户程序实现访问保护除了通过显示屏实现访问保护之外,还有另一种实现方法。
在 STEP 7 中,也可使用指令ENDIS_PW 限制对受密码保护的 CPU 的访问。
有关该指令的更多信息,请参见 STEP 7 在线帮助中的“ENDIS_PW:限制和启用密码合法性”10.6 专有技术保护应用可以使用专有技术保护来保护程序中一个或多个 OB、FB、FC 块以及全局数据块,防止受未经授权的访问。
可以指定密码以限制对块的访问。
密码可提供gaoji别防护功能,以防止对块进行未经授权的读取和篡改。
专有技术保护不涉及 CPU(STEP 7 中的离线访问)。
密码提供程序除了手动输入密码,也可为 STEP 7 分配一个密码提供程序。
使用密码提供程序时,可从可用的密码列表中选择一个密码。
打开一个专有技术保护块时,STEP 7 将连接该密码提供程序并检索相应的密码。
要安装并激活密码提供程序才能实现连接。
此外,还需提供设置文件,用于定义密码提供程序的使用方式。
密码提供程序具有以下优势:• 通过密码提供程序定义和管理密码。
打开专有技术保护块时,将使用密码对应的符号名称。
例如,在密码提供程序中,使用符号名称“Machine_1”标记密码。
“Machine_1”背后的实际密码不对用户公开。
用户本身不知道密码,因此密码提供程序可提供zuijia块保护。
• STEP 7 将自动打开专有技术保护块,而无需直接输入密码。
从而节省大量时间。
有关连接密码提供程序的更多信息,请参见 STEP 7 在线帮助。
保护10.6 专有技术保护S7-1500R/H 冗余系统294 系统手册, 01/2023, A5E41815205-AE可读数据若一个块受专有技术保护,在不输入正确密码的情况下,只能读取下列数据:• 块标题、注释和块属性• 块参数(INPUT、OUTPUT、IN、OUT、RETURN)• 程序调用结构• 不带使用点信息的全局变量其它操作对于受到专有技术保护的块,可执行以下进一步操作:• 复制和删除• 在程序中调用• 在线/离线比较• 加载全局数据块和数组数据块可以通过专有技术保护防止全局数据块(全局 DB)受到未授权的写入访问。
无有效密码的用户在未提供使用相关信息的情况下只能读取全局数据块。
但是,无法更改全局数据块。
专有技术保护不适用于数组数据块(数组 DB)。
设置块的专有技术保护要对块设置专有技术保护,请按下列步骤操作:1. 打开相应块的属性。
2. 在“常规”(General) 下选择“保护”(Protection) 选项。
图 10-2 设置块的专有技术保护保护10.6 专有技术保护S7-1500R/H 冗余系统系统手册, 01/2023, A5E41815205-AE 2953. 单击“保护”(Protection) 显示“定义保护”(Define protection) 对话框。
图 10-3 定义保护4. 在“新密码”(New password) 框中输入新密码。
在“确认密码”(Confirm password) 框中输入相同的密码。
5. 单击“确定”(OK),确认输入。
6. 单击“确定”(OK),关闭“专有技术保护”(Know-how protection) 对话框。
结果:所选块受到专有技术保护。
在项目树中,受专有技术保护的块将标记为一个挂锁形标识。
输入的密码将应用于所选的所有块。
说明密码提供程序此外,也可使用密码提供程序为块设置专有技术保护。
打开受专有技术保护的块要打开受到专有技术保护的块,请按下列步骤操作:1. 双击块,将打开“访问保护”(Access protection) 对话框。
2. 输入受专有技术保护块的密码。
3. 单击“确定”(OK),确认输入。
结果:专有技术保护块随即打开。
该块打开后,可编辑该块的程序代码和块接口,直到关闭该块或 STEP 7。
下次打开该块时,需要再次输入密码。
如果使用“取消”(Cancel) 按钮关闭“访问保护”(Access protection)对话框,则块虽然可以打开,但不显示块代码。
用户将无法编辑块。
若将该块复制或添加到一个库中,其专有技术保护不会取消。
副本块同样也受专有技术保护。
保护10.6 专有技术保护S7-1500R/H 冗余系统296 系统手册, 01/2023, A5E41815205-AE更改块的专有技术保护要更改块的专有技术保护,请按下列步骤操作:1. 选择要更改其专有技术保护的块。
不能在程序编辑器中打开受保护的块。
2. 在“编辑”(Edit) 菜单中,选择“专有技术保护”(Know-how protection) 命令以打开“更改保护”(Change protection) 对话框。
3. 要更改专有知识保护的密码,请在“原密码”(Old password) 下输入当前密码。
4. 现在在“新密码”(New password) 下输入新面貌,然后在“确认密码”(Confirm password)下确认密码。
5. 单击“确定”(OK),确认输入。
结果:所选块的专有知识保护密码已更改。
取消块的专有技术保护要移除块的专有技术保护,请按下列步骤操作:1. 选择要取消专有技术保护的块。
不能在程序编辑器中打开受保护的块。
2. 在“编辑”(Edit) 菜单中,选择“专有技术保护”(Know-how protection) 命令以打开“更改保护”(Change protection) 对话框。
图 10-4 取消专有技术保护3. 要移除块的专有知识保护,请在“原密码”(Old password) 下输入当前密码。
将新密码对应的字段留空。
4. 单击“移除”(Remove),确认输入。
结果:所选块的专有技术保护设置已取消。