STEP 7

Beispiele Siehe auch Verlauf Extras
STEP 7

Dieses Kapitel enthält Informationen zu folgenden Themen:
  • Security-Hinweise
  • Hinweise zur Benutzung
  • Paralleler Online-Betrieb
  • Geräte und Netze bearbeiten
  • PLC programmieren
  • Inter Project Engineering (IPE)
  • Technologiefunktionen


Security-Hinweise

Security-Hinweise Netzwerkeinstellungen
Security-Hinweise

Security-Hinweise

Siemens bietet Produkte und Lösungen mit Industrial Security-Funktionen an, die den sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen.

Um Anlagen, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches Industrial Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts.

Der Kunde ist dafür verantwortlich, unbefugten Zugriff auf seine Anlagen, Systeme, Maschinen und Netzwerke zu verhindern. Systeme, Maschinen und Komponenten sollten nur mit dem Unternehmensnetzwerk oder dem Internet verbunden werden, wenn und soweit dies notwendig ist und entsprechende Schutzmaßnahmen (z. B. Nutzung von Firewalls und Netzwerksegmentierung) ergriffen wurden.

Zusätzlich sollten die Empfehlungen von Siemens zu entsprechenden Schutzmaßnahmen beachtet werden. Weiterführende Informationen über Industrial Security finden Sie unter:

https://www.siemens.com/industrialsecurity

Die Produkte und Lösungen von Siemens werden ständig weiterentwickelt, um sie noch sicherer zu machen. Siemens empfiehlt ausdrücklich, Aktualisierungen durchzuführen, sobald die entsprechenden Updates zur Verfügung stehen und immer nur die aktuellen Produktversionen zu verwenden. Die Verwendung veralteter oder nicht mehr unterstützter Versionen kann das Risiko von Cyber-Bedrohungen erhöhen.

Um stets über Produkt-Updates informiert zu sein, abonnieren Sie den Siemens Industrial Security RSS Feed unter:

https://www.siemens.com/industrialsecurity

Netzwerkeinstellungen

Die folgenden Tabellen zeigen die Netzwerkeinstellungen des jeweiligen Produkts, die Sie zur Analyse der Netzwerksicherheit und zur Konfiguration von externen Firewalls benötigen:

STEP 7 Professional
Name | Port-Nummer | Transport-Protokoll | Richtung | Funktion | Beschreibung
ALM | 4410* | TCP | In-/Outbound | Lizenz-Service | Dieser Dienst stellt die komplette Funktionalität für Software-Lizenzen zur Verfügung und wird sowohl vom Automation License Manager als auch von allen lizenzrelevanten Softwareprodukten verwendet.
RFC 1006 | 102 | TCP | Outbound | S7-Kommunikation | Kommunikation zum S7-Controller über Ethernet / PROFINET für Programmier- und Diagnosezwecke.
DCP | --- | Ethernet | Outbound | PROFINET | Das DCP-Protokoll (Discovery and basic Configuration Protocol) wird von PROFINET verwendet und stellt die Basisfunktionalität zum Auffinden und Konfigurieren von PROFINET-Geräten zur Verfügung.
SNMP | 161 | UDP | Outbound | PROFINET | Die SNMP Client-Funktionalität wird von STEP 7 verwendet, um Statusinformationen von PROFINET-Geräten auszulesen.
* Standard-Port, der durch Anwenderkonfiguration geändert werden kann

WinCC ES Basic (ohne Simulation)
Name | Port-Nummer | Transport-Protokoll | Richtung | Funktion | Beschreibung
ALM | 4410* | TCP | In-/Outbound | Lizenz-Service | Dieser Dienst stellt die komplette Funktionalität für Software-Lizenzen zur Verfügung und wird sowohl vom Automation License Manager als auch von allen lizenzrelevanten Softwareprodukten verwendet.
HMI Load | 1033 | TCP | Outbound | HMI Load (RT Basic) | Dieser Dienst wird verwendet, um Images und Konfigurationsdaten auf Basic Panels zu übertragen.
* Standard-Port, der durch Anwenderkonfiguration geändert werden kann

Simulation RT Basic
Name | Port-Nummer | Transport-Protokoll | Richtung | Funktion | Beschreibung
HMI Load | 1033 | TCP | Inbound | HMI Load (RT Basic) | Dieser Dienst wird verwendet, um Images und Konfigurationsdaten auf Basic Panels zu übertragen.
EtherNet/IP | 44818 | TCP | Outbound | Ethernet/IP-Kanal | Das Ethernet/IP-Protokoll wird für Verbindungen zu Allen Bradley PLCs verwendet.
 | 2222 | UDP | Inbound | Ethernet/IP-Kanal | Das Ethernet/IP-Protokoll wird für Verbindungen zu Allen Bradley PLCs verwendet.
Modbus TCP | 502 | TCP | Outbound | Modbus TCP-Kanal | Das Modbus TCP-Protokoll wird für Verbindungen zu Schneider PLCs verwendet.
RFC 1006 | 102 | TCP | Outbound | S7-Kanal | Kommunikation zum S7-Controller über Ethernet / PROFINET
Mitsubishi MC | 5002 | TCP | Outbound | Mitsubishi MC-Kanal | Das Mitsubishi-Protokoll wird für Verbindungen zu Mitsubishi PLCs verwendet.


Hinweise zur Benutzung

Inhalt Kompatibilität nach Hochrüsten eines Projekts auf V16 Parallele Nutzung Ethernet-Baugruppen ziehen und stecken Kompatibilität (S7-1200)
Hinweise zur Benutzung

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Kompatibilität nach Hochrüsten eines Projekts auf V16

Nach dem Hochrüsten eines Projekts auf V16 werden möglicherweise Online-/Offline-Unterschiede angezeigt, obwohl Online- und Offline-Programm vollkommen identisch sind. Diese Unterschiede sind darauf zurückzuführen, dass in V16 die Berechnung der Prüfsummen optimiert wurde. In den meisten Fällen sind die Bausteine dennoch kompatibel.

In seltenen Fällen kann die geänderte Prüfsummenberechnung jedoch dazu führen, dass Sie das Projekt neu übersetzen und laden müssen, bevor Sie es Online beobachten und testen können.

Nähere Information finden Sie in den Projekteigenschaften im Protokoll zum Hochrüsten. Wenn im Protokoll eine Prüfsummeninkonsistenz gemeldet wird, dann sind die Online-/Offline-Unterschiede auf die geänderte Prüfusmmenberechnung zurückzuführen.

Weitere Informationen finden Sie im Kapitel "Online-Verbindung nach Hochrüsten eines Projekts".

Parallele Nutzung

Sollte die Software im Namen oder der Licence-Key nach der Installation den Zusatz "Combo" tragen, ist Ihnen gemäß Ziffer 1.6 der Allgemeinen Bedingungen (siehe auch Setup-Text) die Nutzung folgender Produkte/Versionen erlaubt:

  • STEP 7 Professional 2017

  • STEP 7 Professional 2010

  • STEP 7 Professional 2006

Ethernet-Baugruppen ziehen und stecken

Wenn Ethernet-Baugruppen während des Betriebs gezogen und wieder gesteckt werden, dann müssen Sie den PC booten, da die Funktionalität "Erreichbare Teilnehmer" in STEP 7 oder NCM PC ansonsten nicht alle Teilnehmer anzeigt. Während der PC gebootet wird, müssen Ethernet-Baugruppen aktiviert sein.

Kompatibilität (S7-1200)

Gerätekonfiguration und Programm einer S7-1200-CPU müssen grundsätzlich mit der gleichen STEP 7-Version konfiguriert werden. Im Normalfall stellt das TIA Portal durch entsprechende Hinweise beim Laden ins Gerät sicher, dass es nicht zu Versionskonflikten kommt.

Bei S7-1200-CPUs mit der Firmware-Version V1.x ist diese automatische Überprüfung nicht möglich und daher vom Anwender sicherzustellen.


Paralleler Online-Betrieb

Inhalt Paralleler Online-Betrieb Gleichzeitige Online-Verbindungen auf eine S7-1200-CPU (S7-1200)
Paralleler Online-Betrieb

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Paralleler Online-Betrieb

Der parallele Online-Betrieb von STEP 7 V5.6 oder älter und STEP 7 V16 (TIA Portal) ist nicht freigegeben.

Gleichzeitige Online-Verbindungen auf eine S7-1200-CPU (S7-1200)

Es ist nicht möglich, gleichzeitig von mehreren Instanzen des TIA Portals aus eine Online-Verbindung auf dieselbe S7-1200-CPU herzustellen.


Geräte und Netze bearbeiten

Geräte und Netze bearbeiten

Dieses Kapitel enthält Informationen zu folgenden Themen:
  • Allgemeine Hinweise zu Geräten und Netzen
  • Hinweise zur Hardwarekonfiguration
  • Hinweise zu OPC UA-Funktionen
  • Hardware-Erkennung von IO-Devices
  • HW-ID des Typs "Hw_SubModule" für ein HMI Panel IO-Device
  • Verwendung von Modulen an der S7-1200
  • CP 343-2 an SIMATIC S7 Embedded Controller EC31-RTX
  • Laden von S7-1500 CPUs (SIPLUS)
  • ET 200MP (IM 155-5 DP ST) an einer WinLC RTX
  • Hinweise zu Online und Diagnose
  • Netzwerk-Komponenten


Allgemeine Hinweise zu Geräten und Netzen

Inhalt S7-PCT IO-Link (S7-1200) Port Configuration Tool PCT
Allgemeine Hinweise zu Geräten und Netzen

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

S7-PCT IO-Link (S7-1200)

Das S7-Port Configuration Tool kann unter folgendem Link kostenlos heruntergeladen werden:

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

Port Configuration Tool PCT

Falls Sie das PCT-Tool einsetzen, stellen Sie sicher, dass Sie stets die aktuelle Version verwenden, die unter folgendem Link kostenlos bereitgestellt wird:


Hinweise zur Hardwarekonfiguration

Inhalt Editieren einer Geräte-IP-Adresse
Hinweise zur Hardwarekonfiguration

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Editieren einer Geräte-IP-Adresse

Verwenden Sie beim Editieren einer Geräte-IP-Adresse nicht den Adressbereich von 192.168.x.241 bis 192.168.x.250. Dieser Adressbereich wird ggf. vom System automatisch einem PG zugewiesen. Dies gilt analog in Abhängigkeit der Subnetz-Maske für alle Netzklassen.


Hinweise zu OPC UA-Funktionen

Inhalt Verwendete Schema-Dateien für OPC UA-Funktionalität PLC-Objekt nicht im Server-Adressraum sichtbar OPC UA-Client-Server-Verbindung über NAT-Router Neustart des OPC UA-Servers Mapping von CPU-Datentypen auf OPC UA-Datentypen bei S7-1200 CPUs Weitere Statuscodes für OPC UA-Client-Anweisungen Kopieren von SCL-Programmbeispielen aus dem Informationssystem
Hinweise zu OPC UA-Funktionen

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Verwendete Schema-Dateien für OPC UA-Funktionalität

Die OPC Foundation stellt ihren Nutzern Schemata zur Verfügung, die Hersteller für ihre jeweiligen Server-/Client-Implementierungen nutzen können. Diese Dateien werden z. B. genutzt, um importierte Informationsmodelle / Nodesets zu validieren.

Für die TIA Portal Version V16 bzw. S7-1500 CPU Firmware Version V2.8 werden folgende Schema- und Nodeset-Dateien genutzt:

Schema/Nodeset | Erläuterung
https://opcfoundation.org/UA/schemas/1.04/UANodeSet.xsd | XML Schema für NodeSet-Dateien (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-Objekt nicht im Server-Adressraum sichtbar

Bei sehr großen Projekten kann es in seltenen Fällen dazu kommen, dass trotz erfolgreicher Übersetzung des Projekts und erfolgreichem Laden in die CPU der CPU-Knoten bzw. das PLC-Objekt nicht im Adressraum des OPC UA-Servers sichtbar ist. In diesem Fall reicht der für OPC UA reservierte Speicher in der CPU nicht aus.

Diagnose z. B. durch UaExpert liefert den ServerStatus "Failed".

Abhilfe

Deaktivieren Sie die Standard-SIMATIC-Server-Schnittstelle in den CPU-Eigenschaften, falls sie nicht benötigt wird.

Reduzieren Sie die Anzahl bzw. Größe der Elemente, die zum Verbrauch von OPC UA-Ressourcen beitragen. Reduzieren Sie z. B. die Anzahl der Knoten für Server-Schnittstellen auf weniger als 30000.

Weitere Maßnahmen:

  • Reduzieren Sie die Anzahl von Variablen im Adressraum des OPC UA-Servers, insbesondere von Variablen mit Datentyp Struktur.

    Um Variablen aus dem Adressraum herauszunehmen, deaktivieren Sie in der PLC-Variablentabelle oder in Datenbausteinen die Option "Erreichbar aus HMI/OPC UA".

    Bei Datenbausteinen haben Sie auch die Möglichkeit, den DB mit allen Variablen komplett aus dem Adressraum herauszunehmen. Deaktivieren Sie dazu die Option "DB erreichbar aus OPC UA" in den Eigenschaften des DBs.

  • Reduzieren Sie die Länge von Namen der Elemente bei umfangreichen Datenstrukturen.

  • Kürzen Sie die Descriptions der Knoten.

  • Reduzieren Sie die Anzahl implementierter Methoden.

OPC UA-Client-Server-Verbindung über NAT-Router

Wenn Client und Server über NAT-Router verbunden sind, dann scheitert dieser Verbindungsversuch mit den Fehlermeldungen "BadCommunicationError" oder "BadNotConnected".

Hintergrund: In NAT-Systemen werden die IPv4-Pakete vom Router manipuliert. Dies hat zur Folge, dass entweder die Quell-IP ("Source NAT") oder die Ziel-IP ("Destination NAT") eines Pakets durch eine im Router konfigurierte IP-Adresse (abhängig vom Ziel-Port) ersetzt wird. Dieser Vorgang ist transparent für Client und Server, d. h. diese Geräte erfahren nichts von diesem Vorgang.

