STEP 7

示例 参见 过程 其它
STEP 7

该章节包括以下主题的信息:
  • 安全性信息
  • 使用注意事项
  • 同时在线运行
  • 编辑设备和网络
  • 对 PLC 进行编程
  • 项目间工程组态 (IPE)
  • 工艺功能


安全性信息

安全性信息 网络设置
安全性信息

安全性信息

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

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

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

此外，应考虑遵循 Siemens 有关相应安全措施的指南。更多有关工业安全的信息，请访问

https://www.siemens.com/industrialsecurity

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

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

https://www.siemens.com/industrialsecurity

网络设置

下表列出了为分析网络安全性和配置外部防火墙时每个产品的网络设置：

STEP 7 Professional
名称 | 端口号 | 传输协议 | 传输方向 | 功能 | 说明
ALM | 4410* | TCP | 入站/出站 | 许可证服务 | 该服务提供了软件许可证的完整功能，由 Automation License Manager 以及所有与许可证相关的软件产品使用。
RFC 1006 | 102 | TCP | 出站 | S7 通信 | 为了进行编程和诊断，可以通过以太网/PROFINET 与 S7 控制器进行通信。
DCP | --- | 以太网 | 出站 | PROFINET | DCP 协议（发现和基本组态协议）适用于 PROFINET 网络，可提供用于定位和组态 PROFINET 设备的基本功能。
SNMP | 161 | UDP | 出站 | PROFINET | STEP 7 则可以通过 SNMP 客户端功能读取 PROFINET 设备的状态信息。
* 可通过用户组态更改的默认端口

WinCC ES Basic（不含仿真）
名称 | 端口号 | 传输协议 | 传输方向 | 功能 | 说明
ALM | 4410* | TCP | 入站/出站 | 许可证服务 | 该服务提供了软件许可证的完整功能，由 Automation License Manager 以及所有与许可证相关的软件产品使用。
HMI 负载 | 1033 | TCP | 出站 | HMI 负载 (RT Basic) | 该服务用于将图像和组态数据传送到精简面板。
* 可通过用户组态更改的默认端口

仿真 RT Basic
名称 | 端口号 | 传输协议 | 传输方向 | 功能 | 说明
HMI 负载 | 1033 | TCP | 入站 | HMI 负载 (RT Basic) | 该服务用于将图像和组态数据传送到精简面板。
以太网/IP | 44818 | TCP | 出站 | 以太网/IP 通道 | 使用以太网/IP 协议连接 Allen Bradley PLC。
 | 2222 | UDP | 入站 | 以太网/IP 通道 | 使用以太网/IP 协议连接 Allen Bradley PLC。
Modbus TCP | 502 | TCP | 出站 | Modbus TCP 通道 | 使用 Modbus TCP 协议连接 Schneider PLC。
RFC 1006 | 102 | TCP | 出站 | S7 通道 | 通过以太网/PROFINET 与 S7 控制器进行通信
Mitsubishi MC | 5002 | TCP | 出站 | Mitsubishi MC 通道 | 使用 Mitsubishi 协议连接 Mitsubishi PLC。


使用注意事项

内容 项目升级到 V16 后的兼容性 同时使用 卸下和插入以太网模块 兼容性 (S7-1200)
使用注意事项

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

项目升级到 V16 后的兼容性

项目升级到 V16 之后，即使在线程序与离线程序相同，系统也可能指示出在线/离线存在不同之处。在版本 V16 中，这些不同是由于对校验和计算进行优化而导致的。但在大多数情况下，这些块均具有兼容性。

仅在极少数情况下，对项目进行在线监视和测试时，可能会由于校验和计算发生变更，需要重新编译并下载该项目。

有关项目特性升级的更多信息，请参见日志文件。如果日志文件中报告有校验和不一致错误，则意味着由于校验和计算发生变更而导致在线/离线不同。

更多信息，请参见“项目升级后的在线连接”部分。

同时使用

如果安装后在软件的名称或许可证密钥中出现术语“组合”，那么根据“一般条款和条件”的第 1.6 条（另请参见安装程序文本），允许使用以下产品/版本：

  • STEP 7 Professional 2017

  • STEP 7 Professional 2010

  • STEP 7 Professional 2006

卸下和插入以太网模块

如果在操作过程中卸下和重新插入以太网模块，则必须重新启动 PC 机；否则在 STEP 7 或 NCM PC 中的“可访问的设备”(Accessible devices) 功能中显示的设备可能不全。启动 PC 时，必须激活以太网模块。

兼容性 (S7-1200)

必须使用相同版本的 STEP 7 对 S7-1200 CPU 的设备和程序进行组态。将组态加载到设备中时，TIA Portal 通常会通过输出相应的通知确保以确保无版本冲突。

固件版本为 V1.x 的 S7-1200 CPU 不会自动验证版本冲突。此时，用户需确保不会发生版本冲突。


同时在线运行

内容 同时在线运行 在一个 S7-1200 CPU (S7-1200) 上同时进行在线连接
同时在线运行

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

同时在线运行

STEP 7 V5.6 及以前版本与 STEP 7 V16 (TIA Portal) 不得同时在线运行。

在一个 S7-1200 CPU (S7-1200) 上同时进行在线连接

无法同时从多个 TIA Portal 实例与同一个 S7-1200 CPU 建立在线连接。


编辑设备和网络

编辑设备和网络

该章节包括以下主题的信息:
  • 设备和网络的常规信息
  • 关于硬件配置的说明
  • 有关 OPC UA 功能的信息
  • IO 设备的硬件检测
  • HMI 面板 IO 设备中“Hw_SubModule”类型的硬件 ID
  • 在 S7-1200 上使用模块
  • SIMATIC S7 嵌入式控制器 EC31-RTX 上的 CP 343-2
  • 加载 S7-1500 CPU (SIPLUS)
  • WinLC RTX 上的 ET 200MP (IM 155-5 DP ST)
  • 关于在线和诊断的说明
  • 网络组件


设备和网络的常规信息

内容 S7-PCT IO-Link (S7-1200) 端口组态工具 PCT
设备和网络的常规信息

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

S7-PCT IO-Link (S7-1200)

S7 端口组态工具可以通过以下链接免费下载。

http://support.automation.siemens.com/WW/view/37936752

端口组态工具 PCT

如果使用 PCT 工具，请确保始终使用通过以下链接免费提供的最新版本：


关于硬件配置的说明

内容 编辑设备 IP 地址
关于硬件配置的说明

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

编辑设备 IP 地址

编辑设备 IP 地址时，请勿使用 192.168.x.241 到 192.168.x.250 范围内的地址。必要时，系统会自动将该地址范围分配给编程设备。这种方式也适用于所有类型的网络，具体取决于子网掩码。


有关 OPC UA 功能的信息

内容 适用于 OPC UA 功能的架构文件 PLC 对象在服务器地址空间中不可见 通过 NAT 路由器实现的 OPC UA 客户端-服务器连接 重新启动 OPC UA 服务器 将 S7-1200 CPU 的 CPU 数据类型映射至 OPC UA 数据类型 OPC UA 客户端指令的其它状态代码 从信息系统复制 SCL 程序示例
有关 OPC UA 功能的信息

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

适用于 OPC UA 功能的架构文件

OPC 基金会为其成员制定了制造商进行各种服务器/客户端实施的架构。该文件可用于验证所导入的信息模型 / 节点集。

以下架构和节点集文件适用于 TIA Portal V16 或 S7-1500 CPU 固件版本 V2.8：

架构/节点集 | 说明
https://opcfoundation.org/UA/schemas/1.04/UANodeSet.xsd | NodeSet 数据支持 XML 架构 (2018-12-04)
https://opcfoundation.org/UA/schemas/1.04/Opc.Ua.NodeSet2.xml | OPC UA ("CORE") 模型版本 V1.04 (2018-06-04)
https://opcfoundation.org/UA/schemas/DI/1.1/Opc.Ua.Di.NodeSet2.xml | OPC UA for Devices ("DI") 模型版本 V1.01 (2018-06-06)

PLC 对象在服务器地址空间中不可见

在超大型项目中，极少数情况下（即便项目编译成功并成功下载到 CPU），可能会发生 CPU 节点或 PLC 对象在 OPC UA 服务器地址空间中不可见的现象。这是因为，CPU 中为 OPC UA 预留的内存不足。

诊断（如，使用 UaExpert）将返回服务器状态“失败”。

补救措施

如果不需要，则可在 CPU 属性中禁用标准 SIMATIC 服务器接口。

减少消耗 OPC UA 资源的元素数量或大小。将服务器接口的节点数减少到 30000 以下。

其它措施：

  • 减少 OPC UA 服务器地址空间中的变量数量，尤其是数据类型为结构的变量数量。

    要从地址空间中移除变量，则需在 PLC 变量表或数据块中禁用选项“从 HMI/OPC UA 可访问”(Accessible from HMI/OPC UA)。

    通过数据块，还从地址空间中彻底删除包含所有变量的 DB。为此，需在 DB 的属性中，禁用选项“DB 从 OPC UA 可访问”(DB accessible from OPC UA)。

  • 缩短扩展数据结构中元素名称的长度。

  • 缩短节点描述信息。

  • 减少所执行方法的数目。

通过 NAT 路由器实现的 OPC UA 客户端-服务器连接

如果客户端和服务器通过 NAT 路由器连接，连接失败将返回错误消息“BadCommunicationError”或“BadNotConnected”。

背景：在 NAT 系统中，IPv4 数据包由路由器操控。因此，数据包的源 IP（“源 NAT”）或目标 IP 将替换为路由器中组态的 IP 地址（具体取决于目标端口）。此过程对于客户端和服务器是透明的，不会通知这些设备此过程。

问题：NAT 路由器也无法替换由服务器返回的端点描述（即，EndpointUrl）。这是因为，该地址信息位于“GetEndpointResponse”的用户数据中。

有关步骤的详细说明，请参见以下常见问题解答。

CPU 固件版本 V2.6

无法通过 NAT 路由器实现 OPC UA 客户端-服务器连接。

自 CPU 固件版本 V2.8 起的解决方法

使用连接信息的“ServerUri”属性（“OPC_UA_Connect”指令的“SessionConnectInfo”参数）。

输入完整的 ServerEndpointUrl，其中 NAT 路由器的 IP 地址为“ServerUri”。然后使用此 ServerEndpointUrl 代替 GetEndpointsResponse 中返回的 EndpointUrl 来建立连接。
如果将属性留空，其特性将与 CPU 固件版本 V2.6 相同。

