系统状态列表 (S7-300, S7-400) 系统状态列表 (SZL) 的概述 (S7-300, S7-400) 定义: 系统状态列表 系统状态列表 (SZL) 中描述了自动化系统的当前状态。 SZL (系统状态列表)的内容只能使 用信息功能来读取,无法更改其内容。 部分列表为虚拟列表,换言之,只有在专门请求时, CPU 的操作系统才会创建部分列表。 使用“RDSYSST (页 7903)”只能读取一个部分列表。 本章介绍系统状态列表的部分列表,这 些部分列表可使用用户程序中的“RDSYSST (页7903)”来读取,含有与下面部分有关的信息: • CPU;或 • 模块,其部分列表是非模块特定的(例如,SZL ID W#16#00B1、W#16#00B2、 W#16#00B3)。 例如,特定模块的说明中包括通信处理器和 FM 的与模块有关的部分列表。 内容 系统状态列表包含以下信息: • 系统数据 • CPU 中的模块状态数据 • 模块诊断数据 • 诊断缓冲区 系统数据 系统数据是 CPU 的固定或参数指定的特性数据。 这些数据提供以下信息: • CPU 的配置 • 优先级状态 • 通信
参数 声明 数据类型 存储区 说明 RET_VAL Return INT I、Q、M、D、L 如果在执行指令期间发生错误,则参数 RET_VAL 包含一个错误代码。 BUSY Output BOOL I、Q、M、D、L TRUE:读取尚未完成。 SZL_HEADER Output STRUCT D、L 请见下面。 DR Output ANY I、Q、M、L、D 读取 SZL 部分列表或读取 SZL 部分列表摘录的 目标区域: • 如果仅读取了 SZL 部分列表的标头信 息,则不应评估 ,DR 只应评估 SZL_HEADER。 • 否则,LENTHDR 和 N_DR 的结果将指示在 DR 中输入了多少个字 节。 有关有效数据类型的更多信息,请参见“有效数据类型概述。LENTHDR 是 SZL 部分列表或 SZL 部分列表摘录的数据记录长度。 • 如果仅读取了 SZL 部分列表的标头信息,则 N_DR 包含属于它的数据记录数。 • 否则,N_DR 包含传输到目标区域的数据记录数。模块状态数据 模块状态信息描述了系统诊断功能所监视的各个组件的状态。 模块诊断数据 分配给 CPU 的具有诊断功能的模块将诊断数据直接存储在模块上。 诊断缓冲区 诊断缓冲区中存储有按发生顺序排列的诊断项目。 部分 SZL 列表的结构 (S7-300, S7-400) 基础知识 可使用“RDSYSST (页 7903)”来读取部分列表或部分列表摘录。 使用参数 SZL_ID(系统状态 列表 ID)和 INDEX,可以指定读取的内容。 结构 部分列表包括以下部分: • 标头 • 数据记录。 标头 部分列表的标头包括以下部分: • SZL-ID • INDEX • 部分列表的一个数据记录的长度 • 部分列表中的数据记录数 索引 对于某些部分列表或部分列表摘录,必须指定对象类型 ID 或对象编号。为此,可使用索引。 若信息不需要索引,则索引的内容无关紧要。数据记录 部分列表中的数据记录具有特定长度。 长度取决于部分列表中的信息。 数据记录中数据字 的使用方式也取决于特定部分列表。 SZL-ID (S7-300, S7-400) SZL-ID(系统状态列表 ID) 系统状态列表中的每个部分列表都有一个编号。可以输出完整部分列表或提取一部分内容。 可能的部分列表摘录是预定义的,并由编号来标识。 SZL-ID 由部分列表编号、部分列表摘 录编号和模块类别组成。 结构 SZL-ID 的长度为一个字。SZL ID 中各个位的含义如下所示:部分列表摘录编号 部分列表摘录的编号及其含义取决于它们所属的系统状态列表。 使用部分列表摘要编号,可 指定要读取的部分列表的子集。部分列表编号 使用部分列表编号,可指定要读取的系统状态列表的部分列表。 可用的 SZL 部分列表 (S7-300, S7-400) 子集 任何一个模块仅拥有所有可能部分列表的一个子集。 可用的部分列表取决于特定模块。 可用的 SZL 部分列表 下表列出了所有可能的部分列表,部分列表的编号存储在 SZL-ID(系统状态列表 ID)中。SZL-ID W#16#xy11 - 模块标识 (S7-300, S7-400) 目的 可使用 SZL-ID(系统状态列表 ID)W#16#xy11,通过部分列表获取此模块的模块标识。SZL-ID W#16#xy12 - CPU 的特性 (S7-300, S7-400) 目的 CPU 模块的特性各部相同,具体情况取决于使用的硬件。 每种特性都分配有一个 ID。 可使 用 SZL-ID(系统状态列表 ID)W#16#xy12,通过部分列表来获取此模块的特性。 标头 SZL-IDW#16#xy12 的部分列表标头的结构如下: 内容 含义 SZL-ID 部分列表摘录的 SZL-ID W#16#0012:所有特性 W#16#0112:某个组的特性;可在参数 INDEX 中指定组。 W#16#0F12:仅有 SZL 部分标头信息 INDEX 组 W#16#0000:MC7 处理单元 W#16#0100:时间系统 W#16#0200:系统行为 W#16#0300:CPU 的 MC7 语言描述 W#16#0400:指令“C_DIAG (页 7978)”的可用性 LENTHDR W#16#0002:一个数据记录的长度为 1 个字(2 个字节) N_DR 数据记录数目 数据记录 SZL-IDW#16#xy12 部分列表中一个数据记录的长度为 1 个字。并为每个特性输入一个标识 符。 一个特性标识符的长度为 1 个字。 说明 将输出与 CPU 相关的所有数据记录。 这些数据记录按顺序输出,中间没有间隙。SZL-ID W#16#xy13 - 用户存储器区域 (S7-300, S7-400) 目的 可使用 SZL-ID(系统状态列表 ID)W#16#xy13,通过部分列表来获取关于模块存储器区域 的信息。SZL-ID W#16#xy14 - 系统区 (S7-300, S7-400) 目的 可使用 SZL-ID(系统状态列表 ID)W#16#xy14,通过部分列表来获取关于模块系统区域的 信息。 标头 SZL-IDW#16#xy14 的部分列表标头的结构如下: 内容 含义 SZL-ID 部分列表摘录的 SZL-ID W#16#0014:模块的所有系统区域 W#16#0F14:仅有 SZL 部分标头信息 INDEX 无关 LENTHDR W#16#0008:一个数据记录的长度为 4 个字(8 个字节) N_DR 数据记录数目 必须分配 9 个数据记录。 若选择的目标区域过小,则“RDSYSST (页 7903)”不提供数据记录。数据记录 SZL-IDW#16#xy14 的部分列表的数据记录具有以下结构: 名称 长度 含义 Index 1 个字 系统区域索引 • W#16#0001:过程映像输入(数字的单位为“字节”) • W#16#0002:过程输出映像(数字的单位为“字节”) • W#16#0003:位存储器(数字的单位为“位”) 注: 此索引仅由 CPU 提供,其中,标志数可在一个字中显示。 若 CPU 不提供此值,则必须评估索引 W#16#0008 。 • W#16#0004:时间(数字) • W#16#0005:计数器(数字) • W#16#0006:逻辑地址区域中的字节数 • W#16#0007:本地数据(CPU 的整个本地数据区域,单位为 “字节”) 注: 此索引仅由 CPU 提供,其中,整个本地数据区域的长度可在一 个字中显示。 若 CPU 不提供此值,则必须评估索引 W#16#0009。 • W#16#0008:位存储器(数字的单位为“字节”) • W#16#0009:本地数据(CPU 的整个本地数据区域,单位为 “千字节”) code 1 个字 存储器类型 • W#16#0001:易失性存储器 (RAM) • W#16#0002:非易失性存储器 (FEPROM) • W#16#0003:混合型存储器(RAM 和 FEPROM) number 1 个字 系统区域的元素数目 retentive 1 个字 记忆性元素数目 SZL-ID W#16#xy15 - 块类型 (S7-300, S7-400) 目的 若使用 SZL-ID(系统状态列表 ID)W#16#xy15 来读取部分列表,则可获得模块上具有的块 类型。