Das Problem: Der NAT-Router hat keine Möglichkeit, die vom Server zurückgelieferte Endpoint-Beschreibung (das ist die EndpointUrl) ebenfalls zu ersetzen, da sich diese Adressinformation in den Nutzdaten der "GetEndpointsResponse" befindet.

Eine ausführliche Beschreibung des Vorgangs finden Sie in folgendem FAQ.

CPU-Firmware Version V2.6

Keine OPC UA-Client-Server-Verbindung über NAT-Router möglich.

Abhilfe ab CPU-Firmware Version V2.8

Nutzen Sie das Attribut "ServerUri" der Verbindungsinformationen (Parameter "SessionConnectInfo" der Anweisung "OPC_UA_Connect").

Tragen Sie als "ServerUri" die komplette ServerEndpointUrl mit der IP-Adresse des NAT-Routers ein. Diese ServerEndpointUrl wird dann anstelle der im GetEndpointsResponse zurückgegebenen EndpointUrl für den Verbindungsaufbau genutzt.
Wenn Sie das Attribut leer lassen, dann ist das Verhalten so bei CPU-Firmware Version V2.6.

Wenn Sie die Verbindungsparametrierung für den OPC UA-Verbindungsaufbau nutzen (Client-Schnittstelle erstellen), dann müssen Sie nach der Parametrierung den Client-Schnittstellen-DB (*_Configuration[DBx]) öffnen und im Parameter "ServerUri" den String ändern. Der Eintrag bleibt nach dem Übersetzen der OPC UA-Konfiguration erhalten.

Beispiel für Verbindungsaufbau (Adresse aus ServerUri ersetzt Adresse aus GetEndpointsResponse)

Vorgehensweise: Sie tragen im Parameter "ServerUri" die komplette Server-Adresse (ServerEndpointUrl) ein, bestehend aus IP-Adresse, Port und optional Pfad; die IP-Adresse ist die client-seitige IP-Adresse des NAT-Routers:

1) Konfigurations-DB öffnen

2) Parameter "ServerUri" ändern

Der Verbindungsaufbau läuft dann in folgenden Schritten ab:

  • GetEndpointsRequest: Der S7-1500 OPC UA-Client adressiert den Server über die Ziel-Adresse des NAT-Routers im Subnetz des Clients (10.10.0.1).
    Der NAT-Router setzt die Ziel-Adresse um in die IP-Adresse des Servers (192.168.0.1) im Subnetz des Servers.

  • GetEndpointsResponse: In der "GetEndpointsResponse" liefert der Server seine EndpointUrl zurück:
    "opc.tcp://192.168.0.1:4840/UA/DemoServer".
    Diese Adresse ist vom Client nicht direkt erreichbar, da sie sich hinter einem NAT-Router befindet.

  • OpenSecureChannel:
    Der Client nimmt nicht die EndpointUrl aus der GetEndpointsResponse zum Öffnen des Secure Channels, sondern die EndpointUrl aus dem Parameter "ServerUri":
    "opc.tcp://10.10.0.1:4840/UA/DemoServer".
    Diese IP-Adresse ist vom Client erreichbar; die Daten werden vom NAT-Router zur IP-Adresse des Servers geroutet.

Neustart des OPC UA-Servers

Der OPC UA-Server einer S7-1500 CPU wird ab Firmware-Version V2.8 nur noch beim Laden von OPC UA-relevanten Daten in die CPU gestoppt (z. B. Überschreiben eines Datenbausteins). Der Server startet dann anschließend neu, sofern Sie den Ladevorgang erlaubt haben.

Beachten Sie, dass OPC UA-Clients in diesem Fall die laufenden Dienste für diesen Server nicht weiter nutzen können und deshalb die Ressourcen hierfür wieder freigeben müssen.

Anschließend sind diese Dienste erneut anzufordern:

  • Verbindungsaufbau erneut einleiten

  • Subscriptions erneut erzeugen

  • Lese/Schreibaufträge neu anlegen

In vielen Fällen, z. B. nach dem Hinzufügen neuer Codebausteine oder neuer Datenbausteine, die nicht OPC UA-relevant sind, wird der Server nicht mehr gestoppt.

Mapping von CPU-Datentypen auf OPC UA-Datentypen bei S7-1200 CPUs

S7-1200 CPUs haben ab Firmware-Version V4.4 einen OPC UA-Server. Für diesen Server können Sie OPC UA-Server-Schnittstellen projektieren.

Es gilt folgendes Mapping der S7-1200-Datentypen auf OPC UA-Datentypen:

SIMATIC‑Datentyp | OPC UA-Datentyp
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

Der OPC UA-Server der S7-1200 unterstützt Lesen und Schreiben der aufgeführten einfachen Datentypen.

Nicht unterstützt werden folgende Datentypen:

  • Strukturen

  • Arrays

  • Unions

Variablen mit diesen Datentypen lassen sich zwar laden (keine Meldung durch Konsistenzcheck), ein Client-Zugriff auf diese Variablen wird aber zur Laufzeit mit einer Fehlermeldung abgewiesen.

Methoden lassen sich ebenfalls nicht programmieren.

Weitere Statuscodes für OPC UA-Client-Anweisungen

Aufgrund des geänderten Verhaltens für das Freigeben von Verbindungs-Handles bei S7-1500 CPUs ab Firmware V2.8 gibt es weitere Fehlercodes, die nicht bei jeder dieser Anweisungen dokumentiert sind.

In der folgenden Tabelle sind diese Fehlercodes mit Erläuterungen aufgeführt.

Fehlercode

(hexadezimale Werte)

Name des Fehlers

Erläuterung

80AE_0000

BadConnectionClosed

Die Verbindung mit dem entsprechenden ConnectionHdl ist im Status "ShutDown" (Verbindung getrennt). Die Verbindung/Session konnte nicht automatisch wieder "reaktiviert" werden. Mögliche Ursache: Session am Server gelöscht z. B. wegen Neustart oder Timeout.

Sie müssen in diesem Fall die Verbindung mit der Anweisung "OPC_UA_Disconnect" explizit schließen und damit die Verbindungsressourcen auch wieder freigeben. Das ConnectionHdl für diese ungültig gewordene Verbindung müssen Sie in Ihrem Anwenderprogramm zurücksetzen.

Anschließend müssen Sie eine neue Verbindung zum Server aufbauen (siehe Anweisung "OPC_UA_Connect").

Der Fehlercode kann bei allen Client-Anweisungen auftreten mit Ausnahme der Anweisungen OPC_UA_Connect, OPC_UA_Disconnect und OPC_UA_ConnectionGetStatus.

80AF_0000

BadInvalidState

Die Verbindung mit dem entsprechenden ConnectionHdl ist im Status "ConnectionError" (temporärer Verbindungsfehler, Verbindung unterbrochen). Die CPU versucht, die Verbindung zu "reaktivieren". Gelingt dies nicht im eingestellten Timeout-Intervall (OPC UA Session Timeout), geht die Verbindung in den Zustand "Shutdown". Voraussetzung für den Zustandsübergang: Die CPU konnte den OPC UA-Server erreichen um zu prüfen, ob die Session noch vorhanden ist oder nicht.

Der Fehlercode kann bei allen Client-Anweisungen auftreten mit Ausnahme der Anweisungen OPC_UA_Connect, OPC_UA_Disconnect und OPC_UA_ConnectionGetStatus.

A000_0105

PLCopenUA_Bad_ConnectionInvalidHdl

Das Verbindungshandle (ConnectionHdl) ist ungültig / unbekannt.

Der Fehlercode kann bei allen Client-Anweisungen auftreten mit Ausnahme der Anweisung OPC_UA_Connect.

Kopieren von SCL-Programmbeispielen aus dem Informationssystem

SCL-Programmcode aus den OPC UA Programmierbeispielen, der über das Symbol "Kopieren" im Informationssystem kopiert und im Programmeditor eingefügt wurde, lässt sich nicht übersetzen.

Um den Programmcode fehlerfrei zu kopieren, markieren Sie den Programmcode im Informationssystem und wählen den Kontextmenübefehl "Kopieren" oder die Tastenkombination "Strg+C" aus. Fügen Sie den Programmcode über den Kontextmenübefehl "Einfügen" oder über die Tastenkombination "Strg+V" im Programmeditor ein.


Hardware-Erkennung von IO-Devices

Inhalt Unvollständige Hardware-Erkennung bei ET 200SP-Stationen
Hardware-Erkennung von IO-Devices

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Unvollständige Hardware-Erkennung bei ET 200SP-Stationen

Mit STEP 7 V15 können Sie über die Online-Funktion "Hardware-Erkennung" den Stationsaufbau von IO-Devices ermitteln und in Ihr Projekt übernehmen inklusive aller gesteckten Module.

Wenn Sie eine ET 200SP über die Hardware-Erkennung in Ihr Projekt übernehmen, dann müssen Sie den ermittelten Stationsaufbau manuell vervollständigen: Überprüfen Sie beim Interfacemodul, ob der passende Busadapter in der Hardware-Konfiguration ermittelt wurde (z. B. BA 2xRJ45 statt real vorhandenem BA 2xFC).


HW-ID des Typs "Hw_SubModule" für ein HMI Panel IO-Device

Inhalt Ermittlung der HW-ID mit dem Typ "Hw_SubModule" für ein HMI Panel IO-Device
HW-ID des Typs "Hw_SubModule" für ein HMI Panel IO-Device

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Ermittlung der HW-ID mit dem Typ "Hw_SubModule" für ein HMI Panel IO-Device

Der Parameter "ID" des PROFIenergy-Programmbausteins "PE_START_END" muss mit der HW-Kennung (HW-ID) mit dem Typ "Hw_SubModule" des IO-Devices versorgt werden. Die HW-ID mit dem Typ "Hw_SubModule" des HMI Panel IO-Devices wird in einer S7-1500/S7-1200/ET200SP CPU nicht in den Systemkonstanten angezeigt, kann aber ermittelt werden. Hierzu wird in der Liste der PLC-Variablen im Register "Systemkonstanten" das Symbol für das IO-Device im HMI Panel mit dem Typ "Hw_Device" ermittelt und um eins verringert, z.B. "HMI_1_IE_CP_1~PROFINET_Interface_1~IODevice -1".


Verwendung von Modulen an der S7-1200

Inhalt Verwendung von Modulen an der S7-1200 Modulkommentare der S7-1200 in PG/PC laden
Verwendung von Modulen an der S7-1200

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Verwendung von Modulen an der S7-1200

Die folgend aufgeführten Module werden an der S7-1200 nicht unterstützt:

Familie | Baugruppe | Bestellnummer
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
Netzkomponente | Diagnose-Repeater | 6ES7 972-0AB01-0XA0
ET 200M | SIWAREX | 7MH4900-2AA01, 7MH4900-3AA01, 7MH4950-1AA01, 7MH4950-2AA01

Modulkommentare der S7-1200 in PG/PC laden

Bei zentralen Konfigurationen mit S7-1200 werden Kommentare der Module, Submodule und Signalboards nicht geladen. Bei CPs/CMs werden nur die Kommentare der IE-Schnittstelle bzw. DP-Schnittstelle geladen. Bei dezentralen Konfigurationen mit ET 200SP oder ET 200MP wird von den E/A-Modulen nur der Kommentar der Kanäle geladen.


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

Inhalt CP 343-2 an SIMATIC S7 Embedded Controller EC31-RTX
CP 343-2 an SIMATIC S7 Embedded Controller EC31-RTX

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

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

Das Modul AS-Interface CP 343-2 (Artikel-Nr.: 6GK7 343-2AH01) kann zwar in einen Erweiterungsbaugruppenträger des SIMATIC S7 Embedded Controller EC31-RTX (Artikel-Nr.: 6ES7 677-1DDxx-0BB0) gesteckt werden, aber der CP 343-2 darf nicht mit dem EC31-RTX betrieben werden.


Laden von S7-1500 CPUs (SIPLUS)

Inhalt Verhalten einer S7-1500 CPU SIPLUS (6AG1...) FW <V2.5 mit formatierter Memory Card
Laden von S7-1500 CPUs (SIPLUS)

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Verhalten einer S7-1500 CPU SIPLUS (6AG1...) FW <V2.5 mit formatierter Memory Card

Beteiligte Komponenten:

  • CPU 151x SIPLUS (6AG1...) mit Firmware-Version kleiner V2.5

  • SIMATIC Memory Card

Wenn Sie auf eine formatierte SIMATIC Memory Card eine SIPLUS-CPU laden und dann die CPU in RUN versetzen, läuft die CPU ohne Fehler. Nachdem aber die Spannung aus- und wieder eingeschaltet wird oder ein Memory Reset (MRES) durchgeführt wird, geht die SIPLUS-CPU mit einer Fehlermeldung in den STOP-Zustand. In der Fehlermeldung wird darauf hingewiesen, dass die Memory Card nicht erkannt wird, da sie fehlt, ein falscher Typ ist, falsche Daten enthält oder geschützt ist.

Das Verhalten tritt nicht auf, bei einer CPU 151x SIPLUS (6AG1...) mit einer Firmware-Version V2.5 oder größer oder wenn auf der Memory Card bereits eine Konfiguration mit einer S7-1500 SIMATIC-CPU (6ES7...) vorhanden ist und durch eine Konfiguration mit typgleicher SIPLUS-CPU (6AG1...) überschrieben wird.

Abhilfe:

  1. Auf der SIMATIC Memory Card muss eine Konfiguration mit SIMATIC-CPU geladen sein. Es reicht das Vorhandensein einer CPU entsprechenden Typs, das Vorhandensein der Peripherie ist hier nicht erforderlich.

  2. Die SIPLUS-CPU wird auf die Karte geladen. Die vorhandene SIMATIC-Konfiguration auf der Memory Card wird mit der SIPLUS-Konfiguration überschrieben.

Mit dieser Vorgehensweise wird eine Fehlermeldung des TIA-Portals vermieden.

Hinweis

Dieses Verfahren funktioniert NUR beim Online-Laden auf die CPU! Wenn die Karte über einen externen Card Reader programmiert wird, bleibt der Fehler bestehen!

