STEP 7

Examples See also History Extra
STEP 7

This section contains information on the following topics:
  • Security information
  • Notes on use
  • Simultaneous online operation
  • Editing devices and networks
  • Programming a PLC
  • Inter Project Engineering (IPE)
  • Technological functions


Security information

Security information Network settings
Security information

Security information

Siemens provides products and solutions with industrial security functions that support the secure operation of plants, systems, machines and networks.

In order to protect plants, systems, machines and networks against cyber threats, it is necessary to implement – and continuously maintain – a holistic, state-of-the-art industrial security concept. Siemens’ products and solutions only form one element of such a concept.

Customer is responsible to prevent unauthorized access to its plants, systems, machines and networks. Systems, machines and components should only be connected to the enterprise network or the internet if and to the extent necessary and with appropriate security measures (e.g. use of firewalls and network segmentation) in place.

Additionally, Siemens’ guidance on appropriate security measures should be taken into account. For more information about industrial security, please visit

https://www.siemens.com/industrialsecurity

Siemens’ products and solutions undergo continuous development to make them more secure. Siemens strongly recommends to apply product updates as soon as available and to always use the latest product versions. Use of product versions that are no longer supported, and failure to apply latest updates may increase customer’s exposure to cyber threats.

To stay informed about product updates, subscribe to the Siemens Industrial Security RSS Feed under

https://www.siemens.com/industrialsecurity

Network settings

The following tables show the network settings of each product you need to analyze the network security and to configure external firewalls:

STEP 7 Professional
Name | Port number | Transport protocol | Direction | Function | Description
ALM | 4410* | TCP | Inbound/outbound | License service | This service provides the complete functionality for software licenses and is used by both the Automation License Manager as well as all license-related software products.
RFC 1006 | 102 | TCP | Outbound | S7 communication | Communication to the S7 controller via Ethernet/PROFINET for programming and diagnostic purposes.
DCP | --- | Ethernet | Outbound | PROFINET | The DCP protocol (Discovery and Basic Configuration Protocol) is used by PROFINET and provides the basic functionality for locating and configuring PROFINET devices.
SNMP | 161 | UDP | Outbound | PROFINET | The SNMP client functionality is used by STEP 7 to read status information from PROFINET devices.
* Default port that can be changed by user configuration

WinCC ES Basic (without simulation)
Name | Port number | Transport protocol | Direction | Function | Description
ALM | 4410* | TCP | Inbound/outbound | License service | This service provides the complete functionality for software licenses and is used by both the Automation License Manager as well as all license-related software products.
HMI Load | 1033 | TCP | Outbound | HMI Load (RT Basic) | This service is used to transmit images and configuration data to Basic Panels.
* Default port that can be changed by user configuration

Simulation RT Basic
Name | Port number | Transport protocol | Direction | Function | Description
HMI Load | 1033 | TCP | Inbound | HMI Load (RT Basic) | This service is used to transmit images and configuration data to Basic Panels.
Ethernet/IP | 44818 | TCP | Outbound | Ethernet/IP channel | The Ethernet/IP protocol is used for connections to Allen Bradley PLCs.
 | 2222 | UDP | Inbound | Ethernet/IP channel | The Ethernet/IP protocol is used for connections to Allen Bradley PLCs.
Modbus TCP | 502 | TCP | Outbound | Modbus TCP channel | The Modbus TCP protocol is used for connections to Schneider PLCs.
RFC 1006 | 102 | TCP | Outbound | S7 channel | Communication to the S7 controller via Ethernet/PROFINET
Mitsubishi MC | 5002 | TCP | Outbound | Mitsubishi MC channel | The Mitsubishi protocol is used for connections to Mitsubishi PLCs.


Notes on use

Contents Compatibility after upgrading a project to V16 Parallel use Removing and inserting Ethernet modules Compatibility (S7-1200)
Notes on use

Contents

Information that could not be included in the online help and important information about product characteristics.

Compatibility after upgrading a project to V16

After upgrading a project to V16, online/offline differences might be indicated although the online and offline programs are identical. These differences are due to optimization of the calculation of checksums in V16. But the blocks are still compatible in most cases.

In some rare cases, however, you might have to recompile and download the project again due to the changes in the checksum calculation before you can monitor and test the project online.

You can find more information in the log files for upgrading in the project properties. If a checksum inconsistency is reported in the log files, then the online/offline differences are due to the changed checksum calculation.

Further information can be found in the section "Online connection after upgrading a project".

Parallel use

If the term "Combo" appears in the name or license key of the software after installation, the use of the following products/versions is permitted in accordance with Article 1.6 of the General Terms and Conditions (see also setup text):

  • STEP 7 Professional 2017

  • STEP 7 Professional 2010

  • STEP 7 Professional 2006

Removing and inserting Ethernet modules

If Ethernet modules are removed and re-inserted during operation, you must boot the PC; otherwise, the "Accessible devices" functionality in STEP 7 or NCM PC will not display all devices. While the PC boots, Ethernet modules must be activated.

Compatibility (S7-1200)

The device configuration and program of an S7-1200 CPU must always be configured with the same STEP 7 version. Usually, TIA Portal makes sure that no version conflicts occur by outputting appropriate notifications during loading to the device.

This automatic verification is not possible with S7-1200 CPUs with firmware version V1.x. In this case, users themselves must ensure that no version conflicts occur.


Simultaneous online operation

Contents Simultaneous online operation Simultaneous online connections on an S7-1200 CPU (S7-1200)
Simultaneous online operation

Contents

Information that could not be included in the online help and important information about product characteristics.

Simultaneous online operation

The simultaneous online operation of STEP 7 V5.6 or earlier and STEP 7 V16 (TIA Portal) has not been approved.

Simultaneous online connections on an S7-1200 CPU (S7-1200)

It is not possible to establish an online connection from multiple instances of TIA Portal simultaneously to the same S7-1200 CPU.


Editing devices and networks

Editing devices and networks

This section contains information on the following topics:
  • General information on devices and networks
  • Notes on the hardware configuration
  • Information about OPC UA functions
  • Hardware detection of IO devices
  • HW ID of type "Hw_SubModule" for an HMI Panel IO device
  • Use of modules on the S7-1200
  • CP 343-2 on SIMATIC S7 Embedded Controller EC31-RTX
  • Loading of S7-1500 CPUs (SIPLUS)
  • ET 200MP (IM 155-5 DP ST) on a WinLC RTX
  • Notes on online and diagnostics
  • Network components


General information on devices and networks

Contents S7-PCT IO-Link (S7-1200) Port Configuration Tool PCT
General information on devices and networks

Contents

Information that could not be included in the online help and important information about product characteristics.

S7-PCT IO-Link (S7-1200)

The S7 Port Configuration Tool is available for free download at the following link.

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

Port Configuration Tool PCT

If you use the PCT tool, make sure that you always use the current version that is available free of charge with the following link:


Notes on the hardware configuration

Contents Editing a device IP address
Notes on the hardware configuration

Contents

Information that could not be included in the online help and important information about product characteristics.

Editing a device IP address

Do not use the address range from 192.168.x.241 to 192.168.x.250 when editing a device IP address. If necessary, this address range is automatically assigned by the system to a programming device. Depending on the subnet mask, this applies also for all network classes.


Information about OPC UA functions

Contents Schema files used for OPC UA functionality PLC object not visible in the server address space OPC UA client-server connection via NAT router Restart of the OPC UA server Mapping of CPU data types to OPC UA data types for S7-1200 CPUs Additional status codes for OPC UA client instructions Copying SCL program examples from the information system
Information about OPC UA functions

Contents

Information that could not be included in the online help and important information about product characteristics.

Schema files used for OPC UA functionality

The OPC Foundation provides its members with schemes that manufacturers can use for their respective server/client implementations. These files are used, for example, to validate imported information models / node sets.

The following schema and nodeset files are used for TIA Portal version V16 or S7-1500 CPU firmware version V2.8:

Schema/Nodeset | Explanation
https://opcfoundation.org/UA/schemas/1.04/UANodeSet.xsd | XML scheme for NodeSet data (2018-12-04)
https://opcfoundation.org/UA/schemas/1.04/Opc.Ua.NodeSet2.xml | OPC UA ("CORE") Model Version 1.04 (2018-06-04)
https://opcfoundation.org/UA/schemas/DI/1.1/Opc.Ua.Di.NodeSet2.xml | OPC UA for Devices ("DI") Model Version 1.01 (2018-06-06)

PLC object not visible in the server address space

With very large projects, it can happen in rare cases that, despite successful compiling of the project and successful downloading to the CPU, the CPU node or PLC object is not visible in the address space of the OPC UA server. In this case the memory reserved for OPC UA in the CPU is insufficient.

Diagnostics, e.g. using UaExpert, returns the "Failed" server status.

Remedy

Disable the standard SIMATIC server interface in the CPU properties if it is not required.

Reduce the quantity or size of the elements that contribute towards the consumption of OPC UA resources. Reduce the number of nodes for server interfaces to fewer than 30000.

Additional measures:

  • Reduce the number of tags in the address space of the OPC UA server, in particular of tags with the data type structure.

    To remove tags from the address space, disable the option "Accessible from HMI/OPC UA" in the PLC tag table or in the data blocks.

    With data blocks, you also have the possibility to remove the DB with all tags completely from the address space. To do this, disable the option "DB accessible from OPC UA" in the properties of the DB.

  • Reduce the length of names of the elements in extensive data structures.

  • Shorten the descriptions of the nodes.

  • Reduce the number of implemented methods.

OPC UA client-server connection via NAT router