如果在 OPC UA 连接设置（创建客户端接口）中使用该连接参数分配，则需在参数分配后打开客户端接口 DB (*_Configuration[DBx]) 并更改“ServerUri”参数中的字符串。编译 OPC UA 组态后，将保留该条目。

建立连接的示例（使用来自 ServerUri 的地址替换来自 GetEndpointsResponse 的地址）

步骤：在“ServerUri”参数中输入完整的服务器地址 (ServerEndpointUrl)，包括 IP 地址、端口和可选路径。IP 地址是 NAT 路由器客户端一侧的 IP 地址：

1) 打开组态 DB

2) 更改“ServerUri”参数

然后通过以下步骤建立连接：

  • GetEndpointsRequest：S7-1500 OPC UA 客户端通过客户端子网中 NAT 路由器的目标地址 (10.10.0.1) 对服务器进行寻址。
    NAT 路由器将目标地址转化为服务器子网中服务器的 IP 地址 (192.168.0.1)。

  • GetEndpointsResponse：服务器返回其在“GetEndpointsResponse”中的 EndpointUrl：
    “opc.tcp://192.168.0.1:4840/UA/DemoServer”。
    客户端无法直接访问该地址，因为该地址位于 NAT 路由器后。

  • OpenSecureChannel：
    客户端不使用由 GetEndpointResponse 返回的 EndpointUrl 打开安全通道，而是使用来自“ServerUri”参数的 EndpointUrl：
    “opc.tcp://10.10.0.1:4840/UA/DemoServer”。
    客户端可访问此 IP 地址；数据由 NAT 路由器路由至服务器的 IP 地址。

重新启动 OPC UA 服务器

从固件版本 V2.8 起，只有将 OPC UA 相关的数据加载到 CPU 时（例如覆盖数据块），S7-1500 CPU 的 OPC UA 服务器才会停止。如果用户允许启用加载过程，服务器随后将重启。

请注意，此时 OPC UA 客户端将无法继续使用该服务器中正在运行的服务，因此需要重新释放资源。

以下服务需要重新请求：

  • 重新初始化连接建立过程

  • 重新生成订阅

  • 重新创建读/写作业

在很多情况下，例如在添加与 OPC UA 无关的新代码块或新数据块之后，服务器将不再停止。

将 S7-1200 CPU 的 CPU 数据类型映射至 OPC UA 数据类型

自固件版本 V4.4 起，S7-1200 CPU 均具有 OPC UA 服务器。可组态该服务器的 OPC UA 服务器接口。

采用以下 S7-1200 数据类型到 OPC UA 数据类型的映射：

SIMATIC 数据类型 | OPC UA 数据类型
BOOL | Boolean
SINT | SByte
USINT | Byte
INT | Int16
UINT | UInt16
DINT | Int32
UDINT | UInt32
REAL | Float
LREAL | Double
WSTRING （UCS-2；通用编码字符集） | String
DWORD | StatusCode

S7-1200 的 OPC UA 服务器支持读取和写入列出的简单数据类型。

不支持以下数据类型：

  • 结构

  • 数组

  • Union

虽然可以加载这些数据类型的变量（一致性检查不会返回消息），但在运行期间，客户端对这些变量的访问将被拒绝，并显示错误消息。

也无法编写方法。

OPC UA 客户端指令的其它状态代码

自固件 V2.8 起，在 S7-1500 CPU 上释放连接句柄的特性发生了变化，因此这些指令中还存在未记录的附加错误代码。

下表列出了这些错误代码，并提供了具体说明。

错误代码 （十六进制值） | 错误名称 | 说明
80AE_0000 | BadConnectionClosed | 与相应 ConnectionHdl 的连接处于“ShutDown”状态（连接终止）。连接/会话无法自动“重新激活”。可能的原因：会话已从服务器上删除，例如由于重启或超时等原因。 在这种情况下，必须通过指令“OPC_UA_Disconnect”明确关闭连接，从而再次释放连接资源。在用户程序中，必须复位已对此连接无效的 ConnectionHdl。 随后必须与服务器建立新的连接（参见指令“OPC_UA_Connect”）。 除 OPC_UA_Connect、OPC_UA_Disconnect 和 OPC_UA_ConnectionGetStatus 指令外，所有其它客户端指令都可能出现该错误代码。
80AF_0000 | BadInvalidState | 与相应 ConnectionHdl 的连接处于“ConnectionError”状态（临时连接错误，连接中断）。CPU 尝试“重新激活”连接。如果在设定的超时间隔 (OPC UA Session Timeout) 内未成功激活连接，连接会进入“Shutdown”状态。状态转换要求：CPU 可访问 OPC UA 服务器以检查会话是否仍处于活动状态。 除 OPC_UA_Connect、OPC_UA_Disconnect 和 OPC_UA_ConnectionGetStatus 指令外，所有其它客户端指令都可能出现该错误代码。
A000_0105 | PLCopenUA_Bad_ConnectionInvalidHdl | 连接句柄 (ConnectionHdl) 无效/未知。 除 OPC_UA_Connect 指令外，所有其它客户端指令都可能出现该错误代码。

从信息系统复制 SCL 程序示例

无法编译 OPC UA 编程示例中的 SCL 程序代码，该代码是使用信息系统中的“复制”(Copy) 图标复制并粘贴在程序编辑器中的。

要准确无误地复制程序代码，请在信息系统中选择程序代码，并使用快捷菜单中的“复制”(Copy) 命令或组合键“Ctrl+C”。使用快捷菜单中的“粘贴”(Paste) 命令或组合键“Ctrl+V”在程序编辑器中插入程序代码。


IO 设备的硬件检测

内容 ET 200SP 站中硬件识别不完整
IO 设备的硬件检测

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

ET 200SP 站中硬件识别不完整

在 STEP 7 V15 中，可使用在线功能“硬件检测”确定 IO 设备的站组态，并导入项目中（含所有已插入的模块）。

在项目中，通过硬件检测导入 ET 200SP 时，用户必须自动完成站组态的识别：检查接口模块的硬件配置中采用了正确的总线适配器（例如，实际采用的是 BA 2xRJ45，而非 BA 2xFC）。


HMI 面板 IO 设备中“Hw_SubModule”类型的硬件 ID

内容 确定 HMI 面板 IO 设备中“Hw_SubModule”类型的硬件 ID
HMI 面板 IO 设备中“Hw_SubModule”类型的硬件 ID

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

确定 HMI 面板 IO 设备中“Hw_SubModule”类型的硬件 ID

PROFIenergy 程序块“PE_START_END”的“ID”参数必须包含“Hw_SubModule”类型 IO 设备的硬件标识符 (HW ID)。带有“Hw_SubModule”类型 HMI 面板 IO 设备的硬件 ID 并不显示在 S7-1500/S7-1200/ET200SP CPU 的系统常量中，但可以检测到。为此，HMI 面板中“Hw_Device”类型 IO 设备的符号在“系统常量”(System constants) 选项卡的 PLC 变量列表中确定并减 1。如，“HMI_1_IE_CP_1~PROFINET_Interface_1~IODevice -1”。


在 S7-1200 上使用模块

内容 在 S7-1200 上使用模块 将 S7-1200 模块注释加载到 PG/PC 中
在 S7-1200 上使用模块

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

在 S7-1200 上使用模块

S7-1200 不支持下列模块。

系列 | 模块 | 订货号
S7-300 FM | SM 338 | 6ES7 338-4BC01-0AB0
 | FM 350-1 | 6ES7 350-1AH03-0AE0
 | FM 350-2 | 6ES7 350-2AH00-0AE0、6ES7 350-2AH01-0AE0
 | FM 351 | 6ES7 351-1AH01-0AE0、6ES7 351-1AH02-0AE0
 | FM 352 | 6ES7 352-1AH02-0AE0
 | FM 355 S | 6ES7 355-1VH10-0AE0
 | FM 355 C | 6ES7 355-0VH10-0AE0
 | FM 355-2 C | 6ES7 355-2CH00-0AE0
 | FM 355-2 S | 6ES7 355-2SH00-0AE0
S7-300 PtP-CP | CP 340 | 6ES7 340-1AH02-0AE0、6ES7 340-1BH02-0AE0、6ES7 340-1CH02-0AE0
 | CP 341 | 6ES7 341-1AH01-0AE0、6ES7 341-1AH02-0AE0、6ES7 341-1BH01-0AE0、6ES7 341-1BH02-0AE0、6ES7 341-1CH01-0AE0、6ES7 341-1CH02-0AE0
网络组件 | 诊断中继器 | 6ES7 972-0AB01-0XA0
ET 200M | SIWAREX | 7MH4900-2AA01，7MH4900-3AA01，7MH4950-1AA01，7MH4950-2AA01

将 S7-1200 模块注释加载到 PG/PC 中

对于采用 S7-1200 的集中组态，不加载模块、子模块和信号板的注释。对于 CP/CM，只加载 IE 接口或 DP 接口的注释。对于采用 ET 200SP 或 ET 200MP 的分布式组态，只从 I/O 模块加载通道注释。


SIMATIC S7 嵌入式控制器 EC31-RTX 上的 CP 343-2

内容 SIMATIC S7 嵌入式控制器 EC31-RTX 上的 CP 343-2
SIMATIC S7 嵌入式控制器 EC31-RTX 上的 CP 343-2

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

SIMATIC S7 嵌入式控制器 EC31-RTX 上的 CP 343-2

模块 AS-Interface 接口 CP 343-2（订货号：6GK7 343-2AH01）可以插入到 SIMATIC S7 嵌入式控制器 EC31-RTX（订货号：6ES7 677-1DDxx-0BB0）的扩展机架中，但 CP 343-2 无法使用 EC31-RTX 进行操作。


加载 S7-1500 CPU (SIPLUS)

内容 SIMATIC S7-1500 CPU SIPLUS (6AG1...) 的性能，带已格式化的存储卡，固件版本低于 V2.5
加载 S7-1500 CPU (SIPLUS)

内容

在线帮助中不再包含的信息和产品功能的重要信息。

SIMATIC S7-1500 CPU SIPLUS (6AG1...) 的性能，带已格式化的存储卡，固件版本低于 V2.5

相关组件：

  • CPU 151x SIPLUS (6AG1...)，固件版本低于 V2.5

  • SIMATIC 存储卡