Wenn Sie beispielsweise eine CPU 1511-1 PN SIPLUS (6AG1 511-1AK00...) laden möchten, gehen Sie folgendermaßen vor.

  1. Stecken Sie eine ausreichend große, leere Memory Card in die SIPLUS-CPU.

  2. Konfigurieren Sie eine typgleiche SIMATIC-CPU - in diesem Fall eine S7-1511-1 PN (6ES7 511-1AK00...). Peripheriemodule sind für den ersten Ladevorgang nicht erforderlich.

  3. Laden Sie die Konfiguration in die SIPLUS-CPU.

  4. Ersetzen Sie die SIMATIC-CPU in STEP 7 durch die SIPLUS-CPU (6AG1 511-1AK00...) und vervollständigen Sie die Konfiguration mit den geplanten Peripheriemodulen und dezentralen Peripheriegeräten.

  5. Laden Sie die geänderte Konfiguration in die SIPLUS-CPU.


ET 200MP (IM 155-5 DP ST) an einer WinLC RTX

Inhalt ET 200MP (IM 155-5 DP ST) aktuell nicht über PROFIBUS an einer WinLC RTX betreibbar
ET 200MP (IM 155-5 DP ST) an einer WinLC RTX

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

ET 200MP (IM 155-5 DP ST) aktuell nicht über PROFIBUS an einer WinLC RTX betreibbar

Beteiligte Komponenten:

  • PC-Systeme mit Logic Controller Funktionalität WinLC RTX als DP-Master (alle Varianten: EC31-RTX (F), WinAC RTX (F) Software PLC) - im folgenden kurz "WinLC RTX" genannt

  • ET 200MP (IM 155-5 DP ST) als DP-Slave

Wenn Sie Standard-Module oder F-Module in einer ET 200MP konfigurieren und als DP-Master eine WinLC RTX einsetzen, dann werden diese Module in der ET 200MP nicht vom DP-Master parametriert. Nach dem Laden der Konfiguration und dem Hochlauf der beteiligten Komponenten signalisieren die Module in der ET 200MP die fehlende Parametrierung durch blinkende grüne LEDs.

STEP 7 zeigt die fehlende Betriebsbereitschaft der Module online nicht an (Status "OK").

Abhilfe:

  • Empfehlung: Verwenden Sie ein Interfacemodul IM 155-5 PN, um die ET 200MP über PROFINET IO an eine WinLC RTX anzubinden

    oder

  • Wenn keine F-Module in der ET 200MP stecken: Verwenden Sie zur Projektierung der Standard-Module die GSD-Variante der ET 200MP an einer WinLC RTX


Hinweise zu Online und Diagnose

Inhalt Hardware-Erkennung und anschließendes Online verbinden Messungen im Gerät (Speicherkarte) löschen (S7-1200) Projekttrace für Software Controller und Open Controller
Hinweise zu Online und Diagnose

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Hardware-Erkennung und anschließendes Online verbinden

Wenn Sie bei einer nicht spezifizierten CPU den Befehl "Online > Hardware-Erkennung" ausführen, wird die Online-Konfiguration dabei nicht aus der CPU geladen. Falls Sie die über die Hardware-Erkennung erhaltene Konfiguration nicht auf die CPU laden, hat dies zur Folge, dass in der Geräte- und Netzsicht immer ein Unterschied zwischen Offline- und Online-Konfiguration angezeigt wird. In der Online- und Diagnosesicht ist ersichtlich, dass eine unterschiedliche Projektierung vorliegt, obwohl die MLFBs bei der tatsächlich vorhandenen und der Offline-CPU identisch sind.

Messungen im Gerät (Speicherkarte) löschen (S7-1200)

Löschen Sie keine Messungen im Gerät, solange noch ein Trace im Gerät neue Messungen auf der Speicherkarte erzeugt.

Projekttrace für Software Controller und Open Controller

Projekttrace unterstützt mit TIA-Portal V16 den Software Controller und Open Controller nicht.


PLC programmieren

PLC programmieren

Dieses Kapitel enthält Informationen zu folgenden Themen:
  • Allgemeine Hinweise zur PLC-Programmierung
  • Hinweise zu Anweisungen
  • Anwenderprogramm testen
  • Hochrüsten von Bausteinen
  • Kompatibilität von PLC-Programmen aus älteren Versionen


Allgemeine Hinweise zur PLC-Programmierung

Inhalt Instanz-spezifische Attribute beim Importieren von Bausteinen über TIA Portal Openness Anzeige des CPU-Namens bei Systemmeldungen Applikationszyklus eines Taktsynchronalarm-OBs ändern Verwendung des Systemdatentyps "TDiag_StatusExt" (S7-1200/1500) Informationen zur Netzwerksicherheit Funktionen aus der globalen Bibliothek “Long Functions“ mit PLCSIM (S7-1500) Inkonsistente Programme in eine S7-1500-CPU laden (S7-1500) Datenaustausch zwischen Standard- und F-Programm beim Einsatz von Team Engineering
Allgemeine Hinweise zur PLC-Programmierung

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Instanz-spezifische Attribute beim Importieren von Bausteinen über TIA Portal Openness

Die Import-Regeln können in bestimmten Situationen den Verlust instanz-spezifischer Attribute, wie z. B. Startwerte, bedeuten.

Anzeige des CPU-Namens bei Systemmeldungen

Ab V15.1 wird der Name der CPU (oder bei H- oder R-CPUs der Name der Station) in der Spalte "Zusatztext 1" der Systemmeldungen angezeigt. Hierzu müssen Sie die Hardware des betreffenden Geräts übersetzen. Wenn der CPU-Name nicht über die Option "Übersetzen > Hardware (nur Änderungen)" angezeigt wird, verwenden Sie die Option "Übersetzen > Hardware (komplett übersetzen)".

Stellen Sie sicher, dass das Laden in das Gerät tatsächlich durchgeführt wird; die Information, dass die Hardware aktuell ist, ist nicht ausreichend!

Applikationszyklus eines Taktsynchronalarm-OBs ändern

Wenn Sie den Parameter "Applikationszyklus (ms)" eines Taktsynchronalarm-OBs ändern, ändert sich implizit auch die Hardware-Konfiguration. Damit der geänderte Wert für die Applikationszyklusdauer nach dem nächsten Ladevorgang auf der CPU wirksam wird, müssen Sie die Hardware-Konfiguration explizit mitladen. Wählen Sie dazu entweder den Menübefehl "Laden in Gerät > Hardware und Software" oder den Befehl "Laden in Gerät > Hardwarekonfiguration".

Verwendung des Systemdatentyps "TDiag_StatusExt" (S7-1200/1500)

Alternativ zum Systemdatentyp "TDiag_Status" kann auch der erweiterte Systemdatentyp "TDiag_StatusExt" verwendet werden, um erweiterte Informationen zur Ursache eines Verbindungsabbruches zu erhalten. Speziell das Auslesen des Strukturelements "LastConnErrTimeStamp" führt zum Wechsel der CPU in den Systemzustand "Defect" und darf aktuell nicht verwendet werden.

Informationen zur Netzwerksicherheit

Die Kommunikationszugriffe zwischen TIA Portal und CPU bzw. zwischen HMI (außer, wenn HMI-Zugriffe über die "GET/PUT-Kommunikation" verwendet werden) und CPU bieten integrierte Sicherheitsfunktionen. Diese beinhalten einen größeren Schutz vor Manipulationen und einen höheren Zugriffsschutz. Zum Schutz vor unbefugtem Netzwerkzugriff auf eine CPU mit standardisierten Kommunikationszugriffen, wie z. B. "GET/PUT", "TSEND/TRCV", "Modbus", "FETCH/WRITE", sollten Sie zusätzlich geeignete Schutzmaßnahmen ergreifen (z. B. Zellenschutzkonzept).

Funktionen aus der globalen Bibliothek “Long Functions“ mit PLCSIM (S7-1500)

Durch den Übersetzungsvorgang werden Funktionen der CPU-Familie S7-1500 an die CPU gebunden, um sie gegen Manipulationen zu schützen. In der CPU verwendete Funktionen aus der globalen Bibliothek „Long Functions“, die eine solche Bindung besitzen, können nicht in eine Simulation geladen werden. Es besteht jedoch die Möglichkeit solche Elemente gegen ihre Originale aus der globalen Bibliothek auszutauschen. Diese haben keine Bindung an eine CPU.

Inkonsistente Programme in eine S7-1500-CPU laden (S7-1500)

Im TIA Portal ist es nicht möglich, inkonsistente Programme ohne Konsistenzprüfung in eine S7-1500-CPU zu laden. Während des Ladens werden implizit alle Bausteine des Programms geprüft und bei Inkonsistenzen erneut übersetzt. Wenn sich auf Ihrer CPU jedoch Programme befinden, die mit älteren Versionen von STEP 7 geladen wurden, können diese Programme Inkonsistenzen aufweisen.

Beachten Sie in diesem Fall folgenden Hinweis:

Wenn Sie ein inkonsistentes Programm von einem Gerät laden, können Sie das Programm anschließend nicht unverändert zurück in eine S7-1500-CPU laden, da während des Ladens zwangsläufig eine Konsistenzprüfung durchgeführt und bestehende Inkonsistenzen behoben werden.

Datenaustausch zwischen Standard- und F-Programm beim Einsatz von Team Engineering

Um die Datenkonsistenz zwischen Standard- und Sicherheitsprogramm zu gewährleisten, sollten Sie:

  • Daten nicht über Merker, sondern über Globale Datenbausteine austauschen.

  • Zugriffe zwischen Sicherheitsprogrammen und Standard-Anwenderprogrammen auf zwei Standard-Datenbausteine begrenzen.


Hinweise zu Anweisungen

Inhalt Anweisung "FileDelete: Datei auf der Memory Card löschen"
Hinweise zu Anweisungen

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Anweisung "FileDelete: Datei auf der Memory Card löschen"

Entgegen der Aussage in der Online Hilfe gilt für die Werte 8091 und 8094 des Parameters "Status" das Folgende:

  • Der Wert 8091 hat die folgende Bedeutung: Pfad existiert nicht oder ist ungültig

  • Der Wert 8094 wird nicht ausgegeben.


Anwenderprogramm testen

Anwenderprogramm testen

Dieses Kapitel enthält Informationen zu folgenden Themen:
  • Hinweise zum Testen mit der Beobachtungstabelle
  • Hinweise zum Testen mit der Forcetabelle
  • Hinweise zum Testen mit Haltepunkten


Hinweise zum Testen mit der Beobachtungstabelle

Inhalt Mehrfachzugriffe auf dieselbe CPU (S7-300/400/1200) Laden von Datenbausteinen bei laufendem Steuerauftrag Funktion "Peripherieausgänge freischalten" Testen von Programmen, die aus älteren STEP 7-Versionen migriert wurden Testen von Programmen, die hochgerüstet wurden Geänderte Anzeigeformate in der Beobachtungstabelle
Hinweise zum Testen mit der Beobachtungstabelle

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Mehrfachzugriffe auf dieselbe CPU (S7-300/400/1200)

Es darf von einem PG/PC aus nur mit einem geöffneten TIA Portal online auf eine CPU (S7-300/400/1200) zugegriffen werden. Mehrfachzugriffe auf dieselbe CPU aus dieser Familie sind nicht erlaubt und können zu Fehlern führen.

Laden von Datenbausteinen bei laufendem Steuerauftrag

Das Laden von geänderten Datenbausteinen bei laufendem Steuerauftrag kann zu unvorhergesehenen Betriebszuständen führen. Der Steuerauftrag steuert weiterhin die angegebene Adresse, während sich die Adressbelegung im Datenbaustein möglicherweise geändert hat. Beenden Sie laufende Steueraufträge vor dem Laden von Datenbausteinen.

Funktion "Peripherieausgänge freischalten"

Die Funktion "Peripherieausgänge freischalten" steht im TIA Portal für CPUs aus der Baureihe S7-1500 nicht zur Verfügung.

Diese Funktion kann im TIA Portal ausschließlich mit einer CPU S7-300, S7-400 oder S7-1200 ausgeführt werden.

Testen von Programmen, die aus älteren STEP 7-Versionen migriert wurden

Um ein aus einer älteren STEP 7-Version migriertes Programm zu beobachten und zu testen, müssen Sie das Programm zunächst einmal mit der aktuellen STEP 7-Version übersetzen und laden.

Testen von Programmen, die hochgerüstet wurden

Nach dem Hochrüsten von Projekten auf die V16 wird intern eine neue Prüfsummenberechnung durchgeführt. Dies kann in seltenen Fällen dazu führen, dass in der Beobachtungstabelle keine Werte für Variablen angezeigt werden, da sich die Prüfsumme verändert hat, obwohl die Bausteine identisch sind. In der Spalte "Beobachtungswert" wird dann kein Wert angezeigt, sondern die Brille mit dem durchgestrichenen roten Kreis. In diesem Fall muss das Projekt neu übersetzt und geladen werden, bevor es online mit der Beobachtungstabelle beobachtet und getestet werden kann.

Geänderte Anzeigeformate in der Beobachtungstabelle

Die Anzahl der Anzeigeformate wurde reduziert, so dass verwendete, aber nicht mehr unterstütze Anzeigeformate bei einem Projektupgrade auf ihre Voreinstellungen zurückgesetzt werden.

Beispiel: Zeiger können nur noch im Format "Zeiger" oder im Format "Hexadezimal" angezeigt werden.


Hinweise zum Testen mit der Forcetabelle

Inhalt Forcen von Variablen bei direktem Peripheriezugriff (S7-300) Beispiel Geänderte Anzeigeformate in der Forcetabelle
Hinweise zum Testen mit der Forcetabelle

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Forcen von Variablen bei direktem Peripheriezugriff (S7-300)

Wenn Sie in Ihrem Anwenderprogramm einen direkten Peripheriezugriff für eine S7-300 CPU verwenden, so ist ein Forcen dieser Peripherieadresse nicht erlaubt.

Beispiel

Erfolgt im Anwenderprogramm ein Peripheriezugriff auf die Adresse "EB0:P", so dürfen folgende Peripherieadressbereiche nicht geforct werden: E0.0:P, EB0:P, EW0:P und ED0:P.

Geänderte Anzeigeformate in der Forcetabelle

Die Anzahl der Anzeigeformate wurde reduziert, so dass verwendete, aber nicht mehr unterstütze Anzeigeformate bei einem Projektupgrade auf ihre Voreinstellungen zurückgesetzt werden.