If client and server are connected via NAT routers, this attempt to make a connection fails with the error message "BadCommunicationError" or "BadNotConnected".

Background: The IPv4 packets are manipulated by the router in NAT systems. As a result, either the source IP ("Source NAT") or the destination IP ("Destination NAT") of a packet is replaced by an IP address configured in the router (depending on the destination port). This process is transparent for client and server, i.e. these devices are not informed about this process.

The problem: The NAT router also has no way to replace the endpoint description returned by the server (this is the EndpointUrl), since this address information is located in the user data of "GetEndpointsResponse".

You can find a detailed description of the procedure in the following FAQ.

CPU firmware version V2.6

No OPC UA client-server connection via NAT router possible.

Remedy as of CPU firmware version V2.8

Use the "ServerUri" attribute of the connection information ("SessionConnectInfo" parameter of the "OPC_UA_Connect" instruction).

Enter the complete ServerEndpointUrl with the IP address of the NAT router as "ServerUri". This ServerEndpointUrl is then used to establish the connection instead of the EndpointUrl returned in GetEndpointsResponse.
If you leave the attribute empty, the behavior will be the same as in CPU firmware version V2.6.

When you use the connection parameter assignment for the OPC UA connection setup (create client interface), then you must open the client interface DB (*_Configuration[DBx]) after the parameter assignment and change the string in the "ServerUri" parameter. The entry is retained after compiling the OPC UA configuration.

Example of establishing a connection (address from ServerUri replaces address from GetEndpointsResponse)

Procedure: In the "ServerUri" parameter, enter the complete server address (ServerEndpointUrl), consisting of IP address, port and optional path. The IP address is the client-side IP address of the NAT router:

1) Open configuration DB

2) Change "ServerUri" parameter

The connection is then established with the following steps:

  • GetEndpointsRequest: The S7-1500 OPC UA client addresses the server via the destination address of the NAT router in the client subnet (10.10.0.1).
    The NAT router converts the destination address into the IP address of the server (192.168.0.1) in the subnet of the server.

  • GetEndpointsResponse: The server returns its EndpointUrl in "GetEndpointsResponse":
    "opc.tcp://192.168.0.1:4840/UA/DemoServer".
    This address cannot be reached directly by the client because it is located behind a NAT router.

  • OpenSecureChannel:
    The client does not take the EndpointUrl from the GetEndpointsResponse to open the secure channel. Instead, it takes the EndpointUrl from the "ServerUri" parameter:
    "opc.tcp://10.10.0.1:4840/UA/DemoServer".
    This IP address can be reached by the client; the data is routed from the NAT router to the IP address of the server.

Restart of the OPC UA server

The OPC UA server of an S7-1500 CPU from firmware version V2.8 is only stopped when loading data relevant for OPC UA into the CPU (e.g. overwriting a data block). The server then restarts if you have allowed the loading process.

Please note that OPC UA clients cannot continue to use the running services for this server in this case and that the resources therefore need to be released again.

These services need to be requested again:

  • Re-initiate connection setup

  • Regenerate subscriptions

  • Recreate read/write jobs

In many cases, e.g. after adding new code blocks or new data blocks that are not OPC UA-relevant, the server is no longer stopped.

Mapping of CPU data types to OPC UA data types for S7-1200 CPUs

S7-1200 CPUs as of firmware version V4.4 have an OPC UA server. You can configure OPC UA server interfaces for this server.

The following mapping of the S7-1200 data types to OPC UA data types applies:

SIMATIC data type | OPC UA data type
BOOL | Boolean
SINT | SByte
USINT | Byte
INT | Int16
UINT | UInt16
DINT | Int32
UDINT | UInt32
REAL | Float
LREAL | Double
WSTRING (UCS-2; Universal Coded Character Set) | String
DWORD | StatusCode

The OPC UA server of the S7-1200 supports reading and writing of the listed simple data types.

The following data types are not supported:

  • Structures

  • Arrays

  • Unions

Although tags with these data types can be loaded (no message from consistency check), client access to these tags is rejected during runtime with an error message.

Methods cannot be programmed either.

Additional status codes for OPC UA client instructions

Due to the changed behavior for releasing connection handles on S7-1500 CPUs as of firmware V2.8, there are additional error codes that are not documented with all of these instructions.

The following table lists these error codes with explanations.

Error code

(hexadecimal values)

Name of the error

Explanation

80AE_0000

BadConnectionClosed

The connection with the corresponding ConnectionHdl has the "ShutDown" status (connection terminated). The connection/session could not be "reactivated" automatically. Possible cause: Session deleted on the server, e.g. due to restart or timeout.

In this case, you must explicitly close the connection with the instruction "OPC_UA_Disconnect" and thereby release the connection resources again. In your user program, you must reset the ConnectionHdl for this connection which has become invalid.

Then you have to establish a new connection to the server (see instruction "OPC_UA_Connect").

The error code can occur with all client instructions except the OPC_UA_Connect, OPC_UA_Disconnect, and OPC_UA_ConnectionGetStatus instructions.

80AF_0000

BadInvalidState

The connection with the corresponding ConnectionHdl has the "ConnectionError" status (temporary connection error, connection interrupted). The CPU tries to "reactivate" the connection. If this does not succeed within the set timeout interval (OPC UA Session Timeout), the connection goes into the "Shutdown" state. Requirements for the state transition: The CPU was able to reach the OPC UA server to check whether or not the session is still active.

The error code can occur with all client instructions except the OPC_UA_Connect, OPC_UA_Disconnect, and OPC_UA_ConnectionGetStatus instructions.

A000_0105

PLCopenUA_Bad_ConnectionInvalidHdl

The connection handle (ConnectionHdl) is invalid / unknown.

The error code can occur with all client instructions except the OPC_UA_Connect instruction.

Copying SCL program examples from the information system

SCL program code from the OPC UA programming examples, which was copied using the "Copy" icon in the information system and pasted in the program editor, cannot be compiled.

To copy the program code without errors, select the program code in the information system and use the "Copy" command in the shortcut menu or the key combination "Ctrl+C". Insert the program code in the program editor using the "Paste" command in the shortcut menu or using the key combination "Ctrl+V".


Hardware detection of IO devices

Contents Incomplete hardware recognition at ET 200SP stations
Hardware detection of IO devices

Contents

Information that could not be included in the online help and important information about product characteristics.

Incomplete hardware recognition at ET 200SP stations

With STEP 7 V15 you can use the online function "Hardware detection" to determine the station configuration of IO devices and to import them in your project including all plugged modules.

If you import an ET 200SP via the hardware detection in your project, you have to complete the determined station configuration manually yourself: Check at the interface module whether the suitable bus adapter was determined in the hardware configuration (for example BA 2xRJ45 instead on the BA 2xFC really present).


HW ID of type "Hw_SubModule" for an HMI Panel IO device

Contents Determination of the HW ID with the "Hw_SubModule" type for an HMI Panel IO device
HW ID of type "Hw_SubModule" for an HMI Panel IO device

Contents

Information that could not be included in the online help and important information about product characteristics.

Determination of the HW ID with the "Hw_SubModule" type for an HMI Panel IO device

The "ID" parameter of the PROFIenergy "PE_START_END" program block must be supplied with the hardware identifier (HW ID) with the type "Hw_SubModule" of the IO device. The hardware ID with the "Hw_SubModule" type of the HMI Panel IO device is not displayed in the system constants on an S7-1500/S7-1200/ET200SP CPU, but it can be determined. To do this, the symbol for the IO device in the HMI panel with the type "Hw_Device" is determined in the list of PLC tags in the "System constants" tab and reduced by one, for example, "HMI_1_IE_CP_1~PROFINET_Interface_1~IODevice -1".


Use of modules on the S7-1200

Content Use of modules on the S7-1200 Loading S7-1200 module comments to the PG/PC
Use of modules on the S7-1200

Content

Information that could not be included in the online help and important information about product characteristics.

Use of modules on the S7-1200

The modules listed below are not supported on the S7-1200.

Family | Module | Order number
S7-300 FMs | 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
Network component | Diagnostics repeater | 6ES7 972-0AB01-0XA0
ET 200M | SIWAREX | 7MH4900-2AA01, 7MH4900-3AA01, 7MH4950-1AA01, 7MH4950-2AA01

Loading S7-1200 module comments to the PG/PC

In central configurations with S7-1200, comments of modules, submodules and signal boards are not loaded. With CPs/CMs, only the comments of the IE interface or DP interface are loaded. In distributed configurations with ET 200SP or ET 200MP, only the comment of the channels is loaded from the I/O modules.


CP 343-2 on SIMATIC S7 Embedded Controller EC31-RTX

Contents CP 343-2 on SIMATIC S7 Embedded Controller EC31-RTX
CP 343-2 on SIMATIC S7 Embedded Controller EC31-RTX

Contents

Information that could not be included in the online help and important information about product characteristics.

CP 343-2 on SIMATIC S7 Embedded Controller EC31-RTX

The module AS-Interface CP 343-2 (article no.: 6GK7 343-2AH01) can be inserted in an expansion rack of the SIMATIC S7 Embedded Controller EC31-RTX (article no.: 6ES7 677-1DDxx-0BB0), but the CP 343-2 cannot be operated with the EC31-RTX.


Loading of S7-1500 CPUs (SIPLUS)

Contents Behavior of a SIMATIC S7-1500 CPU SIPLUS (6AG1...) FW <V2.5 with formatted memory card
Loading of S7-1500 CPUs (SIPLUS)

Contents

Information that could no longer be included in the online help and important information about product features.

