中断堆栈 (S7-300,S7-400) 功能 如果正在执行的程序被较高优先级组织块中断,则操作系统将以下数据保存在中断堆栈(I 堆 栈)中: •累加器和地址寄存器的当前内容 • 打开的数据块的数目和大小 一旦执行完新的组织块之后,操作系统将从中断堆栈装载这些信息。在中断点恢复被 中断的块的执行。 块堆栈 (S7-300, S7-400) 功能如果执行一个块时被另一个块的调用或较高优先等级的中断或错误处理所中断,则操作系统 将以下数据保存在块堆栈(B 堆栈)中: •被中断的块的编号、类型(OB、FB、FC、SFB、SFC)和返回地址。 • 块发生中断时已打开的 DB 和 DI寄存器的数据块的编号。 使用这种数据,可在中断后恢复用户程序。在编程设备上,可在打开程序编辑器之后,使用测试功能“调用层级”(Call hierarchy)在 “STOP”模式下读取块堆栈。块堆栈列出了 CPU 切换为 STOP 操作模式时尚未执行完毕的所有 块。 下图显示了块调用的顺序OB 及相关块的所有临时变量(TEMP) 都存储在本地数据堆栈中。 如果在执行块时使用大量 嵌套层,则本地数据堆栈可能会溢出。如果超过程序的允许本地数据堆栈大小,则 S7-CPU 切换到 STOP 操作模式。 可通过“显示程序信息”(Show programinformation)功能来了解所需本地数据的概要情 况。 请勿忘记同步错误 OB 的本地数据要求。 将本地数据分配给优先等级 对于S7-300:每个优先等级和每个块的本地数据Zui大数量受到 S7-300 的限制(请参见 CPU 的技术数据)。 对于S7-400:本地数据的总体Zui大数量受到限制(请参见 CPU 的技术数据)。可以在 CPU参数分配的框架内将可用的本地数据自由分发到各个优先等级。 过程中的本地数据不得超 出Zui大数量。
数据块寄存器提供了两个数据块寄存器。 它们包含已打开的数据块的编号: • DB 寄存器包含已打开的全局数据块的编号。 • DI寄存器包含已打开的背景数据块的编号。 诊断缓冲区 (S7-300, S7-400) 功能诊断缓冲区中包含系统诊断事件和用户定义的诊断事件,这些事件按照发生顺序排列。 第 一个条目包含Zui新的事件。诊断缓冲区中的条目数取决于具体的模块及当前的操作模式。 可能出现的诊断事件: • 模块存在故障 • 过程布线中存在故障 • CPU中存在系统错误 • CPU 的操作模式转换 • 用户程序中的错误 • 使用系统函数 SFC 52时用户定义的诊断事件发生系统诊断事件时进入诊断缓冲区中的信息,与传送到相应组织块的启动信息相同。不能删除诊断缓冲区中的条目;在复位存储器之后,也会保留诊断缓冲区的内容。 诊断缓冲区的优势 诊断缓冲区具有以下优势: • 如果CPU 切换到“STOP”模式,则可评估进入“STOP”状态之前Zui后发生的事件,并确定进入 “STOP”状态的原因。 •用户可以更快地识别出现错误的原因,从而提高系统可用性。 • 可以评估和优化动态系统响应。 诊断缓冲区的结构诊断缓冲区设计为环形缓冲区。Zui大条目数取决于模块;例如,S7-300 CPU 314 可具有 100 个条目。达到Zui大条目数时,下一个诊断缓冲区事件将导致删除Zui早的条目。 所有条目随 后向后移动一个位置。这意味着Zui新条目总是诊断缓冲区中的第一个条目。 诊断缓冲区中的条目数取决于具体的模块及当前的操作模式。 对于某些 CPU,可以指定诊断缓冲区的长度。 诊断缓冲区的评估 可通过以下方式访问诊断缓冲区的内容: • 通过诊断视图在线访问 • 在用户程序中通过 SFC51“RDSYSST”访问。 默认情况下,在从“RUN”模式切换为“STOP”模式之前,CPU 会自动将Zui后的诊断缓冲区条目发送到监视设备(编程设备、操作员面板或文本显示屏)。 这样就可以快速找到操作模式 切换的原因并纠正。 可以更改此默认操作。 说明如果要zuihao地利用诊断缓冲区条目上的时间戳信息,请在模块上设置日期和时间,并偶尔检 查设置。定时器和计数器 (S7-300,S7-400) 定义 定时器和计数器是系统存储器的存储区。 可在用户程序中指定定时器或计数器的功能,如 接通延时和初始计数值。可用定时器和计数器的数目取决于 CPU。 说明 请注意有关定时器的下列信息: • 如果在用户程序中使用的定时器和计数器数目超过 CPU允许范围,则提示同步错误,并启动 组织块“OB 121”。 访问 I/O 数据区 (S7-300, S7-400) I/O 数据区(S7-300, S7-400) 分布式 I/O 数据区的结构 (S7-300, S7-400) I/O 数据区 I/O 数据区分为:• 用户数据 • 诊断和参数数据 两个区域都分别具有一个允许只读访问的输入区和一个与允许只写访问的输出区。 用户数据 (S7-300,S7-400) 定义 用户数据可以是: • 来自信号模块的数字量和模拟量的输入和输出信号 • 来自功能模块的控制和状态信息 •来自通信模块的点对点和总线连接信息访问用户数据 数字量信号模块中的用户数据通过输入或输出区域的字节地址进行寻址。对于模拟量信号模块,使用输入或输出区域的字地址进行寻址。可通过装载和传送命令或通信功能(操作员控制和监视)或通过过程映像传送来访问用户数 据。 使用装载和传送命令时,可实现 1 个、2 个和4 个字节的数据一致性。 过程映像中的数据 始终保持一致。 若希望实现 3 个字节或多于 4个字节数据的一致性,需要使用指令“DPRD_DAT”(SFC 14) 或 “DPWR_DAT”(SFC 15)。 若要传送 4个相邻且未经改动的字节,请使用指令“传送双字”(Transfer double word)。 如 果分别使用 4次“传送输入字节”(transfer input byte) 指令,则无法保持字节的一致性,且 可能出现不希望的结果。 诊断和参数数据(S7-300, S7-400) 诊断和参数数据的数据记录 无法对模块的诊断和参数数据单独进行寻址。数据总是以完整数据记录的形式来传送。 这 意味着总是传送一致的诊断和参数数据。通过相应模块的起始地址和数据记录编号来寻址诊断和参数数据。 数据记录分为输入和输 出数据记录。输入数据记录只能读取,输出数据记录只能写入。 可使用系统函数或通信功 能来访问数据记录。 下表说明了数据记录到诊断和参数数据的分配:数据 说明 诊断数据 对于具有诊断功能的模块,可通过读取数据记录 0 和 1 来获取诊断数据。 参数数据对于带参数的模块,可通过写入数据记录将参数传送到模块。 访问模块的数据记录 (S7-300, S7-400) 用于访问数据记录的指令可使用数据记录中的信息来重新分配带参数模块的参数,并读取带诊断功能的模块的诊断信 息。如果使用 GSD 文件(修订版 3 以上的GSD)组态一个 DPV1 从站并且 DP 主站 (S7-400 CPU) 的 DP 接口设置为“与 S7兼容”(S7-compatible),则用户程序中的 I/O 模块不能通过指令“WR_REC/RD_REC”或“WRREC/RDREC”读写数据记录。 在这种情况下,DP 主站会寻址到错误的插槽,即已组态的插槽号 + 3。为避免发生这种问题,请将 DP 主站接口设置为“DPV1”。 模块起始地址 (S7-300,S7-400) 模块起始地址就是模块的Zui低字节地址。 它表示模块中用户数据区的起始地址,在很多情 况下用于表示整个模块。模块起始地址将在,例如发生过程中断、诊断中断、插/拔模块中断和电源故障时,输入相 应组织块的启动信息中,标识中断生成的模块。组态模块起始地址 组态模块时,调整用户程序中使用的地址与模块起始地址。 可在模块属性中(“地址”(Addresses)组)更改将模块插到机架中时自动分配的起始地址。用户数据区 (S7-300, S7-400) 访问 I/O 地址 (S7-300,S7-400) I/O 操作数区域中的用户数据 该用户数据标识了 I/O 操作数区域。存在以下区域: • I/O 输入 (PI) •I/O 输出 (PQ) 如果用户数据位于过程映像中,则 CPU 将在过程映像更新时自动执行模块与过程映像区之 间的数据交换。如果用户数据不在过程映像中,则需在用户程序中通过 I/O 直接访问功能访问这些数据(如, L %IB500:P)。模拟量输入和输出模块的地址通常不在过程映像区中。但用户可将模拟量模块的地址放置在 该区域内。设置操作特性 (S7-300,S7-400) 工作性能调节简介 (S7-300, S7-400) 影响自动化系统的属性 可通过以下方式来影响未预置的自动化系统属性:• 设置系统参数 • 在扩展指令中使用系统函数 (SFC) 更改模块参数 (S7-300, S7-400) 默认设置出厂状态下,所有模块的参数都为默认设置,满足标准应用。 这些默认值可使用户立用模块,无需进行任何其它设置。用户可根据具体应用的要求和环境来修改模块的行为和属性。可设置参数的模块包括 CPU、功能模块 (FM)、通信处理器 (CP)和某些模拟量输入和输出模块以及数字量输入和输 出模块。模块参数 模块参数按组归类以提高清晰度。例如,CPU 具有以下组: • 启动 •循环 • PROFINET 接口或其它接口 • 诊断 • 保持性地址区 • 时钟存储器 • 中断 • 保护 • 时钟 • 连接资源设置和装载参数 可以设置模块参数。 在保存设备组态及其参数时,系统数据将创建并随用户程序装载到 CPU,在启动期间传送到模块。使用指令分配参数 除分配参数外,还可在程序中使用gaoji指令来修改模块参数。 下表列出了这些指令以及它们可以更改的模块参数:系统函数 应用 WR_PARM 将可修改的参数(数据记录 1)传送到寻址的信号模块。 WR_DPARM 将相应 SDB的各参数数据记录传送到寻址到的信号模块。 PARM_MOD 将相应 SDB 的所有参数传送到寻址的信号模块。 WR_REC将任意数据记录传送到寻址的信号模块。