Beispiel: Zeiger können nur noch im Format "Zeiger" oder im Format "Hexadezimal" angezeigt werden.


Hinweise zum Testen mit Haltepunkten

Inhalt Haltepunkte setzen im Standard-Anwenderprogramm bei S7-1500 F-CPUs
Hinweise zum Testen mit Haltepunkten

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Haltepunkte setzen im Standard-Anwenderprogramm bei S7-1500 F-CPUs

Wenn ein Haltepunkt aktiviert ist und erreicht wird, geht die CPU nach dem "HALT" unmittelbar in STOP. Sollten Sie nach dem "HALT" wieder in RUN wechseln wollen, um Ihr Standard-Anwenderprogramm weiter zu testen, können Sie dies mit S7-PLCSIM simulieren.

Weitere Hinweise zum Testen mit Haltepunkten bei F-CPUs finden Sie im Handbuch "SIMATIC Safety - Projektieren und Programmieren".


Hochrüsten von Bausteinen

Inhalt Hochrüsten von know-how-geschützten Bausteinen (S7-1200/1500) Hochrüsten von GRAPH-Bausteinen (S7-300, S7-400, S7-1500) Offline/Online-Vergleich Aktualisierung von Gerätespezifikationen
Hochrüsten von Bausteinen

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Hochrüsten von know-how-geschützten Bausteinen (S7-1200/1500)

Know-how-geschützte Bausteine, die mit einer älteren Version des TIA Portals eingerichtet wurden, können beim Upgrade auf die aktuelle Version ohne Eingabe eines Passworts in die Steuerung geladen werden und sind ablauffähig.

Um diese Bausteine in der aktuellen Version zu öffnen und zu bearbeiten, gehen Sie folgendermaßen vor:

  • Bausteine, deren Know-how-Schutz mit Version V13 SP1 oder höher eingerichtet wurde:

    • Entfernen Sie den Know-how-Schutz in der aktuellen Version, bearbeiten Sie den Baustein und setzen Sie den Know-how-Schutz erneut.

  • Bausteine, deren Know-how-Schutz mit einer Version vor V13 SP1 eingerichtet wurde:

    • Entfernen Sie den Know-How-Schutz in V13 SP1 und rüsten Sie den Baustein anschließend auf die aktuelle Version hoch. Nun bearbeiten Sie den Baustein und setzen den Know-how-Schutz anschließend in der aktuellen Version erneut.

Hochrüsten von GRAPH-Bausteinen (S7-300, S7-400, S7-1500)

Prüfen Sie nach dem Hochrüsten eines Projekts aus eine Version kleiner V15 auf V16, ob im Protokoll reparierte GRAPH-Bausteine aufgelistet sind und testen Sie die Ablauffähigkeit dieser Bausteine in Ihrem Programm.

Wird ein Projekt, das GRAPH-Bausteine enthält, von V15.x nach V16 hochgerüstet, müssen die Programmbausteine zuerst übersetzt werden, bevor sie beobachtet werden können.

Offline/Online-Vergleich

In der aktuellen Version wurden Bereinigungen der internen Projektdaten vorgenommen, um die Datenintegrität zu erhöhen. Nach der Installation können dadurch vereinzelt Bausteine beim Öffnen automatisch korrigiert werden und der Offline/Online-Vergleich zeigt folglich unterschiedliche Prüfsummen an.

Aktualisierung von Gerätespezifikationen

Beim Hochrüsten Ihres Projekts werden in bestimmten Fällen interne Gerätespezifikationen der verwendeten CPUs aktualisiert.

Die folgende Meldung weist Sie darauf hin, dass eine Aktualisierung durchgeführt wird: "Die Geräte-Konfiguration der CPUs im Projekt wurde aktualisiert."

Die Aktualisierung hat keine Auswirkung auf das in der CPU ablaufende Programm.


Kompatibilität von PLC-Programmen aus älteren Versionen

Kompatibilität von PLC-Programmen aus älteren Versionen

Dieses Kapitel enthält Informationen zu folgenden Themen:
  • Kompatibilität von PLC-Programmen aus Versionen vor V16
  • Kompatibilität von PLC-Programmen aus Versionen vor V15.1
  • Kompatibilität von PLC-Programmen aus Versionen vor V15
  • Kompatibilität von PLC-Programmen aus Versionen vor V14 SP1
  • Kompatibilität von PLC-Programmen aus Versionen vor V14
  • Kompatibilität von PLC-Programmen aus Versionen vor V13 SP1


Kompatibilität von PLC-Programmen aus Versionen vor V16

Inhalt Kompatibilität Prüfsummeninkonsistenz Software Units Syntaxprüfung bei Instanzen (KOP, FUP, AWL, GRAPH) Anweisungen "UPPER_BOUND" und "LOWER BOUND" (KOP, S7-1200/S7-1500) Anweisung "S_CONV" (KOP) Initialisierung des Datentyps STRUCT beim Import externer Quelldateien (SCL) AT-Deklaration Anweisung "MOVE" Anweisung "MOVE" (AWL) Anweisungen "SCATTER_BLK" und "GATHER_BLK" (SCL) Untypisierte Konstanten (SCL) Adressierung von ARRAYs über variablen Index und Peripheriezugriff (S7-1200) Bausteingröße bei Verwendung von ARRAYs in Strukturen Größe von GRAPH-Bausteinen Zuweisung von untypisierten Konstanten (SCL)
Kompatibilität von PLC-Programmen aus Versionen vor V16

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Kompatibilität

Grundsätzlich können Sie alle PLC-Programme, die mit älteren Versionen des TIA Portals erstellt wurden, in V16 weiter verwenden. Da jedoch in V16 Verbesserungen und Fehlerbehebungen am Compiler durchgeführt wurden, kann es in wenigen Fällen vorkommen, dass sich das Programm nach dem Hochrüsten anders verhält oder Sie den Programmcode manuell anpassen müssen. Diese Fälle sind nachfolgend detailliert beschrieben.

Prüfsummeninkonsistenz

Nach dem Hochrüsten eines Projekts auf V16 werden möglicherweise Online-/Offline-Unterschiede angezeigt, obwohl Online- und Offline-Programm vollkommen identisch sind. Diese Unterschiede sind darauf zurückzuführen, dass in V16 die Berechnung der Prüfsummen optimiert wurde. In den meisten Fällen sind die Bausteine dennoch kompatibel.

In seltenen Fällen kann die geänderte Prüfsummenberechnung jedoch dazu führen, dass Sie das Projekt neu übersetzen und laden müssen, bevor Sie es Online beobachten und testen können.

Software Units

Für den Namen einer Software Unit gelten ab V16 folgende Regeln:

  • Zulässige Zeichen sind alle alphanumerischen Zeichen und der Unterstrich.

  • Die maximale Anzahl an Zeichen beträgt 125.

  • Der Name einer Software Unit muss CPU-weit eindeutig sein und es darf auch keinen Baustein mit demselben Namen in der CPU existieren.

Falls die Software Units in Ihrem Programm diesen Regeln nicht entsprechen, wird nach dem Hochrüsten ein Syntaxfehler angezeigt. Ändern Sie in diesem Fall die Eigenschaft der Software Unit und übersetzen Sie das Programm erneut.

Syntaxprüfung bei Instanzen (KOP, FUP, AWL, GRAPH)

Beim Aufruf eines Funktionsbausteins wird nun genauer geprüft, ob der angegebene Instanz-Datenbaustein vom Typ des aufgerufenen FB ist. Dabei wird neben der Bausteinnummer und der Bausteinstruktur nun auch der Bausteinname geprüft.

Bei Inkonsistenzen wird nach dem Hochrüsten ein Syntaxfehler ausgegeben werden. Prüfen Sie in diesem Fall den Typ des Instanzdatenbausteins in den Bausteineigenschaften, im Abschnitt "Allgemein". Wenn der Typ nicht mit dem aufgerufenen FB übereinstimmt, müssen Sie den Bausteinaufruf ändern und eine passende Instanz angeben.

Anweisungen "UPPER_BOUND" und "LOWER BOUND" (KOP, S7-1200/S7-1500)

Der Freigabeeingang "EN" der beiden Anweisungen "UPPER_BOUND" und "LOWER BOUND" wird nun korrekt ausgewertet. Hat der Eingang "EN" den Signalzustand "0", wird die Anweisung nicht ausgeführt und der Freigabeausgang "ENO" hat den Signalzustand "0". Wenn Sie eine der beiden Anweisungen verwenden, prüfen Sie nach dem Hochrüsten, ob der Ablauf Ihres Programms unverändert ist.

Anweisung "S_CONV" (KOP)

Der Freigabeeingang "EN" der Anweisung "S_CONV" wurde bei der Konvertierung von (W)Char nach (W)String in älteren TIA Portal-Versionen nicht ausgewertet, wenn am Freigabeausgang "ENO" kein Parameter verschaltet war. Dieses Verhalten wurde korrigiert. Wenn Sie "S_CONV" verwenden, prüfen Sie nach dem Hochrüsten, ob der Ablauf Ihres Programms unverändert ist.

Initialisierung des Datentyps STRUCT beim Import externer Quelldateien (SCL)

Die Initialisierungsregeln für STRUCT wurden vereinheitlicht. Die Initialisierungslisten werden nun immer nach denselben Regeln ausgewertet, unabhängig davon, ob Sie in der tabellarischen oder der textuellen Bausteinschnittstelle arbeiten.

Wenn Sie in einer Initialisierungsliste unterschiedliche Syntax verwenden und beispielsweise einige Elemente mit Angabe des Elementnamens, andere nur mit Angabe des Werts initialisieren, prüfen Sie Ihr Programm nach dem Import in das TIA Portal V16.

Das folgende Beispiel zeigt, wie die Strukturelemente in V16 sowohl in der tabellarischen als auch in der textuellen Bausteinschnittstelle ausgewertet werden:

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

//Die Strukturelemente werden wie folgt initialisiert:

//mem_1 := 1;

//mem_3 := 33;

//mem_4 := 2;

//mem_5 := 3;

AT-Deklaration

In seltenen Fällen wurden Bausteinparameter, die in der Schnittstelle unmittelbar auf eine AT-Deklaration folgten, mit falschen Werten beschrieben. Dieses Verhalten wurde korrigiert.

Gleichzeitig ist es nun nicht mehr möglich, Bausteinparameter der Datentypen BOOL, BYTE, SINT, USINT oder CHAR mit Variablen vom Datentyp STRUCT und UDT zu überlagern. Überlagerungen mit Variablen vom Typ ARRAY sind nur möglich, solange die Array-Größe die Datengröße des überlagerten Typen nicht überschreitet.

Wenn Sie AT-Deklarationen verwenden, prüfen Sie Ihr Programm nach dem Hochrüsten.

Anweisung "MOVE"

Mit der Anweisung "MOVE" können Sie nur dann alle Variablen eines Datenbausteins in einen anderen Datenbaustein kopieren ("DA a" := "DB b"), wenn beide Bausteine dieselbe Struktur haben, d. h. die Anzahl, die Datentypen und die Deklarationsreihenfolge der deklarierten Variablen sind identisch. Darüber hinaus müssen beide Datenbausteine dasselbe Speicherformat (optimiert oder nicht-optimiert) haben.

Liegen beide Bausteine im optimierten Speicherformat vor, so müssen alle Variablen beider Bausteine entweder remanent oder nicht-remanent sein.

Anweisung "MOVE" (AWL)

Ab TIA Portal V16 ist es in AWL nicht mehr möglich, den Ausgang OUT einer MOVE-Anweisung mit einer Variablen vom Datentyp VARIANT aus den Abschnitten InOut oder Out der Bausteinschnittstelle zu versorgen.

Anweisungen "SCATTER_BLK" und "GATHER_BLK" (SCL)

Ab V16 wurden die zulässigen Datentypen eingeschränkt: Wenn Sie Strukturen (STRUCT oder PLC-Datentyp) als Parameter verwenden, dürfen diese ausschließlich Variablen vom Datentyp BOOL enthalten.

Untypisierte Konstanten (SCL)

Die Semantikprüfung für untypisierte Konstanten wurde an die anderen Programmiersprachen angepasst: Wenn eine untypisierte Konstante nicht mit dem Datentypen des zugewiesenen Operanden kompatibel ist, wird nun bei aktivierter IEC-Prüfung immer ein Übersetzungsfehler gemeldet.

Adressierung von ARRAYs über variablen Index und Peripheriezugriff (S7-1200)

In einer CPU der Baureihe S7-1200 ist das Adressieren von ARRAYs über einen variablen Index in Kombination mit der Peripheriezugriffskennung „:P“ nicht mehr möglich.

Beispiel für eine unzulässige ARRAY-Adressierung:

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

Beispiele für zulässige ARRAY-Adressierungen mit Peripheriezugriff:

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

#array[0, 1, 2]:P

Beispiele für zulässige ARRAY-Adressierungen mit variablem Index:

#array[0, #myIndexTag, 2]

Bausteingröße bei Verwendung von ARRAYs in Strukturen

Bei Verwendung von Strukturen (STRUCT), die mehr als ein ARRAY-Element beinhalten, konnte folgender Fehler auftreten:

Wenn mehrere ARRAY-Zugriffe außerhalb des gültigen Bereichs lagen, ging die CPU nicht in STOP, sondern es wurde auf ein ARRAY-Element zugegriffen.

Dieses Verhalten wurde in V16 korrigiert: Die CPU geht in diesem Fall in STOP oder führt eine lokale bzw. globale Fehlerbehandlung aus, wenn diese programmiert ist.

Durch die Korrektur können die betroffenen Bausteine größer werden.

Größe von GRAPH-Bausteinen

Beachten Sie, dass alle GRAPH-Bausteine sich wegen obiger Korrektur um ca. 90 Byte vergrößern.

Zuweisung von untypisierten Konstanten (SCL)

Für Zuweisungen von untypisierten Konstanten zu Variablen des Typs „Real“ wird eine Fehlermeldung erzeugt, wenn die IEC-Check Prüfung aktiviert ist und gleichzeitig die Konstante innerhalb des Wertebereichs eines LReals und außerhalb des Wertebereichs eines Reals liegt.


Kompatibilität von PLC-Programmen aus Versionen vor V15.1