Behavior of a SIMATIC S7-1500 CPU SIPLUS (6AG1...) FW <V2.5 with formatted memory card

Components involved:

  • CPU 151x SIPLUS (6AG1...) with firmware version prior to V2.5

  • SIMATIC memory card

If you load a SIPLUS CPU to a formatted SIMATIC memory card and then set the CPU to RUN, the CPU runs without errors. But once the power supply has been switched off and on again or if a memory reset (MRES) has been performed, the SIPLUS CPU goes into STOP with an error message. The error message states that the memory card is not recognized because it is missing, is of an incorrect type, contains incorrect data or is protected.

This behavior does not occur with a CPU 151x SIPLUS (6AG1...) with firmware version V2.5 or higher or if a configuration with a S7-1500 SIMATIC CPU (6ES7...) already exists on the memory card and is overwritten by a configuration with a SIPLUS CPU (6AG1...) of the same type.

Remedy:

  1. A configuration with SIMATIC CPU must be loaded on the SIMATIC memory card. Only a CPU of the corresponding type must be available; the I/O is not required in this case.

  2. The SIPLUS CPU is loaded to the card. The existing SIMATIC configuration on the memory card is overwritten with the SIPLUS configuration.

This procedure prevents an error message of the TIA Portal.

Note

The procedure ONLY works for online loading to the CPU. The error remains if the card is programmed by means of an external card reader.

If you want to load a CPU 1511-1 PN SIPLUS (6AG1 511-1AK00...), for example, do the following.

  1. Insert a blank memory card with sufficient available memory into the SIPLUS CPU.

  2. Configure a SIMATIC CPU of the same type, here an S7-1511-1 PN (6ES7 511-1AK00...). I/O modules are not required for the first load step.

  3. Load the configuration onto the SIPLUS CPU.

  4. Replace the SIMATIC CPU in STEP 7 with the SIPLUS CPU (6AG1 511-1AK00...) and complete the configuration with the planned I/O modules and distributed I/O devices.

  5. Load the changed configuration onto the SIPLUS CPU.


ET 200MP (IM 155-5 DP ST) on a WinLC RTX

Contents ET 200MP (IM 155-5 DP ST) can currently not be operated on a WinLC RTX via PROFIBUS.
ET 200MP (IM 155-5 DP ST) on a WinLC RTX

Contents

Information that could not be included in the online help and important information about product characteristics.

ET 200MP (IM 155-5 DP ST) can currently not be operated on a WinLC RTX via PROFIBUS.

Components involved:

  • PC systems with logic controller functionality WinLC RTX as DP master (all versions: EC31-RTX (F), WinAC RTX (F) software PLC), referred to as "WinLC RTX" below.

  • ET 200MP (IM 155-5 DP ST) as DP slave

If you configure standard modules or F-modules in an ET 200MP and use a WinLC RTX as DP master, these modules are not configured by the DP master in the ET 200MP. After loading the configuration and startup of the components involved, the modules in the ET 200MP signal the missing parameter assignment by means of flashing green LEDs.

STEP 7 does not show the readiness for operation of the modules online (status "OK").

Remedy:

  • Recommendation: Use an IM 155-5 PN interface module to connect the ET 200MP to a WinLC RTX via PROFINET IO.

    or

  • If no F-modules are inserted in the ET 200MP: Use the GSD version of the ET 200MP on an WinLC RTX to configure the standard modules.


Notes on online and diagnostics

Contents Hardware detection followed by online connection Deleting measurements in the device (memory card) (S7-1200) Project trace for Software Controller and Open Controller
Notes on online and diagnostics

Contents

Information that could not be included in the online help and important information about product characteristics.

Hardware detection followed by online connection

When the "Online > Hardware detection" command is performed for an unspecified CPU, the online configuration is not loaded from the CPU. If you do not load the configuration resulting from the hardware detection to the CPU, the device and network views will always show a difference between the offline and online configurations. It will appear that there are different configurations in the online and diagnostic views, although the MLFBs are identical in the actual CPU and the offline CPU.

Deleting measurements in the device (memory card) (S7-1200)

Do not delete any measurements in the device as long as a trace in the device still generates new measurements on the memory card.

Project trace for Software Controller and Open Controller

With TIA Portal V16, project trace does not support the Software Controller or the Open Controller.


Programming a PLC

Programming a PLC

This section contains information on the following topics:
  • General notes on PLC programming
  • Notes on instructions
  • Testing the user program
  • Upgrading blocks
  • Compatibility of PLC programs from older versions


General notes on PLC programming

Contents Instance-specific attributes when importing blocks via TIA Portal Openness Display of the CPU name in system alarms Modifying the application cycle of an isochronous mode interrupt OB Using the system data type "TDiag_StatusExt" (S7-1200/1500) Information about network security Functions from the global library "Long Functions" with PLCSIM (S7-1500) Loading inconsistent programs to an S7-1500 CPU (S7-1500) Data exchange between standard and F-program when using Team Engineering
General notes on PLC programming

Contents

Information that could not be included in the online help and important information about product characteristics.

Instance-specific attributes when importing blocks via TIA Portal Openness

In certain situations, the import rules can mean the loss of instance-specific attributes, such as start values.

Display of the CPU name in system alarms

As of V15.1, the name of the CPU (or for H or R CPUs, the name of the station) is displayed in the "Additional text 1" column of the system alarms. To do this, you need to compile the hardware of the device in question. If the CPU name is not displayed via the "Compile > Hardware (only changes)" option, use the option "Compile > Hardware (rebuild all)".

Make sure that loading to the device is actually performed; the message that the hardware is up-to-date is not enough!

Modifying the application cycle of an isochronous mode interrupt OB

When you change the "Application cycle (ms)" parameter of an isochronous mode interrupt OB, you implicitly also modify the hardware configuration. To ensure that the modified value for the application cycle duration becomes effective after the next loading process of the CPU you have to explicitly include the hardware configuration in loading. To this purpose select either the menu command "Load to device > Hardware and software" or the command "Load to device > Hardware configuration".

Using the system data type "TDiag_StatusExt" (S7-1200/1500)

Alternatively to the "TDiag_Status" system data type, the extended system data type "TDiag_StatusExt" can be used to obtain more detailed information about the cause of a lost connection. In particular, the reading out of the structure element "LastConnErrTimeStamp" causes the CPU to switch to "Defect" system state and must not be used currently.

Information about network security

For communications access between TIA Portal and CPU or between HMI (except for HMI access using "GET/PUT communication") and CPU, there are integrated security functions. These provide greater protection from manipulation and higher access protection. To protect against unauthorized network access to a CPU with standardized communications access such as "GET/PUT", "TSEND/TRCV", "Modbus", "FETCH/WRITE", you should also take suitable additional measures (e.g. cell protection concept).

Functions from the global library "Long Functions" with PLCSIM (S7-1500)

The compilation process links the functions of the S7-1500 CPU family to the CPU to protect them from manipulation. Function from the global library "Long Functions" that are used in the CPU and have such a link cannot be loaded to a simulation. However, it is possible to replace such elements with their originals from the global library. These are not linked to a CPU.

Loading inconsistent programs to an S7-1500 CPU (S7-1500)

In TIA Portal, it is not possible to download inconsistent programs to an S7-1500 CPU without a consistency check. During the loading process, all blocks of the program are implicitly checked and are compiled again in the event of inconsistencies. If, however, there are programs on your CPU which were loaded with earlier versions of STEP 7, these programs could demonstrate inconsistencies.

In this case, note the following:

If you load an inconsistent program from a device, you will not be able to load the program back to an S7-1500 CPU unchanged afterwards, because a consistency check always takes place during the loading process and existing inconsistencies are corrected.

Data exchange between standard and F-program when using Team Engineering

To ensure data consistency between standard and safety program, you should:

  • Do not exchange data via bit memory, use global data blocks instead.

  • Limit access between safety programs and standard user programs to two standard data blocks.


Notes on instructions

Contents "FileDelete: Delete file on the memory card" instruction
Notes on instructions

Contents

Information that could not be included in the online help and important information about product characteristics.

"FileDelete: Delete file on the memory card" instruction

Contrary to what is stated in the online help, the following applies to the values 8091 and 8094 of the "Status" parameter:

  • The value 8091 has the following meaning: Path does not exist or is invalid.

  • The value 8094 is not output.


Testing the user program

Testing the user program

This section contains information on the following topics:
  • Information on testing with the watch table
  • Information on testing with the force table
  • Information on testing with breakpoints


Information on testing with the watch table

Contents Multiple access to the same CPU (S7-300/400/1200) Loading data blocks during an active control job "Enable peripheral outputs" function Testing of programs that have been migrated from older STEP 7 versions. Testing of programs that have been upgraded Changed display formats in the watch table
Information on testing with the watch table

Contents

Information that could not be included in the online help and important information about product characteristics.

Multiple access to the same CPU (S7-300/400/1200)

Online access to a CPU (S7-300/400/1200) from a PG/PC is permitted only when a TIA Portal is open. Multiple access to the same CPU of this family is not permitted and can lead to errors.

Loading data blocks during an active control job

Loading changed data blocks during an active control job can result in unforeseen operating states. The control job continues to control the specified address, although the address assignment might have changed in the data block. Complete active control jobs before loading data blocks.

"Enable peripheral outputs" function

The function "Enable peripheral outputs" in not available for CPUs of the S7-1500 series in TIA Portal.

This function can only be executed with an S7-300, S7-400 or S7-1200 CPU in TIA Portal.

Testing of programs that have been migrated from older STEP 7 versions.