如果将 SIPLUS CPU 加载到一个已格式化的 SIMATIC 存储卡中并将 CPU 设置为 RUN 模式，则 CPU 将正常运行且无任何错误。但如果发生系统电源关断后再重新接通，或执行了存储卡复位 (MRES)，则 SIPLUS CPU 将转至 STOP 模式并生成一条错误消息。在该错误消息中，指示存储卡因缺少而无法识别、存储卡类型错误、包含的数据错误或存储卡受保护。

CPU 151x SIPLUS (6AG1...) 固件版本 V2.5 或更高版本，或者存储卡上已存在有 S7-1500 SIMATIC CPU (6ES7...) 的组态信息但覆盖为相同类型 SIPLUS CPU (6AG1...) 的组态信息时，不会发生以上错误。

解决方法：

  1. SIMATIC CPU 的组态设置需加载到 SIMATIC 存储卡中。相应类型中，仅一个 CPU 可用；此时无需使用 I/O。

  2. 将 SIPLUS CPU 加载到该存储卡中。存储卡中包含的 SIMATIC 组态将覆盖为 SIPLUS 组态。

该过程将防止 TIA Portal 生成错误消息。

说明

该过程仅适用于在线加载到 CPU 中。如果存储卡使用外部读卡器进行编程，则仍将生成错误消息。

如果要加载 CPU 1511-1 PN SIPLUS (6AG1 511-1AK00...)，请按以下步骤操作。

  1. 在 SIPLUS CPU 中插入一个具有充足存储空间的空白存储卡。

  2. 组态一个同类型的 SIMATIC CPU。此处为 S7-1511-1 PN (6ES7 511-1AK00...)。在加载过程的第一步中，无需组态 I/O 模块。

  3. 将组态加载到 SIPLUS CPU 中。

  4. 在 STEP 7 中，将 SIMATIC CPU 更换为 SIPLUS CPU (6AG1 511-1AK00...)，然后使用规划中的 I/O 模块和分布式 I/O 设备完成组态设置。

  5. 将更改后的组态加载到 SIPLUS CPU 中。


WinLC RTX 上的 ET 200MP (IM 155-5 DP ST)

内容 在 WinLC RTX 上，ET 200MP (IM 155-5 DP ST) 当前不支持通过 PROFIBUS 操作。
WinLC RTX 上的 ET 200MP (IM 155-5 DP ST)

内容

在线帮助中未包含的信息和产品特征的重要信息。

在 WinLC RTX 上，ET 200MP (IM 155-5 DP ST) 当前不支持通过 PROFIBUS 操作。

相关组件：

  • 作为 DP 主站，且带有控制器功能 WinLC RTX 的 PC 系统（所有型号：EC31-RTX (F)、WinAC RTX (F) 软件 PLC），下文中简称为“WinLC RTX”。

  • 作为 DP 从站的 ET 200MP (IM 155-5 DP ST)

如果在 ET 200MP 中组态有标准模块或 F 模块并将 WinLC RTX 用作一个 DP 主站，则这些模块在 ET 200MP 中无法使用 DP 主站进行组态。完成组态加载和相关组件启动后，ET 200MP 中的模块将通过 LED 指示灯绿色闪烁指示参数分配丢失。

同时，STEP 7 不显示模块在线操作已就绪状态（状态“OK”）。

解决方法：

  • 建议：使用接口模块 IM 155-5，通过 PROFINET IO 将 ET 200MP 连接到 WinLC RTX 中。

    或者

  • 如果 ET 200MP 中未插入 F 模块，则 WinLC RTX 中可使用 ET 200MP 的 GSD 文件组态标准模块。


关于在线和诊断的说明

内容 硬件检测后进行在线连接 删除设备中的测量（存储卡）(S7-1200) 软件控制器和开放式控制器的项目跟踪
关于在线和诊断的说明

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

硬件检测后进行在线连接

如果对未指定的 CPU 执行“在线 > 硬件检测”(Online > Hardware detection) 命令，将不会加载该 CPU 的在线组态。如果未将硬件检测到的组态加载到 CPU 中，则设备视图和网络视图中将始终显示离线组态和在线组态间的不同之处。虽然实际 CPU 和离线 CPU 的 MLFB 完全相同，但在线视图与诊断视图中显示的组态信息却不同。

删除设备中的测量（存储卡）(S7-1200)

只要设备中的跟踪仍会在插槽卡上生成新的测量，则请勿删除设备中的任何测量。

软件控制器和开放式控制器的项目跟踪

对于 TIA Portal V16，项目跟踪不支持软件控制器或开放式控制器。


对 PLC 进行编程

对 PLC 进行编程

该章节包括以下主题的信息:
  • 关于 PLC 编程的一般说明
  • 有关指令的说明
  • 测试用户程序
  • 升级块
  • 与旧版本中 PLC 程序的兼容性


关于 PLC 编程的一般说明

内容 通过 TIA Portal Openness 导入块时，实例特定的属性 系统报警中 CPU 名称的显示 修改等时同步模式中断 OB 的应用周期 使用系统数据类型“TDiag_StatusExt”(S7-1200/1500) 与网络安全有关的信息 PLCSIM 全局库“Long Functions”中的函数 (S7-1500) 将不一致的程序加载到 S7-1500 CPU 中 (S7-1500) 使用 Team Engineering 时，标准程序与 F 程序间的数据交换
关于 PLC 编程的一般说明

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

通过 TIA Portal Openness 导入块时，实例特定的属性

在某些情况下，导入规则可能意味着实例特定属性的丢失，如起始值。

系统报警中 CPU 名称的显示