Inhalt Kompatibilität Abarbeitungsreihenfolge von Funktionsaufrufen in SCL (S7-1200/S7-1500) Vergleicher (SCL S7-1200 >= 4.2 und S7-1500 >= 2.0) Import von IEC-Zeiten (S7-1200/S7-1500) Ersetzen ungültiger Unicode-Zeichen beim Hochrüsten Anweisungen “SCATTER” / “SCATTER_BLK” und “GATHER“ / „GATHER_BLK“ (S7-1200/1500) Anweisungen "BLKMOV" / "UBLKMOV" und "FILL" / "UFILL" Anweisung “RUNTIME” (SCL/AWL S7-1200/S7-1500)
Kompatibilität von PLC-Programmen aus Versionen vor V15.1

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Kompatibilität

Grundsätzlich können Sie alle PLC-Programme, die mit älteren Versionen des TIA Portals erstellt wurden, in V15.1 weiter verwenden. Da jedoch in V15.1 Verbesserungen und Fehlerbehebungen am Compiler durchgeführt wurden, kann es in wenigen Fällen vorkommen, dass sich das Programm nach dem Hochrüsten anders verhält oder Sie den Programmcode manuell anpassen müssen. Diese Fälle sind nachfolgend detailliert beschrieben.

Abarbeitungsreihenfolge von Funktionsaufrufen in SCL (S7-1200/S7-1500)

In älteren Versionen des TIA Portals war die Abarbeitungsreihenfolge von Zuweisungen, die Ausdrücke oder Funktionsaufrufe beinhalteten, nicht immer eindeutig. Die Bearbeitung wurde nicht konsequent von rechts nach links durchgeführt, sondern es wurden in bestimmten Fällen Teile des Ausdrucks auf der linken Seite zuerst ausgewertet.

Dieses Verhalten wurde in V15.1 korrigiert, so dass nun immer zuerst die rechte Seite der Zuweisung berechnet und dann die linke Seite bestimmt wird.

Beispiel:

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

In früheren Versionen wurde hier zunächst der „FC1“ ausgeführt, um ein ARRAY-Element zu bestimmen. Anschließend wurde #x + #y gerechnet.

Ab V15.1 wird das Programm nun korrekt von rechts nach links bearbeitet: Zunächst wird #x + #y gerechnet und anschließend der „FC1“ ausgeführt.

Diese Korrektur kann dazu führen, dass Ihr Programm sich nach dem Hochrüsten anders verhält, z. B. wenn im „FC1“ die Variablen #x oder #y gesetzt werden. Prüfen Sie deshalb Ihr Programm nach dem Hochrüsten.

Vergleicher (SCL S7-1200 >= 4.2 und S7-1500 >= 2.0)

Beim Vergleich von zwei Instanzdatenbausteinen über Vergleichsoperationen in SCL wird nicht die Struktur der Bausteine, sondern lediglich die Bausteinnummer verglichen. Ab V15.1 werden Sie durch eine Fehlermeldung beim Übersetzen darauf hingewiesen, dass diese Operation möglicherweise nicht das gewünschte Ergebnis liefert (im Regelfall wird FALSE geliefert, da die Nummern der Bausteine verschieden sind).

Beispiel:

Das Ergebnis der folgenden Vergleichsoperation ist FALSE, auch wenn die Struktur beider Bausteine identisch ist.

IF "MyDBofFB" = "MyDBofSameFB" THEN …

Import von IEC-Zeiten (S7-1200/S7-1500)

IEC-Zeiten enthalten schreibgeschützte Parameter, z. B. ET (Aktueller Zeitwert). In älteren Versionen des TIA Portals wurden beim Import von externen Quelldateien die Startwerte dieser schreibgeschützten Parameter in bestimmten Fällen überschrieben. Dieses Verhalten wurde mit V15.1 korrigiert: Startwerte für schreibgeschützte Parameter werden nun beim Import von Quelldateien ignoriert. Stattdessen werden die Defaultwerte des Datentyps verwendet. Prüfen Sie deshalb Ihr Programm nach einem Import.

Ersetzen ungültiger Unicode-Zeichen beim Hochrüsten

Beim Hochrüsten auf V15.1 werden ungültige Unicode-Zeichen in Ihrem Programm korrigiert, z. B. werden ungültige Zeichen in String-Konstanten mit den Escape-Sequenzen ersetzt, die per IEC definiert sind. Dadurch kann sich die Prüfsumme des Programms ändern und es werden Unterschiede zwischen Online- und Offline-Programm angezeigt. Übersetzen und laden Sie Ihr Programm in diesem Fall neu.

Anweisungen “SCATTER” / “SCATTER_BLK” und “GATHER“ / „GATHER_BLK“ (S7-1200/1500)

Mit den Anweisungen „SCATTER“ / „SCATTER_BLK“ können Sie eine Bitfolge in einzelne Bits zerlegen. Mit den Befehlen „GATHER“ / „GATHER_BLK“ können Sie einzelne Bits zu einer Bitfolge zusammenfassen.

Die Werte, mit denen die Anweisungen arbeiten, dürfen nicht im Peripheriebereich oder im DB eines Technologieobjekts liegen, da in diesen Bereichen die Datenkonsistenz nicht gewährleistet ist.

Ab V15.1 wird diese Regel durch eine genauere Syntaxprüfung überprüft. Falls Sie in Ihrem Programm die o.g. Anweisungen mit unzulässigen Eingangsparametern versorgt haben, wird beim Übersetzen nun ein Fehler gemeldet.

Als Abhilfe können Sie die Variablen zunächst auf einen temporären Speicherbereich kopieren und von dort an die Anweisungen „SCATTER“ oder „GATHER“ übergeben.

Anweisungen "BLKMOV" / "UBLKMOV" und "FILL" / "UFILL"

Mit der Anweisung "BLKMOV" / "UBLKMOV" und "FILL" / "UFILL" kopieren Sie die Inhalte eines Speicherbereichs (Quellbereich) in einen anderen Speicherbereich (Zielbereich). Wenn diese Anweisungen auf einen nicht vorhandenen Speicherbereich zugreifen, wird ein Programmierfehler ausgegeben. In vorherigen Versionen wurde in seltenen Fällen ein Fehlercode am Parameter "RET_VAL" anstelle eines Programmierfehlers erzeugt. Dieses Verhalten wurde für S7-1500-CPUs ab der Firmware-Version 2.6 korrigiert.

Anweisung “RUNTIME” (SCL/AWL S7-1200/S7-1500)

Der Parameter „Mem“ der Anweisung „RUNTIME“ ist vom Datentyp „LREAL“ und darf nur mit einer Variable dieses Datentyps verwendet werden. Eine implizite Konvertierung ist hier nicht möglich. In V15.1 wird diese Regel durch eine genauere Syntaxprüfung überprüft. Falls Sie in Ihrem Programm den Parameter „Mem“ der Anweisung „RUNTIME“ mit einem unzulässigen Datentypen versorgt haben, wird beim Übersetzen nun ein Fehler gemeldet.


Kompatibilität von PLC-Programmen aus Versionen vor V15

Inhalt Kompatibilität S7-GRAPH: Implizite Konvertierungen "Hardware-Datentypen <> INT" Unterkategorien in ProDiag (S7-1500) Anweisungen "(U)MOVE_BLK" und "(U)FILL_BLK" (S7-1500) Programmschleifen in SCL (S7-1200/S7-1500) Rückgabewerte von Funktionen in SCL LDT_TO_DATE in SCL (S7-1500) Vergleich eines ARRAY-Elements mit einer Variable vom Datentyp "VARIANT" in SCL (S7-1200/1500) Anweisung "GetSymbolPath" (S7-1200/S7-1500) Anweisung "GetInstancePath" (S7-1200/S7-1500) Additionen und Subtraktionen mit DTL/LDT/DT Laufzeit-Informationen (S7-1200/S7-1500) ARRAYs von Multiinstanzen Bausteinparameter vom Datentyp "VARIANT" (S7-1200/1500) Externe Quellen importieren Größe von ARRAY of BOOL/BYTE/CHAR (S7-1500)
Kompatibilität von PLC-Programmen aus Versionen vor V15

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Kompatibilität

Grundsätzlich können Sie alle PLC-Programme, die mit älteren Versionen des TIA Portals erstellt wurden, in V15 weiter verwenden. Da jedoch in V15 Verbesserungen und Fehlerbehebungen am Compiler durchgeführt wurden, kann es in wenigen Fällen vorkommen, dass sich das Programm nach dem Hochrüsten anders verhält oder Sie den Programmcode manuell anpassen müssen. Diese Fälle sind nachfolgend detailliert beschrieben.

S7-GRAPH: Implizite Konvertierungen "Hardware-Datentypen <> INT"

Ab TIA Portal V15 ist es, wie bereits bei KOP, FUP, AWL und SCL, nicht mehr möglich implizite Konvertierungen von Hardware-Datentypen (z. B. INT -> DB_ANY oder DB_ANY -> INT) zu programmieren.

Bitte verwenden Sie stattdessen entweder den Datentyp UINT oder eine explizite Konvertierung.

Unterkategorien in ProDiag (S7-1500)

Ab TIA Portal V14 SP1 Update 2 werden die einzelnen Unterkategorien für ProDiag nicht mehr manuell hinzugefügt, sondern in der Spalte "Aktivierung" aktiviert bzw. deaktiviert.

Das führt dazu, dass nach dem Hochrüsten eines Projekts <V14 SP1 Update 2, das bereits vorhandene Unterkategorien in mindestens einer Überwachung verwendet, zuerst die Schaltfläche "Reparieren" ausgeführt werden muss, bevor Sie neue Unterkategorien anlegen können.

Anweisungen "(U)MOVE_BLK" und "(U)FILL_BLK" (S7-1500)

Die Anweisungen "(U)MOVE_BLK" und "(U)FILL_BLK" haben im TIA Portal <= V15 beim direkten Zugriff auf die Peripherie nur auf das Prozessabbild zugegriffen.

Dieses Verhalten wurde korrigiert und führt jetzt zu einem Laufzeitfehler, da direkte Peripheriezugriffe bei BLK-Befehlen nicht zulässig sind.

Programmschleifen in SCL (S7-1200/S7-1500)

In S7-1200/S7-1500 ist es mit SCL nicht möglich, den Index einer Programmschleife aus der Schleife heraus zu ändern.

Das folgende Programmbeispiel wäre also ungültig:

FOR #i := 1 TO 10 DO

#i := #i + 1;

END_FOR;

Ab TIA Portal V15 wird beim Übersetzen diesbezüglich eine genauere Syntaxprüfung durchgeführt und ein Übersetzungsfehler ausgegeben.

Rückgabewerte von Funktionen in SCL

Bei Funktionen, deren Rückgabewert einen strukturierten Datentyp hat, wurde das Verhalten angeglichen. Strukturierte Datentypen sind z. B. PLC-Datentypen oder STRING.

Abhängig davon, ob der ENO Ausgang der Funktion genutzt wurde oder nicht, konnte es bisher vorkommen, dass eine temporäre Arbeitskopie des Funktionswerts angelegt wurde, obwohl beim sonst gleichen Aufruf ohne ENO diese Arbeitskopie nicht angelegt wurde. Die Zuweisung dieser temporären Kopie auf die verschaltete Variable ist dann bei Beendigung der Funktion erfolgt.

Dieses Verhalten wurde folgendermaßen angeglichen:

Die Verwendung des Ausgangsparameters ENO hat nun keinen Einfluss mehr darauf, ob der Rückgabewert per Kopie oder per Referenz übergeben wird. Wenn der Rückgabewert einen strukturierten Datentyp hat, wird er in der Regel per Referenz übergeben. Die Übergaberegeln sind im Detail im Kapitel "Parameter als Kopie oder als Pointer übergeben" beschrieben.

LDT_TO_DATE in SCL (S7-1500)

Das Verhalten von LDT_TO_DATE bei einem Konvertierungsfehler zur Laufzeit wurde korrigiert.

Vergleich eines ARRAY-Elements mit einer Variable vom Datentyp "VARIANT" in SCL (S7-1200/1500)

Der Vergleich eines variabel indizierten ARRAY-Elements mit einem VARIANT wurde bisher in einigen Fällen nicht korrekt durchgeführt. Statt des ARRAY-Elements wurde das gesamte ARRAY für den Vergleich herangezogen.

Dieses Verhalten wurde in V15 korrigiert: Für den Vergleich wird nun das indizierte ARRAY-Element ausgewertet. Wenn Sie in Ihrem Programm solche Vergleiche verwenden, müssen Sie den betroffenen Baustein nach dem Hochrüsten prüfen.

Beispiel:

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

Bisher wurde "my_variant" mit "my_Array" verglichen. Ab V15 wird der Vergleich korrekt durchgeführt und "my_variant" wird mit Element #1 von "my_Array" verglichen.

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

Verschaltet ein FB eine statische Variable an einen Formalparameter eines Aufruf und ein unterlagerter Baustein verwendet "GetSymbolPath" V1.0 oder V1.1 für den Parameter, so führt die Übersetzung dieses Bausteins zur zusätzlichen Anzeige des DB-Namens vor dem Namen der statischen Variable, allerdings ohne Punkt als Trennzeichen und ohne Ersetzen des #. Die Version V1.2 von "GetSymbolPath" zeigt den Pfad korrekt mit Punkt als Trennzeichen und ohne # an.

Falls Sie die Anweisung "GetSymbolPath" in Ihrem Programm einsetzen, sollten Sie nach dem Hochrüsten auf >=V15 die Anweisung "GetSymbolPath" V1.2 verwenden.

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

Verschaltet ein FB eine statische Variable an einen Formalparameter eines Aufruf und ein unterlagerter Baustein verwendet "GetInstancePath", so führt die Übersetzung dieses Bausteins zur zusätzlichen Anzeige des DB-Names vor dem Namen der statischen Variable.

Additionen und Subtraktionen mit DTL/LDT/DT

In Additionen und Subtraktionen mit den Datentypen DTL/LDT/DT können keine untypisierten Konstanten mehr verwendet werden. Es wird ein Syntaxfehler gemeldet.

Folgende arithmetische Operationen sind nun beispielsweise nicht mehr möglich:

#myDTL + 1

#myLDT + 1

#myDate_And_Time +1