To monitor and test a program migrated from an older STEP 7 version, you first need to compile and download the program with the current STEP 7 version.

Testing of programs that have been upgraded

After upgrading the project to V16, a new checksum calculation is performed internally. In rare cases this can result in no values being displayed for variables in the watch table, because the checksum has changed even though the blocks are identical. No value is then displayed in the "Observed value" column; the glasses with the crossed out red circle are displayed instead. In this case, the project must be recompiled and reloaded before it can be observed and tested online with the watch table.

Changed display formats in the watch table

The number of display formats has been reduced so that display formats that are used but no longer supported are reset to the defaults during a project upgrade.

Example: Pointers can now only be shown in "Pointer" or "Hexadecimal" format.


Information on testing with the force table

Contents Forcing tags for direct I/O access (S7-300) Example Changed display formats in the force table
Information on testing with the force table

Contents

Information that could not be included in the online help and important information about product characteristics.

Forcing tags for direct I/O access (S7-300)

If you use direct I/O access for an S7-300 CPU in your user program, forcing this I/O address is not permitted.

Example

If I/O access to the address "IB0:P" takes place in the user program, it is not permitted to force the following I/O address areas: I0.0:P, IB0:P, IW0:P and ID0:P.

Changed display formats in the force table

The number of display formats has been reduced so that display formats that are used but no longer supported are reset to the defaults during a project upgrade.

Example: Pointers can now only be shown in "Pointer" or "Hexadecimal" format.


Information on testing with breakpoints

Contents Setting breakpoints in the standard user program at S7-1500 F-CPUs
Information on testing with breakpoints

Contents

Information that could not be included in the online help and important information about product characteristics.

Setting breakpoints in the standard user program at S7-1500 F-CPUs

If a breakpoint is enabled and is reached, the CPU immediately goes to STOP after HOLD. If you want to change back to RUN mode after the HOLD in order to continue testing your default user program, you can simulate this with S7-PLCSIM.

Further information about testing with breakpoints at F-CPUs is available in the "SIMATIC Safety – Configuring and Programming" manual.


Upgrading blocks

Contents Upgrading know-how-protected blocks (S7-1200/1500) Upgrading of GRAPH blocks (S7-300, S7-400, S7-1500) Compare offline/online Updating device specifications
Upgrading blocks

Contents

Information that could not be included in the online help and important information about product characteristics.

Upgrading know-how-protected blocks (S7-1200/1500)

When upgrading to the current version, know-how protected blocks that were set up with an older version of TIA Portal can be loaded in the controller without entering a password and are executable.

To open and edit these blocks in the current version, proceed as follows:

  • For blocks with know-how protection set up using version V13 SP1 or higher:

    • Remove the know-how protection in the current version, edit the block and reset the know-how protection.

  • For blocks with know-how protection set up using a version earlier than V13 SP1:

    • Remove the know-how protection in V13 SP1 and then update the block to the current version. Now edit the block and reset the know-how protection in the current version.

Upgrading of GRAPH blocks (S7-300, S7-400, S7-1500)

After upgrading a project to V16 from a version lower than V15, check whether repaired GRAPH blocks are listed in the log file and test whether these blocks are executable in your program.

If a project contains GRAPH blocks and is upgraded from V15.x to V16, the program blocks have to be compiled before they can be monitored.

Compare offline/online

Corrections to internal project data have been made in the current version in order to enhance data integrity. After installation, this enables individual blocks to be corrected automatically upon opening, which is why the offline/online comparison displays different checksums.

Updating device specifications

When upgrading your project, internal device specifications of the used employed CPUs are updated in certain cases.

The following message indicates that an update is being performed: "The device configuration of the PLCs in the project has been updated."

The update has no effect on the program running in the CPU.


Compatibility of PLC programs from older versions

Compatibility of PLC programs from older versions

This section contains information on the following topics:
  • Compatibility of PLC programs from versions prior to V16
  • Compatibility of PLC programs from versions prior to V15.1
  • Compatibility of PLC programs from versions prior to V15
  • Compatibility of PLC programs from versions prior to V14 SP1
  • Compatibility of PLC programs from versions prior to V14
  • Compatibility of PLC programs from versions prior to V13 SP1


Compatibility of PLC programs from versions prior to V16

Contents Compatibility Checksum inconsistency Software units Syntax check for instances (LAD, FBD, STL, GRAPH) Instructions "UPPER_BOUND" and "LOWER BOUND" (LAD, S7-1200/S7-1500) Instruction "S_CONV" (LAD) Initialization of STRUCT data type when importing external source files (SCL) AT declaration "MOVE" instruction "MOVE" instruction (STL) Instructions "SCATTER_BLK" and "GATHER_BLK" (SCL) Non-typed constants (SCL) Addressing ARRAYs via variable index and I/O access (S7-1200) Block size when using ARRAYs in structures Size of GRAPH blocks Assignment of non-typed constants (SCL)
Compatibility of PLC programs from versions prior to V16

Contents

Information that could not be included in the online help and important information about product characteristics.

Compatibility

In principle, you can continue to use in V16 all PLC programs that were created with older versions of TIA Portal. However, because improvements were made to the compiler and errors corrected there in V16, it can occur in rare cases that the program reacts differently after the upgrade or that you have to adjust the program code manually. These cases are described in detail below.

Checksum inconsistency

After upgrading a project to V16, online/offline differences might be indicated although the online and offline programs are identical. These differences are due to optimization of the calculation of checksums in V16. But the blocks are still compatible in most cases.

In some rare cases, however, you might have to recompile and download the project again due to the changes in the checksum calculation before you can monitor and test the project online.

Software units

As of V16, the following rules apply for the name of a software unit:

  • Permissible characters are all alphanumeric characters and the underscore.

  • The maximum number of characters is 125.

  • The name of a software unit must be unique for the entire CPU and no block with the same name must exist in the CPU.

If the software unit in your program does not conform to these rules, a syntax error is displayed after the upgrade. In this case, change the property of the software unit and recompile the program.

Syntax check for instances (LAD, FBD, STL, GRAPH)

A more thorough check is now performed when calling a function block to determine whether the specified instance data block is of the type of the called FB. In addition to the block number and the block structure, the block name is now also being checked.

A syntax error is output after the upgrade in case of inconsistencies. In this case, check the type of the instance data block in the "General" section of the block properties. If the type does not match the called FB, you must change the block call and specify a matching instance.

Instructions "UPPER_BOUND" and "LOWER BOUND" (LAD, S7-1200/S7-1500)

The enable input "EN" of the two instructions "UPPER_BOUND" and "LOWER BOUND" is now evaluated correctly. If the input "EN" has the signal state "0", the instruction is not executed and the enable output "ENO" has the signal state "0". When you use one of the two instructions, check whether your program sequence is still the same after the upgrade.

Instruction "S_CONV" (LAD)

The enable input "EN" of the "S_CONV" instruction was not evaluated in older TIA Portal versions during conversion from (W)Char to (W)String when no parameter was interconnected at the enable output "ENO". This behavior has been corrected. When you use "S_CONV", check whether your program sequence is still the same after the upgrade.

Initialization of STRUCT data type when importing external source files (SCL)

The initialization rules for STRUCT have been made uniform. The initialization lists are now always evaluated according to the same rules, regardless of whether you are working in the tabular form or in the textual block interface.

If you use a different syntax in an initialization list and initialize some elements by specifying the element name and others only by specifying the value, for example, check your program after importing it into TIA Portal V16.

The following example shows how the structure elements in V16 are evaluated both in tabular form and in the textual block interface:

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);

//The structure elements are initialized as follows:

//mem_1 := 1;

//mem_3 := 33;

//mem_4 := 2;

//mem_5 := 3;

AT declaration

In rare cases, incorrect values were written to block parameters that immediately followed an AT declaration in the interface. This behavior has been corrected.

It is no longer possible to overlay block parameters of the data types BOOL, BYTE, SINT, USINT or CHAR with tags of the data types STRUCT and UDT. Overlays with ARRAY type tags are only possible as long as the array size does not exceed the data size of the overlaid type.

If you use AT declarations, check your program after the upgrade.

"MOVE" instruction

With the "MOVE" instruction you can only copy all the tags of a data block into another data block ("DA a" := "DB b") if both blocks have the same structure, i.e. the number, the data type and the declaration sequence of the declared tags are identical. In addition, both data blocks must have the same storage format (optimized or non-optimized).

If both blocks are available in an optimized storage format, all tags of both blocks must be either retentive or non-retentive.

"MOVE" instruction (STL)

As of TIA Portal V16, it is no longer possible in STL to supply the OUT output of a MOVE instruction with a tag of the VARIANT data type from the sections InOut or Out of the block interface.

Instructions "SCATTER_BLK" and "GATHER_BLK" (SCL)

As of V16 the permissible data types have been restricted: When using structures (STRUCT or PLC data type) as parameters, these must only contain tags of the data type BOOL.

Non-typed constants (SCL)

The semantics check for non-typed constants has been adapted to the other programming languages: If a non-typed constant is not compatible with the assigned operand, a compilation error is always reported if the IEC check is activated.

Addressing ARRAYs via variable index and I/O access (S7-1200)

In a CPU of the S7-1200 series, addressing ARRAYs via a variable index in combination with the I/O access identifier ":P" is no longer possible.

Example of an invalid ARRAY addressing:

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

Examples of permissible ARRAY addressing with I/O access:

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

#array[0, 1, 2]:P

Examples of permissible ARRAY addressing with variable index:

#array[0, #myIndexTag, 2]

Block size when using ARRAYs in structures

