SIMATIC Automation Tool V3.1 SP4 用户指南

章节中 说明 示例 基础知识 过程 其它
启动 返回 继续

SIMATIC Automation Tool V3.1 SP4 用户指南

该章节包括以下主题的信息:
  • 前言
  • SIMATIC Automation Tool 概述
  • 先决条件和通信设置
  • SIMATIC Automation Tool 入门指南
  • 设备操作
  • 管理项目文件
  • 菜单、工具栏、键盘快捷键和参考信息
  • 用于 .NET framework 的 SIMATIC Automation Tool API
  • SIMATIC Automation Tool 设备支持
  • 故障排除事件日志消息


前言

前言

该章节包括以下主题的信息:
  • 安全性信息
  • 服务与支持


安全性信息

安全性信息

Siemens 为其产品及解决方案提供了工业信息安全功能，以支持工厂、系统、机器和网络的安全运行。

为了防止工厂、系统、机器和网络受到网络攻击，需要实施并持续维护先进且全面的工业信息安全保护机制。Siemens 的产品和解决方案构成此类概念的其中一个要素。

客户负责防止其工厂、系统、机器和网络受到未经授权的访问。只有在有必要连接时并仅在采取适当安全措施（例如，防火墙和/或网络分段）的情况下，才能将该等系统、机器和组件连接到企业网络或 Internet。

关于可采取的工业信息安全措施的更多信息，请访问。

Siemens 不断对产品和解决方案进行开发和完善以提高安全性。Siemens 强烈建议您及时更新产品并始终使用最新产品版本。如果使用的产品版本不再受支持，或者未能应用最新的更新程序，客户遭受网络攻击的风险会增加。

要及时了解有关产品更新的信息，请订阅 Siemens 工业信息安全 RSS 源，网址为。


服务与支持

文档源语言

服务与支持

除了本用户指南外，西门子还在 Internet、西门子自动化网站和西门子工业在线支持网站上提供专业技术知识。如需要回答任何技术问题、培训或订购 S7 产品方面的帮助，请与西门子经销商或销售部联系。因为西门子销售代表都经过技术培训并掌握有关操作、过程和工业以及有关您使用的各种西门子产品的最具体的知识，所以他们能够最快最高效地回答您可能遇到的任何问题。

文档源语言

英文版《SIMATIC Automation Tool 用户指南》采用了 SIMATIC Automation Tool 信息的权威（原始）语言。翻译的手册之间存在差异时，西门子确定英语手册作为权威原始来源。


SIMATIC Automation Tool 概述

SIMATIC Automation Tool 概述

该章节包括以下主题的信息:
  • 管理网络
  • 网络访问
  • 网络选项
  • .NET API（应用程序编程接口）


管理网络

管理 SIMATIC 设备的网络 组态、运行和维护操作 未经许可的 SIMATIC Automation Tool 的功能限制 DCP 操作 设备目录访问 S7‑1200 网络安装示例
启动 返回 继续

管理网络

SIMATIC Automation Tool 在机器和工厂运转过程中很有价值。使用此工具，可同时在多台网络设备上执行操作。SIMATIC Automation Tool 有助于完成以下任务：

  • 调试

    例如，可使用 SIMATIC Automation Tool 一次更新多个 IP 地址，或将项目下载至多台设备。

  • 维护

    例如，可对多台设备执行固件更新。还可以将程序从一台待恢复的设备备份到多台设备。

  • 服务

    例如，检索多台设备的诊断和服务数据很有用。

管理 SIMATIC 设备的网络

通过西门子 TIA Portal 创建、检验和下载控制程序后，可使用 SIMATIC Automation Tool 对自动化网络上的大量设备进行组态、运行、维护和记录操作。

说明

如果 S7-PLCSIM 与 SIMATIC Automation Tool 同时运行在相同的编程设备上，则不能使用 SIMATIC Automation Tool 读取自动化网络上的设备。必须关闭 SIMATIC Automation Tool 的 S7‑PLCSIM，才能够读取设备网络。

组态、运行和维护操作

具有有效且未过期许可证的用户可以使用 SIMATIC Automation Tool 在设备网络上执行多个有用操作：

网络操作

  • 扫描网络，创建显示网络上可访问设备的设备表。此设备表可包括 CPU、模块、HMI、SCALANCE 工业以太网交换机、分布式 I/O 和其它西门子设备。可将设备表保存在安全的 *.sat 项目文件或开放式文本 .csv 文件中。

  • 通过闪烁 LED 或 HMI 画面识别设备

  • 更新设备地址（IP、子网、网关）

  • 更新设备的 PROFINET 名称（站名）

系统组态

  • 将 CPU 中的时间设置为编程设备中的当前时间

  • 更新 CPU 程序或 HMI 操作系统和运行系统软件

  • 上传、添加、替换或删除 CPU 中的配方数据

  • 上传或删除 CPU 中的数据日志数据

  • 更新模块固件

操作

  • 将 CPU 置于 RUN 或 STOP 模式

系统诊断和维护

  • 将 CPU 或 HMI 设备的数据备份至备份文件

  • 恢复 CPU 或 HMI 设备的备份文件中的数据

  • 显示 CPU 的诊断缓冲区

  • 复位通信参数

  • 复位 CPU 存储器

  • 检索 CPU 中的服务数据

  • 格式化安装在 CPU 中的 SIMATIC 存储卡

  • 将设备复位为出厂默认值

  • 将网络信息记录并保存在标准文本 .csv 文件或受密码保护的 .sat 文件中

SIMATIC Automation Tool 设备表

未经许可的 SIMATIC Automation Tool 的功能限制

如果未激活试用许可证或 21 天免费试用许可证已到期，则 SIMATIC Automation Tool 仅支持以下功能：

  • 以下菜单中的菜单操作：

    • 文件菜单

    • 编辑菜单，包括设备表中的编辑操作

    • 选项菜单

    • 工具菜单

    • 帮助菜单

  • 扫描网络

  • 插入和删除设备

  • 在设备表中输入设备注释

  • 检索服务数据

  • 显示 CPU 诊断

  • 输入和更改 CPU 密码

  • 将 CPU 设置为 RUN 或 STOP 模式

DCP 操作

请注意，某些设备仅支持 DCP（发现和组态协议）操作：

  • 西门子 PROFINET 设备

  • 不支持的非西门子 PROFINET 或以太网设备

DCP 操作如下：

  • 扫描网络

  • 识别设备（闪烁设备 LED 或 HMI 画面上的闪烁指示器）

  • 更新设备上的 IP 地址、子网掩码和网关地址

  • 更新 PROFINET 设备名称

  • 复位通信参数

设备目录访问

SIMATIC Automation Tool 可用于打开设备目录 Microsoft Excel 文件，此文件列出了支持的设备。设备目录会显示每台设备所支持的操作。更多信息，请参见 SIMATIC Automation Tool 设备支持。

S7‑1200 网络安装示例

面板车间制造和初始程序加载：

  • 所有 CPU 都使用相同的硬件配置和控制程序。

  • CPU PROFINET 组态使用“在设备中设置 IP 地址”(Set IP Address on the device) 和“在设备中设置 PROFINET 设备名称”(Set PROFINET device name on the device) 选项。

  • 所有面板都相同。

  • 可使用 SIMATIC Automation Tool、SIMATIC SD 存储卡或 TIA Portal 向 CPU/HMI 设备加载项目数据。

如果管理一个包含很多台设备的网络，SIMATIC Automation Tool 有助于简化操作并节约时间。可同时在多台设备上执行操作。SIMATIC Automation Tool 可为除故障安全设备外的设备提供多线程。多线程表示多个操作可以同时运行。当编程设备在一台设备上执行操作时，其它线程可在另一台设备上开始操作。在 通信设置 中默认设置为多线程。可选择禁用多线程。


网络访问

与网络设备通信 DCP 操作 通信模型和层级 网络访问和 SIMATIC Automation Tool 操作

网络访问

与网络设备通信

SIMATIC Automation Tool 网络扫描可使用 MAC（媒体访问控制）地址，发现直接连接至网络的网络设备。每台设备的 MAC 地址都是唯一的。MAC 地址印在设备上，不能更改。SIMATIC Automation Tool 可发现连接设备是否组态了 IP、子网和网关地址。IP 地址为 0.0.0.0 表示设备未组态。

MAC 地址操作使用 DCP（发现和组态协议）。DCP 是一种以太网标准。

DCP 操作

对于所有直接连接的网络设备，SIMATIC Automation Tool 可支持以下 DCP MAC 地址操作：

  • 扫描网络

  • 识别设备

  • 设置 IP 地址

  • 设置 PROFINET 名称

  • 复位通信参数

支持 DCP 的直接连接设备包括：

  • 支持的 PROFINET 设备

  • 不支持的 PROFINET 设备

  • 不支持的非西门子以太网设备

通信模型和层级

各种通信模型表示通信协议的类型。要了解 SIMATIC Automation Tool，请考虑以下通信层：

层 | 设备 | 寻址
网络（第 3 层） | 路由器 | 仅 IP 地址
链路（第 2 层） | 交换机 | MAC 地址 (DCP) IP 地址
物理（第 1 层） | 集线器 | 位

第 1 层：带编程设备的简单网络直接连接到带本地 I/O 的一个 CPU：

  • 可执行 MAC 地址操作。

  • CPU 中有效的 IP 地址和 TIA Portal 设备组态对于以下操作很有必要：

    • 显示 CPU 本地模块

    • IP 地址操作

第 2 层：带本地 I/O 的多个 CPU 通过以太网交换机连接：

  • 所有设备都可执行 MAC 地址操作。

  • 每个 CPU 中有效的 IP 地址和 TIA Portal 设备组态对于以下操作十分必要：

    • 显示 CPU 本地模块

    • IP 地址操作

第 3 层：复杂网络中带分散式 I/O 的 CPU 和 IP 地址路由器：

  • 只有设备直接连接的子网与运行 SIMATIC Automation Tool 的编程设备相同时，才能执行 MAC 地址操作。

  • 每个 CPU 中有效的 IP 地址和 TIA Portal 设备组态对于以下操作十分必要：

    • 显示 CPU 后的设备

    • IP 地址操作

IP 地址操作仅适用于支持的西门子设备。

说明

当扫描网络时，SIMATIC Automation Tool 无法检测 NAT（网络地址转换）路由器之后的设备

SIMATIC Automation Tool 根据 MAC 地址和 IP 地址在网络扫描中检测设备。由于 NAT 路由器不转发 DCP 命令，因此网络扫描无法检测 NAT 路由器上的设备。出于同一原因，无法插入 NAT 路由器之后的设备。

例如，S7-1500 CPU 通过一个 PROFINET 网络连接到 SIMATIC Automation Tool。S7-1500 CPU 使用本地 CP 模块连接另一个 PROFINET 网络。分散式 I/O 设备连接到此网络。

要使用 SIMATIC Automation Tool 发现分散式 I/O 网络，请按以下步骤操作：

  1. 在 STEP 7 中，将一个有效 IP 地址分配到 S7-1500 CPU。

  2. 编译 STEP 7 项目并将其下载到 CPU 中。

  3. 通过 SIMATIC Automation Tool 扫描网络。

对于在 CPU、CM 或 CP 模块后间接连接的设备，只能进行固件更新操作。

网络访问和 SIMATIC Automation Tool 操作

网络访问类型取决于执行的命令，如下表所示：

SIMATIC Automation Tool
命令

使用的设备地址

必须为受保护的 CPU 提供 CPU 密码

网络访问

扫描（发现 CPU、HMI、I/O 和其它设备）

MAC

-

  • 本地网络：可通过以太网交换机访问网络设备。不能通过 IP 地址路由器访问其它网络上的设备。

  • VPN（虚拟专用网络）连接至本地网络
    必须使用第 2 层 VPN 来实现这些 MAC 功能。

识别设备（闪光 LED/HMI 画面）

MAC

-

在设备上设置 IP 地址、子网掩码和网关地址

MAC

-

在设备上设置 PROFINET 名称

MAC

-

复位通信参数

MAC

-

将 CPU 置于 RUN 或 STOP 模式

IP

√ 1

  • 本地网络：可通过以太网交换机访问网络设备。

  • 远程网络：可通过 IP 地址路由器访问其它网络上的设备。

  • VPN：到本地网络的连接

将 CPU 时间设置为编程设备时间

IP

√ 1

执行程序更新：CPU 程序

IP

√ 3

执行程序更新：操作系统和运行系统软件的 HMI 更新

IP

不适用

上传 CPU 中的配方数据

IP

√ 2

添加、替换或删除 CPU 中的配方数据

IP

√ 1

上传 CPU 中的数据日志数据

IP

√ 2

删除 CPU 中的数据日志数据

IP

√ 1

将 CPU 备份至文件

IP

√ 2

将 HMI 备份至文件

IP

不适用

通过备份文件恢复 CPU

IP

√ 3

通过备份文件恢复 HMI

IP

不适用

上传 CPU 中的服务数据

IP

√ 2

读取 CPU 诊断缓冲区

IP

√ 2

复位 CPU 存储器

IP

√ 1

复位为出厂默认值

IP

√ 3

更新设备固件

IP

√ 1

格式化 CPU 存储卡

IP

√ 3

1需要“完全访问（无保护）”(Full access (no protection)) 访问级别

2需要包含“读访问”(Read access) 访问级别
3标准 CPU 需要“完全访问（无保护）”(Full access (no protection)) 访问级别。故障安全 CPU 需要“完全访问（无保护）”(Full access (no protection)) 或“包括故障安全的完全访问（无保护）”(Full access incl. fail-safe (no protection)) 访问级别，具体取决于 CPU 中的固件版本。此外，还必须重新选择并确认要进行这些操作的故障安全 CPU。

有关 CPU 访问级别的详细信息，请参见主题CPU 密码。

说明

IP 子网和网络接口协议

运行 SIMATIC Automation Tool 的编程设备和连接到本地网络的设备必须使用适当的 IP 子网分配。

所选网络接口协议的类型（“TCPIP”或“TCPIP.Auto”）可影响 SIMATIC Automation Tool 网络是否能够通过网络扫描操作发现设备。

相关示例，请参见通信设置主题。


网络选项

本地和远程网络 示例 1：S7-1200 本地网络 示例 2：S7-1200 远程网络 示例 3：S7-1200 本地和远程综合网络
启动 返回 继续

网络选项

本地和远程网络

以下示例显示 SIMATIC Automation Tool 可使用的本地和远程网络。这些简图显示基本连接，但不显示 HMI 设备、本地 I/O、分布式 I/O 设备（PROFINET 和 PROFIBUS）或其它可访问的设备。还可以使用其它网络拓扑。

扫描网络时，SIMATIC Automation Tool 会填写设备表。可以将设备表中的设备数据导出为 .csv 格式的文件。可以使用 Microsoft Excel 或您选择的工具修改 .csv 文件中的设备数据。然后，可以将新数据复制并粘贴到 SIMATIC Automation Tool 设备表中。

示例 1：S7-1200 本地网络

示例 2：S7-1200 远程网络

示例 3：S7-1200 本地和远程综合网络


.NET API（应用程序编程接口）

.NET API（应用程序编程接口）

用户可创建自己的应用软件，从而使用 SIMATIC Automation Tool Microsoft .NET API 来执行与 SIMATIC Automation Tool 相同的设备操作。

要使用 API，编程设备上必须装有 SIMATIC Automation Tool 或 SIMATIC Automation Tool SDK（软件开发工具）。SIMATIC Automation Tool 和用户应用软件使用 API .dll 文件和其它 S7 通信文件。SIMATIC Automation Tool 安装程序提供用户所需的所有文件，并将 API 文件存储在 SIMATIC Automation Tool 的安装文件夹中。

V3.0 和之后版本需要软件许可证

如果具有 SIMATIC Automation Tool 的有效且未过期的许可证，则可使用 API。


先决条件和通信设置

先决条件和通信设置

该章节包括以下主题的信息:
  • 安装 SIMATIC Automation Tool
  • 启动 SIMATIC Automation Tool
  • 通信设置
  • 设置 IP 地址的组态要求
  • 设置 PROFINET 名称的组态要求


安装 SIMATIC Automation Tool

安装 SIMATIC Automation Tool

有关安装 SIMATIC Automation Tool 的信息，请参见可通过设置访问的安装说明。


启动 SIMATIC Automation Tool

启动 SIMATIC Automation Tool

使用下列方法之一启动 SIMATIC Automation Tool：

  • 双击桌面上的 SIMATIC Automation Tool 快捷图标。

  • 单击 Windows“开始”(Start) 按钮，然后执行“所有程序 > 西门子自动化 > SIMATIC Automation Tool > SIMATIC Automation Tool”(All Programs > Siemens Automation > SIMATIC Automation Tool > SIMATIC Automation Tool) 菜单命令。

  • 双击 SIMATIC Automation Tool 项目 (.sat) 文件。


通信设置

识别连接至设备网络的网络接口卡 在 SIMATIC Automation Tool 中分配网络接口

通信设置

识别连接至设备网络的网络接口卡

将编程设备连接至网络后，可使用 Windows 控制面板查看网络接口卡的名称。

在以下示例中，SIMATIC 设备网络通过以太网到 USB 转换器连接至运行 Windows 的 PC。在编程设备上显示的网络名称取决于网络硬件。

使用 Windows 控制面板识别设备名称：

  1. 打开 Windows 控制面板 (Windows 7) 或设置 (Windows 10)。

  2. 单击“网络和共享中心”(Network and Sharing center) (Windows 7) 或导航至“网络和 Internet > 以太网 > 网络和共享中心” (Network & Internet > Ethernet > Network and Sharing Center) (Windows 10)：

  3. 查看活动网络并单击设备连接的网络：

  4. 单击连接状态显示框中的“详细信息”(Details) 按钮：

  5. 查看网络接口的描述：

在 SIMATIC Automation Tool 中分配网络接口

在通信开始前，必须先向新项目分配网络接口。要设置网络接口，请按以下步骤操作：

  1. 启动 SIMATIC Automation Tool。

  2. 单击“网络接口卡”(Network Interface Card) 下拉列表。

  3. 选择连接至西门子设备网络的网络接口。

在下图中，可能看到所示接口之外的其它网络接口选项，因为列表中显示了编程设备上可用的网络接口：

如果已选择网络接口卡，但设备不具备有效的 IP 地址，则不能执行基于 IP 地址的操作。
可执行基于 MAC 地址的操作，在网络中为设备设置有效的 IP 地址。

MAC 地址操作

  • 扫描网络设备

  • 识别设备

  • 设置以太网 IP 地址

  • 设置 PROFINET 名称

  • 复位为出厂默认值 基于 MAC 地址复位为出厂默认值的操作仅适用于 PROFINET I/O 设备；其它设备使用基于 IP 地址复位为出厂默认值的操作。

网络接口选择

如上图所示，可以看到每个网络接口有两个条目。其区别在于是否带有“.Auto”字符。

选择以太网接口后，可以选择两种网络协议类型：

  • TCPIP

  • TCPIP.Auto

西门子建议用户选择不带“Auto”的 TCPIP，以避免在 Windows 以太网适配器中创建临时 IP 地址。必须在 Windows 组态中为网络接口分配有效的 IP 地址。

或者，也可以选择 TCPIP.Auto。在执行网络扫描后，必须验证自动创建的临时 IP 地址是否未与网络中其它设备的 IP 地址发生冲突。

TCPIP.Auto 协议具有以下优势：

  • TCPIP.Auto 协议使网络接口能够在与其处于不同物理子网的设备所在的子网上创建临时 IP 地址。TCPIP 协议仅能访问同一物理子网上的设备。

  • 可以更改可访问网络设备的 IP 地址，以使用适用于 TCPIP 协议的子网。

  • 在每次网络扫描后，Windows 以太网适配器都会为所有西门子设备设定有效的临时 IP 地址。不必在 Windows 中明确分配新 IP 地址。

不过，TCPIP.Auto 协议可导致以下网络通信问题：

  • 无法分配临时 IP 地址。

  • 临时地址会在编程设备重启或复位后丢失。使用 TCPIP.Auto 协议进行下一次网络扫描时将创建新的临时 IP 地址。

  • 可能自动创建已用于其它节点（例如 SIMATIC Automation Tool 网络扫描未发现的其它编程设备）的临时 IP 地址。地址冲突可能导致某些网络部分出现难以诊断的通信错误。

TCPIP 和 TCPIP.Auto 协议的使用示例

可在命令行窗口中输入“ipconfig /all”，以检查 Windows 网络适配器 IP 地址。

“ipconfig /all”命令用于获取以下示例所示的 IP 地址：

  1. 在编程设备复位（重启）后和运行 SIMATIC Automation Tool 网络扫描前，在命令行窗口中执行“ipconfig /all”。连接西门子设备网络的以太网适配器卡结果，如下图所示。Windows 以太网适配器的 IP 地址组态为 192.168.2.200:

  2. 连接 IP 地址组态为 192.168.3.1 的西门子 S7-1200 PLC。子网掩码为 255.255.255.0，因此 S7‑1200 设备组态为其它子网。第三个八位字节是“3”，要与以太网适配器的 192.168.2 子网地址通信，必须改为“2”。

  3. 启动 SIMATIC Automation Tool，将网络接口设为 TCPIP 协议并执行网络扫描。在这种情况下，未发现 S7‑1200 PLC，因为 S7‑1200 PLC 组态了错误的子网地址。

  4. 将 SIMATIC Automation Tool 网络接口改为 TCPIP.Auto 协议并执行网络扫描。

  5. 网络扫描使用 TCPIP.Auto 协议，发现了 S7-1200 设备。将新的 S7-1200 设备信息添加到 SIMATIC Automation Tool 设备表中。

  6. 在命令行窗口中执行“ipconfig /all”。
    如下图所示，已创建临时以太网适配器 IP 地址 192.168.3.241。临时 IP 地址可访问 192.168.3 子网：

    当 TCPIP.Auto 协议发现一个复杂网络中存在多个子网时，将创建多个临时 IP 地址。
    如果将 Windows 编程设备复位，则临时 IP 地址会被删除。

  7. SIMATIC Automation Tool 现在可使用 192.168.3.241 临时 IP 地址连接到 S7-1200 设备，之后可更改 S7-1200 设备的 IP 地址。使用 SIMATIC Automation Tool 更新 IP 地址。将 IP 地址从 192.168.3.1 更改为 192.168.2.1。

  8. 复位编程设备并重启 Windows。重启后，所有临时 IP 地址都将被删除。

  9. 启动 SIMATIC Automation Tool，将网络接口设为 TCPIP 协议并执行网络扫描。
    S7-1200 PLC (192.168.2.1) 被发现，且可以与 Windows 以太网适配器 (192.168.2.200) 通信。
    未创建临时 IP 地址。仅使用在 Windows 网络适配器属性中组态的 IP 地址。

如果已选择网络接口卡且设备 IP 地址有效，则可以执行使用 IP 地址的 SIMATIC Automation Tool 操作。

IP 地址操作

  • 将 CPU 置于 RUN 或 STOP 模式

  • 将 CPU 时间设置为编程设备时间

  • CPU 和 HMI 设备的程序更新

  • 上传、添加、替换或删除 CPU 中的配方数据

  • 上传或删除 CPU 中的数据日志数据

  • 备份/恢复 CPU 和 HMI 数据

  • 检索 CPU 中的服务数据

  • 显示诊断

  • 复位 CPU 存储器

  • 格式化 CPU 中的存储卡

  • 将设备复位为出厂默认值

  • 更新设备固件

说明

SIMATIC Automation Tool 的通信问题

用户可向多台设备发送一个设备操作，但一台设备未完成操作。在事件日志中显示了一条通信错误。然而，其它设备都按预期处理设备操作。若遇到此问题，请按以下步骤操作：

  1. 减少在 通信设置 中允许同时进行的操作数量。

  2. 关闭并重启 SIMATIC Automation Tool。

  3. 再次尝试对一台或多台设备进行操作。

如果执行设备操作，但该设备连接的数据传输率非常慢，则可能遇到通信超时错误。若遇到此问题，请在 通信设置 中延长通信操作的超时时间。


设置 IP 地址的组态要求

设置 IP 地址的直接连接要求 示例：STEP 7 中的 S7‑1200 组态

设置 IP 地址的组态要求

可使用 SIMATIC Automation Tool 设置设备的 IP 地址。要在循环上电后保留该 IP 地址，则设备中的 STEP 7 项目必须在设备组态中启用此功能。必须编译 STEP 7 项目并将其下载到目标设备中。如果没有在 STEP 7 设备组态中进行设置，则设置的 IP 地址是临时地址。

设置 IP 地址的直接连接要求

设置 IP 地址是使用 MAC 地址访问目标设备的 DCP 操作。间接连接的设备使用 IP 地址。间接链接的设备不能使用 DCP 操作。要更改 IP 地址，必须在目标设备和 SIMATIC Automation Tool 之间临时建立直接连接。

请注意“设置 IP 地址”操作可行及不可行的情况：

  • 对于直接连接到 SIMATIC Automation Tool 所连网络子网的 PROFINET 设备可行。

    此类设备包括 CPU、HMI、分散式 I/O 和其它设备，包括通过以太网交换机连接的设备。

  • 对于在以下位置后进行间接连接的 PROFINET 设备不可行：。

    • CPU

    • CP 或 CM 模块

    • 接口模块

    • CPU 的第二个以太网端口

  • 对于其它网络上经过 IP 地址路由器连接到 SIMATIC Automation Tool 的 PROFINET 设备不可行。

请查看设备目录来了解 SIMATIC Automation Tool 支持各设备的哪些操作。

示例：STEP 7 中的 S7‑1200 组态

要使 SIMATIC Automation Tool 能够设置非临时性 IP 地址，请按照以下步骤对 S7‑1200 CPU 设备组态进行设置：

  1. 打开 S7‑1200 CPU 的设备组态。

  2. 单击设备组态 CPU 图像上的 PROFINET 接口以查看接口参数。

  3. 在“属性”(Properties) 选项卡上，单击“常规”(General) 选项卡以查看“以太网地址”(Ethernet addresses) 选项。

  4. 单击“在设备中直接设置 IP 地址”(IP address is set directly at the device) 选项。该选项在不同 STEP 7 版本中使用不同名称。可用于该字段的名称包括：

    • 在设备中直接设置 IP 地址 (IP address is set directly at the device)

    • 在设备中设置 IP 地址 (Set IP address on the device)

    • 使用不同方法设置 IP 地址 (Set IP address using a different method)

    该选项允许 SIMATIC Automation Tool 分配 IP 地址。对于 S7‑1500 CPU 等具有多个 PROFINET 接口的设备，可组态一个接口或所有接口以允许 IP 地址变更

  5. 保存项目并将新组态更改下载至设备。

说明

PROFINET IP 参数的默认设置

创建 TIA Portal 项目时，默认 PROFINET 参数选项为“在项目中设置 IP 地址”(Set IP address in the project)。在默认选项下，仅可通过 SIMATIC Automation Tool 设置临时 IP 地址。


设置 PROFINET 名称的组态要求

设置 PROFINET 名称的直接连接要求 示例：STEP 7 中的 S7-1200 组态

设置 PROFINET 名称的组态要求

如果要通过 SIMATIC Automation Tool 来设置设备的 PROFINET 名称，则设备的 STEP 7 项目必须在设备组态中启用这此功能。在使用 SIMATIC Automation Tool 设置设备的 PROFINET 名称之前，必须编译 STEP 7 项目并将其下载到目标设备中。

设置 PROFINET 名称的直接连接要求

设置 PROFINET 名称是使用 MAC 地址访问目标设备的 DCP 操作。间接连接的设备使用 IP 地址进行访问，但不能使用 DCP 操作。要更改 PROFINET 名称，必须在目标设备和 SIMATIC Automation Tool 之间临时建立直接连接。

请注意“设置 PROFINET 名称”操作可行及不可行的情况：

  • 对于直接连接到 SIMATIC Automation Tool 所连网络子网以及通过以太网交换机连接的 PROFINET 设备（CPU、HMI、分散式 I/O 和其它设备）可行。

  • 对于在直接连接的 CPU、CP/CM 模块、接口模块或 CPU 的第二个以太网端口后进行间接连接的 PROFINET 设备不可行。

  • 对于其它网络上经过 IP 地址路由器连接到 SIMATIC Automation Tool 的 PROFINET 设备不可行。

请查看设备目录来了解 SIMATIC Automation Tool 支持各设备的哪些操作。

示例：STEP 7 中的 S7-1200 组态

要使 SIMATIC Automation Tool 能够设置 PROFINET 名称，请按照以下步骤对 S7‑1200 CPU 设备组态进行设置：

  1. 打开 S7‑1200 CPU 的设备组态。

  2. 单击设备组态 CPU 图像上的 PROFINET 接口以查看接口参数。

  3. 在“属性”(Properties) 选项卡上，单击“常规”(General) 选项卡以查看“以太网地址”(Ethernet addresses) 选项。

  4. 在“以太网地址”(Ethernet addresses) 选项中，单击“在设备中直接设置 PROFINET 设备名称”(PROFINET device name is set directly at the device) 选项。该选项在不同 STEP 7 版本中使用不同名称。可用于该字段的名称包括：

    • 在设备中直接设置 PROFINET 设备名称 (PROFINET device name is set directly at the device)

    • 在设备上设置 PROFINET 设备名称 (Set PROFINET device name on the device)

    该选项允许 SIMATIC Automation Tool 分配 PROFINET 站名。对于 S7-1500 CPU 等具有多个 PROFINET 接口的设备，可组态所有接口以启用 PROFINET 名称变更，也可仅组态一个接口以允许 PROFINET 名称变更。

  5. 保存项目并将新组态更改下载至设备。

说明

PROFINET IP 参数的默认设置

创建新 TIA Portal 项目时，默认 PROFINET 参数选项为“自动生成 PROFINET 设备名称”(Generate PROFINET device name automatically)。在默认选项下，无法通过 SIMATIC Automation Tool 设置 PROFINET 设备名称。


SIMATIC Automation Tool 入门指南

SIMATIC Automation Tool 入门指南

该章节包括以下主题的信息:
  • 使用设备表
  • 使用事件日志
  • CPU 密码
  • 多线程处理选项


使用设备表

使用设备表 表格单元格的快捷菜单 列标题的快捷菜单 恢复默认列 过滤显示的行 过滤不支持的设备

使用设备表

SIMATIC Automation Tool 包括两个部分：

  • 设备表：设备表初始状态为空白。扫描网络或插入设备后，设备表将显示已连接的设备。

  • 事件日志：事件日志显示操作的结果。

对于每台设备，SIMATIC Automation Tool 显示包含设备相关数据的列。设备表中的选项卡支持各种设备操作并提供数据输入域：

使用设备表

设备表类似于 Microsoft Excel。可对其它应用程序执行复制和粘贴操作。

以下提示可帮助用户使用设备表：

  • 单击列标题可根据该列的数据对所有行进行排序或反向排序。

  • 右键单击列标题可显示/隐藏列。

  • 选中设备表顶部的“设备”(Device) 复选框可选择或取消选择所有设备。或者，可使用“编辑 > 选择”(Edit > Select) 菜单命令选择“选择行”(Select Row(s)) 或“取消选择行”(Deselect Row(s))。还可以右键单击设备行来访问“编辑”(Edit) 菜单。

  • 单击设备表的左上角可高亮显示所有行。

  • 单击行复选框左侧的单元格可选择整个行。在选项中上下拖动光标可选择多个行。

  • 单击“设备”(Device) 复选框左侧的单元格可在设备表中选择所有行。

  • 右键单击行或行选项后，SIMATIC Automation Tool 将显示一个快捷菜单。在该快捷菜单中，可对多行执行“选择”(Select)、“展开”(Expand)、“折叠”(Collapse)、“插入”(Insert)、“删除”(Delete)和“刷新”(Refresh) 命令。

  • 可为“设备”(Device)、“设备类型”(Device Type) 和“订货号”(Article Number) 列创建行过滤器。

  • 选择一台或多台设备进行要执行的操作。SIMATIC Automation Tool 以粗体文本显示所选设备行。

  • 单击设备左侧的箭头可将其展开。之后，可查看属于所单击设备的模块。SIMATIC Automation Tool 可显示属于所支持设备的支持和不支持的模块。

  • 还可以将设备表导出为 .csv 文件，以便在 Microsoft Excel 或其它工具中进行查看和编辑。

可以扫描网络，将网络设备填入设备表。还可以直接插入设备。

很多设备操作适用于编程设备上的文件。可在每个操作的设置中查找这些操作的默认路径名称。如果已选择，则可通过“选项 > 设置”(Options > Settings) 菜单命令更改默认路径名称和其它设置。

表格单元格的快捷菜单

右键单击设备表中的设备行后，快捷菜单将显示为与编辑菜单相同。

列标题的快捷菜单

对于设备表的每个选项卡，SIMATIC Automation Tool 默认显示一组列。可以选择显示或隐藏的列。

要将列设为显示还是隐藏，请按以下步骤操作：

  1. 右键单击设备标题行，以显示列的快捷菜单。

  2. 选中相关复选框，以显示或隐藏选项卡显示的列。

恢复默认列

可以将设备表列恢复到其原始默认值。要将列恢复为默认列，请按以下步骤操作：

  1. 右键单击设备标题行，以显示列的快捷菜单。

  2. 单击“恢复默认值”(Restore Defaults) 指令。

过滤显示的行

可对“设备”(Device)、“设备类型”(Device Type) 和“订货号”(Article Number) 列进行过滤。单击以下三个列标题之一，列标题中将显示过滤器展开按钮 [image] 。单击此按钮打开过滤器窗口。

例如，可选择订货号 6ES7 214-1HF40-0XB0 和 6ES7 215-1HF40-0XB0。单击“确定”(OK) 按钮后，设备表将仅显示包含上述订货号值的设备表：

可使用 常规设置 启用/禁用对不支持设备的显示。

过滤不支持的设备

SIMATIC Automation Tool 以灰色显示不支持的设备。只能在不支持的设备上执行以下操作：

  • 设置 IP 地址

  • 设置 PROFINET 名称

  • 识别设备

  • 复位通信参数

  • 编辑设备的注释

  • 执行如复制和粘贴等编辑功能


使用事件日志

使用事件日志

SIMATIC Automation Tool 在设备表下面的窗口区域中显示事件日志。在扫描网络或选择设备并执行操作后，事件日志中的消息将显示操作的错误和结果。

在默认情况下，任何新设备操作都会在操作开始时清空事件日志。可在 事件日志设置 中选择是否在操作开始时清空事件日志。

SIMATIC Automation Tool 还可自动将操作状态记录到文件中。

显示成功操作的事件日志行：

右键单击事件日志列标题以显示或隐藏列：

右键单击事件行以复制、保存或清除事件日志消息：

事件日志中的图标具有以下含义：

操作成功

操作失败。“结果”(Result) 列描述失败原因。如果保存此事件日志，则相关条目将以“失败：”(FAILED:) 字样开头。

操作成功，但包含一条警告消息。“结果”(Result) 列描述警告信息。如果保存此事件日志，则相关条目将以“警告：”(WARNING:) 字样开头。

仅供参考

说明

事件日志和用户界面语言更改

当更改 SIMATIC Automation Tool 用户界面语言时，SIMATIC Automation Tool 将清空事件日志。之前事件的相关信息会被删除。


CPU 密码

使用密码 CPU 密码访问级别 故障安全 CPU 和密码 密码图标

CPU 密码

如果在 CPU 中组态密码保护，则必须输入相应访问级别的密码才能通过 SIMATIC Automation Tool 执行要使用的操作。在“CPU 密码”(Password in CPU) 设备表列中提供一个密码。

“CPU 密码”(Password in CPU) 列中的密码指的是目标 CPU 中存在的密码保护。

例如，西门子包装盒中的新 CPU 没有程序、硬件配置和密码保护。在 CPU 中加载项目后，必须使用该项目中组态的密码。

SIMATIC Automation Tool 显示 CPU 是否受到密码保护。如果 CPU 没有密码，则 CPU 的密码单元格为深灰色且无法编辑。

使用密码

SIMATIC Automation Tool 通过以下方式处理密码：

  • 如果 CPU 受到密码保护，则 SIMATIC Automation Tool 将根据 TIA Portal 中设置的密码访问级别来强制执行密码请求。对于密码保护操作，必须在“CPU 密码”(Password in CPU) 单元格中输入有效的密码。

  • “程序更新”(Program update) 选项卡有两个密码输入列：“CPU 密码”(Password in CPU) 和“程序文件中的密码”(Password in Program File)。

    程序文件可能有密码，且该密码与现有 CPU 密码不同。若程序文件设有密码，则必须在“程序文件中的密码”(Password in Program File) 单元格中输入程序文件密码才能执行程序更新。在程序成功更新后，SIMATIC Automation Tool 将程序文件密码复制到 CPU 密码单元格。之后，SIMATIC Automation Tool 会使用此密码尝试通过新密码打开到 CPU 的连接。

  • “从备份中恢复”(Restore from Backup) 选项卡有两个密码输入列：“CPU 密码”(Password in CPU) 和“备份文件密码”(Password in Backup File)。

    备份文件可能有密码，且该密码与现有 CPU 密码不同。若备份文件设有密码，则必须在“备份文件密码”(Password in Backup File) 单元格中输入备份文件密码。完成从备份操作恢复后，备份文件密码将变为 CPU 密码。成功从备份操作恢复后，SIMATIC Automation Tool 会将备份文件密码复制到 CPU 密码单元格。之后，SIMATIC Automation Tool 会使用此密码尝试通过新密码打开到 CPU 的连接。

  • 如果 CPU 密码输入无效，可将鼠标光标放在密码域上，然后会出现显示访问级别的工具提示。

CPU 密码访问级别

标准 CPU 有四个密码访问级别。故障安全 CPU 有五个密码访问级别。

需要读取访问级别的 SIMATIC Automation Tool 操作不适用于具有“HMI 访问”(HMI access) 或“无访问（完全保护）”(No access (complete protection)) 保护级别的 CPU。必须在 TIA Portal 中组态“读取访问”(Read access) 或“完全访问”(Full access) 密码。然后，在目标 CPU 的设备表行中输入组态的密码。

需要写入访问级别的 SIMATIC Automation Tool 操作不适用于具有“读取访问”(Read access)、“HMI 访问”(HMI access) 或“无访问”(No access) 保护级别的 CPU。必须在 TIA Portal 中组态“读取访问”(Read access) 或“完全访问”(Full access) 密码。然后，在目标 CPU 的设备表行中输入组态的密码。

可在 TIA Portal 属性的保护和安全部分查看 CPU 访问级别：

有关访问级别和密码的其它信息，请参见 STEP 7 信息系统（TIA Portal 的在线帮助）。

故障安全 CPU 和密码

SIMATIC Automation Tool 可用于处理故障安全 CPU。可连接故障安全 CPU，并使用本指南中所述的“读取访问”(Read access) 密码或“完全访问（无保护）”(Full access (no protection)) 密码执行某些操作。本用户指南将此密码称为“安全 F-CPU”密码。然而，与安全相关的操作需要安全 F-CPU 密码。

  • 当输入安全 F-CPU 密码时，SIMATIC Automation Tool 以黄色显示设备密码单元格。

  • 如果故障安全 CPU 设有密码保护，则用户需要在“CPU 密码”(Password in CPU) 列中输入安全 F-CPU 密码才能执行所有与安全相关的操作。
    如果故障安全 CPU 不使用密码保护，则与安全相关的操作不需要安全 F-CPU 密码来启动操作。
    与安全相关的操作如下：

    • 程序更新

    • 从文件中恢复设备

    • 复位为出厂默认值

    • 格式化存储卡

  • 若程序文件包含安全程序，则必须在“程序文件中的密码”(Password in Program File) 列中输入安全 F-CPU 密码才能执行程序更新操作。

  • 若备份文件包含安全程序，则必须在“备份文件密码”(Password in Backup File) 列中输入安全 F-CPU 密码才能从备份操作恢复。

密码图标

SIMATIC Automation Tool 提供三种密码状态图标：

密码有效。

密码无效。

备份文件中的设备密码无法验证。

绿色复选标记图标表示密码在 CPU 或程序文件中有效。红色 X 图标表示密码在 CPU 或程序文件中无效：

在输入密码后，SIMATIC Automation Tool 不会获知用户可能启动的操作。SIMATIC Automation Tool 不会在输入时针对特定操作验证密码。例如，更新安全程序需要安全 F-CPU 密码。对于很多其它操作，完全访问（无保护）密码就足够了。绿色复选标记不表示密码已针对任何操作进行验证。在操作启动后，访问级别验证才会开始。如果密码不足以完成操作，SIMATIC Automation Tool 会为发生错误的各个设备生成事件日志错误。

备份文件密码单元格是唯一可显示问号图标的单元格：

该域禁用或清空时，备份文件密码单元格没有图标。若在此列表中选择备份文件，或在备份文件密码列中输入 CPU 密码，则 SIMATIC Automation Tool 将显示问号图标。SIMATIC Automation Tool 不能在选择文件或输入密码时验证密码。


多线程处理选项

多线程可能情况及限制 处理队列 线程处理状态

多线程处理选项

如果管理一个包含很多台设备的网络，则 SIMATIC Automation Tool 可通过使用多处理线程自动处理设备组来简化操作并节约时间。在一个处理线程等待 SIMATIC 设备的任务完成消息时，其它线程可在该时间内与组中的其它设备通信。

星型拓扑网络中的设备

如果网络采用星型拓扑结构，其中每台设备都通过以太网交换机直接连接至编程设备，则可安全启用多个线程选项。

链路型拓扑网络中的设备

如果网络采用链路型拓扑结构，则禁用多线程可防止某台设备中断与其它设备的通信，如 通信设置 主题所述。

多线程可能情况及限制

SIMATIC Automation Tool 支持使用多线程进行多种操作。其它操作则必须在 通信设置 中启用多线程。SIMATIC Automation Tool 为多个故障安全设备执行操作时，每个设备的每种操作使用单线程。无法为故障安全设备操作启用多线程。

SIMATIC Automation Tool 使用多线程的情形如下表所示：

符号说明：

✓ 始终使用多线程

O 在 通信设置 中启用后可使用多线程。

X 故障安全设备与安全相关的操作：仅能执行单线程处理。

SIMATIC Automation Tool 操作 | 标准设备 多线程 | 故障安全设备 多线程
扫描网络 | ✓ | ✓
识别设备 | ✓ | ✓
更新设备地址 | ✓ | ✓
更新设备的 PROFINET 名称 | ✓ | ✓
将 CPU 时间设为编程设备的时间 | ✓ | ✓
CPU 的程序更新 | ✓ | X
HMI 设备的程序更新 | ✓ | ✓
上传、添加、替换或删除 CPU 中的配方数据 | ✓ | ✓
上传或删除 CPU 中的数据日志数据 | ✓ | ✓
更新设备固件 | O | O
将 CPU 置于 RUN 或 STOP 模式 | ✓ | ✓
将 CPU 或 HMI 设备的数据备份至备份文件 | ✓ | ✓
通过备份文件恢复 CPU | O | X
通过备份文件恢复 HMI 设备 | O | O
显示 CPU 的诊断缓冲区 | ✓ | ✓
复位 CPU 存储器 | O | O
检索 CPU 中的服务数据 | ✓ | ✓
格式化存储卡（插入 CPU 的 SIMATIC 存储卡） | O | X
复位为出厂默认值 | O | X
复位通信参数 | ✓ | ✓

处理队列

可以在设备表行中选择一组标准和故障安全设备，然后启动操作。SIMATIC Automation Tool 在该组中的所有设备上执行相同的操作。SIMATIC Automation Tool 使用两种处理队列：

  • 故障安全设备的第一优先权队列，可处理与安全相关的操作（仅单线程处理）

  • 标准设备和故障安全设备的第二优先权队列，使用一至五个线程，允许多线程

SIMATIC Automation Tool 先使用单处理线程来处理故障安全设备的与安全相关的操作队列。该线程每次在一台故障安全设备上执行一个操作。

在 SIMATIC Automation Tool 完成故障安全设备的与安全相关的操作队列后，将使用多个线程处理第二种队列。

某些操作始终使用多线程。其它操作在 通信设置 启用多线程后使用多线程。

线程处理状态

若在一组设备上开始操作，则 SIMATIC Automation Tool 将显示进度对话框，其中列出了每个队列中完成操作的设备数量。该对话框还会显示活动处理线程的处理进度（完成百分比）。


设备操作

设备操作

该章节包括以下主题的信息:
  • 扫描网络
  • 插入设备
  • 更新 IP、子网和网关地址
  • 更新 PROFINET 设备名称
  • 将 CPU 设置为 RUN 或 STOP 模式
  • 识别设备
  • 通过 SIMATIC Automation Tool 更新设备程序
  • 上传、添加、替换和删除 CPU 中的配方
  • 上传或删除 CPU 中的数据日志
  • 在设备中安装新固件
  • 备份和恢复设备数据
  • 复位通信参数
  • 在 CPU 上执行存储器复位
  • 将设备复位为出厂默认值
  • 格式化存储卡
  • 检索 CPU 中的服务数据
  • 将 CPU 中的时间设置为编程设备时间
  • 显示诊断缓冲区
  • 显示设备参考
  • 复制和粘贴至多个设备表单元格
  • 操作的执行顺序


扫描网络

扫描用户网络 设备表惯例 了解设备表 PROFINET I/O 软件控制器 CPU 刷新设备表数据 网络扫描错误

扫描网络

新 SIMATIC Automation Tool 项目的设备表为空。要开始使用 SIMATIC Automation Tool，应扫描通信网络以填充设备表。还可手动插入设备。

扫描用户网络

要扫描网络，请选择“操作 > 扫描网络 > 扫描整个网络”(Operations > Scan Network > Scan Entire Network) 菜单命令。或者，还可单击工具栏上的“扫描”(Scan) 按钮 [image] ，然后在下拉菜单中选择“扫描整个网络”(Scan Entire Network)。

说明

SIMATIC Automation Tool 是一种离线工具

请注意，SIMATIC Automation Tool 不会持续更新设备数据。SIMATIC Automation Tool 在扫描或刷新通信网络或者插入设备时显示设备信息。例如，TIA Portal 或 Web 服务器可能在最近一次扫描后更改设备数据。在执行设备操作前，扫描网络或刷新要执行设备操作的设备。

扫描网络时，SIMATIC Automation Tool 会保留上次扫描的设备数据，直至设备数据更新为新扫描的数据。如果设备扫描失败，该设备将显示上次扫描的数据，事件日志将显示错误。
说明

SIMATIC Automation Tool 无法检测 NAT（网络地址转换）路由器之后的设备

SIMATIC Automation Tool 根据 MAC 地址和 IP 地址在网络扫描中检测设备。由于 NAT 路由器不转发 DCP 命令，因此网络扫描无法检测 NAT 路由器后的设备。

设备表惯例

行图标可帮助用户识别设备表行：

设备未知或不完全支持。SIMATIC Automation Tool 以灰色文本显示设备数据。

故障安全设备未知或不完全支持。SIMATIC Automation Tool 以灰色文本显示设备数据。

PROFINET 设备

PROFINET 故障安全设备

PROFINET HMI 设备

PROFINET 故障安全 HMI 设备

分布式 I/O PROFINET 设备

分布式 I/O PROFINET 故障安全设备

包含 PROFINET 控制器设备的文件夹

包含 PROFIBUS 主设备的文件夹

包含 PROFINET AS-i 主设备的文件夹

包含数据日志或配方数据的文件夹

包含本地 I/O 或分布式 I/O 模块的文件夹

数据日志数据

配方数据

重复的 IP 地址和 PROFINET 站名以红色文本显示。

标准设备身份问题

故障安全设备身份问题

说明

TIA Portal 中设备的在线连接

若设备在 TIA Portal 中进行在线连接，则 SIMATIC Automation Tool 无法读取设备中的信息。设备表显示未知设备的图标，然后在事件日志中报告错误。该错误指出 SIMATIC Automation Tool 遇到错误，并且无法确定设备的身份。

为了能够读取设备，请在 TIA Portal 中转至离线。

单击设备旁边的复选框以进行选择。对于未选择的设备，SIMATIC Automation Tool 以黑色显示设备文本，选择设备后，设备文本将以黑色粗体显示。

可在带有浅灰色背景的单元格中输入文本。无法在带有深灰色背景的单元格中输入文本。深灰色单元格表示 SIMATIC Automation Tool 不支持该设备类型/固件版本的操作。

了解设备表

说明

再次扫描网络以解决设备身份问题

例如，若 TIA Portal 在 SIMATIC Automation Tool 最近一次完成网络扫描后修改了设备程序或组态，则可能发生设备身份问题。存在身份问题的设备在执行所有操作和刷新命令时都会失败。必须扫描网络来解决设备身份问题。

故障安全设备

当通过 SIMATIC Automation Tool 更改设备身份或安全程序状态时，该工具可在不执行新网络扫描的情况下进行更改。例如，在 SIMATIC Automation Tool 中下载新固件版本时，SIMATIC Automation Tool 会将设备变量更新为新值。SIMATIC Automation Tool 是经过认证的工具，可用于操作安全设备并可处理安全状态更改。

如果网络中存在故障安全 CPU，但未在其中下载安全程序，则设备行单元格将以灰色显示：

如果已将安全程序下载至故障安全 CPU，则设备信息域将以黄色显示：

包含安全程序的故障安全 CPU 的以下用户输入域最初以灰色显示。在输入有效值后，SIMATIC Automation Tool 以黄色显示这些用户输入域：

  • CPU 密码

  • 程序更新文件夹

  • 程序文件中的密码

  • 备份文件

示例：

设备通过 CPU 和 IP 地址路由器进行连接

在 IP 地址选项卡上的设备表中输入有效的 IP 地址后，可使用“操作 > 更新 > IP 地址”(Operations > Update > IP Address) 菜单命令将地址分配传送到选择的直连设备。还可单击“更新”(Update) 按钮 [image] ，然后在按钮下拉菜单中选择“IP 地址”(IP Address) 命令。

如果支持的网络设备具备有效的 IP 地址，则网络扫描可显示 CPU 和 IP 地址路由器之后的设备。

直连设备（包括基于以太网交换机的连接）

直连设备可以使用所有 MAC 地址操作（IP 地址未组态或已组态）。直连设备可以使用所有 IP 地址操作（IP 地址已组态）。

初始扫描将显示网络上的设备：

网络扫描对设备表的影响

如果表格中已存在 MAC 地址，则扫描网络会更新设备表行的 IP 地址、子网和网关域。所有其他数据域保持不变。

如果使用新的 MAC 地址，则 SIMATIC Automation Tool 将创建包含 MAC 地址、IP 地址、子网和网关的新行。其它所有域为空。

展开设备行以显示本地模块、分布式 I/O 设备和 CPU 文件（配方和数据日志）

单击展开图标 [image] 以展开设备表行。单击折叠图标 [image] 以折叠设备表行。使用右键单击快捷菜单或编辑菜单来展开或折叠所有层级：

密码识别

如果设备具有任何保护级别的密码保护，则 SIMATIC Automation Tool 将启用密码域。

PROFINET I/O

PROFINET I/O 设备可在设备表中出现两次。设备在顶层行显示一次，其中直接连接可执行所有支持的 SIMATIC Automation Tool 操作。设备还显示在 CPU 之后的下层行（有效的 IP 地址和硬件配置），其中间接连接仅允许固件更新操作。两个设备表行通过以太网上可用的两个不同连接路径创建。

在以下设备表中，SIMATIC Automation Tool 显示 IM 155‑6 PN HF 两次：

  • 在“im 155-6 pn hf”顶层行，可执行所有支持的操作

  • 在 PLC_1 分布式 I/O 中的“IM 155-6 PN HF”底层行，只能执行固件更新操作

非直连设备。

下层设备表示通过直连 CPU 间接连接至 SIMATIC Automation Tool 的设备和 CPU 数据文件。在设备表中显示通过 CPU 连接的设备前，有必要在 CPU 中进行有效的 IP 地址组态和设备组态。

下层设备可表示分布式 I/O 设备（PROFINET 和 PROFIBUS 设备）。在设备表中显示分布式 I/O 设备前，必须对分布式 I/O 模块进行 IP 组态。

软件控制器 CPU

为了使 SIMATIC Automation Tool 能够与软件控制器 CPU 通信，编程设备必须使用以太网接口连接至软件控制器。通常情况下，该接口为 X1 或 X2。接口标签可能为 PROFINET (LAN) 或 PN/IE (LAN)，具体取决于设备。SIMATIC Automation Tool 使用 X2 与软件控制器通信，使用 X1 与开放式控制器通信。设备目录列出了 SIMATIC Automation Tool 支持的软件控制器 CPU 和支持的设备操作。

刷新设备表数据

SIMATIC Automation Tool 会在以下情况中刷新设备表行数据：

  • 执行网络扫描时

  • 操作完成后

  • 刷新一台或多台设备时

要刷新设备表数据，请选择以下方法之一：

  • 从工具栏按钮 [image] 下拉菜单中或“操作 > 扫描网络”(Operations > Scan Network) 菜单中选择“扫描整个网络”(Scan Entire Network) 以刷新所有设备。

  • 选择设备，然后从工具栏按钮 [image] 下拉菜单中或“操作 > 扫描网络”(Operations > Scan Network) 菜单中选择“刷新所有选定设备的状态”(Refresh Status of All Selected Devices)。

  • 选择“编辑 > 刷新”(Edit > Refresh) 菜单命令或右键单击设备行，并在快捷菜单中选择“刷新”(Refresh)。然后，在“刷新”(Refresh) 菜单命令中选择以下选项之一：

    • “设备”(Device)

    • “所有选择设备 F5”(All Selected Devices F5)

    • “所有设备”(All Devices)

  • 按下 F5 键可刷新“所有选择设备”(All Selected Devices)。

SIMATIC Automation Tool 可刷新从设备读取的设备数据，并保留所有用户输入的数据域。

如果刷新的设备不再存在于网络中，则 SIMATIC Automation Tool 将以斜体显示设备行数据。

说明

刷新选择设备

可以仅刷新顶层的选择设备。如果设备从属于设备表中的其它设备，则不能单独刷新从属设备。必须选择顶层设备才能刷新任何从属设备的状态。例如，所拥有的接口模块 (IM) 从属于 CPU 时，则不能仅刷新接口模块。要刷新接口模块的状态，请选择 CPU，然后刷新选择设备的状态。SIMATIC Automation Tool 可刷新 CPU 及其所有下属模块的状态。

网络扫描错误

在网络扫描期间，如果 SIMATIC Automation Tool 遇到设备通信错误，则该工具将向事件日志中添加一个条目。SIMATIC Automation Tool 可按错误发生顺序在事件日志中显示扫描错误。


插入设备

插入设备

可将设备插入设备表。仅能在设备表中添加任何其它设备中带有唯一 MAC 地址和 IP 地址的设备。

要插入设备，请按以下步骤操作：

  1. 在“编辑”(Edit) 菜单或设备表右键单击快捷菜单中，选择“插入 > 设备”(Insert > Device) 菜单命令。

  2. 在“插入设备”(Insert Device) 对话框中，输入设备的 IP 地址或 MAC 地址。输入的地址不得与现有设备的地址一致。对于 MAC 地址，应使用“:”作为分隔符，而不是“-”。

SIMATIC Automation Tool 拒绝尝试插入没有唯一地址或有效 IP 地址的设备。

当输入唯一 IP 地址或 MAC 地址时，SIMATIC Automation Tool 将尝试与用户提供的地址进行通信。如果通信成功，SIMATIC Automation Tool 会将设备插入设备表。如果通信失败，SIMATIC Automation Tool 将通知用户网络中不存在该设备。

如果设备在路由器之后，SIMATIC Automation Tool 将以蓝色显示设备名称。

说明

SIMATIC Automation Tool 无法将设备插入 NAT（网络地址转换）路由器之后

SIMATIC Automation Tool 根据 MAC 地址和 IP 地址在网络扫描中检测设备。由于 NAT 路由器不会转发 DCP 命令，因此无法将设备插入 NAT 路由器之后。


更新 IP、子网和网关地址

在支持的设备上设置 IP 地址 在不支持的设备上设置 IP 地址 循环上电后的 IP 地址

更新 IP、子网和网关地址

为了设置可在设备循环上电后保留的设备 IP 地址，STEP 7 项目中的设备组态必须指定在设备中设置 IP 地址。如果设备中的 STEP 7 项目未启用此设置，则可以使用 SIMATIC Automation Tool 设置 IP 地址，但该地址是临时的，仅在下一次循环上电之前可用。

在支持的设备上设置 IP 地址

要设置设备 IP 地址，请按以下步骤操作：

  1. 单击“设置 IP 地址”(Set IP Address) 选项卡。

  2. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  3. 在“新 IP 地址”(New IP Address)、“新子网”(New Subnet) 和“新网关”(New Gateway) 列中输入值。请注意，在输入新 IP 地址时不要输入通信接口，如“X1”或“X2”。

    如果输入无效语法，则 SIMATIC Automation Tool 将显示红色文本字段。必要时请更正任何错误。

  4. 从“操作”(Operations) 菜单中选择“更新”(Update) 或单击工具栏上的“更新”(Update) 按钮 [image] ，然后选择下拉菜单中的“设置 IP 地址”(Set IP Address)。

更新操作将在选择设备中设置 IP、子网和网关地址。

设备表下方的事件日志显示此操作的结果。

重复的 IP 地址

如果两台或更多设备的 IP 地址相同，则该地址将以红色文本显示，如下图所示：

可选择带有重复 IP 地址的设备，然后更新 IP 地址并纠正网络问题。带有重复 IP 地址的设备只能执行以下操作：

  • 删除

  • 设置 IP 地址

  • 设置 PROFINET 名称

  • 识别设备

带有重复 IP 地址的设备不能执行其它设备操作。

在不支持的设备上设置 IP 地址

基于 MAC 地址的操作使用 DCP（发现和组态协议）。DCP 是一种以太网标准。SIMATIC Automation Tool 可对所有直连网络设备（CPU、HMI、分散式 I/O 和其它设备）使用 DCP-MAC 地址操作“更新 IP 地址”。

选择不支持的设备行，在相应列中输入新数据，并以更新支持设备的方式更新不支持的设备 IP 地址。

不支持的设备可能不会接受基于设备硬件配置的更改。

在默认情况下，SIMATIC Automation Tool 可显示不支持的设备。可在 常规设置 中禁用此选项。

说明

由于 DCP 命令不可路由，因此 SIMATIC Automation Tool 无法收集在 IP 路由器后连接的设备的某些信息。

例如，SIMATIC Automation Tool 使用 DCP 从设备读取默认网关地址。DCP 是一种不可路由的协议。因此，SIMATIC Automation Tool 无法读取在路由器后连接的设备的信息。在这种情况下，相关设备表域为空。

循环上电后的 IP 地址

STEP 7 项目的设备组态确定了设备如何使用在 SIMATIC Automation Tool 中设置的 IP 地址。如果在 SIMATIC Automation Tool 中为设备设置 IP 地址，则该设备在下一次循环上电时会产生以下结果：

STEP 7 设备组态设置 | 循环上电后的 IP 地址
在设备中直接设置 IP 地址（或同等操作） | 在 SIMATIC Automation Tool 中设置的 IP 地址是设备 IP 地址
在项目中设置 IP 地址（或同等操作） | STEP 7 项目设备组态中的 IP 地址是 IP 地址


更新 PROFINET 设备名称

设置 PROFINET 名称 在不支持的设备上设置 PROFINET 名称

更新 PROFINET 设备名称

请注意，若要更改 PROFINET 设备名称，则下载的 TIA Portal 项目中的设备组态必须支持此更改。

有效的 PROFINET 名称应遵循标准 DNS（域名系统）的命名约定。如果输入了无效的名称，SIMATIC Automation Tool 会将其纠正为有效的 PROFINET 名称。可在“PROFINET 转换名称”(PROFINET Converted Name) 列中查看转换后的名称。

PROFINET 名称规则

设备名称最多可包含 63 个字符。有效字符包括小写字母“a”到“z”，数字 0 到 9，连字符（负号）和点号字符。

无效名称

  • 名称不得包含 n.n.n.n 格式，其中 n 值介于 0 到 999 之间。

  • 名称不能以字符串 port-nnn 或字符串 port-nnnnnnnn 开始，其中 n 介于数字 0 到 9 之间。例如“port-123”和“port-123-45678”为非法名称。

  • 名称不得以连字符“-”或点号“.”字符开始或结束。

设置 PROFINET 名称

要为一个或多个设备设置 PROFINET 名称，请按以下步骤操作：

  1. 单击“设置 PROFINET 名称”(Set PROFINET Name) 选项卡。

  2. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  3. 在“新 PROFINET 名称”(New PROFINET Name) 列中输入新的 PROFINET 名称。

  4. 从“操作”(Operations) 菜单中选择“更新”(Update) 或单击工具栏上的“更新”(Update) 按钮 [image] ，然后选择按钮下拉菜单中的“PROFINET 名称”(PROFINET Name)。

更新操作将在选择设备中设置新的 PROFINET 名称。如果按照 PROFINET 名称规则输入了无效的 PROFINET 名称，SIMATIC Automation Tool 会将无效名称纠正为有效名称。“PROFINET 转换名称”(PROFINET Converted Name) 列将显示转换后的名称。

设备表下方的事件日志显示此操作的结果。

重复的 PROFINET 名称

如果两台或更多设备有重复的 PROFINET 名称，则 SIMATIC Automation Tool 将以红色文本显示重复名称。SIMATIC Automation Tool 支持这些设备的全部功能并可显示其它所有信息：

在不支持的设备上设置 PROFINET 名称

基于 MAC 地址的操作使用 DCP（发现和组态协议）。DCP 是一种以太网标准。SIMATIC Automation Tool 可对所有直连网络设备（CPU、HMI、分散式 I/O 和其它设备）使用 DCP-MAC 地址操作，包括扫描整个网络，识别、更新 IP 地址以及更新 PROFINET 名称。

选择不支持的设备行，在相应列中输入新数据，并以更新支持设备的方式更新不支持的设备 PROFINET 名称。

不支持的设备可能不会接受基于设备硬件配置的更改。

在默认情况下，SIMATIC Automation Tool 可显示不支持的设备。可在 常规设置 中禁用此选项。


将 CPU 设置为 RUN 或 STOP 模式

将 CPU 更改为 RUN 或 STOP 模式

将 CPU 设置为 RUN 或 STOP 模式

将 CPU 更改为 RUN 或 STOP 模式

要更改设备的操作模式，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 对于每个选择的 CPU，如果使用密码，则在当前打开选项卡的“CPU 密码”(Password in CPU) 列中输入密码。

  3. 将操作模式设置为 RUN 模式或 STOP 模式：

    • 从“操作”(Operations) 菜单中选择 RUN 或单击 RUN [image] 工具栏按钮。CPU 中必须存在一个有效的程序后才能进入 RUN 模式。

    • 从“操作”(Operations) 菜单中选择 STOP 或单击 STOP [image] 工具栏按钮。

SIMATIC Automation Tool 可将所选 CPU 设置为 RUN 或 STOP 模式。

设备表中的“模式”(Mode) 和“操作状态”(Operating state) 列显示当前 CPU 的状态：

  • 黄色：STOP 模式

  • 绿色：RUN 模式

  • 红色：CPU 故障

设备表下方的事件日志显示操作的结果。


识别设备

通过闪烁 LED 或 HMI 画面 LED 定位设备 通过闪烁 LED 或 HMI 画面来识别不支持的设备

识别设备

对于设备表中的顶层设备，识别操作有助于物理性定位网络上的设备。

通过闪烁 LED 或 HMI 画面 LED 定位设备

可在 RUN 模式和 STOP 模式中执行识别操作。要识别设备，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 选择“操作 > 识别”(Operations > Identify) 菜单命令或单击工具栏按钮 [image] 来识别选择的设备。

CPU、SCALANCE 和其它设备都会闪烁 LED 以显示其位置。HMI 设备执行画面闪烁。

闪烁会继续直到单击“关闭”(Close) 按钮：

通过闪烁 LED 或 HMI 画面来识别不支持的设备

基于 MAC 地址的操作使用 DCP（发现和组态协议）。DCP 是一种以太网标准。SIMATIC Automation Tool 可对所有直连网络设备（支持的 PROFINET 设备、不支持的 PROFINET 设备和不支持的非西门子以太网设备）使用 DCP-MAC 地址操作，包括扫描整个网络，识别、更新 IP 地址以及更新 PROFINET 名称。

要识别不支持的设备，选择设备并以识别支持设备的相同方式来执行识别操作。

不支持的设备可能不会基于设备硬件配置而闪烁 LED。

在默认情况下，SIMATIC Automation Tool 可显示不支持的设备。可在 常规设置 中禁用此选项。


通过 SIMATIC Automation Tool 更新设备程序

示例：准备用于 SIMATIC Automation Tool 的 CPU 程序 示例：准备用于 SIMATIC Automation Tool 的 HMI 操作系统和运行系统软件 更新 CPU 程序或 HMI 操作系统和运行系统软件 程序验证 程序更新操作后的密码处理 F-签名验证 CPU 程序更新规则 程序更新对 IP 地址的影响 示例：程序更新
启动 返回 继续

通过 SIMATIC Automation Tool 更新设备程序

在使用 SIMATIC Automation Tool 将程序传送到 CPU 前，必须能够基于以下一种介质形式访问程序：

  • SIMATIC SD 存储卡

  • USB 闪存驱动器

  • 编程设备的硬盘

示例：准备用于 SIMATIC Automation Tool 的 CPU 程序

此示例使用 SIMATIC SD 存储卡进行传送。还可将数据传送到 USB 闪存驱动器或编程设备上的 Windows 文件夹。

要将 STEP 7 CPU 项目传送到 SIMATIC 存储卡，请按以下步骤操作：

  1. 将 SIMATIC 存储卡插入编程设备的读卡器中

  2. 通过 STEP 7，在项目树中选择 CPU

  3. 选择“项目 > 读卡器/USB 存储器 > 写入存储卡”(Project > Card Reader/USB memory > Write to memory card) 菜单命令：

  4. 在对话框中选择存储卡：

STEP 7 将 SIMATIC.S7S 文件夹保存至包含 CPU 项目的 SIMATIC 存储卡。还可以在项目树中将 STEP 7 项目拖到存储卡中以将项目复制到存储卡。

其它相关信息，请参见 STEP 7 信息系统（在线帮助）。

在 STEP 7 将程序数据传送到存储设备后，可使用 Windows 文件管理器将程序传送到 SIMATIC Automation Tool 所使用的文件夹。

为每个 CPU 程序复制“SIMATIC.S7S”文件夹

要使 SIMATIC Automation Tool 能够访问 CPU 程序，请按以下步骤操作：

  1. 在程序更新文件夹下创建子文件夹。为每个程序创建一个文件夹，然后创建一个可识别程序的文件夹名称。创建的文件夹名称将显示在 SIMATIC Automation Tool 程序下拉列表中。

  2. 使用 Windows 文件管理器将“SIMATIC.S7S”文件夹（包括所有子文件夹和文件）复制到每个程序的各子文件夹中。可将 TIA Portal 程序（“SIMATIC.S7S”文件夹）放在 zip 压缩文件中，之后将其解压缩到子文件夹位置。请注意，应在单独的配方操作中更新配方

请参见此主题的后续内容，“CPU 程序更新示例”部分。

说明

STEP 7 程序数据

程序数据受到保护。因此，无法通过 SIMATIC.S7S 文件夹中存储的数据发现 STEP 7 程序的项目名称或目标 CPU 等详细信息。无法识别两个不同程序的 SIMATIC.S7S 文件夹的区别。
必须在 SIMATIC Automation Tool 程序更新文件夹下创建和命名可识别程序功能或目标 CPU 的子文件夹。将程序的 SIMATIC.S7S 文件夹复制到命名的子文件夹中。创建的子文件名称将显示在 SIMATIC Automation Tool“程序”(Program) 下拉列表中，提供到 SIMATIC.S7S 文件夹的正确路径。

示例：准备用于 SIMATIC Automation Tool 的 HMI 操作系统和运行系统软件

此示例使用 SIMATIC SD 存储卡进行传送。还可将数据传送到 USB 闪存驱动器或编程设备上的 Windows 文件夹。

V14 和更高版本的 HMI 设备支持通过 STEP 7 保存操作系统和运行系统。

要将 HMI 的操作系统和运行系统文件复制到 SIMATIC 存储卡中，请按以下步骤操作：

  1. 将 SIMATIC 存储卡插入编程设备的读卡器中。

  2. 在项目树中展开“读卡器/USB 存储器”(Card Reader/USB memory)，以显示与读卡器相关的驱动器。

  3. 在项目树中选择 HMI，然后将其拖至读卡器的驱动器号上。

STEP 7 将 SIMATIC.HMI 文件夹保存到包含 HMI 运行系统和 HMI 操作系统的 SIMATIC 存储卡上。HMI 更新包括操作系统和运行系统数据。不能选择部分更新。

在 TIA Portal 将 SIMATIC.HMI 文件夹传送到存储设备后，可使用 Windows 文件管理器将 SIMATIC Automation Tool 设置为可访问 SIMATIC.HMI 文件夹：

  1. 在程序更新文件夹中创建 HMI 程序子文件夹。

  2. 将 SIMATIC.HMI 文件夹复制到子文件夹。

如果要使用 SIMATIC.HMI 文件夹的固件（操作系统）部分来更新 HMI 设备的固件，请按以下步骤操作：

  1. 浏览 SIMATIC.HMI 文件夹的“固件”(Firmware) 文件夹，直至找到.fwf 文件。

  2. 将 .fwf 文件复制到“固件更新”(Firmware Update) 文件夹。

更新 CPU 程序或 HMI 操作系统和运行系统软件

请注意，如果采用链路型通信拓扑结构且 通信设置 启用多线程，这种操作可能带来通信中断的风险。

说明

故障安全设备

如果故障安全 CPU 受到保护，则必须在“CPU 密码”(Password in CPU) 列中输入安全 F-CPU 密码才能更新故障安全设备的程序。

在以下情况中，必须确认对 F-CPU 的程序更新的额外提示并重新选择设备：

  • 使用其它安全程序更新安全程序时

  • 使用标准程序更新安全程序时

  • 首次加载安全程序时

  • 更新标准程序且该程序需要“包括故障安全的完全访问（无保护）”(Full access incl. fail-safe (no protection)) 访问级别的 CPU 密码时

SIMATIC Automation Tool 将故障安全设备的程序更新请求置于 F-CPU 安全相关的操作队列中。对于与安全相关的操作队列，SIMATIC Automation Tool 仅使用单线程顺序处理。

安全程序的目标设备必须是故障安全 CPU。

警告

更新程序之前，请验证设备当前是否未在运行进程

安装新程序将导致 CPU 切换到 STOP 模式，这可能会影响在线过程或机器的运行。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。
说明

HMI 设备的传送设置（SIMATIC 面板）

要与 HMI 通信，必须将 HMI 设备的“传送设置”(Transfer Settings) 设为 PN/IE 或 Ethernet。必须将 HMI 传输通道的通信设置设为相同设置。

在“程序更新”(Program Update) 文件夹中存储程序后，可使用 SIMATIC Automation Tool 将新程序加载到一台或多台设备中。要执行程序更新，请按以下步骤操作：

  1. 单击“程序更新”(Program Update) 选项卡。

  2. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  3. 对于每台所选设备，使用“程序更新文件夹”(Program Update Folder) 列下拉列表来选择一个文件夹名称。该下拉列表显示用户在程序更新路径中所创建的文件夹。

    还可使用浏览按钮 [image] 导航至在编程设备上存储程序的文件夹的位置。选择程序后，SIMATIC Automation Tool 会将该程序添加至下拉列表。如果所选文件的名称与已列出文件之一相同，SIMATIC Automation Tool 会向新文件名称添加一个数字，以使新名称唯一。为了帮助用户识别文件，将光标悬停在“程序更新”(Program Update) 字段中的程序名称上时，工具提示将显示设备接口和 IP 信息，例如：

    如果程序文件不含 IP 地址，则工具提示将为所有 IP 地址域显示“直接在设备上设置” (Set directly at device)。

  4. 如果使用密码，则将密码输入“CPU 密码”(Password in CPU) 和“程序文件中的密码”(Password in Program File) 列。程序更新是与安全相关的操作。如果设备为故障安全设备，则必须输入安全 F-CPU 密码。

  5. 选择“操作 > 更新 > 程序更新”(Operations > Update > Program Update) 菜单命令以启动操作。或者，选择“更新”(Update) 工具栏按钮 [image] ，然后在下拉菜单中选择“程序更新”(Program Update)。

设备表下方的事件日志显示此操作的结果。

程序验证

在更新 CPU 中的程序前，SIMATIC Automation Tool 会验证程序数据。

如果程序数据中有错误，则 SIMATIC Automation Tool 将在“程序更新文件夹”(Program Update Folder) 单元格中显示一个红色“X”图标。当光标悬停在该单元格上时，工具提示中还会出现其它错误信息。

程序更新操作后的密码处理

程序文件可能有密码，且该密码可能与现有 CPU 密码不同。若程序文件设有密码，则必须在“程序文件中的密码”(Password in Program File) 单元格中输入程序密码才能执行程序更新。在程序更新操作完成后，程序密码将变为 CPU 密码。

在程序更新操作成功完成后，SIMATIC Automation Tool 会自动将“程序文件中的密码”(Password in Program File) 复制到 CPU 密码域，然后尝试使用新密码进行连接。之后，SIMATIC Automation Tool 将清除“程序文件中的密码”(Password in Program File) 域和“程序更新文件夹”(Program Update Folder) 域。

如果在“程序文件中的密码”(Password in Program File) 列中输入的密码并不是针对 STEP 7 项目组态的密码，则事件日志将在操作完成后显示一条警告消息。在这种情况下，CPU 密码上会显示一个红色“X”图标，表明该密码无效。

F-签名验证

包含安全程序的 TIA Portal 项目具有 F-签名，用于验证复制程序中的数据，并为安全程序提供附加安全级别。在程序更新操作完成后，项目中的 F-签名将与 CPU 设备当前加载的 F-签名进行比较。

SIMATIC Automation Tool 在事件日志中报告成功比较结果，内容如下：“CRC 比较的结果，在线和离线集体 F-签名不匹配。”(Result of CRC comparison, online and offline collective F-signatures do not match.)。

SIMATIC Automation Tool 将在事件日志中报告失败的比较结果，内容如下：“CRC 比较的结果，在线和离线集体 F-签名不匹配”(Result of CRC comparison, online and offline collective F-signatures do not match)。若比较失败，则应将设备复位为出厂默认值，然后重新进行程序更新。

警告

请确保加载正确的安全程序。

在 F-CPU 上运行错误程序可能影响过程或机器的操作。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

如果无法确定是否加载了正确的安全程序，请勿切换至 RUN 模式。

CPU 程序更新规则

SIMATIC Automation Tool 支持对标准 CPU 和故障安全 CPU 进行程序更新操作。

请注意以下程序更新规则：

  • CPU 硬件的固件版本必须高于或等于要加载项目中的固件版本。如有可能，可以通过更新 CPU 中的固件来避免这一限制。

  • “设备目录”(Device Catalog) 会显示支持程序更新操作的设备。可通过 帮助菜单 访问“设备目录”(Device Catalog)。

程序更新对 IP 地址的影响

程序更新前，CPU 中的 STEP 7 项目在 IP 地址设置方式设备组态中有一项设置。简单来说，该设置是以下设置之一：

  • 在项目中设置 IP 地址（或同等操作）

  • 在设备中直接设置 IP 地址（或同等操作）

所更新程序的设置可能与 CPU 中当前已有项目的设备组态不同。此外，用户可能已使用 SIMATIC Automation Tool 更新了设备 IP 地址。在这种情况下，用户更新的设备地址当前位于 CPU 中。

程序更新后以及后续 CPU 循环上电后的设备 IP 地址取决于新程序中的设置以及当前 IP 地址。下表列出了各种可能的设备 IP 地址。

新的更新程序中的设备组态 | 程序更新后的 IP 地址 | 程序更新后下一次 CPU 循环上电后的 IP 地址
在项目中设置 IP 地址 | IP 地址是来自新更新的程序的 IP 地址。 | IP 地址是来自新更新的程序的 IP 地址。
在设备中直接设置 IP 地址 | IP 地址是程序更新前设备的 IP 地址。 | IP 地址是程序更新前设备的 IP 地址。

示例：程序更新

如果希望对五个不同的 CPU 程序进行程序更新，则必须在“程序更新文件夹”(Program Update folder) 中创建和命名五个文件夹。将整个“SIMATIC.S7S”文件夹复制到五个相应的文件夹中。

在本示例中，文件夹名称“Program1”、“Program2”、“Program3”、“Program4”和“Program5”用于识别可用的程序。可使用任何文件夹名称。文件夹名称可参考程序功能或 CPU 位置。

下图显示程序文件夹下子文件夹的 Windows 文件管理器视图。可将相应 SIMATIC.S7S 程序文件夹复制到这些文件夹中：

如果使用 Windows 10，文件管理器视图会有所不同，但仍可将文件复制到相同的文件夹结构。

下图显示 SIMATIC Automation Tool“程序更新”(Program Update) 选项卡以及“新程序更新”(New Program Update) 列下拉列表中的示例文件夹名称。必须使用“新程序更新”(New Program Update) 列中的下拉列表来分配要使用的程序。如果选择一个以上 CPU 行，则必须重复此过程并为所选的每个 CPU 分配正确的程序。

选择“操作 > 更新 > 程序更新”(Operations > Update > Program Update) 菜单命令以启动程序更新。或者，单击工具栏的“更新”(Update) 按钮，然后在下拉菜单中选择“程序更新”(Program Update)。

此过程与 HMI 数据相似。项目文件夹中的文件夹名称为“SIMATIC.HMI”，而不是“SIMATIC.S7S”。该过程是相同的。


上传、添加、替换和删除 CPU 中的配方

工具栏动作 上传或删除配方文件 添加或替换（下载）配方文件

上传、添加、替换和删除 CPU 中的配方

配方操作适用于其配方位于外部装载存储器（SIMATIC 存储卡）的 CPU。CPU 可处于 RUN 或 STOP 模式。

配方数据格式为 .csv（逗号分隔值）文本文件。

如果配方全部位于不同的 CPU 上，则可在单个操作中添加或替换多个配方。不能通过单个操作在 CPU 中添加或替换一个以上配方。

可在单个操作中选择一个 CPU 中的多个配方进行上传或删除。

选择配方文件或配方文件夹后，SIMATIC Automation Tool 将以粗体文本显示设备表行。

要执行配方下载，请单击“配方”(Recipe) 选项卡并选择 CPU 的配方文件夹行。

SIMATIC Automation Tool 将为每个 CPU 创建唯一的文件夹名称，以将上传的配方文件存储到编程设备。文件夹名称包括 CPU 名称以及 MAC 地址。如果选择并上传两次同一配方文件，SIMATIC Automation Tool 会在文件名后附加一个数字，以使所有文件名都唯一。

SIMATIC Automation Tool 必须拥有读取访问权限才能上传配方文件。若要删除、添加或替换配方文件，SIMATIC Automation Tool 必须拥有完全访问（读取和写入）权限。必须输入密码以成功执行删除或添加/替换操作。如果不输入密码，或密码未授予 CPU 写入权限，则 CPU 操作将失败并在事件日志中输入一条错误消息。

工具栏动作

在“文件操作”(File Operations) 工具栏按钮 [image] 的下拉菜单中，可进行以下选择：

  • “上传配方”(Upload Recipes)：将 CPU 中选择的配方文件复制到编程设备的配方文件夹。

  • “添加/更换配方”(Add/Replace Recipe)（显示加载配方选项卡时可选）：将编程设备中选择的配方文件复制到 CPU。

  • “删除配方”(Delete Recipes)：删除 CPU 中选择的配方文件。

上传或删除配方文件

要上传或删除 CPU 中的配方文件，请按以下步骤操作：

  1. 单击设备表上的“加载配方”(Load Recipe) 选项卡。

  2. 展开 CPU 设备，使配方文件夹 [image] 可见。

  3. 展开配方文件夹，然后选择要加入到操作中的配方 [image] 文件。

  4. 对于每个选择的 CPU，如果使用密码，则在“CPU 密码”(Password in CPU) 列中输入密码。

  5. 选择“操作 > 文件操作”(Operations > File Operations) 菜单命令或单击“文件操作”(File Operations) 工具栏按钮：

  6. 在“文件操作”(File Operations) 菜单中选择“上传配方”(Upload Recipes) 或“删除配方”(Delete Recipe)。

设备表下方的事件日志显示操作的结果。

添加或替换（下载）配方文件

要添加或替换编程设备上文件中的 CPU 配方文件，请按以下步骤操作：

  1. 将 CPU 中要添加或替换的配方数据 .csv 文件复制到配方文件夹中。

  2. 单击设备表中的“加载配方”(Load Recipe) 选项卡。

  3. 展开 CPU 的“配方”(Recipes) 文件夹 [image] 。

  4. 选择要加载的配方文件。

  5. 对于选择的每个配方文件，单击“添加/更换配方”(Add/Replace Recipe) 列下拉列表并选择一个配方文件名称。下拉列表显示.csv 文件的名称，这些文件所在目录路径由“选项 > 设置”(Options > Settings) 对话框中的配方部分指定。
    还可使用浏览按钮     [image] 导航至在编程设备上存储配方文件的文件夹位置。SIMATIC Automation Tool 会将用户选择的文件添加到下拉列表。如果所选文件的名称与已列出文件之一相同，SIMATIC Automation Tool 会向新文件名称添加一个数字，以使新名称唯一。为了帮助用户识别文件，工具提示将显示整个路径和文件名。

  6. 选择“操作 > 文件操作”(Operations > File Operations) 菜单命令或单击“文件操作”(File Operations) 工具栏按钮：

  7. 从“文件操作”(File Operations) 菜单中选择“添加/更换配方”(Add/Replace Recipe)。

若配方存在，则 SIMATIC Automation Tool 会将其替换。若配方不存在，则 SIMATIC Automation Tool 会添加配方。

设备表下方的事件日志显示此操作的结果。

在配方下载操作成功完成后，配方文件路径将被删除。

警告

安全说明

使用损坏的数据操作过程或机器可能会影响在线过程或机器的运行。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

采取适当的措施（例如，限制网络接入和使用防火墙等），避免配方 .csv 文件遭到破坏。


上传或删除 CPU 中的数据日志

上传或删除 CPU 中的数据日志

数据日志上传操作适用于其数据日志位于外部装载存储器（SIMATIC 存储卡）的 CPU。CPU 可处于 RUN 或 STOP 模式。

数据日志删除操作仅适用于处于 STOP 模式的 CPU。如果选择删除一个或多个数据日志（从一个或多个 CPU），则 SIMATIC Automation Tool 将检查是否有 CPU 处于 RUN 模式。如果有 CPU 处于 RUN 模式，SIMATIC Automation Tool 会提示用户在尝试操作前将所有 CPU 置于 STOP 模式。如果不切换为 STOP 模式，SIMATIC Automation Tool 将停止整个删除操作。

SIMATIC Automation Tool 将数据日志作为 .CSV（逗号分隔值）文本文件上传。

可从一个或多个 CPU 中选择多个数据文件，并在单个操作中处理所有选择的文件。

SIMATIC Automation Tool 将为每个 CPU 创建唯一的文件夹名称，以便将上传的数据日志文件存储到编程设备。文件夹名称将根据 CPU 名称以及 MAC 地址相结合进行创建。如果选择并上传两次同一数据日志文件，文件名后将附加一个数字，以使所有文件名都唯一。

SIMATIC Automation Tool 必须具备读取访问权限才能上传 CPU 中的数据日志文件，以及完全访问（读取和写入）权限以删除 CPU 中的数据日志文件。必须输入密码才能删除数据日志。如果不输入密码，或密码未提供写入权限，则 SIMATIC Automation Tool 将不会删除该 CPU 的数据日志。同时，事件日志将显示一条消息。

数据日志动作

“文件操作”(File Operations) 工具栏按钮 [image] 和“文件操作”(File Operations) 菜单提供以下菜单命令：

  • “上传数据日志”(Upload Data Logs)：将 CPU 中选择的数据日志文件副本上传至编程设备。SIMATIC Automation Tool 将文件复制到 数据日志设置 中分配的目录。

  • “删除数据日志”(Delete Data Logs)：删除存储在 CPU 中的所选数据日志文件。

上传或删除数据日志文件

要上传或删除数据日志文件，请按以下步骤操作：

  1. 展开 CPU 行，使数据日志文件夹 [image] 可见。

  2. 展开数据日志文件夹并选择数据日志文件：

  3. 对于每个 CPU，如果使用密码，则在当前打开选项卡的“CPU 密码”(Password in CPU) 列中输入密码。

  4. 选择“操作 > 文件操作 > 上传数据日志”(Operations > File Operations > Upload Data Logs) 菜单命令或“操作 > 文件操作 > 删除数据日志”(Operations > File Operations > Delete Data Logs) 菜单命令。或者，单击“文件操作”(File Operations) 工具栏按钮 [image] ，然后在下拉菜单中选择“上传数据日志”(Upload Data Logs) 或“删除数据日志”(Delete Data Logs) 命令。

设备表下方的事件日志显示用户操作结果。

警告

安全说明

使用损坏的数据操作过程或机器可能会影响在线过程或机器的运行。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

采取适当的措施（例如，限制网络接入和使用防火墙等），避免数据日志 .csv 文件遭到破坏。


在设备中安装新固件

确定是否可执行固件更新 准备用于 SIMATIC Automation Tool 的 CPU 和模块固件更新文件 准备用于 SIMATIC Automation Tool 的 HMI 固件更新文件 预加载固件更新文件 执行设备的固件更新 用于固件更新的故障安全设备 CPU 密码 因与 .upd 文件存储设备通信缓慢而导致的超时错误消息 示例：CPU 的固件更新 不使用 SIMATIC Automation Tool 的更新固件方法
启动 返回 继续

在设备中安装新固件

SIMATIC Automation Tool 可在多台设备上执行固件更新。固件更新的文件扩展名取决于设备类型：

  • 对于 HMI，固件更新文件的扩展名为 .fwf。

  • 对于 SCALANCE 设备，固件更新文件的扩展名为 .lad、.sfw 或 .fwl。

  • 对于 CPU 及其它设备，可使用单个 .upd 文件格式或使用三个或更多单独 .upd 文件的旧（经典）格式。

请注意，如果采用链路型通信拓扑结构且 通信设置 启用多线程，这种操作可能带来通信中断的风险。

说明

S7-1200 CM 通信模块必须在固件更新前组态

对于 S7-1200 CM 模块，必须在 STEP 7 中组态 CM 模块并将组态下载到模块，之后才能使用 SIMATIC Automation Tool 来更新 CM 固件。

说明

CPU 固件降级

可使用 SIMATIC Automation Tool 来降级 CPU 固件（下载之前固件版本），但 IP 地址和程序可能会被擦除。在这种情况下，IP 地址可能复位为 0.0.0.0，需要执行新网络扫描才能与此设备通信。必须设置 IP 地址以恢复之前的网络地址。

某些设备无法降级固件。检查设备文档。

请注意，CPU 固件版本可能无法运行其它固件版本的程序。如果程序与固件版本不兼容，则 CPU 不能切换至 RUN 模式。

如果执行固件降级，且程序不再兼容新的固件版本，则必须按如下方法复位 CPU：

  • 如果通过内部装载存储器运行 CPU，则会将 CPU 复位为出厂默认设置。

  • 如果通过外部装载存储器运行 CPU，则会格式化存储卡并为 CPU 循环上电。

复位 CPU 后，下载对 CPU 中的固件版本有效的程序。

确定是否可执行固件更新

设备目录列出了 SIMATIC Automation Tool 可为其执行固件更新的设备和版本。要通过 SIMATIC Automation Tool 更新设备固件，设备和版本必须支持固件更新且为以下之一：

  • 设备表顶层的 CPU

  • 设备表顶层的 HMI

  • CPU 的本地模块，包括 PROFIBUS CM/CP 模块

    CPU 本地模块显示在本地模块文件夹中 CPU 的下方：

  • PROFINET IO 系统中的分布式设备或模块

    PROFINET IO 系统中的分布式 I/O 模块显示在 PROFINET IO 系统文件夹下方：

请注意，必须满足以下两个条件：

  • 设备目录指出 SIMATIC Automation Tool 支持设备的固件更新。

  • 设备或模块在设备表中处于受支持的级别。

请注意，SIMATIC Automation Tool 不支持以下 IO 系统中模块的固件更新：

  • PROFIBUS IO 系统：

  • AS-i IO 系统：

说明

CPU 本地模块的依存关系

如果 CPU 不支持固件更新，则无法更新本地模块的固件。例如，固件版本早于 V4.0 的 S7-1200 CPU 不支持通过以太网进行固件更新。对于连接到上述 CPU 的本地模块，无法使用 SIMATIC Automation Tool 更新固件。

准备用于 SIMATIC Automation Tool 的 CPU 和模块固件更新文件

可从 Siemens 产品支持网站获取 CPU 和模块固件更新文件。

还可选择设备行，然后从“工具”(Tools) 菜单或“工具”(Tools) 工具栏按钮中选择“检查固件更新”(Check for Firmware Updates)。SIMATIC Automation Tool 将启动设备的客户支持网页。西门子支持网页选项对应于设备表行中显示的订货号。例如，订货号 6ES7 215‑1HG31‑0XB0 的“检查更新”(Check for updates) 命令链接对应于 CPU 1215C 网络支持页面。

以 CPU 为例，命名为 6ES7 211-1AE40-0XB0_V04.00.02.exe 的固件更新文件仅适用于 CPU 1211C DC/DC/DC 型号。如果将此程序包中的 .upd 文件用于任何其它 S7‑1200 CPU 型号，则更新过程将失败。

当执行更新文件和解压缩文件时，会看到以下文件和文件夹：

  • 文件：S7-JOB.SYS

  • 文件夹：FWUPDATE.SYS 包含 .upd 文件。

    • 文件：6ES7 211-1AE40-0XB0 V04.00.02.upd （SIMATIC Automation Tool 使用的 .upd 文件）

以 I/O 模块为例，命名为 232‑4HD32‑0XB0_V203.exe 的固件更新文件仅适用于 SM 1232 ANALOG OUTPUT 4AO 模块。自解压 .exe 文件包含 SIMATIC Automation Tool 使用的文件 6ES7 232‑4HD32‑0XB0 V02.00.03_00.00.00.00.upd。

说明

新格式的固件更新文件

  • 自解压 .exe 更新程序包的名称必须参考要更新设备的订货号。

  • 解压的 .upd 文件名必须与设备订货号和要加载的固件版本相匹配。
说明

旧格式的固件更新文件

  • 自解压 .exe 更新程序包的名称必须参考要更新设备的订货号。

  • 包含三个或多个文件，具体取决于固件大小。

  • 在固件更新文件夹中创建任何名称的文件夹。可使用订货号和版本号来命名文件夹，以便轻松识别，但也可使用其它任何名称。SIMATIC Automation Tool 在启动时会解析所有固件文件，以确认确切的固件版本号。

将 .upd 文件复制到“固件更新”文件夹

新格式固件更新单个 .upd 文件的文件名中包含目标模块型号和版本号。可将多个 .upd 文件复制到单个固件文件夹，之后便可通过 .upd 文件名识别目标模块。将全部所需的 .upd 文件复制到“固件更新”(Firmware Update) 文件夹。

警告

在安装固件更新之前，请确定 CPU 当前未执行任何进程

安装 CPU 或模块的固件更新程序会导致 CPU 切换到 STOP 模式，这可能会影响在线操作或机器的运行。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

准备用于 SIMATIC Automation Tool 的 HMI 固件更新文件

HMI 文件的固件更新文件的扩展名为 .fwf。该文件是 HMI 运行系统和操作系统的一部分，可以从 TIA Portal 项目中复制。有关将 SIMATIC.HMI 文件结构从 TIA Portal 传送到 SIMATIC 存储卡等存储介质的说明，请参见主题 通过 SIMATIC Automation Tool 更新设备程序。将 SIMATIC.HMI 文件结构复制到存储介质后，若要更新 HMI 设备的固件，请按以下步骤操作：

  1. 在 SIMATIC 存储卡或其它设备的 SIMATIC.HMI 文件夹中，从“固件”(Firmware) 子文件夹开始向下查询，直到找到带有 .fwf 文件扩展名的文件。

  2. 将 .fwf 文件文复制到“固件更新”(Firmware Update) 文件夹。

可将多个 HMI 设备和固件版本的多个 .fwf 文件存储在“固件更新”(Firmware Update) 文件夹中。

说明

HMI 设备的传送设置（SIMATIC 面板）

要与 HMI 通信，必须将 HMI 设备的“传送设置”(Transfer Settings) 设为 PN/IE 或 Ethernet。必须将 HMI 传输通道的通信设置设为相同设置。

预加载固件更新文件

可在“新固件版本”(New Firmware Version) 列中预加载最新可用的固件更新文件。SIMATIC Automation Tool 将检查固件更新文件夹。对于每台设备，如果 SIMATIC Automation Tool 发现相应固件更新文件的版本比设备中当前文件的版本更新，则会在“新固件版本”(New Firmware Version) 列中加载最新可用的版本。

要预加载固件更新文件，请选择“工具 > 预加载固件更新文件”(Tools > Preload Firmware Update Files) 菜单命令。或者，可单击“工具”(Tools) [image] ，然后在快捷菜单中选择“预加载固件更新文件”(Preload Firmware Update Files) 命令。

对于每台设备，SIMATIC Automation Tool 随后将在“新固件版本”(New Firmware Version) 列中预加载文件夹中的最新版本（比设备中的版本更新）。如果 SIMATIC Automation Tool 未发现比设备当前版本更高的更新文件，则会将“新固件版本”(New Firmware Version) 列留空。

可将固件更新文件单元格复制并粘贴到其它适用的固件更新单元格。复制和粘贴能够简化多种设备的固件更新操作。

执行设备的固件更新

要执行固件更新操作，请执行以下步骤：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 单击“固件更新”(Firmware Update) 选项卡。

  3. 如果未预加载固件更新文件，请选择固件更新文件。对于选择的每个设备行，单击“新固件版本”(New Firmware Version) 列下拉列表并选择一个固件版本。该下拉列表显示对应于设备选项的“固件更新文件夹”(Firmware Update folder) 中文件的名称。如果“固件更新”(Firmware Update) 文件夹中有新的固件版本，则可在“新固件版本”(New Firmware Version) 下拉列表中查看这些文件。

    还可使用浏览 [image] 按钮导航至编程设备上包含固件更新文件的文件夹。选择一个文件以将其添加至下拉列表。如果所选文件的名称与已列出文件之一相同，SIMATIC Automation Tool 会向新文件中添加一个数字，以使新名称唯一。为了帮助用户识别文件，工具提示将显示整个路径和文件名。

    如果选择旧格式的固件更新文件，请选择 header.upd 文件。请勿选择集中其它 .upd 文件中的任何一个。

  4. 对于每个选择的 CPU，如果使用密码，则在“CPU 密码”(Password in CPU) 列中输入密码。

  5. 对于每个选择的 SCALANCE 设备，请为设备选择 SNMP 配置文件。SNMP 配置文件旁的图标表明 SNMP 配置文件名称是否对应于 SNMP 配置文件文件夹中配置文件的配置文件名称。

    • ：SNMP 配置文件对应于 SNMP 配置文件文件夹中配置文件的 SNMP 配置文件。

    • ：SNMP 配置文件不对应于 SNMP 配置文件文件夹中配置文件的 SNMP 配置文件。

    说明

    用户需要提供 TFTP (Trivial File Transfer Protocol) 服务器才能在 SCALANCE 设备中安装固件。

  6. 选择“操作 > 更新 > 固件更新”(Operations > Update > Firmware Update) 菜单命令以启动操作。或者，单击“更新”(Update) 工具栏按钮 [image] ，然后在按钮下拉菜单中选择“固件更新”(Firmware Update) 命令。

设备表下方的事件日志显示操作的结果。在更新固件操作成功完成后，SIMATIC Automation Tool 将清除“新固件版本”(New Firmware Version) 域。

用于固件更新的故障安全设备 CPU 密码

对于 S7-1200 V4.2 和 S7-1500 V2.0 之前的固件版本，受密码保护的故障安全 CPU 需要安全 F-CPU 密码（最高 5 级 ）来执行固件更新操作。由于固件更新并非与安全相关的操作，因此密码级别要求宽松一些。之后版本的 F-CPU 固件仅需要读写访问权限（第 4 级完全访问）。

SIMATIC Automation Tool 不会检查各种固件版本的合法化级别。操作启动后，设备将依据固件执行情况拒绝密码，并提供以下事件日志错误消息：

“输入的密码权限不足，无法完成该操作。”(The password entered is not sufficient to complete the operation.)

S7-1200 V4.2 或之后的版本和 S7-1500 V2.0 或之后的版本仅需要读写“完全访问（无保护）”(Full access (no protection)) 权限。如果使用安全 F-CPU 密码则也会获取读写访问权限，因此输入故障安全密码后，此操作始终都会成功。

因与 .upd 文件存储设备通信缓慢而导致的超时错误消息

如果看到以下错误消息框，则操作已超时十秒钟以上。SIMATIC Automation Tool 未处理完所有 .upd 文件。打开并扫描所有 .upd 文件所需的时间取决于数据访问时间和文件夹中.upd 文件的数量。

在与远程存储设备通信的速度过慢时会出现此超时错误。

要避免此问题，应将固件更新文件复制到可提供更快访问速度的本地存储设备。将此路径分配为固件更新文件夹，然后再次尝试操作。

示例：CPU 的固件更新

以下示例介绍了如何更新单个 CPU 的固件。

要执行固件更新，请进行以下步骤：

  1. 在“新固件版本”(New Firmware Version) 列中打开可用版本的下拉列表。该下拉列表显示固件更新文件夹中所有可用的固件更新文件。

  2. 选择要使用的固件更新版本。（如果已选择一台以上设备，则应为每台所选设备选择一个更新文件。）

  3. 选择“操作 > 更新 > 固件更新”(Operations > Update > Firmware Update) 菜单命令以启动操作。或者，单击“更新”(Update) 工具栏按钮，然后在下拉菜单中选择“固件更新”(Firmware Update) 菜单命令。

说明

不能使用 SIMATIC Automation Tool 来更新某些 S7-1200 模块的固件。

某些 CPU 不支持固件更新。如果 CPU 不支持固件更新，则仅可使用 SIMATIC SD 卡来更新设备。此外，也不能使用 SIMATIC Automation Tool 来更新此 CPU 连接的模块的固件。

不使用 SIMATIC Automation Tool 的更新固件方法

替代的固件更新方法包括以下内容：

  • 适用设备中的 SIMATIC SD 存储卡

  • TIA Portal 在线与诊断功能

  • CPU Web 服务器的“模块信息”(Module Information) 页面

说明

HMI 操作系统和运行系统软件更新

可使用 SIMATIC Automation Tool 程序更新操作来更新 HMI 操作系统和运行系统软件。必要时，程序更新操作将更新所有数据组分以保持下载一致。

无需更新运行系统软件即可更新 HMI 操作系统（固件）。在 V3.1 SP2 之前的版本中，无法仅更新操作系统固件。必须执行程序更新。


备份和恢复设备数据

备份和恢复设备数据

该章节包括以下主题的信息:
  • 备份 CPU 或 HMI
  • 备份 HMI 配方
  • 备份 HMI 用户管理数据
  • 恢复备份文件


备份 CPU 或 HMI

执行完整备份

备份 CPU 或 HMI

备份 CPU 或 HMI 会创建一个或多个备份文件，并将这些文件存储在备份和恢复文件夹中。

可在 SIMATIC Automation Tool 恢复设备操作中使用这些文件。

SIMATIC Automation Tool 提供以下类型的备份：

  • CPU 或 HMI 的完整备份

  • HMI 配方备份

  • HMI 用户管理数据备份

CPU 备份的文件名称由项目名称、备份类型和 MAC 地址组成。HMI 备份的文件名称由 HMI 类型、MAC 地址和备份类型组成。所有备份文件均具有 .s7pbkp 文件扩展名。SIMATIC Automation Tool 会将这些文件复制到备份和恢复文件夹：

执行完整备份

可从任何选项卡中启动备份操作。

要创建备份文件，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 在“操作”(Operations) 菜单中选择“备份设备 > 完整备份”(Backup Device > Full Backup) 菜单命令。或者，单击“备份和恢复”(Backup and Restore) 工具栏按钮 [image] ，然后在下拉菜单中选择“备份设备 > 完整备份”(Backup Device > Full Backup)。

事件日志显示操作的结果。

要成功进行操作，SIMATIC Automation Tool 为每个选定的设备创建一个备份文件。


备份 HMI 配方

备份 HMI 配方

可从任何选项卡中启动备份操作。

要为一个或多个 HMI 设备创建 HMI 配方备份文件，请按以下步骤操作：

  1. 选择一个或多个 HMI 设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 在“操作”(Operations) 菜单中选择“备份设备 > HMI > 配方”(Backup Device > HMI > Recipes) 菜单命令。或者，单击“备份和恢复”(Backup and Restore) 工具栏按钮 [image] ，然后在按钮下拉菜单中选择“备份设备 > HMI > 配方”(Backup Device > HMI > Recipes)。

事件日志显示操作的结果。

要成功进行操作，SIMATIC Automation Tool 为每个 HMI 设备创建一个 HMI 配方备份文件。SIMATIC Automation Tool 会将这些文件存储在备份和恢复文件夹中。SIMATIC Automation Tool 将忽略非 HMI 设备的设备。


备份 HMI 用户管理数据

备份 HMI 用户管理数据

可从任何选项卡中启动备份操作。

要使用一个或多个 HMI 设备的 HMI 用户管理数据创建备份文件，请按以下步骤操作：

  1. 选择一个或多个 HMI 设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 在“操作”(Operations) 菜单中选择“备份设备 > HMI > 用户管理数据”(Backup Device > HMI > User Administration Data) 菜单命令。或者，单击“备份和恢复”(Backup and Restore) 工具栏按钮 [image] ，然后在按钮下拉菜单中选择“备份设备 > HMI > 用户管理数据”(Backup Device > HMI > User Administration Data)。

事件日志显示操作的结果。

要成功进行操作，SIMATIC Automation Tool 使用 HMI 用户管理数据为每个 HMI 设备创建一个备份文件。SIMATIC Automation Tool 会将这些文件存储在备份和恢复文件夹中。SIMATIC Automation Tool 将忽略非 HMI 设备的设备。


恢复备份文件

从备份文件恢复设备 备份文件验证 恢复操作后的密码处理 F-签名验证 恢复 CPU 程序对 IP 地址的影响 从备份恢复的示例
启动 返回 继续

恢复备份文件

从备份文件恢复设备

使用“恢复设备”(Restore Device) 命令可将备份文件恢复到相应设备。通过“备份设备”(Backup Device) 命令创建的 CPU 和 HMI 备份文件的扩展名为“s7pbkp”。可通过备份和恢复文件夹或浏览其它位置恢复文件。

请注意，如果采用链路型通信拓扑结构且 通信设置 启用多线程，这种操作可能带来通信中断的风险。

说明

故障安全设备

如果故障安全 CPU 受到保护，则必须在“CPU 密码”(Password in CPU) 列中输入安全 F-CPU 密码才能通过备份文件恢复故障安全设备。

如果 F-CPU 中的程序是安全程序，则必须确认附加提示并重新选择设备。

SIMATIC Automation Tool 将故障安全设备的“从备份中恢复”(Restore from backup) 请求置于 F-CPU 安全相关的操作队列中。对于与安全相关的操作队列，SIMATIC Automation Tool 仅使用单线程顺序处理。

安全程序的目标设备必须是故障安全 CPU。
警告

从备份文件恢复设备之前，请验证设备当前是否未在运行进程

恢复 CPU 可导致 CPU 切换到 STOP 模式，这可能会影响在线过程或机器的运行。恢复 HMI 将破坏操作员画面上的操作员动作，还可能导致进程中断。

意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

从备份文件恢复设备之前，请验证进程是否可处理中断。
说明

HMI 设备的传送设置（SIMATIC HMI 面板）

要与 HMI 通信，必须将 HMI 设备的“传送设置”(Transfer Settings) 设为 PN/IE 或 Ethernet。必须将 HMI 传输通道的通信设置设为相同设置。

要从备份文件恢复所选设备，请按以下步骤操作：

  1. 单击设备表中的“从备份中恢复”(Restore from Backup) 选项卡。

  2. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  3. 对于每台设备，从“备份文件”(Backup File) 下拉列表中选择备份文件名。该下拉列表将显示备份和恢复文件夹中 .s7pbkp 文件的名称。

    还可使用浏览按钮 [image] 导航至编程设备上包含备份文件的文件夹。选择一个文件以将其添加至下拉列表。如果选择的文件与现有文件名称相同，SIMATIC Automation Tool 将会在新文件名中添加一个数字，以使新文件名唯一。

    对于有效文件，工具提示将显示相关路径和文件名。还会在文件名旁边显示绿色复选标记。

    对于无效文件，工具提示将显示文件错误，该信息在事件日志中也有显示。还会在文件名旁边显示红色 X。

  4. 如果使用密码，则将密码输入“CPU 密码”(Password in CPU) 和“备份文件密码”(Password in File) 列。“从备份中恢复”(Restore from Backup) 是与安全相关的操作，受密码保护的故障安全设备需要使用安全 F-CPU 密码。

  5. 选择“操作 > 备份/恢复 > 恢复设备”(Operations > Backup/Restore > Restore Device) 菜单命令以启动操作。或者，单击“备份/恢复”(Backup/Restore) 工具栏按钮 [image] ，然后在按钮下拉菜单中选择“恢复设备”(Restore Device)。

备份文件验证

在启动恢复操作前，SIMATIC Automation Tool 会对备份文件数据进行有限的数据检查：

  • 对文件扩展名和标题数据进行验证。

  • 如果目标设备不是故障安全 CPU，则无法从包含安全程序的备份文件恢复。

如果备份文件无效，SIMATIC Automation Tool 将在“备份文件”(Backup File) 域中显示一个红色“X”。当光标悬停在该单元格上时，工具提示中还会出现其它错误信息。

恢复操作后的密码处理

如果 CPU 受到密码保护，则必须提供密码才能成功完成通过备份恢复操作。

将备份文件恢复到 CPU 后，新文件可能会有一个密码。如果 CPU 有密码，则恢复的密码可能与之前的密码不同。因此，必须在“备份文件密码”(Password in Backup File) 列中输入第二个密码。完成恢复操作后，第二个密码将变为 CPU 密码。

在恢复操作成功完成后，SIMATIC Automation Tool 会自动将第二个密码（用户输入的“备份文件密码”）复制到 CPU 密码域，然后尝试使用新密码进行连接。SIMATIC Automation Tool 之后会删除第二个密码和备份文件路径。

将备份文件恢复到 CPU 前：

将备份文件恢复到 CPU 后：

如果在“备份文件密码”(Password in Backup File) 列中输入的密码有误且并非实际在恢复的 CPU 数据中组态的密码，则事件日志将在操作完成后显示一条警告消息。在这种情况下，CPU 密码上会显示一个红色“X”图标，表明该密码无效。

F-签名验证

包含安全程序的 TIA Portal 项目具有 F-签名。SIMATIC Automation Tool 用 F-签名来验证程序文件中的数据，从而为安全程序提供附加安全级别。从备份恢复操作完成后，SIMATIC Automation Tool 会将项目文件中的 F-签名与 CPU 设备程序中的当前 F-签名进行比较。

事件日志将报告成功比较结果，内容如下：“CRC 比较的结果，在线和离线集体 F-签名匹配。”(Result of CRC comparison, online and offline collective F-signatures match.)

SIMATIC Automation Tool 将在事件日志中报告失败的比较结果，内容如下：“CRC 比较的结果，在线和离线集体 F-签名不匹配”(Result of CRC comparison, online and offline collective F-signatures do not match)。若比较失败，则应将设备复位为出厂默认值，然后重新进行程序更新。如果无法确定是否加载了正确的安全程序，请勿切换至 RUN 模式。

恢复 CPU 程序对 IP 地址的影响

恢复操作前，CPU 中的 STEP 7 项目在 IP 地址设置方式设备组态中有一项设置。简单来说，该设置是以下设置之一：

  • 在项目中设置 IP 地址（或同等操作）

  • 在设备中直接设置 IP 地址（或同等操作）

所恢复程序的设置可能与 CPU 中当前已有项目的设备组态不同。此外，用户可能已使用 SIMATIC Automation Tool 更新了设备 IP 地址。在这种情况下，用户更新的设备 IP 地址当前位于 CPU 中。

恢复程序后以及后续 CPU 循环上电后的设备 IP 地址取决于新程序中的设置以及当前 IP 地址。下表列出了各种可能的设备 IP 地址。

备份文件中的设备组态 | 从备份恢复后的 IP 地址 | 恢复备份后 CPU 循环上电后的 IP 地址
在项目中设置 IP 地址 | IP 地址是来自新恢复的程序的 IP 地址。 | IP 地址是来自新恢复的程序的 IP 地址。
在设备中直接设置 IP 地址 | IP 地址是恢复程序前设备的 IP 地址。 | IP 地址是恢复程序前设备的 IP 地址。

从备份恢复的示例

该示例显示一台选择设备以及“备份文件”(Backup File) 域中其中一个备份文件选项。对于多台设备，应为每台设备选择一个要恢复的备份文件：

执行“恢复设备”(Restore Device) 操作后，事件日志显示操作的结果。


复位通信参数

复位通信参数

对于 PROFINET 设备，SIMATIC Automation Tool 支持 DCP“复位通信参数”(Reset Communication Parameters) 命令。PROFINET 标准将定义“复位通信参数”(Reset Communication Parameters) 命令，以将设备设置为近似于“内存不足状态”。该命令将复位通信接口和 AR（应用程序关系）的以下特定值：

参数

值

站名称

""（空字符串）

IP 套件参数

0.0.0.0

DHCP 参数（如果可用）

出厂值

P Dev 参数：

  • PD IR 数据

  • PD 端口数据调整

  • PD 接口

  • MRP 数据调整

  • 其它

出厂值

由 SNMP 调整的 MIB-II 参数，例如：

  • sysContact

  • sysName

  • sysLocation

出厂值

要复位 PROFINET 设备的通信参数，请按以下步骤操作：

  1. 在设备表中选择要复位的设备。

  2. 选择“操作 > 复位 > 复位通信参数”(Operations > Reset > Reset Communication Parameters) 菜单命令。

SIMATIC Automation Tool 将“复位通信参数”(Reset Communication Parameters) DCP 命令发送到设备。对于不支持 DCP 复位命令的设备，事件日志会显示一条消息。对于返回错误的设备，事件日志也会显示错误消息。

说明

必须在 STEP 7 设备组态中将 CPU 组态为 IO 设备，从而使 CPU 能够复位通信参数。IO 设备设置位于 STEP 7 设备组态中 PROFINET 接口设置的操作模式组中。


在 CPU 上执行存储器复位

在 CPU 上执行存储器复位

要执行存储器复位，必须拥有 CPU 的写访问权限。

要对所选 CPU 执行存储器复位，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 对于每个选择的 CPU，如果使用密码，则在“CPU 密码”(Password in CPU) 列中输入密码。

  3. 选择“操作 > 复位 > 存储器复位”(Operations > Reset > Memory Reset) 命令以启动操作。或者，单击“复位”(Reset) 工具栏按钮，然后在下拉菜单中选择“存储器复位”(Memory Reset)。

  4. 单击“存储器复位”(Memory Reset) 对话框上的“继续”(Continue) 按钮。

SIMATIC Automation Tool 将在所选设备上执行存储器复位。

设备表下方的事件日志显示此操作的结果。


将设备复位为出厂默认值

将所选设备复位为出厂默认值 将 CPU 复位为出厂默认值对 IP 地址的影响

将设备复位为出厂默认值

将所选设备复位为出厂默认值

可将所选设备复位为出厂默认值，IP 地址除外。设备将保留现有 IP 地址，从而保留网络 IP 分配。

请注意，如果采用链路型通信拓扑结构且 通信设置 启用多线程，这种操作可能带来通信中断的风险。

说明

故障安全设备

如果故障安全 CPU 受到保护，则必须在“CPU 密码”(Password in CPU) 列中输入安全 F-CPU 密码才能将故障安全设备复位为出厂默认值。

如果 F-CPU 中的程序是安全程序，则必须确认附加提示并重新选择设备。

将故障安全设备复位为出厂默认值的请求放置在与安全相关的操作队列中，并且仅允许单线程顺序处理。
警告

在将设备复位为出厂默认值之前，请验证设备当前是否未在运行进程

复位为出厂默认值的操作可导致 CPU 切换到 STOP 模式，这可能会影响在线过程或机器的运行。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

要将所选备复位为出厂默认值，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

    对于每个选择的 CPU，如果使用密码，则在当前打开选项卡的“CPU 密码”(Password in CPU) 列中输入密码。复位为出厂默认值是与安全相关的操作，受密码保护的故障安全设备需要使用安全 F-CPU 密码。

  2. 选择“操作 > 复位 > 复位为出厂默认值”(Operations > Reset > Reset to Factory Defaults) 菜单命令以启动操作。或者，单击“复位”(Reset) 工具栏按钮 [image] ，然后在下拉菜单中选择“复位为出厂默认值”(Reset to Factory Defaults)。

    对于故障安全 CPU，SIMATIC Automation Tool 将显示“程序更新”(Program Update) 对话框以进行进一步确认。选择要复位为出厂默认值的一台、多台或所有设备。

  3. 单击“复位为出厂设置”(Reset to Factory) 对话框上的“继续”(Continue) 按钮。

    SIMATIC Automation Tool 会将所选设备复位为出厂默认值。

说明

“复位为出厂设置”(Reset to Factory) 操作不会清除 SIMATIC SD 存储卡

如果 CPU 中有 SIMATIC 存储卡，则“复位为出厂设置”(Reset to Factory) 操作不会清除相关内容。如果 CPU 中没有 SIMATIC SD 存储卡，则“复位为出厂设置”(Reset to Factory) 会清除 CPU 内部装载存储器中的程序。

设备表下方的事件日志显示操作的结果。

将 CPU 复位为出厂默认值对 IP 地址的影响

将 CPU 复位为出厂默认值之前，CPU 中的 STEP 7 项目在 IP 地址设置方式设备组态中有一项设置。简单来说，该设置是以下设置之一：

  • 在项目中设置 IP 地址（或同等操作）

  • 在设备中直接设置 IP 地址（或同等操作）

此外，用户可能已使用 SIMATIC Automation Tool 更新了设备 IP 地址。在这种情况下，用户更新的设备 IP 地址当前位于 CPU 中。

将 CPU 复位为出厂默认值后以及后续 CPU 循环上电后的 IP 地址取决于多种因素。下表列出了各种可能的设备 IP 地址。

CPU 中的 IP 地址 | CPU 是否有 SD 卡？ | 程序更新后的 IP 地址 | 复位为出厂默认值后 CPU 循环上电后的 IP 地址
设备组态：在项目中设置 IP 地址 | 是 | IP 地址是来自 SD 存储卡上的项目的 IP 地址。 | IP 地址是来自 SD 存储卡上的项目的 IP 地址。
 | 否 | IP 地址是复位为出厂默认值之前设备的 IP 地址。 | IP 地址是复位为出厂默认值之前设备的 IP 地址。
临时 IP 地址，例如，来自设置 IP 地址操作的 IP 地址 | 是 | IP 地址是来自 SD 存储卡上的项目的 IP 地址。 | IP 地址是来自 SD 存储卡上的项目的 IP 地址。
 | 否 | IP 地址是复位为出厂默认值之前设备的 IP 地址。 | IP 地址是复位为出厂默认值之前设备的 IP 地址。
设备组态：在设备中直接设置 IP 地址 | 不适用 | IP 地址是复位为出厂默认值之前设备的 IP 地址。 | IP 地址是复位为出厂默认值之前设备的 IP 地址。


格式化存储卡

格式化存储卡

SIMATIC SD 存储卡可插入 SIMATIC 设备并支持各种用途。根据设备类型或设备系列的不同，存储卡可用于以下各种用途：

  • CPU 的装载存储器

  • 项目的存储介质

  • 固件备份和更新

  • PROFINET 设备名称的存储介质

  • 将项目从一台设备传送到另一台设备

  • 其它文件

说明

只能使用西门子软件来格式化 SIMATIC 存储卡

如果将 SIMATIC 存储卡用于非 SIMATIC 用途或者对其进行错误格式化，则将覆盖 SIMATIC 存储卡的内部结构。此结构不可恢复，并且 SIMATIC 存储卡对于 SIMATIC 设备变得不可用。

不得将 SIMATIC 存储卡用于与 SIMATIC 不相关的用途，且不得使用第三方设备或 Windows 工具对 SIMATIC 存储卡进行格式化。

请注意，如果采用链路型通信拓扑结构且 通信设置 启用多线程，这种操作可能带来通信中断的风险。

警告

在格式化存储卡之前，请验证设备当前是否未在运行进程

格式化存储卡会导致 CPU 切换到 STOP 模式，这可能会影响在线操作或机器的运行。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

要格式化所选设备上的 SIMATIC 存储卡，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 对于每个选定的 CPU，应确保存储卡已插入 CPU 中，且 CPU 将该存储卡用作外部装载存储器。

  3. 如果使用密码，请在每个选定 CPU 的“CPU 密码”(Password in CPU) 列中输入密码。

  4. 选择“操作 > 复位 > 格式化存储卡”(Operations > Reset > Format Memory Card) 命令以启动操作。或者，单击“复位”(Reset) 工具栏按钮，然后在按钮下拉菜单中选择“格式化存储卡”(Format Memory Card)。

  5. 单击“格式化存储卡”(Format Memory Card) 对话框上的“继续”(Continue) 按钮。

SIMATIC Automation Tool 将格式化所选设备的存储卡。查看事件日志了解操作的结果。如有必要，可在格式化操作后查看诊断缓冲区获取 CPU 诊断结果。有关设备特定的问题，请参考设备的用户文档。

说明

故障安全设备

如果故障安全 CPU 受到保护，则必须在“CPU 密码”(Password in CPU) 列中输入安全 F-CPU 密码才能将故障安全设备中的 SIMATIC 存储卡格式化。

如果 F-CPU 中的程序是安全程序，则必须确认附加提示并重新选择设备。

对于故障安全设备，SIMATIC Automation Tool 将格式化存储卡请求放置在与安全相关的操作队列中，并且仅允许单线程顺序处理。

在此示例中，单击“继续”(Continue) 按钮后，SIMATIC Automation Tool 将格式化所选设备的存储卡。

设备表下方的事件日志显示此操作的结果。

格式化存储卡对设备 IP 地址没有影响。


检索 CPU 中的服务数据

服务数据文件

检索 CPU 中的服务数据

如果 CPU 进入故障状态，则将保存故障信息，该信息可上传至编程设备。可将此服务数据发送到西门子客户支持网站以进行诊断。

CPU 处于 STOP 或 RUN 模式时，可对服务数据进行检索。服务数据包含多个文件，这些文件压缩成单个 .zip 文件，文件名依据 PLC 名称和 MAC 地址进行设定。为避免文件名重复，文件名后用括号括上一个唯一编号。

可通过 服务数据设置 组态或接受默认服务数据路径。

要检索所选 CPU 中的服务数据，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 对于每个选择的 CPU，如果使用密码，则在当前打开选项卡的“CPU 密码”(Password in CPU) 列中输入密码。

  3. 选择“操作 > 诊断 > 检索服务数据”(Operations > Diagnostics > Retrieve Service Data) 命令以启动操作。或者，单击“显示设备诊断”(Show device diagnostics) 工具栏按钮 [image] ，然后在按钮下拉菜单中选择“检索服务数据”(Retrieve Service Data)。

  4. 单击“上传服务数据”(Upload Service Data) 对话框上的“继续”(Continue) 按钮。

SIMATIC Automation Tool 将检索所选 CPU 中的服务数据，并将相关文件存储在服务数据文件夹中。

示例：

单击“继续”(Continue) 按钮后，SIMATIC Automation Tool 将检索所选设备的服务数据。

设备表下方的事件日志显示操作的结果。

服务数据文件

说明

检索受密码保护 CPU 中的服务数据文件

如果 CPU 受密码保护，则必须提供一个带有读取访问或完全访问权限的密码，才能检索服务数据文件。在执行“检索服务数据”(Retrieve Service Data) 命令前，请在 SIMATIC Automation Tool 的“CPU 密码”(Password in CPU) 列中输入 CPU 密码。

S7-1200 服务数据文件的示例：PLC_1 00-1C-06-13-58-10.zip

.zip 文件的内容：

  • ResourceStats.txt

  • RAM.img

  • PLCInformation.txt

  • NAND.img

  • General.txt

  • Fault.bin

  • Fault2.bin

  • DNN.txt

  • CommBuffers.txt

  • ASLog.txt

  • Alarms.txt

S7‑1500 服务数据文件都很类似。包含上述文件的子集。

警告

服务数据为纯文本

恶意用户可以读取服务数据文件，以获取有关控制系统状态和组态的详细信息。CPU 将服务数据存储在未加密的纯文本（二进制编码）中。CPU 密码可以控制对此信息的访问。

使用损坏的数据操作过程或机器可能会影响在线过程或机器的运行。意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

使用 TIA Portal 设备组态功能，设置带有强密码的 CPU 保护。强密码在长度上至少为十个字符，可以是字母、数字和特殊字符的组合，不能是可在字典上找到的词，并且不能是可从个人信息推断出的名字或标识符。保管好密码并经常更改密码。


将 CPU 中的时间设置为编程设备时间

将 CPU 中的时间设置为编程设备时间

“时间”(Time) 按钮可将所选 CPU 的时间设置为编程设备的时间。时区和夏令时时间的时间转换信息不会更改，必须在 TIA Portal 项目中进行修改。

警告

更改当日的 CPU 时间可能中断过程操作

更改当日的 CPU 时间可能导致基于当日时间执行程序逻辑的 STEP 7 程序的进程中断。

意外的过程操作或机器操作可能会导致死亡、人身伤害和/或财产损失。

请确保更改当日时间不会对 STEP 7 程序带来不必要的影响。

要设置 CPU 时间，必须拥有 CPU 的写访问权限。

要将 CPU 时间设置为编程设备时间，请按以下步骤操作：

  1. 选择一台或多台设备加入操作。可使用设备表顶部的“设备”(Devices) 复选框来选择或取消选择所有设备。或者，可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单命令来访问“全部选择”(Select All) 和“全部取消选择”(Deselect All) 命令。

  2. 对于每个选择的 CPU，如果使用密码，则在当前打开选项卡的“CPU 密码”(Password in CPU) 列中输入密码。

  3. 选择“操作 > 设置时间”(Operations > Set Time) 菜单命令或单击“设置所选设备时间”(Set the selected devices time) 工具栏按钮：

  4. 单击“设置时间”(Set Time) 对话框上的“继续”(Continue) 按钮。

SIMATIC Automation Tool 会将所选设备的系统时间设置为当前编程设备的时间。

设备表下方的事件日志显示此操作的结果。


显示诊断缓冲区

诊断缓冲区示例
通信设置
启动 返回 继续

显示诊断缓冲区

CPU 诊断缓冲区包含每个诊断事件的条目。每个条目都包含了事件发生的日期和时间、事件类别及事件描述。诊断缓冲区按时间顺序显示条目，最新发生的事件位于最上面。日志填满后，新事件将替换日志中最早的事件。掉电时，将保存事件。

要显示 CPU 的诊断缓冲区，必须具有 CPU 的“读访问”(Read access) 或“完全访问”(Full access) 权限。

要显示设备诊断，请按以下步骤操作：

  1. 在设备表中选择一个或多个 CPU。如果要先取消选择所有设备，可在设备表顶部的“设备”(Device) 复选框取消选择。或者，还可使用右键单击快捷菜单或“编辑 > 选择”(Edit > Select) 菜单来访问“全部取消选择”(Deselect All) 命令。

  2. 对于每个选择的 CPU，如果使用密码，则在当前打开选项卡的“CPU 密码”(Password in CPU) 列中输入密码。

  3. 选择“操作 > 诊断 > 显示诊断”(Operations > Diagnostics > Show Diagnostics) 菜单命令。或者，单击“显示设备诊断”(Show device diagnostics) 工具栏按钮 [image] ，然后在按钮下拉菜单中选择“显示诊断”(Show Diagnostics)。

SIMATIC Automation Tool 之后将显示一个带有所选 CPU 诊断缓冲区的对话框。可在左侧的设备列表中选择 CPU，以查看 CPU 的诊断缓冲区。

说明

诊断缓冲区按事件发生顺序显示事件，而与事件的日期和时间无关。将 CPU 时间设置为过去时间不会影响事件顺序。

诊断缓冲区示例

诊断缓冲区包含以下条目类型：

  • 系统诊断事件（每个 CPU 错误和模块错误）

  • CPU 状态切换（每次上电、切换到 STOP 模式、切换到 RUN 模式）

可使用“显示 PG/PC 本地时间中的设备时间戳”(Display device Time Stamp in PG/PC local time) 对话框，查看本地时间或 UTC 时间（协调通用时间）中的时间戳。


显示设备参考

显示设备参考

对于设备目录中的任何顶层设备或 PROFINET IO 系统中的任何设备，可显示对设备的所有参考信息。SIMATIC Automation Tool 提供“显示参考信息”(Show References) 菜单命令。当选择顶层设备或 PROFINET IO 系统中的设备时，该菜单命令可通过编辑菜单或设备表快捷菜单进行访问。

当选择“显示参考信息”(Show References) 时，SIMATIC Automation Tool 将基于设备序列号显示所选设备的所有参考信息。如有必要，SIMATIC Automation Tool 将在必要时展开设备行以显示设备参考信息：


复制和粘贴至多个设备表单元格

如何使用快速复制和粘贴功能 使用递增值复制和粘贴

复制和粘贴至多个设备表单元格

借助 SIMATIC Automation Tool，可轻松将一个单元格的内容复制到同一列的多个单元格中。例如，若要在同类型的多台设备中更新固件，可一次选择“新固件版本”(New Firmware Version) 文件，然后通过拖放将选择内容复制到其它设备的“新固件版本”(New Firmware Version) 单元格。

这种快速复制和粘贴功能可作为列中的编辑操作使用。不必在多个单元格中重复复制。与 Microsoft Excel 类似，可通过拖动鼠标指针选择多个单元格来多选要粘贴到的单元格。SIMATIC Automation Tool 将识别对于粘贴操作有效或无效的单元格。SIMATIC Automation Tool 仅将复制的内容粘贴到有效的单元格中。

快速复制和粘贴功能适用于设备表中的所有用户条目列。

如何使用快速复制和粘贴功能

假设存在多个同类型的 CPU（例如很多 S7-1200 1215C DC/DC/DC CPU）。如果要将所有这些 CPU 的固件版本更新至 V04.02.00，同时固件更新文件夹中有相关文件。并且设备表中还有其它类型的 CPU。无需将新固件版本手动复制到所有 S7-1200 1215C DC/DC/DC CPU 并跳过其它设备。

在此示例中，要将所选单元格复制到多个单元格，请按以下步骤操作：

  1. 为其中一个 S7-1200 1215C DC/DC/DC CPU 选择新固件版本，可能是列表中的第一个 CPU。

  2. 当 SIMATIC Automation Tool 显示该选择有效后，请单击“新固件版本”(New Firmware Version) 单元格。SIMATIC Automation Tool 将显示该单元格的聚焦框。该单元格是复制操作的源单元格：

  3. 将聚焦框的右下角拖过“新固件版本”(New Firmware Version) 列。如 Microsoft Excel 一样，SIMATIC Automation Tool 将显示新聚焦框中包含的单元格。如果进行选择，则可选择整个列或仅仅几个单元格：

  4. 松开鼠标左键可将选择内容复制到新聚焦框中的所有单元格，原始选择内容对此有效。在此示例中，SIMATIC Automation Tool 将新固件版本 V04.02.00 单元格复制到对应于 S7-1200 1215C DC/DC/DC CPU 的单元格中。SIMATIC Automation Tool 只能复制到同一类型的 CPU 以及固件更新有效的 CPU 中：

可在设备表的所有用户可编辑列中使用快速复制和粘贴技巧。这种技巧可节省时间，适用于将一个选择内容复制到多个位置的许多操作中，例如：

  • 设备选择

  • 备份文件

  • 注释

  • 固件更新

  • 网关

  • 密码（CPU 和程序文件）

  • 程序更新

  • 配方

  • 子网

使用递增值复制和粘贴

对于新的 IP 地址和新的 PROFINET 名称，粘贴到目标单元格时，复制和粘贴功能会增加复制的文本：

  • 对于新的 IP 地址，粘贴的单元格中各地址的增量为 1 (+ 1)。

  • 对于新的 PROFINET 名称，SIMATIC Automation Tool 将复制新的 PROFINET 名称，并为粘贴的单元格中的各名称添加一个数字增量。

说明

隐藏的单元格

如果折叠了一个或多个可扩展的单元格行，进行粘贴操作时，会粘贴到隐藏的单元格中。展开折叠的行时，可以看到粘贴的内容。


操作的执行顺序

执行示例

操作的执行顺序

很多 SIMATIC Automation Tool 菜单命令或工具栏操作会生成诊断缓冲区条目。对于每个工具栏按钮命令，SIMATIC Automation Tool 会向每个所选设备行的操作队列中添加一个单操作。例如，当选择 20 个不同的 CPU 并单击 RUN 按钮时，SIMATIC Automation Tool 将向队列中添加 20 个 RUN 操作。

为了获得更好的性能，可分别运行单独线程以启动和执行队列中的操作。可在 通信设置 中分配同时操作的数量。单独线程不能在一个 CPU 上同时启动多个作业，以避免发生紊乱。例如，当一个作业试图将 CPU 置于 RUN 模式时，另一个作业不能将 CPU 置于 STOP 模式。

执行示例

示例 1：

如果操作序列包含 10 个不同 CPU 的“切换至 RUN 模式”(go to RUN) 作业，则多个线程将并行操作以将所有 CPU 置于 RUN 模式。由于线程并行操作，因此无法保证 CPU 完成 RUN 模式切换的顺序。每个 CPU 的通信速度可能各不相同。每个 CPU 完成作业的时间长度也可能有所不同。

示例 2：

可按所需数量排列相同类型的作业。例如，可选择全部 100 个 CPU 并单击 STOP 按钮，将 100 个 CPU 置于 STOP 模式。SIMATIC Automation Tool 将显示一个带有进度条的对话框，直到完成全部 100 个作业。SIMATIC Automation Tool 将阻止其它操作，直到所有 STOP 操作完成。


管理项目文件

管理项目文件

该章节包括以下主题的信息:
  • 创建、保存和打开 .sat 项目文件
  • 从 SIMATIC Automation Tool 导出信息


创建、保存和打开 .sat 项目文件

创建一个新项目文件 保存项目文件 打开项目文件 保存和打开项目文件的指导原则 将 .sat 项目文件在编程设备间传送时的注意事项 SIMATIC Automation Tool .sat 文件安全 密码验证 项目文件与之前版本的兼容性
启动 返回 继续

创建、保存和打开 .sat 项目文件

创建一个新项目文件

要使用空设备表创建新项目文件，请使用“文件 > 新建”(File > New) 菜单命令。

保存项目文件

使用“文件 > 保存”(File > Save) 或“文件 > 另存为”(File > Save as) 菜单命令或单击“保存”(Save) 按钮 [image] ，将项目存储到加密 .sat 项目文件中。此项目文件包含设备表信息。项目文件不会保存设备操作模式、选择状态或确认选择状态数据。

打开项目文件

将 SIMATIC Automation Tool 项目保存后，可使用“文件 > 打开”(File > Open) 菜单命令或“打开”(Open) 按钮 [image] 恢复此项目的设备表信息。可使用“刷新”(Refresh) 命令读取操作模式状态。

保存和打开项目文件的指导原则

保存和打开项目文件时，请注意以下指导原则：

  • 项目设置确定用于保存 .sat 项目文件的文件夹。

  • 提供的密码必须有效，否则无法保存 SIMATIC Automation Tool .sat 项目文件。

  • 输入的密码必须正确，否则无法重新打开现有的 SIMATIC Automation Tool .sat 项目文件。

将 .sat 项目文件在编程设备间传送时的注意事项

可以将 SIMATIC Automation Tool 项目保存在一台编程设备上，然后将其传送到另一台计算机上并打开。但是，.sat 项目文件仅包含设备表和选项菜单中的组态设置。选项菜单设置包含多种类型操作的文件夹位置。执行以下设备操作时，必须将这些文件夹中的文件从源编程设备传送到目标编程设备：

  • 固件更新：要使固件更新文件在目标编程设备上可用，必须传送固件更新文件夹。

  • 程序更新：要使程序更新文件在目标编程设备上可用，必须传送程序更新文件夹。

  • 服务数据：要访问之前检索的服务数据，必须传送服务数据文件夹。

  • 备份/恢复：要使源编程设备中的备份文件可从目标编程设备恢复，必须传送备份和恢复文件夹。

  • 配方：要使配方文件可从目标编程设备上下载，必须传送配方文件夹。

  • 数据日志：要访问之前检索的数据日志，必须传送数据日志文件夹。

  • 事件日志：如果已保存了事件日志，并希望在目标编程设备上可用，则必须传送事件日志文件夹。

  • 导出：要从 SIMATIC Automation Tool 导出的设备表文件中复制，必须传送导出文件夹。

  • SNMP 配置文件：要使 SCALANCE 设备的 SNMP 配置文件在目标编程设备上可用，必须传送 SNMP 配置文件文件夹。

SIMATIC Automation Tool .sat 文件安全

必须使用密码保护项目安全。西门子建议使用强密码保护 SIMATIC Automation Tool 项目安全。强密码遵循以下规则：

  • 长度至少为十个字符

  • 字母、数字和特殊字符混合使用

  • 大写字母和小写字母混合使用

  • 无法在字典中找到使用的词

  • 不能是可从个人信息推断出的名字或标识符

保管好密码并经常更改密码。

必须输入项目密码才能打开 .sat 文件。

密码验证

创建项目密码时，如果存在以下任一情况，SIMATIC Automation Tool 会指示密码强度较弱：

  • 密码长度短于十个字符

  • 密码不包含以下各项中的至少一项：

    • 大写字母

    • 小写字母

    • 数字

    • 特殊字符

项目文件与之前版本的兼容性

可使用 SIMATIC Automation Tool V3.1 SP4 打开 V3.1 或更高版本的项目文件，且不会丢失数据。

SIMATIC Automation Tool V3.1 及更高版本支持 V3.0 及更低版本中禁止的安全相关操作。V3.0 及更低版本的 .sat 项目文件不包含项目文件中的安全数据。打开 V2.x - V3.0 项目文件时，SIMATIC Automation Tool 会通知用户必须执行网络扫描。扫描完成后，SIMATIC Automation Tool 将打开项目文件，并将项目文件数据应用于网络扫描发现的设备。

无法打开 V1.x 项目文件。

无法使用早期版本的 SIMATIC Automation Tool 打开 V3.1 SP4 项目。


从 SIMATIC Automation Tool 导出信息

从 SIMATIC Automation Tool 导出信息

该章节包括以下主题的信息:
  • 从 SIMATIC Automation Tool 导出信息
  • 导出设备信息
  • 导出设备诊断
  • 导出 PC 数据


从 SIMATIC Automation Tool 导出信息

从 SIMATIC Automation Tool 导出信息

SIMATIC Automation Tool 提供菜单命令来导出以下类型的信息：

  • 设备表中的设备信息

  • 设备诊断

  • PC 数据：

    • 有关用于运行 SIMATIC Automation Tool 的编程设备的信息

    • 编程设备上安装的西门子应用程序的相关信息

对于设备信息和设备诊断，可以选择是导出所有设备的数据，还是导出所选设备的数据。SIMATIC Automation Tool 以 .csv 格式保存数据。

与以前版本的 SIMATIC Automation Tool 不同，不再有“填入导出文件的设备表”的导入命令。由于导出的设备信息文件十分灵活且可自定义，因此可以使用复制和粘贴操作将导出的设备信息恢复到设备表。

用于导出的菜单命令如下：

  • “文件 > 导出 > 设备信息 > 所有设备”(File > Export > Device Information > All Devices)：将整个设备表保存到 .csv 文件中。

  • “文件 > 导出 > 设备信息 > 所有选定设备”(File > Export > Device Information > All Selected Devices)：将选定设备的设备表保存到 .csv 文件中

  • “文件 > 导出 > 设备诊断 > 所有设备”(File > Export > Device Diagnostics > All Devices)：将所有合格设备的诊断缓冲区数据保存到 .csv 文件中。目前，CPU 设备支持导出设备诊断。

  • “文件 > 导出 > 设备诊断 > 所有选定设备”(File > Export > Device Diagnostics > All Selected Devices)：将选定合格设备的诊断缓冲区数据保存到 .csv 文件中。

  • “文件 > 导出 > PC 数据 > 本地 PC”(File > Export > PC Data > Local PC)：将有关操作系统、处理器、内存、安装的 Siemens 应用程序的信息和其它系统信息保存到 .zip 文件中。


导出设备信息

设备信息 .csv 文件的格式 使用复制和粘贴作为导出的替代方法 设备信息导出示例 网络和导出的 .csv 文件之间的 IP 地址冲突
启动 返回 继续

导出设备信息

导出设备信息时，SIMATIC Automation Tool 将创建并保存一个 .csv 文件，该文件表示设备表中的当前数据。SIMATIC Automation Tool 不会重新扫描网络或刷新网络。导出信息包含设备表中的当前数据。

要导出设备信息，请选择以下菜单项之一：

  • “文件 > 导出 > 设备信息 > 所有设备”(File > Export > Device Information > All Devices)

  • “文件 > 导出 > 设备信息 > 所有选定设备”(File > Export > Device Information > All Selected Devices)

.csv 文件中的行对应于设备、本地模块文件夹和分布式 I/O 文件夹（如果存在这些文件夹）。在每种类型的行中，列标题会引导您找到行中数据的类型。

导出设置 提供了导出设备表的文件路径。

出于安全原因，SIMATIC Automation Tool 不会导出 CPU 密码。

可以在 Microsoft Excel 或文本编辑器中打开和编辑 .csv 文件。要将编辑后的文件内容复制到 SIMATIC Automation Tool 中，必须保持设备表格式。SIMATIC Automation Tool 中的设备表包含通信组态数据。如果在设备表的单元格中输入了错误信息，设备操作可能会失败。更正设备数据并再次尝试操作。

设备信息 .csv 文件的格式

设备信息 .csv 文件的格式对应于设备表的结构。设备信息文件使用以下结构：

  • 标题行：第一行是标题行，其中包含来自设备表的列标题名称：

    • 设备

    • 插槽

    • 设备类型

    • 产品编号

    • 序列号

    • 固件版本

    • 硬件

    • MAC 地址

    • IP 地址

    • 子网

    • 网关

    • PROFINET 名称

    • PROFINET 转换名称

  • 设备行：设备表中的每个设备出现在 .csv 文件的某一行中，每列中都有其设备数据。所有 SIMATIC Automation Tool 设备表列都在导出的 .csv 文件中。如果在 SIMATIC Automation Tool 中隐藏列，则与隐藏列对应的数据仍然显示在 .csv 文件中。在 SIMATIC Automation Tool 中隐藏列对 .csv 文件内容无影响。

  • 本地模块文件夹行：如果设备具有本地模块，.csv 包含具有以下列标题的本地模块行：

    • 设备

    • 插槽

    • 设备类型

    • 产品编号

    • 序列号

    • 固件版本

    • 硬件

  • 本地模块行：每个本地模块都显示在 .csv 文件中，每个列中都有其模块数据。若 SIMATIC Automation Tool 能够读取模块数据且数据在设备表中可见，则模块数据在文件中可用。

  • 分布式 I/O 标题：带有“分布式 I/O”标签的行表示以下行代表分布式 I/O 模块。

  • 分布式 I/O 系统文件夹标题：分布式 I/O 系统的行包含分布式 I/O 系统的名称和以下列标题名称：

    • 设备

    • 插槽

    • 设备类型

    • 产品编号

    • 序列号

    • 固件版本

    • 硬件

  • 分布式 I/O 设备行标题：分布式 I/O 系统中的单个设备出现在一行中且设备数据在相应的列中。若 SIMATIC Automation Tool 能够读取设备数据且数据在设备表中可见，则分布式 I/O 设备数据在文件中可用。

  • 分布式 I/O 模块行：每个分布式 I/O 设备的每个模块出现在一行中且设备数据在相应的列中。若 SIMATIC Automation Tool 能够读取模块数据且数据在设备表中可见，则模块数据在文件中可用。

设备信息导出不包括 CPU 中的数据日志或配方。

说明

CPU 保护和密码

对于设备表中的受保护 CPU，如果设备表包含具有读访问级别或更高级别的 CPU 密码，SIMATIC Automation Tool 只导出本地模块和分布式 I/O 信息。

使用复制和粘贴作为导出的替代方法

说明

在设备表和 Microsoft Excel 之间复制

可以将选定的单元格从设备表复制并粘贴到 Microsoft Excel 文件中：

  1. 使用“编辑 > 展开 > 所有设备”(Edit > Expand > All Devices) 菜单命令，展开设备表的所有行。

  2. 选择 Ctrl+A 突出显示所有行和列，或进行拖动以选择单元格的范围。

  3. 选择 Ctrl+C，将设备表数据复制到 Windows 剪贴板。

  4. 选择 Ctrl+V，将剪贴板数据粘贴到 Microsoft Excel 工作表中。

“导出”(Export) 功能允许您以可读格式复制所有或选定的设备。从设备表进行复制并非必需操作，但该操作可以实现。例如，可以使用复制和粘贴操作来修改用户输入的设备信息。

设备信息导出示例

在 Microsoft Excel 中打开导出的设备信息文件时，列的宽度是固定的。

要扩展列宽以使其可读，请按以下步骤操作：

  1. 单击第 1 行和第 A 列之间左上角的小三角形，选择整个工作表。

  2. 在 Microsoft Excel 的列行上，在任意两列之间进行双击以扩展列宽。例如，双击 A 和 B 之间的列分隔符。

以下图像显示了在 Microsoft Excel 中打开的设备信息的导出且列宽已扩展：

可以编辑 Microsoft Excel 文件中的数据。还可以进行缩放，使内容更加清晰易读。如果添加或删除行，请确保保持格式和层级。当将单元格复制到 SIMATIC Automation Tool 设备表时，请按照以下步骤显示所有设备和文件：

  1. 将所需的单元格范围从 Microsoft Excel 复制并粘贴到设备表。

  2. 在 SIMATIC Automation Tool 中，重新输入受保护的 CPU 的密码。

  3. 选中设备表中的所有设备。

  4. 使用“操作 > 扫描网络 > 刷新所有选定设备的状态”(Operations > Scan Network > Refresh Status of All Selected Devices) 菜单命令刷新设备表。还可从工具栏按钮运行此指令。

说明

在 Microsoft 记事本或 Microsoft Excel 中显示 .csv 文件

由于字符集不同，Microsoft 记事本和 Microsoft Excel 可能无法正确显示 .csv 文件中的字符。使用 Unicode (UTF-8) 字符集打开文件，查看以您所用语言中可能不可见的字符。无论标题文本如何显示，都可以导出项目文件并将导出文件的内容复制到 SIMATIC Automation Tool。

网络和导出的 .csv 文件之间的 IP 地址冲突

可以在 Microsoft Excel 中打开导出的 .csv 文件。然后，可以将设备数据从 Microsoft Excel 复制并粘贴到 SIMATIC Automation Tool 设备表中。复制的数据可能包括带有 IP 地址的设备，并且与当前网络上其他设备的 IP 地址相同。但是，设备表显示当前位于该 IP 地址的网络上的设备。

请注意如下情况：

  • 在当前网络中，有一个名称为“PLC_1”的 S7-1200 CPU 位于 IP 地址 X1:192.168.2.202 处。

  • 从此前导出的设备信息 .csv 文件复制设备数据，该文件包含以下行：

  • 可以将复制的数据粘贴到 SIMATIC Automation Tool 设备表中。

  • 事件日志报告设备 SCALANCE-202 的操作已成功完成。

  • 设备表会在 IP 地址 X1：192.168.2.202 处显示“PLC_1”，而不是“SCALANCE-202”。设备表包含对应于 PLC_1 的所有域。

结果：当存在 IP 地址冲突时，从 .csv 文件复制和粘贴不会覆盖当前位于网络中的设备的设备数据。


导出设备诊断

设备诊断 .csv 文件的格式

导出设备诊断

导出设备诊断时，SIMATIC Automation Tool 将创建并保存一个 .csv 文件，该文件包含 CPU 诊断缓冲区。

要导出 CPU 设备诊断，请选择以下菜单项之一：

  • “文件 > 导出 > 设备信息 > 所有设备”(File > Export > Device Information > All Devices)

  • “文件 > 导出 > 设备信息 > 所有选定设备”(File > Export > Device Information > All Selected Devices)

设备诊断 .csv 文件的格式

导出设备的诊断缓冲区位于单个 .csv 文件中。标题行将一个设备的诊断缓冲区的末尾与另一个设备的诊断缓冲区的开头分开。

每个设备都以带有以下列标题的标题行开头：

  • 设备

  • 日期

  • 时间

  • 事件类型

  • 事件

  • 事件说明

诊断缓冲区事件占据文件的之后几行，并包含设备当前诊断缓冲区中的所有事件。

下一个设备以新的标题行开始。该设备的诊断缓冲区事件占据随后的连续几行。该文件继续包含所有设备或所有选定的设备，具体取决于您的选择。

说明

从大型设备表导出设备诊断可能需要很长时间。SIMATIC Automation Tool 显示导出过程的进度条。可以取消正在进行的导出操作。


导出 PC 数据

导出 PC 数据

SIMATIC Automation Tool 可以导出 PC 和文件的相关数据，协助故障排除。当导出 PC 数据时，SIMATIC Automation Tool 将创建并保存一个 .zip 文件，其中包含有关运行 SIMATIC Automation Tool 的编程设备的详细信息。在遇到问题时，您可以按照西门子的要求向其提供此信息。

要导出 PC 数据，选择“文件 > 导出 > PC 数据 > 本地 PC”(File > Export > PC Data > Local PC) 菜单命令。SIMATIC Automation Tool 将 PC 数据 .zip 文件保存到“导出”文件夹中。


菜单、工具栏、键盘快捷键和参考信息

菜单、工具栏、键盘快捷键和参考信息

该章节包括以下主题的信息:
  • 主菜单
  • 工具栏图标
  • 键盘快捷键
  • 安全程序定义
  • SIMATIC Automation Tool 程序故障


主菜单

主菜单

该章节包括以下主题的信息:
  • 主菜单
  • 文件菜单
  • 编辑菜单
  • 操作菜单
  • 选项菜单
  • 工具菜单
  • 帮助菜单


主菜单

主菜单

SIMATIC Automation Tool 支持通过以下菜单进行设备操作。

  • 文件

  • 编辑

  • 操作

  • 选项

  • 工具

  • 帮助

按下 Alt 键后，带下划线的字母表示可用于激活菜单或子菜单命令的 Alt 键。

此外，还可以使用快捷键组合激活某些菜单命令。


文件菜单

文件菜单

工具
图标

菜单命令

说明

“新建”(New)

创建新的 SIMATIC Automation Tool 项目。

“打开”(Open)

显示“打开”(Open) 对话框，可在其中浏览至文件夹，选择 .sat 项目文件，并提供密码以打开受保护的项目文件。“打开”(Open) 对话框显示项目文件夹，但可浏览至项目的任何位置。

“保存”(Save)

将设备表数据保存在 .sat 文件中。如果没有文件名，则此操作使用“另存为”(Save As) 命令。项目文件夹是保存项目的默认文件夹。

“另存为”(Save As)

将设备表数据保存在 .sat 文件中。可浏览至文件夹，提供 .sat 项目文件名，并指定密码以保护项目文件安全。

导出

  • “设备信息”(Device Information)

    • “所有选中设备”(All Selected Devices)

将所选设备（包括本地模块和分布式 I/O）的设备表保存到 .csv 文件中。

  • “设备信息”(Device Information)

    • “所有设备”(All Devices)

将所有设备（包括本地模块和分布式 I/O）的设备表保存到 .csv 文件中。

  • “设备诊断”(Device Diagnostics)

    • “所有选中设备”(All Selected Devices)

将选定设备的诊断缓冲区数据保存到 .csv 文件中。

  • “设备诊断”(Device Diagnostics)

    • “所有设备”(All Devices)

将所有设备的诊断缓冲区数据保存到 .csv 文件中。

  • “PC 数据”(PC Data)

    • “本地 PC”(Local PC)

将本地编程设备的 PC 数据保存到 .zip 文件中。

“退出”(Exit)

关闭应用程序。如果项目在上次保存操作后发生了更改，可使用 SIMATIC Automation Tool 保存项目。


编辑菜单

编辑菜单

工具
图标

菜单
命令

说明

“剪切”(Cut)

将选中数据剪切并复制到剪贴板。剪贴板条目与 Microsoft Excel 兼容，因此可以在两个应用程序之间共享数据。只读单元格不会被删除。

“复制”(Copy)

将选中数据以 Microsoft Excel 兼容格式复制到剪贴板。

“粘贴”(Paste)

将剪贴板中的数据粘贴到 SIMATIC Automation Tool 的选中域。只读单元格不会被修改。

“选择”(Select)

  • “选择行”(Select Row(s))

选择已选中的设备表行。

  • “取消选中行”(Deselect Row(s))

取消选择已选中的设备表行。

“展开”(Expand)

  • “设备”(Device)

展开当前设备。

  • “所有选中设备”(All Selected Devices)

展开所有选中设备。

  • “所有设备”(All Devices)

展开设备和模块的所有行。

“折叠”(Collapse)

  • “设备”(Device)

折叠当前设备。

  • “所有选中设备”(All Selected Devices)

折叠所有选中设备。

  • “所有设备”(All Devices)

折叠设备和模块的所有行。

“插入”(Insert)

  • “设备”(Device)

在所选行中插入新设备行，同时向下移动后面的设备行。可以使用此命令将设备快速添加到设备表。如果使用此命令插入路由器后面设备，则设备名称将显示为蓝色。蓝色表示无法进行基于 MAC 地址的操作（识别设备、设置 IP 地址和设置 PROFINET 名称），并会禁用相应的设备表单元格。

“删除”(Delete)

  • “单元格文本”(Cell Text)

删除当前单元格的内容。

  • “设备”(Device)

删除当前设备行的内容。

  • “所有选中设备”(All Selected Devices)

删除所有选中设备的内容。

  • “所有设备”(All Devices)

删除所有设备行的内容。

“刷新”(Refresh)

  • “设备”(Device)

刷新当前设备。

  • “所有选中设备”(All Selected Devices)

刷新所有选中设备。

  • “所有设备”(All Devices)

刷新所有设备。

“显示参考”(Show References)

在所选设备的设备表中，突出显示所有参考。

所选设备必须是设备表中的顶层设备，或 PROFINET IO 系统中的设备。


操作菜单

操作菜单

工具
图标

菜单
命令

说明

“扫描网络”(Scan Network)

  • “扫描整个网络”(Scan Entire Network)

扫描设备网络。

  • “刷新所有选定设备的状态”(Refresh Status of Selected Devices)

刷新设备表中的所选设备。

RUN

将所选 CPU 置于 RUN 模式下。

STOP

将所选 CPU 置于 STOP 模式下。

“更新”(Update)

  • “设置 IP 地址”(Set IP Address)

使用所选设备的 IP 地址信息更新 CPU。

  • “设置 PROFINET 名称”(Set PROFINET Name)

使用所选设备的 PROFINET 名称更新 CPU。

  • “程序更新”(Program Update)

更新所选设备的 CPU 程序或 HMI 操作系统和运行系统软件。

  • “固件更新”(Firmware Update)

更新所选设备的固件。

“识别”(Identify)

使设备上的 LED 或 HMI 画面闪烁。

使用此功能可识别设备的物理位置。

“复位”(Reset)

  • “复位通信参数”(Reset Communication Parameters)

对于支持 DCP 复位命令的设备，复位 DCP 通信参数。

  • “存储器复位”(Memory reset)

对所选设备执行存储器复位。

  • “复位为出厂默认值”(Reset to Factory Defaults)

将所选设备复位为出厂默认值。

  • “格式化存储卡”(Format Memory Card)

格式化所选设备中的存储卡。

“诊断”(Diagnostics)

  • “显示诊断”(Show Diagnostics)

显示所选 CPU 的诊断缓冲区。

  • “检索服务数据”(Retrieve Service Data)

检索所选设备的服务数据。

“设置时间”(Set time)

将所选 CPU 中的时间设置为编程设备时间。

“备份设备”(Backup Device)

  • “完整备份”(Full Backup)

备份所有选中设备的所有数据。SIMATIC Automation Tool 保存各选中设备的备份文件。

  • HMI

    • “配方”(Recipes)

备份 HMI 配方。

  • HMI

    • “用户管理”(User Administration)

备份 HMI 用户管理数据。

“恢复设备”(Restore Device)

将数据从备份文件恢复到相应的设备。

“文件操作”(File Operations)

注：文件操作仅适用于 CPU 文件。

  • “上传数据日志”(Upload Data Logs)

将所选的数据日志文件上传到编程设备。

  • “删除数据日志”(Delete Data Logs)

删除所选的数据日志文件。

  • “上传配方”(Upload Recipes)

将配方文件从所选 CPU 上传到编程设备。

  • “添加/更换配方”(Add/Replace Recipe)

将编程设备中的配方文件添加/更换到所选的 CPU。

如果不存在配方，则此操作会添加配方，如果存在配方，则此操作会替换配方。

  • “删除配方”(Delete Recipe)

从相应的 CPU 中删除所选配方。


选项菜单

选项菜单

该章节包括以下主题的信息:
  • 选项菜单
  • SIMATIC Automation Tool 路径名称
  • 常规设置
  • 通信设置
  • 项目设置
  • 固件更新设置
  • 程序更新设置
  • 服务数据设置
  • 备份/恢复设置
  • 配方设置
  • 数据日志设置
  • 事件日志设置
  • 导出设置
  • SNMP 配置文件


选项菜单

选项菜单

选项菜单包含以下菜单命令：

工具
图标

菜单
命令

说明

“设置”(Settings)

打开“设置”(Settings) 对话框，可以在其中设置以下类别的默认设置：

  • 常规

  • 通信

  • 项目

  • 固件更新

  • 程序更新

  • 服务数据

  • 备份/恢复

  • 配方

  • 数据日志

  • 事件日志

  • 导出

  • SNMP 配置文件

对于包含文件操作的设备操作，这些设置定义操作的默认路径名称。

“启动自动化许可证管理器”(Start Automation License Manager)

用于启动自动化许可证管理器，可使用该管理器许可 SIMATIC Automation Tool。


SIMATIC Automation Tool 路径名称

显示路径和浏览文件夹的差异 Windows 7 Windows 10

SIMATIC Automation Tool 路径名称

“选项 > 设置”(Options > Settings) 对话框中的路径名称示例显示 C:\Users\MyAccount\SIMATIC Automation Tool\ 中文件夹的路径名称，其中“MyAccount”代表用户 ID。

使用“选项 > 设置”(Options > Settings) 菜单命令提供以下文件位置的默认路径：

  • 项目

  • 固件更新

  • 程序更新

  • 服务数据

  • 备份/恢复

  • 配方

  • 数据日志

  • 事件日志

  • SNMP 配置文件

显示路径和浏览文件夹的差异

例如，“设置”(Settings) 对话框显示路径，如“程序更新”(Program Update) 设置中所示：

如果使用设备表中的浏览功能查找固件更新文件或程序更新文件等文件，则不会将用户 ID 显示为“用户”(Users) 下的文件夹。如果使用 Windows 7，则会显示文件夹“我的文档”(My Documents)。如果使用 Windows 10，则会显示文件夹“文档”(Documents)。展开此文件夹可发现“SIMATIC Automation Tool”文件夹。

Windows 7 或 Windows 10 中导航显示的导航路径也与“设置”(Settings) 对话框中的路径名不同。

Windows 7

在 Windows 资源管理器中，“库”(Libraries) 文件夹下的“文档”(Documents) 文件夹也等同于“我的文档”(My Documents) 文件夹和“MyAccount”文件夹。

Windows 10

在文件管理器中，“快速访问”(Quick Access) 下的“文档”(Documents) 文件夹也等同于“文档”(Documents) 文件夹和“MyAccount”文件夹。


常规设置

常规设置

可选择用户界面语言：英语、德语、法语、西班牙语、意大利语或中文

选中该复选框可在网络扫描时显示不受支持的设备。SIMATIC Automation Tool 通过在设备表中将不支持的设备显示为灰色文本表示已禁用。

如果取消选中该复选框，SIMATIC Automation Tool 将从设备表中筛选出不支持的设备。

说明

改变用户界面语言更改可清除事件日志

更改用户界面语言时，SIMATIC Automation Tool 会清除事件日志。

说明

扫描网络以更新文件夹名称

如果更改用户界面语言，设备表中的文件夹名称仍使用先前的用户界面语言。扫描网络以将文件夹名称更新为新的用户界面语言。


通信设置

“使用多个线程进行操作”(Using multiple threads for operations) 设置 HMI 传输通道
启动 返回 继续

通信设置

可使用“通信”(Communications) 选项设置与多线程通信和 HMI 通信相关的选项。

“使用多个线程进行操作”(Using multiple threads for operations)

如果网络采用星型拓扑结构，其中每个 CPU 都通过以太网交换机直接连接至编程设备，则可安全使用多个线程选项。

如果网络采用链路型拓扑结构，则禁用此选项可防止 CPU 中断与其它设备的通信。举例来说，链路型拓扑结构应具有从编程设备到 CPU 1 到 CPU 2 到 CPU 3 到其它设备的链路式连接。

示例：链路型拓扑结构

使用多线程时，导致 CPU 1 重新启动的线程会中断 CPU 2 或链路中任何其它 CPU 正在进行的操作。请注意，也可以使用 CM 或 CP 模块实现链路型拓扑结构。

同步操作

允许在多个线程上同时对多台设备执行操作，可提高 SIMATIC Automation Tool 的性能。

说明

SIMATIC Automation Tool 的通信问题

例如，用户向多台设备发送一条操作命令，但其中一台设备未完成操作并显示 CPU 存在通信错误。然而，其它设备都按预期进行通信并执行操作。若遇到此问题，请减少同时进行的操作（线程/连接）数量。关闭并重新启动 SIMATIC Automation Tool，然后再次尝试进行组操作。

通信操作超时

如果向设备发送一条操作命令，但连接的数据传输率非常慢，则可能遇到通信超时错误。若遇到此问题，请延长通信操作的超时时间。

设置 HMI 传输通道

SIMATIC Automation Tool 可以通过 PN/IE 或以太网与 HMI 设备通信。在 HMI 设备的文件传输设置和 SIMATIC Automation Tool 通信设置中选择相同的设置。以太网可提供更快的通信速度。


项目设置

项目设置

可使用保存项目 SIMATIC Automation Tool 项目数据的默认路径，也可以指定一条新路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。


固件更新设置

固件更新设置

可使用固件更新文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。

单击复选框，允许或禁止具有相同固件版本的固件更新。禁止更换相同的固件版本可避免不必要的操作，从而节省处理时间。


程序更新设置

程序更新设置

可使用程序文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。


服务数据设置

服务数据设置

可使用服务数据文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。


备份/恢复设置

备份/恢复设置

可使用备份和恢复文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。


配方设置

配方设置

可使用配方文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。


数据日志设置

数据日志设置

可使用数据日志文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。


事件日志设置

事件日志设置

默认情况下，SIMATIC Automation Tool 会在每次设备操作开始时清除事件日志。如果要禁用默认设置，可以取消选中“在每次操作前清除事件日志”(Clear event log before each operation)。

选中“自动将事件追加并保存到事件日志中”(Automatically append and save events to the event log file) 复选框后，可使用默认路径或指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。随后，SIMATIC Automation Tool 会将“事件日志”(Event Log) 窗口中的每条消息保存到文件“EventLogFile.csv”中。关闭后重新打开 SIMATIC Automation Tool 时，日志记录将自动恢复到事件日志文件中。

可单击“清除日志”(Clear Log) 按钮清除事件日志文件的内容。此操作会清除文件的内容，但不会删除文件。


导出设置

导出设置

可使用存储导出文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。


SNMP 配置文件

添加 SNMP 配置文件 修改 SNMP 配置文件 删除 SNMP 配置文件 接受所有添加、更改和删除的信息

SNMP 配置文件

要使用 SIMATIC Automation Tool 与网络上的 SCALANCE 设备进行通信，必须组态用于设备的 SNMP 配置文件。有关 SNMP 组态的信息，请参见 SCALANCE 设备文档。如果网络上有多台 SCALANCE 设备，则 SIMATIC Automation Tool 可帮助用户轻松保存用于多台设备的 SNMP 配置文件。

用户需要提供 TFTP (Trivial File Transfer Protocol) 服务器才能在 SCALANCE 设备中安装固件。

可使用存储 SNMP 配置文件的默认路径，也可以指定其它路径。

路径可能具有不同的驱动器号，“MyAccount”表示当前用户的登录名。

SIMATIC Automation Tool 支持以下 SNMP 配置文件：

  • 版本 1：在 SNMPv1 的 RFC (Request For Comments) 中由互联网工程组态任务组 (IETF) 和两个历史 SNMP 标准之一进行定义

  • 版本 2：在 SNMPv2 的 RFC (Request For Comments) 中由互联网工程组态任务组 (IETF) 和两个历史 SNMP 标准中的另一个进行定义

  • 版本 3：在 SNMPv3 的 RFC (Request For Comments) 中由互联网工程组态任务组 (IETF) 进行定义，此版本为 IETF 推荐用于 Internet 管理的版本

有关 SNMP 协议的更多信息，敬请访问 SNMP Research International, Inc. 仅英文 Web 页面。

添加 SNMP 配置文件

要添加 SNMP 配置文件，请按以下步骤操作：

  1. 单击 SNMP 配置文件设置中的“添加”(Add) 按钮以添加 SNMP 配置文件。

  2. 输入配置文件名称。

  3. 输入 TFTP 服务器的 IP 地址。

  4. 输入或选择服务器端口号。

  5. 从下拉列表选择中选择版本号。

SNMP 版本 1 或版本 2 配置文件 | SNMP 版本 3 配置文件

对于版本 1 或版本 2 配置文件，请完成以下步骤：

  1. 输入读取团体或接受默认团体。

  2. 输入写入团体或接受默认团体。

对于版本 3 配置文件，请完成以下步骤：

  1. 输入用户名。

  2. 输入上下文名称。

  3. 从下拉列表中选择一个安全等级：

    • NoAuth，NoPriv：无需身份认证的非私密通信

    • Auth，NoPriv：需要身份认证的非私密通信

    • Auth，Priv：需要身份认证的私密通信

对于包含身份认证的版本 3 配置文件，请组态以下身份认证域：

  • 身份认证算法：从下拉列表中选择一个算法。

  • 身份认证密码

对于包含隐私的版本 3 配置文件，请组态以下隐私域：

  • 隐私算法：从下拉列表中选择一个算法。

  • 隐私密码

组态全部配置文件信息后，单击“添加”(Add) 对话框中的“确定”(OK) 以保存配置文件。SIMATIC Automation Tool 会验证用户选择并在域缺失或不完整时向用户发出通知。如果不希望保存配置文件，请单击“取消”(Cancel)。

说明

最多可添加 25 个 SNMP 配置文件。

修改 SNMP 配置文件

要修改现有配置文件，请按以下步骤操作：

  1. 选择待修改的 SNMP 配置文件。

  2. 单击“修改”(Modify) 按钮。

  3. 在“修改”(Modify) 对话框中，更改要修改的域。

完成修改后，单击“修改”(Modify) 对话框中的“确定”(OK) 以保存配置文件。SIMATIC Automation Tool 会验证用户选择并在域缺失或不完整时向用户发出通知。如果不希望保存修改后的配置文件，请单击“取消”(Cancel)。

删除 SNMP 配置文件

要删除 SNMP 配置文件，请按以下步骤操作：

  1. 选择待删除的 SNMP 配置文件。

  2. 单击“删除”(Delete) 按钮。

  3. 确认是否要删除配置文件。SIMATIC Automation Tool 会通知用户配置文件是否正在使用。

接受所有添加、更改和删除的信息

在“SNMP 配置文件设置”(SNMP Profiles Settings) 对话框中单击“确定”(OK)，可接受进行的所有更改。SIMATIC Automation Tool 将配置文件保存到 SNMP 配置文件文件夹中的文件。

单击“取消”(Cancel) 可放弃所有更改。


工具菜单

工具菜单

工具菜单

工具菜单

可从 [image] 工具栏图标访问“工具”(Tools) 菜单。

工具 图标 | 菜单 命令 | 说明
 | “检查固件更新”(Check for Firmware Updates) | 检查单个选定设备的固件更新。 SIMATIC Automation Tool 显示包含所选设备的固件更新文件的网页。
 | “预加载固件更新文件”(Preload Firmware Update Files) | 在固件更新文件夹中查找固件更新文件。 SIMATIC Automation Tool 在所有设备的“新固件版本”(New Firmware Version) 列中预加载固件更新文件。如果文件版本高于设备中的文件版本，则该工具仅加载更新文件。SIMATIC Automation Tool 会上传所找到的最新对应文件。


帮助菜单

帮助菜单

工具
图标

菜单
命令

说明

“查看用户指南”(View User Guide)

打开 SIMATIC Automation Tool 用户指南。

“查看设备目录”(View Device Catalog)

查看设备的只读表（Microsoft Excel 格式）。

要查看该文件，必须在设备上安装 Microsoft Excel。

“关于 SIMATIC Automation Tool”(About SIMATIC Automation Tool)

显示包含以下内容的“关于”(About) 对话框：

  • 产品名称

  • 版本

  • 许可证信息

  • 检查更新按钮，该按钮可用于查找 SIMATIC Automation Tool 更新版本。


工具栏图标

工具栏图标

工具
图标

说明

新增：创建新的 SIMATIC Automation Tool 项目文件，其文件扩展名为“.sat”。

打开：显示“打开”(Open) 对话框，可在其中浏览至文件夹，选择项目文件，并提供密码以打开加密的项目文件。

将打开的项目数据保存到文件中。如果未分配文件名和密码，则会显示“另存为”(Save As) 对话框。

将选中数据剪切并复制到剪贴板。剪贴板数据与 Microsoft Excel 兼容，因此可以在两个应用程序之间共享数据。

将选中数据复制到剪贴板。

将剪贴板中的数据粘贴到选中字段。

使用以下选项扫描所选网络：

  • 扫描所选网络接口以查找可访问的 CPU 和模块。

  • 刷新设备表中所有设备的状态。

RUN：将所选 CPU 置于 RUN 模式下。

STOP：将所选 CPU 置于 STOP 模式下。

通过以下选项之一使用 SIMATIC Automation Tool 中的数据更新设备：

  • 设置 IP 地址

  • 设置 PROFINET 名称

  • 程序更新

  • 固件更新

必须选择相应的设备表选项卡输入要更新的数据。

通过在所选设备上使设备 LED 或 HMI 画面闪烁来识别设备。使用此功能可识别设备的物理位置。

重置所选设备的功能：

  • 存储器复位

  • 复位为出厂默认值

  • 格式化存储卡

访问诊断信息：

  • 显示诊断

  • 检索所选设备的服务数据

设置时间：将所选 CPU 中的系统时间设置为当前编程设备时间

备份与恢复功能：

  • 为所选 CPU 和 HMI 设备创建备份文件。

  • 从备份文件恢复所选设备

文件操作：

  • 上传或删除数据日志

  • 上传、添加、更换或删除配方

执行删除操作要求 CPU 必须处于 STOP 模式。

检查固件更新或预加载固件更新文件

网络接口下拉列表：选择连接到工业控制网络的以太网网络接口。


键盘快捷键

键盘快捷键

SIMATIC Automation Tool 支持以下快捷键，用于浏览设备表和某些菜单命令。

CTRL+PgUp | 在选项卡之间从右到左切换
CTRL+PgDn | 在选项卡之间从左到右切换
CTRL+A | 选择整个表
CTRL+C | 将所选内容复制到剪贴板
CTRL+N | 创建新的 SIMATIC Automation Tool 项目
CTRL+O | 显示项目打开对话框以打开新的项目文件
CTRL+S | 显示“另存为”(Save As) 对话框
CTRL+V | 在插入点粘贴剪贴板的内容并替换所有选择
CTRL+X | 剪切所选单元格
CTRL+Z | 撤消上一个编辑或删除动作
箭头键 | 向上、向下、向左或向右移动一个单元格
SHIFT + 箭头键 | 展开选择
DELETE | 删除活动单元格的内容
ENTER | 完成单元格编辑并验证数据
ESC | 取消单元格编辑并将单元格恢复为初始值
HOME | 移动到行的开头
CTRL+HOME | 移动到表的开头
END | 移动到行尾
CTRL+END | 移动到表的末尾
PAGE DOWN | 在表中向下移动一个画面
PAGE UP | 在表中向上移动一个画面
SPACEBAR | 选中或清除“设备选择”(device selection) 复选框
TAB | 向右移动一个单元格
F5 | 刷新所有选中设备
Alt+F4 | 退出


安全程序定义

安全程序定义

安全程序为在 STEP 7 创建的程序，其中包含安全块。如果已安装 STEP 7 Safety Advanced，则只要向 STEP 7 项目添加故障安全 CPU，“程序块”(Program Blocks) 文件夹就会自动包含安全块。将此程序下载到故障安全 CPU 时，该程序为安全程序。


SIMATIC Automation Tool 程序故障

如果没有电子邮件客户端，则发送错误信息

SIMATIC Automation Tool 程序故障

在极少数情况下，SIMATIC Automation Tool 软件可能会遇到意外错误。如果发生此类错误，SIMATIC Automation Tool 将显示一个对话框。西门子要求用户单击此对话框上的“发送报告”(Send Report) 按钮，将该错误的服务数据发送给西门子。SIMATIC Automation Tool 将使用编程设备上的默认电子邮件客户端打开邮件正文中包含服务数据内容的电子邮件。收件人为 helpline.sii@siemens.com。可以向电子邮件中添加任何其它信息或其它收件人。之后，必须单击“发送”(Send) 以发送电子邮件。

还可以单击错误对话框中的“保存项目”(Save Project) 按钮，将遇到错误的 SIMATIC Automation Tool 项目保存到编程设备中。

如果没有电子邮件客户端，则发送错误信息

如果用户编程设备没有电子邮件客户端，则可以将服务数据文件复制到可以发送电子邮件的设备。要将服务数据保存、复制和发送到 Siemens，请按以下步骤操作：

  1. 将“SATServiceData.txt”文件从服务数据文件夹复制到另一台设备。

  2. 将该文件发送至 helpline.sii@siemens.com。


用于 .NET framework 的 SIMATIC Automation Tool API

用于 .NET framework 的 SIMATIC Automation Tool API

该章节包括以下主题的信息:
  • API 简介
  • API 软件许可证和版本兼容性
  • 为故障安全设备和安全相关操作设计用户界面应用程序
  • 架构概述
  • 在用户界面应用程序中引用 API
  • S7 通信的要求
  • 公共支持类别
  • 通用支持接口
  • 网络类
  • HealthCheck 类
  • IProfinetDeviceCollection 类
  • IProfinetDevice 接口
  • IModuleCollection 类和模块属性
  • ICPU 接口
  • ICPUClassic 接口
  • IHMI 接口
  • IScalance 接口
  • ISNMPProfile 接口
  • IScalance 和 ISNMP 固件更新代码示例
  • 异常
  • API 枚举
  • 网络示例


API 简介

API 简介

SIMATIC Automation Tool API 允许用户使用各种 .NET 接口、类和方法创建自定义应用程序。通过 API 可与网络上的设备进行通信。用户可开发自定义应用程序来组合操作，支持特定于工业自动化网络的用户工作流程。


API 软件许可证和版本兼容性

API 软件许可证和版本兼容性

V3.0 和之后版本需要软件许可证

必须具有有效的 SIMATIC Automation Tool 许可证才能使用 API（应用程序编程接口）。

执行以下任务后，可以使用 API 编写自定义应用程序：

  • 安装已许可的 SIMATIC Automation Tool

  • 在安装期间同意所有许可条款

用户无权复制或重新分发 SIMATIC Automation Tool 的任何部分，包括所有 API .exe 或 .dll 文件。

若要将自定义用户界面应用程序分发给第三方，第三方还必须具有 SIMATIC Automation Tool 的有效许可证。

与之前的版本兼容

V3.1 SP4 版本的 API 与 V3.1 及之后的版本兼容。可运行通过 V3.1 API 或 V3.1 服务包 API 开发的 API 程序。更新或验证解决方案引用，然后使用 V3.1 SP4 API 重新构建应用程序。

V3.1 及更高版本的 API 与 V3.1 之前的版本不兼容。必须重写使用 V3.1 之前版本的 API 编写的程序。


为故障安全设备和安全相关操作设计用户界面应用程序

为故障安全设备和安全相关操作设计用户界面应用程序

该章节包括以下主题的信息:
  • 安全相关操作和故障安全设备的 API 支持
  • 安全相关操作的用户界面编程指南
  • 用户界面中的颜色编码安全域
  • 汉明码


安全相关操作和故障安全设备的 API 支持

API 提供的安全功能

安全相关操作和故障安全设备的 API 支持

SIMATIC Automation Tool API 支持以下安全相关操作：

  • 程序更新

  • 从备份文件恢复设备

  • 复位为出厂默认值

  • 格式化存储卡

说明

《SIMATIC Safety - 组态和编程》手册包含一个标识为“S078”的警告。此警告声明如下：“若使用自动化或操作工具（TIA Portal 或 Web 服务器）绕过 F-CPU 的访问保护（如保存或自动输入“包括故障安全的完全访问（无保护）”保护级别的 CPU 密码或 Web 服务器密码），与安全相关的项目数据可能无法再防止受到无意更改的影响。”

此 S078 警告不适用于 SIMATIC Automation Tool API。API 支持与 F-CPU 通信并存储 F-CPU 的 CPU 密码。

API 提供的安全功能

SIMATIC Automation Tool 和 SIMATIC Automation Tool SDK API 已经过 TÜV SÜD 认证。

SIMATIC Automation Tool API 使用多种冗余技术。因此，API 能够保护用户应用程序代码，避免执行潜在危险操作。API 可以提供以下功能：

  • 各安全相关操作的独立连接和合法化过程

  • 故障安全设备与安全相关的操作的身份检查

  • 安全程序的识别

  • 要求使用安全 F-CPU 密码对任何受密码保护的 F-CPU 执行安全相关操作

  • 使用 32 位 CRC 校验和来比较故障安全设备的在线和离线表示

  • 使用汉明码表示 TRUE 和 FALSE 状态

  • 程序更新与从备份操作恢复后进行 F 签名比较，以验证操作是否成功完成


安全相关操作的用户界面编程指南

识别和保护与安全相关的操作 推荐编程习惯 程序更新要求 从备份恢复要求 认证

安全相关操作的用户界面编程指南

警告

尽可能保护与安全相关的操作

故障安全 CPU 与故障安全 I/O 和安全程序可共同提供操作的高度安全性。

使用 SIMATIC Automation Tool API 时，尽可能确保安全相关操作的安全。西门子对使用 SIMATIC Automation Tool API 开发的用户界面应用程序不承担任何责任。软件开发人员承担所有责任。

如果软件开发人员不遵循适当的编程习惯，则用户操作其开发的用户界面应用程序时，可能会导致死亡或人身伤害。

识别和保护与安全相关的操作

西门子建议提供确认安全相关操作的对话框。设计应用程序时，应要求用户选择每台故障安全设备进行操作，然后在执行操作前单击“继续”(Continue)。

使用 API 开发用户界面应用程序后，请确定操作是否属于以下安全相关操作之一：

  • 程序更新

  • 从备份文件恢复设备

  • 复位为出厂默认值

  • 格式化存储卡

对于安全相关操作，向用户提供确认对话框。使用 DetermineConfirmationMessage API 方法确定要显示的确认对话框类型。提供额外的确认对话框可防止用户不小心执行意外的安全相关操作。以下对话框为程序更新操作的确认对话框示例：

推荐编程习惯

使用以下编程习惯可确保保护安全相关操作并最大限度地减小不安全用户操作的可能性：

  • 在单个线程上执行所有与安全相关的操作。

  • 需要输入安全 F-CPU 密码才能进行安全相关操作。根据 CPU 密码验证输入的密码。用户输入密码时，使用星号隐藏画面上的密码。

  • 检查所有方法的返回代码。确保程序逻辑仅在成功返回方法时继续。

  • 在实现中包含适当的例外处理。API 会提供其检测到的关键内部错误等异常。请确保软件以适当的方式处理所有异常。

  • 对于所有安全相关操作，请评估操作是否成功执行。程序更新成功后向用户显示一条消息。程序更新失败时显示一条错误消息。

  • 在应用程序中使用汉明码实现布尔状态。

  • 在应用程序中使用颜色指示故障安全设备、安全程序、安全 F-CPU 密码和其它用户输入的数据。

  • 提示确认所有操作模式更改 (RUN/STOP)。

  • 每次操作后刷新用户界面，以便应用程序显示正确的设备数据。

程序更新要求

对于所选 F-CPU 的程序更新，请为用户提供一个附加对话框，以重新选择故障安全设备并确认以下操作：

  • 使用其它安全程序更新现有安全程序

  • 使用标准程序更新现有安全程序

  • 使用安全程序更新现有标准程序

  • 使用安全程序更新无程序的 CPU

  • 删除现有安全程序

更新安全程序后，验证 CPU 中更新的程序的 F 签名是否与程序更新文件的 F 签名匹配。

从备份恢复要求

在恢复备份文件之前，请根据程序更新的相同要求评估该文件是否为安全程序并提示用户确认。

认证

说明

获取用户界面应用程序的认证

西门子强烈建议通过 TÜV SÜD 等认证机构来证明设计和实施的安全性。


用户界面中的颜色编码安全域

用户界面中的颜色编码安全域

该章节包括以下主题的信息:
  • 用户界面应用程序中的颜色编码安全域
  • 对 CPU 设备图标进行颜色编码
  • 对设备数据进行颜色编码
  • 对 CPU 密码进行颜色编码
  • 对程序文件夹进行颜色编码
  • 对程序密码进行颜色编码


用户界面应用程序中的颜色编码安全域

决策树约定

用户界面应用程序中的颜色编码安全域

如果使用 API 开发用户界面，西门子强烈建议使用颜色编码为用户提供与故障安全 CPU 和安全程序相关的任何内容的可视指示。决策树表示西门子推荐的典型安全相关领域的颜色编码逻辑。在设计应用程序时，请考虑采用相同或类似的方法。

决策树约定

* 不会失败、未进行错误处理或表示应用程序故意忽略错误的情况的子进程。


对 CPU 设备图标进行颜色编码

对 CPU 设备图标进行颜色编码


对设备数据进行颜色编码

对设备数据进行颜色编码


对 CPU 密码进行颜色编码

对 CPU 密码进行颜色编码


对程序文件夹进行颜色编码

对程序文件夹进行颜色编码


对程序密码进行颜色编码

对程序密码进行颜色编码


汉明码

汉明码

汉明码为二进制码。可以检测偶然的位错误。SIMATIC Automation Tool API 使用 32 位汉明码，汉明距离为 8。API 使用汉明码来表示与安全相关操作有关的所有布尔值。可以对用户界面应用程序进行编程，以使用提供的布尔值状态进行安全相关操作。由于 API 使用汉明码实现这些状态，因此与安全相关的布尔状态的数据完整性具有较高的可信度。


架构概述

网络 设备
FirmwareUpdate 方法 Backup 方法（ICPU 接口） SetOperatingState 方法 模块属性和 IModuleCollection 类 Restore 方法（ICPU 接口） SetIP 方法 Identify 方法 RefreshStatus 方法 SetProfinetName 方法 GetCurrentDateTime 方法 MemoryReset 方法 ProgramUpdate 方法 ResetToFactoryDefaults 方法 SetCurrentDateTime 方法 UploadServiceData 方法 IModule 接口 DeleteDataLog 方法 DeleteRecipe 方法 UploadDataLog 方法 UploadRecipe 方法 Backup 方法（IHMI 接口） ProgramUpdate 方法（IHMI 接口） Restore 方法（IHMI 接口） DownloadRecipe 方法 RemoteInterfaces 属性 IProfinetDevice 事件
启动 返回 继续

架构概述

API 提供支持与 SIMATIC 设备网络通信的类别、接口和方法。

网络

.NET 类别 Network 代表整个工业网络。此类别使用安装在编程设备上的网络接口卡 (NIC) 执行功能。网络类别用于扫描可用的接口卡并选择网络接口卡。

网络类别包括构造函数以及以下特性和方法：

  • 网络构造函数

  • QueryNetworkInterfaceCards 方法

  • SetCurrentNetworkInterface 方法

  • CurrentNetworkInterface 特性

  • ScanNetworkDevices 方法

  • SetCommunicationsTimeout 方法

  • GetCommunicationsTimeout 方法

  • GetEmptyCollection 方法

设备

网络上的各个设备由接口表示。每个接口类别都提供适用于所表示的网络设备的特性和方法。网络上的每个硬件设备最好由以下接口之一表示：

IProfinetDevice – 工业网络上可直接访问的任何设备都可以由此接口表示。

ICPU – 这代表直接连接到网络的 S7 CPU。CPU 支持特定功能。

ICPUClassic – 表示直接连接到网络的经典类型 S7‑300 和 S7‑400 CPU。

IHMI – 这代表直接连接到网络的 SIMATIC HMI。HMI 支持特定功能。

IBaseDevice – 此接口表示未直接连接到以太网，但可通过其它设备访问的设备。例如，将连接到网络上的 CPU 的 PROFIBUS 从站表示为 IBaseDevice。

IModule – 此接口用于表示插入 CPU、PROFINET 设备或 PROFIBUS 站的各个 I/O 模块。

IHardware – 这是所有其它接口的基本类别。此接口提供对网络上识别的所有硬件项通用的特性的访问权限。

接口会分组到表示设备组的集合中。提供集合以支持迭代、过滤和搜索。

IProfinetDeviceCollection – 网络上可直接访问的所有设备的集合。

IModuleCollection – 可代表插入 CPU 或 IM 的模块的集合。

IHardwareCollection – 此集合代表 CPU 及其所有模块。

IScanErrorCollection – 此集合表示执行网络扫描操作后从所有设备返回的错误集。

设备类别、接口和方法：

  • IProfinetDeviceCollection 类别

  • IProfinetDevice 接口

  • ICPU 接口

  • IHMI 接口

以下类别图显示了这些接口类别之间的继承关系：

说明

请参见示例工业网络和用于表示每个网络组件的 SIMATIC Automation Tool API 类别。


在用户界面应用程序中引用 API

在用户界面应用程序中引用 API

西门子为 API 提供了多个 DLL、可执行文件和源文件：

  • SIMATICAutomationToolAPI.dll

  • DeviceManagerClient.dll (HMI)

  • hmitr.dm.client.proxy.dll (HMI)

  • hmitr.dm.client.stub.exe (HMI)

  • hmitr.ipc.dll (HMI)

  • AsModels 文件夹和子文件夹（离线对象模型）

使用该 API 时，这些文件和 AsModels 文件夹必须位于开发自定义应用程序的同一文件夹中。

该 API 通过 Microsoft Visual Studio 2015 SP2 Update 3 使用 .NET Framework 4.6.2 创建。可以将使用该版本 Visual Studio 创建的应用程序与此 API 配合使用。本文件中的所有代码示例和屏幕截图均使用 Visual Studio 2015 SP2 Update 3 获取，采用 C# 编程语言。

要在应用程序中包含 API，必须在 Visual Studio 解决方案中添加 SIMATICAutomationToolAPI.dll 作为引用。

要能够将 PC 数据从应用程序中导出，应添加 SimaticAutomationToolHealthCheck.dll 作为引用。

在任何引用 API 类的应用程序中，必须添加以下引用 API 命名空间的语句：

using Siemens.Automation.AutomationTool.API;

如果应用程序导出 PC 数据，则必须添加以下语句：

using Siemens.Automation.AutomationTool.HealthCheck;

要编译本文档中的任何代码示例，必须在与示例代码相同的源文件 (*.cs) 中使用正确的 using 语句。为简单起见，本文件中的各个代码示例未纳入使用语句。


S7 通信的要求

在开发应用程序时进行 S7 通信 应用程序最终用户的 S7 通信

S7 通信的要求

在开发应用程序时进行 S7 通信

要运行使用 API 开发的应用程序，必须在编程设备上安装 S7 通信组件。如果安装了 SIMATIC Automation Tool，则需要安装所需的 S7 通信组件。通过编程设备上的 S7 通信，可将命名为 在用户界面应用程序中引用 API 的文件和文件夹放在编程设备上的任意文件夹中。将自定义应用程序的可执行文件放在同一文件夹中。从该文件夹运行应用程序并执行测试。

应用程序最终用户的 S7 通信

最终用户必须安装经许可的 SIMATIC Automation Tool 版本。自定义应用程序必须与所需文件和文件夹位于最终用户编程设备上的同一文件夹中。


公共支持类别

公共支持类别

该章节包括以下主题的信息:
  • EncryptedString 类
  • Result 类
  • DiagnosticsItem 类
  • DataChangedEventArgs 类
  • ProgressChangedEventArgs 类


EncryptedString 类

EncryptedString 类

很多 API 操作需要与受保护的 S7 CPU 进行合法连接。对于这些操作，需要密码作为方法的参数之一。S7 CPU 接受加密格式的密码。API 提供 EncryptedString 类来完成密码加密。

构造函数 | 说明
EncryptedString() | 空加密字符串
EncryptedString(string strText) | 加密字符串

属性名称 | 返回类型 | 说明
IsEmpty | bool | 真（不存在密码时）
IsEncrypted | bool | 真（存在加密密码时）

方法名称 | 返回类型 | 说明
ToString() | string | 加密密码的十六进制字符串表示法
Clear() | void | 清除加密密码
GetHash() | byte[] | 密码的密码加密哈希数组表示法
WriteToStream(Stream stream) | void | 序列化流密码
ReadFromStream(Stream stream) | void | 反序列化流密码

此类提供一种加密纯文本密码的方法，从而可以使 CPU 连接合法化。许多代码示例体现了此类的典型用法。

要将密码加密以便在代码中多次使用，可将 EncryptedString 实例化。可将其作为参数传递给一次或多次调用，如下所示：

    EncryptedString pwd = new EncryptedString("password");

    devAsCpu.Selected = true;
    devAsCpu.SetPassword(pwd);

说明

如果 CPU 没有密码保护，则只需将空字符串传递给 EncryptedString 构造函数。例如，对于未组态保护的 CPU，可成功运行以下代码：

    devAsCpu.SetPassword(new EncryptedString("Password"));
    devAsCpu.Selected = true;
    Result retVal = devAsCpu.RefreshStatus();

EncryptedString 对象不存储用户特定的纯文本密码。但是，如果应用程序将密码编码为文字串，则会造成安全风险。

例如，new EncryptedString("myPassword") 将纯文本“myPassword"编译到用户应用程序中。该密码可能对其它使用 .NET 反射的程序可见。


Result 类

Result 类

Result 类对确定给定 API 操作是否成功执行的逻辑进行封装。大多数 API 操作都涉及网络通信。其中很多操作还涉及打开到网络设备的连接。这些操作能否成功并不确定。检查 API 操作返回的 Result 对象，以确定操作是否成功。

构造函数 | 说明
Result() | 创建成功结果，无警告
Result(ErrorCode nCode) | 创建特定错误，无警告
Result(string strCode) | 设备定义的错误描述
Result(Result result) | 创建包含结果参数内容的结果

属性名称 | 返回类型 | 说明
Warnings | ErrorCode[]{get;} | 返回错误代码组中的所有警告
Error | ErrorCode {get;} | 返回错误代码
HasWarnings | Bool {get;} | 存在警告时为真
Failed | Bool {get;} | 结果失败时为真
Succeeded | Bool {get;} | 结果成功时为真 Succeeded 表示未失败

方法名称 | 返回类型 | 说明
Clear() | void | 清除错误和所有警告
SetError(ErrorCode error) | void | 设置当前错误
AddWarning(ErrorCode warning) | void | 添加警告
ChangeErrorToWarning() | void | 将当前错误更改为警告
GetErrorDescription(Language language) | string | 获取以指定语言描述的当前错误字符串
GetWarningDescription(Language language) | string[] | 获取以指定语言描述的警告字符串

在某些情况下，设备会返回一个错误字符串，具体描述该设备特定错误。在这种情况下，返回的 ErrorCode 是 DeviceDefinedError。方法 GetErrorDescription 提供设备特定的错误字符串。

在许多情况下，只需了解给定操作是否成功。在这种情况下，请检查 Succeeded 属性：

        ICPU devAsCpu = dev as ICPU;
if (devAsCpu != null)
{
//-----------------------------------------------------
//
         该设备为 CPU。
//
         ICPU 接口可用于与之交互。
//-----------------------------------------------------

dev.Selected = true;
Result retVal = dev.RefreshStatus();
if (retVal.Succeeded)
{
//------------------------------------
//
        继续操作
        ....
//------------------------------------
}

在其它情况下，获取有关故障的更多信息可能会有所帮助。要检查特定错误，请使用 ErrorCode 属性，如下所示：

            dev.Selected = true;
Result retVal = dev.RefreshStatus();
if (retVal.Succeeded)
{
//------------------------------------
//
        继续操作
        ....
//------------------------------------
}
else
{
//------------------------------------
//
        发生了什么？
//------------------------------------
switch (retVal.Error)
{
case ErrorCode.AccessDenied:
break;
case ErrorCode.TooManySessions:
break;
}
}

有关可能错误值的列表，请参见 ErrorCode 主题。

Result 类还提供特定于语言的错误描述。GetErrorDescription 方法使用 Language 值作为参数提供特定语言的错误描述。

例如，以下代码会返回德语的错误描述：

String strError = retVal.GetErrorDescription(Language.German);

有关值列表，请参见语言枚举主题。

SIMATIC Automation Tool 具有警告功能，可用于了解已发生的问题。例如，程序更新结束时在设备上执行刷新可能会创建与主调用函数不直接相关的警告。可通过 Result 类访问这些警告，如下所示：

if (retVal.HasWarnings)
{
foreach (ErrorCode warning in retVal.Warnings)
{
//------------------------------------
//
        继续操作
        ....
//------------------------------------
}
}


DiagnosticsItem 类

DiagnosticsItem 类

诊断项包含单个事件的诊断信息。可从 CPU 读取诊断缓冲区。有关详细信息，请参见“ICPU 接口”一章。

构造函数 | 说明
DiagnosticsItem() | 创建默认诊断项

属性名称 | 返回类型 | 说明
TimeStamp | DateTime {get;} | 诊断事件的时间戳
State | Byte {get;} | 0 = 离去事件；1 = 到达事件
Description1 | String {get;} | 基本描述
Description2 | String {get;} | 详细说明


DataChangedEventArgs 类

DataChangedEventArgs 类

数据更改事件包含关于 API 内已更改的数据的信息。有关详细信息，请参见“IProfinet 接口”一章。

构造函数 | 说明
DataChangedEventArgs(DataChangedType type) | 创建特定类型的事件
DataChangedType type | 已更改的数据类型

属性名称 | 返回类型 | 说明
Type | DataChangedType | 事件类型

与以下事件处理程序配合使用：

public delegate void DataChangedEventHandler(object sender, DataChangedEventArgs e);


ProgressChangedEventArgs 类

ProgressChangedEventArgs 类

进度更改事件包含关于 API 内已更改的数据的信息。有关详细信息，请参见“IProfinet 接口”一章。

构造函数 | 说明
ProgressChangedEventArgs(ProgressAction action, int index, int count, uint hardwareID) | 用于创建和默认进度更改事件 args 类。
ProgressAction action | 已发生的进度类型
int index | 正在处理的当前项目的索引
int count | 待处理的总项目
uint hardwareID | 正在处理的项目的 ID

属性名称 | 返回类型 | 说明
ID | uint {get;} | 项目 ID
Cancel | bool {get;} | 设置为真以终止当前操作
Count | int {get;} | 最大值
Index | int {get;} | 当前值
Action | ProgressAction {get;} | 此事件的动作类型

与以下事件处理程序配合使用：

public delegate void ProgressChangedEventHandler(object sender, ProgressChangedEventArgs e);


通用支持接口

通用支持接口

该章节包括以下主题的信息:
  • IRemoteFile 接口
  • IRemoteFolder 接口
  • IRemoteInterface 接口
  • IHardware 接口
  • IBaseDevice 接口
  • IHardwareCollection 接口
  • IModuleCollection 接口
  • IScanErrorCollection 类
  • IScanErrorEvent 类


IRemoteFile 接口

IRemoteFile 接口

IRemoteFile 接口用于表示数据日志和配方中使用的文件。

属性名称 | 返回类型 | 说明
Selected | bool {get; set;} | 已选状态
FileSize | ulong {get;} | CPU 上的文件大小
Name | string {get;set;} | 设备上的文件名和扩展名


IRemoteFolder 接口

IRemoteFolder 接口

IRemoteFolder 表示数据日志和配方中使用的文件夹。

方法名称 | 返回类型 | 说明
SetRemoteFile(string strFile) | Result | 设置远程文件名
string strFile |  | 远程文件的完整文件名和路径

属性名称 | 返回类型 | 说明
NewFileNameErrorCode | Result {get;} | 调用 SetRemoteFile 方法后保存的错误代码
NewFileNameIsValid | bool {get;} | 文件名有效时为真
FileUpdateAllowed | bool {get;} | 文件夹可以添加或替换列表中的文件时为真
SelectedCount | int {get;} | 选择的文件数
Files | List<IRemoteFile> {get;} | 此文件夹中的文件列表
FolderType | RemoteFolderType {get;} | 文件夹类型（数据日志或配方）
Exists | bool {get;} | 设备上存在此文件夹时为真
Selected | bool {get;set;} | 已选中文件夹时为真
NewFile | string {get;} | 要添加或替换的文件的完整文件路径
NewFileName | string {get;} | 要添加或替换的文件的名称
Name | string {get;} | 文件夹名称


IRemoteInterface 接口

IRemoteInterface 接口

IRemoteInterface 接口用于表示网络上的分布式 I/O。

属性名称 | 返回类型 | 说明
Devices | List<IBaseDevice>{get;} | 用于表示分散式 I/O 的远程接口列表
InterfaceType | RemoteInterfaceType{get;} | 远程接口的类型，如 PROFINET 或 PROFIBUS
Name | string {get;} | 设备上的文件名和扩展名


IHardware 接口

IHardware 接口

IHardware 接口用于表示设备和模块的基本通用硬件接口。IModule 扩展 IHardware 接口。

方法名称 | 返回类型 | 说明
SetFirmwareFile(string strFile) | Result | 设置固件文件以更新该设备或模块

属性名称 | 返回类型 | 说明
Comment | string {get;set;} | 各设备和模块的注释
Selected | bool {get;set;} | 用于所选状态的外部存储
NewFirmwareNameErrorCode | Result {get;} | SetFirmwareFile 方法的最后一个错误
FirmwareUpdateAllowed | bool {get;} | 该设备或模块支持固件更新时为真
NewFirmwareNameIsValid | bool {get;} | 固件文件对此设备或模块有效时为真
Failsafe | bool {get;} | 设备或模块为故障安全型时为真
Supported | bool {get;} | 支持此设备或模块时为真
NewFirmwareFile | string {get;} | 固件文件的完整文件路径
NewFirmwareVersion | string {get;} | 下拉列表中显示的固件文件的版本
Configured | bool {get;} | 此设备或模块已组态时为真
HardwareNumber | short {get;} | 设备或模块的硬件修订号
SlotName | string {get;} | 设备或模块的插槽的名称
SubSlot | uint {get;} | 设备或模块的子插槽编号
Slot | uint {get;} | 设备或模块的插槽编号
StationNumber | uint {get;} | 设备或模块的站号
SerialNumber | string {get;} | 设备或模块的序列号
FirmwareVersion | string {get;} | 设备或模块的固件版本
ArticleNumber | string {get;} | 设备或模块的订货号
Description | string {get;} | 设备或模块的订货号说明
Name | string {get;} | 设备或模块的名称
ID | uint {get;} | 设备或模块的 ID


IBaseDevice 接口

IBaseDevice 接口

IBaseDevice 接口用于扩展表示基础设备类型的 IHardware 接口。

方法名称 | 返回类型 | 说明
GetHardwareFromID(uint hardwareID) | IHardware | 使用 ID 查找设备或模块

属性名称 | 返回类型 | 说明
HardwareInDisplayOrder | IHardwareCollection | 按显示顺序排列的硬件项集合
HardwareInFirmwareOrder | IHardwareCollection | 按固件更新顺序排列的硬件项集合
Modules | IModuleCollection | 模块集合
ThreadNumber | int | 当前线程的操作数
Family | DeviceFamily | 系列类型枚举

事件 | 返回类型 | 说明
ProgressChanged | ProgressChangedEventHandler | 被调用监视进度
DataChanged | DataChangedEventHandler | API 中的数据发生变化时进行调用


IHardwareCollection 接口

IHardwareCollection 接口

IHardwareCollection 接口用于表示 IHardware 接口列表。此接口扩展了 .NET List 类。

属性名称 | 类型 | 说明
- |  |


IModuleCollection 接口

IModuleCollection 接口

IModuleCollection 接口用于表示 IModule 接口数组。此接口扩展了 .NET List 类。用于表示硬件机架中的本地模块和远程模块。

属性名称 | 类型 | 说明
- |  |


IScanErrorCollection 类

IScanErrorCollection 类

此接口类对通过 ScanNetworkDevices 调用确定设备网络扫描是否成功所需的逻辑进行封装。此外，此类可以通过返回 ScanErrorEvent，为网络上扫描未成功的设备提供错误信息。应始终检查 ScanNetworkDevices 调用返回的 IScanErrorCollection 对象是成功还是失败。增加此接口是为了使用户能够获取更多设备特定的扫描错误信息，从而为诊断网络扫描问题提供帮助。

构造函数 | 说明
ScanErrorCollection() | 创建成功的网络扫描结果

属性名称 | 返回类型 | 说明
Count | Int | 扫描错误事件的数量
ScanErrorEvent[int] | ScanErrorEvent | 返回扫描事件集合中的指定扫描事件 如果是无效元素，则返回空值
Failed | Bool {get;} | 结果失败时为真
Succeeded | Bool {get;} | 结果成功时为真 Succeeded = Failed

以下情况会导致扫描状态为失败：

  • 没有 SAT 许可证或未安装 SDK

  • 网络接口无效

  • 扫描时未发现设备

  • 用户取消了操作。

方法名称 | 返回类型 | 说明
GetEnumerator() | IEnumerator<IScanErrorEvent> | 获取扫描错误事件集合的枚举器


IScanErrorEvent 类

IScanErrorEvent 类

该类提供调用 ScanNetworkDevices 方法尝试扫描设备失败的相关信息。ScanErrorEvent 的内容提供设备的相关信息，并将错误指定为信息、警告、错误或无效。

构造函数 | 说明
ScanErrorEvent() | 创建 ScanErrorEvent

属性名称 | 返回类型 | 说明
Code | ErrorCode {get;} | 扫描错误
IP | Uint {get;} | 设备的 IP 地址
MAC | ulong {get;} | 设备的 MAC 地址
Name | string {get;} | 设备的名称
TimeStamp | DateTime {get;} | 错误的关联时间戳
Type | ScanErrorType {get}; | 发生错误的扫描的类型


网络类

网络类

该章节包括以下主题的信息:
  • 网络构造函数
  • QueryNetworkInterfaceCards 方法
  • SetCurrentNetworkInterface 方法
  • CurrentNetworkInterface 属性
  • ScanNetworkDevices 方法
  • SetCommunicationsTimeout 方法
  • GetCommunicationsTimeout 方法
  • GetEmptyCollection 方法


网络构造函数

网络构造函数

.NET 类 Network 使用安装在编程设备上的网络接口卡 (NIC) 执行功能。Network 类用于扫描可用的接口卡以及选择与工业网络通信的接口卡。

要与工业网络交互，程序会如下声明 Network 类型的变量：

Network myNetwork = new Network();

可以使用此对象查找可用的网络接口，以及选择网络接口。


QueryNetworkInterfaceCards 方法

QueryNetworkInterfaceCards 方法

返回类型 | 方法名称
Result | QueryNetworkInterfaceCards

参数
名称 | 数据类型 | 参数类型 | 说明
aInterfaces | List<string> | Out | 编程设备上按名称列出的所有网络接口卡的集合

要识别可用的网络接口卡，可使用 QueryNetworkInterfaceCards 方法，如以下示例所示：

Network myNetwork = new Network();

        List<String> interfaces = new List<String>();
Result retVal = myNetwork.QueryNetworkInterfaceCards(out interfaces);
if (retVal.Succeeded)
{
//-----------------------------------------------------
//
        该方法返回字符串列表。
//
        列表中的每个字符串代表一个可用的 NIC。
//
        可以使用数组表示法迭代列表。
//-----------------------------------------------------
for (Int32 index = 0; index < interfaces.Count; index++)
{
String strInterfaceName = interfaces[index];
}
}

如示例所示，该方法将输出字符串列表。列表中的每一项代表一个可用的网络接口卡，由名称标识。

QueryNetworkInterfaceCards 方法会返回包含操作状态的 Result 对象。Result 对象将指示操作是成功（Succeeded 属性为真）还是失败（Succeeded 属性为假）。导致操作失败的原因可能有多种。可以通过 Result 类包含的属性和方法获取失败的详细信息。


SetCurrentNetworkInterface 方法

SetCurrentNetworkInterface 方法

返回类型 | 方法名称
Result | SetCurrentNetworkInterface

参数
名称 | 数据类型 | 参数类型 | 说明
strInterface | string | In | 要使用的网络接口的名称。通常，这是从 QueryNetworkInterfaceCards 方法返回的名称之一。

要使用其中一个已识别的网络接口卡访问工业网络，必须“设置”此接口。以下代码显示如何为 API 操作分配一个已标识的网络接口。在此示例中，代码选择 QueryNetworkInterfaceCards 示例中标识的第一个网络接口卡：

Network myNetwork = new Network();

List<String> interfaces = new List<String>();
Result retVal = myNetwork.QueryNetworkInterfaceCards(out interfaces);
if (retVal.Succeeded)
{
retVal = myNetwork.SetCurrentNetworkInterface(interfaces[0]);
if (retVal.Succeeded)
{
//---------------------------------------------------
//
        动作已成功执行。继续操作。
//---------------------------------------------------
}
}


CurrentNetworkInterface 属性

CurrentNetworkInterface 属性

此只读属性查询当前选定的网络接口。以下示例说明了如何使用该属性：

Network myNetwork = new Network();
string currentInterface = myNetwork.CurrentNetworkInterface;

说明

如果先前调用 SetCurrentNetworkInterface 方法时未选择任何网络接口，则此属性将返回空字符串。


ScanNetworkDevices 方法

ScanNetworkDevices 方法

返回类型 | 方法名称
IScanErrorCollection | ScanNetworkDevices

参数
名称 | 数据类型 | 参数类型 | 说明
strFile | IProfinetDeviceCollection | Out | 包含工业网络上每台可访问设备的 IProfinetDevice 元素的集合

确定网络接口后，可以查询工业网络上的设备。ScanNetworkDevices 方法输出项目集合，其中每一项代表直接连接到工业以太网的设备。这些设备可包括 CPU、本地模块、分散式 IO 站、HMI 和其它设备。

扫描包含多台设备的网络可能需要几分钟。返回的 IScanErrorCollection 中的“成功”(Succeeded) 属性会提示扫描成功或失败。

以下示例将创建所选网络接口上所有可访问设备的集合：

Network myNetwork = new Network();

        //--------------------------------------------------------------------
//
        注：此示例假定对 SetCurrentNetworkInterface
//
         的调用已完成网络 NIC 分配
//--------------------------------------------------------------------

IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//---------------------------------------------------
//
         操作成功。继续操作。
//---------------------------------------------------
}
else
{
foreach (ScanErrorEvent scanErrorEvent in scanResult)
{
//
        处理扫描错误事件
}
}

此方法输出 IProfinetDeviceCollection。

说明

ScanNetworkDevices 方法使用要求。

您必须拥有有效且未过期的 SAT 许可证或已安装 SDK 才能成功使用 ScanNetworkDevices 方法。如果在运行时尚未安装 SDK 或没有有效且未过期的 SAT 许可证，则 ScanNetworkDevices 方法返回空集合。ScanNetworkDevices 不向调用应用程序返回设备信息。


SetCommunicationsTimeout 方法

SetCommunicationsTimeout 方法

返回类型 | 方法名称
Result | SetCommunicationsTimeout

参数
名称 | 数据类型 | 参数类型 | 说明
nTimeout | uint | In | 操作超时的指定时间

可为使用 API 调用的操作设置时间限制。SetCommunicationsTimeout 允许指定 180 到 999 秒之间的时间限制（以秒为单位）。超出此范围的任何值都会导致操作失败。

以下示例说明了如何在 ScanNetworkDevices 操作中使用上述方法设置时间限制：

        Network myNetwork = new Network();

IProfinetDeviceCollection scannedDevices;

Result retVal = Network.SetCommunicationsTimeout(180); //
        超时 3 分钟
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//---------------------------------------------------
//
        动作已成功执行。继续操作。
//---------------------------------------------------
}


GetCommunicationsTimeout 方法

GetCommunicationsTimeout 方法

返回类型 | 方法名称
uint | GetCommunicationsTimeout

设置通信超时值后，可以通过 GetCommunicationsTimeout 调用检索超时值。此方法返回当前超时值。

以下示例显示当前超时值大于 180 秒时，如何检索当前超时值以及将新的超时值设置为 180 秒：

uint timeout = Network.GetCommunicationsTimeout();
if (timeout > 180)
{
    Result retVal = Network.SetCommunicationsTimeout(180);
}


GetEmptyCollection 方法

GetEmptyCollection 方法

返回类型 | 方法名称
IProfinetDeviceCollection | GetEmptyCollection

GetEmptyCollection 方法也可以获取 Profinet 设备集合，而无需执行网络扫描。该方法十分便捷，例如，用户可以使用该方法在省去先执行完全网络扫描开销的情况下将设备插入到 IProfinetDeviceCollection 中。

IProfinetDeviceCollection 是一个无法实例化的接口。网络扫描返回集合。若要在不执行扫描的情况下打开项目，请调用 GetEmptyCollection 以返回空集合。然后，您可以将设备插入到空的 Profinet 设备集合中，而无需执行网络扫描。

以下示例说明了如何使用 GetEmptyCollection 方法：

IProfinetDeviceCollection collection = Network.GetEmptyCollection();
MemoryStream stream = new MemoryStream();

Result result = collection.WriteToStream(stream);
if (result.Succeeded)
{
//---------------------------------------------------
//
        集合已成功序列化
//---------------------------------------------------
}


HealthCheck 类

HealthCheck 类

该章节包括以下主题的信息:
  • HealthCheck 构造函数
  • ExportPCData 方法


HealthCheck 构造函数

HealthCheck 构造函数

.NET 类 HealthCheck 定义在 SimaticAutomationToolHealthCheck.dll 中，支持创建 PC 数据文件。

要与工业网络交互，程序会实例化 HealthCheck 类型的对象，如下所示：

HealthCheck myHealthCheck = new HealthCheck();


ExportPCData 方法

使用 ProgressChanged 事件监控 PC 数据的导出进程

ExportPCData 方法

返回类型 | 方法名称
HealthCheckResultType | ExportPCData

参数
名称 | 数据类型 | 参数类型 | 说明
filePath | string | In | 存储包含已导出 PC 数据的 zip 文件的完整文件路径

ExportPCData 方法创建一个 HealhCheck.zip 文件，该文件包含有关编程设备的数据。返回的 HealthCheckResultType 对象指示操作结果。HealthCheck.zip 文件中的 HealthCheck.log 文件包含关于已导出数据或已出现错误的详细信息。

        HealthCheck myHealthCheck = new HealthCheck ();
String healthCheckFilePath = @"c:\export\healthcheck.zip";
HealthCheckResultType hcResult = myHealthCheck.ExportPCData(healthCheckFilePath);
if (hcResult == HealthCheckResultType.Success)
{
//---------------------------------------------------
//
        动作已成功执行。继续执行操作。
//
        HealthCheck.zip 文件中的 HealthCheck.log 文件
//
        包含关于已导出数据的详细信息。
//---------------------------------------------------
}
else
{
//---------------------------------------------------
//
         动作执行失败，包含警告或由用户取消。
//
//
        如果操作未取消，则 HealthCheck.zip 文件中的
//
         HealthCheck.log 文件

        包含关于
//
        导出操作的信息。
//---------------------------------------------------
}

使用 ProgressChanged 事件监控 PC 数据的导出进程

API 提供 ProgressChanged 事件以监控耗时可能过长的方法进程。ExportPCData 是一种耗时可能过长的方法。

要使用 ProgressChanged 事件来监控 ExportPCData 的进程，请将事件处理程序附加到该事件。然后，操作进程变化时会自动调用事件处理程序。

以下示例显示如何使用 ProgressChanged 事件监控 PC 数据的导出进程。示例代码定义了一个事件处理程序，并将其附加到 ProgressChanged 事件。然后，代码调用 ExportPCData 方法，这可能需要较长的时间。当 ExportPCData 完成时，示例代码将事件处理程序与事件分离。

        HealthCheck myHealthCheck = new HealthCheck ();

//
         登入进程事件
myHealthCheck.ProgressChanged += healthCheck_ProgressChanged;

HealthCheckResultType hcResult = myHealthCheck.ExportPCData(healthCheckFilePath);

//
        删除进程事件登入
myHealthCheck.ProgressChanged -= healthCheck_ProgressChanged;

private static void healthCheck_ProgressChanged(object sender,ExportProgressEventArgs e)
{
String strProgress = String.Format("Processing {0} of {1}", e.WorkItem, e.MaxEntries);
//
        设置为真，以取消终止进程
e.Cancel = false;
}


IProfinetDeviceCollection 类

IProfinetDeviceCollection 类

该章节包括以下主题的信息:
  • 迭代集合中的项
  • 过滤集合中的项目
  • 在集合中查找特定设备
  • 序列化
  • 手动将项目添加到集合中
  • 从集合中复制数据
  • 从集合中移除设备


迭代集合中的项

迭代集合中的项

该章节包括以下主题的信息:
  • 迭代集合中的项
  • GetEnumerator 方法
  • Count 属性
  • [ ] 特性


迭代集合中的项

迭代集合中的项

ScanNetworkDevices 方法输出 IProfinetDeviceCollection 类型的对象。此类别提供以多种方式迭代集合中的项目的功能。此外，还提供了根据特定条件过滤集合中的项目的方法。

扫描包含多台设备的网络可能需要几分钟。返回的 IScanErrorCollection 中的“成功”(Succeeded) 属性会提示扫描成功或失败。

以下示例将创建所选网络接口上所有可访问设备的集合：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);

对于倾向使用类数组语法的编程人员，您可以按如下方式访问 scansDevices 中的项目：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);

if (scanResult.Succeeded)
{

for (int deviceIdx = 0; deviceIdx < scannedDevices.Count; deviceIdx++)
{
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//
        集合中的每个项目都是 IProfinetDevice。
//
        此接口将在下一部分中详细介绍
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
IProfinetDevice dev = scannedDevices[deviceIdx];
}
}

该集合还支持使用 foreach 语法进行迭代。以下示例所示为使用该语法迭代的相同集合：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in scannedDevices)
{
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
//
        变量“
        dev
        ”现在代表集合中的下一个项目
//‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
}
}


GetEnumerator 方法

GetEnumerator 方法

返回类型 | 方法名称
IEnumerator<IProfinetDevice> | GetEnumerator

参数
名称 | 数据类型 | 参数类型 | 说明
- |  |  |

此方法用于枚举 IProfinetDeviceCollection 中的所有 IProfinetDevices。


Count 属性

Count 属性

返回类型 | 属性名称
int | Count

此属性会返回 IProfinetDeviceCollection 中的IProfinetDevices 数目计数。


[ ] 特性

[ ] 特性

返回类型 | 属性名称
IProfinetDevice | this[int index]

此特性返回特定索引处的 IProfinetDevice。请参见以下示例：

IProfinetDeviceCollection collection = Network.GetEmptyCollection();
MemoryStream stream = new MemoryStream();

Result result = collection.WriteToStream(stream);
if (retVal.Succeeded)
{
//---------------------------------------------------
//
        集合已成功序列化
//---------------------------------------------------

IProfinetDevice device = collection[0];
}


过滤集合中的项目

过滤集合中的项目

该章节包括以下主题的信息:
  • 集合项
  • FilterByDeviceFamily 方法
  • FilterOnlyCPUs 方法


集合项

集合项

该集合包含工业以太网上各设备的一个项。并且可以包含来自多个产品系列的设备（例如 S7-1200、S7-1500 和 ET 200S）。

该集合还可以包含不同“类别”的设备（例如 CPU 或 IO 站）。对于不同类别的设备，可以使用特定操作。因此，在某些情况下，可能有助于过滤集合以使其仅包含某些设备的情况。


FilterByDeviceFamily 方法

FilterByDeviceFamily 方法

返回类型 | 方法名称
List<IProfinetDevice> | FilterByDeviceFamily

参数
名称 | 数据类型 | 参数类型 | 说明
familiesToInclude | List<DeviceFamily> | In | 列表中要返回的设备系列类型

此方法返回仅包含指定产品系列的设备的集合。该过滤器首先构建为一个或多个设备系列的列表。例如，此声明仅针对 S7-1200 和 S7-1500 系列设备创建过滤器。

将此过滤器传递给 FilterByDeviceFamily 方法。结果是 IProfinetDeviceCollection 只包含指定产品系列的设备：

Network myNetwork = new Network();
List<DeviceFamily> fams = new List<DeviceFamily> { DeviceFamily.CPU1200, DeviceFamily.CPU1500 };

IProfinetDeviceCollection scannedDevices;
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);

List<IProfinetDevice> onlyPlus = scannedDevices.FilterByDeviceFamily(fams);

然后可以迭代生成的集合，从而只在包含的设备上执行操作。

说明

传递空的 List<DeviceFamily> 会导致返回空集合。


FilterOnlyCPUs 方法

FilterOnlyCPUs 方法

返回类型 | 方法名称
List<ICPU> | FilterOnlyCPUs

SIMATIC Automation Tool API 支持多种只能在 CPU 上执行的操作。因此，过滤集合从而仅包含在网络上发现的 CPU 非常有用。

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);

if (scanResult.Succeeded)

        {

List<ICPU> cpus = scannedDevices.FilterOnlyCpus();
foreach (ICPU cpu in cpus)
{
//----------------------------------------------------------
//
        循环访问仅包含 CPU 设备的列表
//----------------------------------------------------------
}
}

此方法返回 ICPU 列表。CPU 设备支持其它 API 操作。ICPU 接口提供这些操作。关于 ICPU 接口的详细描述，请参见“ICPU 接口”一章。


在集合中查找特定设备

在集合中查找特定设备

该章节包括以下主题的信息:
  • FindDeviceByIP 方法
  • FindDeviceByMAC 方法


FindDeviceByIP 方法

FindDeviceByIP 方法

可在集合中搜索特定设备。

返回类型 | 方法名称
IProfinetDevice | FindDeviceByIP

参数
名称 | 数据类型 | 参数类型 | 说明
ip | uint | In | 要搜索的 IP 地址

以下示例所示为搜索指定 IP 地址的设备。如果在集合中找不到该设备，则返回 NULL 引用：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
return;

IProfinetDevice dev = scannedDevices.FindDeviceByIP(targetIPAddress);
if (dev != null)
{
//
         已找到
}


FindDeviceByMAC 方法

FindDeviceByMAC 方法

FindDeviceByMAC 方法可以搜索具有特定 MAC 地址的设备。

返回类型 | 方法名称
IProfinetDevice | FindDeviceByMAC

参数
名称 | 数据类型 | 参数类型 | 说明
mac | ulong | In | 要搜索的 MAC 地址

以下示例将搜索指定 MAC 地址的设备。如果在集合中找不到该设备，则返回 NULL 引用：

ulong targetMAC = 0x112233445566; //
        相当于字符串 11:22:33:44:55:66
Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
return;

IProfinetDevice dev = scannedDevices.FindDeviceByMAC(targetMAC);
if (dev != null)
{
//
         已找到
}


序列化

序列化

该章节包括以下主题的信息:
  • 将集合传入或传出外部数据文件
  • WriteToStream 方法
  • ReadFromStream 方法
  • ExportDeviceInformation 方法
  • ExportDeviceDiagnostics 方法


将集合传入或传出外部数据文件

将集合传入或传出外部数据文件

序列化方法可实现集合内容序列化以及将集合内容传入或传出外部数据文件。


WriteToStream 方法

WriteToStream 方法

返回类型 | 方法名称
Result | WriteToStream

参数
名称 | 数据类型 | 参数类型 | 说明
stream | Stream | In | 集合的序列化输出的目标

此方法用于在外部存储集合的内容。以下示例为此方法的使用方式：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
    return;

FileStream f = File.Create("myDataFile.SAT");

Result retVal = scannedDevices.WriteToStream(f);

f.Close();

此方法在内部序列化版本信息，支持已保存数据的向前兼容性。


ReadFromStream 方法

ReadFromStream 方法

ReadFromStream 方法会通过之前创建的序列化文件创建集合。以下示例说明了如何使用该方法：

返回类型 | 方法名称
Result | ReadFromStream

参数
名称 | 数据类型 | 参数类型 | 说明
stream | Stream | In | 反序列化集合的源

此方法用于通过之前创建的序列化文件创建集合。以下示例显示此方法的使用：

IProfinetDeviceCollection devices = Network.GetEmptyCollection();

FileStream f = File.OpenRead("myDataFile.SAT");

Result retVal = devices.ReadFromStream(f);

f.Close();


ExportDeviceInformation 方法

ExportDeviceInformation 方法

ExportDeviceInformation 方法创建并导出一个包含当前设备集合数据的 .csv 文件：

返回类型 | 方法名称
Result | ExportDeviceInformation

参数
名称 | 数据类型 | 参数类型 | 说明
ExportFilePath | string | In | 生成的导出文件的目标文件路径

以下示例显示此方法的用法：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

//--------------------------------------------------------------------------
//
        注：此示例假定网络 NIC 分配已经完成
//
        如 SetCurrentNetworkInterface 中所示
//--------------------------------------------------------------------------

//--------------------------------------------------------------------------
// 获取网络上的当前设备内容
//--------------------------------------------------------------------------

        IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
return;

//--------------------------------------------------------------------------
//
        为所有需要密码才能访问设备信息的 CPU 设置密码。
//--------------------------------------------------------------------------
List<ICPU> aCPUs = scannedDevices.FilterOnlyCpus();
foreach (ICPU cpu in aCPUs)
{
if (cpu.Protected == true)
{
cpu.SetPassword(new EncryptedString("Password"));
}
}

String exportFilePath = @"c:\export\DeviceInformation.csv";
Result retVal = scannedDevices.ExportDeviceInformation(exportFilePath);


ExportDeviceDiagnostics 方法

使用 ProgressChanged 事件监控设备诊断的导出进程

ExportDeviceDiagnostics 方法

ExportDeviceDiagnostics 方法创建并导出一个包含当前设备集合中各 CPU 诊断数据的 .csv 文件：.csv 文件中的列标题为英语。

返回类型 | 方法名称
Result | ExportDeviceDiagnostics

参数
名称 | 数据类型 | 参数类型 | 说明
ExportFilePath | string | In | 生成的导出文件的目标文件路径
Language | Language | In | 用于导出的诊断缓冲区条目的语言
Format | TimeFormat | In（可选） | 诊断条目日期和时间的显示格式

以下示例显示此方法的用法：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;
//--------------------------------------------------------------------
// Note: this example assumes Network NIC assignment has already been made
//
         参见
        SetCurrentNetworkInterface
//--------------------------------------------------------------------
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
return;

//--------------------------------------------------------------------------
//
        选择设备列表中的所有 CPU 以包含诊断信息
//--------------------------------------------------------------------------
foreach (IProfinetDevice profi in scannedDevices)
{
if((profi.Family == DeviceFamily.CPU1200)||(profi.Family == DeviceFamily.CPU1500)||
(profi.Family == DeviceFamily.CPU300) || profi.Family == DeviceFamily.CPU400))

    profi.Selected = true;
}

//--------------------------------------------------------------------

        //
        为所有需要密码才能访问设备信息的 CPU 设置密码。
//--------------------------------------------------------------------
List<ICPU> aCPUs = deviceCollection.FilterOnlyCpus();
foreach (ICPU cpu in aCPUs)
{
cpu.SetPassword(new EncryptedString("Password"));
}

//  借助 API，客户端应用程序可确定文件路径和名称

String exportFilePath = @"c:\export\Device\DeviceDiagnostics.csv";

IScanErrorCollection exportResult =
   scannedDevices.ExportDeviceDiagnostics(exportFilePath, Language.English,TimeFormat.Local);

对于集合中的每个 CPU，返回的错误集合指示是否已成功获取诊断数据。如果未提供所需的密码或发生网络错误，则该错误会在 CPU 中列出。错误导致 CPU 中将存储一个空的数据条目。

使用 ProgressChanged 事件监控设备诊断的导出进程

API 提供 ProgressChanged 事件以监控耗时可能过长的方法进程。ExportDeviceDiagnostics 是一种耗时可能过长的方法。

要使用 ProgressChanged 事件来监控 ExportDeviceDiagnostics 的进程，请将事件处理程序附加到该事件。然后，操作进程变化时会自动调用事件处理程序。

以下示例显示如何使用 ProgressChanged 事件监控设备诊断的导出进程。示例代码定义了一个事件处理程序，并将其附加到 ProgressChanged 事件。然后，代码调用 ExportDeviceDiagnostics 方法，这可能需要较长的时间。当 ExportDeviceDiagnostics 完成时，示例代码将事件处理程序与事件分离。

        Network myNetwork = new Network();

IProfinetDeviceCollection deviceCollection = null;

//
        调用序列以导出设备诊断
//
         扫描网络设备
IScanErrorCollection scanErrors = myNetwork.ScanNetworkDevices(out deviceCollection);

// 登入进程事件
deviceCollection.ProgressChanged += Export_ProgressChanged;

IScanErrorCollection ExportDeviceDiagnosticsErrors = deviceCollection.ExportDeviceDiagnostics(@"C:\MyDocuments\DeviceDiagnostics.csv", Language.English, TimeFormat.UTC);

// 删除进程事件登入

deviceCollection.ProgressChanged -= Export_ProgressChanged;

private static void Export_ProgressChanged(object sender,ExportProgressEventArgs e)
{
String strProgress = String.Format("Processing {0} of {1}", e.WorkItem, e.MaxEntries);
// 设置为真，以取消终止进程
e.Cancel = false;
}


手动将项目添加到集合中

手动将项目添加到集合中

该章节包括以下主题的信息:
  • 手动将项目添加到集合中
  • InsertDeviceByIP 方法
  • InsertDeviceByMAC 方法


手动将项目添加到集合中

手动将项目添加到集合中

根据工业网络的物理拓扑结构，网络上可能存在无法响应 DCP 命令的设备（例如 ScanNetworkDevices 方法使用的设备），但可以通过 IP 地址访问。用于插入设备的方法允许用户根据设备地址手动将设备添加到集合中。


InsertDeviceByIP 方法

InsertDeviceByIP 方法

返回类型 | 方法名称
Result | InsertDeviceByIP

参数
名称 | 数据类型 | 参数类型 | 说明
index | int | In | 集合中要插入值的位置
ip | uint | In | 要添加到集合的设备的 IP 地址

使用以下代码扫描网络，然后在指定的索引处手动添加特定 IP 地址的设备：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
    return;

UInt32 missingDeviceIPAddress = 0xC0A80001; // 192.168.0.1
Int32 index = 0;

Result retVal = scannedDevices.InsertDeviceByIP(index, missingDeviceIPAddress);


InsertDeviceByMAC 方法

InsertDeviceByMAC 方法

返回类型 | 方法名称
Result | InsertDeviceByMAC

参数
名称 | 数据类型 | 参数类型 | 说明
index | int | In | 集合中要插入值的位置
mac | ulong | In | 要添加到集合的设备的 MAC 地址

使用以下代码扫描网络，然后在指定的索引处手动添加特定 MAC 地址的设备：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
return;

UInt64 targetMAC = 0x112233445566; //
         相当于字符串 11:22:33:44:55:66
Int32 index = 0;

retVal = scannedDevices.InsertDeviceByMAC(index, targetMAC);


从集合中复制数据

从集合中复制数据

该章节包括以下主题的信息:
  • CopyUserData 方法


CopyUserData 方法

CopyUserData 方法

可能需要将用户输入的数据从一个 IProfinetDeviceCollection 复制到另一个中。API 不提示用户重新输入此信息，而是提供 CopyUserData 方法。

返回类型 | 方法名称
Result | CopyUserData

参数
名称 | 数据类型 | 参数类型 | 说明
oldNetwork | IProfinetDeviceCollection | In | 应用程序中之前使用的列表

以下代码将用户输入的数据从一网络扫描复制到另一扫描中。

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
    return;

IProfinetDeviceCollection rescannedDevices;
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out rescannedDevices);
if (!scanResult.Succeeded)
    return;

Result retVal = rescannedDevices.CopyUserData(scannedDevices);
if (!retVal.Succeeded)
    return;


从集合中移除设备

从集合中移除设备

该章节包括以下主题的信息:
  • Clear 方法
  • Remove 方法


Clear 方法

Clear 方法

返回类型 | 方法名称
void | Clear

参数
名称 | 数据类型 | 参数类型 | 说明
- |  |  |

此方法用于清除扫描到的设备中的内容。


Remove 方法

Remove 方法

返回类型 | 方法名称
void | Remove

参数
名称 | 数据类型 | 参数类型 | 说明
device | IProfinetDevice | In | 列表中待移除的设备。

此方法用于从集合中删除特定项。


IProfinetDevice 接口

IProfinetDevice 接口

该章节包括以下主题的信息:
  • IProfinetDevice 属性
  • IProfinetDevice 方法
  • IProfinetDevice 事件


IProfinetDevice 属性

DeviceFamily 模块属性和 IModuleCollection 类

IProfinetDevice 属性

IProfinetDeviceCollection 集合中的每一项都由 IProfinetDevice 接口表示。可通过此接口访问数据并对直接连接至工业网络的所有设备提供操作。

IProfinetDevice 接口支持以下特性，这些特性提供了有关网络设备的信息。这些属性都是只读的。为确保其能够返回当前信息，读取特性前应首先对设备调用 RefreshStatus 方法。

属性名称 | 返回类型 | 说明
ArticleNumber | string {get;} | 模块的订单号。也称为 MLFB 或“订货号”。
Comment | string {get;set;} | 用户可通过此属性指定设备注释，并在 SIMATIC Automation Tool 用户界面中使用。此注释与 API 操作无关。
Configured | bool {get;} | 当设备具有有效组态时为真
DefaultGateway | uint {get;} | 设备的默认网关地址，表示为一个无符号整数。编码的网关地址使用一个字节表示地址中的每个十进制值。例如，编码值 0xC0A80001 等同于更常见的字符串表示形式 192.168.0.1
DefaultGatewayString | string {get;} | 设备的默认网关地址，表示为“xx.xx.xx.xx”形式的字符串。 例如：192.168.0.1
Description | string {get;} | 硬件项描述，基于订货号。此描述与用户可在 TIA Portal 中看到的描述相同。 示例：CPU 1215 DC/DC/DC
DeviceFound | bool {get;} | 在网络扫描中是否发现了此设备？
DuplicateIP | bool {get;} | 该设备的 IP 地址是否重复？
DuplicateProfinetName | bool {get;} | 该设备的 PROFINET 名称是否重复？
Failsafe | bool {get;} | 根据其 ArticleNumber，此设备是否为故障安全设备？
Family | DeviceFamily {get;} | 此设备属于哪个产品系列？更多信息，请参见 DeviceFamily 枚举的描述。
FirmwareUpdateAllowed | bool {get;} | 该设备是否支持固件更新？
FirmwareVersion | string {get;} | 设备的当前固件版本
ID | uint {get;} | 工作站中每个设备和模块的唯一标识符。该标识符用作执行 FirmwareUpdate 时的唯一标识符。
HardwareNumber | short {get;} | 设备的硬件版本或“F-Stand”。（函数状态）
IP | uint {get;} | 设备的 IP 地址，表示为一个无符号整数。编码的 IP 地址使用一个字节表示 IP 地址中的每个十进制值。例如，编码值 0xC0A80001 等同于更常见的字符串表示形式“192.168.0.1” 注：SIMATIC Automation Tool 仅支持 IPv4 地址。不支持 Ipv6 地址。
IPString | string {get;} | 设备的 IP 地址，表示为“xx.xx.xx.xx”形式的字符串（例如 192.168.0.1）
MAC | ulong {get;} | 分配给设备的唯一 MAC 地址。编码的 MAC 地址使用一个字节对为该地址定义的 6 个八位字节进行编码。例如，编码的 MAC 地址 0x112233445566 等同于更常见的字符串表示形式 11:22:33:44:55:66。
MACString | string {get;} | 分配给设备的唯一 MAC 地址，表示为 11:22:33:44:55:66 形式的字符串
Modules | IModuleCollection {get;} | 插入工作站的模块集合。此处详细描述了该属性。
Name | string {get;} | 设备名称
NewFirmwareFile | string {get;} | 将用于固件更新的固件文件的位置
NewFirmwareNameErrorCode | Result {get;} | 附加至新固件名称的 ErrorCode
NewFirmwareNameIsValid | bool {get;} | 设置的固件文件是否有效？
NewFirmwareVersion | string {get;} | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
NewDefaultGateway | String {get;} | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
NewIP | String {get;set;} | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
NewProfinetName | String{get;set;} | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
NewProgramName | String {get;set;} | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
NewRestoreName | String{get;set;} | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
ProfinetName | String {get;} | 设备的 Profinet 名称
ResetToFactoryAllowed | bool {get;} | 设备是否支持 ResetToFactory？
Selected | bool {get;set;} | 将设备标记为选定设备，以便能够执行操作
SerialNumber | string {get;} | 设备的唯一序列号
Slot | uint {get;} | 硬件项的插槽号
SlotName | string {get;} | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
StationNumber | uint {get;} | 设备的站编号
SubSlot | uint {get;} | 设备的子插槽。这与 S7-1200 SB 模块等可插拔子模块相关。
Supported | bool {get;} | 如果数据库中存在订货号，并且当前 SIMATIC Automation Tool API 支持该设备，则为真。
SubnetMask | uint {get;} | 设备的子网掩码，表示为一个无符号整数。编码的子网掩码使用一个字节表示地址中的每个十进制值。例如，编码值 0xFFFFFF00 等同于更常见的字符串表示形式 255.255.255.0。
SubnetMaskString | string {get;} | 设备的子网掩码，表示为“xx.xx.xx.xx”形式的字符串（即 192.168.0.1）


IProfinetDevice 方法

IProfinetDevice 方法

该章节包括以下主题的信息:
  • RefreshStatus 方法
  • FirmwareUpdate 方法
  • Identify 方法
  • ResetCommunicationParameters 方法
  • SetIP 方法
  • SetProfinetName 方法
  • ValidateIPAddressSubnet 方法
  • ValidatePROFINETName 方法


RefreshStatus 方法

RefreshStatus 方法

返回类型 | 方法名称
Result | RefreshStatus

当 ScanNetworkDevices 方法创建 IProfinetDeviceCollection 时，扫描只会返回关于各设备的少量信息。要获取设备的所有可用信息，应调用 RefreshStatus 方法。此方法可以建立与设备的连接，查询各种信息，然后断开与设备的连接。

以下代码会为网络中的每个设备调用 RefreshStatus：

        Network myNetwork = new Network();
Result retVal = new Result();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded))
{
foreach (IProfinetDevice dev in scannedDevices)
{

retVal = dev.RefreshStatus();
if (retVal.Succeeded)
{
//-------------------------------------------------
//
        操作成功。数据可信任。
//-------------------------------------------------
}
}
}

RefreshStatus 方法连接到设备以读取信息。如果设备为 CPU，CPU 可能受密码保护。RefreshStatus 方法以及与 CPU 进行内部连接的所有方法都需要一个密码参数。
示例中显示了 IProfinetDevice 类别。ICPU 在调用 RefreshStatus 方法前需要在设备中设置密码。使用 SetPassword (EncryptedString) 方法设置密码。


FirmwareUpdate 方法

FirmwareUpdate 方法

返回类型 | 方法名称
Result | FirmwareUpdate

参数
名称 | 数据类型 | 参数类型 | 说明
hardwareID | uint | In | 模块的硬件标识符
bUpdateSameVersion | Bool | In | 如果为真，该方法将继续进行更新。如果更新文件与模块的当前固件的版本相同，更新将继续进行。

此方法将更新设备上指定硬件项 (hardwareID) 的固件版本。hardwareID 可指定设备本身或同一机架中的模块。

某些设备不支持固件更新功能。检查特性 FirmwareUpdateAllowed 以确保当前设备支持此功能。

以下示例代码用于搜索特定 IP 地址处的设备以及更新设备中的固件：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
    return;

uint targetIPAddress = 0xC0A80001; // 192.168.0.1
string updateFile = @"c:\myUpdates\6ES7 221-1BF32-0XB0 V02.00.00.upd";

IProfinetDevice dev = scannedDevices.FindDeviceByIP(targetIPAddress);
if (dev != null)
{
    Result retVal = dev.RefreshStatus();

if (!retVal.Succeeded)
        return;

dev.Selected = true;
    dev.SetFirmwareFile(updateFile);
    retVal = dev.FirmwareUpdate(dev.ID, true);
}

也可以使用 FirmwareUpdate 方法更新中心站中的模块的固件。以下代码显示了如何搜索特定地址的 CPU 以及如何搜索该 CPU 上具有特定订货号的模块。随后更新符合搜索条件的模块中的固件：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
string targetModule = @"6ES7 221-1BF32-0XB0";
string updateFile = @"c:\myUpdates\6ES7 221-1BF32-0XB0 V02.00.00.upd";

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);

if (!scanResult.Succeeded)
return;

IProfinetDevice dev = scannedDevices.FindDeviceByIP(targetIPAddress);
if (dev != null)
{

Result retVal = dev.RefreshStatus();
if (!retVal.Succeeded)
return;

//----------------------------------
//
        搜索 CPU 上的模块
//----------------------------------
IModuleCollection mods = dev.Modules;
foreach (IModule mod in mods)
{
if (mod.ArticleNumber == targetModule)
{
mod.Selected = true;
mod.SetFirmwareFile(updateFile);

//----------------------------------------
//
        更新符合条件的模块的固件
//----------------------------------------
dev.FirmwareUpdate(mod.ID, true);
}
}
}

请注意，FirmwareUpdate 方法在 CPU 上调用。传递给方法的 hardwareID 指示要更新的模块。

说明

Classic 和 Plus 固件更新文件

有两种不同类型的固件更新文件：

  • Classic 固件更新文件夹中包含组成固件更新的多个文件。此文件夹中的 header.upd 或 cpu_hd.upd 是传递给 FirmwareUpdate 方法的文件。

  • Plus 固件更新文件是单个更新文件。此文件是传递给 FirmwareUpdate 方法的文件。


Identify 方法

Identify 方法

返回类型 | 方法名称
Result | Identify

此方法会使特定网络设备的设备 LED 或 HMI 屏幕闪烁。闪烁光有助于识别设备的物理位置。

以下示例用于使 IP 地址为 192.168.0.1 的设备的 LED 或画面闪烁：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//-----------------------------------------------------------
//
        搜索该 IP 的设备，使其 LED/HMI 屏幕闪烁
//-----------------------------------------------------------
IProfinetDevice dev = scannedDevices.FindDeviceByIP(targetIPAddress);
if (dev != null)
{
retVal = dev.Identify();
}
}


ResetCommunicationParameters 方法

ResetCommunicationParameters 方法

返回类型 | 方法名称
Result | ResetCommunicationParameters

使用此方法将 PROFINET 设备的通信参数复位为出厂设置。这会设置下列参数：

  • 将 NameOfStation 设置为 ""（空字符串）

  • 将 IP 套件参数设置为 0.0.0.0

  • 将 DHCP 参数（如果可用）设置为出厂值

  • 将所有 P Dev 参数（PD IR 数据、PD 端口数据调整、PD 接口 MRP 数据调整 ...）均设置为出厂值

  • 将 SMNP 调整的参数，如 MIB-II 的 sysContact、sysName 和 sysLocation 均设置为出厂值

以下示例将针对特定 IP 地址的设备调用 ResetCommunicationParameters 方法：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001;  // 192.168.0.1
IProfinetDeviceCollection scannedDevices;

        IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//--------------------------------------------------------------------
//
        搜索该 IP 的设备，并将其复位
//--------------------------------------------------------------------
IProfinetDevice dev = scannedDevices.FindDeviceByIP(targetIPAddress);
if (dev != null)
{
Result retVal = dev.ResetCommunicationParameters();
}
}

说明

除非将 CPU 配置为智能设备，否则无法使用此方法复位 CPU。ICPU 接口提供了 ResetToFactoryDefaults 方法来复位 CPU。


SetIP 方法

将地址从字符串格式转换为编码的 uint 格式

SetIP 方法

返回类型 | 方法名称
Result | SetIP

参数
名称 | 数据类型 | 参数类型 | 说明
nIP | uint | In | 新编码的 IP 地址
nSubnet | uint | In | 新编码的子网地址
nGateway | uint | In | 新编码的网关地址

此方法用于设置或修改设备的 IP 地址。

要使此操作成功，必须为设备端口组态设置“直接在设备上设置 IP 地址”选项。

以下示例用于搜索指定 MAC 地址处的设备并设置其 IP 地址：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//------------------------------------------------
//
        搜索此 MAC 地址处的设备并设置 IP
//------------------------------------------------
IProfinetDevice dev = scannedDevices.FindDeviceByMAC(targetMACAddress);
if (dev != null)
{
Result retVal = dev.SetIP(0xC0A80001, 0xFFFFFF00, 0x0);
}
}

将地址从字符串格式转换为编码的 uint 格式

SetIP 方法要求地址为编码格式（如上所示）。可以使用以下 C# 代码将地址从字符串格式转换为编码的 uint 格式：

string userEnteredAddress = @"192.168.0.1"; // 示例

//-------------------------------
// 将字符串地址转换为 uint
//-------------------------------

System.Net.IPAddress ip = System.Net.IPAddress.Parse(userEnteredAddress);
byte[] bytes = ip.GetAddressBytes();
Array.Reverse(bytes);

uint encodedIp = BitConverter.ToUInt32(bytes, 0); // 可用的编码 IP 地址


SetProfinetName 方法

SetProfinetName 方法

返回类型 | 方法名称
Result | SetProfinetName

参数
名称 | 数据类型 | 参数类型 | 说明
strName | String | In | PROFINET 站的新名称

此方法用于设置或修改设备的 PROFINET 站名称。为确保此操作可成功执行，必须在 STEP 7 项目中将设备端口配置为“直接在设备上设置 PROFINET 名称”(PROFINET name is set directly on the device) 选项：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//------------------------------------------------
//
        搜索此 MAC 地址处的设备并设置 PROFINET 名称
//------------------------------------------------
IProfinetDevice dev = scannedDevices.FindDeviceByMAC(targetMACAddress);
if (dev != null)
{
Result retVal = dev.SetProfinetName("new name");
}
}


ValidateIPAddressSubnet 方法

ValidateIPAddressSubnet 方法

返回类型 | 方法名称
Result | ValidateIPAddressSubnet

参数
名称 | 数据类型 | 参数类型 | 说明
nIP | uint | In | IP 地址
nSubnetMask | uint | In | 子网掩码

使用此方法验证 IP 地址和子网掩码组合是否兼容。

以下示例用于搜索指定 MAC 地址处的设备，并验证设备的 IP 地址和子网掩码是否兼容：

        Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//------------------------------------------------
//
        搜索此 MAC 地址处的设备并设置 IP
//------------------------------------------------
IProfinetDevice dev = scannedDevices.FindDeviceByMAC(targetMACAddress);

if (dev != null)
{
Result retVal = dev.ValidateIPAddressSubnet(dev.IP, dev.SubnetMask);
}
}


ValidatePROFINETName 方法

ValidatePROFINETName 方法

返回类型 | 方法名称
Result | ValidatePROFINETName

参数
名称 | 数据类型 | 参数类型 | 说明
strName | string | In | 要验证的 PROFINET 名称

此方法用于验证提供的 PROFINET 名称。

以下示例用于搜索指定 MAC 地址处的设备，并验证给定 PROFINET 名称的有效性，然后将其分配至设备：

        Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//------------------------------------------------
//
        搜索此 MAC 地址处的设备并设置 IP
//------------------------------------------------
IProfinetDevice dev = scannedDevices.FindDeviceByMAC(targetMACAddress);

if (dev != null)
{
string name = "ValidName";
Result retVal = dev.ValidatePROFINETName(name);
if (retVal.Succeeded)
{
retVal = dev.SetProfinetName(name);
}
}
}


IProfinetDevice 事件

IProfinetDevice 事件

该章节包括以下主题的信息:
  • DataChanged 事件
  • ProgressChanged 事件


DataChanged 事件

DataChangedEventArgs 类

DataChanged 事件

IProfinetDevice 接口支持 DataChanged 事件。

此事件允许程序监视由 API 执行的其他操作是否引起了网络中给定设备的变更。例如，当程序保持对特定 IProfinetDevice 的引用时，可以检测此设备的变更。

对于网络中的每个设备，DataChanged 事件都附加了如下示例的代码：

private void AttachEvents(IProfinetDeviceCollection devices)
{
  foreach (IProfinetDevice dev in devices)
  {
    dev.DataChanged += new DataChangedEventHandler(Dev_DataChanged);
  }
}

private void DetachEvents(IProfinetDeviceCollection devices)
{
  foreach (IProfinetDevice dev in devices)
  {
    dev.DataChanged -= new DataChangedEventHandler(Dev_DataChanged);
}
}

        private void Dev_DataChanged(object sender, DataChangedEventArgs e)
{
if (e.Type == DataChangedType.OperatingState)
{
//
        设备操作状态已更改。在此响应更改。
}
}

此时，当 API 的任何操作引起设备的操作模式发生变化时，将调用 Dev_DataChanged 方法。

说明

DataChanged 事件不会主动监视实时网络，而会监视 IProfinetDevice 的属性。仅当此对象的状态发生变化时才会触发此事件。

DataChangedEventArgs 类

DataChanged 事件处理程序接收 DataChangedEventArgs 对象。如以上示例中所示，此类具有一个 DataChangedType 数据类型的单一属性“Type”。


ProgressChanged 事件

ProgressChangedEventArgs 类

ProgressChanged 事件

IProfinetDevice 接口支持 ProgressChanged 事件。

此事件允许程序监视用时较长的方法的进程。例如 FirmwareUpdate 方法。

事件中附加了一个事件处理程序以便应用此事件。当操作进程发生变化时，将调用此事件处理程序。

以下示例说明了如何监视执行进程。该示例介绍更新网络设备的固件的方法。此操作可能需要相当长的时间。方法在 ProgressChanged 事件中定义并附加了一个事件处理程序以便监视操作进度。固件更新完成后，事件处理程序将从事件中分离：

private void UpdateCpuAtAddress(IProfinetDeviceCollection devices,uint targetIPAddress, string updateFile)
{
    IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
    if (dev != null)
    {
        dev.ProgressChanged += new

        ProgressChangedEventHandler(Dev_ProgressChanged);
        dev.SetFirmwareFile(updateFile);
        dev.FirmwareUpdate(dev.ID, true);

        dev.ProgressChanged -= new

        ProgressChangedEventHandler(Dev_ProgressChanged);
    }
}

private void Dev_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    IProfinetDevice device = sender as IProfinetDevice;
    double percent = 0;
    if (device != null)
    {
        if (e.Count != 0)
        {
            string sPercent = e.Index.ToString() + " %";
        }
    }
}

ProgressChangedEventArgs 类

ProgressChanged 事件处理程序接收 ProgressChangedEventArgs 对象。此对象具有以下属性：

属性名称 | 返回类型 | 说明
Action | ProgressAction | 当前操作说明
Cancel | bool | 是否已取消操作？
Count | int | 要传送的总数据量
ID | uint | 硬件 ID
Index | int | 当前已传送的数据量


IModuleCollection 类和模块属性

IModuleCollection 类和模块属性

该章节包括以下主题的信息:
  • 模块属性和 IModuleCollection 类
  • IModule 接口


模块属性和 IModuleCollection 类

模块属性和 IModuleCollection 类

IProfinetDevice 接口提供有关站中的任何模块（如信号模块、信号板、CM 和 CP）的信息。模块特性返回这些模块的集合。

以下代码显示了如何访问已存在的给定 IProfinetDevice 的信息：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//---------------------------------------------------
//
        确保信息为当前的且为完整的信息，
//
        首先调用
         RefreshStatus()
//---------------------------------------------------
Result retVal = scannedDevices[0].RefreshStatus();
if (retVal.Succeeded)
{
//-----------------------------------------------------
//
        模块特性返回集合
        IModule
//-----------------------------------------------------
IModuleCollection modules = scannedDevices[0].Modules;
foreach (IModule mod in modules)
{
//---------------------------------------------------
//
        获取站中每个模块的订货号
//---------------------------------------------------
string displayArticleNum = mod.ArticleNumber;
}
}
}


IModule 接口

IModule 接口

站中的每个模块都表示为一个 IModule 接口。该接口提供了设备可用属性的子集。

IModule 接口不提供方法。必须在设备上启动对模块的所有操作。
IModule 接口支持以下特性：

属性名称 | 返回类型 | 说明
ArticleNumber | string | 模块的订单号。 也称为 MLFB 或“订货号”。
Comment | string | 用户可通过此属性指定设备注释，并在 SIMATIC Automation Tool 用户界面中使用。此注释与 API 操作无关。
Configured | bool | 当设备具有有效组态时为真
Description | string | 硬件项描述，基于订货号。此描述与用户可在 TIA Portal 中看到的描述相同。 （即“CPU-1215 DC/DC/DC”）
Failsafe | bool | 根据其 ArticleNumber，此设备是否为故障安全设备？
FirmwareUpdateAllowed | bool | 该设备是否支持固件更新？
FirmwareVersion | string | 设备的当前固件版本
ID | uint | 工作站中每个设备和模块的唯一标识符。该标识符用作执行 FirmwareUpdate 时的唯一标识符。
Name | string | 设备名称
NewFirmwareNameErrorCode | Result | 附加至新固件名称的 ErrorCode
NewFirmwareNameIsValid | bool | 固件文件对此设备或模块有效时为真
FirmwareVersion | string | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
Selected | bool | 当前是否已选中设备？即 GUI 中的复选框状态。
SerialNumber | string | 设备的唯一序列号
Slot | uint | 硬件项的插槽号
SlotName | string | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
StationNumber | uint | 设备的站编号
SubSlot | uint | 设备的子插槽。这与 S7-1200 SB 模块等可插拔子模块相关。
Supported | FeatureSupport | 当前的 SIMATIC Automation Tool 操作是否支持检测到的网络设备？


ICPU 接口

ICPU 接口

该章节包括以下主题的信息:
  • 识别 IProfinetDeviceCollection 中的 CPU 设备
  • ICPU 属性
  • ICPU 标志
  • ICPU 方法
  • RemoteInterfaces 属性


识别 IProfinetDeviceCollection 中的 CPU 设备

识别 IProfinetDeviceCollection 中的 CPU 设备

该 ScanNetworkDevices 方法 会生成一个 IProfinetDeviceCollection。该集合包含工业网络上每台可访问设备的一个项。这些设备可能包括 CPU 和分散式 I/O 站。

IProfinetDevice 接口提供适用于各类设备的属性和方法。但是，其中有一些属性和方法是特定于 CPU 设备的。可使用 ICPU 接口访问这些属性和方法。

要确定给定的 IProfinetDevice 接口是否确实表示一个 CPU 设备，只需将其转换为 ICPU。若转换成功，则表明该网络设备是 CPU 设备，并且可以使用 ICPU 接口上的属性/方法。以下示例说明了此过程：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in scannedDevices)
{
ICPU devAsCpu = dev as ICPU;
if (devAsCpu != null)
{
//-----------------------------------------------------
//
        该设备为 CPU。
//
        ICPU 接口可用于与之交互。
//-----------------------------------------------------
}
}
}

说明

ICPU 接口继承自 IProfinetDevice。因此，IProfinetDevice 支持的所有属性和方法也都受 ICPU 支持。
说明

必须设置 Selected 和 SelectedConfirmed 标志，然后才能够通过 API 在设备中执行操作。来自 ICPU 接口的所有函数都需要 Selected。如果 ICPU 代表安全操作，则必须设置 SelectedConfirmed。安全相关操作包括程序更新、格式化存储卡、复位为出厂设置和恢复。


ICPU 属性

ICPU 属性

ICPU 接口对 IProfinetDevice 进行了扩展，增加了以下属性。这些属性是只读的。为确保其能够返回当前信息，程序代码应首先调用 RefreshStatus 方法。

属性名称 | 返回类型 | 说明
RemoteInterfaces | List<IRemoteInterface> | 为 CPU 组态的所有远程 I/O 接口的列表。此属性的用法将在本文档的后续部分中介绍。
DataLogFolder | IRemoteFolder | CPU 的 SIMATIC 存储卡中有关所有数据日志的信息
RecipeFolder | IRemoteFolder | CPU 的 SIMATIC 存储卡中有关所有配方的信息
OperatingMode | OperatingState | 表示 CPU 的当前模式。该值是只读的。
IdentityCrisis | bool | 当无法确定设备的身份时为真
LastRefreshSuccessful | bool | 当对 RefreshStatus 的上一次调用成功完成时为真
SelectedConfirmed | bool | 当用户从操作的确认对话框中重新选择一个或多个设备并确认操作时，要执行与安全相关的操作的方法必须将 SelectedConfirmed 标志设置为真。SelectedConfirmed 表示已选择且已确认操作。
Initialized | bool | 当设备或模块具有有效组态时为真
InterfaceNumber | int | 用于连接设备的端口
Password | EncryptedString | 用于在设备上执行的函数中的 CPU 密码
PasswordProtectionLevel | ProtectionLevel | 合法 CPU 密码的保护等级
Protected | bool | CPU 当前是否受密码保护。这表示需要使用密码才能访问部分或全部功能，具体取决于访问级别。
PasswordValid | bool | 对 SetPassword() 的调用是否有效？

另请参见 RemoteInterfaces 属性


ICPU 标志

ICPU 标志

该章节包括以下主题的信息:
  • 程序更新标志
  • 恢复标志
  • 功能标志


程序更新标志

程序更新标志

要在设备上成功执行与安全相关的函数，需要从设备中获取更多信息。下列标志确保可在安全设备中正确且安全地执行“程序更新”(Program Update) 函数。

属性名称 | 返回类型 | 说明
NewProgramNamePassword | EncryptedString | 用于在程序更新完成后尝试建立连接的 CPU 密码。 通过使用 SetProgramPassword(EncryptedString) 来设置值。
HasSafetyProgram | bool | 设备中具有安全程序时布尔值置 1。这可在连接到 CPU 时确定。
NewProgramNameIsValid | bool | 当使用有效程序调用 SetProgramFolder 时为真。
NewProgramNameIsSafety | bool | 当使用有效的安全程序调用 SetProgramFolder 方法时为真。
NewProgramNameHasSafetyPassword | bool | 当使用有效的安全程序调用 SetProgramFolder 方法时为真。 打开标准程序时为假。
NewProgramNamePasswordIsValid | bool | 当使用有效密码调用 SetProgramPassword 方法时为真。
NewProgramNamePasswordIsSafety | bool | 当使用有效密码调用 SetProgramPassword 方法且新程序的密码具有安全的 F-CPU 密码时为真。
ProgramUpdateSucceeded | bool | 当 ProgramUpdate 方法成功时为真。 程序更新仍可返回错误。
NewProgramNamePasswordPresent | bool | 当调用 SetProgramFolder 方法且程序受密码保护时为真
NewProgramNamePasswordLevel | ProtectionLevel | 用于确定新程序的 CPU 密码的保护等级。
NewProgramName | string | 用于确定新程序的名称。
NewProgramFolder | string | 用于确定新程序的文件夹位置。 该值通过 SetProgramFolder 方法设置。
NewProgramNameFSignature | uint | 用于确定新项目的 FSignature 。 在比较流程中用于确定 ProgramUpdate 是否已成功完成
NewProgramNameIP | uint | 存储在新程序中的 IP 地址
NewProgramNameSubnetMask | uint | 新程序中设备的子网掩码
NewProgramNameGateway | uint | 新程序中设备的网关
NewProgramNameErrorCode | Result | 验证新程序时用于发现可能存在的问题（例如程序是否对设备无效或者程序中的 IP 是否已经存在于网络上）的可行方式
NewProgramNamePasswordErrorCode | Result | 存储上一次调用 SetProgramPassword 时的错误代码


恢复标志

恢复标志

API 中包括以下标志以便能够在安全设备中正确且安全地执行“从备份中恢复”(Restore from Backup) 函数。备份文件不包含所有程序更新信息，因为备份文件的内容与程序文件不同。

属性名称 | 返回类型 | 说明
NewRestoreNamePassword | EncryptedString | 用于在恢复完成后尝试建立连接的 CPU 密码。 通过使用 SetBackupFilePassword (EncryptedString) 来设置值。
NewRestoreNameIsValid | bool | 当调用 SetBackupFile 方法且恢复文件有效时为真
NewRestoreNameIsSafety | bool | 当调用 SetBackupFile 方法且恢复文件为安全的恢复文件时为真
NewRestoreNamePasswordIsValid | bool | 当调用 SetBackupFilePassword 包含有效密码时为真
NewRestoreNamePasswordIsSafety | bool | 当调用 SetBackupFilePassword 包含有效的安全密码时为真
RestoreSucceeded | bool | Restore 操作是否成功？
NewRestoreName | string | 用于确定新程序的名称。
NewRestoreFile | string | 用于确定新程序的文件位置。 该值通过 SetBackupFile 方法设置
NewRestoreNameFSignature | uint | 用于确定新项目的 FSignature。 在比较流程中用于确定 Restore 是否已成功完成
NewRestoreNameErrorCode | Result | 验证新程序时用于发现可能存在的问题（例如程序是否对设备无效或与设备不兼容）的可行方式


功能标志

功能标志

SIMATIC Automation Tool 的 ICPU 接口和 IHMI 接口中包括功能标志。这些标志的返回类型是 bool。

属性名称 | 返回类型 | 说明
ChangeModeAllowed | bool | CPU 支持模式更改操作时为真。（RUN 和 STOP）
BackupAllowed | bool | CPU 支持备份操作时为真
MemoryResetAllowed | bool | CPU 支持复位为出厂操作时为真
ProgramUpdateAllowed | bool | CPU 支持程序更新操作时为真
RestoreAllowed | bool | CPU 支持恢复操作时为真
FormatMCAllowed | bool | CPU 支持格式化存储卡操作时为真
PasswordAllowed | bool | CPU 支持使用密码时为真
RemoteRecipesAllowed | bool | CPU 支持配方操作时为真
RemoteDataLogsAllowed | bool | CPU 支持数据日志操作时为真
ServiceDataAllowed | bool | CPU 支持服务数据上传操作时为真
SetTimeAllowed | bool | CPU 支持设置及读取时间操作时为真
DiagBufferAllowed | bool | CPU 支持诊断缓冲区操作时为真


ICPU 方法

ICPU 方法

该章节包括以下主题的信息:
  • 受保护的 CPU 和密码
  • SetPassword 方法
  • SetProgramFolder 方法
  • SetProgramPassword 方法
  • ProgramUpdate 方法
  • SetBackupFile 方法
  • SetBackupFilePassword 方法
  • Restore 方法（ICPU 接口）
  • Backup 方法（ICPU 接口）
  • DownloadRecipe 方法
  • DeleteDataLog 方法
  • DeleteRecipe 方法
  • GetCurrentDateTime 方法
  • GetDiagnosticsBuffer 方法
  • MemoryReset 方法
  • ResetToFactoryDefaults 方法
  • SetOperatingState 方法
  • SetCurrentDateTime 方法
  • UploadDataLog 方法
  • UploadRecipe 方法
  • UploadServiceData 方法
  • FormatMemoryCard 方法
  • DetermineConfirmationMessage


受保护的 CPU 和密码

受保护的 CPU 和密码

ICPU 接口上的多数操作都需要与 CPU 进行合法连接，并且可能需要输入密码。因此，ICPU 接口上的大多数方法都需要密码参数。


SetPassword 方法

SetPassword 方法

返回类型 | 方法名称
Result | SetPassword

参数
名称 | 数据类型 | 参数类型 | 说明
password | EncryptedString | In | 为用于执行操作的对象设置 CPU 密码

SetPassword 方法设置 CPU 密码。调用 SetPassword 方法时，请在尝试设置密码之前检查 dev.Protected 特性。如果设备是受保护的，则 SetPassword 方法返回一个错误。以下示例显示 SetPassword 方法的使用：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{

            //------------------------------------------------
//
        搜索此 MAC 地址处的设备和 SetPassword
//------------------------------------------------
ICPU dev = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (dev != null)
{
if (dev.Protected)
{
Result retVal = dev.SetPassword(new EncryptedString("Password"));
}
}
}


SetProgramFolder 方法

SetProgramFolder 方法

返回类型 | 方法名称
Result | SetProgramFolder

参数
名称 | 数据类型 | 参数类型 | 说明
strFolder | string | In | 设置下载程序的文件夹位置

该方法会在 ICPU 对象中设置以下标志：

  • NewProgramFolder

  • NewProgramName

  • NewProgramNameIP

  • NewProgramNameSubnetMask

  • NewProgramNameGateway

  • NewProgramNameIsValid

当对安全对象执行上述操作时，可以设置以下属性：

  • NewProgramNameIsSafety

  • NewProgramNameHasSafetyPassword

以下示例说明了如何在设备中设置程序文件夹：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//------------------------------------------------
//
        搜索此 MAC 地址处的设备和 SetProgramFolder
//------------------------------------------------
ICPU dev = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (dev != null)
{
Result retVal = dev.SetProgramFolder(@"C:\MyFolder");
if (retVal.Error == ErrorCode.ProgramPasswordNeeded)
{
retVal = dev.SetProgramPassword(new EncryptedString("Password"));
}
}
}

说明

如果选择的程序具有密码，SetProgramFolder 会返回一个错误。如果 SetProgramFolder 返回错误，则调用 SetProgramPassword。


SetProgramPassword 方法

SetProgramPassword 方法

返回类型 | 方法名称
Result | SetProgramPassword

参数
名称 | 数据类型 | 参数类型 | 说明
password | EncryptedString | In | 设置要在 ProgramUpdate 期间传递给 CPU 的项目的 CPU 密码

执行 ProgramUpdate 后，应用程序会尝试重新连接至设备。如果位于 CPU 中的程序受密码保护，则设置更新的 CPU 密码可重新访问设备。

该方法会在 ICPU 对象上设置以下标志：

  • NewProgramNamePasswordIsValid

  • NewProgramNamePasswordIsSafety

  • NewProgramNamePasswordLevel

以下示例说明了如何在设备中设置更新的 CPU 密码：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//------------------------------------------------
//
        搜索此 MAC 地址处的设备和 SetProgramFolder
//------------------------------------------------
ICPU dev = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (dev != null)
{
Result retVal = dev.SetProgramFolder(@"C:\MyFolder");
if (retVal.Error == ErrorCode.ProgramPasswordNeeded)
{
retVal = dev.SetProgramPassword(new EncryptedString("Password"));
}
}
}


ProgramUpdate 方法

ProgramUpdate 方法

返回类型 | 方法名称
Result | ProgramUpdate

此方法用于在 CPU 上执行程序更新。

必须满足以下前提条件才能更新程序：

  • 必须选中设备。

  • 如果设备为故障安全设备，则 SelectedConfirmed 必须为真。

  • 必须设置对象的 NewProgramFolder。

  • 如果新程序包含 CPU 密码，则 NewProgramPasswordPresent 必须为真并已通过 SetProgramPassword. 设置值

  • 设备必须支持程序更新 (ProgramUpdateAllowed)。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection以及更新该 CPU 中的程序：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;
Result retVal = new Result();

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
ICPU cpu = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (cpu != null && cpu.ProgramUpdateAllowed == true)
{
//
        选中 CPU 以进行更新
cpu.Selected = true;

retVal = cpu.SetProgramFolder(@"C:\MyFolder");
if (retVal.Error == ErrorCode.ProgramPasswordNeeded)
{
retVal = cpu.SetProgramPassword(new EncryptedString("Password"));
if (retVal.Failed == true)
return;
}
if (retVal.Failed == true)
return;

//
        IP 地址是否唯一？
if (cpu.DuplicateIP == true)
return;

//
        设备是否受支持？
if (cpu.Supported == false)
return;

//
        设备是否已初始化？
if (cpu.Initialized == false)
return;

//
        是否为故障安全设备？
if (cpu.Failsafe == true)
{
ConfirmationType type = cpu.DetermineConfirmationMessage(FailsafeOperation.ProgramUpdateOperation);

//
        验证类型并确认
cpu.SelectedConfirmed = true;

//
        检查以确保可以更新
if (cpu.HasSafetyProgram == true || cpu.Protected == true ||cpu.NewProgramNameIsSafety == true)
{
//
        设备是否受密码保护？
if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

//
        是否具备合法化安全等级？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe;
if (bSufficientAccess == false)
return;

}
}
}
else
{
//
        是否要加载安全程序？
if (cpu.NewProgramNameHasSafetyPassword == true)
return;
}

//
        设备是否受密码保护？
if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

                    //
        是否具有足够的合法访问等级以成功执行操作？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe || cpu.PasswordProtectionLevel == ProtectionLevel.Full;
if (bSufficientAccess == false)
return;
}
//
        执行程序更新
retVal = cpu.ProgramUpdate();

//
        复位
cpu.SelectedConfirmed = false;
}
}

说明

传递至 ProgramUpdate 方法的文件夹名称应包含一个名为 SIMATIC.S7S 的文件夹。SIMATIC.S7S 文件夹包含要下载的程序。


SetBackupFile 方法

SetBackupFile 方法

返回类型 | 方法名称
Result | SetBackupFile

参数
名称 | 数据类型 | 参数类型 | 说明
strFile | string | In | 设置备份文件的位置

该方法会在 ICPU 对象上设置以下标志：

  • NewRestoreName

  • NewRestoreFile

  • NewRestoreNameIsValid

  • NewRestoreNameIsSafety

  • NewRestorenameFSignature

以下示例显示了设置备份文件路径的方式：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
ICPU cpu = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (cpu != null && cpu.RestoreAllowed == true)
{
//
        选中 CPU 以进行更新
cpu.Selected = true;

Result retVal = cpu.SetBackupFile(@"C:\MyFolder\Backup.s7pbkp");

if (retVal.Failed == true)
return;

//
        IP 地址是否唯一？
if (cpu.DuplicateIP == true)
return;

//
        设备是否受支持？
if (cpu.Supported == false)
return;

//
        设备是否已初始化？
if (cpu.Initialized == false)
return;

//
        是否为故障安全设备？
if (cpu.Failsafe == true)
{
ConfirmationType type =
cpu.DetermineConfirmationMessage(FailsafeOperation.RestoreOperation);

//
        验证类型并确认
cpu.SelectedConfirmed = true;

//
        检查以确保可以更新
if (cpu.HasSafetyProgram == true || cpu.Protected == true || cpu.NewRestoreNameIsSafety == true)
{
//
        设备是否受密码保护？
if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

//
        是否具备相应的安全等级？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe;
if (bSufficientAccess == false)
return;
}
}
}
else
{
//
        是否要加载安全程序？
if (cpu.NewRestoreNameIsSafety == true)
return;
}

//
        设备是否受密码保护？
if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

//
        是否具有足够的合法访问等级以成功执行操作？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe || cpu.PasswordProtectionLevel == ProtectionLevel.Full;
if (bSufficientAccess == false)
return;
}
//
        执行恢复
retVal = cpu.Restore();

//
        复位
cpu.SelectedConfirmed = false;
}
}

说明

如果所选备份文件具有 CPU 密码，则 SetBackupFile 返回异常。必须调用 SetBackupFilePassword 方法并成功返回，之后才能调用 Restore 方法。


SetBackupFilePassword 方法

SetBackupFilePassword 方法

返回类型 | 方法名称
Result | SetBackupFilePassword

参数
名称 | 数据类型 | 参数类型 | 说明
password | EncryptedString | In | 设置要在恢复期间传递给 CPU 的项目的密码

执行恢复后，应用程序会尝试重新连接至设备。如果 CPU 中加载的程序受密码保护，则设置更新的 CPU 密码可重新访问设备。

该方法会在 ICPU 对象中设置以下标志：

  • NewRestoreNamePassword

以下示例说明了如何在设备中设置更新的 CPU 密码：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
//------------------------------------------------
//
        搜索此 MAC 地址处的设备并设置备份文件密码
//------------------------------------------------
ICPU dev = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (dev != null)
{
if (dev.Protected)
{
Result retVal = dev.SetBackupFile(@"C:\MyFolder\MyCPUBackupFile.s7pbkup");
retVal = dev.SetBackupFilePassword(new EncryptedString("Password"));
}
}
}


Restore 方法（ICPU 接口）

Restore 方法（ICPU 接口）

返回类型 | 方法名称
Result | Restore

此方法用于从之前的 CPU 备份中恢复信息。某些 CPU 不支持备份/恢复功能。

要执行此操作，必须满足以下前提条件：

  • 必须选中设备。

  • 如果设备为故障安全设备，则 SelectedConfirmed 必须为真。

  • 必须设置对象的 NewProgramFolder。

  • 如果新程序包含 CPU 密码，则 NewProgramPasswordPresent 必须为真并已通过 SetProgramPassword 设置了值

  • 必须支持 Restore 以便执行操作 (RestoreAllowed)。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection。成功搜索到后，检查受密码保护的 CPU 是否支持恢复功能，然后对不含 CPU 密码的备份文件调用 Restore 方法：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
string bkFile = @"C:\MyCPUBackupFile.s7pbkp";
IProfinetDeviceCollection devices;
Result retVal = new Result();

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out devices);
if (scanResult.Succeeded)
{
    IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
    if (dev != null)
    {
        ICPU devAsCpu = dev as ICPU;
        if (devAsCpu != null && devAsCpu.RestoreAllowed)
        {
            retVal = devAsCpu.SetPassword(new EncryptedString("Password"));
            retVal = devAsCpu.SetBackupFile(bkFile);
            devAsCpu.Selected = true;
            if (devAsCpu.Failsafe)
                devAsCpu.SelectedConfirmed = true;

            retVal = devAsCpu.Restore();
        }
    }
}


Backup 方法（ICPU 接口）

Backup 方法（ICPU 接口）

返回类型 | 方法名称
Result | Backup

参数
名称 | 数据类型 | 参数类型 | 说明
strFile | string | In | 要存储备份文件的完全限定路径和文件名

此方法用于备份 CPU 中的数据。某些 CPU 不支持备份/恢复功能。可以检查 BackupAllowed 属性，以确保当前 CPU 支持此功能。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection。成功搜索到后，检查 CPU 是否支持备份功能，然后调用 Backup 方法：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
string bkFile = @"C:\MyCPUBackupFile.s7pbkp";
IProfinetDeviceCollection devices;
Result retVal = new Result();

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out devices);
if (scanResult.Succeeded)
{
    foreach (IProfinetDevice dev in devices)
    {
        ICPU devAsCpu = dev as ICPU;

        if (devAsCpu != null && devAsCpu.IP == targetIPAddress && devAsCpu.BackupAllowed)
        {
            devAsCpu.Selected = true;
            retVal = devAsCpu.Backup(bkFile);
        }
    }
}


DownloadRecipe 方法

DownloadRecipe 方法

返回类型 | 方法名称
Result | DownloadRecipe

参数
名称 | 数据类型 | 参数类型 | 说明
strFile | string | In | 要从编程设备下载至 CPU 存储卡的配方文件的完整路径和文件名

此方法用于向 CPU 存储卡中添加或替换其中的配方 .CSV 文件。某些 CPU 不支持远程访问配方。可以检查 RemoteRecipesAllowed 属性，以确保当前 CPU 支持此功能。以下代码示例显示了如何向 CPU 存储卡写入配方：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
string rcpFile = @"C:\NewRecipe.csv";
IProfinetDeviceCollection devices;

Result retVal = myNetwork.ScanNetworkDevices(out devices);
if (retVal.Succeeded)
{
    foreach (IProfinetDevice dev in devices)
    {
        ICPU devAsCpu = dev as ICPU;
        if ((devAsCpu != null) &&
            (devAsCpu.IP == targetIPAddress) &&
            (devAsCpu.RemoteRecipesAllowed))
        {
            retVal = devAsCpu.SetPassword(new EncryptedString("Password"));
            IRemoteFolder recipes = devAsCpu.RecipeFolder;
            recipes.Selected = true;
            recipes.SetRemoteFile(rcpFile);
            retVal = devAsCpu.DownloadRecipe(rcpFile);

        }
    }
}

说明

如果 CPU 存储卡上已存在具有相同名称的配方，则会替换已有配方。


DeleteDataLog 方法

DeleteDataLog 方法

返回类型 | 方法名称
Result | DeleteDataLog

参数
名称 | 数据类型 | 参数类型 | 说明
strFileName | string | In | 待从 CPU 存储卡中删除的数据日志文件的文件名

此方法用于从 CPU 存储卡中删除数据日志文件。

某些 CPU 不支持远程访问数据日志。检查 RemoteDataLogsAllowed 属性以确保当前 CPU 支持此功能。

以下代码示例实现了使用 DataLogFolder 属性迭代 CPU 存储卡中的所有数据日志。删除所有数据日志：

Network myNetwork = new Network();
IProfinetDeviceCollection devices;

        IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in devices)
{
ICPU devAsCpu = dev as ICPU;
if (devAsCpu != null)
{
if (devAsCpu.RemoteDataLogsAllowed)
{
//------------------------------------------
//
        首先检查存储卡中的数据日志是否可用
//------------------------------------------
if (devAsCpu.DataLogFolder.Exists)
{
devAsCpu.SetPassword(new EncryptedString("Password"));
//------------------------------------------
//
        搜索所有数据日志文件
//------------------------------------------
foreach (IRemoteFile datalog in
devAsCpu.DataLogFolder.Files)
{
datalog.Selected = true;
//------------------------------------------
//
        删除数据日志
//------------------------------------------
devAsCpu.DeleteDataLog(datalog.Name);
}
}
}
}
}
}


DeleteRecipe 方法

DeleteRecipe 方法

返回类型 | 方法名称
Result | DeleteRecipe

参数
名称 | 数据类型 | 参数类型 | 说明
strFileName | string | In | 待从 CPU 存储卡中删除的配方文件的文件名

此方法用于从 CPU 存储卡中删除配方文件。

某些 CPU 不支持远程访问配方。检查 RemoteRecipesAllowed 属性以确保当前 CPU 支持此功能。

以下代码示例实现了使用 RecipeFolder 属性迭代 CPU 存储卡中的所有配方。删除所有配方：

Network myNetwork = new Network();
IProfinetDeviceCollection devices;

        IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in devices)
{
ICPU devAsCpu = dev as ICPU;
if (devAsCpu != null)
{
if (devAsCpu.RemoteDataLogsAllowed)
{
//------------------------------------------
//
        首先检查存储卡中的配方是否可用
//------------------------------------------
if (devAsCpu.RecipeFolder.Exists)
{
devAsCpu.SetPassword(new EncryptedString("Password"));
//------------------------------------------
//
        搜索所有配方
//------------------------------------------
foreach (IRemoteFile recipe in devAsCpu.RecipeFolder.Files)
{
recipe.Selected = true;
//------------------------------------------
//
        删除配方
        .
//------------------------------------------
devAsCpu.DeleteRecipe(recipe.Name);
}
}
}
}
}
}


GetCurrentDateTime 方法

GetCurrentDateTime 方法

返回类型 | 方法名称
Result | GetCurrentDateTime

参数
名称 | 数据类型 | 参数类型 | 说明
DateTime | System.DateTime | Out | 从 CPU 返回的当前日期和时间

此方法用于获取 CPU 的当前时间戳。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection 以及获取其当前日期和时间：

Network myNetwork = new Network();
IProfinetDeviceCollection devices;

uint targetIPAddress = 0xC0A80001; // 192.168.0.1

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out devices);
if (!scanResult.Succeeded)
    return;

foreach (IProfinetDevice dev in devices)
{
    ICPU devAsCpu = dev as ICPU;
    if ((devAsCpu != null) && (devAsCpu.IP == targetIPAddress))
    {
        devAsCpu.SetPassword(new EncryptedString("Password"));
        devAsCpu.Selected = true;

        DateTime curTime = new DateTime();

        Result retVal = devAsCpu.GetCurrentDateTime(out curTime);
    }
}


GetDiagnosticsBuffer 方法

GetDiagnosticsBuffer 方法

返回类型 | 方法名称
Result | GetDiagnosticsBuffer

参数
名称 | 数据类型 | 参数类型 | 说明
DiagnosticsItems | List<DiagnosticsItem> | Out | 诊断项的集合：集合中的每一项代表诊断缓冲区中的一个条目。
Language | Language | In | 请求用于诊断缓冲区条目的语言。

此方法用于读取 CPU 的当前诊断条目。GetDiagnosticsBuffer 方法会返回 DiagnosticsItem 对象的集合。以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection。成功搜索到后，将从 CPU 读取诊断信息。使用 Language enum 参数获取采用特定语言的诊断条目：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
List<DiagnosticsItem> aLogs = new List<DiagnosticsItem>();
IProfinetDeviceCollection devices;
Result retVal = new Result();

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
    foreach (IProfinetDevice dev in devices)
    {
        ICPU devAsCpu = dev as ICPU;
        if ((devAsCpu != null) && (devAsCpu.IP == targetIPAddress))
        {
            devAsCpu.SetPassword(new EncryptedString("Password"));
            devAsCpu.Selected = true;
            retVal = devAsCpu.GetDiagnosticsBuffer(out aLogs, Language.English);
            if (retVal.Succeeded)
            {
                for (int idxLog = 0; idxLog < aLogs.Count; idxLog++)
                {
                //get information time stamp
                string descrTimes = aLogs[idxLog].TimeStamp.ToString();

                //get information basic description
                string descrBasic = aLogs[idxLog].Description1;

                //get information detailed description
                string descrDetail = aLogs[idxLog].Description2;

                //get information state (incoming/outgoing)
                string descrState = aLogs[idxLog].State.ToString();

                }
            }
        }
    }
}


MemoryReset 方法

MemoryReset 方法

返回类型 | 方法名称
Result | MemoryReset

此方法用于在 CPU 上执行存储器复位。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection，并对此 CPU 调用 MemoryReset 方法：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
IProfinetDeviceCollection devices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
    IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
    if (dev != null)
    {
        ICPU devAsCpu = dev as ICPU;
        if (devAsCpu != null)
        {
            devAsCpu.SetPassword(new EncryptedString("Password"));
            devAsCpu.Selected = true;
            Result retVal = devAsCpu.MemoryReset();
        }
    }
}


ResetToFactoryDefaults 方法

ResetToFactoryDefaults 方法

返回类型 | 方法名称
Result | ResetToFactoryDefaults

参数
名称 | 数据类型 | 参数类型 | 说明
password | EncryptedString | In | 此方法用于与设备建立合法连接。因此，可能需要密码。

该方法用于将 CPU 复位为其出厂默认值。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection 并调用 ResetToFactoryDefaults 方法。对于故障安全设备，必须将 SelectedConfirmed 标志设置为真：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
ICPU cpu = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (cpu != null && cpu.ResetToFactoryAllowed == true)
{
//
        选中 CPU 以进行更新
cpu.Selected = true;

//
        IP 地址是否唯一？
if (cpu.DuplicateIP == true)
return;

//
        设备是否受支持？
if (cpu.Supported == false)
return;

//
        设备是否已初始化？
if (cpu.Initialized == false)
return;

//
        是否为故障安全设备？
if (cpu.Failsafe == true)  { ConfirmationType type = cpu.DetermineConfirmationMessage(FailsafeOperation.ResetToFactoryOperation);
//
        验证类型并确认
cpu.SelectedConfirmed = true;

//
        检查以确保可以更新
if (cpu.HasSafetyProgram == true || cpu.Protected == true || cpu.NewRestoreNameIsSafety == true)
{
//
        设备是否受密码保护？
if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

//
        是否具备相应的安全等级？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe;
if (bSufficientAccess == false)
return;
}
}
}
else
{
//
        是否为要加载的安全程序？
if (cpu.NewRestoreNameIsSafety == true)
return;
}
//
        设备是否受密码保护？
if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

//
        是否具有足够的合法访问等级以成功执行操作？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe || cpu.PasswordProtectionLevel == ProtectionLevel.Full;
if (bSufficientAccess == false)
return;
}
//
        执行复位为出厂默认值
Result retVal = cpu.ResetToFactoryDefaults();

//
        复位
cpu.SelectedConfirmed = false;
}
}


SetOperatingState 方法

SetOperatingState 方法

返回类型 | 方法名称
Result | SetOperatingState

参数
名称 | 数据类型 | 参数类型 | 说明
nRequestState | OperatingStateREQ | In | 新操作状态

此方法用于切换 CPU 的操作状态。

某些 CPU 不支持此功能。检查 ChangeModeAllowed 属性以确保当前 CPU 支持此功能。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection。成功搜索到后，检查 CPU 是否支持切换模式功能，然后将 CPU 置于 RUN 模式：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
IProfinetDeviceCollection devices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
    IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
    if (dev != null)
    {
        ICPU devAsCpu = dev as ICPU;
        if ((devAsCpu != null) && (devAsCpu.ChangeModeAllowed))
        {
            devAsCpu.SetPassword(new EncryptedString("Password"));
            devAsCpu.Selected = true;
            Result retVal = devAsCpu.SetOperatingState(OperatingStateREQ.Run);
        }
    }
}


SetCurrentDateTime 方法

SetCurrentDateTime 方法

返回类型 | 方法名称
Result | SetCurrentDateTime

参数
名称 | 数据类型 | 参数类型 | 说明
password | EncryptedString | In | 此方法用于与设备建立合法连接。因此，可能需要密码
time | System.DateTime | In | 新的 CPU 当前时间值

此方法用于设置 CPU 的当前时间。已组态的时间转换规则不受此操作影响。因此，指定的 DateTime 值将基于 UTC 时间非本地时间。

以下示例遍历整个工业网络，并将每个 CPU 设备的当前时间设置为编程设备的当前时间：

Network myNetwork = new Network();
IProfinetDeviceCollection devices;

Result retVal = new Result();

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
    foreach (IProfinetDevice dev in devices)
    {
        ICPU devAsCpu = dev as ICPU;
        if (devAsCpu != null)
        {
            devAsCpu.SetPassword(new EncryptedString("Password"));
            devAsCpu.Selected = true;
            retVal = devAsCpu.SetCurrentDateTime(DateTime.UtcNow);
        }
    }
}


UploadDataLog 方法

UploadDataLog 方法

返回类型 | 方法名称
Result | UploadDataLog

参数
名称 | 数据类型 | 参数类型 | 说明
strFileName | string | In | 要从 CPU 的可移动 SIMATIC 存储卡上传的数据日志的文件名
strDestinationFolder | string | In | 存储上传的数据日志文件的完全限定路径

此方法用于将指定数据日志文件的副本从 CPU 存储卡上传至编程设备。某些 CPU 不支持远程访问数据日志。检查 RemoteDataLogsAllowed 属性以确保当前 CPU 支持此功能。
以下代码示例实现了使用 DataLogFolder 属性迭代 CPU 存储卡中的所有数据日志。将所有数据日志的副本上传至 C:\MyDataLogs 文件夹中：

Network myNetwork = new Network();
IProfinetDeviceCollection devices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in devices)
{
ICPU devAsCpu = dev as ICPU;
if (devAsCpu != null)
{
devAsCpu.SetPassword(new EncryptedString("Password"));

if (devAsCpu.RemoteDataLogsAllowed)
{
//------------------------------------------
//
        首先检查存储卡中的数据日志是否可用
//------------------------------------------
if (devAsCpu.DataLogFolder.Exists)
{
//------------------------------------------
//
        搜索所有数据日志文件
//------------------------------------------
foreach (IRemoteFile datalog in devAsCpu.DataLogFolder.Files)
{
datalog.Selected = true;
//------------------------------------------
//
        上传每个数据日志的副本
//------------------------------------------
devAsCpu.UploadDataLog(datalog.Name, @"C:\MyDataLogs");
}
}
}
}
}
}


UploadRecipe 方法

UploadRecipe 方法

返回类型 | 方法名称
Result | UploadRecipe

参数
名称 | 数据类型 | 参数类型 | 说明
strFileName | string | In | 要从 CPU 存储卡中上传的配方的文件名
strDestinationFolder | string | In | 写入上传的配方文件的完全限定路径

此方法用于从 CPU 存储卡上传配方文件副本。某些 CPU 不支持远程访问配方。检查 RemoteRecipesAllowed 属性以确保当前 CPU 支持此功能。

以下代码示例实现了使用 RecipeFolder 属性迭代 CPU 存储卡中的所有配方。将所有配方文件的副本上传至 C:\MyRecipes 文件夹中：

Network myNetwork = new Network();
IProfinetDeviceCollection devices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out devices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in devices)
{
ICPU devAsCpu = dev as ICPU;
if (devAsCpu != null)
{
devAsCpu.SetPassword(new EncryptedString("Password"));
if (devAsCpu.RemoteRecipesAllowed)
{
//------------------------------------------
//
        首先检查存储卡中的配方是否可用。
//------------------------------------------
if (devAsCpu.RecipeFolder.Exists)
{
//------------------------------------------
//
        搜索所有配方文件
//------------------------------------------
foreach (IRemoteFile recipe in devAsCpu.RecipeFolder.Files)
{
recipe.Selected = true;
//------------------------------------------
//
        上传每个配方的副本。
//------------------------------------------
devAsCpu.UploadRecipe(recipe.Name, @"C:\MyRecipes");
}
}
}
}
}
}


UploadServiceData 方法

UploadServiceData 方法

返回类型 | 方法名称
Result | UploadServiceData

参数
名称 | 数据类型 | 参数类型 | 说明
strPath | string | In | 包含程序卡内容的文件夹的完全限定路径
format | TimeFormat | In（可选） | 日期和时间的显示格式。可能值为 UTC 和“本地”。若未提供，则格式为“本地”。

此方法可以从存在故障的 CPU 中上传服务数据。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection。然后检查 CPU 的当前 OperatingState。如果 CPU 存在故障，则将上传服务数据：

Network myNetwork = new Network();
IProfinetDeviceCollection devices;

uint targetIPAddress = 0xC0A80001; // 192.168.0.1
string strDiagFolder = @"c:\Diagnostics";

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
if (dev != null)
{
ICPU devAsCpu = dev as ICPU;

if (devAsCpu != null)
{
devAsCpu.SetPassword(new EncryptedString("Password"));
devAsCpu.Selected = true;
if (devAsCpu.OperatingMode == OperatingState.Defective)
{
//
        获取采用默认本地时间戳格式的服务数据
Result retVal = devAsCpu.UploadServiceData(strDiagFolder);

//
        获取采用 UTC 时间戳格式的服务数据
Result retVal = devAsCpu.UploadServiceData(strDiagFolder, TimeFormat.UTC);
}
}
}
}


FormatMemoryCard 方法

FormatMemoryCard 方法

返回类型 | 方法名称
Result | FormatMemoryCard

此方法用于格式化插入 CPU 的可移动 SIMATIC 存储卡。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection。然后格式化设备的存储卡。对于故障安全设备，必须将 SelectedConfirmed 标志设置为真：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
ICPU cpu = scannedDevices.FindDeviceByMAC(targetMACAddress) as ICPU;
if (cpu != null && cpu.FormatMCAllowed == true)
{
//
        选中 CPU 以进行更新
cpu.Selected = true;

//
        IP 地址是否唯一？
if (cpu.DuplicateIP == true)
return;

//
        设备是否受支持？
        ?
if (cpu.Supported == false)
return;

//
        设备是否已初始化？
if (cpu.Initialized == false)
return;

//
        是否为故障安全设备？
if (cpu.Failsafe == true)
{
ConfirmationType type = cpu.DetermineConfirmationMessage(FailsafeOperation.ResetToFactoryOperation);

//
        验证类型并确认
cpu.SelectedConfirmed = true;

//
        检查以确保可以更新
if (cpu.HasSafetyProgram == true || cpu.Protected == true || cpu.NewRestoreNameIsSafety == true)
{
// Is the device password protected?if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

//
        是否具备相应的安全等级？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe;
if (bSufficientAccess == false)
return;
}
}
}
else
{
//
        是否为要加载的安全程序？
if (cpu.NewRestoreNameIsSafety == true)
return;
}

//
        设备是否受密码保护？
if (cpu.Protected == true)
{
//
        是否提供了有效密码？
if (cpu.PasswordValid == false)
return;

//
        是否具有足够的合法访问等级以成功执行操作？
bool bSufficientAccess = cpu.PasswordProtectionLevel == ProtectionLevel.Failsafe || cpu.PasswordProtectionLevel == ProtectionLevel.Full;
if (bSufficientAccess == false)
return;
}
//
        格式化存储卡
Result retVal = cpu.FormatMemoryCard();

//
        复位
cpu.SelectedConfirmed = false;
}
}


DetermineConfirmationMessage

DetermineConfirmationMessage

返回类型 | 方法名称
ConfirmationType | DetermineConfirmationMessage

参数
名称 | 数据类型 | 参数类型 | 说明
operation | FailsafeOperation | In | 评估的操作

当用户尝试执行安全相关操作时，此方法用于确定确认消息中包含的内容。

ConfirmationType 类包含一系列汉明码，其中每个汉明码都代表一条应向用户显示的错误消息，如下所示：

ConfirmationType | 要显示的消息
SafetyPasswordIsBeingUsed | 将使用安全 CPU 密码启动对标准程序的操作。
DeletingExistingSafetyProgram | 将删除现有安全程序。
ReplacingExistingSafetyProgram | 将使用其它安全程序更新现有安全程序。
ReplacingExistingSafetyProgramWithNonSafetyProgram | 现有安全程序将替换为标准程序。
LoadingSafetyProgram | 安全程序将首次加载。

以下示例用于搜索特定 IP 地址处 CPU 的 IProfinetDeviceCollection。此方法用于在执行安全相关操作前，在用户确认对话框中显示有关安全相关状态的消息：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
IProfinetDeviceCollection devices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out devices);
if (scanResult.Succeeded)
{
    IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
    if (dev != null)
    {
        ICPU devAsCpu = dev as ICPU;
        if (devAsCpu != null)
        {
            devAsCpu.SetPassword(new EncryptedString("Password"));
            devAsCpu.Selected = true;
            if (devAsCpu.Failsafe)
            {
                devAsCpu.SelectedConfirmed = true;
            }
            ConfirmationType confirm = devAsCpu.DetermineConfirmationMessage(FailsafeOperation.FormatMCOperation);

            if (confirm == ConfirmationType.DeletingExistingSafetyProgram)
                devAsCpu.FormatMemoryCard();
        }
    }
}


RemoteInterfaces 属性

RemoteInterfaces 属性

该章节包括以下主题的信息:
  • 分散式 I/O 模块
  • IRemoteInterface 属性


分散式 I/O 模块

分散式 I/O 模块

每个 CPU 可支持多个分散式 I/O 接口。可通过 ICPU 接口的 RemoteInterfaces 属性获取有关附加在这些远程接口中的设备的信息。

以下示例说明了如何访问网络中所有 CPU 的此类信息：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in scannedDevices)
{
ICPU devAsCpu = dev as ICPU;

List<IRemoteInterface> decentalNets = devAsCpu.RemoteInterfaces;
foreach (IRemoteInterface net in decentalNets)
{
//-----------------------------------------------------------
//
        检查远程接口
//-----------------------------------------------------------
}
}
}


IRemoteInterface 属性

IRemoteInterface 属性

IRemoteInterface 接口支持以下属性。这些属性是只读的。

属性名称 | 返回类型 | 说明
Devices | List<IBaseDevice> | 所有连接至此远程接口的分散式 I/O 站的列表
InterfaceType | RemoteInterfaceType | 此远程接口的通信协议 另请参见 RemoteInterfaceType 枚举
Name | string | 远程接口的已组态名称

可使用 Devices 属性遍历分散式网络。分散式网络中的每个设备都由一个 IBaseDevice 接口表示。该接口具有一个可用于 IProfinetDevice 的子属性集，并提供这些设备可用的有限 SIMATIC Automation Tool API 功能。

IBaseDevice 接口上提供以下属性：

属性名称 | 返回类型 | 说明
ArticleNumber | string | 模块的订单号。也称为 MLFB 或订货号。
Comment | string | 用户可通过此属性指定设备注释。并在 SIMATIC Automation Tool 用户界面中使用。此属性与 API 操作无关。
Configured | bool | 设备是否具有有效组态？
Description | string | 基于订货号的硬件项描述。此描述与用户在 TIA Portal 中看到的描述相同。 （即“CPU-1215 DC/DC/DC”）
Failsafe | FeatureSupport | 根据其订货号，此设备是否为故障安全设备？
Family | DeviceFamily | 此设备属于哪个产品系列？更多信息，请参见 DeviceFamily 枚举的描述。
FirmwareUpdateAllowed | FeatureSupport | 该设备是否支持固件更新？
FirmwareVersion | string | 设备的当前固件版本
HardwareInFirmwareOrder | IHardwareCollection | 固件顺序中的硬件集
HardwareInDisplayOrder | IHardwareCollection | 显示顺序中的硬件
HardwareNumber | short | 编号标识符
ID | uint | 工作站中每个设备和模块的唯一标识符。该标识符用作执行 FirmwareUpdate 时的唯一标识符。
Modules | IModuleCollection | 连接至工作站的本地模块集合。此处详细描述了该属性。
Name | string | 设备名称
NewFirmwareFile | string | 新固件文件的文件路径
NewFirmwareVersion | string | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
NewFirmwareNameIsValid | bool | 新固件文件是否有效？
Selected | bool | 是否已选中设备？
SerialNumber | string | 设备的唯一序列号
Slot | uint | 硬件项的插槽号
SlotName | string | 此属性用于 SIMATIC Automation Tool 用户界面中。此属性与 API 操作无关。
StationNumber | uint | 设备的站编号
SubSlot | uint | 设备的子插槽。这与 SB-1200 等可插拔子模块相关。
Supported | FeatureSupport | 当前的 SIMATIC Automation Tool API 操作是否支持检测到的网络设备？

使用 IRemoteInterface 设备属性，可以检查分散式网络中的所有站。

以下示例扩展了 分散式 I/O 模块 主题中的示例：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (!scanResult.Succeeded)
return;

foreach (IProfinetDevice dev in scannedDevices)
{
ICPU devAsCpu = dev as ICPU;
if (devAsCpu == null)
continue;

List<IRemoteInterface> decentalNets = devAsCpu.RemoteInterfaces;
List<string> orderNumbers = new List<string>();

foreach (IRemoteInterface net in decentalNets)
{
//-----------------------------------------------------------
//
        检查远程接口
//-----------------------------------------------------------
if (net.InterfaceType == RemoteInterfaceType.Profinet)
{
//-------------------------------------------------------
//
        查看每个分散式站
//-------------------------------------------------------
List<IBaseDevice> stations = net.Devices;

foreach (IBaseDevice station in stations)
{
orderNumbers.Add(station.ArticleNumber);
}
}
}
}

此示例遍历所有远程 PROFINET 接口，并创建一个包含工业网络中的所有分散式站的订货号的列表。

同时 IBaseDevice 还支持 Modules 属性，可以很容易地进一步扩展示例，从而可以查看分散式工作站以及每个站中的所有本地模块。


ICPUClassic 接口

ICPUClassic 接口

该章节包括以下主题的信息:
  • 识别 IProfinetDeviceCollection 中的经典 CPU 设备
  • GetDiagnosticsBuffer 方法


识别 IProfinetDeviceCollection 中的经典 CPU 设备

识别 IProfinetDeviceCollection 中的经典 CPU 设备

该 ScanNetworkDevices 方法 会生成一个 IProfinetDeviceCollection。该集合包含工业网络上每台可访问设备的一个项。这些设备可以包括 S7‑300 和 S7‑400（经典）CPU。

IProfinetDevice 接口 提供适用于各类设备的属性和方法。但是，有一个方法是特定于经典 CPU 设备的。可使用 ICPUClassic 接口访问此方法 GetDiagnosticsBuffer。

要确定给定的 IProfinetDevice 接口是否表示一个经典的 CPU 设备，只需将其转换为 ICPUClassic。若转换成功，则表明该网络设备是经典的 CPU，并且可以使用 ICPUClassic 接口的方法。以下示例说明了此转换过程：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in scannedDevices)
{
ICPUClassic devAsClassicCpu = dev as ICPUClassic;
if (devAsClassicCpu != null)
{
//-----------------------------------------------------
//
        该设备为经典 CPU。
//
        ICPUClassic 接口可用于与之交互。
//-----------------------------------------------------
}
}
}

说明

ICPUClassic 接口继承自 IProfinetDevice。因此，IProfinetDevice 支持的所有属性和方法也都受 ICPUClassic 支持。


GetDiagnosticsBuffer 方法

GetDiagnosticsBuffer 方法

返回类型 | 方法名称
Result | GetDiagnosticsBuffer

参数
名称 | 数据类型 | 参数类型 | 说明
DiagnosticsItems | List<DiagnosticsItem> | Out | 诊断项的集合：集合中的每一项代表诊断缓冲区中的一个条目。
Language | Language | In | 请求用于诊断缓冲区条目的语言。

此方法用于读取 CPU 的当前诊断条目。GetDiagnosticsBuffer 方法会返回 DiagnosticsItem 对象的集合。以下示例用于搜索特定 IP 地址处经典 CPU 的 IProfinetDeviceCollection。成功搜索到后，将从 CPU 读取诊断信息。Language enum 用于获取特定语言中的诊断条目：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
List<DiagnosticsItem> aLogs = new List<DiagnosticsItem>();
IProfinetDeviceCollection devices;
Result retVal = new Result();

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
    foreach (IProfinetDevice dev in devices)
    {
        ICPUClassic devAsCpu = dev as ICPUClassic;
        if ((devAsCpu != null) && (devAsCpu.IP == targetIPAddress))
        {
            devAsCpu.SetPassword(new EncryptedString("Password"));
            devAsCpu.Selected = true;
            retVal = devAsCpu.GetDiagnosticsBuffer(out aLogs, Language.English);
            if (retVal.Succeeded)
            {
                for (int idxLog = 0; idxLog < aLogs.Count; idxLog++)
                {
                //get information time stamp
                string descrTimes = aLogs[idxLog].TimeStamp.ToString();

                //get information basic description
                string descrBasic = aLogs[idxLog].Description1;

                //get information detailed description
                string descrDetail = aLogs[idxLog].Description2;

                //get information state (incoming/outgoing)
                string descrState = aLogs[idxLog].State.ToString();
                }
            }
        }
    }
}

GetDiagnosticsBuffer 方法会返回 DiagnosticsItem 对象的集合。


IHMI 接口

IHMI 接口

该章节包括以下主题的信息:
  • IHMI 接口
  • IHMI 属性和标志
  • IHMI 方法


IHMI 接口

IHMI 接口

通过调用 ScanNetworkDevices 方法生成 IProfinetDeviceCollection。该集合包含工业网络上每台可访问设备的一个项。这些设备可能包括 CPU、HMI、分散式 I/O 站和其它西门子设备。IProfinetDevice 接口提供适用于各类设备的属性和方法。

但是，其中有一些方法仅适用于 HMI 设备。可使用 IHMI 接口访问这些属性和方法。

要确定给定的 IProfinetDevice 接口是否确实表示一个 HMI 设备，只需将其转换为 IHMI。若转换成功，则表明该网络设备是 HMI 设备，并且可以使用 IHMI 接口上的方法。以下示例说明了此过程：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in scannedDevices)
{
IHMI devAsHmi = dev as IHMI;
if (devAsHmi != null)
{
//-----------------------------------------------------
//
        该设备为 HMI。
//
        IHMI 接口可用于与之交互。
//-----------------------------------------------------
}
}

}

说明

IHMI 接口继承自 IProfinetDevice。因此，IProfinetDevice 接口支持的所有属性和方法也都受 IHMI 支持。以下 IHMI 属性主题仅描述 IHMI 接口特有的属性/方法。
说明

IHMI 接口支持 FirmwareUpdate 方法。但是，此方法始终会返回错误 FirmwareUpdateNotSupported。要更新 HMI 设备的固件，必须执行程序更新方法。


IHMI 属性和标志

IHMI 属性和标志

该章节包括以下主题的信息:
  • IHMI 属性
  • 程序更新标志
  • 恢复标志
  • 功能标志


IHMI 属性

IHMI 属性

IHMI 接口包含下列属性：

属性名称 | 返回类型 | 说明
DeviceType | string | 返回对象代表的 HMI 类型
FirmwareDeviceVersion | string | 返回 HMI 上存在的固件版本
RuntimeDeviceVersion | string | 返回 HMI 上存在的运行系统版本


程序更新标志

程序更新标志

可以对 IHMI 接口使用这些标志：

属性名称 | 返回类型 | 说明
NewProgramNameIsValid | bool | 当对有效程序文件夹调用 SetProgramFolder 方法时为真。程序无效时为假。
ProgramUpdateSucceeded | bool | 当程序更新成功时为真，即使会返回内部刷新状态错误
NewProgramName | string | 新程序的名称
NewProgramFolder | string | 新程序的文件夹位置： 该值是通过 SetProgramFolder 方法设置的
NewProgramNameErrorCode | Result | 验证新程序时用于发现可能存在的问题（例如程序是否对设备无效或者程序中的 IP 分配是否已经存在于网络上）的代码


恢复标志

恢复标志

可以对 IHMI 接口使用这些标志：

属性名称 | 返回类型 | 说明
NewRestoreNameIsValid | bool | 当使用有效备份文件调用 SetBackupFolder 方法时为真。备份文件无效时为假。
RestoreSucceeded | bool | 当恢复成功时为真，即使会返回内部刷新状态错误
NewRestoreName | string | 用于确定新程序的名称。
NewRestoreFile | string | 用于确定新程序的文件位置。 通过 SetbackupFile 方法设置值。
NewRestoreNameErrorCode | Result | 验证新程序时用于发现可能存在的问题（例如程序是否对设备无效或与设备不兼容）的可行方式


功能标志

功能标志

可以对 IHMI 接口使用这些标志：

属性名称 | 返回类型 | 说明
BackupAllowed | bool | 设备允许备份时为真
ProgramUpdateAllowed | bool | 设备允许程序更新时为真
RestoreAllowed | bool | 设备允许恢复时为真


IHMI 方法

IHMI 方法

该章节包括以下主题的信息:
  • Backup 方法（IHMI 接口）
  • ProgramUpdate 方法（IHMI 接口）
  • Restore 方法（IHMI 接口）
  • SetProgramFolder 方法
  • SetBackupFile 方法
  • SetTransferChannel 方法


Backup 方法（IHMI 接口）

Backup 方法（IHMI 接口）

返回类型 | 方法名称
Result | Backup

参数

名称

数据类型

参数类型

说明

strFile

string

In

存储备份文件的完全限定路径和文件名

type

BackupType

In（可选）

若存在，则执行要备份的数据：

  • 完整备份

  • 配方

  • 用户管理数据

此方法用于备份 HMI 的数据。某些 HMI 不支持备份/恢复功能。检查 BackupAllowed 属性以确保当前 HMI 支持此功能。以下示例用于搜索特定 IP 地址处 HMI 的 IProfinetDeviceCollection。成功搜索到后，检查 HMI 是否支持备份功能，然后调用 Backup 方法：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
string bkFile = @"C:\MyHMIBackupFile.s7pbkp";
IProfinetDeviceCollection devices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
    foreach (IProfinetDevice dev in devices)
    {
    IHMI devAsHmi = dev as IHMI;

        if ((devAsHmi != null) &&
            (devAsHmi.IP == targetIPAddress) &&
            (devAsHmi.BackupAllowed)
           )
        {
            devAsHmi.Selected = true;
            // back up only recipes
            retVal = devAsHmi.Backup(bkFile, BackupType.Recipes);

            // or do full HMI backup
            Result retVal = devAsHmi.Backup(bkFile);
        }
    }
}


ProgramUpdate 方法（IHMI 接口）

ProgramUpdate 方法（IHMI 接口）

返回类型 | 方法名称
Result | ProgramUpdate

此方法用于更新 HMI 设备的操作系统和运行系统软件。参数 strPath 指定包含要加载的程序的文件夹。

要在 IHMI 接口上成功完成 ProgramUpdate 方法，必须验证以下事项：

  • 已选择设备

  • 已通过 SetProgramFolder 设置 NewProgramFolder

以下示例用于搜索特定 IP 地址处 HMI 的 IProfinetDeviceCollection 以及更新此 HMI 中的程序：

Network myNetwork = new Network();
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
IProfinetDeviceCollection devices;

Result retVal - new Result();

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out devices);
if (scanResult.Succeeded)
{
    IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
    if (dev != null)
    {
        IHMI devAsHMI = dev as IHMI;
        if (devAsHMI != null)
        {
            devAsHMI.Selected = true;
            devAsHMI.SetProgramFolder( @"c:\myFolder\ProgramUpdate\Simatic.HMI\RT_Projects\Project1");
            retVal = devAsHMI.ProgramUpdate();
        }
    }
}

为成功完成更新，新的程序文件夹必须包含以下文件：
DownloadTask.xml
ProjectCharacteristics.rdf

这些文件通常位于以下列格式创建的（使用 TIA Portal）文件夹中：
{DeviceName)\Simatic.HMI\RT_Projects\{ProjectName}.{DeviceName}

例如：
“C:\Desktop\hmim14000100a\Simatic.HMI\RT_Projects\DasBasicUndMobilePanelen.hmim14000100a[KTP700 Mobile]”

说明

HMI 操作系统和运行系统软件更新

HMI 设备的 ProgramUpdate 与 CPU 不同。此方法可更新 HMI 设备的操作系统和运行系统软件。不能选择部分更新。必要时，SIMATIC Automation Tool 将更新所有数据组分以保持下载一致。HMI 程序更新卡中可包含多个项目，需要在 \Simatic.HMI\RT_Projects\ 下创建文件夹以进行下载。


Restore 方法（IHMI 接口）

Restore 方法（IHMI 接口）

返回类型 | 方法名称
Result | Restore

此方法用于从之前的 HMI 设备备份中恢复数据。某些 HMI 设备不支持备份/恢复功能。检查 RestoreAllowed 属性以确保当前 HMI 设备支持此功能。

要在 IHMI 接口上成功完成 Restore 方法，必须验证以下事项：

  • 已选择设备

  • 已通过 SetBackupFile 设置 BackupFile

以下示例用于搜索特定 IP 地址处 HMI 的 IProfinetDeviceCollection。成功搜索到后，检查 HMI 是否支持恢复功能，然后调用 Restore 方法：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
IHMI hmi = scannedDevices.FindDeviceByMAC(targetMACAddress) as IHMI;
if (hmi != null && hmi.RestoreAllowed == true)
{
//
        选中要更新的 HMI 设备
hmi.Selected = true;

retVal = hmi.SetBackupFile(@"C:\MyFolder\Backup.s7pbkp");
if (retVal.Failed == true)
return;

//
        IP 地址是否唯一？
if (hmi.DuplicateIP == true)
return;

//
        设备是否受支持？
if (hmi.Supported == false)
return;

//
        执行恢复
retVal = hmi.Restore();
}
}


SetProgramFolder 方法

SetProgramFolder 方法

返回类型 | 方法名称
Result | SetProgramFolder

参数
名称 | 数据类型 | 参数类型 | 说明
strFolder | string | in | 设置存储程序下载源的文件夹位置

以下示例说明了如何在 HMI 设备中设置程序文件夹：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
IHMI hmi = scannedDevices.FindDeviceByMAC(targetMACAddress) as IHMI;
if (hmi != null && hmi.ProgramUpdateAllowed == true)
{
//
        选中要更新的 HMI 设备
hmi.Selected = true;

retVal = hmi.SetProgramFolder(@"C:\MyFolder");
if (retVal.Failed == true)
return;

//
        IP 地址是否唯一？
if (hmi.DuplicateIP == true)
return;

//
        设备是否受支持？
if (hmi.Supported == false)
return;

//
        执行程序更新
retVal = hmi.ProgramUpdate();
}
}

为“strPath”指定的文件夹中必须包含以下文件才能成功完成操作：

  • DownloadTask.xml

  • ProjectCharacteristics.rdf

这些文件通常位于以下列格式创建的（使用 TIA Portal）文件夹中：

{DeviceName)\Simatic.HMI\RT_Projects\{ProjectName}.{DeviceName}

例如：
"C:\Desktop\hmim14000100a\Simatic.HMI\RT_Projects\DasBasicUndMobilePanelen.hmim14000100a[KTP700 Mobile]"

说明

HMI 设备的 ProgramUpdate 与 CPU 不同。对于 HMI 设备，此方法可用于更新操作系统和运行系统软件。不能选择部分更新。必要时，SIMATIC Automation Tool 将更新组分以保持下载一致。HMI 程序更新卡中可包含多个项目，需要在 \Simatic.HMI\RT_Projects\ 下创建文件夹。


SetBackupFile 方法

SetBackupFile 方法

返回类型 | 方法名称
Result | SetBackupFile

参数
名称 | 数据类型 | 参数类型 | 说明
strFile | string | in | 设置存储备份文件源的文件夹位置

该方法会在 IHMI 对象上设置以下标志：

  • NewRestoreName

  • NewRestoreFile

  • NewRestoreNameIsValid

以下示例说明了如何在 HMI 设备中设置备份文件路径：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566; // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
IHMI hmi = scannedDevices.FindDeviceByMAC(targetMACAddress) as IHMI;
if (hmi != null && hmi.RestoreAllowed == true)
{
//
        选中要更新的 HMI 设备
hmi.Selected = true;

retVal = hmi.SetBackupFile(@"C:\MyFolder\Backup.s7pbkp");
if (retVal.Failed == true)
return;

//
        IP 地址是否唯一？
if (hmi.DuplicateIP == true)
return;

//
        设备是否受支持？
if (hmi.Supported == false)
return;

//
        执行恢复
retVal = hmi.Restore();
}
}


SetTransferChannel 方法

SetTransferChannel 方法

返回类型 | 方法名称
Result | SetTransferChannel

参数
名称 | 数据类型 | 参数类型 | 说明
transferChannel | HMITransferChannel | in | 设置用于与 HMI 设备通信的通信类型（传输通道）

HMI 设备支持使用多种协议与 SIMATIC Automation Tool 交换数据。协议即为传输通道。设置 HMI 传输通道的方法如下：

Network myNetwork = new Network();
ulong targetMACAddress = 0x112233445566;  // 11:22:33:44:55:66
IProfinetDeviceCollection scannedDevices;

        IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
IHMI hmi = scannedDevices.FindDeviceByMAC(targetMACAddress) as IHMI;
if (hmi != null)
{
//
         将 PN/IE 分配给此 HMI 设备作为通信协议。
Result retVal = hmi.SetTransferChannel(HMITransferChannel.PN_IE);
}
}

说明

默认传输通道为 HMITransferChannel.PN_IE。


IScalance 接口

IScalance 接口

该章节包括以下主题的信息:
  • IScalance 接口
  • IScalance 属性
  • IScalance 方法


IScalance 接口

IScalance 接口

SCALANCE 设备是 ScanNetworkDevices 方法可搜索到的一种设备类型。ScanNetworkDevices 生成一个 IProfinetDeviceCollection，其中包含工业网络上每台可访问设备的一个项。这些设备可能包括 CPU、HMI、SCALANCE 设备和分散式 I/O 站。

IProfinetDevice 接口提供适用于各类设备的属性和方法。对于 SCALANCE 设备，IScalance 接口提供特定于 SCALANCE 设备的属性和方法。

要确定设备接口是否表示 SCALANCE 设备，可将 IProfinetDevice 接口转换为 IScalance 接口。若转换成功，则表明该网络设备是 SCALANCE 设备，并且可以使用 IScalance 方法和属性。由于 IScalance 接口继承自 IProfinetDevice 接口，因此所有 IProfinetDevice 方法和属性都可用于 SCALANCE 设备。

以下示例说明了如何确定扫描到的网络设备是否为 SCALANCE 设备：

Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
foreach (IProfinetDevice dev in scannedDevices)
{
IScalance devAsScalance = dev as IScalance;
if (devAsScalance != null)
{
//-----------------------------------------------------
//
        该设备为
        SCALANCE
         设备。
//
        IScalance 接口用于与之交互。
//-----------------------------------------------------
}
}
}


IScalance 属性

IScalance 属性

IScalance 接口具有以下属性：

属性名称 | 返回类型 | 说明
ProfileName | string | 返回 SNMP 配置文件的名称
ProfileNameisValid | bool | 存在有效配置文件名称时为真


IScalance 方法

IScalance 方法

该章节包括以下主题的信息:
  • SetProfile 方法
  • FirmwareUpdate 方法


SetProfile 方法

SetProfile 方法

用户界面应用程序调用 SetProfile 方法来建立 SCALANCE 设备的配置文件组态。

返回类型 | 方法名称
Result | SetProfile

参数
名称 | 数据类型 | 参数类型 | 说明
Profile | ISNMPProflie | In | 用于 SCALANCE 设备固件更新的 SNMP 配置文件和 TFTP（普通文件传输协议）组态

可通过以下示例之一查看 SetProfile 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

  • 示例：SNMP 版本 3 组态

在这些示例中，SetProfile 调用都位于示例代码的结尾。


FirmwareUpdate 方法

FirmwareUpdate 方法

用户界面应用程序调用 FirmwareUpdate 方法来更新 SCALANCE 设备的固件。

返回类型 | 方法名称
Result | FirmwareUpdate

参数
名称 | 数据类型 | 参数类型 | 说明
- |  |  |

可通过以下示例之一查看 FirmwareUpdate 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

  • 示例：SNMP 版本 3 组态

在这些示例中，FirmwareUpdate 调用都位于示例代码的结尾。


ISNMPProfile 接口

ISNMPProfile 接口

该章节包括以下主题的信息:
  • ISNMPProfile 属性
  • ISNMPProfile 方法
  • SNMPProfile 类


ISNMPProfile 属性

ISNMPProfile 属性

ISNMPProfile 是一个属性合集，其中聚集了使用 SNMP 执行 SCALANCE 设备固件更新时所需的属性。适用于给定设备固件更新的属性取决于该设备上组态的 SNMP 协议版本。属性说明中指出了属性适用的 SNMP 版本（V1、V2、V3）。对于所有 SNMP 版本都适用的属性将在属性说明中省略一个版本。

属性名称 | 返回类型 | 说明
ProfileName | string | SNMP 配置文件的名称
Version | SNMPVersion | 使用的 SNMP 协议版本
ServerIP | string | IP 地址的字符串表示
ServerIPArray | byte[] | TFTP 服务器的 IP 地址
ServerPort | UInt16 | TFTP 端口分配
ReadCommunity | string | V1/V2 读取权限 ID 字符串 (PW)
WriteCommunity | string | V1/V2 写入权限 ID 字符串 (PW)
UserName | string | V3 用户名
ContextName | string | V3 管理信息上下文 ID
SecurityLevel | SNMPSecurityLevel | V3 安全等级
AuthAlgorithm | SNMPAuthAlgorithm | V3 身份认证算法
AuthKey | byte[] | V3 身份认证密钥
PrivAlgorithm | SNMPPrivAlgorithm | V3 隐私算法
PrivKey | byte[] | V3 隐私密钥


ISNMPProfile 方法

ISNMPProfile 方法

该章节包括以下主题的信息:
  • Validate 方法


Validate 方法

Validate 方法

Validate 方法用于评估 SNMP 配置文件参数，以确保所需固件更新参数的设置保持一致。返回的结果将显示所有不一致的设置。

返回类型 | 方法名称
Result | Validate

参数
名称 | 数据类型 | 参数类型 | 说明
- |  |  |

可通过以下示例之一查看 Validate 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

  • 示例：SNMP 版本 3 组态

在这些示例中，Validate 调用在设置配置文件参数后进行。


SNMPProfile 类

SNMPProfile 类

该章节包括以下主题的信息:
  • SNMPProfile 类属性
  • SNMPProfile 类方法


SNMPProfile 类属性

SNMPProfile 类属性

SNMPProfile 类用于存储和编辑 SNMP 配置文件。

属性名称 | 返回类型 | 说明
ProfileName | string | SNMP 配置文件的名称
Version | SNMPVersion | 使用的 SNMP 协议版本
ServerIP | string | IP 地址的字符串表示
ServerIPArray | byte[] | TFTP 服务器的 IP 地址
ServerPort | UInt16 | TFTP 端口分配
ReadCommunity | string | V1/V2 读取权限 ID 字符串
WriteCommunity | string | V1/V2 写入权限 ID 字符串
UserName | string | V3 用户名
ContextName | string | V3 管理信息上下文 ID
SecurityLevel | SNMPSecurityLevel | V3 安全等级
AuthAlgorithm | SNMPAuthAlgorithm | V3 身份认证算法
AuthKey | byte[] | V3 身份认证密钥
PrivAlgorithm | SNMPPrivAlgorithm | V3 隐私算法
PrivKey | byte[] | V3 隐私密钥


SNMPProfile 类方法

SNMPProfile 类方法

该章节包括以下主题的信息:
  • SetProfileName
  • SetSNMPVersion
  • SetServerIP 方法
  • SetServerPort 方法
  • SetReadCommunity 方法
  • SetWriteCommunity 方法
  • SetUserName 方法
  • SetContextName 方法
  • SetSecurityLevel 方法
  • SetAuthAlgorithm 方法
  • SetPrivAlgorithm 方法


SetProfileName

SetProfileName

SetProfileName 方法用于将输入字符串值分配至配置文件名称。

返回类型 | 方法名称
Result | SetProfileName

参数
名称 | 数据类型 | 参数类型 | 说明
strName | string | in | 配置文件名称

可通过以下示例之一查看 SetProfileName 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

  • 示例：SNMP 版本 3 组态

在这些示例中，SetProfileName 调用都位于示例代码的开头。


SetSNMPVersion

SetSNMPVersion

SetSNMPVersion 方法用于设置 SNMP 协议版本。SNMP 协议的版本为 1、2 或 3。

返回类型 | 方法名称
Result | SetSNMPVersion

参数
名称 | 数据类型 | 参数类型 | 说明
nVersion | SNMPVersion | in | SNMP 版本 1、2、3

可通过以下示例之一查看 SetSNMPVersion 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

  • 示例：SNMP 版本 3 组态

在这些示例中，SetSNMPVersion 调用都位于示例代码的开头。


SetServerIP 方法

SetServerIP 方法

SetServerIP 方法用于设置 TFTP 服务器的 IP 地址。此方法适用于所有 SNMP 配置文件。

返回类型 | 方法名称
Result | SetServerIP

参数
名称 | 数据类型 | 参数类型 | 说明
strIP | string | in | IP 分配

可通过以下示例之一查看 SetServerIP 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

  • 示例：SNMP 版本 3 组态

在这些示例中，SetServerIP 调用都位于示例代码的开头。


SetServerPort 方法

SetServerPort 方法

SetServerPort 方法用于设置 TFTP 服务器的端口分配。此方法适用于所有 SNMP 配置文件。

返回类型 | 方法名称
Result | SetServerPort

参数
名称 | 数据类型 | 参数类型 | 说明
nVersion | UInt16 | in | TFTP 端口分配

可通过以下示例之一查看 SetServerPort 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

  • 示例：SNMP 版本 3 组态

在这些示例中，SetServerPort 调用在 SetServerIP 调用后立即进行。


SetReadCommunity 方法

SetReadCommunity 方法

SetProfileName 方法用于为输入字符串分配读取团体。读取团体字符串使远程设备能够检索设备中的只读信息。此方法适用于 SNMP 版本 1 或版本 2 配置文件。

返回类型 | 方法名称
Result | SetReadCommunity

参数
名称 | 数据类型 | 参数类型 | 说明
strCommunity | string | in | 读取团体分配

可通过以下示例之一查看 SetReadCommunity 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

在这些示例中，SetReadCommunity 调用都位于示例代码的中间位置。


SetWriteCommunity 方法

SetWriteCommunity 方法

SetWriteCommunity 方法用于为输入字符串分配写入团体。写入团体字符串允许对设备执行读取操作和写入操作。此方法适用于 SNMP 版本 1 或版本 2 配置文件。

返回类型 | 方法名称
Result | SetWriteCommunity

参数
名称 | 数据类型 | 参数类型 | 说明
strCommunity | string | in | 写入团体分配

可通过以下示例之一查看 SetWriteCommunity 方法调用示例：

  • 示例：SNMP 版本 1 组态

  • 示例：SNMP 版本 2 组态

在这些示例中，SetWriteCommunity 调用都位于示例代码的开头。


SetUserName 方法

SetUserName 方法

SetUserName 方法用于设置 SNMP 版本 3 配置文件的用户名。

返回类型 | 方法名称
Result | SetUserName

参数
名称 | 数据类型 | 参数类型 | 说明
strName | string | in | SNMP V3 用户名

可以在 示例：SNMP 版本 3 组态 代码示例的中间位置查看 SetUserName 方法调用示例。


SetContextName 方法

SetContextName 方法

SetContextName 方法用于设置 SNMP 版本 3 配置文件的上下文名称。

返回类型 | 方法名称
Result | SetContextName

参数
名称 | 数据类型 | 参数类型 | 说明
strName | string | in | SNMP V3 管理信息上下文

可以在 示例：SNMP 版本 3 组态 代码示例的中间位置查看 SetContextName 方法调用示例。


SetSecurityLevel 方法

SetSecurityLevel 方法

SetSecurityLevel 方法用于设置 SNMP 版本 3 配置文件的安全等级。

返回类型 | 方法名称
Result | SetSecurityLevel

参数
名称 | 数据类型 | 参数类型 | 说明
level | SNMPSecurityLevel | in | SNMP V3 安全等级

可以在 示例：SNMP 版本 3 组态 代码示例的中间位置查看 SetSecurityLevel 方法调用示例。


SetAuthAlgorithm 方法

SetAuthAlgorithm 方法

SetAuthAlgorithm 方法用于设置 SNMP 版本 3 配置文件的身份验证算法。当安全等级要求“身份认证”时，身份认证算法适用。当安全等级要求“隐私”及“身份认证”时，身份认证密码适用。

返回类型 | 方法名称
Result | SetAuthAlgorithm

参数
名称 | 数据类型 | 参数类型 | 说明
algorithm | SNMPAuthAlgorithm | in | SNMP V3 身份认证算法
strPassword | string | in | SNMP V3 身份认证密码

可以在 示例：SNMP 版本 3 组态 代码示例的中间位置查看 SetAuthAlgorithm 方法调用示例。


SetPrivAlgorithm 方法

SetPrivAlgorithm 方法

SetAuthAlgorithm 方法用于设置 SNMP 版本 3 配置文件的隐私算法。当安全等级要求“隐私”时，隐私算法适用。

返回类型 | 方法名称
Result | SetPrivAlgorithm

参数
名称 | 数据类型 | 参数类型 | 说明
algorithm | SNMPPrivAlgorithm | in | SNMP V3 隐私算法
strPassword | string | in | SNMP V3 隐私密码

可以在 示例：SNMP 版本 3 组态 代码示例的中间位置查看 SetPrivAlgorithm 方法调用示例。


IScalance 和 ISNMP 固件更新代码示例

IScalance 和 ISNMP 固件更新代码示例

该章节包括以下主题的信息:
  • 示例：SNMP 版本 1 组态
  • 示例：SNMP 版本 2 组态
  • 示例：SNMP 版本 3 组态


示例：SNMP 版本 1 组态

示例：SNMP 版本 1 组态

此示例显示如何组态和启动 SCALANCE 设备的固件更新。在此示例中，SCALANCE 设备使用 SNMP 版本 1：

SNMPProfile　profileV1　=　new　SNMPProfile();

//使用 SNMP 版本 1 创建配置文件
Result　retVal　=　profileV1.SetSNMPVersion(SNMPVersion.Version1);
if　(retVal.Failed)
      return;

// 设置此配置文件的名称
retVal = profileV1.SetProfileName("Profile_1");
if (retVal.Failed)
      return;
//设置 TFTP 服务器 IP 地址，必需
retVal　=　profileV1.SetServerIP("192.168.0.1");
if　(retVal.Failed)
      return;
//设置 TFTP 服务器端口，默认为 69，可选
retVal　=　profileV1.SetServerPort(69);
if　(retVal.Failed)
      return;

//设置 SCALANCE 读取团体，默认为“公共”，可选
retVal　=　profileV1.SetReadCommunity("public");
if　(retVal.Failed)
      return;

//设置 SCALANCE 写入团体，默认为“私有”，可选
retVal　=　profileV1.SetWriteCommunity("private");
if　(retVal.Failed)
      return;

//验证配置文件是否有效，这样可确保不会丢失参数
retVal　=　profileV1.Validate();
if　(retVal.Failed)
      return;

//扫描并执行所有 SCALANCE 设备的固件更新
Network　myNetwork　=　new　Network();
IProfinetDeviceCollection　scannedDevices;
//扫描网络，搜索已附加的设备
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
{
      //过滤 scalance 设备
      List<IProfinetDevice>　onlyScalance　=
       scannedDevices.FilterByDeviceFamily(new　List<DeviceFamily>(1)　{　DeviceFamily.SCALANCE　});
      foreach　(IScalance　scalance　in　onlyScalance)
      {
         //设置与此 SCALANCE 设备进行通信所需的 SNMP 配置文件
         retVal　=　scalance.SetProfile(profileV1);
         if　(retVal.Succeeded)
         {
         //设置新固件文件以更新 SCALANCE
         retVal　=　scalance.SetFirmwareFile(@"C:\Firmware\FirmwareFile.lad");
         if　(retVal.Succeeded)
               retVal　=　scalance.FirmwareUpdate();
         }
      }
}


示例：SNMP 版本 2 组态

示例：SNMP 版本 2 组态

此示例显示如何组态和启动 SCALANCE 设备的固件更新。在此示例中，SCALANCE 设备使用 SNMP 版本 2：

SNMPProfile profileV2 = new SNMPProfile();

// 使用 SNMP 版本 2 创建配置文件
Result retVal = profileV2.SetSNMPVersion(SNMPVersion.Version2);
if (retVal.Failed)
      return;

// 设置此配置文件的名称
retVal = profileV2.SetProfileName("Profile_2");
if (retVal.Failed)
      return;

// 设置 TFTP 服务器 IP 地址，必需
retVal = profileV2.SetServerIP("192.168.0.1");
if (retVal.Failed)
      return;

// 设置 TFTP 服务器端口，默认为 69，可选
retVal = profileV2.SetServerPort(69);
if (retVal.Failed)
      return;

// 设置 SCALANCE 读取团体，默认为“公共”，可选
retVal = profileV2.SetReadCommunity("public");
if (retVal.Failed)
      return;

// 设置 SCALANCE 写入团体，默认为“私有”，可选
retVal = profileV2.SetWriteCommunity("private");
if (retVal.Failed)
      return;

// 验证配置文件是否有效，这样可确保不会丢失参数
retVal = profileV2.Validate();
if (retVal.Failed)
      return;

// 扫描并执行所有 SCALANCE 设备的固件更新
Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

// 扫描网络，搜索已附加的设备
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
 {

      // 过滤 scalance 设备
       List<IProfinetDevice> onlyScalance =
       scannedDevices.FilterByDeviceFamily(new List<DeviceFamily>(1) { DeviceFamily.SCALANCE });
       foreach (IScalance scalance in onlyScalance)
      {
            // 设置与此 SCALANCE 设备进行通信所需的 SNMP 配置文件
             retVal = scalance.SetProfile(profileV2);
             if (retVal.Succeeded)
            {
                  // 设置新固件文件以更新 SCALANCE
                   retVal = scalance.SetFirmwareFile(@"C:\Firmware\FirmwareFile.lad");
                   if (retVal.Succeeded)
                         retVal = scalance.FirmwareUpdate();
            }
      }
}


示例：SNMP 版本 3 组态

示例：SNMP 版本 3 组态

此示例显示如何组态和启动 SCALANCE 设备的固件更新。在此示例中，SCALANCE 设备使用 SNMP 版本 3 实现身份认证和隐私：

SNMPProfile profileV3_3 = new SNMPProfile();

// 使用 SNMP 版本 3 创建配置文件
Result retVal = profileV3_3.SetSNMPVersion(SNMPVersion.Version3);
if (retVal.Failed)
      return;

// 设置此配置文件的名称
retVal = profileV3_3.SetProfileName("Profile_3.1");
if (retVal.Failed)
      return;

// 设置 TFTP 服务器 IP 地址，必需
retVal = profileV3_3.SetServerIP("192.168.0.1");
if (retVal.Failed)
      return;

// 设置 TFTP 服务器端口，默认为 69，可选
retVal = profileV3_3.SetServerPort(69);
if (retVal.Failed)
      return;

// 设置用户名，必需
retVal = profileV3_3.SetUserName("User1");
if (retVal.Failed)
      return;

// 设置上下文名称，可选
retVal = profileV3_3.SetContextName("Context1");
if (retVal.Failed)
      return;

// 设置 SCALANCE 安全等级 NoAuthNoPriv，必需
retVal = profileV3_3.SetSecurityLevel(SNMPSecurityLevel.AuthPriv);

 //将身份认证算法设置为 MD5 并设置密码，必需
retVal　=　profileV3_3.SetAuthAlgorithm(SNMPAuthAlgorithm.MD5,　"Password1");
if　(retVal.Failed)
    return;

//将隐私算法设置为 DES 并设置密码，必需
retVal　=　profileV3_3.SetPrivAlgorithm(SNMPPrivAlgorithm.DES,　"Password2");
if　(retVal.Failed)
        return;

if (retVal.Failed)
      return;

// 验证配置文件是否有效，这样可确保不会丢失参数
retVal = profileV3_3.Validate();
if (retVal.Failed)
      return;

// 扫描并执行所有 SCALANCE 设备的固件更新
Network myNetwork = new Network();
IProfinetDeviceCollection scannedDevices;

// 扫描网络，搜索已附加的设备
IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out scannedDevices);
if (scanResult.Succeeded)
       {
            // 过滤 SCALANCE 设备
            List<IProfinetDevice> onlyScalance =
             scannedDevices.FilterByDeviceFamily(new List<DeviceFamily>(1) { DeviceFamily.SCALANCE });
            foreach (IScalance scalance in onlyScalance)
            {
                  // 设置与 SCALANCE 设备进行通信所需的 SNMP 配置文件
                  retVal = scalance.SetProfile(profileV3_3);
                  if (retVal.Succeeded)
                  {
                        // 设置新固件文件以更新 SCALANCE
                        retVal = scalance.SetFirmwareFile(@"C:\Firmware\FirmwareFile.lad");
                        if (retVal.Succeeded)
                              retVal = scalance.FirmwareUpdate();
                   }
               }
      }


异常

异常

该章节包括以下主题的信息:
  • CriticalInternalErrorException


CriticalInternalErrorException

CriticalInternalErrorException

当检测到严重错误情况时，API 接口将出现异常。

当应用程序检测到 CriticalInternalErrorException 异常已触发时，关闭正在使用 API 的应用程序。发生了严重错误。

Network myNetwork = new Network();
try
{
uint targetIPAddress = 0xC0A80001; // 192.168.0.1
IProfinetDeviceCollection devices;

IScanErrorCollection scanResult = myNetwork.ScanNetworkDevices(out devices);
if (scanResult.Succeeded)

{
IProfinetDevice dev = devices.FindDeviceByIP(targetIPAddress);
if (dev != null)
{
ICPU devAsCpu = dev as ICPU;
if (devAsCpu != null)
{
devAsCpu.SetPassword(new EncryptedString("Password"));
devAsCpu.Selected = true;
if (devAsCpu.Failsafe)devAsCpu.SelectedConfirmed = true;
Result retVal = devAsCpu.ResetToFactoryDefaults();
}
}
}
}
catch (CriticalInternalErrorException e)
{
//
        API 中发生了严重的内部错误
}
catch (Exception e)
{
//
        API 中发生了异常

}


API 枚举

API 枚举

该章节包括以下主题的信息:
  • DataChangedType
  • DeviceFamily
  • ConfirmationType
  • ErrorCode
  • Language
  • OperatingState
  • OperatingStateREQ
  • ProgressAction
  • RemoteInterfaceType
  • ProtectionLevel
  • ConfirmationType
  • FailsafeOperation
  • RemoteFolderType
  • SNMPVersion
  • SNMPSecurityLevel
  • SNMPAuthAlgorithm
  • SNMPPrivAlgorithm
  • ScanErrorType
  • HMITransferChannel
  • BackupType
  • TimeFormat


DataChangedType

DataChangedType

此枚举定义了 DataChangedEventHandler 的可能参数值：

Invalid
OperatingState
RackInformation
Folders
File
ProfinetName
IPAddress
Password


DeviceFamily

DeviceFamily

此枚举指定硬件项的产品系列：

None
CPU1200
CPU1500
CPU300
CPU400
ET200SP
ET200MP
ET200AL
ET200PRO
ET200ECO
ET200S
ET200M
HMI
SITOPUPS
SCALANCE
SIMOCODE
Unsupported
SIRIUS_ACT
Gateway
NetworkDevice
MicroDrive
SoftStarter
CommunicationsModule
OpticalReader


ConfirmationType

ConfirmationType

此枚举指定了安全相关操作的用户确认类型：

Invalid = 0
SafetyPasswordIsBeingUsed = 0x2f161717
DeletingExistingSafetyProgram = 0x40232122
ReplacingExistingSafetyProgram = 0x492a282b
ReplacingExistingSafetyProgramWithNonSafetyProgram = 0x4a2c2b2d
LoadingSafetyProgram = 0x46292728,


ErrorCode

ErrorCode

此枚举列出了 Result 对象所有可能的返回值：

OK
AccessDenied
ServiceTimeout
Disconnected
FailedToDisconnect
ServiceNotConnected
TooManySessions
SessionDelegitimated
NotChangableInRun
InvalidFileName
MultiESNotSupported
ServiceAborted
MultiESLimitExceeded
MultiESIncompatibleOtherESVersion
MultiESConflict
WriteProtected
DiskFull
InvalidVersion
PathNotFound

Failed
CPUFailedToEnterRunMode
MACAddressIsNotValid
IPAddressIsNotValid
SubnetMaskIsNotValid
GatewayIsNotValid
ProfinetNameIsNotValid
NewIPAddressIsNotValid
NewSubnetMaskIsNotValid
NewGatewayIsNotValid
NewProfinetNameIsNotValid
InvalidPointer
SetIPErrorDueProjectSettings
UnsupportedDevice
SetNameErrorDueProjectSettings
OperationNotSupportedByThisDevice
DeviceNotOnNetwork
FirmwareVersionMatch
FirmwareFileNotCompatibleToNew
FirmwareFileNotCompatibleToOld
FirmwareFileNotCompatibleNotSame
FirmwareFileNotCompatibleSame
FirmwareFileNotCompatible
FirmwareModuleNotReachable
FirmwareModuleNotAccepted
FirmwareIDNotFound
WriteBlockFailed
InvalidProjectVersion
DeviceIsNotAcceptingChanges
InvalidSignature
ParmeterOutOfRange
FailedToZipFolderContents
ErrorWritingToFile
ErrorCreatingFile
ErrorCreatingFolder
NoSATLicensePresent
InvalidTimeoutValue
NoDataToBackup
ErrorWritingToStream
ErrorReadingFromStream
InvalidProjectPath
ProjectNotCompatibleWithDevice
FailedToSetProfinetName
FailedToSetIPAddress
DownloadInvalidRecipe
IdentityFailure
DeviceMismatch
InvalidInterface
DeviceNotSelected
FailsafeAccessRequired
InternalApplicationError
InvalidPassword
DuplicateIPAddress
DuplicateProfinetName
SafetyDeviceMustBeConfirmed
NoSDCardPresent
InvalidProgramFolder
FSignaturesDoesNotMatch
FSignaturesMatch
DeviceDoesNotSupportProject
ProjectsUpdateIPNotReachable
RestoreIPNotReachable
ProjectIPNotUnique
SafetyProjectDownloadedToStandardNotAllowed
PasswordDiversityFailed
InvalidBackupFile
InvalidBackupFileExtension
IncompatibleBackupFile
InvalidFirmwareFile
OperationWasNotSuccessful
CouldNotValidatePassword
IPAddressAlreadyExistsOnNetwork
MissingProgramFilePassword
InvalidProgramFilePassword
OperationCancelledByUser
InvalidProgramForDevice
InvalidProgramFilePasswordLegitimizationLevel
DeviceNotFound
DeviceAlreadyExists
IPAddressAlreadyOnNetwork
ProfinetNameAlreadyOnNetwork
FailedToConnect
DeviceNotInitialized
CPUNewerVersionNotSupported
IPSuitNotValid
IPAddressChanged
ScanNoDevicesFound
DeviceCannotBeInserted
InsertDeviceDuplicateIP
IPNotReachable
CouldNotReadFSignature
InvalidNetworkInterface
InsufficientLegitimizationLevel
NoProgramPassword
ProjectVersionV1NotSupported
ProjectOpenCanceled
ProgramPasswordNeeded
RestoreError
IncompatibleProgramFile
UnsupportedProgramFile
ProgramFileFamilyMismatch
DuplicateNewIPAddress
SNMPErrorNoAccess
SNMPErrorReadOnly
SNMPErrorNotWritable
SNMPErrorAuthorizationError
SNMPError
InvalidProfileName
InvalidSNMPVersion
InvalidServerIP
InvalidServerPort
InvalidReadCommunity
InvalidWriteCommunity
InvalidUserName
InvalidContextName
InvalidSecurityLevel
InvalidAuthAlgorithm
InvalidAuthPassword
InvalidPrivAlgorithm
InvalidPrivPassword
InvalidProfile
ProfileNameAlreadyExists
ObsoleteMethod
FailedToInitiateFirmwareTransfer
DeviceDefinedError
ErrorDeletingFile
ErrorDeletingFolder
ErrorInvalidMAC
FailedToUpdateDuplicates
DuplicateNewProfinetName
ErrorBackingupData
FailsafeControlObjectIncorrectType
InvalidIPAddressOrUsedByNIC
FirmwareIntegrityFailed
ExportDiagnosticsBufferError
AlmFailedInitialize
AlmFailedCleanup
AlmFailedSessionInitialize
AlmFailedSessionCleanup
AlmSessionIDMissing
AlmSessionIDUnknown
AlmCouldNotConnect
AlmOutOfMemory
AlmOperationTimeout
AlmFunctionNotFound
AlmAborted
AlmBadfunctionArgument
AlmUnkownOption
AlmSendError
AlmReceiveError
AlmNoConnectionAvailable
AlmOpenSession
AlmResources
AlmService
AlmCryptography
AlmTaskAlreadyRunning
AlmInvalidPointer
AlmResultMismatch
AlmBadResult
AlmBatchWrongArgumentNumber
AlmBatchWrongArgument
AlmBatchWrongInputFile
AlmBatchWrongInputStream
AlmBatchAPILoadFailed
AlmBatchOutputfileExists
AlmBatchWrongOutputParmater
AlmBatchOutputCreationFailure
AlmBatchAccessDenied
AlmUnknownError
PowerCycleRequired

//HMI
UnexpectedOperatingSystemError
ServiceActive
RemoteTransferDisabled
HardwareSoftwareNotComplete
LogicalVolumneMissing
LogicalVolumneOutOfSpace
Abort
FirwareTypeNotSupported
FirwareTypeNotInstalled
StoreReadFailed
StoreWriteFailed
RescueBackupNotPossible
RescueRestoreNotPossible
ConnectionRequired
ObjectNotFound
BufferToSmall
InvalidArguements
AttributeNotFound
InvalidPath
TypeConversionFailed
FileReadFailed
FileWriteFailed
OutOfResources
OutOfSpace
UnknownAddon
IncompatibleAddon
AddonsUnsupported
LicenseFailed
UnknownApp
UnknownAppAddon
UnknownReferenceApp
RuntimeMissing
RuntimeBroken
SignatureRequired
SignatureInvalid
SignatureFailure
CertificateInvalid
CertificateFailure
CertificateNotReady
CertificateExpired
CertificateRevoked
SecurityLib
WrongRuntimeVersion
MajorRuntimeDowngrade
MajorRuntimeUpgrade
MajorImageDowngrade
MajorImageUpgrade
WrongRuntime
NotEnoughMemory
ProjectCharacteristicsMissing
ProjectCharacteristicsInvalid
PanelOrientationIsPortrait
PanelOrientationIsLandscape
WrongDevicetype
NoRuntimeInstalled
RuntimeCorrupt
InvalidTransferChannel
InvalidBackupType


Language

Language

Language 枚举允许用户为返回的字符串数据指定语言。其中包含以下值：

English
German
French
Spanish
Italian
Chinese


OperatingState

OperatingState

此枚举定义了 OperatingState 属性的可能状态：

NotSupported
StopFwUpdate
StopSelfInitialization
Stop
Startup
Run
RunRedundant
Halt
LinkUp
Update
Defective
ErrorSearch
NoPower
CiR
STOPwithoutODIS
RunODIS


OperatingStateREQ

OperatingStateREQ

此枚举定义了在调用 SetOperatingState 方法时可请求的可能状态转换：

Stop
Run


ProgressAction

ProgressAction

此枚举定义了可被发送至 ProgressChangedEventHandler 的可能参数值：

Invalid
Connecting
Reconnecting
Disconnecting
Initializing
Updating
Processing
Downloading
Uploading
Deleting
Reseting
Rebooting
Verifying
Formatting
Refreshing
Finished
UpdatingFirmware
InstallingRuntime
InstallingAddOns
UninstallingAddOns
UpdatingProgram


RemoteInterfaceType

RemoteInterfaceType

此枚举定义了在 IRemoteInterfaces 接口上调用 InterfaceType 属性时可以返回的可能状态：

None
Profinet
Profibus
ASi


ProtectionLevel

ProtectionLevel

ProtectionLevel 枚举列出了 CPU 密码的保护等级：

Unknown
Failsafe
Full
Read
HMI
NoAccess
NoPassword


ConfirmationType

ConfirmationType

此枚举用于指示故障安全 CPU 的状态：

说明 | 值
Invalid | 0
SafetyPasswordIsBeingUsed | 0x2f161717
DeletingExistingSafetyProgram | 0x40232122
ReplacingExistingSafetyProgram | 0x492a282b
ReplacingExistingSafetyProgramWithNonSafetyProgram | 0x4a2c2b2d
LoadingSafetyProgram | 0x46292728


FailsafeOperation

FailsafeOperation

FailSafeOperation 枚举表示与安全相关的操作：

说明 | 值
Invalid | 0
ResetToFactoryOperation | 0x2f161717
FormatMCOperation | 0x46292728
ProgramUpdateOperation | 0x43252224
RestoreOperation | 0x45262427


RemoteFolderType

RemoteFolderType

RemoteFolderType 枚举表示远程文件夹类型：

说明 | 值
None | 0
Recipe | 1
Datalog | 2


SNMPVersion

SNMPVersion

SNMPVersion 枚举表示 SCALANCE 设备的 SNMP 版本号：

说明 | 值
NotSupported | -1
Version1 | 0
Version2 | 1
Version3 | 2


SNMPSecurityLevel

SNMPSecurityLevel

SNMPSecurityLevel 枚举表示 SNMP 版本 3 配置文件的安全等级。使用 SNMP 版本 3 配置文件的 SCALANCE 设备具有安全等级设置：

说明 | 值
NotSupported | -1
NoAuthNoPriv | 0
AuthNoPriv | 1
AuthPriv | 2


SNMPAuthAlgorithm

SNMPAuthAlgorithm

SNMPAuthAlgorithm 枚举表示使用 SNMP 版本 3 配置文件的 SCALANCE 设备的授权算法：

说明 | 值
NotSupported | -1
MD5 | 0
SHA | 1


SNMPPrivAlgorithm

SNMPPrivAlgorithm

SNMPPrivAlgorithm 枚举表示使用 SNMP 版本 3 配置文件的 SCALANCE 设备的隐私算法：

说明 | 值
NotSupported | -1
DES | 0
AES | 1


ScanErrorType

ScanErrorType

ScanErrorType 枚举指示设备扫描返回的错误类型：

说明 | 值
Invalid | -1
Success | 0
Error | 1
Warning | 2
Information | 3


HMITransferChannel

HMITransferChannel

HMITransferChannel 枚举指示用于与 HMI 设备通信的协议：

说明 | 值
Invalid | -1
PN_IE | 0
Ethernet | 1


BackupType

BackupType

BackupType 枚举指示用于与 HMI 设备通信的协议：

说明 | 值
Invalid | 0
FullBackup | 1
Recipes | 2
UserAdministration | 3


TimeFormat

TimeFormat

TimeFormat 用于指定时间字符串的时间格式：

说明 | 值
Local | 0
UTC | 1

UTC 表示协调世界时。


网络示例

网络示例

此示例显示了 TIA Portal 网络组态和表示已联网设备的 API 接口：

假设第一行中的所有设备（PLC_1、IO device_1 和 PLC_2）已连接至外部以太网（未显示）。这些设备可通过 SIMATIC Automation Tool API 直接访问。此外，假设连接到 PLC_2 的 PROFINET 子网未连接至外部网络。

SIMATIC Automation Tool API 可以为此组态中的所有 PLC 和 I/O 站提供信息和操作。

下图显示了相同的网络组态和网络中的硬件设备：

在上图中，“棒棒糖”符号显示最能代表每个网络组件的 SIMATIC Automation Tool API 接口类别：

  • 直接与外部网络连接的 CPU 由 ICPU 接口表示。

  • 直接与外部网络连接的 I/O 站由 IProfinetDevice 接口表示。

  • 源自 CPU 的子网由 IRemoteInterface 接口表示。

  • 未直接连接至外部网络（但可通过 CPU 访问）的 I/O 站由 IBaseDevice 接口表示。

  • 连接至 CPU 或 IO 站的 I/O 或通信模块由 IModule 接口表示。


SIMATIC Automation Tool 设备支持

SIMATIC Automation Tool 设备支持

该章节包括以下主题的信息:
  • 支持和不支持的设备及固件版本
  • 故障安全 CPU 支持


支持和不支持的设备及固件版本

设备目录 SIMATIC Automation Tool 对不支持的设备和不支持的固件版本的处理方式

支持和不支持的设备及固件版本

设备目录

可以在 SIMATIC Automation Tool 的菜单项“帮助 > 查看设备目录”(Help > View Device Catalog) 下查看设备目录。设备目录中显示了支持的西门子设备和支持的 SIMATIC Automation Tool 操作。

设备目录文件是 Microsoft Excel 文件。必须使用 Microsoft Excel 2010 或更高版本才能正确查看设备目录并使用排序和筛选等功能。设备目录文件是只读文件。不能修改文件以启用设备功能。

设备目录包含的列在 TRUE 情况下会在单元格中显示勾选标记，在 FALSE 情况下则显示空白。如果设备的“SAT 支持”(SAT Support) 列包含勾选标记，说明 SIMATIC Automation Tool 支持该设备。如果“SAT 支持”(SAT Support) 单元格显示空表，说明 SIMATIC Automation Tool 不支持该设备。“SAT 支持”(SAT Support) 单元格会覆盖指示是否支持其它功能（如 Failsafe）的勾选标记。

SIMATIC Automation Tool 对不支持的设备和不支持的固件版本的处理方式

如果将不受支持的设备连接到网络，SIMATIC Automation Tool 可识别两种可能原因：

  • 设备不受支持

  • 设备受支持，但设备中的固件不受支持

不支持的固件

SIMATIC Automation Tool 支持西门子设备，但固件版本高于 SIMATIC Automation Tool 所支持的最高版本。在此情况下，SIMATIC Automation Tool 将执行以下操作：

  • 在设备表的某一行显示此设备

  • 在设备表行中显示支持的设备图标的图标

  • 限制 SIMATIC Automation Tool 对更早固件版本所支持的操作的工具操作

不支持的设备

SIMATIC Automation Tool 不支持设备。在此情况下，SIMATIC Automation Tool 将执行以下操作：

  • 在设备表的某一行显示此设备的部分信息

  • 在设备表行中显示不支持的设备问号图标

  • 当设备连接至与运行 SIMATIC Automation Tool 的编程设备相同的子网时，仅支持以下 DCP 操作：

    • 扫描整个网络

    • 识别

    • 更新 IP 地址

    • 更新 PROFINET 名称

    • 复位通信参数


故障安全 CPU 支持

故障安全 CPU 支持

下表显示了 SIMATIC Automation Tool 支持的所有故障安全 CPU 及固件版本：

订货号 | 类型描述符 | 固件版本 | 支持的最低 SIMATIC Automation Tool 版本
6ES7 212-1AF40-0XB0 | CPU 1212FC DC/DC/DC | V4.2 | V3.1
6ES7 212-1AF40-0XB0 | CPU 1212FC DC/DC/DC | V4.3 | V3.1 SP2
6ES7 212-1AF40-0XB0 | CPU 1212FC DC/DC/DC | V4.4 | V3.1 SP4
6ES7 212-1HF40-0XB0 | CPU 1212FC DC/DC/Rly | V4.2 | V3.1
6ES7 212-1HF40-0XB0 | CPU 1212FC DC/DC/Rly | V4.3 | V3.1 SP2
6ES7 212-1HF40-0XB0 | CPU 1212FC DC/DC/Rly | V4.4 | V3.1 SP4
6ES7 214-1AF40-0XB0 | CPU 1214FC DC/DC/DC | V4.1 | V3.1
6ES7 214-1AF40-0XB0 | CPU 1214FC DC/DC/DC | V4.2 | V3.1
6ES7 214-1AF40-0XB0 | CPU 1214FC DC/DC/DC | V4.3 | V3.1 SP2
6ES7 214-1AF40-0XB0 | CPU 1214FC DC/DC/DC | V4.4 | V3.1 SP4
6ES7 214-1HF40-0XB0 | CPU 1214FC DC/DC/Rly | V4.1 | V3.1
6ES7 214-1HF40-0XB0 | CPU 1214FC DC/DC/Rly | V4.2 | V3.1
6ES7 214-1HF40-0XB0 | CPU 1214FC DC/DC/Rly | V4.3 | V3.1 SP2
6ES7 214-1HF40-0XB0 | CPU 1214FC DC/DC/Rly | V4.4 | V3.1 SP4
6ES7 215-1AF40-0XB0 | CPU 1215FC DC/DC/DC | V4.1 | V3.1
6ES7 215-1AF40-0XB0 | CPU 1215FC DC/DC/DC | V4.2 | V3.1
6ES7 215-1AF40-0XB0 | CPU 1215FC DC/DC/DC | V4.3 | V3.1 SP2
6ES7 215-1AF40-0XB0 | CPU 1215FC DC/DC/DC | V4.4 | V3.1 SP4
6ES7 215-1HF40-0XB0 | CPU 1215FC DC/DC/Rly | V4.1 | V3.1
6ES7 215-1HF40-0XB0 | CPU 1215FC DC/DC/Rly | V4.2 | V3.1
6ES7 215-1HF40-0XB0 | CPU 1215FC DC/DC/Rly | V4.3 | V3.1 SP2
6ES7 215-1HF40-0XB0 | CPU 1215FC DC/DC/Rly | V4.4 | V3.1 SP4
6ES7 510-1SJ00-0AB0 | CPU 1510SP F-1 PN | V1.7 | V3.1
6ES7 510-1SJ00-0AB0 | CPU 1510SP F-1 PN | V1.8 | V3.1
6ES7 510-1SJ01-0AB0 | CPU 1510SP F-1 PN | V1.8 | V3.1
6ES7 510-1SJ01-0AB0 | CPU 1510SP F-1 PN | V2.0 | V3.1
6ES7 510-1SJ01-0AB0 | CPU 1510SP F-1 PN | V2.1 | V3.1
6ES7 510-1SJ01-0AB0 | CPU 1510SP F-1 PN | V2.5 | V3.1 SP1
6ES7 510-1SJ01-0AB0 | CPU 1510SP F-1 PN | V2.6 | V3.1 SP2
6ES7 510-1SJ01-0AB0 | CPU 1510SP F-1 PN | V2.8 | V3.1 SP4
6ES7 511-1FK00-0AB0 | CPU 1511F-1 PN | V1.7 | V3.1
6ES7 511-1FK00-0AB0 | CPU 1511F-1 PN | V1.8 | V3.1
6ES7 511-1FK01-0AB0 | CPU 1511F-1 PN | V1.8 | V3.1
6ES7 511-1FK01-0AB0 | CPU 1511F-1 PN | V2.0 | V3.1
6ES7 511-1FK01-0AB0 | CPU 1511F-1 PN | V2.1 | V3.1
6ES7 511-1FK01-0AB0 | CPU 1511F-1 PN | V2.5 | V3.1 SP1
6ES7 511-1FK01-0AB0 | CPU 1511F-1 PN | V2.6 | V3.1 SP2
6ES7 511-1FK01-0AB0 | CPU 1511F-1 PN | V2.8 | V3.1 SP4
6ES7 511-1FK02-0AB0 | CPU 1511F-1 PN | V2.5 | V3.1 SP1
6ES7 511-1FK02-0AB0 | CPU 1511F-1 PN | V2.6 | V3.1 SP2
6ES7 511-1FK02-0AB0 | CPU 1511F-1 PN | V2.8 | V3.1 SP4
6ES7 511-1UK01-0AB0 | CPU 1511TF-1 PN | V2.1 | V3.1
6ES7 511-1UK01-0AB0 | CPU 1511TF-1 PN | V2.5 | V3.1 SP1
6ES7 511-1UK01-0AB0 | CPU 1511TF-1 PN | V2.6 | V3.1 SP2
6ES7 511-1UK01-0AB0 | CPU 1511TF-1 PN | V2.8 | V3.1 SP4
6ES7 512-1SK00-0AB0 | CPU 1512SP F-1 PN | V1.7 | V3.1
6ES7 512-1SK00-0AB0 | CPU 1512SP F-1 PN | V1.8 | V3.1
6ES7 512-1SK01-0AB0 | CPU 1512SP F-1 PN | V1.8 | V3.1
6ES7 512-1SK01-0AB0 | CPU 1512SP F-1 PN | V2.0 | V3.1
6ES7 512-1SK01-0AB0 | CPU 1512SP F-1 PN | V2.1 | V3.1
6ES7 512-1SK01-0AB0 | CPU 1512SP F-1 PN | V2.5 | V3.1 SP1
6ES7 512-1SK01-0AB0 | CPU 1512SP F-1 PN | V2.6 | V3.1 SP2
6ES7 512-1SK01-0AB0 | CPU 1512SP F-1 PN | V2.8 | V3.1 SP4
6ES7 513-1FL00-0AB0 | CPU 1513F-1 PN | V1.7 | V3.1
6ES7 513-1FL00-0AB0 | CPU 1513F-1 PN | V1.8 | V3.1
6ES7 513-1FL01-0AB0 | CPU 1513F-1 PN | V1.8 | V3.1
6ES7 513-1FL01-0AB0 | CPU 1513F-1 PN | V2.0 | V3.1
6ES7 513-1FL01-0AB0 | CPU 1513F-1 PN | V2.1 | V3.1
6ES7 513-1FL01-0AB0 | CPU 1513F-1 PN | V2.5 | V3.1 SP1
6ES7 513-1FL01-0AB0 | CPU 1513F-1 PN | V2.6 | V3.1 SP2
6ES7 513-1FL01-0AB0 | CPU 1513F-1 PN | V2.8 | V3.1 SP4
6ES7 513-1FL02-0AB0 | CPU 1513F-1 PN | V2.5 | V3.1 SP1
6ES7 513-1FL02-0AB0 | CPU 1513F-1 PN | V2.6 | V3.1 SP2
6ES7 513-1FL02-0AB0 | CPU 1513F-1 PN | V2.8 | V3.1 SP4
6ES7 513-2GL00-0AB0 | CPU 1513pro F-2 PN | V2.8 | V3.1 SP4
6ES7 515-2FM00-0AB0 | CPU 1515F-2 PN | V1.6 | V3.1
6ES7 515-2FM00-0AB0 | CPU 1515F-2 PN | V1.7 | V3.1
6ES7 515-2FM00-0AB0 | CPU 1515F-2 PN | V1.8 | V3.1
6ES7 515-2FM01-0AB0 | CPU 1515F-2 PN | V1.8 | V3.1
6ES7 515-2FM01-0AB0 | CPU 1515F-2 PN | V2.0 | V3.1
6ES7 515-2FM01-0AB0 | CPU 1515F-2 PN | V2.1 | V3.1
6ES7 515-2FM01-0AB0 | CPU 1515F-2 PN | V2.5 | V3.1 SP1
6ES7 515-2FM01-0AB0 | CPU 1515F-2 PN | V2.6 | V3.1 SP2
6ES7 515-2FM01-0AB0 | CPU 1515F-2 PN | V2.8 | V3.1 SP4
6ES7 515-2FM02-0AB0 | CPU 1515F-2 PN | V2.8 | V3.1 SP4
6ES7 515-2UM01-0AB0 | CPU 1515TF-2 PN | V2.1 | V3.1
6ES7 515-2UM01-0AB0 | CPU 1515TF-2 PN | V2.5 | V3.1 SP1
6ES7 515-2UM01-0AB0 | CPU 1515TF-2 PN | V2.6 | V3.1 SP2
6ES7 515-2UM01-0AB0 | CPU 1515TF-2 PN | V2.8 | V3.1 SP4
6ES7 516-2GN00-0AB0 | CPU 1516pro F-2 PN | V2.0 | V3.1
6ES7 516-2GN00-0AB0 | CPU 1516pro F-2 PN | V2.1 | V3.1
6ES7 516-2GN00-0AB0 | CPU 1516pro F-2 PN | V2.5 | V3.1 SP1
6ES7 516-2GN00-0AB0 | CPU 1516pro F-2 PN | V2.6 | V3.1 SP2
6ES7 516-2GN00-0AB0 | CPU 1516pro F-2 PN | V2.8 | V3.1 SP4
6ES7 516-3FN00-0AB0 | CPU 1516F-3 PN/DP | V1.5 | V3.1
6ES7 516-3FN00-0AB0 | CPU 1516F-3 PN/DP | V1.6 | V3.1
6ES7 516-3FN00-0AB0 | CPU 1516F-3 PN/DP | V1.7 | V3.1
6ES7 516-3FN00-0AB0 | CPU 1516F-3 PN/DP | V1.8 | V3.1
6ES7 516-3FN01-0AB0 | CPU 1516F-3 PN/DP | V1.8 | V3.1
6ES7 516-3FN01-0AB0 | CPU 1516F-3 PN/DP | V2.0 | V3.1
6ES7 516-3FN01-0AB0 | CPU 1516F-3 PN/DP | V2.1 | V3.1
6ES7 516-3FN01-0AB0 | CPU 1516F-3 PN/DP | V2.5 | V3.1 SP1
6ES7 516-3FN01-0AB0 | CPU 1516F-3 PN/DP | V2.6 | V3.1 SP2
6ES7 516-3FN01-0AB0 | CPU 1516F-3 PN/DP | V2.8 | V3.1 SP4
6ES7 516-3FN02-0AB0 | CPU 1516F-3 PN/DP | V2.8 | V3.1 SP4
6ES7 516-3UN00-0AB0 | CPU 1516TF-3 PN/DP | V2.5 | V3.1 SP1
6ES7 516-3UN00-0AB0 | CPU 1516TF-3 PN/DP | V2.6 | V3.1 SP2
6ES7 516-3UN00-0AB0 | CPU 1516TF-3 PN/DP | V2.8 | V3.1 SP4
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V1.6 | V3.1
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V1.7 | V3.1
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V1.8 | V3.1
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V2.0 | V3.1
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V2.1 | V3.1
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V2.5 | V3.1 SP1
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V2.6 | V3.1 SP2
6ES7 517-3FP00-0AB0 | CPU 1517F-3 PN/DP | V2.8 | V3.1 SP4
6ES7 517-3UP00-0AB0 | CPU 1517TF-3 PN/DP | V2.0 | V3.1
6ES7 517-3UP00-0AB0 | CPU 1517TF-3 PN/DP | V2.1 | V3.1
6ES7 517-3UP00-0AB0 | CPU 1517TF-3 PN/DP | V2.5 | V3.1 SP1
6ES7 517-3UP00-0AB0 | CPU 1517TF-3 PN/DP | V2.6 | V3.1 SP2
6ES7 517-3UP00-0AB0 | CPU 1517TF-3 PN/DP | V2.8 | V3.1 SP4
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V1.5 | V3.1
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V1.6 | V3.1
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V1.7 | V3.1
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V1.8 | V3.1
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V2.0 | V3.1
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V2.1 | V3.1
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V2.5 | V3.1 SP1
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V2.6 | V3.1 SP2
6ES7 518-4FP00-0AB0 | CPU 1518F-4 PN/DP | V2.8 | V3.1 SP4
6ES7 518-4FP00-3AB0 | CPU 1518F-4 PN/DP ODK | V2.0 | V3.1 SP1
6ES7 518-4FP00-3AB0 | CPU 1518F-4 PN/DP ODK | V2.1 | V3.1 SP1
6ES7 518-4FP00-3AB0 | CPU 1518F-4 PN/DP ODK | V2.5 | V3.1 SP1
6ES7 518-4FP00-3AB0 | CPU 1518F-4 PN/DP ODK | V2.6 | V3.1 SP2
6ES7 518-4FP00-3AB0 | CPU 1518F-4 PN/DP ODK | V2.8 | V3.1 SP4
6ES7 518-4FX00-1AB0 | CPU 1518F-4 PN/DP MFP | V2.5 | V3.1 SP1
6ES7 518-4FX00-1AB0 | CPU 1518F-4 PN/DP MFP | V2.6 | V3.1 SP2
6ES7 518-4FX00-1AB0 | CPU 1518F-4 PN/DP MFP | V2.8 | V3.1 SP4
6ES7 672-5SC01-0YA0 | CPU 1505SP F | V2.0 | V3.1 SP2
6ES7 672-5SC01-0YA0 | CPU 1505SP F | V2.1 | V3.1 SP2
6ES7 672-5SC11-0YA0 | CPU 1505SP F | V2.5 | V3.1 SP2
6ES7 672-5SC11-0YA0 | CPU 1505SP F | V2.6 | V3.1 SP2
6ES7 672-5SC11-0YA0 | CPU 1505SP F | V2.7 | V3.1 SP4
6ES7 672-5WC11-0YA0 | CPU 1505SP TF | V2.5 | V3.1 SP2
6ES7 672-5WC11-0YA0 | CPU 1505SP TF | V2.6 | V3.1 SP2
6ES7 672-5WC11-0YA0 | CPU 1505SP TF | V2.7 | V3.1 SP4
6ES7 672-7FC01-0YA0 | CPU 1507S F | V2.0 | V3.1 SP2
6ES7 672-7FC01-0YA0 | CPU 1507S F | V2.1 | V3.1 SP2
6ES7 672-7FC01-0YA0 | CPU 1507S F | V2.5 | V3.1 SP2
6ES7 672-7FC01-0YA0 | CPU 1507S F | V2.6 | V3.1 SP2
6ES7 672-7FC01-0YA0 | CPU 1507S F | V2.7 | V3.1 SP4
6ES7 672-8FC01-0YA0 | CPU 1508S F | V2.6 | V3.1 SP2
6ES7 672-8FC01-0YA0 | CPU 1508S F | V2.7 | V3.1 SP4


故障排除事件日志消息

与设备相关的消息 有关导出 PC 数据的消息

故障排除事件日志消息

下表提供了事件日志消息的其它信息。如果需要有关消息的更多信息，请从事件日志中复制消息并搜索在线帮助中的消息文本。

事件日志消息

可能的原因和纠正措施

输入的 CPU 密码无效，无法执行本次操作。

为操作输入了无效的 CPU 密码。输入有效的密码。

CPU 无法进入 RUN 模式。

可能的原因：下载的 TIA Portal 项目可能对这种 CPU 类型无效，或者从未将程序下载到 CPU。

查看诊断缓冲区以获取更多详细信息。

CPU 无法进入 RUN 模式。CPU 可能没有有效的用户程序。检查诊断缓冲区以获取更多详细信息。

设备不接受新的组态。

设备拒绝了用来设置 IP 地址或 PROFINET 名称的 DCP 命令。检查网络通信连接。验证输入的 IP 地址或 PROFINET 名称是否正确。

无法连接到设备。验证 MAC 地址是否正确。

SIMATIC Automation Tool 无法在网络上识别出具有该 MAC 地址的设备。验证输入的 MAC 地址是否与设备的 MAC 地址相匹配。

与设备的连接过早丢失。

SIMATIC Automation Tool 断开了与设备的连接。验证网络通信连接是否正常。

操作失败并返回错误：ID 编号

SIMATIC Automation Tool 内部错误。联系您的 Siemens 代理商。

断开失败

SIMATIC Automation Tool 无法与设备断开。重新尝试该操作。

指定的固件更新文件与设备不兼容。

所选固件更新文件与此设备不兼容。选择与特定设备兼容的固件更新文件版本。

指定的固件更新文件与设备不兼容，因为硬件要求固件版本必须不同。

设备硬件要求固件更新文件不同于已有版本。选择不同于现有版本的固件更新文件版本。

指定的固件更新文件与设备不兼容，因为硬件要求固件版本必须相同。

设备硬件要求固件更新文件与已有版本相同。选择与设备固件版本相同的固件更新文件版本。

指定的固件更新文件与设备不兼容，因为硬件要求固件版本为较新版本。

设备硬件要求固件更新文件的版本必须高于设备中的文件版本。选择更高的固件更新文件版本。

指定的固件更新文件与设备不兼容，因为硬件要求固件版本为较旧版本。

设备硬件要求固件更新文件的版本必须低于设备中的文件版本。选择较低的固件更新文件版本。

模块 ID 无效。

API FirmwareUpdate 方法接收到与模块不对应的 hardwareID 参数值。调用 FirmwareUpdate 更新方法时，请提供正确的模块 ID。

模块不接受固件更新文件。

选择与要更新的模块兼容的固件更新文件。

无法访问模块。将有效的硬件组态下载到 CPU 或直接连接到设备。

SIMATIC Automation Tool 无法与设备通信。将有效的设备组态从 TIA Portal 下载到设备。或者使用 SIMATIC Automation Tool 更新 CPU 程序。

此工具不支持此模块的固件更新。

SIMATIC Automation Tool 不支持对此类型的模块进行固件更新。不能使用 SIMATIC Automation Tool 更新此模块的固件。

固件更新文件与设备具有相同的固件版本。

固件更新文件与设备具有相同的固件版本。未执行固件更新，无需进一步操作。

此设备不支持格式化存储卡。

不可以格式化该设备的存储卡。

网关地址无效。

网关地址与子网掩码和 IP 地址不匹配。验证设备和网络的 IP 地址、子网掩码和网关是否正确。

发生内部错误。

SIMATIC Automation Tool 内部错误。联系您的 Siemens 代理商。

目标服务器地址无效。

SIMATIC Automation Tool 无法连接到 CPU 或 HMI 设备。验证设备的 MAC 地址或 IP 地址是否正确。

使用此版本的 SIMATIC Automation Tool 无法打开该项目。

SIMATIC Automation Tool 无法打开 V1.x 项目或更高版本的项目。请参见“保存和打开 .sat 项目文件”主题。

检测到无效的签名。修复安装。

SIMATIC Automation Tool 安装未完成或已损坏。重新安装 SIMATIC Automation Tool。

IP 地址无效。

IP 地址不符合相关要求。输入有效的 IP 地址。

MAC 地址无效。

MAC 地址不符合相关要求。输入有效的 MAC 地址。

不允许执行此操作，因为连接了其它组态工具，如 TIA Portal。

只允许一个软件工具连接到设备。断开设备的其它连接，例如，在 TIA Portal 中离线。然后在 SIMATIC Automation Tool 中重试该操作。

已激活的 ES 实例不支持 MultiES。

该设备不支持同时与 SIMATIC Automation Tool、TIA Portal 或其它工具建立多个在线连接。在 TIA Portal 或其它工具中离线，然后重试 SIMATIC Automation Tool 操作。

已超出 CPU 连接的最大数目。

该设备支持同时与 SIMATIC Automation Tool、TIA Portal 或其它工具建立有限数量的在线连接。连接已超出限值。在 TIA Portal 或其它工具中离线，然后重试 SIMATIC Automation Tool 操作。

不支持通过多种工具连接到此 CPU。

该设备支持同时与 SIMATIC Automation Tool、TIA Portal 或其它工具建立有限数量的在线连接。不支持通过多种工具进行的连接。在 TIA Portal 或其它工具中离线，然后重试 SIMATIC Automation Tool 操作。

客户端要对在 CPU RUN 模式下无法更改的对象变量或链接进行写入操作。

CPU 无法以 RUN 模式执行该操作。将 CPU 切换至 STOP 模式。

操作成功完成。

仅供参考

用户取消了操作。

仅供参考

设备不支持请求的操作。

检查设备目录，了解设备当前固件版本支持的具体操作。

参数超出范围。

应用程序调用的 API 方法 SetOperatingState 时使用的值无效。调用此方法时，操作模式状态必须为“Stop”或“Run”。

PROFINET 名称无效。

PROFINET 名称无效。输入一个有别于其它设备唯一的有效 PROFINET 名称。

无法建立与设备的连接

SIMATIC Automation Tool 无法连接到设备。检查网络连接。验证其它软件工具（例如，TIA Portal）是否与设备建立了在线连接。如果是，请断开与其它工具的连接。验证设备是否在您指定的子网上。检查路由（如适用）。如果您还没有网络接口卡，请将网络接口卡设置为“自动”选择。

操作已超时。

CPU 未完成操作。重新尝试该操作。如果操作仍然超时，请检查设备和网络通信。

由于密码超时，因此连接无效。

由于没有操作，CPU 的密码已经超时。输入 CPU 密码并再次尝试操作。

无法设置 IP 地址

SIMATIC Automation Tool 无法设置 IP 地址。检查 IP 地址是否有效且唯一。验证 STEP 7 项目中的设备组态是否允许直接在设备中设置 IP 地址。

无法设置 PROFINET 名称

SIMATIC Automation Tool 无法设置 PROFINET 名称。检查 PROFINET 名称是否有效且唯一。验证 STEP 7 项目中的设备组态是否允许直接在设备中设置 IP 地址。

子网掩码无效。

子网掩码不符合有效子网掩码的要求。输入有效的子网掩码。

设备不受支持或无法初始化。

SIMATIC Automation Tool 不支持该设备或无法初始化设备。检查设备目录，了解支持的设备和版本。

设备不接受固件更新文件。

设备拒绝了固件更新。验证固件更新文件是否对设备有效。如果是从旧格式更新，请确保为“新固件版本”(New Firmware Version) 字段选择了标头 .upd 文件。还应测试设备是否正常工作。

无法压缩文件夹的内容

SIMATIC Automation Tool 无法压缩文件夹的内容。检查是否有足够的文件系统空间存储 zip 文件。还会检查文件夹权限。任一情况都可能是问题的原因。

写入文件时出现错误

SIMATIC Automation Tool 无法将文件保存到编程设备。检查编程设备上的文件存储空间和文件权限。

创建文件时出现错误

SIMATIC Automation Tool 无法在编程设备上创建文件。检查编程设备上的文件存储空间和文件权限。

删除文件时出现错误

SIMATIC Automation Tool 无法在编程设备上删除文件。检查编程设备上的文件权限。

删除文件夹时出现错误

SIMATIC Automation Tool 无法删除编程设备中的文件夹。检查编程设备上的文件夹权限。确保文件夹未打开。

创建文件夹时出现错误

SIMATIC Automation Tool 无法创建用于存储服务数据的临时文件夹。检查编程设备上的文件存储空间。

必须购买许可证才能使用 API。

您没有使用 API 所必需的有效许可证。可使用 21 天免费试用许可（21 天）。否则，请购买 SIMATIC Automation Tool 许可或购买软件开发工具包 (SDK) 来使用 API。

超时值无效。有效值为 180-999 秒。

通信选项中通信操作的超时值超出范围。将该值设置为 180-999 秒之间的一个数字。

设备中无要备份的数据

如果设备没有用户程序，则 SIMATIC Automation Tool 无法创建备份。将项目从 STEP 7 下载到设备，或通过 SIMATIC Automation Tool 更新程序。如果您有此设备先前的备份文件，则可以通过 SIMATIC Automation Tool 对其进行恢复。

从流中读取时出现错误

SIMATIC Automation Tool 无法读取先前保存的项目文件。验证项目文件是否来自兼容的 SIMATIC Automation Tool 版本。打开有效项目（如果有）。

写入流时出现错误

SIMATIC Automation Tool 无法为当前项目写入和保存项目文件。检查编程设备上的文件存储空间。

HMI 项目文件无效或不完整。

您正在尝试执行 HMI 程序更新。程序更新文件已经损坏。无法还原此文件。

HMI 项目与设备不兼容。

您要为 HMI 设备执行的程序更新与该 HMI 设备不兼容。您只能执行与 HMI 设备硬件兼容的程序更新。

由于写保护，无法完成文件操作。

文件操作的位置受写保护。在编程设备上选择不受写保护的文件夹位置。

无法更改此设备的 IP 地址

SIMATIC Automation Tool 无法设置 IP 地址。输入有效的 IP 地址。检查网络通信连接。

无法更改此设备的 PROFINET 名称

SIMATIC Automation Tool 无法设置 PROFINET 名称。输入有效的 PROFINET 名称。检查网络通信连接。

请求中止

仅供参考

设备尚不支持设备插件传送。

程序更新文件包含插件。您要更新的 HMI 设备不支持插件。仅可使用没有插件的程序更新此 HMI 设备。

未找到属性

HMI 操作尝试读取或写入的位置不存在。验证 HMI 设备的程序更新文件或备份文件是否有效。

缓冲区太小，无法容纳所有请求的数据

HMI 设备报告内部缓冲区太小。为您的 HMI 设备联系客户支持。

HMI 证书已过期。

HMI 证书已失效。更新 HMI 设备中的证书。

检查证书签名时出现常规故障

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

文件证书无效。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

证书尚未生效

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

证书已被撤销。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

建立操作所需的客户端连接

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

文件读取操作失败。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

文件写入操作失败。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

未安装的固件类型

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

不支持的固件类型

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

固件文件对此设备无效。

选择的固件更新文件对设备无效。选择与您的设备和版本相对应的固件更新文件。

此插件与此设备/固件不兼容

程序更新文件包含插件。项目更新文件中的插件与要更新的 HMI 设备不兼容。只能更新没有插件或具有兼容插件的程序。

传递给方法的参数无效

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

文件路径无效

文件路径不存在或者无效。提供有效的文件路径。

许可证控制失败。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

缺少逻辑卷。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

逻辑卷空间不足。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

未找到对象

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

没有足够的资源来运行请求的操作

请求的操作所需的系统资源不足。关闭编程设备上的部分应用程序，然后重试。

文件系统空间不足

文件系统没有足够的空间来执行请求的操作。删除文件系统上的文件腾出可用空间，或选择具有更多可用空间的其它文件系统。

远程传送已禁用

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

无法进行救援备份，例如由于错误的设备状态或错误的固件文件

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

无法进行救援恢复，例如由于错误的设备状态

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

运行系统安装中断。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

运行系统未安装。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

安全库处理的一般问题

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

其它服务已激活。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

检查文件签名时出现常规故障

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

文件签名无效。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

文件未签名。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

存储读取操作失败。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

存储写入操作失败。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

类型转换失败

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

发生意外的操作系统错误。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

未安装具有给定名称的插件。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

未安装具有给定 id 的应用程序。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

未安装具有给定 id 的应用程序插件。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

应用程序插件引用未安装的应用程序。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

配方文件名称无效。

检查文件名。提供有效的文件名。

没有足够的存储空间来执行此操作

CPU 中的 SIMATIC SD 存储卡没有足够的空间来存储文件。从存储卡中删除无关内容或使用容量更大的存储卡。

目标设备上存在较新的不兼容固件映像。如果更新操作系统，则可以永久删除配方数据、用户数据和某些系统设置。

设备上的固件版本比您选择的固件更新版本更高。如果继续执行该固件更新，则可能会删除配方数据、用户数据和某些系统设置。在继续操作之前，请验证是否要更新到此固件版本。

目标设备上存在较旧的不兼容固件映像。如果更新操作系统，则可以永久删除更新配方数据、用户数据和某些系统设置。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

目标设备上存在较新的不兼容运行系统。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

目标设备上存在较旧的不兼容运行系统。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

在目标设备上未安装运行系统。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

目标设备内存不足。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

显示方向错误（HMI 设备上纵向组态横向）。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

显示方向错误（HMI 设备上横向组态纵向）。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

常规错误。再次编译项目并重复下载。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

常规错误。重复下载。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

在目标设备上未安装运行系统。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

组态的设备与目标设备不匹配。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

在目标设备上安装了不兼容的运行系统。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

安装了不正确的运行系统版本。已安装的运行系统无法处理项目。在目标设备上手动安装运行系统。

HMI 设备中发生内部错误。为您的 HMI 设备联系客户支持。

发生错误且无法确定设备标识。

SIMATIC Automation Tool 无法确定此 CPU 的身份。

设备标识已更改。请再次扫描整个网络。

SIMATIC Automation Tool 连接到 CPU 时，CPU 设备身份已更改。重新扫描网络，以便为 SIMATIC Automation Tool 建立实际设备身份。

未找到连接的接口。

所选网络接口不再存在。检查网络接口连接并测试其是否正常运行。如果确定网络接口有效，则从 SIMATIC Automation Tool 中选择此网络接口。

未选择设备。

未选择任何设备。必须从设备表中选择设备。

与安全相关的操作需要安全密码。

必须提供 F-CPU 密码才能执行与安全相关的操作。

内部应用程序错误

设置密码时发生内部错误。设置有效密码，并检查设备是否受保护。

输入的 CPU 密码无效。

输入有效的 CPU 密码。

设备的 IP 地址在网络上重复。

SIMATIC Automation Tool 在网络上发现重复的 IP 地址，可能来自外部更改。按 IP 地址对设备表进行排序，以找到重复内容。更正其中一个地址，以消除重复现象。

输入的 IP 地址在网络上重复。

输入的 IP 地址与另一 IP 地址重复。输入一个在网络上唯一的 IP 地址。按 IP 地址对设备表进行排序，以找到重复内容。

重复的 PROFINET 名称

输入一个在网络上唯一的 PROFINET 名称。

必须确认与安全相关的操作。

在对 F-CPU 执行下列任一操作之前必须进行确认：

- 复位为出厂设置
- 恢复
- 程序更新
- 格式化存储卡

如果在使用该 API 的应用程序中收到此消息，则必须为 CPU 设置 SelectedConfirmed property。

没有 SD 卡或 SD 卡已空。

格式化存储卡要求存在 SIMATIC SD 存储卡。如果没有存储卡，则在 CPU 中插入 SIMATIC SD 存储卡。如果存在存储卡，但没有文件内容，则可忽略此消息。

程序文件无效或无法通过此版本的 SIMATIC Automation Tool 打开。

SIMATIC Automation Tool 无法访问在“选项”(Options) 对话框中指定的路径下的程序更新文件。验证“选项”(Options) 对话框的“程序更新”(Program Update) 设置中的路径名称是否正确。

CRC 在线和离线集体 F-签名比较结果不匹配。

程序更新失败。程序更新操作完成后，程序更新文件与 CPU 中的程序不匹配。请尝试执行以下步骤：

  1. 将 CPU 复位为出厂设置

  2. 如果使用了存储卡，请格式化存储卡。

  3. 再次尝试程序更新。

如果错误仍然存在，则无法使用此程序更新文件。

无法将程序文件下载到较旧的设备上。

目标设备的设备版本低于程序文件中的版本。将设备升级到较高版本，或选择与较低版本设备兼容的程序更新文件。

无法访问项目 IP 套件

验证 IP 地址、子网掩码和网关是否正确。更正不正确的网络相关参数值。

无法访问 IP 套件。

验证 IP 地址、子网掩码和网关是否正确。更正不正确的网络相关参数值。

备份文件包含无法通过 PROFINET 通信访问的 IP 套件。

恢复操作完成后，SIMATIC Automation Tool 无法访问设备。已恢复项目中的 IP 套件（IP 地址、子网掩码、网关）与实际设备和子网不匹配。更正并设置设备的 IP 套件值。如果您还没有网络接口卡，请将网络接口卡设置为“自动”选择。

新程序文件中的 IP 地址对于网络不唯一。

解决 IP 地址冲突问题。为其中一个设备设置不同的 IP 地址。

安全程序无法加载到标准 CPU。

无法将安全程序下载到标准 CPU。只能将标准程序下载到标准 CPU。

输入的 CPU 密码的差异检查失败。

SIMATIC Automation Tool 无法连接到 CPU。SIMATIC Automation Tool 设备表和实际设备之间的设备标识数据（例如 MAC 地址或序列号）不同。扫描网络。

备份文件对此设备无效。

您选择的备份文件对此 CPU 无效。选择与您的 CPU 设备类型相对应的备份文件。

备份文件扩展名对此设备无效。

文件的扩展名无效。选择具有 .s7pbkp 文件扩展名的备份文件。

操作失败。

以下操作之一失败：

- 复位为出厂设置
- 存储器复位
- 格式化存储卡
如果适用，将设备设置为 STOP 模式，或确保 CPU 中有 SIMATIC 存储卡。重新尝试该操作。

固件文件对此设备无效。

选择与设备兼容的固件更新文件版本。

无法验证程序文件密码。

为程序更新文件输入的“程序文件中的密码”与程序文件中的任何密码都不符。要更新程序，必须输入程序文件包含的有效密码。

程序文件包含网络中已存在的 IP 地址。

SIMATIC Automation Tool 不允许恢复会导致 IP 地址重复的程序文件。请更改冲突设备的 IP 地址或恢复另一程序文件。

缺少程序文件密码

必须输入有效的程序密码。

程序文件密码无效

必须输入有效的程序密码。

用户取消了操作。

仅供参考

程序文件对此设备无效。

选择与设备兼容的程序更新文件。

输入的程序文件密码无效或无法完成操作。

输入具有足够访问级别的程序文件密码，执行您要执行的操作。

在网络上找不到请求的设备。

SIMATIC Automation Tool 无法在网络上找到设备。检查网络接口、网络连接和 IP 地址。关闭 S7‑PLCSIM 或其它仿真软件（若运行）。

无法插入已存在的设备。

试图插入设备表中已存在的设备。只能插入设备表中尚未存在的设备。

不能更改 IP 地址，因为其已经出现在网络上。

试图将 IP 地址设置为已在使用的 IP 地址。将设备 IP 地址设置为唯一地址。

不能更改 PROFINET 名称，因为其已经出现在网络上。

试图将 PROFINET 名称设置为已在使用的 PROFINET 名称。选择唯一的 PROFINET 名称。

无法建立与设备的连接

SIMATIC Automation Tool 无法建立与设备的连接。检查网络接口、网络连接和 IP 地址。

设备无法完全初始化。

SIMATIC Automation Tool 无法初始化设备。确保设备与编程设备在同一个网络上。

SIMATIC Automation Tool 不支持具有较新程序的 CPU。

正在尝试使用的程序版本比 SIMATIC Automation Tool 支持的版本更新。检查设备目录以确定设备支持的版本。

IP 套件无效。

IP 地址、网关和子网组合无效。输入有效的 IP 套件。

所选备份文件与此设备不兼容

您选择的备份文件与您的设备不兼容。检查备份文件是否适用于正确的设备，以及其是否适用于正确的设备版本。

IP 地址已更改或 IP 地址在网络上重复。

自上次网络扫描以来，此设备的 IP 地址已经更改，或者其它设备具有相同的 IP 地址。扫描网络并解决任何 IP 地址冲突。

扫描时未找到任何设备。

SIMATIC Automation Tool 在网络扫描中未找到任何设备。检查网络接口和网络连接。检查设备的子网。关闭 S7‑PLCSIM 或其它仿真软件（若运行）。

CRC 在线和离线集体 F-签名比较结果匹配。

仅供参考：成功执行 F-CPU 操作。无需执行任何其它操作。

无法插入设备。

SIMATIC Automation Tool 无法将输入的设备插入设备表。检查 IP 地址是否唯一，以及输入的数据是否与网络上的设备相对应。

无法插入 IP 地址已存在于网络中的设备。

试图插入一个具有属于另一个设备的 IP 地址的设备。输入设备时，必须输入唯一的 IP 地址。

新网关地址无效。

输入了无效的网关地址。输入对网络有效的网关地址。

新 IP 地址无效。

输入了无效的新 IP 地址。输入有效的 IP 地址。

新 PROFINET 名称无效。

输入的新 PROFINET 名称无效。输入有效的 PROFINET 名称。

新子网掩码无效。

输入了无效的子网掩码。输入对设备和网络有效的子网掩码。

无法读取 F 签名

F-CPU 包括故障安全签名。SIMATIC Automation Tool 无法从设备读取故障安全签名。此错误导致您无法继续操作。

如果使用了存储卡，请格式化存储卡。将设备复位为出厂设置。然后重复该操作。

网络接口无效或未指定

从下拉列表中为通信设置选择一个有效的网络接口。

输入密码不足，无法完成操作。

需要更高的访问级别才能执行操作。在 STEP 7 项目中定义访问级别的密码。输入具有足够访问级别的密码，执行您要执行的操作。

程序文件中没有密码。

程序文件不包含密码。此消息仅供参考，无需任何操作。

处理此操作时发生未处理的异常。

发生意外错误。重新扫描网络并再次尝试操作。如果扫描未解决问题，则重新启动 SIMATIC Automation Tool。如果问题仍然存在，请联系您的 Siemens 代理商。

不支持打开文件格式为 V1.x 的项目。

无法打开 SIMATIC Automation Tool V1.x 项目。仅可打开 V2.0 或更高版本的项目。

已取消打开项目。

开始打开一个项目，然后取消该操作。无需其它操作。

需要程序文件密码

必须输入程序文件的密码。

无法打开、读取或处理备份文件。

SIMATIC Automation Tool 无法打开、读取或处理备份文件。使用与您的设备和版本相对应的备份文件，

此设备的程序文件不兼容。

程序文件与您的设备不兼容。使用与您的设备和版本相对应的程序文件。

SIMATIC Automation Tool 不支持 STEP 7 项目的硬件配置。

SIMATIC Automation Tool 不支持设备中 STEP 7 程序的硬件组态。检查 STEP 7 项目中的设备组态，并检查设备目录中的设备支持。

程序的硬件组态对连接的设备无效。

STEP 7 程序的硬件组态对网络上的实际设备无效。检查 STEP 7 项目中的设备组态，并检查设备目录中的设备支持。

无法加载文件系统。尝试重启 CPU。

SIMATIC Automation Tool 无法从 CPU 加载文件。CPU 文件可能已损坏。重新启动 CPU。如果问题仍然存在，请将 CPU 复位为出厂设置。

SNMP：输入了无效密码。

在 SNMP 版本 3 配置文件中输入的密码无效。输入有效的设备密码。

SNMP：值不存在

SNMP 值无效。验证 SNMP 配置文件设置是否正确。

SNMP：该值无法更改

在 SNMP 配置文件中，试图将值更改为无效值。输入有效值。

SNMP：该值为只读值，不能进行更改。

试图更改 SNMP 配置文件中的只读值。无法更改此值。

认证算法无效

SNMP 版本 3 配置文件中的认证算法无效。从 SNMP 配置文件“添加”(Add) 对话框的下拉列表中选择有效的认证算法。

认证密码无效

SNMP 版本 3 配置文件中的认证密码无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的认证密码。

上下文名称无效

SNMP 版本 3 配置文件中的上下文名称无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的上下文名称。

隐私算法无效

SNMP 版本 3 配置文件中的隐私算法无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的隐私算法。

隐私密码无效

SNMP 版本 3 配置文件中的隐私密码无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的隐私密码。

配置文件名称无效

SNMP 版本 1、2 或 3 配置文件中的配置文件名称无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的配置文件名称。

读集合无效

SNMP 版本 1 或 2 配置文件中的读集合无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的读集合。

安全等级无效

SNMP 版本 3 配置文件中的安全等级无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的安全等级。

服务器 IP 地址无效

SNMP 版本 1、2 或 3 配置文件中的服务器 IP 地址无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的服务器 IP 地址。

服务器端口无效

SNMP 版本 1、2 或 3 配置文件中的服务器端口无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的服务器端口。

SNMP 版本无效

SNMP 版本无效。在 SNMP 配置文件“添加”(Add) 对话框上选择 SNMP 版本 1、2 或 3。

用户名无效

SNMP 版本 3 配置文件中的用户名无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的用户名。

写集合无效

SNMP 版本 1 或 2 配置文件中的写集合无效。在 SNMP 配置文件“添加”(Add) 对话框上输入有效的写集合。

配置文件名称已存在。

SNMP 版本 1、2 或 3 配置文件中的配置文件名称属于另一个配置文件。在 SNMP 配置文件“添加”(Add) 对话框上输入唯一的配置文件名称。

此方法已过时。使用具有相同名称的较新方法。

不适用。

配置文件无效

SNMP 配置文件对设备无效。验证“添加”(Add) 对话框上的组态并进行必要的更改。

无法启动固件传送

固件更新操作失败。检查所有网络连接。检查固件更新文件是否对设备有效。重新尝试固件更新。

发生 SNMP 错误

与设备的 SNMP 通信过程中发生错误。验证 SNMP 配置文件设置是否正确。如果问题仍然存在，请为设备联系客户支持。

传输通道无效

选择的 HMI 传输通道无效。将 API SetTransferChannel 方法的 HMITransferChannel 类型设置为 PN_IE 或以太网。

设备返回无效的 MAC 地址

SIMATIC Automation Tool 无法确定您提供 IP 地址的 MAC 地址。只有在按 IP 地址插入设备时才会出现此错误。验证您正在插入的设备是否在网络上可用。验证设备的 IP 地址是否正确。或者，按 MAC 地址插入设备。

无法更新重复的 IP 和 PROFINET 名称

SIMATIC Automation Tool 出现内部错误。重新扫描网络。如果问题仍然存在，请联系您的 Siemens 代理商。

输入的 PROFINET 名称在网络上重复。

另一个设备使用此 PROFINET 名称。输入唯一的 PROFINET 名称。

执行备份时发生错误

CPU 提供给 SIMATIC Automation Tool 的备份数据无效。重新启动 CPU，然后重试。如果问题仍然存在，请联系您的 Siemens 代理商。

CPU 上的故障安全控制对象没有正确的类型。

F-CPU 中的当前程序未以安全程序形式存在或已损坏。通过 TIA Portal 下载安全程序，或通过 SIMATIC Automation Tool 更新程序。

指定的 IP 地址无效或已由 NIC 使用

输入了无效地址或其它设备使用的地址。输入有效且唯一的 IP 地址。

由于完整性检查，固件更新失败。

用于固件更新的 .upd 文件已损坏。使用有效的 .upd 文件进行固件更新。

备份类型无效

HMI 备份类型无效。HMI 的有效备份类型是完整、配方或用户管理数据。请提供有效的备份类型。

无法访问一个或多个设备诊断缓冲区

导出设备诊断时，SIMATIC Automation Tool 无法访问一个或多个诊断缓冲区。检查设备表中的设备是否连接到通信网络。查看事件日志了解关于不可访问设备的更多信息。如有必要，可更正网络连接并扫描网络。

Automation License Manager 错误 - 初始化错误，尝试 ALM 重新启动

初始化期间出现错误。重新启动 Automation License Manager。

Automation License Manager 错误 - 内部错误，全局清理失败，尝试 ALM 重新启动

全局清理任务执行期间出现错误。重新启动 Automation License Manager。

Automation License Manager 错误 - 内部错误，会话初始化失败，尝试 ALM 重新启动

会话初始化期间出现错误。重新启动 Automation License Manager。

Automation License Manager 错误 - 内部错误，会话清理失败，尝试 ALM 重新启动

会话清理任务执行期间出现错误。重新启动 Automation License Manager。

Automation License Manager 错误 - 内部错误，会话 ID 缺失，请联系 Siemens 支持人员

发生会话 ID 内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，会话 ID 不存在，请联系 Siemens 支持人员

发生会话 ID 内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 连接失败，检查对 ALM 服务器的网络访问

无法连接到 Automation License Manager。检查网络访问。

Automation License Manager 错误 - 内部错误，内存不足，重新启动系统或联系 Siemens 支持人员

Automation License Manager 没有提供运行所需的足够内存。重新启动编程设备，然后重试。如果问题仍然存在，请联系 Siemens 支持人员。

Automation License Manager 错误 - 超时，重新启动系统或联系 Siemens 支持人员

Automation License Manager 超时。重新启动编程设备，然后重试。如果问题仍然存在，请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，未找到功能，请联系 Siemens 支持人员

Automation License Manager 中的一个内部功能出现错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，任务中止，请联系 Siemens 支持人员

Automation License Manager 中的一个内部任务出现错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，功能参数错误，请联系 Siemens 支持人员

Automation License Manager 中的一个内部功能的参数出现错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，用户指定了未知选项，请联系 Siemens 支持人员

Automation License Manager 的选项无效。再试一次。如果问题仍然存在，请联系 Siemens 支持人员。

Automation License Manager 错误 - 发送网络数据失败，请检查网络连接

Automation License Manager 无法发送网络数据。检查网络连接。

Automation License Manager 错误 - 接收网络数据失败，请检查网络连接

Automation License Manager 无法接收网络数据。检查网络连接。

Automation License Manager 错误 - 无可用连接，请检查网络连接

Automation License Manager 未连接到网络。检查网络连接。

Automation License Manager 错误 - 内部错误，打开会话失败，请联系 Siemens 支持人员

Automation License Manager 无法打开会话。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，资源缺失，请联系 Siemens 支持人员

Automation License Manager 内部资源不足。请联系 Siemens 支持人员。

Automation License Manager 错误 - 服务未运行，重新启动 ALM 服务

重新启动 Automation License Manager 来尝试启动服务。如果问题仍然存在，请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，加密失败，请联系 Siemens 支持人员

Automation License Manager 出现内部加密错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，任务已经运行，请联系 Siemens 支持人员

由于任务已经运行，Automation License Manager 出现内部错误。重新启动编程设备，然后重新启动 Automation License Manager。如果问题仍然存在，请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，指针错误，请联系 Siemens 支持人员

Automation License Manager 出现内部指针错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，结果不匹配，请联系 Siemens 支持人员

Automation License Manager 出现结果意外的内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，结果错误，请联系 Siemens 支持人员

Automation License Manager 出现结果无效的内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，批量操作 API 参数号错误，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，批量操作 API 参数错误，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，批量操作 API 输入文件错误，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，批量操作 API 输入 xml 流错误，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，批量操作 API，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，批量操作 API 输出文件已经存在，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，批量操作 API 输出参数错误，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 内部错误，无法创建批量操作 API 输出文件，请联系 Siemens 支持人员

Automation License Manager 的批量操作接口出现内部错误。请联系 Siemens 支持人员。

Automation License Manager 错误 - 检查用户对文件夹的访问权限

Automation License Manager 在访问文件夹时出现错误。检查用户对文件夹的访问权限。

Automation License Manager 错误 - 内部错误，未知错误，请联系 Siemens 支持人员

Automation License Manager 出现未知内部错误。请联系 Siemens 支持人员。

已超出 PC 连接的最大数目。

SIMATIC Automation Tool 无法建立其它连接。已达到最大数。无法连接到任何其它设备。如果处于在线状态，请在 TIA Portal 中转至离线。从 PC 断开其它设备的连接。

文件名称无效。

该操作的文件名称无效。验证操作的路径和文件名称是否有效。

正在运行的服务请求已被客户端中止

仅供参考：客户端中止了正在运行的服务。

SNMP 版本无效

SNMP 版本无效。选择 SNMP 版本 1、2 或 3。

执行此操作之前，必须重新启动 CPU。

此操作需要重新启动 CPU。重新启动 CPU，然后再次尝试操作。

因为单击了“取消”(Cancel) 按钮，项目文件未打开。

仅供参考：您取消了打开项目文件的浏览器。

项目文件 <文件名称> 已成功打开。

仅供参考：SIMATIC Automation Tool 打开了指定的项目文件。

项目文件 <文件名称> 无法打开。

SIMATIC Automation Tool 无法打开指定的项目文件。验证该文件是否是有效的 .sat 项目，并且其是否与您的版本兼容。

输入的密码错误。

输入了无效的项目文件密码。必须输入该项目文件的正确密码。

因为单击了“取消”(Cancel) 按钮，项目文件未保存。

仅供参考：您取消了保存项目文件的浏览器。

PC 数据导出失败。

导出 PC 数据操作无法创建导出文件。检查是否有足够的磁盘空间和导出文件夹的权限。

项目文件 <文件名称> 无法保存。

SIMATIC Automation Tool 无法保存项目文件。检查编程设备上的文件夹访问权限和磁盘空间。

因为单击了“取消”(Cancel) 按钮，未执行导出。

仅供参考：您启动了导出，随后取消了导出。

因为单击了“取消”(Cancel) 按钮，未执行设备插入操作。

仅供参考：您启动了插入设备，随后取消了设备插入。

未找到有效的产品许可证；某些产品功能已禁用。

您没有有效的产品许可证。您只能执行 SIMATIC Automation Tool 未许可版本支持的任务。要访问所有功能，请根据安装说明的指导购买许可证。

已找到有效的产品许可证。所有产品功能均已启用。

仅供参考：使用有效且未过期的产品许可证，您可以执行所有 SIMATIC Automation Tool 任务。

必须具有 Windows 管理员权限才能访问某些 PC 导出数据。通过“以管理员身份运行”重新启动 SIMATIC Automation Tool 来导出这些数据。

使用 Windows 管理员权限运行导出 PC 数据操作，访问其中部分数据。通过“以管理员身份运行”重新启动 SIMATIC Automation Tool 来导出这些数据。

导出获取所有请求的数据。日志文件包含导出数据的详细列表。

仅供参考：导出 PC 数据操作成功。导出的 .zip 文件中的日志文件列出导出的数据。

导出无法获取所有数据。日志文件包含有关导出成功获取的数据的详细信息以及无法获取其它数据的原因。

导出 PC 数据操作未导出所有数据。查看日志文件了解原因。导出的 .zip 文件中的日志文件包含以下信息：

  • 导出操作成功获取和导出的数据的相关信息

  • 导出操作无法获取其它数据的原因

项目文件 <文件名称> 已成功保存。

仅供参考：SIMATIC Automation Tool 成功保存了指定的项目文件。

与设备相关的消息

设备还可以返回与设备相关的消息。这些消息未列在上面的列表中。如果与设备相关的消息不明确，请与设备制造商联系。

有关导出 PC 数据的消息

导出 PC 数据可以生成未列在上面列表中的消息。SIMATIC Automation Tool 会记录导出进程返回的这些消息。如果在事件类“导出 PC 数据”中收到事件日志消息，请尝试以下纠正措施：

  • 检查是否有足够的磁盘空间。导出的 PC 数据 .zip 文件所需的空间可能不足。如有必要，请在驱动器上创建额外的空间。

  • 验证是否有导出文件夹的权限。

如果您从“导出 PC 数据”事件类中收到其它不清楚的事件日志消息，请联系您的 Siemens 代理商。