Verwenden Sie stattdessen Konstanten vom Datentyp "Time" oder "LTime"

#myDTL + TIME#1d

#myLDT + TIME#1ms

#myDate_And_Time + LTIME#1ns

Laufzeit-Informationen (S7-1200/S7-1500)

Die erweiterten Anweisungen "GetInstanceName", "GetInstancePath", "GetSymbolName", "GetSymbolPath" und "GetBlockName" verhalten sich nun in allen Programmiersprachen gleich: Falls die auszugebende Zeichenkette aufgrund von Größenbeschränkungen nicht in den Ausgangsparameter "OUT" passt, wird der Name abgeschnitten und das Zeichen "..." am Ende der Zeichenkette angezeigt.

ARRAYs von Multiinstanzen

ARRAYs von Multiinstanzen konnten bisher in manchen Fällen nicht korrekt adressiert werden, wenn über variablen Index eine Multiinstanz adressiert wurde, die in einer weiteren Multiinstanz instanziiert war, die ihrerseits ein Element eines ARRAYs von Multiinstanzen war.

Beispiel:

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

Dieses Verhalten wurde in V15 korrigiert.

Wenn Sie in Ihrem Programm solche Zugriffe verwendet haben, müssen Sie den betroffenen Baustein nach dem Hochrüsten prüfen und möglicherweise neu übersetzen.

Bausteinparameter vom Datentyp "VARIANT" (S7-1200/1500)

Wie bereits in KOP, FUP, AWL und GRAPH, ist es nun auch in SCL nicht mehr möglich, einem Formalparameter vom Datentyp "VARIANT" einen Instanz-DB als Aktualparameter zuzuweisen.

Eine Ausnahme bilden Instanz-DBs, die von einem PLC-Datentyp oder Systemdatentyp abgeleitet sind. Diese können Sie in allen Programmiersprachen einem Bausteinparameter vom Datentyp "VARIANT" zuweisen.

Es ist nicht mehr möglich, eine schreibgeschützte Variable einem Bausteinparameter vom Datentyp "VARIANT" als Aktualparameter zuzuweisen.

Entfernen Sie wenn möglich den Schreibschutz der Variable. Wenn das nicht möglich ist, prüfen Sie, wie Sie Ihr Programm ändern können, um den Zugriff auf die schreibgeschützte Variable zu vermeiden. Wenn Sie z. B. nur lesend zugreifen möchten, können Sie den Inhalt der schreibgeschützten Variable im aufrufenden Baustein in eine andere Variable umkopieren, die keinen Schreibschutz trägt. Anschließend können Sie diese Variable als Aktualparameter übergeben.

Externe Quellen importieren

Beim Import einer externen Quelle, in der eine Anweisung als Multi- oder Einzelinstanz verwendet wird, wurde bisher das gesamte Programm auf die in der Quelle verwendete Anweisungsversion umgestellt. Ab Version V15 des TIA Portals ist dieses Verhalten korrigiert: Die bereits im Projekt enthaltenen Anweisungen werden nicht mehr umgestellt, sondern behalten die von Ihnen projektierte Anweisungsversion.

Wenn das Projekt nach dem Import verschiedene Versionen einer Anweisung enthält, wird ein Syntaxfehler gemeldet. Übersetzen Sie in diesem Fall das gesamte Programm erneut. Markieren Sie dazu in der Projektnavigation den Ordner "Programmbausteine" und wählen Sie im Kontextmenü den Befehl "Übersetzen > Software (nur Änderungen)" oder "Übersetzen > Software (komplett übersetzen)".

Größe von ARRAY of BOOL/BYTE/CHAR (S7-1500)

Bisher hatten ARRAYs der Datenypen BOOL, BYTE oder CHAR unterschiedliche Größen, abhängig davon, ob sie innerhalb einer Struktur verwendet wurden oder nicht. Ab V15 wurde die Größe der ARRAYs vereinheitlicht. Wenn Sie in Ihrem Programm absolut, z. B. über einen ANY-Zeiger, auf ein ARRAY von BOOL, BYTE oder CHAR zugreifen, müssen Sie das Programm nach dem Hochrüsten prüfen.


Kompatibilität von PLC-Programmen aus Versionen vor V14 SP1

Inhalt Kompatibilität Gesamtgröße der Begleitwerte für Programmmeldungen Programmschleifen in SCL (S7-1200/S7-1500) CASE-Anweisungen in SCL ARRAYs von Multiinstanzen Parametertyp “Block_DB” zur Angabe des Instanz-DBs Peripheriezugriffe als Eingangsparameter von Bausteinen (S7-1500 ab FW V2.1)
Kompatibilität von PLC-Programmen aus Versionen vor V14 SP1

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Kompatibilität

Grundsätzlich können Sie alle PLC-Programme, die mit älteren Versionen des TIA Portals erstellt wurden, in V14 SP1 weiter verwenden. Da jedoch in V14 SP1 Verbesserungen und Fehlerbehebungen am Compiler durchgeführt wurden, kann es in wenigen Fällen vorkommen, dass sich das Programm nach dem Hochrüsten anders verhält oder Sie den Programmcode manuell anpassen müssen. Diese Fälle sind nachfolgend detailliert beschrieben.

Daneben haben Sie auch die Möglichkeit, das Projekt im Kompatibilitätsmodus zu bearbeiten. Weitere Informationen zur Kompatibilität finden Sie unter "Kompatibilität von Projekten".

Gesamtgröße der Begleitwerte für Programmmeldungen

Das Meldeverfahren der S7-1500-CPU stellt maximal 512 Bytes für Begleitwerte (SD-Parameter) der Anweisung "Program_Alarm" zur Verfügung.

Auf diese Größe wurde im TIA Portal <= V14 beim Übersetzen lediglich mit einer Warnung hingewiesen. Ab TIA Portal V14 SP1 erfolgt eine strengere Überprüfung. Beim Überschreiten dieser Größe wird bereits beim Übersetzen ein Fehler ausgegeben, um während der Laufzeit Fehlerszenarien auszuschließen. Diese Überprüfung bezieht sich fortan nicht mehr auf die tatsächliche Größe der SD-Parameter zum Zeitpunkt des Aufrufs der Anweisung "Program_Alarm", sondern auf die maximal mögliche Größe der SD-Parameter. Sie müssen sich also im Vorfeld überlegen, mit welcher Länge Sie Ihre zu übergebenden Zeichenfolgen-Variablen deklarieren, da diese besonders viele Bytes in Anspruch nehmen.

Dies ist bei der Migration von Projekten von der Version <= V14 zur Version V14 SP1 Update 1 oder neuer entsprechend zu berücksichtigen.

Programmschleifen in SCL (S7-1200/S7-1500)

In S7-1200/S7-1500 ist es mit SCL nicht möglich, den Index einer Programmschleife aus der Schleife heraus zu ändern.

Das folgende Programmbeispiel wäre also ungültig:

FOR #i := 1 TO 10 DO

#i := #i + 1;

END_FOR;

Ab TIA Portal V14.0.1 wird beim Übersetzen diesbezüglich eine genauere Syntaxprüfung durchgeführt und ein Übersetzungsfehler ausgegeben.

CASE-Anweisungen in SCL

Innerhalb einer Case-Anweisung sind Labels ohne zugehörige "GOTO"-Anweisung nicht mehr zulässig. Es wird ein Syntaxfehler gemeldet.

ARRAYs von Multiinstanzen

ARRAYs von Multiinstanzen konnten in V14 in manchen Fällen nicht korrekt adressiert werden, wenn einzelne Variablen innerhalb einer Multiinstanz die Remanenzeinstellung „Im IDB setzen“ hatten. Dieses Verhalten wurde in V14 SP1 korrigiert.

Wenn Sie in Ihrem Programm solche Variablen verwendet haben, müssen Sie den betroffenen Baustein nach dem Hochrüsten möglicherweise neu übersetzen.

Parametertyp “Block_DB” zur Angabe des Instanz-DBs

In KOP und FUP können Sie den Instanz-DB einer Anweisung nicht über einen Eingang des Datentyps „Block_DB“ angeben. Dieses Verhalten wurde für alle CPU-Familien und alle Bausteinarten vereinheitlicht.

Ab TIA Portal V14 SP1 wird diesbezüglich ein Syntaxfehler ausgegeben.

Wenn Sie in Ihrem Programm Instanz-DBs mithilfe des Datentyps "Block_DB" übergeben haben, müssen Sie Ihr Programm ändern. Verwenden Sie stattdessen eine Parameterinstanz, um die Instanz zur Laufzeit zu übergeben.

Peripheriezugriffe als Eingangsparameter von Bausteinen (S7-1500 ab FW V2.1)

Peripheriedirektzugriffe, die als Eingangsparameter an Bausteinen verschaltet sind, führen beim Auftreten eines Peripheriezugriffsfehlers nicht mehr dazu, dass der Baustein nicht durchlaufen wird. Stattdessen wird mit dem Ersatzwert des Signals im Baustein gearbeitet.

Für CPUs S7-1500 mit FW kleiner V2.1 und alle CPUs S7-1200 ist das Systemverhalten unverändert:

Der Baustein wird aufgrund des Peripheriezugriffsfehlers nicht aufgerufen. Die Programmausführung wird nach dem Bausteinaufruf fortgesetzt. Wenn ein OB 122 vorhanden ist, oder die lokale Fehlerbehandlung aktiviert ist, werden diese ausgeführt.


Kompatibilität von PLC-Programmen aus Versionen vor V14

Inhalt Kompatibilität AWL: Anweisungen "SRW", "SLW" und "SSI" (S7-300, S7-400, S7-1500) Darstellung des BCD-Formats Anweisungen "SET_BF: Bitfeld setzen" und "RESET_BF: Bitfeld rücksetzen" (S7-1200, S7-1500) Anweisungen "SCALE: Skalieren" und "UNSCALE: Deskalieren" (S7-1500) Nicht genutzte Bits von PLC-Datentypen (UDT) bei Firmware >= V1.8.1 Explizite Datentypkonvertierung in SCL (S7-1200) bei Firmware >= V4.2 SCL: EN-/ENO-Mechanismus bei Bausteinparametern vom Datentyp (W)STRING (S7-1200/1500) Weiterreichen von STRING-Parametern zwischen optimierten Bausteinen und Standardbausteinen (S7-1200/1500) Längendeklaration bei Konstanten vom Datentyp "STRING" oder "WSTRING" Änderung des Basisdatentyps für HW_ANY von WORD auf UINT Länge von Bausteinkommentaren Syntaxprüfung der Anweisungen „ SR: Flipflop setzen/rücksetzen “ und „ RS: Flipflop rücksetzen/setzen “ Any-Zeiger: Zugriff auf optimierte Daten Datentyp "(L)REAL" Parameter "ST" bei IEC-Zeiten Begleitwerte für Meldungen (S7-1500) Implizite Datentypkonvertierung bei Bausteinparametern vom Datentyp "DB_ANY" Schnittstelle von Organisationsbausteinen mit Standardzugriff Vergleich von Variablen vom Datentyp WORD mit Variablen vom Datentyp S5TIME (S7-1500)
Kompatibilität von PLC-Programmen aus Versionen vor V14

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Kompatibilität

Grundsätzlich können Sie alle PLC-Programme, die mit älteren Versionen des TIA Portals erstellt wurden, in V14 weiter verwenden. Da jedoch in V14 Verbesserungen und Fehlerbehebungen am Compiler durchgeführt wurden, kann es in wenigen Fällen vorkommen, dass sich das Programm nach dem Hochrüsten anders verhält oder Sie den Programmcode manuell anpassen müssen. Diese Fälle sind nachfolgend detailliert beschrieben.

AWL: Anweisungen "SRW", "SLW" und "SSI" (S7-300, S7-400, S7-1500)

Der erlaubte Wertebereich der Schiebezahl dieser Anweisungen hat sich vom TIA Portal V13 SP1 zum TIA Portal V14 verändert.

In der Version V13 SP1 ist es möglich, auf einer CPU der Baureihen S7-1200/-1500 als Schiebezahl eine Zahl im Wertebereich von 0 bis 31 und auf einer CPU der Baureihen S7-300/-400 als Schiebezahl eine Zahl im Wertebereich von 0 bis 15 anzugeben.

Ab der Version V14 wurden die Wertebereiche für alle CPU-Baureihen (S7-300/400/1200/1500) auf den einheitlichen Wert von 0 bis 15 festgelegt.

Darstellung des BCD-Formats

Die Darstellung des BCD-Formats hat sich in Bezug auf das Vorzeichen vom TIA Portal V13 SP1 zum TIA Portal V14 verändert.

In der Version V13 SP1 werden die Werte im BCD-Format ohne Vorzeichen dargestellt.

Ab der Version V14 werden die Werte im BCD-Format mit Vorzeichen dargestellt. Dadurch kann es zu einer veränderten Darstellung der Werte im BCD-Format kommen.

Ganzzahlen (Dezimalsystem) | Hexadezimalzahlen | Darstellung in V13 SP1 | Darstellung 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

Anweisungen "SET_BF: Bitfeld setzen" und "RESET_BF: Bitfeld rücksetzen" (S7-1200, S7-1500)

Das Verhalten der Anweisung hat sich in Bezug auf Strukturen vom TIA Portal V13 SP1 zum TIA Portal V14 verändert.

In der Version V13 SP1 werden immer so viele Bits gesetzt bzw. zurückgesetzt, wie am Eingang angegeben sind. Das gilt auch, wenn Sie z. B. eine Struktur vom Datentyp PLC-Datentyp, STRUCT oder ARRAY angegeben haben. Wenn Sie z. B. 10 Bits setzen oder zurücksetzen wollen und die Struktur nur 5 Bits enthält, dann werden die nachfolgenden 5 Bits innerhalb der Adressreihenfolge ebenfalls gesetzt oder zurückgesetzt.

Ab der Version V14 werden bei Strukturen vom Datentyp PLC-Datentyp, STRUCT oder ARRAY maximal so viele Bits gesetzt, wie die Struktur Bits enthält: Wenn Sie z. B. den Wert "20" angeben und die Struktur nur 10 Bits enthält, dann werden auch nur diese 10 Bits gesetzt. Wenn Sie z. B. den Wert "5" angeben und die Struktur 10 Bits enthält, dann werden genau 5 Bits gesetzt.