When using structures (STRUCT) that contain more than one ARRAY element, the following error can occur:

If multiple ARRAY accesses were outside the valid range, the CPU did not switch to STOP but an ARRAY element was accessed.

This behavior has been corrected in V16: The CPU switches to STOP in this case or runs a local or global troubleshooting if it is programmed.

This correction allows for the respective blocks to be larger.

Size of GRAPH blocks

Note that all GRAPH blocks will be about 90 bytes larger due to the correction described above.

Assignment of non-typed constants (SCL)

An error message is generated for assignments of non-typed constants to tags of the "Real" type when the IEC Check is enabled, and when the constant is also located within the value range of an LReal and outside the value range of a Real.


Compatibility of PLC programs from versions prior to V15.1

Contents Compatibility Processing sequence of function calls in SCL (S7-1200/S7-1500) Comparators (SCL S7-1200 >= 4.2 and S7-1500 >= 2.0) Importing IEC timers (S7-1200/S7-1500) Replacing invalid Unicode characters during upgrade Instructions "SCATTER" / "SCATTER_BLK" and "GATHER" / "GATHER_BLK" (SIMATIC S7-1200/1500) Instructions "BLKMOV" / "UBLKMOV" and "FILL" / "UFILL" "RUNTIME" instruction (SCL/STL S7-1200/S7-1500)
Compatibility of PLC programs from versions prior to V15.1

Contents

Information that could not be included in the online help and important information about product characteristics.

Compatibility

Basically, you can continue to use all PLC programs that were created with older versions of TIA Portal in V15.1. However, because improvements were made to the compiler and errors corrected there in V15.1, in rare cases the program may react differently after the upgrade or you may have to adapt the program code manually. These cases are described in detail below.

Processing sequence of function calls in SCL (S7-1200/S7-1500)

In older versions of the TIA Portal, the processing sequence of assignments containing expressions or function calls was not always clear. Processing was not carried out consistently from right to left; rather, in certain cases, parts of the expression on the left side were evaluated first.

This behavior was corrected in V15.1 so that the right side of the assignment is always calculated first and then the left side is determined.

Example:

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

In earlier versions, the "FC1" was run here first in order to determine an ARRAY element. Then, #x + #y was calculated.

As of V15.1, the program is now correctly processed from right to left: First, #x + #y is calculated and then "FC1" is run.

This correction can have the result that your program behaves differently after upgrade, e.g. when the tags #x or #y are set in "FC1". Therefore, please check your program after upgrading.

Comparators (SCL S7-1200 >= 4.2 and S7-1500 >= 2.0)

When comparing two instance data blocks via comparison instructions in SCL, not the structure of the blocks but only the block numbers are compared. As of V15.1, an error message during compiling notifies you that this instruction may not return the desired result (FALSE is generally returned because the numbers of the blocks are different).

Example:

The result of the following comparison instruction is FALSE even if the structure of the two blocks is identical.

IF "MyDBofFB" = "MyDBofSameFB" THEN …

Importing IEC timers (S7-1200/S7-1500)

IEC timers contain read-only parameters, e.g. ET (current time value). In older versions of the TIA Portal, the start values of these read-only parameters were overwritten in some cases when external source files were imported. This behavior was corrected with V15.1: Start values for read-only parameters are now ignored when source files are imported. Instead, the default values of the data type are used. Therefore, please check your program after an import.

Replacing invalid Unicode characters during upgrade

Invalid Unicode characters in your program are corrected when upgrading to V15.1. For example, invalid characters in string constants are replaced with the escape sequences defined by IEC. This can change the checksum of the program and indicate differences between the online and offline program. Compile your program and reload it in this case.

Instructions "SCATTER" / "SCATTER_BLK" and "GATHER" / "GATHER_BLK" (SIMATIC S7-1200/1500)

You can use the "SCATTER" / "SCATTER_BLK" instructions to parse the bit sequence into individual bits. You can use the "GATHER" / "GATHER_BLK" instructions to combine individual bits into a bit string.

The values with which the instructions work must not be in the I/O area or in the DB of a technology object, since data consistency cannot be guaranteed in these areas.

As of V15.1, this rule undergoes a more precise syntax check. If you have the above-mentioned instructions with invalid input parameters in your program, an error is now reported during compiling.

As a remedy, you can first copy the tags to a temporary memory area and transfer them from there to "SCATTER" or "GATHER" instructions.

Instructions "BLKMOV" / "UBLKMOV" and "FILL" / "UFILL"

Use the "BLKMOV" / "UBLKMOV" and "FILL" / "UFILL" instructions to copy the contents of a memory area (source range) to another memory space (target range). If these instructions access a memory area that does not exist, a programming error is output. In previous versions, in rare cases an error code was generated at the "RET_VAL" parameter instead of a programming error. This behavior has been corrected for S7-1500 CPUs as of firmware version 2.6.

"RUNTIME" instruction (SCL/STL S7-1200/S7-1500)

The "Mem" parameter of the "RUNTIME" instruction has the data type "LREAL" and can only be used with a tag of this data type. Implicit conversion is not possible here. In V15.1, this rule undergoes a more precise syntax check. If you have provided the "Mem" parameter of the "RUNTIME" instruction with an invalid data type in your program, an error is now reported during compiling.


Compatibility of PLC programs from versions prior to V15

Contents Compatibility S7-GRAPH: Implicit conversions "Hardware data type <> INT" Subcategories in ProDiag (S7-1500) Instructions "(U)MOVE_BLK" and "(U)FILL_BLK" (S7-1500) Program loops in SCL (S7-1200/S7-1500) Return values for functions in SCL LDT_TO_DATE in SCL (S7-1500) Comparison of an ARRAY element with a variable of the data type "VARIANT" in SCL (S7-1200/1500) Instruction "GetSymbolPath" (S7-1200/S7-1500) Instruction "GetInstancePath" (S7-1200/S7-1500) Additions and subtractions with DTL/LDT/DT Runtime information (S7-1200/S7-1500) ARRAYs of multi-instances Block parameters of the data type "VARIANT" (S7-1200/1500) Importing external sources Size of ARRAY of BOOL/BYTE/CHAR (S7-1500)
Compatibility of PLC programs from versions prior to V15

Contents

Information that could not be included in the online help and important information about product characteristics.

Compatibility

In principle, you can continue to use in V15 all PLC programs that were created with older versions of TIA Portal. However, because improvements were made to the compiler and errors corrected there in V15, it can occur in rare cases that the program reacts differently after the upgrade or that you have to adjust the program code manually. These cases are described in detail below.

S7-GRAPH: Implicit conversions "Hardware data type <> INT"

As of TIA Portal V15 it is no longer possible to program implicit conversions of hardware data types (for example INT -> DB_ANY or DB_ANY -> INT), as is already the case in LAD, FBD, STL and SCL.

Please use either the UINT data type or an explicit conversion instead.

Subcategories in ProDiag (S7-1500)

From TIA Portal V14 SP1 update 2 the individual subcategories for ProDiag are no longer added manually, but activated or deactivated in the "Activation" column.

This results in the fact that following the upgrade of a project <V14 SP1 Update 2, which uses already existing subcategories in at least one monitoring, the "Repair" button must first be selected before you can create new subcategories.

Instructions "(U)MOVE_BLK" and "(U)FILL_BLK" (S7-1500)

The instructions "(U)MOVE_BLK" and "(U)FILL_BLK" only accessed the process image in TIA Portal <= V15 when directly accessing the I/O.

This behavior has been corrected and now causes a runtime error because direct I/O access is not permitted for BLK instructions.

Program loops in SCL (S7-1200/S7-1500)

In S7-1200/S7-1500 it is not possible to change the index of a program loop from within the loop with SCL.

The following program example would therefore be invalid:

FOR #i := 1 TO 10 DO

#i := #i + 1;

END_FOR;

As of TIA Portal V15, a more exact syntax check is conducted in this regard during compilation and a compilation error is output.

Return values for functions in SCL

The behavior for functions whose return values have a structured data type has been adjusted. Structured data types are e.g. PLC data types or STRING.

Regardless of whether or not the ENO output uses the function, until now, it could happen that a temporary working copy of the function value was created although no working copy was created by the same call without ENO. The assignment of these temporary copies to the interconnected tag is made when the function is exited.

This behavior was changed as follows:

Using the output parameter ENO now no longer has any influence on whether the return value is transferred with a copy or with a reference. If the return value has a structured data type, it is generally transferred as a reference. The transfer rules are described in detail in the section "Transfer parameter as copy or as pointer".

LDT_TO_DATE in SCL (S7-1500)

The reaction of LDT_TO_DATE to a conversion error in runtime was corrected.

Comparison of an ARRAY element with a variable of the data type "VARIANT" in SCL (S7-1200/1500)

In the past the comparison of a variably indexed ARRAY element with a VARIANT was not carried out correctly in some cases. Instead of the ARRAY element the complete ARRAY was used for the comparison.

This behavior has been corrected in V15: The indexed ARRAY element is now evaluated for the comparison. If you use such comparisons in your program, you have to check the respective block after upgrading.

Example:

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

In the past "my_variant" was compared with "my_Array". As of V15 the comparison is carried out correctly and "my_variant" is compared with Element #1 of "my_Array".

Instruction "GetSymbolPath" (S7-1200/S7-1500)

If an FB interconnects a static variable to a formal parameter of a call and a nested block uses "GetSymbolPath" V1.0 or V1.1 for the parameter, compiling this block results in an additional display of the DB name before the name of the static variable, however, without a period as a delimiter and without replacement of the #. Version V1.2 of "GetSymbolPath" shows the path correctly with a period as a delimiter and without #.

