如果选择对安全事件进行限定,将限定以下几种类型的事件: • 使用正确或错误的密码转至在线状态 • 检测被操控的通信数据 • 检测存储卡上被操控的数据 • 检测被操控的固件更新文件 • 更改后的保护等级(访问保护)下载到 CPU • 限制或启用密码合法性(通过指令或 CPU 显示器) • 由于超出允许的并行访问尝试次数,在线访问被拒绝 • 现有在线连接处于禁用状态的超时 • 使用正确或错误的密码登录到 Web 服务器 • 创建 CPU 的备份 • 恢复 CPU 组态 5.1.7 日时钟 CPU 支持日时钟。在 CPU 断电期间,超级电容器提供时钟继续运行所需的电能。超级电容 器在 CPU 通电时充电。在 CPU 通电至少 24 小时之后,超级电容器所具有的电量通常足以 维持时钟运行 20 天。 STEP 7 将时钟设置为系统时间,它有一个初始的默认值或者遵循出厂值。若要使用日时钟, 必须进行设置。用于诊断缓冲区条目、数据日志文件和数据日志条目等的时间戳基于系统时 间。从在线 CPU 的“在线和诊断”(online & diagnostics) 视图中的“设置日时钟”功能 (页1211)下设置日时钟。然后,STEP 7 从您设置的时间中加上或者减去 Windows 操作系统与 UTC(世界协调时间)的偏差来计算系统时间。如果您的 Windows 操作系统的时区和夏令 时的设置与您所处的区域相一致,则将日时钟设置为当前的本地时间会产生 UTC 的系统时 间。 STEP 7 中包含读写系统时间(RD_SYS_T 和 WR_SYS_T)、读取本地时间 (RD_LOC_T) 和设 置时区 (SET_TIMEZONE) 的指令(页328)。RD_LOC_T 指令使用您在 CPU 的一般属性(页149) 的“日时钟”(Time of day) 组态中所设置的时区和夏令时偏移量来计算本地时间。这些设置 可以设置您本地时间的时区、选择性地设置夏令时并指定夏令时的开始时间和结束时间。您 也可以通过使用 SET_TIMEZONE 指令来设定这些设置。 PLC 概念 5.1 用户程序的执行 S7-1200 可编程控制器 系统手册, V4.6 11/2022, A5E02486685-AP 95 5.1.8 组态从 RUN 切换到 STOP 时的输出 可以组态 CPU 处于 STOP 模式时数字量输出和模拟量输出的特性。可以将 CPU、SB 或 SM 的 任何输出设置为冻结值或使用替换值: • 替换特定的输出值(默认):为 CPU、SB 或 SM 设备的每个输出(通道)分别输入替换值。 数字输出通道的默认替换值为 OFF,而模拟输出通道的默认替换值为 0。 • 冻结输出以保持上一个状态:工作模式从 RUN 切换到 STOP 时,输出将保留当前值。上 电后,输出被设置为默认的替换值。 可以在“设备配置”(Device Configuration) 中组态输出的行为。选择相应的设备,然后使用 “属性”(Properties) 选项卡组态每个设备的输出。 说明 某些分布式 I/O 模块提供了用于响应 CPU 停止模式的额外设置。请从这些模块的设备配置中 的选项列表中进行选择。 CPU 从 RUN 切换到 STOP 后,CPU 将保留过程映像,并根据组态写入相应的数字和模拟输 出值。 5.2 数据存储、存储区、I/O 和寻址 5.2.1 访问 S7-1200 的数据 STEP 7 简化了符号编程。用户为数据地址创建符号名称或“变量”,作为与存储器地址和 I/O 点相关的 PLC 变量或在代码块中使用的局部变量。要在用户程序中使用这些变量,请输入指 令参数的变量名称。 为了更好地理解 CPU 的存储区结构及其寻址方式,以下段落将对 PLC 变量所引用的“**” 寻址进行说明。CPU 提供了以下几个选项,用于在执行用户程序期间存储数据: • 全局储存器:CPU 提供了各种专用存储区,其中包括输入 (I)、输出 (Q) 和位存储器 (M)。 所有代码块可以无限制地访问该储存器。 • PLC 变量表:在 STEP 7 PLC 变量表中,可以输入特定存储单元的符号名称。这些变量在 STEP 7 程序中为全局变量,并允许用户使用应用程序中有具体含义的名称进行命名。 PLC 概念 5.2 数据存储、存储区、I/O 和寻址 S7-1200 可编程控制器 96 系统手册, V4.6 11/2022, A5E02486685-AP • 数据块 (DB):可在用户程序中加入 DB 以存储代码块的数据。从相关代码块开始执行一 直到结束,存储的数据始终存在。“全局”DB 存储所有代码块均可使用的数据,而背景 DB 存储特定 FB 的数据并且由 FB 的参数进行构造。 • 临时存储器:只要调用代码块,CPU 的操作系统就会分配要在执行块期间使用的临时或 本地存储器 (L)。代码块执行完成后,CPU 将重新分配本地存储器,以用于执行其它代码 块。 每个存储单元都有一个唯一地址。用户程序利用这些地址访问存储单元中的信息。对输入 (I) 或输出 (Q) 存储区(例如 I0.3 或 Q1.7)的引用会访问过程映像。要立即访问物理输入或输出, 请在引用后面添加“:P”(例如,I0.3:P、Q1.7:P 或“Stop:P”)。 表格 5-20 存储区 存储区 描述 强制 保持性 I 过程映像输入 I_:P1 (物理输入) 在扫描周期开始时从物理输入复制 - - 立即读取 CPU、SB 和 SM 上的物理输入点 ✓ - Q 过程映像输出 Q_:P1 (物理输出) 在扫描周期开始时复制到物理输出 - - 立即写入 CPU、SB 和 SM 上的物理输出点 ✓ - M 位存储器 控制和数据存储器 - 支持 (可选) L 临时存储器 存储块的临时数据,这些数据仅在该块的 本地范围内有效 - - DB 数据块 数据存储器,同时也是 FB 的参数存储器 - 是 (可选) 1 要立即访问(读取或写入)物理输入和物理输出,请在地址或变量后面添加“:P”(例如, I0.3:P、Q1.7:P 或“Stop:P”)。 每个存储单元都有一个唯一地址。用户程序利用这些地址访问存储单元中的信息。**地址 由以下元素组成: • 存储区标识符(如 I、Q 或 M) • 要访问的数据的大小(“B”表示 Byte、“W”表示 Word 或“D”表示 DWord) • 数据的起始地址(如字节 3 或字 3)
当访问地址中的某个位来获取布尔值时,请输入数据对应的存储区、字节单元和位单元(例 如 I0.0、Q0.1 或 M3.4)。 0 ࿆ ࿇ ࿈ ࿉ ࿊ ࿋ A 存储区标识符 E 存储区的字节 B 字节地址:字节 3 F 选定字节的位 C 分隔符(“字节.位”) D 位在字节中的位置(位 4,共 8 位) 本示例中,存储区和字节地址(M 代表位存储区,3 代表 Byte 3)通过后面的句点(“.”)与 位地址(位 4)分隔。 访问 CPU 存储区中的数据 STEP 7 简化了符号编程。通常,可在 PLC 变量表、数据块中创建变量,也可在 OB、FC 或 FB 的接口中创建变量。这些变量包括名称、数据类型、偏移量和注释。此外,在数据块中,还 可设定起始值。在编程时,通过在指令参数中输入变量名称,可以使用这些变量。也可以选 择在指令参数中输入**操作数(存储区、大小和偏移量)。以下各部分的实例介绍了如何 输入**操作数。程序编辑器会自动在**操作数前面插入 % 字符。可以在程序编辑器中 将视图切换到以下几种视图之一:符号、符号和**,或**。 I(过程映像输入):CPU 仅在每个扫描周期的循环 OB 执行之前对外围(物理)输入点进行 采样,并将这些值写入到输入过程映像。可以按位、字节、字或双字访问输入过程映像。允 许对过程映像输入进行读写访问,但过程映像输入通常为只读。 表格 5-21 I 存储器的**地址 位 I[字节地址].[位地址] I0.1 字节、字或双字 I[大小][起始字节地址] IB4、IW5 或 ID12 通过在地址后面添加“:P”,可以立即读取 CPU、SB、SM 或分布式模块的数字量和模拟量输入。 使用 I_:P 访问与使用 I 访问的区别是,前者直接从被访问点而非输入过程映像获得数据。这 PLC 概念 5.2 数据存储、存储区、I/O 和寻址 S7-1200 可编程控制器 98 系统手册, V4.6 11/2022, A5E02486685-AP 种 I_:P 访问称为“立即读”访问,因为数据是直接从源而非副本获取的,这里的副本是指在 上次更新输入过程映像时建立的副本。 由于物理输入点直接从这些点连接的现场设备接收其值,因此无法写入这些点。I_:P 访问是 只读的,而 I 访问是可读写的。 I_:P 访问也**于单个 CPU、SB 或 SM 所支持的输入大小(向上取整到*接近的字节)。例 如,如果将 2 DI/2 DQ SB 的输入组态为从 I4.0 开始,则可按 I4.0:P 和 I4.1:P 或 IB4:P 的形式 访问输入点。以 I4.7:P 形式访问 I4.2:P 不会被拒绝,但没有任何意义,因为不会使用这些点。 但不允许 IW4:P 和 ID4:P 的访问形式,因为它们超出了与该 SB 相关的字节偏移量。 使用 I_:P 访问不会影响存储在输入过程映像中的相应值。 表格 5-22 I 存储器的**地址(立即) 位 I[字节地址].[位地址]:P I0.1:P 字节、字或双字 I[大小][起始字节地址]:P IB4:P、IW5:P 或 ID12:P Q(过程映像输出):CPU 将存储在输出过程映像中的值复制到物理输出点。可以按位、字 节、字或双字访问输出过程映像。过程映像输出允许读访问和写访问。 表格 5-23 Q 存储器的**地址 位 Q[字节地址].[位地址] Q1.1 字节、字或双字 Q[大小][起始字节地址] QB5、QW10、QD40 通过在地址后面添加“:P”,可以立即写入 CPU、SB、SM 或分布式模块的物理数字量和模拟 量输出。使用 Q_:P 访问与使用 Q 访问的区别是,前者除了将数据写入输出过程映像外还直 接将数据写入被访问点(写入两个位置)。这种 Q_:P 访问有时称为“立即写”访问,因为 数据是被直接发送到目标点;而目标点不必等待输出过程映像的下一次更新。 因为物理输出点直接控制与其连接的现场设备,所以不允许对这些点进行读访问。即,与可 读或可写的 Q 访问不同的是,Q_:P 访问为只写访问。 Q_:P 访问也**于单个 CPU、SB 或 SM 所支持的输出大小(向上取整到*接近的字节)。例 如,如果将 2 DI/2 DQ SB 组态为从 Q4.0 开始,则可按 Q4.0:P 和 Q4.1:P 或 QB4:P 的形式访 问输出点。以 Q4.7:P 的形式访问 Q4.2:P 不会被拒绝,但没有任何意义,因为不会使用这些 点。但不允许 QW4:P 和 QD4:P 的访问形式,因为它们超出了与该 SB 相关的字节偏移量。 PLC 概念 5.2 数据存储、存储区、I/O 和寻址 S7-1200 可编程控制器 系统手册, V4.6 11/2022, A5E02486685-AP 99 使用 Q_:P 访问既影响物理输出,也影响存储在输出过程映像中的相应值。 表格 5-24 Q 存储器的**地址(立即) 位 Q[字节地址].[位地址]:P Q1.1:P 字节、字或双字 Q[大小][起始字节地址]:P QB5:P、QW10:P 或 QD40:P M(位存储区):针对控制继电器及数据的位存储区(M 存储器)用于存储操作的中间状态 或其它控制信息。可以按位、字节、字或双字访问位存储区。M 存储器允许读访问和写访 问。 表格 5-25 M 存储器的**地址 位 M[字节地址].[位地址] M26.7 字节、字或双字 M[大小][起始字节地址] MB20、MW30、MD50 临时(临时存储器):CPU 根据需要分配临时存储器。启动代码块(对于 OB)或调用代码块 (对于 FC 或 FB)时,CPU 将为代码块分配临时存储器并将存储单元初始化为 0。 临时存储器与 M 存储器类似,但有一个主要的区别:M 存储器在“全局”范围内有效,而 临时存储器在“局部”范围内有效: • M 存储器:任何 OB、FC 或 FB 都可以访问 M 存储器中的数据,也就是说这些数据可以 全局性地用于用户程序中的所有元素。 • 临时存储器:CPU 限定只有创建或声明了临时存储单元的 OB、FC 或 FB 才可以访问临时 存储器中的数据。临时存储单元是局部有效的,并且其它代码块不会共享临时存储器,即 使在代码块调用其它代码块时也是如此。例如:当 OB 调用 FC 时,FC 无法访问对其进行 调用的 OB 的临时存储器。 CPU 为每个 OB 优先级都提供了临时(本地)存储器: • 16 KB 用于启动和程序循环(包括相关的 FB 和 FC) • 6 KB 用于每次额外的中断事件线程,包括相关的 FB 和 FC 只能通过符号寻址的方式访问临时存储器。 可通过 STEP 7 中的调用结构查看程序中各块占用的临时(本地)存储器空间。从项目树中 选择“程序信息”(Program info),然后选择“调用结构”(Call structure) 选项卡。可以显示程 序中的所有 OB,并且您可以进一步展开查看它们调用的块。对于每个块,都可以显示本地 数据分配。用户也可以通过 STEP 7“工具 > 调用结构”(Tools > Call structure) 菜单命令来访问 “调用结构”(Call structure) 显示。