Anweisungen "SCALE: Skalieren" und "UNSCALE: Deskalieren" (S7-1500)

Das Verhalten der Anweisung hat sich in Bezug auf die Angabe der Grenzwerte (LO_LIM > HI_LIM) vom TIA Portal V13 SP1 zum TIA Portal V14 verändert.

In der Version V13 SP1 erhielten Sie eine Fehlermeldung, wenn der untere Grenzwert größer als der obere Grenzwert war.

Ab der Version V14 ist diese Wertangabe zulässig und das Ergebnis wird umgekehrt proportional zum Eingabewert skaliert.

Auf den CPUs der Baureihen S7-300/400 hat die Anweisung schon immer das Ergebnis umgekehrt proportional zum Eingabewert skaliert.

Nicht genutzte Bits von PLC-Datentypen (UDT) bei Firmware >= V1.8.1

Die nicht genutzten Bits von PLC-Datentypen in Standard Speicherbereichen werden belegt bzw. überschrieben, z. B. bei einem PLC-Datentyp, der 4 Bit beinhaltet.

Bei Firmware Versionen < V1.8.1 konnten Sie die nicht genutzten Bits eines PLC-Datentyps anderweitig verwenden.

Ab der Firmware Version >= V1.8.1 werden alle Bits, auch wenn nur 4 Bits benutzt werden, belegt bzw. überschrieben.

Hinweis

Adresszuweisungen

Achten sie darauf, dass Sie unterschiedlichen symbolischen Adressierungen nicht zweimal die gleiche absolute Adresse zuweisen.

Explizite Datentypkonvertierung in SCL (S7-1200) bei Firmware >= V4.2

Bei Firmware Versionen < V4.2 wurde bei der expliziten Datentypkonvertierung in SCL von SINT/INT/DINT/REAL_TO_STRING/WSTRING die Zeichenkette rechtsbündig übertragen und mit führenden Leerzeichen aufgefüllt.

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

Ab dem TIA Portal V13 wird bei der expliziten Datentypkonvertierung in SCL von SINT/INT/DINT/REAL_TO_STRING/WSTRING die Zeichenkette mit einem führenden Vorzeichen dargestellt und linksbündig übertragen.

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

SCL: EN-/ENO-Mechanismus bei Bausteinparametern vom Datentyp (W)STRING (S7-1200/1500)

Ab TIA Portal V14 wird geprüft, ob Bausteinparameter vom Datentyp (W)STRING bei der Parameterübergabe zur Laufzeit abgeschnitten werden. Dies kann vorkommen, wenn Formal- und Aktualparameter unterschiedliche deklarierte Längen haben. Wenn die deklarierte Länge des Zielparameters zur Laufzeit nicht ausreicht, um den (W)STRING aufzunehmen, wird der (W)STRING abgeschnitten und der Freigabeausgang ENO auf "FALSE" gesetzt.

Wenn Sie den Freigabeausgang ENO in Ihrem Programm auswerten, ändert sich möglicherweise die Semantik Ihres Programms.

Weiterreichen von STRING-Parametern zwischen optimierten Bausteinen und Standardbausteinen (S7-1200/1500)

Vor TIA Portal V14 wurden bei der Parameterübergabe zwischen optimierten und nicht-optimierten Bausteinen keine Längeninformationen für STRINGs an den aufgerufenen Baustein übergeben. Somit konnten bei der Weiterbearbeitung des STRINGs Zugriffsfehler auftreten, die nicht vom ENO-Mechanismus erfasst wurden. Der Freigabeausgang "ENO" blieb trotz Zugriffsfehler auf "TRUE".

Ab TIA Portal V14 werden STRING-Längeninformationen übergeben und Zugriffsfehler durch den ENO-Mechanismus überwacht. Wenn Sie den Freigabeausgang ENO in Ihrem Programm auswerten, ändert sich möglicherweise die Semantik Ihres Programms.

Längendeklaration bei Konstanten vom Datentyp "STRING" oder "WSTRING"

Bei lokalen und globalen (W)STRING-Konstanten sind keine Längendeklarationen mehr zulässig. Wenn Ihr Programm Längendeklarationen, z.B."MyStringConst [7]", enthält, werden diese beim Hochrüsten automatisch entfernt. Diese Änderung hat jedoch keine semantische Auswirkung auf Ihr Programm.

Änderung des Basisdatentyps für HW_ANY von WORD auf UINT