If you use the "GetSymbolPath" instruction in your program, you should use the "GetSymbolPath" V1.2 instruction after upgrading to >=V15.

Instruction "GetInstancePath" (S7-1200/S7-1500)

If an FB interconnects a static variable to a formal parameter of a call and a nested block uses "GetInstancePath", compiling this block results in an additional display of the DB name before the name of the static variable.

Additions and subtractions with DTL/LDT/DT

In additions and subtractions with the data types DTL/LDT/DT, non-typed constants can no longer be used. A syntax error is signaled.

The following arithmetic operations, for example, are no longer possible:

#myDTL + 1

#myLDT + 1

#myDate_And_Time +1

Use constants of the data type "Time" or "LTime" instead

#myDTL + TIME#1d

#myLDT + TIME#1ms

#myDate_And_Time + LTIME#1ns

Runtime information (S7-1200/S7-1500)

The extended instructions "GetInstanceName", "GetInstancePath", "GetSymbolName", "GetSymbolPath" and "GetBlockName" now behave in the same way in all programming languages: If the character string to be output does not fit in the output parameter on account of size restrictions, the name is truncated and the character "..." is displayed at the end of the character string.

ARRAYs of multi-instances

In the past ARRAYs of multi-instances could not be addressed correctly when variables were used to address the index of a multi-instance that was in turn instantiated in a further multi-instance, that in turn was an element of an ARRAY of multi-instance.

Example:

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

This behavior has been corrected in V15:

If you have used such accesses in your program, you may have to check the affected block after upgrading and possibly recompile it.

Block parameters of the data type "VARIANT" (S7-1200/1500)

As is already the case in LAD, FBD, STL and GRAPH, it is now no longer possible either in SCL to assign and instance DB as the actual parameter to a formal parameter of the data type "VARIANT".

An exception is formed by instance DBs that are derived from a PLC data type or a system data type. You assign these to a block parameter of the data type "VARIANT" in all programming languages.

It is no longer possible to assign a write-protected tag for a block parameter of the data type "VARIANT" as an actual parameter.

If possible, remove the write protection of the variable. If this is not possible, check how you can change your program to prevent access to the write-protected variable. If you only want to have read access, for example, you can copy the content of the write-protected variable in the calling block into a different variable without write protection. Subsequently you can hand over this variable as an actual parameter.

Importing external sources

When importing an external source in which an instruction is used as a multi- or single-instance, the entire program was changed to the instruction version used in the source in the past. As of Version V15 of TIA Portal this behavior has been corrected: The instructions already contained in the project are no longer changed over, but rather retain the instruction version configured by you.

If the project contains different versions of an instruction after the import, a syntax error is reported. In this case compile the complete project again. To do so, select the "Program blocks" folder in the project tree and select the command "Compile > Software (only changes)" or "Compile > Software (compile all)" from the shortcut menu.

Size of ARRAY of BOOL/BYTE/CHAR (S7-1500)

In the past ARRAYS of the data types BOOL, BYTE or CHAR had different sizes depending on whether they were used within a structure or not. As of V15 the size of the ARRAYs has been standardized. If you access absolutely in your program, for example by using an ANY pointer to an ARRAY of the type of BOOL, BYTE or CHAR, you have to check the program after upgrading.


Compatibility of PLC programs from versions prior to V14 SP1

Contents Compatibility Total size of the associated values for program messages Program loops in SCL (S7-1200/S7-1500) CASE statements in SCL ARRAYs of multi-instances Parameter type "Block_DB" for entry of the instance DB I/O accesses as input parameters of blocks (S7-1500 as of FW V2.1)
Compatibility of PLC programs from versions prior to V14 SP1

Contents

Information that could not be included in the online help and important information about product characteristics.

Compatibility

In V14 SP1 you can generally continue to use all programs that were created with older versions of TIA Portal. However, because improvements were made to the compiler and errors corrected there in V14 SP1, it can occur in rare cases that the program reacts differently after the upgrade or that you have to adjust the program code manually. These cases are described in detail below.

In addition, you have the option of editing the project in compatibility mode. You can find additional information on the compatibility under "Compatibility of projects".

Total size of the associated values for program messages

The alarm procedure of the S7-1500 CPU allows a maximum of 512 bytes for associated values (SD parameters) of the instruction "Program_Alarm".

You will only see a warning regarding this number in TIA Portal <= V14 during compilation. There is a stricter check as of TIA Portal V14 SP1. If this number is exceeded, an error is output during compilation to rule out error scenarios during runtime. This check from now on no longer refers to the actual size of the SD parameters at the time the instruction "Program_Alarm" is called, but to the maximum possible size of the SD parameters. This means you must decide beforehand with what length you declare the character string tags you are transferring, as these take up a large number of bytes.

This must be taken into account in the migration of projects from version <= V14 to version V14 SP1 Update 1.

Program loops in SCL (S7-1200/S7-1500)

In S7-1200/S7-1500 it is not possible to change the index of a program loop from within the loop with SCL.

The following program example would therefore be invalid:

FOR #i := 1 TO 10 DO

#i := #i + 1;

END_FOR;

As of TIA Portal V14.0.1, a more exact syntax check is conducted in this regard during compilation and a compilation error is output.

CASE statements in SCL

Labels without associated "GOTO" instruction are no longer permitted in a CASE statement. A syntax error is signaled.

ARRAYs of multi-instances

In some cases ARRAYs of multi-instances could not be correctly be addressed in V14 when individual tags within a multi-instance had the retentivity setting "Set in IDB". This behavior has been corrected in V14 SP1.

If you have used such tags in your program, you may have to recompile the affected block after upgrading.

Parameter type "Block_DB" for entry of the instance DB

In LAD and FBD, you cannot enter the instance DB of an instruction using an input of the data type "BLOCK_DB". This behavior has been made uniform for all CPU families and all block types.

As of TIA Portal V14 SP1, a syntax error is output.

If you have transferred instance DBs in your program with the help of the "Block_DB" data type, you change your program. Instead use a parameter instance to transfer the instance during runtime.

I/O accesses as input parameters of blocks (S7-1500 as of FW V2.1)

In the event of an I/O access error, direct I/O accesses which are interconnected as input parameters to blocks no longer result in the block being run through. Instead of this, the system uses the replacement value of the signal in the block.

For CPUs S7-1500 with FW smaller than V2.1 and all CPUs S7-1200, system behavior is unchanged:

The block is not called as a result of the I/O access error. Program execution is continued after the block call. If OB 122 exists or local error handling is enabled, these are executed.


Compatibility of PLC programs from versions prior to V14

Contents Compatibility STL: Instructions "SRW", "SLW" and "SSI" (S7-300, S7-400, S7-1500) Representation of the BCD format Instructions "SET_BF: Set bit field" and "RESET_BF: Reset bit array" (S7-1200, S7-1500) Instructions "SCALE: Scale" and "UNSCALE: Unscale" (S7-1500) Unused bits of PLC data types (UDT) with firmware >= V1.8.1 Explicit data type conversion in SCL (S7-1200) with firmware >= V4.2 SCL: EN/ENO mechanism with block parameters of data type (W)STRING (S7-1200/1500) Forwarding STRING parameters between optimized blocks and standard blocks (S7-1200/1500) Length declaration for constants of the "STRING" or "WSTRING" data type Changing the base data type for HW_ANY from WORD to UINT Length of block comments Syntax check of the instructions " SR: Set/reset flip-flop " and " RS: Reset/set flip-flop " Any pointer: Access to optimized data "(L)REAL" data type "ST" parameter for IEC timers Associated values for messages (S7-1500) Implicit data type conversion for block parameters of the "DB_ANY" data type Interface of organization blocks with standard access Comparing tags of WORD data type to tags of the S5TIME data type (S7-1500)
Compatibility of PLC programs from versions prior to V14

Contents

Information that could not be included in the online help and important information about product characteristics.

Compatibility

In principle, you can continue to use in V14 all PLC programs that were created with older versions of TIA Portal. However, because improvements were made to the compiler and errors corrected there in V14, it can occur in rare cases that the program reacts differently after the upgrade or that you have to adjust the program code manually. These cases are described in detail below.

STL: Instructions "SRW", "SLW" and "SSI" (S7-300, S7-400, S7-1500)

The permitted value range of the offset number of these instructions has changed in TIA Portal V14 from TIA Portal V13 SP1.

In version V13 SP1, it is possible to specify a number in the range 0 to 31 as an offset number on a CPU of the S7-1200/1500 series and a number in the range 0 to 15 as an offset number on a CPU of the S7-300/400 series.

As of Version V14, the value ranges for all CPU series (S7-300/400/1200/1500) was set to the uniform value from 0 to 15.

Representation of the BCD format

The representation of the BCD format has changed in regard to the sign from TIA Portal V13 SP1 to TIA Portal V14.

The values in BCD format are show without signs in version V13 SP1.

As of version V14, the values in BCD format are show with sign. This can lead to an altered representation of the values in BCD format.

Integers (decimal system) | Hexadecimal numbers | Representation in V13 SP1 | Representation in 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

Instructions "SET_BF: Set bit field" and "RESET_BF: Reset bit array" (S7-1200, S7-1500)

The response of the instruction in regard to the structures has changed from TIA Portal V13 SP1 to TIA Portal V14.

In version V13 SP1, the number of bits that set or reset are always indicated at the input. This also applies, for example, if you have specified a structure of data type of the STRUCT or ARRAY PLC data type. If you want, for example, you want set or reset 10 bits and the structure contains only 5 bits, then the following 5 bits within the address sequence is also set or reset.