在 V15.1 及以上版本中，该 CPU 的名称（或 H / R CPU 的名称，站名称）将显示在系统报警中的“附加文本 1”(Additional text 1) 列。为此，需要对存在问题的设备硬件进行编译。如果使用“编译 > 硬件（仅更改）”(Compile > Hardware (only changes)) 选项时 CPU 的名称未显示，则可使用选项“编译 > 硬件（全部重新编译）”("Compile > Hardware (rebuild all))。

请确保实际执行加载设备操作；仅显示消息“硬件最新”(hardware is up-to-date) 并不够！

修改等时同步模式中断 OB 的应用周期

修改一个等时同步模式中断 OB 的“应用周期 (ms)”(Application cycle (ms)) 参数时，系统将在后台修改相应的硬件配置。为确保修改后的应用循环持续时间值在 CPU 的下一个加载过程后仍然生效，需要在加载时手动包含硬件配置。为此，可选择菜单命令“加载到设备 > 硬件和软件”(Load to device > Hardware and software)，也可选择命令“加载到设备 > 硬件配置”(Load to device > Hardware configuration)。

使用系统数据类型“TDiag_StatusExt”(S7-1200/1500)

与系统数据类型“TDiag_Status”相同，扩展系统数据类型“TDiag_StatusExt”也可用于获取有关连接断开原因的更多详细信息。当读取结构性元素“LastConnErrTimeStamp”导致 CPU 切换为“故障”系统状态且当前不得使用时，尤为适用。

与网络安全有关的信息

在 TIA Portal 和 CPU 之间或 HMI（使用“GET/PUT 通信”的 HMI 访问除外）和 CPU 之间进行通信访问时，可使用所集成的安全功能。这些功能提供更强的操作保护和访问保护机制。为使用标准化通信访问方式（如“GET/PUT”、“TSEND/TRCV”、“Modbus”、“FETCH/WRITE”）防止对 CPU 进行未经授权的网络访问，还应采取其它适当的措施（例如，设备单元保护机制）。

PLCSIM 全局库“Long Functions”中的函数 (S7-1500)

编译过程将 S7-1500 CPU 系列的函数关联到 CPU 以避免这些函数被操作。CPU 中使用的全局库“Long Functions”中的函数，在具有这种关联的情况下无法加载到仿真中。但可以将这些元素替换为其在全局库中的原始版本。它们不会关联到 CPU。

将不一致的程序加载到 S7-1500 CPU 中 (S7-1500)

在 TIA Portal 中，如果不进行一致性检查，则无法将不一致的程序下载到 S7-1500 CPU 中。在加载过程中，如果出现了不一致的情况，则将在后台检查程序中的所有块，然后重新编译。但如果 CPU 中存在使用由更早版本 STEP 7 加载的程序，则这些程序中将会出现不一致情况。

在这种情况下，请注意以下信息：

如果从设备加载了不一致的程序，那么之后无法将程序原样加载回 S7-1500 CPU 中。这是因为在加载过程中必须执行一致性检查，并更正不一致的数据。

使用 Team Engineering 时，标准程序与 F 程序间的数据交换

要确保标准程序与安全程序间的数据一致性，则需遵循以下规则：

  • 使用全局数据块进行数据交换，而非位存储器。

  • 将安全程序与标准用户程序间的数据访问，限制为两个标准数据块。

更多信息，请参见《编程指南》中的 5.13 部分“https://support.industry.siemens.com”


有关指令的说明

内容 “FileDelete: 删除存储卡上的文件”(FileDelete: Delete file on the memory card) 指令
有关指令的说明

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

“FileDelete: 删除存储卡上的文件”(FileDelete: Delete file on the memory card) 指令

与在线帮助中的信息不同，以下内容适用于“Status”参数的值 8091 和 8094：

  • 值 8091 的含义如下：路径不存在或者无效。

  • 未输出值 8094。


测试用户程序

测试用户程序

该章节包括以下主题的信息:
  • 有关使用监控表进行测试的信息
  • 有关使用强制表进行测试的信息
  • 有关使用断点进行测试的信息


有关使用监控表进行测试的信息

内容 对同一个 CPU 的多重访问 (S7-300/400/1200) 在激活的控制作业期间加载数据块 “启用外设输出”功能 测试从 STEP 7 旧版本移植过来的程序 测试已升级的程序 更改监控表中的显示格式
有关使用监控表进行测试的信息

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

对同一个 CPU 的多重访问 (S7-300/400/1200)

只有当 TIA Portal 已打开时才允许从 PG/PC 在线访问 CPU (S7-300/400/1200)。不允许对此系列的同一个 CPU 进行多重访问，这会导致错误。

在激活的控制作业期间加载数据块

在激活的控制作业期间加载经过更改的数据块会导致无法预料的操作状态。尽管数据块中的地址分配可能已发生更化，但控制作业将继续控制之前指定的地址。因此，请在加载数据块之前完成激活的控制作业。

“启用外设输出”功能

在 TIA Portal 中，“启用外设输出”功能不适用于 S7-1500 系列的 CPU。

在 TIA Portal 中，仅 S7-300、S7-400 或 S7-1200 CPU 才能执行该功能。

测试从 STEP 7 旧版本移植过来的程序

要监视并测试从 STEP 7 旧版本移植过来的程序，首先需要使用最新的 STEP 7 版本编译并下载程序。

测试已升级的程序

项目升级到 V16 之后，系统内部将计算一个新的校验和。在极少数情况下，该操作将导致监控表中不显示变量值。这是因为，虽然块相同，但校验和发生变更。”监控值“(Observed value) 列中不显示任何值；而显示用红色圆圈标记的眼睛图标。此时，该项目在可监控和使用监控表进行在线测试前，必需重新编译并重新加载。

更改监控表中的显示格式

显示格式的数目已减少。这样，在项目升级过程中，系统会对当前正在使用但已不再支持的显示格式复位为默认值。

示例：当前，指针仅显示为“指针”或“十六进制”格式。


有关使用强制表进行测试的信息

内容 用于直接 I/O 访问的强制变量 (S7-300) 示例 在强制表中更改显示格式
有关使用强制表进行测试的信息

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

用于直接 I/O 访问的强制变量 (S7-300)

如果在用户程序中对 S7-300 CPU 使用直接 I/O 访问，则不允许强制该 I/O 地址。

示例

如果在用户程序中对地址“IB0:P”进行了 I/O 访问，则不允许强制以下 I/O 地址区：I0.0:P、IB0:P、IW0:P 和 ID0:P。

在强制表中更改显示格式

显示格式的数目已减少。这样，在项目升级过程中，系统会对当前正在使用但已不再支持的显示格式复位为默认值。

示例：当前，指针仅显示为“指针”或“十六进制”格式。


有关使用断点进行测试的信息

内容 在 S7-1500 F-CPU 的标准用户程序中设置断点
有关使用断点进行测试的信息

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

在 S7-1500 F-CPU 的标准用户程序中设置断点

如果断点已启用且到达断点处，则 CPU 将在转入 HOLD 模式后立即转入 STOP 模式。如果要在 HOLD 模式后切换回 RUN 模式继续测试默认的用户程序，则可使用 S7-PLCSIM 进行仿真。

有关使用断点对 F-CPU 进行测试的更多信息，请参见手册《SIMATIC 安全性 - 组态与编程》。


升级块

内容 升级专有知识保护块 (S7-1200/1500) 升级 GRAPH 块（S7-300、S7-400、S7-1500） 离线/在线比较 更新设备规范
升级块

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

升级专有知识保护块 (S7-1200/1500)

在升级到最新版本时，在 TIA Portal 旧版本中设置的专有技术块可加载到控制器中，无需输入密码即可执行。

要在当前版本中打开这些块进行编辑，请执行以下操作步骤：

  • 在 V13 SP1 或更高版本中设置的专有技术保护块：

    • 在当前版本中移除专有技术保护，编辑该块并复位专有技术保护。

  • 在 V13 SP1 之前版本中设置的专有技术保护块：

    • 在 V13 SP1 中移除专有技术保护，然后将该块升级到当前版本。此时，可当前版本中编辑该块并复位专有技术保护。

升级 GRAPH 块（S7-300、S7-400、S7-1500）

将低于 V15 版本的项目升级为 V16 后，系统将检查所修复的 GRAPH 块是否包含在日志文件中，并测试这些块在用户程序中是否可执行。

如果项目中包含有 GRAPH 块且这些块从 V15.x 升级到 V16，则在对这些程序块进行监测前需要先进行编译。

离线/在线比较

更正了当前版本中生成的内部项目数据，从而显著增强了数据的完整性。安装后，各个块在打开时会自动进行修正。因此，离线/在线比较中显示的校验和将不同。

更新设备规范

进行项目升级时，某些特性状况下，所用 CPU 的内部设备规范也将随之更新。

以下消息表示正在进行更新。“项目中 PLC 的设备组态已更新”(The device configuration of the PLCs in the project has been updated.)。

更新不会影响 CPU 中的程序运行。


与旧版本中 PLC 程序的兼容性

与旧版本中 PLC 程序的兼容性

该章节包括以下主题的信息:
  • 与 V16 之前版本的 PLC 程序的兼容性
  • 与 V15.1 之前版本 PLC 程序的兼容性
  • 与 V15 之前版本中 PLC 程序的兼容性
  • 与 V14 SP1 之前版本中 PLC 程序的兼容性
  • 与 V14 之前版本中 PLC 程序的兼容性
  • 与 V13 SP1 之前版本中 PLC 程序的兼容性


与 V16 之前版本的 PLC 程序的兼容性

内容 兼容性 校验和不一致 软件单元 对实例进行语法检查（LAD、FBD、STL、GRAPH） 指令“UPPER_BOUND”和“LOWER BOUND”（LAD，S7-1200/S7-1500） 指令“S_CONV”(LAD) 导入外部源文件 (SCL) 时初始化 STRUCT 数据类型 AT 声明 “MOVE”指令 “MOVE”指令 (STL) 指令“SCATTER_BLK”和“GATHER_BLK”(SCL) 无类型的常量 (SCL) 通过变量索引和 I/O 访问对 ARRAY 进行寻址 (S7-1200) 结构中使用 ARRAY 时的块大小 GRAPH 块的大小 无类型常量的分配 (SCL)
与 V16 之前版本的 PLC 程序的兼容性

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

兼容性

理论上，在 TIA Portal V16 中可继续使用由旧版本创建的所有 PLC 程序。但由于在版本 V16 中对编译器进行了改进并且更正了相关错误，在极少数情况下程序在升级后会有不同响应，或者需要手动调整程序代码。在下文中，对此进行了详细介绍。

校验和不一致

项目升级到 V16 之后，即使在线程序与离线程序相同，系统也可能指示出在线/离线存在不同之处。在版本 V16 中，这些不同是由于对校验和计算进行优化而导致的。但在大多数情况下，这些块均具有兼容性。

仅在极少数情况下，对项目进行在线监视和测试时，可能会由于校验和计算发生变更，需要重新编译并下载该项目。

软件单元

在 V16 及以上版本中，软件单元名称需遵循以下规则：

  • 允许使用的字符为所有字母数字字符和下划线。

  • 最多支持 125 个字符。

  • 软件单元的名称在整个 CPU 范围内必需唯一，且 CPU 中不得包含同名的块。

如果程序的软件单元名称不符合以上规则，则升级后将显示一条语法错误消息。此时，可更改该软件单元的属性并重新编译程序。

对实例进行语法检查（LAD、FBD、STL、GRAPH）

通过调用函数块确定指定的背景数据块是否与被调用 FB 的类型相同时，系统将执行更全面的检查。除了块编号和块结构，系统还将检查块名称。

如果存在不一致，则在升级后将输出一条语法错误。此时，系统将检查块属性中“常规”(General) 部分中该背景数据块的类型。如果该类型与被调用 FB 不匹配，则需更改块调用并指定一个相匹配的实例。

指令“UPPER_BOUND”和“LOWER BOUND”（LAD，S7-1200/S7-1500）

指令“UPPER_BOUND”和“LOWER BOUND”指令的使能输入“EN”现可正确判断。如果输入“EN”的信号状态为“0”，则指令不执行且使能输出“ENO”的信号状态为“0”。使用其中一个指令时，系统将检查用户的程序顺序在升级后是否保持不变。

指令“S_CONV”(LAD)

在 TIA Portal 的之前版本中，从 (W)Char 转换为 (W)String 的过程中，如果“S_CONV”指令使能输出“ENO”处未互连任何参数，则系统不对该这指令的启用输入“EN”进行判断。该错误现已修正。使用“S_CONV”指令时，系统将检查用户的程序顺序在升级后是否保持不变。

导入外部源文件 (SCL) 时初始化 STRUCT 数据类型

STRUCT 的初始化规则现已统一。初始化列表现已基于相同规则进行评估，而与使用表格形式或文本块接口无关。

如果初始化列表中使用的语法不同，其中某些元素通过指定元素名称初始化时，其它元素仅通过指定具体值，则导入 TIA Portal V16 后将执行程序检查。

以下示例显示了版本 V16 中，表单与文本块接口中结构化元素的评估过程：

myStruct :Struct

member_1 :Int;

member_2 :Int;

member_3 :Int;

member_4 :Int;

member_5 :Int;

End_Struct:=(1,mem_3:=33,2,3);

//结构化元素将按照以下方式进行初始化：

//mem_1 := 1;

//mem_3 := 33;

//mem_4 := 2;

//mem_5 := 3;

AT 声明

在极少数情况下，接口中 AT 声明之后的块参数值可能错误。该错误现已修正。

数据类型为 BOOL、BYTE、SINT、USINT 或 CHAR 的块参数与数据类型为 STRUCT 和 UDT 的变量不再重叠。只有数组的大小未超出发生重叠的类型大小时，ARRAY 类型的变量才能进行重叠。

如果使用 AT 声明，则系统将在升级后对程序进行检查。

“MOVE”指令

使用“MOVE”指令时，只能将某个数据块的所有变量复制到结构相同（即，数量、数据类型以及所声明变量的声明顺序均相同）的其它数据块中（"DA a" := "DB b"）此外，这两个数据块的存储格式也需相同（优化或非优化）。

如果这两个块均采用优化存储方式，则块的所有变量均有保持性或非保持性。

“MOVE”指令 (STL)

自 TIA Portal V16 起，在 STL 中无法再通过来自块接口 InOut 或 Out 部分的 VARIANT 数据类型变量提供 MOVE 指令的 OUT 输出。

指令“SCATTER_BLK”和“GATHER_BLK”(SCL)

在版本 V16 及以上版本中，所支持的数据类型受到以下条件限制：使用结构型参数（如，STRUCT 或 PLC 数据类型）时，这些参数中只能包含数据类型为 BOOL 的变量。

无类型的常量 (SCL)

无类型常量的语义检查现已调整，可用于其它编程语言：如果无类型常量与所分配的操作数不兼容，则在激活 IEC 检查时通常会报告一个兼容性错误。

通过变量索引和 I/O 访问对 ARRAY 进行寻址 (S7-1200)

在 S7-1200 系列的 CPU 中，无法再通过变量索引结合 I/O 访问标识符“:P”对 ARRAY 进行寻址。

无效的 ARRAY 寻址示例：

#array[0, #myIndexTag, 2]:P

允许的 ARRAY 寻址（通过 I/O 访问）示例：

#array[0, #myConstant, 2]:P

#array[0, 1, 2]:P

允许的 ARRAY 寻址（通过变量索引）示例：

#array[0, #myIndexTag, 2]

结构中使用 ARRAY 时的块大小

如果所用的结构 (STRUCT) 中包含多个 ARRAY 元素，则可能发生以下错误：

如果多个 ARRAY 访问超出有效范围，则 CPU 将不切换为 STOP 模式，而是访问某个 ARRAY 元素。

该错误在 V16 已更正：发生该错误时，CPU 将切换为 STOP 模式。如果设有故障排除机制，则执行该本地/全局的故障排除。

该修正措施将导致相应的块大小变大。

GRAPH 块的大小

请注意，由于执行上述的修正措施，所有 GRAPH 块将增加约 90 字节。

无类型常量的分配 (SCL)

启用 IEC 检查时、或无类型常量位于 LReal 值范围但位于 Real 值范围外时，如果为“Real”类型的变量分配无类型常量，则会生成一条错误消息。


与 V15.1 之前版本 PLC 程序的兼容性

内容 兼容性 SCL 中函数调用的处理顺序 (S7-1200/S7-1500) 比较器 (SCL S7-1200 >= 4.2 和 S7-1500 >= 2.0) 导入 IEC 定时器 (S7-1200/S7-1500) 升级过程中替换无效的 Unicode 字符 指令“SCATTER”/“SCATTER_BLK”和“GATHER”/“GATHER_BLK”(SIMATIC S7-1200/1500) 指令“BLKMOV”/“UBLKMOV”和“FILL”/“UFILL” “RUNTIME”指令 (SCL/STL S7-1200/S7-1500)
与 V15.1 之前版本 PLC 程序的兼容性

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

兼容性

理论上，TIA Portal V15.1 中可继续使用之前旧版本创建的所有 PLC 程序。但由于版本 V15.1 中对编译器进行了改进并更正了相关错误，在极少数情况下程序在升级后的结果不同，可能需要手动调整程序代码。在下文中，对此进行了详细介绍。

SCL 中函数调用的处理顺序 (S7-1200/S7-1500)

在 TIA Portal 旧版本中，赋值运算的处理序列中包含有表达式或函数调用，往往很不直观。而且处理过程并不总是按照从右到左的顺序；在某些条件下，可能会先评估左侧的表达式部分。

该错误已在版本 V15.1 中得以更正，系统将始终先计算赋值运算的右侧，之后再确定左侧。

示例：

#myArr["FC_1"()]:= #x + #y;

在旧版本中，首先运行“FC1”，确定一个 ARRAY 元素。之后，再计算 #x + #y。

在 V15.1 及以上版本中，将按照从右到左的顺序正确处理程序：首先计算 #x + #y，然后运行“FC1”。

这一更正措施可能导致用户程序升级后的操作特性发生变化。例如，“FC1”中设置变量 #x 或 #y 时。因此，在升级后请检查用户程序。

比较器 (SCL S7-1200 >= 4.2 和 S7-1500 >= 2.0)

如果在 SCL中通过比较指令对两个背景数据块进行比较，则系统将仅比较块的数量而非块的结构。在 V15.1 及以上版本中，编译过程中将显示一条错误消息，指示该指令可能会返回错误结果（由于块的数量不同，因此通常返回 FALSE）。

示例：

即使两个块的结构相同，以下比较指令也将返回结果 FALSE。

IF "MyDBofFB" = "MyDBofSameFB" THEN …

导入 IEC 定时器 (S7-1200/S7-1500)

IEC 定时器中包含有只读参数，如 ET（当前时间值）。在旧版本 TIA Portal 中，导入外部源文件时，某些情况下系统将覆盖这些只读参数的起始值。该错误在 V15.1 中已更正：现在导入源文件时，系统将忽略只读参数的起始值，而使用该数据类型的默认值。因此，导入后请检查用户程序。

升级过程中替换无效的 Unicode 字符

在升级为 V15.1 时，系统将更正用户程序中无效的 Unicode 字符。例如，使用 IEC 中定义的转义序列替换字符串常量中的无效字符。该操作可能会更改程序的校验和，并指示在线和离线程序不同。此时，需编译用户程序并重新加载。

指令“SCATTER”/“SCATTER_BLK”和“GATHER”/“GATHER_BLK”(SIMATIC S7-1200/1500)

使用指令“SCATTER”/“SCATTER_BLK”，可将位序列解析为单个位。而使用指令“GATHER”/“GATHER_BLK”，则可将各个位组合成一个位串。

由于在 I/O 区域或工艺对象的数据块中无法确保数据的一致性，因此该指令不使用此区域内的值。

在 V15.1 及以上版本中，该规则将进行更为精准的语法检查。如果在用户程序中上述指令的输入参数无效，则在编译过程中报告一条错误消息。

为了避免该错误的发生，可将变量先复制到一个临时存储区，之后再将其从该存储区传送到指令“SCATTER”或“GATHER”中。

指令“BLKMOV”/“UBLKMOV”和“FILL”/“UFILL”

使用指令“BLKMOV”/“UBLKMOV”和“FILL”/“UFILL”，可将某个存储区（源范围）中的内容复制到另一个存储区（目标范围）内。如果这些指令访问一个不存在的存储区，则将输出一条编程错误。在之前的版本中，极少数情况下“RET_VAL”参数处会生成一个错误代码，而非编程错误。该错误已在 S7-1500 CPU 固件版本 V2.6 及以上版本中修正。

“RUNTIME”指令 (SCL/STL S7-1200/S7-1500)

“RUNTIME”指令中参数“Mem”的数据类型为“LREAL”，仅该数据类型的变量才能使用。而且，不支持隐式转换。在 V15.1 版本中，该规则将进行更为精准的语法检查。如果用户程序中“RUNTIME”指令的“Mem”参数的数据类型无效，则在编译时将报告一条错误消息。


与 V15 之前版本中 PLC 程序的兼容性

内容 兼容性 S7-GRAPH：隐式转换“硬件数据类型 <> INT” ProDiag 中的子类别 (S7-1500) 指令“(U)MOVE_BLK”和“(U)FILL_BLK”(S7-1500) SCL 中的程序循环 (S7-1200/S7-1500) SCL 中各函数的返回值 SCL 中的 LDT_TO_DATE (S7-1500) 在 SCL 中，比较 ARRAY 元素与数据类型为“VARIANT”的变量 (S7-1200/1500) “GetSymbolPath”指令 (S7-1200/S7-1500) “GetInstancePath”指令 (S7-1200/S7-1500) 使用 DTL/LDT/DT 进行加减 运行系统信息 (S7-1200/S7-1500) 多重实例的 ARRAY “VARIANT”数据类型的块参数 (S7-1200/1500) 导入外部源 ARRAY of BOOL/BYTE/CHAR 的大小 (S7-1500)
与 V15 之前版本中 PLC 程序的兼容性

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

兼容性

理论上，在 TIA Portal V15 中可继续使用之前旧版本创建的所有 PLC 程序。但由于在版本 V15 中对编译器进行了改进并且更正了相关错误，在极少数情况下程序在升级后会有不同反应，或者需要手动调整程序代码。在下文中，对此进行了详细介绍。

S7-GRAPH：隐式转换“硬件数据类型 <> INT”

在 TIA Portal V15 及以上版本中，不再支持通过程序对硬件数据类型进行隐式转换（如，INT -> DB_ANY 或 DB_ANY -> INT）。在 LAD、FBD、STL 和 SCL 中，同样如此。

此时，可使用 UINT 数据类型或进行显示转换。

ProDiag 中的子类别 (S7-1500)

在 TIA Portal V14 SP1 Update 2 及以上版本中，无需手动添加 ProDiag 的各个子类别，只需在“激活”(Activation) 列进行激活或取消激活即可。

因此，对至少一个监视中已使用现有子类别且版本低于 V14 SP1 Update 2 的项目进行升级后，必须首先选择“修复”(Repair) 按钮，才能创建新的子类别。

指令“(U)MOVE_BLK”和“(U)FILL_BLK”(S7-1500)

在 TIA Portal V15 及以下版本中，直接访问 I/O 时，指令“(U)MOVE_BLK”和“(U)FILL_BLK”将仅访问过程映像。

该错误现已更正，新版本中因 BLK 指令不支持 I/O 直接访问时将产生一个运行时错误。

SCL 中的程序循环 (S7-1200/S7-1500)

在 S7-1200/S7-1500 中，SCL 程序循环中的程序循环无法更改。

因此，以下程序示例将无效：

FOR #i := 1 TO 10 DO

#i := #i + 1;

END_FOR;

在 TIA Portal V15 及以上版本中，在编译过程中将执行更为精准的语法检查并输出一条兼容性错误消息。

SCL 中各函数的返回值

新版本中，对返回值为结构化数据类型的函数特性进行了相应调整。结构化数据类型如 PLC 数据类型或 STRING 型。

到目前为止，无论 ENO 输出是否使用该函数，系统都将为该函数值创建一个临时操作副本，虽然同一个不带 ENO 调用并不会创建操作副本。退出该函数时，系统会将这些临时复本分配给相关联的变量。

该特性现更改为：

无论返回值通过副本传递或通过引用传递，新版本中输出参数 ENO 的应用将不受其影响。返回值为结构化数据类型时，通常以引用方式进行传递。有关传递规则的详细说明，请参见“以副本或指针形式传递参数”部分。

SCL 中的 LDT_TO_DATE (S7-1500)

更正了 LDT_TO_DATE 对运行系统中转换错误的响应。

在 SCL 中，比较 ARRAY 元素与数据类型为“VARIANT”的变量 (S7-1200/1500)

在旧版本中，某些情况下，ARRAY 的可变下标元素与 VARIANT 的比较可能出错。在比较过程中，系统将使用整个 ARRAY 而非 ARRAY 元素。

该错误在 V15 已更正：指定下标的 ARRAY 元素现可进行比较操作。如果在用户程序中使用此类比较，则需在升级后检查相应的块。

示例：

IF (#my_Array[#1] = #my_variant) THEN…

在旧版本中，“my_variant”与“my_Array”进行比较。在 V15 及以上版本中，该比较操作可正确执行，“my_variant”将与“my_Array”的 1 号元素进行比较。

“GetSymbolPath”指令 (S7-1200/S7-1500)

如果使用一个 FB 将静态变量与某个调用的形参进行互连，且该参数的某个嵌套块使用“GetSymbolPath”指令 V1.0 或 V1.1，则编译该块后，静态变量名称前将附加显示该 DB 的名称，但不含作为分隔符的句点也不含替代符 #。在“GetSymbolPath”版本 V1.2 中，可路径显示正确，包含作为分隔符的句点但不含 #。

如果在用户程序中使用指令“GetSymbolPath”，则在升级为 V15 及以上版本后应后应使用指令“GetSymbolPath”V1.2。

“GetInstancePath”指令 (S7-1200/S7-1500)

如果使用一个 FB 将静态变量与某个调用的形参进行互连，且嵌套块使用“GetInstancePath”指令，则编译该块后，静态变量名称前将附加显示该 DB 的名称。

使用 DTL/LDT/DT 进行加减

使用数据类型 DTL/LDT/DT 进行加减时，不再支持无类型的常量。系统将指示发生语法错误。

例如，无法执行以下算术运算：

#myDTL + 1

#myLDT + 1

#myDate_And_Time +1

此时，可使用数据类型为“Time”或“LTime”的常量

#myDTL + TIME#1d

#myLDT + TIME#1ms

#myDate_And_Time + LTIME#1ns

运行系统信息 (S7-1200/S7-1500)

在所有编程语言中，扩展指令“GetInstanceName”、“GetInstancePath”、“GetSymbolName”、“GetSymbolPath”和“GetBlockName”的执行方式现均相同：如果待输出的字符串因大小限制的原因与输出参数不匹配，则系统将截断该名称并在字符串结尾处显示“...”字符。

多重实例的 ARRAY

在旧版本中，使用变量对多重实例的索引进行寻址时，该多重实例将在另一个多重实例中进行实例化，成为多重实例 ARRAY 中的元素，从而导致对多重实例 ARRAY 的寻址错误。

示例：

#MyMultiArray[#index].MyMultiMember := 10;

该错误在 V15 已更正：

如果在用户程序中使用了此类访问，则需在升级后检查受影响的块，可能需要进行重新编译。

“VARIANT”数据类型的块参数 (S7-1200/1500)

与 LAD、FBD、STL 和 GRAPH 中相同，在 SCL 中也不再支持将作为实参的背景数据块分配给数据类型为“VARIANT”的形参。

但由 PLC 数据类型或系统数据类型生成的背景数据块除外。在所有编程语言中，可将这些背景数据块分配给数据类型为“VARIANT”的块参数。

不再支持将写保护的变量作为实参，分配给一个数据类型为“VARIANT”的块参数。

如果可以，应删除变量的写保护。如果无法删除，则需更改用户程序，防止对写保护的变量进行访问。如果只需进行读取访问，则可将调用块中写保护变量中的内容复制到其它非写保护的变量中。之后，即可将该变量作为实参进行传递。

导入外部源

导入使用结构作为多重实例或单实例的外部源时，整个程序将切换为源中之前使用的指令版本。在 TIA Portal 版本 V15 及以上版本中，该错误已修正。项目中已包含的指令将不再更改，而是保留用户所组态的指令版本。

如果导入后项目包含指令的其它版本，则将报告发生语法错误。此时，需重新编译整个项目。为此，可在项目树中选择“程序块”(Program blocks) 文件夹，并在快捷菜单中选择命令“编译 > 软件（仅更改）”(Compile > Software (only changes))。

ARRAY of BOOL/BYTE/CHAR 的大小 (S7-1500)

在旧版本中，BOOL、BYTE 或 CHAR 数据类型的 ARRAY 大小不同，具体大小取决于是否用于结构中。在 V15 及以上版本中，对 ARRAY 的大小进行了标准化。如果在程序中进行绝对访问（如，使用 ANY 指针指向类型为 BOOL、BYTE 或 CHAR 的 ARRAY），则需在升级后对程序进行检查。


与 V14 SP1 之前版本中 PLC 程序的兼容性

内容 兼容性 程序消息中相关值的总大小 SCL 中的程序循环 (S7-1200/S7-1500) SCL 中的 CASE 语句 多重实例的 ARRAY 背景数据块中参数类型为“Block_DB”的条目 以块参数形式进行 I/O 访问（S7-1500 固件版本 V2.1 及以上版本）
与 V14 SP1 之前版本中 PLC 程序的兼容性

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

兼容性

在 V14 SP1 中，通常可继续使用之前由 TIA Portal 旧版本创建的所有 PLC 程序。但由于在版本 V14 SP1 中对编译器进行了改进并且更正了相关错误，在极少数情况下程序在升级后会有不同反应，或者需要手动调整程序代码。在下文中，对此进行了详细介绍。

此外，还可以选择以兼容性模式编辑项目。有关兼容性的更多信息，请参见“项目的兼容性”。

程序消息中相关值的总大小

在 S7-1500 CPU 中执行“Program_Alarm”指令时，报警过程最多支持 512 个字节的相关值。

在 TIA Portal 版本 V14 及以下版本中，编译过程中仅显示一条有关该数值的警告消息。在 TIA Portal V14 SP1 及以上版本中，该检查更为严格。如果超出该数值，则在编译过程中将输出一条错误消息，用于排除运行过程中的相关错误。此时，该检查过程不再参考“Program_Alarm”指令调用时 SD 参数的实际大小，而是参考 SD 参数可能的最大大小。即，用户需事先确定待传输字符串变量应声明的长度大小。这是因为，这些字符串变量将占用大量的字节空间。

将项目从版本 V14 及以下版本移植到 V14 SP1 Update 1 时，必需考虑这种情况。

SCL 中的程序循环 (S7-1200/S7-1500)

在 S7-1200/S7-1500 中，SCL 程序循环中的程序循环无法更改。

因此，以下程序示例将无效：

FOR #i := 1 TO 10 DO

#i := #i + 1;

END_FOR;

在 TIA Portal V14.0.1 及以上版本中，在编译过程中将执行更为精准的语法检查并输出一条兼容性错误消息。

SCL 中的 CASE 语句

在 CASE 语句中，不再支持与“GOTO”指令无关的标签。系统将指示发生语法错误。

多重实例的 ARRAY

如果将多重实例中的单个变量声明保持性设置“在 IDB 中设置”(Set in the IDB)，则在某些情况下可能会发生 V14 中无法对多重实例的 ARRAY 进行正确寻址。该错误在 V14 SP1 已修复。

如果在用户程序中使用了此类变量，则需在升级后重新编译受影响的块。

背景数据块中参数类型为“Block_DB”的条目

在 LAD 和 FBD 中，不能使用数据类型为“BLOCK_DB”的输入，输入指令的背景数据块。所有 CPU 系列和所有块类型都具有这一特性。

在 TIA Portal V14 SP1 及以上版本中，将输出一条语法错误。

如果在用户程序中使用数据类型“Block_DB”传递背景数据块，则需更改用户程序。而需使用一个参数实例在运行过程中对该实例进行传输。

以块参数形式进行 I/O 访问（S7-1500 固件版本 V2.1 及以上版本）

如果发生 I/O 访问错误，以输入参数形式互连到块的直接 I/O 访问将无法再访问正在运行的块。此时，系统将使用块中该信号的替换值。

在 S7-1500 CPU 固件版本 V2.1 及以上版本和所有 S7-1200 CPU 中，系统特性保持不变：

发生 I/O 访问错误时，该块无法调用。块调用结束后，将继续程序执行。如果存在 OB 122 或启用了本地错误处理，则执行这些操作。


与 V14 之前版本中 PLC 程序的兼容性

内容 兼容性 STL：“SRW”、“SLW”和“SSI”指令（S7-300、S7-400、S7-1500） BCD 格式的表示 指令“SET_BF：置位位域”和“RESET_BF：复位位数组”（S7-1200、S7-1500） 指令“SCALE：缩放”和“UNSCALE：取消缩放”(S7-1500) 固件版本 V1.8.1 及以上版本中，PLC 数据类型 (UDT) 中未使用的位 SCL (S7-1200) 固件版本 V4.2 及以上版本中，数据类型显式转换 SCL：数据类型为 (W)STRING 的块参数的 EN/ENO 机制 (S7-1200/1500) 在优化块和标准块之间转发 STRING 参数 (S7-1200/1500) 数据类型为“STRING”或“WSTRING”的常量的长度声明 HW_ANY 的基本数据类型从 WORD 变更为 UINT 块注释的长度 指令“ SR：置位复位触发器 ”和“ RS：复位置位触发器 ”的语法检查 ANY 指针：访问优化数据 “(L)REAL”数据类型 IEC 定时器中的“ST”参数 消息的相关值 (S7-1500) 隐式转换“DB_ANY”数据类型的块参数 标准访问组织块的接口 比较 WORD 数据类型的变量与 S5TIME 数据类型的变量 (S7-1500)
与 V14 之前版本中 PLC 程序的兼容性

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

兼容性

理论上，在 TIA Portal V14 中可继续使用之前旧版本创建的所有 PLC 程序。但由于在版本 V14 中对编译器进行了改进并且更正了相关错误，在极少数情况下程序在升级后会有不同反应，或者需要手动调整程序代码。在下文中，对此进行了详细介绍。

STL：“SRW”、“SLW”和“SSI”指令（S7-300、S7-400、S7-1500）

从 TIA Portal V13 SP1 升级到 TIA Portal V14 之后，这些指令支持的偏移量值范围发生变更。

在版本 V13 SP1 中，S7-1200/1500 系列 CPU 中可指定的偏移量值范围为 0 到 31； S7-300/400 系列 CPU 可指定的偏移量值范围为 0 到 15。

在版本 V14 及以上版本中，所有 CPU 系列 (S7-300/400/1200/1500) 的值范围统一为 0 到 15。

BCD 格式的表示

从 TIA Portal V13 SP1 到 TIA Portal V14，BCD 格式中的符号表示有所不同。

在版本 V13 SP1 中，显示 BCD 值时不带符号。

在版本 V14 及以上版本中，显示 BCD 值时带有符号。这将导致 BCD 格式值的表示发生变化。

整数（十进制系统） | 十六进制数 | V13 SP1 中的表示 | V14 中的表示
0 | 16#0000 | BCD#0 | BCD#0
-26215 | 16#9999 | BCD#9999 | BCD#-999
1365 | 16#0555 | BCD#555 | BCD#555
21845 | 16#5555 | BCD#5555 | BCD#555
4096 | 16#1000 | BCD#1000 | BCD#0
-28672 | 16#9000 | BCD#9000 | BCD#0

指令“SET_BF：置位位域”和“RESET_BF：复位位数组”（S7-1200、S7-1500）

从 TIA Portal V13 SP1 到 TIA Portal V14，该指令对不同结构的响应有所不同。

在版本 V13 SP1 中，可置位或复位的位数通常由输出指定。如果已指定了一个 STRUCT 或 ARRAY PLC 数据类型的结构，这一规则同样适用。如果要置位或复位 10 个位而结构中仅包含 5 个位，则会对该地址序列中的以下 5 位进行置位或复位。

在 PLC 数据类型的结构（版本为 V14 及以上版本的 STRUCT 或 ARRAY）时，结构中所包含的位数即为可复位的最大位数。例如，如果指定值“20”且结构中包含 10 位，则仅置位这 10 个位。如果指定值“5”而结构中包含 10 位，则仅置位 5 个位。

指令“SCALE：缩放”和“UNSCALE：取消缩放”(S7-1500)

TIA Portal V13 SP1 中，该指令对限制条件（LO_LIM> HI_LIM）的响应与 TIA Portal V14 中的不同。

在版本 V13 SP1 中，下限大于上限时，将显示一条错误消息。

在 V14 及更高版本中，允许下限值大于上限值，输入值的结果将进行反向操作。

在 S7-300/400 系列 CPU 中，该指令通常可对输入值结果进行反向缩放。

固件版本 V1.8.1 及以上版本中，PLC 数据类型 (UDT) 中未使用的位

标准存储区中 PLC 数据类型未使用的各个位由系统占用或覆盖。例如，包含 4 位的 PLC 数据类型。

固件版本低于 V1.8.1 时，任何时候都不能使用 PLC 数据类型的未使用位。

固件版本为 V1.8.1 及更高版本时，即使只使用 4 位，所有位都将被占用或覆盖。

说明

地址分配

请勿为不同的符号地址重复分配相同的绝对地址。

SCL (S7-1200) 固件版本 V4.2 及以上版本中，数据类型显式转换

如果固件版本低于 V4.2，在 SCL 中对数据类型 SINT/INT/DINT/REAL_TO_STRING/WSTRING 进行显示转换时，字符串将采用右对齐方式传送并在填充时使用前导空格。

示例：REAL_TO_WSTRING(12) = ' 1.200000E+1'

对于 TIA Portal V13 及以上版本，在 SCL 中对数据类型 SINT/INT/DINT/REAL_TO_STRING/WSTRING 进行显式转换时，字符串将显示前导符号并采用左对齐方式传送。

示例：REAL_TO_WSTRING(12) = '+1.200000E+1'

SCL：数据类型为 (W)STRING 的块参数的 EN/ENO 机制 (S7-1200/1500)

在 TIA Portal V14 及更高版本中，运行过程中传送数据类型为 (W)STRING 的块参数时，将检查参数是否截断。当形参和实参的长度与声明的长度不符时，可能会发生参数截断。在运行过程中，如果目标参数的声明长度小于接收的 (W)STRING 参数长度，则截断 (W)STRING 参数并将使能输出 ENO 设置为“FALSE”。

如果在用户程序中评估使能输出 ENO，则程序的语义可能会发生更改。

在优化块和标准块之间转发 STRING 参数 (S7-1200/1500)

在 TIA Portal V14 以下版本中，在优化块和非优化块之间传送 STRING 参数时不会传送该参数的长度信息。即，在 STRING 参数的后续处理中，无法通过 ENO 机制判断访问错误。即使发生访问错误，使能输出 ENO 的值也将为 TRUE。

在 TIA Portal V14 及更高版本中，将传送 STRING 长度信息。因此，可通过 ENO 机制监视访问错误。如果在用户程序中评估使能输出 ENO，则程序的语义可能会发生更改。

数据类型为“STRING”或“WSTRING”的常量的长度声明

局部常量和全局 (W)STRING 常量不支持长度声明。如果用户程序中包含有长度声明（如，“MyStringConst [7]”），则在升级时将自动移除。但这种更改不会对程序的语义造成影响。

HW_ANY 的基本数据类型从 WORD 变更为 UINT

硬件数据类型“HW_ANY”用于标识所有硬件组件，如模块。在 V14 版本中，“HW_ANY”的基本数据类型从 WORD 变更为 UINT。升级为 V14 后，为数据类型为“HW_ANY”的参数指定一个确定的 WORD 常量（如 W#16#1）或指定 WORD 数据类型的变量时，可能会发生编译错误。

此时，需更改常量的符号（如，更改为 16#1）或将变量的数据类型更改为 UINT。

块注释的长度

在 TIA Portal V14 及更高版本中，块注释的长度不得超过 32767 个 Unicode字符。

指令“ SR：置位复位触发器 ”和“ RS：复位置位触发器 ”的语法检查

在“S”输入处，输入、输出、位存储器以及静态或局部数据可用作操作数。但不允许使用常量。该版本的语法检查并不会拒绝常量“0”和“1”。在 TIA Portal V14 及以上版本中，对语法检查进行了改进。“S”输入处不再支持“0”和“1”。之前对此进行编译不会报错，但新版本中将接收到一条错误消息。此时，可更改用户程序并使用一个有效的操作数。

ANY 指针：访问优化数据

对于 S7-1500 系列 CPU，ANY 指针只能指向“标准”访问模式的存储区。ANY 指针不允许访问优化数据。

在 TIA Portal V14 及更高版本中，ANY 指针的语法检查更为严格。新版本将拒绝访问优化数据。之前对此进行编译不会报错，但新版本中将接收到一条错误消息。

“(L)REAL”数据类型

在 64 位的 Windows 版本中，LREAL 数据类型的评估有时会与之前的 32 位 Windows 版本不同。对 (L) Real 常量值进行取整时，最低有效位可能有所不同。

尾数中的最后一位数字可能不同，大多数情况下仅对精度造成轻微影响。

如果对尾数中的最后一位数字进行评估，则转换后 STEP 7 程序的语义可能会发生变更。

IEC 定时器中的“ST”参数

IEC 定时器中的“ST”参数仅为内部使用，禁止写入。因此，在 TIA Portal V14 及以上版本中该参数不再显示。如果在用户程序中对“ST”参数进行写访问，则升级后进行编译时将显示一条错误消息。

如果与项目间工程组态进行数据交换并使用 HMI 访问“ST”参数，则首先应导出该项目，然后再将其重新导入到代理 CPU 中。只有这样，“ST”参数才不会在 HMI 组态中显示。

消息的相关值 (S7-1500)

在使用旧版本 TIA Portal 创建的项目中，可以包含不同项目语言不同结构的嵌入式相关值。不同语言中，相关值的顺序可能不同，也可能会丢失。对此种类型进行项目时，需统一相关值的顺序。具体取决于原项目中参考语言的设置。此时，建议检查所翻译的文本信息并进行相应更改。

隐式转换“DB_ANY”数据类型的块参数

使用语法 DB_ANY.%DB(B|W|D) 访问“DB_ANY”数据类型的块参数时，之前不会进行数据类型隐式转换。只是简单地将源值的位模式转换为目标数据类型。如果目标数据类型小于源数据类型，则将发生溢出，导致写入的值错误或不准确。而发生精度丢失或运行时错误时，使能输出 ENO 也不会设置为“FALSE”。

在 V14 及以上版本中，通过语法 DB_ANY.%DB(B|W|D) 进行参数传递时，将按照数据类型的隐式转换规则进行转换。请注意，升级后可能会写入不同的值，并对程序的语义造成更改。此外，发生运行时错误时，使能输出 ENO 将设置为“FALSE”。

标准访问组织块的接口

进行标准访问的组织块接口大小需至少为 20 个字节。在 TIA Portal 的旧版本中，在编译过程中仅检查 OB1 接口的最小大小。在 V14 及以上版本中，将检查所有组织块的接口。之前对此进行编译不会报错，但新版本中将接收到一条错误消息。

比较 WORD 数据类型的变量与 S5TIME 数据类型的变量 (S7-1500)

在 TIA Portal V14 及以上版本中，比较 WORD 数类型的变量与 S5TIME 数据类型的变量时，两种变量都将转换为 TIME 数据类型。WORD 变量将解释为一个 S5TIME 值。如果其中某个变量无法转换，则不进行比较且输出结果 FALSE。转换成功后，将基于所选择的比较表达式进行比较。


与 V13 SP1 之前版本中 PLC 程序的兼容性

内容 兼容性 固件版本 V1.8.1 及以上版本中，PLC 数据类型 (UDT) 中未使用的位 SCL (S7-1200) 固件版本 V4.2 及以上版本中，数据类型显式转换 读取无效的 IO 输入 指令“S_CONV：转换字符串” 指令“SET：置位位数组”(S7-300/S7-400) 指令“MUX：多路复用”(SCL) 指令“DEMUX：多路分用”(SCL) 指令“MOVE：移动值”(STL) (S7-1500) 指令“Program_Alarm：生成具有相关值的程序报警”(S7-1500) 指令“READ_DBL：从装载内存的数据块中读取”和“WRIT_DBL：将数据写入到装载存储器的数据块中” 指令“READ_DBL：从装载内存的数据块中读取”和“WRIT_DBL：将数据写入到装载存储器的数据块中”(SCL) 函数值 (Return) 比较硬件数据类型 HW_IO 与 HW_DEVICE 浮点数向 DWORD (GRAPH) 的隐式转换 (S7-1500) 为 LTIME 常量赋值 (S7-1500) 在 SCL 中，间接索引数据类型为位字符串的 ARRAY 元素 (S7-1200/S7-1500) 用于 STRING 转换的 EN/ENO 机制 (S7-1200/S7-1500) 本地数据堆栈溢出 (S7-300/S7-400)
与 V13 SP1 之前版本中 PLC 程序的兼容性

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

兼容性

可以继续在 V13 SP1 中使用所有通过 TIA Portal V12 SP1 或 V13 创建的程序。但由于在 V13 SP1 中对编译器进行了改进并且更正了编译器上的错误（程序代码的编译），在极少数情况下程序在升级后会有不同的反应，或者您必须手动调整程序代码。在下文中，对此进行了详细介绍。

固件版本 V1.8.1 及以上版本中，PLC 数据类型 (UDT) 中未使用的位

标准存储区中 PLC 数据类型未使用的各个位由系统占用或覆盖。例如，包含 4 位的 PLC 数据类型。

固件版本低于 V1.8.1 时，任何时候都不能使用 PLC 数据类型的未使用位。

固件版本为 V1.8.1 及更高版本时，即使只使用 4 位，所有位都将被占用或覆盖。

说明

地址分配

请勿为不同的符号地址重复分配相同的绝对地址。

SCL (S7-1200) 固件版本 V4.2 及以上版本中，数据类型显式转换

如果固件版本低于 V4.2，在 SCL 中对数据类型 SINT/INT/DINT/REAL_TO_STRING/WSTRING 进行显示转换时，字符串将采用右对齐方式传送并在填充时使用前导空格。

示例：REAL_TO_WSTRING(12) = ' 1.200000E+1'

对于 TIA Portal V13 及以上版本，在 SCL 中对数据类型 SINT/INT/DINT/REAL_TO_STRING/WSTRING 进行显式转换时，字符串将显示前导符号并采用左对齐方式传送。

示例：REAL_TO_WSTRING(12) = '+1.200000E+1'

读取无效的 IO 输入

在 TIA Portal V12 及更高版本中，仅当编程有诸如 %MW10 := “InvalidWordAccess":P 的故障访问方式且该访问方式有效并位于相关序列中时，才输出读取无效 IO 输入的错误代码 16#2942。例如，如果在其它程序块中未使用变量 #tmpm，则可以为 #tmp := “InvalidWordAccess":P。

指令“S_CONV：转换字符串”

在 TIA Portal V13 SP1 中，EN/ENO 机制的运行特性与 TIA Portal V13 中的不同。

在版本 V13 中，ENO 使能输出在发生错误时返回信号状态“0”，即使禁用了 ENO 使能输出也是如此。如果已将另外一个指令切换到 ENO 使能输出，则不执行该指令。

在版本 V13 SP1 中，ENO 使能输出在发生错误时返回信号状态“1”，即使禁用了 ENO 使能输出也是如此。如果已将另外一个指令切换到 ENO 使能输出，则如期执行该指令。

指令“SET：置位位数组”(S7-300/S7-400)

在 TIA Portal 中，还可以将 SET 指令的 N 参数中数据块的元素互连。

指令“MUX：多路复用”(SCL)

对于 TIA Portal V13 及更早的版本，输入参数中的变量值作为函数值原样输出，即使 K 参数包含一个负整数也是如此。这种机制在 TIA Portal V13 SP1 中发生了改变。

在 TIA Portal V13 SP1 中，如果 MUX 指令的输入参数中所用变量的数据类型有效且 K 参数是一个负整数，则该变量的值将发生变更。有关有效的数据类型，请参见信息系统中的 MUX 指令说明。

指令“DEMUX：多路分用”(SCL)

在 TIA Portal V13 及更早版本中，如果 K 参数的值小于 0，则输出参数 OUTELSE 不输出任何值。而当 K 参数的值大于可用输出时，输出参数 OUTELSE 中将输出输入参数 IN 的值。这种机制在 TIA Portal V13 SP1 中发生了改变。

在 TIA Portal V13 SP1 中，如果在 K 参数中指定的值超出了可用输出的范围（K < 0 或 K > 可用输出），则在 OUTELSE 输出参数中输出 IN 输入参数的值。

指令“MOVE：移动值”(STL) (S7-1500)

从 TIA Portal V13 SP1 开始，STL 中的“MOVE”指令将应用更加严格的语法规则：

对于 TIA Portal V13 及更早的版本，可以在输入参数 IN 中指定无类型的常数，如“0”。

但如果要在 TIA Portal V13 SP1 中复制值“0”，则需要根据输出参数（如 INT#0、DINT#0 等）的数据类型指定一个有类型的常数。

指令“Program_Alarm：生成具有相关值的程序报警”(S7-1500)

在 TIA Portal V13 SP1 及更高版本中，相关值或文本列表的索引变量不允许再使用数据类型 INT，而采用数据类型 UINT。

指令“READ_DBL：从装载内存的数据块中读取”和“WRIT_DBL：将数据写入到装载存储器的数据块中”

如果使用“READ_DBL”V1.0 或“WRIT_DBL”V1.0 并使用参数 DSTBLK 访问属性为“仅存储在装载内存”的数据块，则 TIA Portal V13 SP1 将报告兼容错误。

对此，可使用这两个指令的版本 V1.2。

指令“READ_DBL：从装载内存的数据块中读取”和“WRIT_DBL：将数据写入到装载存储器的数据块中”(SCL)

在 TIA Portal V13 SP1 及以上版本中，SCL 指令“READ_DBL”和“WRIT_DBL”的语法规则与其它编程语言的相同：

在 TIA Portal V13 中，SRCBLK 和 DSTBLK 参数处指定的“标准”数据块可包含不同数据类型的变量。

而在 TIA Portal V13 SP1 及以上版本中，无论是“标准”数据块还是“优化”数据块，所包含的变量数据类型必须相同，否则将报告编译错误。

函数值 (Return)

从 TIA Portal V13 SP1 开始，函数调用将应用更加严格的语法规则：

在任何情况下都会确保写入函数值 (Return)，即使函数中将运行多条可能的程序路径也是如此。因此，将不会再有偶尔在运行时未写入函数值的风险。

但在编译时，用户可能会收到函数中的语法错误，如果 V13 中无错误，将仍可以编译。在这种情况下，请更改程序代码，让函数值在所有可能的程序路径中都会写入。

示例：

SCL 将以下程序代码复制到剪贴板。

IF #MyIn1 = #MyIn2 THEN

#Block_3 := #MyIn1 + 1;

END_IF;

在本例中，如果未满足 IF 指令的条件，则不会写入“Block_3”的函数值。然后函数值将包含一个未定义的值。

SCL 将以下程序代码复制到剪贴板。

#Block_3 := #MyIn1;

IF #MyIn1 = #MyIn2 THEN

#Block_3 := #MyIn1 + 1;

END_IF;

在本例中，“Block_3”的函数值肯定在程序中写入，因为在完成 IF 循环之前设置了“MyIn1”作为默认值。

比较硬件数据类型 HW_IO 与 HW_DEVICE

从 TIA Portal V13 SP1 开始，对数据类型 HW_IO 与 HW_DEVICE 的比较将采用更为严格的语法规则：

对于 TIA Portal V13 及更早的版本，可以直接比较数据类型 HW_IO 与 HW_DEVICE。

但如果要在 TIA Portal V13 SP1 中比较这两种数据类型，就必须首先在块接口的“Temp”部分创建 HW_ANY 数据类型的变量，然后将 LADDR（从数据类型 HW_DEVICE）复制到该变量。接下来才可以比较 HW_ANY 与 HW_IO。

浮点数向 DWORD (GRAPH) 的隐式转换 (S7-1500)

从 TIA Portal V13 SP1 开始，浮点数向 DWORD 的隐式转换将采用更严格的语法规则：

对于 TIA Portal V13 及更低版本，无类型的常数值只要小于 32 位（例如 1.0），就可以隐式转换为 DWORD 数据类型。

对于 TIA Portal V13 SP1，如果要将浮点数隐式转换为 DWORD 数据类型，就只能使用有类型常数（例如 REAL#1.0），因为无类型常数（例如 1.0）被解释为 LREAL 数据类型，无法再隐式转换为 DWORD。

为 LTIME 常量赋值 (S7-1500)

从 TIA Portal V13 SP1 开始，为 LTIME 常量赋值时将采用更加严格的语法规则：

对于 TIA Portal V13 及更早的版本，可以为 LTIME 常量指定一个 TIME 值（例如 T#10s）。

但如果要在 TIA Portal V13 SP1 中为 LTIME 常量赋值，则需使用 LTIME 语法（如，LT#10s）。

请注意，在升级到 TIA Portal V13 SP1 之前，需对先前版本的 TIA Portal 项目进行调整。

在 SCL 中，间接索引数据类型为位字符串的 ARRAY 元素 (S7-1200/S7-1500)

在 TIA Portal V13 中，如果未设置 IEC 检查，那么除整数数据类型的变量外，还可以使用 BYTE、WORD 或 DWORD 或 LWORD 数据类型的变量作为索引对 SCL 中 S7-1200/1500 系列 CPU 的 ARRAY 元素进行寻址。但这不适用于 S7-300/400 系列的 CPU。

结果是导致与 TIA Portal V12 SP1 不兼容，在 TIA Portal V12 SP1 中，还允许在 S7-300/400 系列的 CPU 上使用数据类型位字符串进行间接索引。

用于 STRING 转换的 EN/ENO 机制 (S7-1200/S7-1500)

转换

说明

Strg_TO_Chars：将字符串转换为 Array of CHAR

即使禁用了 ENO 使能输出，它也将返回信号状态“0”：

  • 对于 CHARS 参数的无效字符

  • 对于 PCHARS 参数的无效 ARRAY 下标

  • 如果 PCHARS 与 STRG 参数的和超过了目标 ARRAY 的长度。

Chars_TO_Strg：将 Array of CHAR 转换为字符串

即使禁用了 ENO 使能输出，它也将返回信号状态“0”：

  • 如果 PCHARS 与 CNT 参数的和超过了源 ARRAY 的长度。

本地数据堆栈溢出 (S7-300/S7-400)

从 TIA Portal V13 SP1 开始，将会检查本地数据堆栈的大小以保证其不会超出在硬件配置中为 OB 属性定义的大小。

这意味着在 V13 中编译时无错的项目，在 V13 SP1 中编译时就可能会报错。如果发生这种情况，请在硬件配置中更改本地数据堆栈的最大大小。


项目间工程组态 (IPE)

项目间工程组态 (IPE)

该章节包括以下主题的信息:
  • 有关 IPE 的注意事项


有关 IPE 的注意事项

内容 使用设备代理中的系统诊断 连接到 SIMATIC S7-1500 软控制器 支持 Alarm_S 报警 兼容性
有关 IPE 的注意事项

内容

在线帮助中未包含的信息和有关产品特性的重要信息。

使用设备代理中的系统诊断

要使用 IPE 设备代理中的“系统诊断”功能（如系统诊断视图），可插入 PLC 报警作为设备代理的内容。

连接到 SIMATIC S7-1500 软控制器

只能通过分配给软件 PLC 的接口作为设备代理连接到 SIMATIC S7-1500 软控制器。

支持 Alarm_S 报警

WinCC 和 SIMATIC Manager 的集成组态支持 Alarm_S 报警，而这些报警通过数据块和连续功能图 (CFC) 提供。

兼容性

使用 TIA Portal V15.1，可打开相同版本以及 V13 SP1 及以下版本的 IPE 文件。

使用旧版本，无法打开由 TIA Portal 版本 V15.1 创建的 IPE 文件。