Der Hardware-Datentyp "HW_ANY" dient zur Identifikation einer beliebigen Hardware-Komponente, z. B. einer Baugruppe. In V14 wurde der Basisdatentyp von "HW_ANY" von WORD auf UINT geändert. Nach der Konvertierung nach V14 kann es deshalb zu Fehlern beim Übersetzen kommen, wenn Sie an einem Parameter vom Datentyp "HW_ANY" als Aktualwert eine explizite WORD-Konstanten (z. B. W#16#1) oder eine Variable vom Datentyp WORD angegeben haben.

Ändern Sie in diesem Fall die Notation der Konstante (z. B. auf 16#1) oder ändern Sie den Datentyp der Variablen auf UINT.

Länge von Bausteinkommentaren

Ab TIA Portal V14 sollten die Bausteinkommentare eine Länge von 32767 Unicode-Zeichen nicht überschreiten.

Syntaxprüfung der Anweisungen „ SR: Flipflop setzen/rücksetzen “ und „ RS: Flipflop rücksetzen/setzen “

Am Eingang „S“ dürfen Eingänge, Ausgänge, Merker sowie statische oder lokale Daten als Operanden verwendet werden. Die Verwendung von Konstanten ist nicht zulässig. Bisher wurde jedoch die Verwendung der Konstanten "0" und "1" nicht durch die Syntaxprüfung abgelehnt. Ab TIA Portal V14 wurde die Syntaxprüfung verbessert, so dass nun auch die Verwendung von "0" oder "1" am Eingang „S“ abgelehnt wird. Möglicherweise erhalten Sie beim Übersetzen eines bisher fehlerfrei übersetzbaren Programms nun eine Fehlermeldung. Ändern Sie in diesem Fall Ihr Programm und verwenden Sie einen zulässigen Operanden.

Any-Zeiger: Zugriff auf optimierte Daten

Der ANY-Zeiger darf auch bei einer CPU der Baureihe S7-1500 nur auf Speicherbereiche mit der Zugriffsart "Standard" zeigen. Der Zugriff auf optimierte Daten über einen ANY-Zeiger ist nicht zulässig.

Ab TIA Portal V14 findet eine genauere Syntaxprüfung bei ANY-Zeigern statt. Der Zugriff auf optimierte Daten wird nun abgelehnt. Möglicherweise erhalten Sie beim Übersetzen eines bisher fehlerfrei übersetzbaren Programms nun eine Fehlermeldung.

Datentyp "(L)REAL"

Auf 64-Bit-Windows-Versionen wird der Datentyp LREAL unter Umständen anders ausgewertet als in den bisherigen 32-Bit-Windows-Versionen. Ein Unterschied kann bei Rundungen und (L)Real-Werten von Konstanten im Least Significant Bit auftreten.

Die mögliche Differenz liegt in der letzten Stelle der Mantisse und hat somit in den meisten Fällen nur geringfüge Auswirkungen auf die Genauigkeit.

Falls Sie die letzte Stelle der Mantisse auswerten, kann sich die Semantik Ihres STEP 7-Programms nach der Konvertierung ändern.

Parameter "ST" bei IEC-Zeiten

Der Parameter "ST" einer IEC-Zeit wird intern genutzt und darf nicht geschrieben werden. Deshalb ist dieser Parameter ab TIA Portal V14 nicht mehr sichtbar. Wenn Sie in Ihrem Programm schreibend auf den Parameter "ST" zugreifen, wird nach dem Hochrüsten eine Fehlermeldung beim Übersetzen ausgegeben.

Wenn Sie Daten mit Inter Project Engineering austauschen, und mit HMI auf den Parameter "ST" zugegriffen haben, müssen Sie das Projekt zunächst exportieren und in der Proxy-CPU neu importieren. Erst dann verschwindet der Parameter "ST" in der HMI-Projektierung.

Begleitwerte für Meldungen (S7-1500)

Mit einer älteren Version des TIA Portals erstellte Projekte können eingebettete Begleitwerte enthalten, die in den verschiedenen Projektsprachen unterschiedlich strukturiert sind. Die Begleitwerte können beispielsweise eine andere Reihenfolge haben oder fehlen in einer anderen Sprache. Beim Hochrüsten eines solchen Projekts wird die Reihenfolge der Begleitwerte vereinheitlicht. Sie richtet sich nach der im Ursprungsprojekt eingestellten Referenzsprache. In diesem Fall ist es empfehlenswert, die übersetzten Texte prüfen und korrigieren zu lassen.

Implizite Datentypkonvertierung bei Bausteinparametern vom Datentyp "DB_ANY"

Beim Zugriff auf einen Bausteinparameter vom Datentyp "DB_ANY" mit der Syntax DB_ANY.%DB(B|W|D) wurde bisher keine implizite Datentypkonvertierung durchgeführt. Das Bitmuster des Quellwerts wurde einfach in den Zieldatentyp verschoben. Wenn der Zieldatentyp kleiner war als der Quelldatentyp, kam es zu einem Überlauf und der geschriebene Wert war möglicherweise falsch oder ungenau. Bei Genauigkeitsverlusten oder Laufzeitfehlern wurde der Freigabeausgang ENO nicht auf "FALSE" gesetzt.

Ab V14 wird bei einer Parameterübergabe mit der Syntax DB_ANY.%DB(B|W|D) nach den Regeln der impliziten Datentypkonvertierung konvertiert. Beachten Sie, dass dadurch nach dem Hochrüsten möglicherweise ein anderer Wert geschrieben wird und die Semantik Ihres Programms sich verändern kann. Außerdem wird beim Auftreten eines Laufzeitfehlers der Freigabeausgang ENO auf "FALSE" gesetzt.

Schnittstelle von Organisationsbausteinen mit Standardzugriff

Die Schnittstelle von Organisationsbausteinen mit Standardzugriff muss eine Mindestgröße von 20 Byte haben. In älteren Versionen des TIA Portals wurde während des Übersetzungslaufs nur die Schnittstelle des OB1 hinsichtlich der Mindestgröße überprüft. Ab V14 werden die Schnittstellen aller Organisationsbausteine geprüft. Möglicherweise erhalten Sie beim Übersetzen eines bisher fehlerfrei übersetzbaren Programms nun eine Fehlermeldung.

Vergleich von Variablen vom Datentyp WORD mit Variablen vom Datentyp S5TIME (S7-1500)

Ab TIA Portal V14 werden beim Vergleich einer Variablen vom Datentyp WORD mit einer Variablen vom Datentyp S5TIME beide Variablen in den Datentyp TIME konvertiert. Die WORD-Variable wird dabei als S5TIME-Wert interpretiert. Falls eine der beiden Variablen nicht konvertiert werden kann, wird der Vergleich nicht durchgeführt und das Ergebnis ist FALSE. Bei erfolgreicher Konvertierung wird der Vergleich abhängig vom gewählten Vergleichsausdruck durchgeführt.


Kompatibilität von PLC-Programmen aus Versionen vor V13 SP1

Inhalt Kompatibilität Nicht genutzte Bits von PLC-Datentypen (UDT) bei Firmware >= V1.8.1 Explizite Datentypkonvertierung in SCL (S7-1200) bei Firmware >= V4.2 Lesen eines ungültigen Peripherieeingangs Anweisung "S_CONV: Zeichenkette konvertieren" Anweisung "SET: Bereich bitweise setzen" (S7-300/S7-400) Anweisung "MUX: Multiplexen" (SCL) Anweisung "DEMUX: Demultiplexen" (SCL) Anweisung "MOVE: Wert kopieren" (AWL) (S7-1500) Anweisung "Program_Alarm: Programmmeldung mit Begleitwerten erzeugen" (S7-1500) Anweisungen "READ_DBL: Aus Datenbaustein im Ladespeicher lesen" und "WRIT_DBL: In Datenbaustein im Ladespeicher schreiben" Anweisungen "READ_DBL: Aus Datenbaustein im Ladespeicher lesen" und "WRIT_DBL: In Datenbaustein im Ladespeicher schreiben" (SCL) Funktionswerte (Return) Vergleich der beiden Hardware-Datentypen HW_IO und HW_DEVICE Implizite Konvertierung von Gleitpunktzahlen nach DWORD (GRAPH) (S7-1500) Zuweisung eines Wertes an eine LTIME-Konstante (S7-1500) Indirektes Indizieren von ARRAY-Komponenten vom Datentyp Bitfolge in SCL (S7-1200/S7-1500) EN-/ENO-Mechanismus bei STRING Konvertierungen (S7-1200/S7-1500) Überschreitung des Lokaldaten-Stacks (S7-300/S7-400)
Kompatibilität von PLC-Programmen aus Versionen vor V13 SP1

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Kompatibilität

Grundsätzlich können Sie alle PLC-Programme, die mit TIA Portal V12 SP1 oder V13 erstellt wurden, in V13 SP1 weiter verwenden. Da jedoch in V13 SP1 Verbesserungen und Fehlerbehebungen am Compiler (Übersetzung des Programmcodes) durchgeführt wurden, kann es in wenigen Fällen vorkommen, dass sich das Programm nach dem Hochrüsten anders verhält oder Sie den Programmcode manuell anpassen müssen. Diese Fälle sind nachfolgend detailliert beschrieben.

Nicht genutzte Bits von PLC-Datentypen (UDT) bei Firmware >= V1.8.1

Die nicht genutzten Bits von PLC-Datentypen in Standard Speicherbereichen werden belegt bzw. überschrieben, z. B. bei einem PLC-Datentyp, der 4 Bit beinhaltet.

Bei Firmware Versionen < V1.8.1 konnten Sie die nicht genutzten Bits eines PLC-Datentyps anderweitig verwenden.

Ab der Firmware Version >= V1.8.1 werden alle Bits, auch wenn nur 4 Bits benutzt werden, belegt bzw. überschrieben.

Hinweis

Adresszuweisungen

Achten sie darauf, dass Sie unterschiedlichen symbolischen Adressierungen nicht zweimal die gleiche absolute Adresse zuweisen.

Explizite Datentypkonvertierung in SCL (S7-1200) bei Firmware >= V4.2

Bei Firmware Versionen < V4.2 wurde bei der expliziten Datentypkonvertierung in SCL von SINT/INT/DINT/REAL_TO_STRING/WSTRING die Zeichenkette rechtsbündig übertragen und mit führenden Leerzeichen aufgefüllt.

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

Ab dem TIA Portal V13 wird bei der expliziten Datentypkonvertierung in SCL von SINT/INT/DINT/REAL_TO_STRING/WSTRING die Zeichenkette mit einem führenden Vorzeichen dargestellt und linksbündig übertragen.

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

Lesen eines ungültigen Peripherieeingangs

Im TIA Portal ab der Version V12 wird der Fehlercode 16#2942 für das Lesen eines ungültigen Peripherieeingangs nur noch dann ausgegeben, wenn Sie den fehlerhaften Zugriff so programmiert haben, dass dieser auch wirksam wird, z. B. %MW10 := "UngültigerWortZugriff":P, und nicht innerhalb einer irrelevanten Sequenz liegt. Das wäre z. B. #tmp := "UngültigerWortZugriff":P, wenn die Variable #tmp im restlichen Programmbaustein nicht verwendet wird.

Anweisung "S_CONV: Zeichenkette konvertieren"

Der EN-/ENO-Mechanismus verhält sich im TIA Portal V13 SP1 unterschiedlich zum TIA Portal V13.

In der Version V13 liefert der ENO-Freigabeausgang im Fehlerfall den Signalzustand "0", auch wenn Sie den ENO-Freigabeausgang deaktiviert haben. Wenn Sie eine weitere Anweisung an den ENO-Freigabeausgang geschaltet haben, dann wird diese nicht ausgeführt.

In der Version V13 SP1 liefert der ENO-Freigabeausgang im Fehlerfall den Signalzustand "1", wenn Sie den ENO-Freigabeausgang deaktiviert haben. Wenn Sie eine weitere Anweisung an den ENO-Freigabeausgang geschaltet haben, dann wird diese erwartungsgemäß ausgeführt.

Anweisung "SET: Bereich bitweise setzen" (S7-300/S7-400)

Im TIA Portal können Sie am Parameter N der Anweisung SET auch ein Element eines Datenbausteins verschalten.

Anweisung "MUX: Multiplexen" (SCL)

Bis einschließlich TIA Portal V13 wurde der Wert der Variablen am Eingangsparameter unverändert als Funktionswert ausgegeben, auch wenn der Parameter K eine negative Ganzzahl hatte. Dieses Verhalten hat sich im TIA Portal V13 SP1 geändert.

Wenn Sie im TIA Portal V13 SP1 an den Eingangsparametern der Anweisung MUX eine Variable mit gültigem Datentyp angeben und der Parameter K eine negative Ganzzahl hat, dann wird der Wert der Variable verändert. Die gültigen Datentypen finden Sie in der Beschreibung der Anweisung MUX im Informationssystem.

Anweisung "DEMUX: Demultiplexen" (SCL)

Bis einschließlich TIA Portal V13 wurde am Ausgangsparameter OUTELSE kein Wert ausgegeben, wenn der Wert am Parameter K < 0 war. Dagegen wurde am Ausgangsparameter OUTELSE der Wert des Eingangsparameters IN ausgegeben, wenn der Wert am Parameter K > verfügbare Ausgänge war. Dieses Verhalten hat sich im TIA Portal V13 SP1 geändert.

Wenn Sie im TIA Portal V13 SP1 am Parameter K einen Wert angeben, der außerhalb der verfügbaren Ausgänge liegt (K < 0 oder K > verfügbare Ausgänge), dann wird am Ausgangsparameter OUTELSE der Wert des Eingangsparameters IN ausgegeben.

Anweisung "MOVE: Wert kopieren" (AWL) (S7-1500)

Ab TIA Portal V13 SP1 gilt bei der Anweisung "MOVE" in AWL eine strengere Syntaxregel:

Bis einschließlich TIA Portal V13 war es möglich, die untypisierte Konstanten, wie z. B. "0" am Eingangsparameter IN anzugeben.

Wenn Sie im TIA Portal V13 SP1 z. B. den Wert "0" kopieren möchten, dann müssen Sie eine typisierte Konstante, entsprechend des Datentyps des Ausgangsparameters, angeben (z. B. INT#0, DINT#0, etc.).

Anweisung "Program_Alarm: Programmmeldung mit Begleitwerten erzeugen" (S7-1500)

Ab TIA Portal V13 SP1 darf der Datentyp INT für die Begleitwerte bzw. für eine Indizierungsvariable einer Textliste nicht mehr verwendet werden. Verwenden Sie stattdessen den Datentyp UINT.

Anweisungen "READ_DBL: Aus Datenbaustein im Ladespeicher lesen" und "WRIT_DBL: In Datenbaustein im Ladespeicher schreiben"

Das TIA Portal V13 SP1 meldet einen Übersetzungsfehler, wenn Sie "READ_DBL" V1.0 oder "WRIT_DBL" V1.0 verwenden und mit dem Parameter DSTBLK auf einen Datenbaustein mit dem Attribut "Nur im Ladespeicher ablegen" zugreifen.

Verwenden Sie stattdessen die Version 1.2 der beiden Anweisungen.

Anweisungen "READ_DBL: Aus Datenbaustein im Ladespeicher lesen" und "WRIT_DBL: In Datenbaustein im Ladespeicher schreiben" (SCL)

Ab TIA Portal V13 SP1 gilt bei den Anweisungen "READ_DBL" und "WRIT_DBL" in SCL die gleiche strenge Syntaxregel wie in allen anderen Programmiersprachen:

Im TIA Portal V13 war es möglich, an den Parametern SRCBLK und DSTBLK „Standard“-Datenbausteine anzugeben, deren enthaltene Variablen unterschiedliche Datentypen hatten.

Ab TIA Portal V13 SP1 müssen die einzelnen enthaltenen Variablen sowohl bei „Standard“- als auch bei „Optimierten“-Datenbausteinen den gleichen Datentyp haben, da ansonsten ein Übersetzungsfehler gemeldet wird.

Funktionswerte (Return)

Ab TIA Portal V13 SP1 gelten beim Funktionsaufruf strengere Syntaxregeln:

Es wird geprüft, dass der Funktionswert (Return) auf jeden Fall geschrieben wird, auch wenn in der Funktion mehrere mögliche Programmpfade durchlaufen werden können, z. B. bei Verwendung von Sprungbefehlen oder IF-Schleifen. Die Gefahr, dass Funktionswerte versehentlich zur Laufzeit nicht geschrieben werden, besteht somit nicht mehr.

Möglicherweise erhalten Sie beim Übersetzen jedoch Syntaxfehler in Funktionen, die sich mit V13 noch fehlerfrei übersetzen ließen. Ändern Sie dann den Programmcode, so dass der Funktionswert in allen möglichen Programmpfaden geschrieben wird.

Beispiel:

SCL Kopiert den nachfolgenden Programmcode in die Zwischenablage.

IF #MyIn1 = #MyIn2 THEN

#Block_3 := #MyIn1 + 1;

END_IF;

In diesem Beispiel wird der Funktionswert von "Block_3" nicht geschrieben, wenn die Bedingung der IF-Anweisung nicht erfüllt ist. Der Funktionswert enthält dann einen undefinierten Wert.

SCL Kopiert den nachfolgenden Programmcode in die Zwischenablage.

#Block_3 := #MyIn1;

IF #MyIn1 = #MyIn2 THEN

#Block_3 := #MyIn1 + 1;

END_IF;

In diesem Beispiel wird der Funktionswert von "Block_3" auf jeden Fall geschrieben, da er mit "MyIn1" vorbelegt wird, bevor die IF-Schleife durchlaufen wird.

Vergleich der beiden Hardware-Datentypen HW_IO und HW_DEVICE

Ab TIA Portal V13 SP1 gilt beim Vergleich der Datentypen HW_IO und HW_DEVICE eine strengere Syntaxregel:

Bis einschließlich TIA Portal V13 war es möglich, die beiden Datentypen HW_IO und HW_DEVICE direkt miteinander zu vergleichen.

Wenn Sie im TIA Portal V13 SP1 die beiden Datentypen vergleichen möchten, dann müssen Sie zuerst eine Variable vom Datentyp HW_ANY im Abschnitt "Temp" der Bausteinschnittstelle anlegen und dann den LADDR (vom Datentyp HW_DEVICE) in die Variable umkopieren. Anschließend ist ein Vergleich von HW_ANY und HW_IO möglich.

Implizite Konvertierung von Gleitpunktzahlen nach DWORD (GRAPH) (S7-1500)

Ab TIA Portal V13 SP1 gelten bei der impliziten Konvertierung von Gleitpunktzahlen nach DWORD strengere Syntaxregeln:

Bis einschließlich TIA Portal V13 war es möglich, eine untypisierte Konstante (z. B. 1.0) implizit in den Datentyp DWORD zu konvertieren, wenn der Wert kleiner als 32 Bit war.

Wenn Sie im TIA Portal V13 SP1 eine Gleitpunktzahl implizit in den Datentyp DWORD konvertieren wollen, dann dürfen Sie nur noch typisierte Konstanten (z. B. REAL#1.0) verwenden, da eine untypisierte Konstante (z. B. 1.0) als Datentyp LREAL interpretiert wird und somit nicht mehr implizit nach DWORD konvertiert werden kann.

Zuweisung eines Wertes an eine LTIME-Konstante (S7-1500)

Ab TIA Portal V13 SP1 gilt bei der Definition eines Wertes an eine LTIME-Konstante eine strengere Syntaxregel:

Bis einschließlich TIA Portal V13 war es möglich, einen TIME-Wert (z.B. T#10s) einer LTIME-Konstanten zuzuweisen.

Wenn Sie im TIA Portal V13 SP1 einen Wert einer LTIME-Konstanten zuweisen möchten, dann müssen Sie eine LTIME-Syntax verwenden. (z. B. LT#10s).

Bitte beachten Sie, dass entsprechende TIA Portal-Projekte aus Vorgängerversionen bereits vor dem Upgrade auf TIA Portal V13 SP1 angepasst werden müssen.

Indirektes Indizieren von ARRAY-Komponenten vom Datentyp Bitfolge in SCL (S7-1200/S7-1500)

Im TIA Portal V13 haben Sie in SCL auf einer CPU der Baureihen S7-1200/1500 die Möglichkeit, zur Adressierung der Komponenten eines ARRAYs als Index neben einer Variablen vom Datentyp Ganzzahl auch eine Variable vom Datentyp BYTE, WORD, DWORD oder LWORD anzugeben, wenn die IEC-Prüfung nicht eingestellt ist. Auf einer CPU der Baureihen S7-300/400 ist das nicht möglich.

Dadurch ergibt sich eine Inkompatibilität zum TIA Portal V12 SP1, bei dem das indirekte Indizieren mit dem Datentyp Bitfolge auch auf einer CPU der Baureihen S7-300/400 zulässig ist.

EN-/ENO-Mechanismus bei STRING Konvertierungen (S7-1200/S7-1500)

Konvertierung

Erklärung

Strg_TO_Chars: Zeichenkette in Array of CHAR konvertieren

Der ENO-Freigabeausgang liefert den Signalzustand "0", auch wenn Sie den ENO-Freigabeausgang deaktiviert haben:

  • Bei einem ungültigen Zeichen am Parameter CHARS

  • Bei einem ungültigen ARRAY-Index am Parameter PCHARS

  • Wenn die Summe der Parameter PCHARS und STRG die Länge des Ziel-ARRAYs übersteigt.

Chars_TO_Strg: Array of CHAR in Zeichenkette konvertieren

Der ENO-Freigabeausgang liefert den Signalzustand "0", auch wenn Sie den ENO-Freigabeausgang deaktiviert haben:

  • Wenn die Summe der Parameter PCHARS und CNT die Länge des Quell-ARRAYs übersteigt.

Überschreitung des Lokaldaten-Stacks (S7-300/S7-400)

Ab TIA Portal V13 SP1 wird geprüft, ob die Größe des Lokaldaten-Stacks, die Sie in der Hardware-Konfiguration für die OB-Prioritäten definiert haben, überschritten wird.

Dadurch erhalten Sie möglicherweise beim Übersetzen Fehlermeldungen in Projekten, die sich mit V13 noch fehlerfrei übersetzen ließen. Ändern Sie dann in der Hardware-Konfiguration die maximale Größe des Lokaldaten-Stacks.


Inter Project Engineering (IPE)

Inter Project Engineering (IPE)

Dieses Kapitel enthält Informationen zu folgenden Themen:
  • Hinweise zu IPE


Hinweise zu IPE

Inhalt Systemdiagnose im Geräte-Proxy einsetzen Verbindungen zum SIMATIC S7-1500 Software Controller Unterstützung von Alarm_S Meldungen Kompatibilität
Hinweise zu IPE

Inhalt

Hinweise, die nicht mehr in der Online-Hilfe berücksichtigt werden konnten und wichtige Hinweise zu Produkt-Eigenschaften.

Systemdiagnose im Geräte-Proxy einsetzen

Um die Funktion "Systemdiagnose" in einem IPE Geräte-Proxy verwenden zu können, z. B. für eine Systemdiagnose-Anzeige, fügen Sie die "PLC-Meldungen" als Inhalt eines Geräte-Proxys ein.

Verbindungen zum SIMATIC S7-1500 Software Controller

Verbindungen zum SIMATIC S7-1500 Software Controller als Geräte-Proxy sind nur über die Schnittstellen möglich, die der Software PLC zugeordnet sind.

Unterstützung von Alarm_S Meldungen

Die Funktionalität Integriertes Projektieren mit WinCC und SIMATIC Manager unterstützt die Alarm_S Meldungen, die über Datenbausteine und Continuous Function Chart (CFC) erreichbar sind.

Kompatibilität

Mit TIA Portal V15.1 können Sie die IPE-Dateien der gleichen Version und früherer Versionen ab V13 SP1 öffnen.

Die IPE-Dateien, die mit der TIA Portal Version V15.1 erstellt wurden, können mit früheren Versionen nicht geöffnet werden.