With structures of the type PLC data type, as of version V14 STRUCT or ARRAY the number of bits contained in the structure represents the maximum number of bits that can be reset: If you specify the value "20", for example, and the structure only contains 10 bits, only these 10 bits are set. If you specify the value "5", for example, and the structure contains 10 bits, then exactly 5 bits are set.

Instructions "SCALE: Scale" and "UNSCALE: Unscale" (S7-1500)

The response of the instruction has changed from TIA Portal V13 SP1 to TIA Portal V14 in regard to specifying the limits (LO_LIM> HI_LIM).

In version V13 SP1, you received an error message when the low limit was greater than the high limit.

As of version V14, this value is allowed and the result is inversely proportional to the input value.

On CPUs of the S7-300/400 series, the instruction has always scaled the result inversely proportional to the input value.

Unused bits of PLC data types (UDT) with firmware >= V1.8.1

The unused bits of PLC data types in standard memory areas are occupied or overwritten, for example, for a PLC data type that contains 4 bits.

With firmware versions < V1.8.1, you could not use the unused bits of a PLC data type elsewhere.

With firmware version >= V1.8.1, all bits are occupied or overwritten even if only 4 bits are used.

Note

Address assignments

Ensure you do not assign the same absolute address twice to different symbolic address assignments.

Explicit data type conversion in SCL (S7-1200) with firmware >= V4.2

With firmware versions < V4.2, the string was transferred aligned to the right and filled with leading spaces during explicit data type conversion of SINT/INT/DINT/REAL_TO_STRING/WSTRING in SCL.

Example: REAL_TO_WSTRING(12) = ' 1.200000E+1'

As of TIA Portal V13, the string is displayed with a leading sign during explicit data type conversion of SINT/INT/DINT/REAL_TO_STRING/WSTRING in SCL and transferred aligned to the left.

Example: REAL_TO_WSTRING(12) = '+1.200000E+1'

SCL: EN/ENO mechanism with block parameters of data type (W)STRING (S7-1200/1500)

As of TIA Portal V14, it is checked whether block parameters of data type (W)STRING are truncated when parameters are transferred during runtime. This can occur if formal and actual parameters have different declared lengths. If the declared length of the target parameter during runtime is insufficient to accept the (W)STRING, the (W)STRING is truncated and the enable output ENO is set to "FALSE".

If you evaluate the enable output ENO in your program, the semantics of your program may change.

Forwarding STRING parameters between optimized blocks and standard blocks (S7-1200/1500)

Prior to TIA Portal V14, no length information about STRINGs was transferred when parameters were transferred between optimized and non-optimized blocks. This meant that access errors not detected by the ENO mechanism could occur during the further processing of the STRING. The enable output ENO remained at TRUE despite an access error.

As of TIA Portal V14, the STRING length information is transferred and access errors are monitored by the ENO mechanism. If you evaluate the enable output ENO in your program, the semantics of your program may change.

Length declaration for constants of the "STRING" or "WSTRING" data type

Length declarations are no longer permitted for local and global (W)STRING constants. If your program includes length declarations, for example, "MyStringConst [7]", these are automatically removed during the upgrade. This change has no semantic effect on your program, however.

Changing the base data type for HW_ANY from WORD to UINT

The hardware data type "HW_ANY" is used to identify any hardware component, such as a module. In V14, the base data type of "HW_ANY" was changed from WORD to UINT. After the conversion to V14, compiling errors can therefore occur if you have assigned an explicit WORD constant (such as W#16#1) or a tag of data type WORD at a parameter of data type "HW_ANY".

In this case, change the notation of the constant (e.g. to 16#1) or change the data type of the tag to UINT.

Length of block comments

As of TIA Portal V14, the block comments must not exceed a length of 32767 Unicode characters.

Syntax check of the instructions " SR: Set/reset flip-flop " and " RS: Reset/set flip-flop "

Inputs, outputs, bit memories as well as static or local data can be used as operands at the "S" input. Use of constants is not permitted. So far, the use of the constants "0" and "1" was not rejected by the syntax check. As of TIA Portal V14 the syntax check was improved so that the use of "0" or "1" is now rejected at the "S" input. You may now receive an error message during the compiling of a program that has been compiled without errors up to this point. Change your program in this case and use a permitted operand.

Any pointer: Access to optimized data

For a CPU of the S7-1500 series, the ANY pointer can also only point to memory areas with "Standard" access mode. Access to optimized data is not permitted with an ANY pointer.

A more detailed syntax check of ANY pointers is performed as of TIA Portal V14. Access to optimized data is now rejected. You may now receive an error message during the compiling of a program that has been compiled without errors up to this point.

"(L)REAL" data type

With 64-bit Windows versions, the LREAL data type is sometimes evaluated differently than with the previous 32-bit versions of Windows. A difference may occur when rounding and (L) real values of constants in the least significant bit.

The potential difference is in the last digit of the mantissa and in most cases therefore only has a slight effect on the accuracy.

If you evaluate the last digit of the mantissa, the semantics of your STEP 7 program may change after the conversion.

"ST" parameter for IEC timers

The "ST" parameter of an IEC timer is used internally and it is prohibited to write it. This why this parameter is no longer visible as of TIA Portal V14. If you have write access in your program to the "ST" parameter, an error message is generated during compiling after the upgrade.

If you exchange data with Inter Project Engineering and you have access to the "ST" parameter with HMI, you must first export the project and then re-import it into the proxy CPU. Only then does the "ST" parameter disappear in the HMI configuration.

Associated values for messages (S7-1500)

Projects created with an older version of the TIA Portal can contain embedded associated values with different structures in the different project languages. The associated values may have a different order or may be missing in a different language. When a project of this type is upgraded, the order of the associated values is harmonized. It is based on the reference language set in the original project. In this case, it is recommended to have the translated texts checked and corrected.

Implicit data type conversion for block parameters of the "DB_ANY" data type

When accessing a block parameter of the "DB_ANY" data type with the syntax DB_ANY.%DB(B|W|D), no implicit data type conversion was performed previously. The bit pattern of the source value was simply converted into the target data type. If the target data type was smaller than the source data type, an overflow occurred and the written value may have been wrong or inaccurate. The enable output ENO is not set to "FALSE" when accuracy is lost or runtime errors occur.

As of V14, conversion is performed according to the rules of implicit data type conversion when parameters are passed with the syntax DB_ANY.%DB(B|W|D). Note that after the upgrade a different value may be written and the semantics of your program may change. In addition, the enable output ENO is set to "FALSE" when a runtime error occurs.

Interface of organization blocks with standard access

The interface of organization blocks with standard access must have a minimum size of 20 bytes. In older versions of TIA Portal, only the interface of OB1 was checked with regard to the minimum size during the compilation run. As of V14, interfaces of all organization blocks are checked. You may now receive an error message during the compiling of a program that has been compiled without errors up to this point.

Comparing tags of WORD data type to tags of the S5TIME data type (S7-1500)

As of TIA Portal V14, both variables are converted to the TIME data type when comparing a variable of WORD data type to a variable of S5TIME data type. The WORD tag is interpreted as an S5TIME value. If one of the variables cannot be converted, the comparison is not performed and the result is FALSE. After successful conversion, the comparison is performed based on the selected comparison expression.


Compatibility of PLC programs from versions prior to V13 SP1

Content Compatibility Unused bits of PLC data types (UDT) with firmware >= V1.8.1 Explicit data type conversion in SCL (S7-1200) with firmware >= V4.2 Reading an invalid peripheral input Instruction "S_CONV: Convert character string" Instruction "SET: Set bit array" (S7-300/S7-400) Instruction "MUX: Multiplex" (SCL) Instruction "DEMUX: Demultiplex" (SCL) Instruction "MOVE: Move value" (STL) (S7-1500) Instruction "Program_Alarm: Generate program alarm with associated values" (S7-1500) Instructions "READ_DBL: Read from data block in the load memory" and "WRIT_DBL: Write to data block in the load memory" "READ_DBL instructions: Read from data block in the load memory" and "WRIT_DBL: Write to data block in the load memory" (SCL) Function values (Return) Comparing the hardware data types HW_IO and HW_DEVICE Implicit conversion of floating-point numbers to DWORD (GRAPH) (S7-1500) Assigning a value to a LTIME constant (S7-1500) Indirect indexing of ARRAY components of data type bit string in SCL (S7-1200/S7-1500) EN/ENO mechanism for STRING conversion (S7-1200/S7-1500) Overflow of the local data stack (S7-300/S7-400)
Compatibility of PLC programs from versions prior to V13 SP1

Content

Information that could not be included in the online help and important information about product characteristics.

Compatibility

You can continue to use in V13 SP1 all programs that were created with TIA Portal V12 SP1 or V13. However, because improvements were made to the compiler and errors corrected there (compilation of the program code) in V13 SP1, it can occur in rare cases that the program reacts differently after the upgrade or that you have to adjust the program code manually. These cases are described in detail below.

Unused bits of PLC data types (UDT) with firmware >= V1.8.1

The unused bits of PLC data types in standard memory areas are occupied or overwritten, for example, for a PLC data type that contains 4 bits.

With firmware versions < V1.8.1, you could not use the unused bits of a PLC data type elsewhere.

With firmware version >= V1.8.1, all bits are occupied or overwritten even if only 4 bits are used.

Note

Address assignments

Ensure you do not assign the same absolute address twice to different symbolic address assignments.

Explicit data type conversion in SCL (S7-1200) with firmware >= V4.2

With firmware versions < V4.2, the string was transferred aligned to the right and filled with leading spaces during explicit data type conversion of SINT/INT/DINT/REAL_TO_STRING/WSTRING in SCL.

Example: REAL_TO_WSTRING(12) = ' 1.200000E+1'

As of TIA Portal V13, the string is displayed with a leading sign during explicit data type conversion of SINT/INT/DINT/REAL_TO_STRING/WSTRING in SCL and transferred aligned to the left.

Example: REAL_TO_WSTRING(12) = '+1.200000E+1'

Reading an invalid peripheral input

In the TIA Portal as of version 12, the error code 16#2942 for the reading of an invalid peripheral input is only output if you have programmed the faulty access in such a way that this becomes effective, for example %MW10 := “InvalidWordAccess":P, and does not lie within an irrelevant sequence. For example, this would be #tmp := “InvalidWordAccess":P, if the tag #tmp is not used in the rest of the program block.

Instruction "S_CONV: Convert character string"

The EN/ENO mechanism behaves differently in TIA Portal V13 SP1 than in TIA Portal V13.

In version V13, the ENO enable output returns the signal state "0" in case of error, even if you have deactivated the ENO enable output. If you have switched an additional instruction to the ENO enable output, this is then not executed.

In version V13 SP1, the ENO enable output returns the signal state "1" in case of error, if you have deactivated the ENO enable output. If you have switched an additional instruction to the ENO enable output, this is then executed as expected.

Instruction "SET: Set bit array" (S7-300/S7-400)

In the TIA Portal, you can also interconnect an element of a data block at the N parameter of the SET instruction.

Instruction "MUX: Multiplex" (SCL)

Up to and including TIA Portal V13, the value of the tag at the input parameter was output unchanged as a function value, even if the K parameter had a negative integer. This behavior has changed in TIA Portal V13 SP1.

In TIA Portal V13 SP1, if you use a tag with a valid data type at the input parameters of the MUX instruction and the K parameter is a negative integer, the value of the tag is changed. You can find the valid data types in the description of the MUX instruction in the information system.

Instruction "DEMUX: Demultiplex" (SCL)

Up to and including TIA Portal V13, no value was output at the OUTELSE output parameter if the value of the K parameter was < 0. In contrast, the value of the IN input parameter was output at the OUTELSE output parameter if the value of the K parameter was > available outputs. This behavior has changed in TIA Portal V13 SP1.

In the TIA Portal V13 SP1, if you specify at the K parameter a value that is outside the available outputs (K < 0 or K > available outputs), then the value of the IN input parameter is output at the OUTELSE output parameter.

Instruction "MOVE: Move value" (STL) (S7-1500)

As of the TIA Portal V13 SP1, a stricter syntax rule applies to the "MOVE" instruction in STL:

Up to and including TIA Portal V13. it was possible to specify non-typed constants, such as "0" at the input parameter IN.

If you want to copy, for example, the value "0" in the TIA Portal V13 SP1, you need to specify a typed constant according to the data type of the output parameter (e.g. INT#0, DINT#0, etc.).

Instruction "Program_Alarm: Generate program alarm with associated values" (S7-1500)

As of TIA Portal V13 SP1 the data type INT is no longer permitted for use for the associated values or an index tag of a text list. Use the UINT data type instead.

Instructions "READ_DBL: Read from data block in the load memory" and "WRIT_DBL: Write to data block in the load memory"

TIA Portal V13 SP1 reports a compilation error if you use "READ_DBL" V1.0 or "WRIT_DBL" V1.0 and access a data block with the attribute "Only store in load memory" using the parameter DSTBLK.

Instead, use version 1.2 of both instructions.

"READ_DBL instructions: Read from data block in the load memory" and "WRIT_DBL: Write to data block in the load memory" (SCL)

As of TIA Portal V13 SP1, the "READ_DBL" and "WRIT_DBL" instruction in SCL are subject to the same strict syntax rules as all other programming languages:

In TIA Portal V13, it was possible to specify "standard" data blocks at the SRCBLK and DSTBLK parameters that contained tags with different data types.

As of TIA Portal V13 SP1, the individual tags contained must have the same data type for both "standard" as well as for "optimized" data blocks; otherwise, compiling errors are reported.

Function values (Return)

As of TIA Portal V13 SP1, more stringent syntax rules apply to function call:

It is checked that the function value (Return) is written in any case, even if multiple possible program paths can be run through in the function. Therefore, there is no longer any risk that the function values will accidentally not be written during runtime.

However, you may possibly receive syntax errors in functions during compiling, which it was still possible to compile without errors in V13. In such cases change the program code so that the function valve is written in all possible program paths.

Example:

SCL Copies the following program code to clipboard.

IF #MyIn1 = #MyIn2 THEN

#Block_3 := #MyIn1 + 1;

END_IF;

In this example, the function value of "Block_3" is not written if the condition of the IF instruction is not fulfilled. The function value then contains an undefined value.

SCL Copies the following program code to clipboard.

#Block_3 := #MyIn1;

IF #MyIn1 = #MyIn2 THEN

#Block_3 := #MyIn1 + 1;

END_IF;

In this example the function valve of "Block_3" is definitely written in the program, since "MyIn1" is set as default before the IF loop is completed.

Comparing the hardware data types HW_IO and HW_DEVICE

As of TIA Portal V13 SP1, there is a stricter syntax rule that is valid for the comparison of the data types HW_IO and HW_DEVICE:

Up until and including TIA Portal V13 it was possible to compare the data types HW_IO and HW_DEVICE directly with each other.

If you want to compare these data types in TIA Portal V13 SP1 you have to first create a tag of the data type HW_ANY in the section "Temp" for the block interface and then copy the LADDR (from data type HW_DEVICE) to the tag. It is then possible to compare HW_ANY and HW_IO.

Implicit conversion of floating-point numbers to DWORD (GRAPH) (S7-1500)

As of TIA Portal V13 SP1 stricter syntax rules apply for the implicit conversion of floating-point numbers to DWORD:

Up to and including TIA Portal V13, it was possible to convert a non-typed constant (e.g. 1.0) implicitly to the data type DWORD if the value was less than 32 bits.

With TIA Portal V13 SP1, if you want to convert a floating-point number implicitly to the data type DWORD, you can only use typed constants (e.g. REAL#1.0) since a non-typed constant (e.g. 1.0) is interpreted as data type LREAL and can no longer be converted implicitly to DWORD.

Assigning a value to a LTIME constant (S7-1500)

As of the TIA Portal V13 SP1, a stricter syntax rule applies to the definition of a value to a LTIME constant:

Up until and including TIA Portal V13 it was possible to assign a TIME value (e.g. T#10s) to a LTIME constant.

If you want to assign a value to a LTIME constant in TIA Portal V13 SP1, you have to use LTIME syntax (e.g. LT#10s).

Please note that the corresponding TIA Portal projects from previous versions already had to have been adjusted before the upgrade to TIA Portal V13 SP1.

Indirect indexing of ARRAY components of data type bit string in SCL (S7-1200/S7-1500)

In TIA Portal V13, you can address the components of an ARRAY for a CPU of the S7-1200/1500 series in SCL with a tag of the data type BYTE, WORD, DWORD or LWORD as index in addition to a tag of the integer data type if the IEC check is not set. This is not possible for a CPU of the S7-300/400 series.

The result is an incompatibility with TIA Portal V12 SP1 in which indirect indexing with the data type bit string is also permitted on a CPU of the S7-300/400 series.

EN/ENO mechanism for STRING conversion (S7-1200/S7-1500)

Conversion

Description

Strg_TO_Chars: Convert character string to Array of CHAR

The ENO enable output returns the signal state "0" even if you have deactivated the ENO enable output:

  • For an invalid character at the CHARS parameter

  • For an invalid ARRAY index at the PCHARS parameter

  • If the sum of the PCHARS and STRG parameters exceeds the length of the target ARRAY.

Chars_TO_Strg: Convert Array of CHAR to character string

The ENO enable output returns the signal state "0" even if you have deactivated the ENO enable output:

  • If the sum of the PCHARS and CNT parameters exceeds the length of the source ARRAY.

Overflow of the local data stack (S7-300/S7-400)

As of TIA Portal V13 SP1, the size of the local data stack is checked to ensure it does not exceed what you have defined for the OB priorities in the hardware configuration.

This means that you may get error messages during compilation in projects that could be compiled without errors in V13. If this happens, change the maximum size of the local data stack in the hardware configuration.


Inter Project Engineering (IPE)

Inter Project Engineering (IPE)

This section contains information on the following topics:
  • Notes on IPE


Notes on IPE

Contents Using system diagnostics in the device proxy Connections to the SIMATIC S7-1500 software controller Support of Alarm_S alarms Compatibility
Notes on IPE

Contents

Information that could not be included in the online help and important information about product characteristics.

Using system diagnostics in the device proxy

To use the "system diagnostics" function in an IPE device proxy, for example, a system diagnostics view, insert the PLC alarms as content of a device proxy.

Connections to the SIMATIC S7-1500 software controller

Connections to the SIMATIC S7-1500 software controller as device proxy are only possible via the interfaces assigned to the software PLC.

Support of Alarm_S alarms

The integrated configuration with WinCC and SIMATIC Manager support the Alarm_S alarms, which are available via data blocks and Continuous Function Chart (CFC).

Compatibility

With TIA Portal V15.1, you can open the IPE files of the same version and earlier versions from V13 SP1.

IPE files created with TIA Portal version V15.1 cannot be opened with earlier versions.