Herunterladen Inhalt Inhalt Diese Seite drucken
Siemens SIMATIC S7-1500 Funktionshandbuch
Vorschau ausblenden Andere Handbücher für SIMATIC S7-1500:
Inhaltsverzeichnis

Werbung

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Siemens SIMATIC S7-1500

  • Seite 2 Vorwort Wegweiser SIMATIC Produktübersicht Installieren S7-1500 S7-PLCSIM Advanced Kommunikationswege Simulation Funktionshandbuch Virtuelles Zeitverhalten Anwenderschnittstellen (API) Einschränkungen, Meldungen und Abhilfe Liste der Abkürzungen 05/2021 A5E37039506-AD...
  • Seite 3: Rechtliche Hinweise

    Hinweise in den zugehörigen Dokumentationen müssen beachtet werden. Marken Alle mit dem Schutzrechtsvermerk ® gekennzeichneten Bezeichnungen sind eingetragene Marken der Siemens AG. Die übrigen Bezeichnungen in dieser Schrift können Marken sein, deren Benutzung durch Dritte für deren Zwecke die Rechte der Inhaber verletzen kann. Haftungsausschluss Wir haben den Inhalt der Druckschrift auf Übereinstimmung mit der beschriebenen Hard- und Software geprüft.
  • Seite 4: Vorwort

    Vorwort Zweck der Dokumentation Das vorliegende Funktionshandbuch beschreibt die Simulations-Software SIMATIC S7-PLCSIM Advanced V4.0. Sie können damit Ihre SIMATIC STEP 7-Programme auf einem virtuellen Controller simulieren und testen. Gültigkeitsbereich Das Funktionshandbuch ist gültig für folgende Bestellvarianten: • 6ES7823-1FA03-0YA5 SIMATIC S7-PLCSIM Advanced V4.0 •...
  • Seite 5: Besondere Informationen

    Weiterführende Informationen zu möglichen Schutzmaßnahmen im Bereich 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, Produkt-Updates anzuwenden, sobald sie 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-...
  • Seite 6: Inhaltsverzeichnis

    Inhaltsverzeichnis Vorwort ..............................3 Wegweiser ............................11 S7-PLCSIM Produkte ......................13 Produktübersicht ..........................14 Was ist S7-PLCSIM Advanced?..................... 14 Kompatibilität beim Upgrade ..................... 15 Sicherheit bei S7-PLCSIM Advanced ..................16 Simulations-Support ......................17 Unterstützte CPUs ......................18 Unterschiede zwischen simulierter und realer CPU .............. 19 2.6.1 Einschränkungen bei allen unterstützten CPUs ..............
  • Seite 7 5.1.2.4 Instanzen importieren ......................53 5.1.3 Download .......................... 55 5.1.4 Netzwerk-Adressen in der Simulation ................. 57 5.1.4.1 Siemens PLCSIM Virtual Ethernet Adapter ................57 5.1.4.2 PLCSIM Advanced Instanzen ....................57 5.1.5 Peripherie-I/O simulieren ....................59 5.1.6 Kommunikation simulieren ....................60 5.1.6.1...
  • Seite 8 Inhaltsverzeichnis API herunterfahren ......................105 7.3.1 Native C++ ........................105 7.3.1.1 DestroyInterface() ......................106 7.3.1.2 RuntimeApiEntry_DestroyInterface ................... 107 7.3.1.3 FreeApi() ......................... 108 7.3.1.4 ShutdownAndFreeApi() ....................109 7.3.2 .NET (C#) ......................... 110 7.3.2.1 API herunterfahren ......................110 Globale Funktionen (Native C++) ..................110 API ISimulationRuntimeManager ..................
  • Seite 9 Inhaltsverzeichnis API IRemoteRuntimeManager ................... 314 7.7.1 Schnittstellen - Information und Einstellungen ..............314 7.7.2 Simulation Runtime Instanzen ..................320 7.7.2.1 Simulation Runtime Instanzen (Remote) ................320 7.7.3 Ereignisse für IRemoteRuntimeManager ................327 7.7.3.1 Ereignisse OnConnectionLost ................... 327 Datentypen ........................331 7.8.1 DLL-Importfunktionen (Native C++)..................
  • Seite 10 Inhaltsverzeichnis 7.8.6.4 SDataValueByAddressWithCheck ..................369 7.8.6.5 SDataValueByName ......................370 7.8.6.6 SDataValueByNameWithCheck ..................371 7.8.6.7 SConnectionInfo ......................371 7.8.6.8 SInstanceInfo ........................372 7.8.6.9 SDimension ........................372 7.8.6.10 STagInfo .......................... 373 7.8.6.11 SIP ........................... 376 7.8.6.12 SIPSuite4 ......................... 376 7.8.6.13 SOnSyncPointReachedResult .................... 378 7.8.6.14 SDataRecordInfo ......................
  • Seite 11 Inhaltsverzeichnis 8.10 Einschränkung der Sicherheit bei VMware vSphere Hypervisor (ESXi) ....... 417 8.11 Einschränkungen bei Hyper-V ..................418 8.12 Überwachung Überlauf ....................419 8.13 Abweichende E/A-Werte im STEP 7-Anwenderprogramm ..........419 8.14 Mehrfache Simulationen und mögliche Kollision der IP-Adressen ........420 8.15 Fehlender Zugriff auf eine IP-Adresse ................
  • Seite 12: Wegweiser

    Informationen wie Eigenschaften, Anschlussbilder, Kennlinien, Technische Daten. Übergreifende Informationen In den Funktionshandbüchern finden Sie ausführliche Beschreibungen zu übergreifenden Themen rund um die Systeme SIMATIC S7-1500 und ET 200MP, z. B. Diagnose, Kommunikation, Motion Control, Webserver, OPC UA. Die Dokumentation finden Sie zum kostenlosen Download im Internet (https://support.industry.siemens.com/cs/ww/de/view/109742691).
  • Seite 13: Simatic S7-1500 Vergleichsliste Für Programmiersprachen

    Wegweiser Manual Collection S7-1500/ET 200MP Die Manual Collection beinhaltet die vollständige Dokumentation zum Automatisierungssystem SIMATIC S7-1500 und dem Dezentralen Peripheriesystem ET 200MP zusammengefasst in einer Datei. Sie finden die Manual Collection im Internet (https://support.industry.siemens.com/cs/ww/de/view/86140384). SIMATIC S7-1500 Vergleichsliste für Programmiersprachen Die Vergleichsliste beinhaltet eine Übersicht, welche Anweisungen und Funktionen Sie für welche Controller-Familien anwenden können.
  • Seite 14: S7-Plcsim Produkte

    Wegweiser 1.1 S7-PLCSIM Produkte S7-PLCSIM Produkte PLCSIM Advanced V4.0, PLCSIM V16 und PLCSIM V5.x Tabelle 1- 1 Vergleich von S7-PLCSIM Produkten Funktion PLCSIM Advanced V4.0 PLCSIM V17 PLCSIM V5.x Runtime Eigenständig Zusammen mit STEP 7 Zusammen mit STEP 7 Bedienoberfläche Control Panel Look&Feel von TIA Portal Look&Feel von STEP 7 V5.x...
  • Seite 15: Produktübersicht

    Produktübersicht Was ist S7-PLCSIM Advanced? Mit S7-PLCSIM Advanced können Sie Ihre CPU-Programme auf einem virtuellen Controller simulieren. Sie benötigen dafür keine realen Controller. Sie können Ihre CPU mit STEP 7 im TIA Portal konfigurieren, Ihre Anwendungslogik programmieren und dann die Hardware- Konfiguration und das Programm in den virtuellen Controller laden.
  • Seite 16: Kompatibilität Beim Upgrade

    Produktübersicht 2.2 Kompatibilität beim Upgrade Kompatibilität beim Upgrade Kompatibilität von API- und Runtime Manager-Versionen S7-PLCSIM Advanced V4.0 enthält die Runtime Manager-Version V4.0 und die API-Versionen V1.0 (SP1) bis V4.0. Die Installation von S7-PLCSIM Advance V4.0 führt zu einem Upgrade einer vorhandenen früheren Version.
  • Seite 17: Sicherheit Bei S7-Plcsim Advanced

    Produktübersicht 2.3 Sicherheit bei S7-PLCSIM Advanced Sicherheit bei S7-PLCSIM Advanced Einschränkungen bei der Sicherheit Beachten Sie beim Einsatz von S7-PLCSIM Advanced folgende Einschränkungen: Authentifizierung • Die Anwenderschnittstellen (API) verfügen nicht über Authentifizierungs- und Autorisierungsmöglichkeiten. Es gibt keinen Schutz über Anwenderprofile und Passworte. •...
  • Seite 18: Simulations-Support

    Passworteingabe entsperrt werden. Erst durch die Entsperrung kann in den Eigenschaften des Bausteins im Register "Allgemein > Übersetzung" die Option "Simulierbarkeit mit SIMATIC S7-PLCSIM (Advanced)" aktiviert werden. Weitere Informationen erhalten Sie im Internet (https://support.industry.siemens.com/cs/ww/de/view/109754928). Globale Bibliotheken Bei Verwendung von globalen Bibliotheken kann der Know-how-Schutz nicht gesetzt werden, da die Bibliotheken schreibgeschützt sind.
  • Seite 19: Unterstützte Cpus

    Produktübersicht 2.5 Unterstützte CPUs Unterstützte CPUs Unterstützte CPUs aus der S7-1500-Familie S7-PLCSIM Advanced V4.0 unterstützt die Simulation folgender CPUs: Tabelle 2- 2 Unterstützte CPUs Firmware-Version V1.8 bis V2.9 Standard-CPUs / CPU 1511-1 PN CPU 1511F-1 PN Fehlersichere CPUs CPU 1513-1 PN CPU 1513F-1 PN CPU 1515-2 PN CPU 1515F-2 PN...
  • Seite 20: Unterschiede Zwischen Simulierter Und Realer Cpu

    Produktübersicht 2.6 Unterschiede zwischen simulierter und realer CPU Unterschiede zwischen simulierter und realer CPU Der virtuelle Controller kann eine reale CPU nicht vollständig bis in die einzelnen Details simulieren. Auch wenn ein Programm fehlerfrei auf die CPU heruntergeladen wird und erfolgreich läuft, bedeutet dies nicht unbedingt, dass sich der virtuelle Controller bei der Simulation genauso verhält wie eine reale CPU.
  • Seite 21: Einschränkungen Bei Allen Unterstützten Cpus

    Produktübersicht 2.6 Unterschiede zwischen simulierter und realer CPU 2.6.1 Einschränkungen bei allen unterstützten CPUs Bussysteme S7-PLCSIM Advanced simuliert keine Bussysteme (PROFINET IO, PROFIBUS DP, Rückwandbus). Intelligente IO-Devices (I-Devices) Sie können eine Hardware-Konfiguration mit konfigurierten I-Devices am PROFINET IO in den virtuellen Controller laden.
  • Seite 22: Eingeschränkte Unterstützung

    Produktübersicht 2.6 Unterschiede zwischen simulierter und realer CPU Eingeschränkte Unterstützung S7-PLCSIM Advanced simuliert einige Funktionen in eingeschränktem Umfang. Eine Übersicht finden Sie im Kapitel Einschränkungen, Meldungen und Abhilfe (Seite 410). 2.6.2 Hinweise Passwort-Übernahme bei Baugruppentausch (S7-1500) Je nach Firmware-Version der betroffenen CPUs (zu tauschende CPU und Austausch-CPU) werden Sie mit Informationen konfrontiert, die Ihnen ein Update auf einen aktuellen Algorithmus anbieten bzw.
  • Seite 23: Safety-System-Version V1.6 Bzw. V2.0 Für Fehlersichere Peripherie

    Produktübersicht 2.6 Unterschiede zwischen simulierter und realer CPU Safety-System-Version V1.6 bzw. V2.0 für fehlersichere Peripherie Um ein Projekt mit fehlersicheren Eingabe- und Ausgabemodulen erfolgreich zu simulieren und zu testen, müssen Sie für das Projekt die Safety-System-Version V1.6 bzw. V2.0 verwenden. Mit einer älteren Version funktioniert die Simulation der fehlersicheren Eingabe- und Ausgabemodule nicht korrekt.
  • Seite 24: Passwort Zum Schutz Vertraulicher Konfigurationsdaten

    Beachten Sie, dass Ihr Windows-Kennwort das Passwort zum Schutz vertraulicher Konfigurationsdaten schützt. Sie dürfen deshalb das Windows-Kennwort nicht für andere, nicht vertrauenswürdige Benutzer freigeben. Weitere Informationen Detaillierte Informationen über den Schutz vertraulicher Konfigurationsdaten und zur Secure Communication finden Sie im Funktionshandbuch Kommunikation (https://support.industry.siemens.com/cs/ww/de/view/59192925). S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 25 Produktübersicht 2.7 Passwort zum Schutz vertraulicher Konfigurationsdaten Spezielle Anwendungsfälle Verschieben der Virtual SIMATIC Memory Card auf eine andere virtuelle Maschine (z. B. SIMIT) Wenn Sie kein Passwort zum Schutz vertraulicher Konfigurationsdaten festgelegt haben, dann gibt es keine Einschränkungen beim Verschieben. Wenn Sie das Passwort zum Schutz vertraulicher Konfigurationsdaten festgelegt haben, dann gibt es folgende Einschränkung: Wenn Sie die virtuelle Speicherkarte von einem Computer auf einen anderen verschieben,...
  • Seite 26: Installieren

    Installieren Einleitung 3.1.1 Systemanforderungen PLCSIM Advanced installieren Sie bevorzugt auf einem SIMATIC Field PG M5 Advanced oder einem vergleichbaren PC. Damit PLCSIM Advanced effizient funktioniert, müssen folgende Mindestvoraussetzungen bei der Computer-Hardware oder einer Virtuellen Maschine gegeben sein. Tabelle 3- 1 Systemanforderungen Hardware Virtuelle Maschine...
  • Seite 27 Möglicherweise unterstützen bestimmte Produkte weitere Versionen von Windows. Weitere Informationen dazu finden Sie bei den produktspezifschen Systemvoraussetzungen oder Sie überprüfen die Kompatibiltät mit dem Kompatibilitäts-Tool. Das Kompatibilitäts-Tool finden Sie im Internet (https://support.industry.siemens.com/kompatool/pages/main/index.jsf?). Hinweis Stellen Sie sicher, dass das eingesetzte Windows Betriebssystem auf dem aktuellsten Stand ist.
  • Seite 28: Einschränkungen Durch Virenscanner

    Vorgehen Fügen Sie den Ausnahmen folgende Verzeichnisse hinzu: • "C:\Program Files\Common Files\Siemens\PLCSIMADV\Drivers" • "C:\Program Files (x86)\Common Files\Siemens\PLCSIMADV" • "C:\Program Files (x86)\SIEMENS\Automation\PLCSIMADV\bin" Wenn der Virenscanner nur Dateien als Ausnahmen zulässt, dann fügen Sie alle Dateien aus den genannten Verzeichnissen zu den Ausnahmen hinzu. Wie Sie dabei vorgehen, entnehmen Sie den Anweisungen der jeweiligen Hersteller.
  • Seite 29: Lizenzen

    Installieren 3.1 Einleitung 3.1.3 Lizenzen Floating License PLCSIM Advanced wird mit einer Lizenz vom Typ Floating ausgeliefert, welche versions- und/oder zeitabhängig ist. Die Lizenz kann lokal abgelegt und für ein Netzwerk freigegeben werden. Hinweis Gültigkeit Eine Lizenz ist gültig für zwei Instanzen innerhalb einer PLCSIM Advanced Installation. PLCSIM Advanced V4.0 kann nur mit einer V4.0 Lizenz genutzt werden.
  • Seite 30: Timeout Meldung

    Installieren 3.1 Einleitung Eine Meldung zeigt beim Starten der Instanzen die noch verbleibenden Tage an. Bild 3-2 Trial License Meldung Hinweis Remote-Zugriff Bei einem Remote-Zugriff muss die Meldung auf dem PC bestätigt werden, auf dem die Instanz gestartet wurde. Timeout Meldung Wenn die Meldung zur Lizenz nicht rechtzeitig bestätigt wird, wird die Instanz nicht gestartet und folgende Meldung erscheint: Bild 3-3...
  • Seite 31: Installationsprotokoll

    Mit den Protokolldateien können Sie Installationsfehler und Warnungen auswerten. Die Fehlerbehebung der Installation können Sie selbst durchführen oder sich an den technischen Support von Siemens wenden. Der Produkt-Support benötigt die Informationen aus dem Installationsprotokoll zur Analyse des Problems. Senden Sie dazu den Ordner mit den Protokolldateien als ZIP-Datei an den Support.
  • Seite 32: S7-Plcsim Advanced

    Diese finden Sie unter "%autinstlog%\Reports\Setup_report.cab". Für jede Installation wird eine eigene CAB-Datei mit einer Datums-ID gespeichert. Wenn Sie Hilfe bei der Installation benötigen, dann senden Sie dem technischen Support von Siemens diese CAB-Datei zur Fehlerbehebung. S7-PLCSIM Advanced Das S7-PLCSIM Advanced Paket enthält folgende Software: •...
  • Seite 33: S7-Plcsim Advanced Installieren

    • Hardware und Software des Computers erfüllen die Systemvoraussetzungen. • Sie haben Administratorrechte auf dem Installationscomputer. • Keine anderen Programme sind aktiv. Dies gilt auch für den Siemens Automation License Manager und andere Anwendungen von Siemens. • Alle S7-PLCSIM Versionen kleiner oder gleich V14 sind deinstalliert.
  • Seite 34: Fehler Beim Installieren Von S7-Plcsim Advanced

    Führen Sie für S7-PLCSIM kleiner oder gleich V14 das Setup durch und deinstallieren Sie dabei das Programm. Wenn das Setup nicht mehr vorhanden ist, laden Sie die Setup-Dateien von S7-PLCSIM über die Siemens Mall (https://support.industry.siemens.com/cs/document/65601780). S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 35: S7-Plcsim Advanced Ändern

    Installieren 3.4 S7-PLCSIM Advanced ändern S7-PLCSIM Advanced ändern Voraussetzungen Folgende Bedingungen müssen erfüllt sein, bevor Sie mit dem Ändern der Installation beginnen: • Hardware und Software des Computers erfüllen die Systemvoraussetzungen. • Sie haben Administratorrechte auf dem Installationscomputer. • Keine anderen Programme sind aktiv. Vorgehensweise Gehen Sie zum Ändern Ihrer S7-PLCSIM Advanced-Installation wie folgt vor: 1.
  • Seite 36: S7-Plcsim Advanced Reparieren

    Installieren 3.5 S7-PLCSIM Advanced reparieren S7-PLCSIM Advanced reparieren Voraussetzungen Folgende Bedingungen müssen erfüllt sein, bevor Sie mit dem Reparieren der Installation beginnen: • Hardware und Software erfüllen die Systemvoraussetzungen. • Sie haben Administratorrechte auf dem Installationscomputer. • Keine anderen Programme sind aktiv. Vorgehensweise Gehen Sie zum Reparieren Ihrer Installation wie folgt vor: 1.
  • Seite 37: S7-Plcsim Advanced Deinstallieren

    Installieren 3.6 S7-PLCSIM Advanced deinstallieren S7-PLCSIM Advanced deinstallieren Sie haben zwei Möglichkeiten, S7-PLCSIM Advanced zu deinstallieren: • Sie deinstallieren über die Windows-Systemsteuerung das Programm. • Sie deinstallieren über das Setup-Programm das gesamte Produkt. S7-PLCSIM Advanced über die Windows-Systemsteuerung deinstallieren Gehen Sie wie folgt vor: 1.
  • Seite 38: Kommunikationswege

    Kommunikationswege Lokale und verteilte Kommunikation Für die Kommunikation zwischen STEP 7 ab V15 und den Instanzen der PLCSIM Advanced Anwenderschnittstellen stehen folgende Wege offen: Tabelle 4- 1 Lokale und verteilte Kommunikation Kommunikationswege Lokal Lokal Verteilt Protokoll Softbus TCP/IP TCP/IP Kommunikationsschnittstelle in PLCSIM PLCSIM Virtual PLCSIM Virtual...
  • Seite 39: Lokale Kommunikation

    Kommunikationswege 4.1 Lokale Kommunikation Kommunikationsschnittstelle wählen Die Kommunikationsschnittstelle programmieren Sie über die Anwenderschnittstellen (API) oder wählen Sie im Control Panel unter "Online Access". Die Einstellung gilt jeweils für alle erzeugten Instanzen. Die Voreinstellung ist die Kommunikation über "PLCSIM" (Softbus). Für die verteilte Kommunikation über den "PLCSIM Virtual Ethernet Adapter" (TCP/IP) sind weitere Netzwerkeinstellungen erforderlich, siehe Netzwerk-Adressen in der Simulation (Seite 57).
  • Seite 40: Lokale Kommunikation Über Tcp/Ip

    Kommunikationswege 4.1 Lokale Kommunikation Lokale Kommunikation über TCP/IP Die Kommunikation erfolgt über den PLCSIM Virtual Ethernet Adapter, eine virtuelle Netzwerk-Schnittstelle, die sich wie eine reale Netzwerk-Schnittstelle verhält. Hinweis Lokale Kommunikation über TCP/IP Stellen Sie sicher, dass die Kommunikation nur lokal erfolgt und kein Download auf reale Hardware durchgeführt werden kann.
  • Seite 41: Kommunikation Über Tcp/Ip

    Kommunikationswege 4.2 Kommunikation über TCP/IP Kommunikation über TCP/IP Verteilte Kommunikation Verteilte Kommunikation über TCP/IP bedeutet, dass die PLCSIM Advanced Instanzen über den Virtual Switch mit anderen Geräten kommunizieren. Kommunikation ist möglich mit realen oder simulierten CPUs, realen oder simulierten HMIs. Der PLCSIM Virtual Switch muss am PLCSIM Virtual Ethernet Adapter aktiviert werden, damit die Instanzen im Netzwerk sichtbar sind.
  • Seite 42: Beispiel 2: Verteilte Kommunikation Auf Einem Pc

    Kommunikationswege 4.2 Kommunikation über TCP/IP Beispiel 2: Verteilte Kommunikation auf einem PC Im folgenden Beispiel befindet sich STEP 7 auf einem PC, die PLCSIM Advanced Instanzen in einer virtuellen Maschine auf dem selben PC. PC und virtuelle Maschine sind über die (virtuellen) Netzwerkkarten verbunden.
  • Seite 43: Beispiel 3: Verteilte Kommunikation

    Kommunikationswege 4.2 Kommunikation über TCP/IP Beispiel 3: Verteilte Kommunikation Das folgende Beispiel zeigt einen Aufbau mit PCs, auf denen verteilt STEP 7, PLCSIM Advanced Instanzen und virtuelle Maschinen mit PLCSIM Advanced Instanzen laufen. Bild 4-5 Verteilte Kommunikation mit PCs und virtuellen Maschinen S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 44: Verteilte Kommunikation Aktivieren

    1. Öffnen Sie dazu in der Windows Systemsteuerung das "Netzwerk- und Freigabecenter". 2. Öffnen Sie die Eigenschaften des gewünschten Netzwerkadapters, z. B. der "Local Area Connection". 3. Aktivieren Sie das Optionskästchen für den "Siemens PLCSIM Virtual Switch" und bestätigen Sie mit OK. Bild 4-6...
  • Seite 45: Erreichbare Teilnehmer

    Kommunikationswege 4.3 Verteilte Kommunikation aktivieren Erreichbare Teilnehmer Wenn der PLCSIM Virtual Switch aktiviert ist, zeigt STEP 7 in der Projektnavigation die Teilnehmer an, die über den Virtual Ethernet Adapter erreichbar sind. Bild 4-7 Erreichbare Teilnehmer am Virtual Ethernet Adapter Verteilte Kommunikation über WLAN Bei der Verwendung von verteilter Kommunikation über WLAN kann es sein, dass die von PLCSIM Advanced installierte Programmbibliothek NPcap mit dem integrierten WLAN-Adapter des Computers nicht funktioniert.
  • Seite 46: Simulation

    Simulation CPU simulieren 5.1.1 Prinzipielles Vorgehen bei der Simulation Die folgende Übersicht zeigt die prinzipiellen Schritte, um eine Simulation mit einer Instanz eines virtuellen Controllers durchzuführen. Voraussetzung Folgende Voraussetzungen müssen zum Starten einer Simulation über die lokale Kommunikation erfüllt sein: •...
  • Seite 47: Control Panel - Bedienoberfläche

    Simulation 5.1 CPU simulieren 5.1.2 Control Panel - Bedienoberfläche 5.1.2.1 S7-PLCSIM Advanced Symbol Nach der Installation von PLCSIM Advanced befindet sich folgendes Symbol auf dem Windows Desktop: Bild 5-1 PLCSIM Advanced Symbol Ein Doppelklick auf das Symbol öffnet das Control Panel für PLCSIM Advanced. Wenn sich das Control Panel im Hintergrund befindet, wird es durch einen weiteren Doppelklick in den Vordergrund gebracht.
  • Seite 48: Grafische Oberflächen

    Simulation 5.1 CPU simulieren In der Taskleiste können Sie die Mouse-over-Funktion nutzen, um Meldungen zum aktuellen Zustand der Instanzen anzuzeigen. Bild 5-3 Beispiel: Meldung in der Taskleiste 5.1.2.2 Grafische Oberflächen Die grafischen Oberflächen synchronisieren sich mit API-Befehlen. Sie sind aber optional und werden zum Betrieb von PLCSIM Advanced über die API nicht benötigt.
  • Seite 49: Control Panel Als Fenster

    Simulation 5.1 CPU simulieren Control Panel als Fenster Im Gegensatz zur Schnellansicht können Sie das Control Panel über Schaltflächen in der Titelleiste bedienen. Sie können dieses Fenster schließen, ohne dass der Simulation Runtime Prozess beendet wird. ① Legt das Control Panel als Symbol in der Taskleiste ab. ②...
  • Seite 50 Simulation 5.1 CPU simulieren Aufbau S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 51 Simulation 5.1 CPU simulieren ① Online Zugang Schalter zur Auswahl der Kommunikationsschnittstelle ② TCP/IP-Kommunikation Auswahl der Netzwerkkarte für die verteilte Kommunikation ③ Virtuelle Zeit Schieberegler zum Einstellen des Skalierfaktors ④ Strict Motion Timing Hier deaktivieren Sie die Überlauferkennung für Motion Control (OB MC-Servo [OB91]).
  • Seite 52: Schalter Für Kommunikationsschnittstelle

    Simulation 5.1 CPU simulieren Schalter für Kommunikationsschnittstelle Mit dem Schalter wählen Sie für alle zu erzeugenden Instanzen die Kommunikations- schnittstelle aus: • "PLCSIM" entspricht der lokalen Kommunikation über Softbus (Voreinstellung). • "PLCSIM Virtual Ethernet Adapter" entspricht der Kommunikation über TCP/IP. Die Einstellung gilt für alle weiteren Instanzen.
  • Seite 53: Meldungen Anzeigen

    Simulation 5.1 CPU simulieren Instanz-Liste Die Liste enthält die Instanzen, die auf dem PC oder der Virtualisierungsplattform lokal vorhanden sind. Instanzen, die bereits über die Runtime API gestartet wurden, werden erkannt und in der Liste angezeigt. Mit den Schaltflächen "RUN" und "STOP" wählen Sie die Betriebsart der Instanz. Markieren Sie dazu eine oder mehrere Instanzen.
  • Seite 54: Instanzen Importieren

    Simulation 5.1 CPU simulieren 5.1.2.4 Instanzen importieren Voraussetzung Die Funktion steht Ihnen nur zur Verfügung, wenn Sie das Control Panel nicht mit Admin- Rechten starten. Instanzen importieren Mit der Drag and Drop-Funktion können Sie Instanzen aus einem Ordner direkt in die Instanz- Liste des Control Panels importieren.
  • Seite 55 Simulation 5.1 CPU simulieren 2. Wählen Sie eine einzelne oder mehrere Instanzen und ziehen Sie die Instanzen auf den markierten Bereich. Bild 5-6 Control Panel: Instanzen importieren S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 56: Download

    Im Download Dialog wählen Sie die PG/PC-Schnittstelle aus: • "PLCSIM" für den Download über Softbus • "Siemens PLCSIM Virtual Ethernet Adapter" für den Download über TCP/IP • Für die verteilte Kommunikation den realen Adapter, der mit dem Netzwerk verbunden ist...
  • Seite 57 Simulation 5.1 CPU simulieren Download durchführen 1. Wählen Sie die PG/PC-Schnittstelle aus. 2. Klicken Sie auf "Laden". → Im Fenster "Vorschau laden" zeigt STEP 7 die Meldung "Die Downloads werden auf eine simulierte CPU durchgeführt". → Nach dem ersten Download wird die PLCSIM Advanced Instanz mit dem CPU-Typ angezeigt.
  • Seite 58: Netzwerk-Adressen In Der Simulation

    Simulation 5.1 CPU simulieren 5.1.4 Netzwerk-Adressen in der Simulation 5.1.4.1 Siemens PLCSIM Virtual Ethernet Adapter IP-Adresse Beim PLCSIM Virtual Ethernet Adapter können Sie eine statische IP-Adresse zuweisen oder über DHCP eine IP-Adresse beziehen (Voreinstellung). MAC-Adresse Bei der Installation des PLCSIM Virtual Ethernet Adapters wird diesem eine zufällig generierte MAC-Adresse zugewiesen.
  • Seite 59: Aufbau Der Mac-Adresse Einer Instanz

    Beispiel 02-C0-A8-00-83-10 bedeutet: 02 → lokal verwaltete MAC-Adresse einer PLCSIM Advanced Instanz C0-A8-00-83 → IP des Siemens PLCSIM Virtual Ethernet Adapters = 192.168.0.131 1 → Instanz 1 0 → Ethernet-Schnittstelle IE 1 Wenn beim Hochlauf der PLCSIM Advanced keine Virtual SIMATIC Memory Card geladen wurde, dann werden die Schnittstellen der PLCSIM Advanced Instanzen mit ihrer lokal verwalteten MAC-Adresse angezeigt.
  • Seite 60: Peripherie-I/O Simulieren

    Simulation 5.1 CPU simulieren 5.1.5 Peripherie-I/O simulieren Die Runtime API schreibt in einen und liest aus einem Speicherbereich. Dieser Speicher wird am Zykluskontrollpunkt und beim Aufruf zyklischer und azyklischer OBs (Teilprozessabbilder, Alarme, Ereignisse) mit dem internen Prozessabbild des virtuellen S7-1500 Controllers synchronisiert.
  • Seite 61: Kommunikation Simulieren

    Simulation 5.1 CPU simulieren 5.1.6 Kommunikation simulieren 5.1.6.1 Simulierbare Kommunikationsdienste PLCSIM Advanced V4.0 unterstützt folgende Kommunikationsmöglichkeiten: Tabelle 5- 2 Unterstützte Kommunikationsmöglichkeiten Möglichkeiten der Kommunikation Funktionalität / Anweisungen PG-Kommunikation Zur Inbetriebnahme, Test, Diagnose Offene Kommunikation über TCP/IP • TSEND_C / TRCV_C •...
  • Seite 62: Einschränkungen Für Die Modbus-Kommunikation Über Softbus

    Simulation 5.1 CPU simulieren Einschränkungen für die Modbus-Kommunikation über Softbus Verwenden Sie für die Kommunikation über Softbus die in der folgenden Tabelle gezeigten unterstützten Modbus-Versionen oder alternativ die Kommunikation über TCP/IP. Tabelle 5- 3 Modbus-Kommunikation über Softbus MODBUS TCP Lib MB_CLIENT MB_SERVER SOFTBUS...
  • Seite 63: T-Bausteinanweisungen Und Datensegmentierung

    Simulation 5.1 CPU simulieren T-Bausteinanweisungen und Datensegmentierung PLCSIM Advanced implementiert T-Bausteinanweisungen mit einer Datensegmentierung von 4 kByte. Eine reale CPU hat eine Datensegmentierung von 8192 Byte. Wenn Sie mehr als 4 kByte in einer einzelnen Anweisung TSEND senden und im Ad-hoc- Modus mit einer Anweisung TRCV Daten empfangen, erzeugt die Anweisung TRCV neue Daten mit nur 4 kByte.
  • Seite 64: Projektdaten Für Die Simulation Bereitstellen

    Simulation 5.1 CPU simulieren Bild 5-10 Vorschau Laden Dialog Projektdaten für die Simulation bereitstellen 1. Erstellen Sie auf dem PC, auf dem PLCSIM Advanced installiert ist, in dem Verzeichnis, in dem die Instanz ihre Daten speichert, das Verzeichnis "\SIMATIC_MC". 2. Verschieben Sie den Ordner "\SIMATIC.S7S" in das erstellte Verzeichnis. →...
  • Seite 65: Cpu Mit Odk-Funktionalität Simulieren

    Die Beschreibung zu ODK finden Sie im "Programmier- und Bedienhandbuch "S7-1500 Open Development Kit 1500S" ab V2.5 Ausgabe 12/2017: SIMATIC STEP 7 (TIA Portal) Optionen ODK 1500S (https://support.industry.siemens.com/cs/ww/de/ps/13914/man) Relevant für ODK-Anwendungen unter PLCSIM Advanced ist dabei das Kapitel 6 "Entwicklung einer CPU Funktionsbibliothek für die Echtzeit-Umgebung".
  • Seite 66: Unterstützte Funktionsbibliotheken

    Simulation 5.2 CPU mit ODK-Funktionalität simulieren Unterstützte Funktionsbibliotheken PLCSIM Advanced V4.0 unterstützt die folgenden Funktionsbibliotheken für die Echtzeit- Umgebung: • CPU Funktionsbibliothek: Original Shared Object, SO-Datei wie für die Hardware CPUs • PLCSIM Advanced Funktionsbibliothek (Windows Sync): – eine 32-Bit Windows DLL für ODK Runtime –...
  • Seite 67: Fehlercodes

    STEP 7-Anwenderprogramm ausgeführt wird. Welcher ODK-Client gestartet wird, hängt von der Funktionsbibliothek ab, die geladen werden soll: • "Siemens.Simatic.PlcSim.Vplc1500.ODKClient.so.exe" für ein original Shared Object • "Siemens.Simatic.PlcSim.Vplc1500.ODKClient.x86.exe" für eine 32 Bit-Anwendung • "Siemens.Simatic.PlcSim.Vplc1500.ODKClient.x64.exe" für eine 64 Bit-Anwendung Die ausführbaren Dateien dieser Prozesse befinden sich im gleichen Verzeichnis wie die der PLCSIM Advanced Instanzen ("Siemens.Simatic.Simulation.Runtime.Instance.exe").
  • Seite 68: Funktionen Laden

    Simulation 5.2 CPU mit ODK-Funktionalität simulieren Sorgen Sie bei der Entwicklung einer CPU Funktionsbibliothek (SO-Datei) dafür, dass die maximale Stack-Größe von 1 MB nicht überschritten wird. Ein Überlauf des Stacks führt zu einem nicht definierten Verhalten und kann zum Beenden des ODK-Client-Prozesses führen. Hinweis Einschränkungen für die Heap-Bearbeitung bei der Ausführung von CPU Funktionsbibliotheken (Windows Sync)
  • Seite 69: Funktionen Aufrufen

    Simulation 5.2 CPU mit ODK-Funktionalität simulieren ODK-Fehlercodes bei PLCSIM Advanced Die folgende Tabelle enthält die Fehlercodes, die neben den für die CPU geltenden Fehlercodes speziell für ODK-Anwendungen bei PLCSIM Advanced gelten: Tabelle 5- 4 ODK: Ausgangsparameter - Funktionen laden DONE BUSY ERROR STATUS...
  • Seite 70: Funktionen Entladen

    Simulation 5.3 Motion Control simulieren 5.2.4 Funktionen entladen Funktionen entladen - Anweisung "<STEP7Prefix>_Unload" Die CPU Funktionsbibliothek wird mit dem Aufruf der Anweisung "<STEP7Prefix>_Unload" entladen. Wenn keine weitere Funktionsbibliothek geladen wird oder wenn der Prozess der PLCSIM Advanced Instanz geschlossen wird, dann wird der ODK-Client-Prozess heruntergefahren.
  • Seite 71 Simulation 5.3 Motion Control simulieren Warum wird die Meldung "Überlauf" für den OB MC-Servo [OB91] im Diagnosepuffer des virtuellen Controllers S7-PLCSIM Advanced angezeigt Mit S7-PLCSIM Advanced steht Ihnen der virtuelle Controller der S7-1500 Hardware-CPU zur Verfügung. Der virtuelle Controller ermöglicht es Ihnen, die Firmware der S7-1500 unter dem Windows Betriebssystem ablaufen zu lassen.
  • Seite 72: Rückmeldung Der Achsposition

    Position als Referenzpunkt festgelegt. Weitere Informationen Informationen zu den Technologiefunktionen der CPU finden Sie in den Funktionshandbüchern S7-1500/S7-1500T Motion Control (https://support.industry.siemens.com/cs/ww/de/view/109751049). Weitere Informationen erhalten Sie in den Gerätehandbüchern zu den unterstützten SIMATIC Controllern. (https://support.industry.siemens.com/cs/ww/de/view/109744173) S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 73: Simatic Drive Controller Simulieren

    Simulation 5.4 SIMATIC Drive Controller simulieren SIMATIC Drive Controller simulieren Einleitung Der SIMATIC Drive Controller ist eine antriebsbasierte Steuerung im SIMATIC S7-1500 Spektrum. Ein SIMATIC Drive Controller fasst die folgenden Funktionalitäten in einem SINAMICS S120 Booksize Compact Gehäuse zusammen: • fehlersichere SIMATIC S7-1500 Technologie-CPU mit integrierten Technologie-I/Os •...
  • Seite 74 Es gelten weiterhin die Informationen im Kapitel Simulation von Motion Control (Seite 69). Weitere Informationen Das Systemhandbuch SIMATIC Drive Controller (https://support.industry.siemens.com/cs/ww/de/view/109766665) beschreibt ausführlich die Projektierung, Montage, Verdrahtung und Inbetriebnahme des SIMATIC Drive Controllers. Die Online-Hilfe von STEP 7 unterstützt Sie bei der Projektierung und Programmierung.
  • Seite 75: Redundantes System S7-1500R/H Simulieren

    Simulation 5.5 Redundantes System S7-1500R/H simulieren Redundantes System S7-1500R/H simulieren Einleitung In einem redundanten System S7-1500R/H sind die CPUs doppelt, also redundant vorhanden. Die beiden CPUs bearbeiten parallel die gleichen Projektdaten und das gleiche Anwenderprogramm. Die beiden CPUs synchronisieren sich über zwei Redundanzverbindungen.
  • Seite 76 Im redundanten Betrieb des Systems ist keine Simulation mit PLCSIM Advanced möglich. Weitere Informationen Das Systemhandbuch Redundantes System S7-1500R/H (https://support.industry.siemens.com/cs/de/de/view/109754833) beschreibt ausführlich die Projektierung, Montage, Verdrahtung und Inbetriebnahme des redundanten Systems S7-1500R/H. Die Online-Hilfe von STEP 7 unterstützt Sie bei der Projektierung und Programmierung.
  • Seite 77: Virtuelles Zeitverhalten

    Virtuelles Zeitverhalten Der virtuelle Controller nutzt intern für die Simulation zwei Arten von Uhren: Eine virtuelle und eine reale Uhr. Basis für das Anwenderprogramm ist immer die virtuelle Uhr. Sie wird von Komponenten genutzt, die für den Ablauf des STEP 7-Anwenderprogramms relevant sind, wie zyklische OBs, Zykluszeitüberwachung, minimale Zykluszeit, virtuelle Systemzeit und Zeitberechnungen.
  • Seite 78: Zeitversatz

    Virtuelles Zeitverhalten Zeitversatz Hinweis Beachten Sie, dass die Uhrzeitangaben von virtueller Systemzeit und realer Lokalzeit sich um den Zeitversatz unterscheiden, der sich zusätzlich zum gewählten Skalierfaktor aus dem Zeitzonen-Versatz und dem Sommer-/Winterzeit-Versatz bildet. Skalierfaktor Mit einem Skalierfaktor können Sie für Simulationen die virtuelle Uhr des virtuellen Controllers beschleunigen oder verlangsamen.
  • Seite 79: Simulation Beschleunigen Und Verlangsamen

    Virtuelles Zeitverhalten 6.1 Simulation beschleunigen und verlangsamen Simulation beschleunigen und verlangsamen Einfluss von Schnelllauf und Zeitlupe Simulationen können beschleunigt und verlangsamt werden. Schnelllauf und Zeitlupe beeinflussen nur zeitbasierte Komponenten, z. B. zyklische OBs. Im Vergleich zur realen Zeit werden sie durch Schnelllauf häufiger und durch Zeitlupe seltener ausgeführt. Schnelllauf und Zeitlupe ändern nicht die Ausführungsgeschwindigkeit des CPU-Maschinen- Codes.
  • Seite 80: Simulation Anhalten

    Virtuelles Zeitverhalten 6.2 Simulation anhalten Simulation anhalten Freeze-Zustand des virtuellen Controllers Um eine Simulation anzuhalten und um Simulations-Partner zu synchronisieren, kann ein virtueller Controller über die API in einen Freeze-Zustand versetzt werden. Wenn der virtuelle Controller einen Synchronisationspunkt erreicht hat, sendet er das Ereignis OnSyncPointReached an die API-Clients.
  • Seite 81 Virtuelles Zeitverhalten 6.2 Simulation anhalten Synchronisationspunkte Ein Synchronisationspunkt liegt immer dann vor, bevor Eingänge eingelesen werden, z. B. am Zykluskontrollpunkt oder am Anfang eines zyklischen OBs. Bild 6-2 Übersicht zu den Synchronisationspunkten Freeze-Zustand auslösen Um den Freeze-Zustand auszulösen, stehen für den virtuellen Controller folgende Betriebsarten zur Verfügung: •...
  • Seite 82: Simulations-Partner Synchronisieren

    Virtuelles Zeitverhalten 6.3 Simulations-Partner synchronisieren Simulations-Partner synchronisieren 6.3.1 Simulations-Partner zyklusgesteuert synchronisieren SingleStep-Betriebsarten Mit den SingleStep-Betriebsarten des virtuellen Controllers werden mehrere Simulations- Partner (Clients) zyklusgesteuert synchronisiert. Die Betriebsarten definieren den Synchronisationspunkt, an dem der virtuelle Controller in den Freeze-Zustand wechselt und das Ereignis OnSyncPointReached sendet.
  • Seite 83 Virtuelles Zeitverhalten 6.3 Simulations-Partner synchronisieren Beispiel Die Abbildung zeigt schematisch den Ablauf in der Betriebsart SingleStep_CP. Neben dem Ereignis OnSyncPointReached, sendet der virtuelle Controller auch die virtuelle Zeit, seit der letzte Synchronisationspunkt derselben oder einer beliebigen Teilprozessabbild-ID erreicht wurde (TimeSinceSameSyncPoint_ns / TimeSinceAnySyncPoint_ns).
  • Seite 84: Simulations-Partner Zeitgesteuert Synchronisieren

    Virtuelles Zeitverhalten 6.3 Simulations-Partner synchronisieren 6.3.2 Simulations-Partner zeitgesteuert synchronisieren TimespanSynchronized-Betriebsarten Mit den TimespanSynchronized-Betriebsarten des virtuellen Controllers werden mehrere Simulations-Partner (Clients) zeitgesteuert synchronisiert. Die Betriebsarten definieren den Synchronisationspunkt, an dem der virtuelle Controller in den Freeze-Zustand wechselt und das Ereignis OnSyncPointReached sendet. Tabelle 6- 2 Zeitgesteuerte Betriebsarten (TimespanSynchronized) Betriebsart...
  • Seite 85: Beschreibung

    Virtuelles Zeitverhalten 6.3 Simulations-Partner synchronisieren Beispiel Die Abbildung zeigt schematisch den Ablauf in der Betriebsart TimespanSynchronized_CP. Neben dem Ereignis OnSyncPointReached sendet der virtuelle Controller auch die Laufzeit seit dem letzten Aufruf der Funktion StartProcessing(t) (TimeSinceSameSyncPoint_ns / TimeSinceAnySyncPoint_ns). Die Funktion StartProcessing() hebt den Freeze-Zustand auf. Bild 6-4 Beispiel: Ablauf in der Betriebsart TimespanSynchronized_CP Beschreibung...
  • Seite 86: Anwenderschnittstellen (Api)

    Komponenten der Simulation Runtime Komponenten Beschreibung Ein Windows Prozess, der im Hintergrund abläuft. • "Siemens.Simatic.Simulation. Hauptkomponente der Runtime, die alle weiteren Runtime Runtime.Manager.exe" Komponenten verwaltet. Der Prozess wird automatisch gestartet, sobald eine Applika- tion versucht, die Runtime API zu initialisieren. Er wird au- tomatisch beendet, sobald keine Applikation mehr läuft, die...
  • Seite 87: Externe Applikationen Und Simulation Runtime

    Anwenderschnittstellen (API) 7.1 Einführung Externe Applikationen und Simulation Runtime Die folgende Abbildung zeigt schematisch den Zugriff externer Applikationen über die Runtime API auf die Simulation Runtime. Der Simulation Runtime Manager verwaltet die Runtime Instanzen. Diese laden die Bibliotheken der virtuellen Controller. Eine externe Applikation kann z.
  • Seite 88: Zugriff Auf Instanzen

    Anwenderschnittstellen (API) 7.1 Einführung 7.1.1 Zugriff auf Instanzen Zugriff über das Control Panel und die API Über das Control Panel können Sie nur auf eine Instanz zugreifen, die lokal auf dem PC vorhanden ist. Es spielt keine Rolle, auf welchem der PCs eine Instanz erstellt und gestartet wurde.
  • Seite 89: Anwenderschnittstellen (Api)

    Anwenderschnittstellen (API) 7.1 Einführung 7.1.2 Anwenderschnittstellen (API) Die Anwenderschnittstellen der Simulation Runtime enthalten die Funktionen, mit denen Sie z. B. Instanzen erzeugen, den Betriebszustand eines virtuellen Controllers ändern und I/O-Daten austauschen. Die Simulation Runtime enthält folgende Anwenderschnittstellen: • ISimulationRuntimeManager • IInstances •...
  • Seite 90: Zugriff Auf Api-Funktionen Und Datentypen

    Anwenderschnittstellen (API) 7.1 Einführung Zugriff auf API-Funktionen und Datentypen Erforderliche Funktionen und Datentypen stehen für Native C++ und .NET (C#) zur Verfügung. • Übersicht Anwenderschnittstellen für Native C++ (Seite 89) • Übersicht Datentypen für Native C++ (Seite 97) • Übersicht Anwenderschnittstellen für Managed Code (Seite 94) •...
  • Seite 91 Anwenderschnittstellen (API) 7.1 Einführung Globale Funktionen Tabelle 7- 3 Übersicht Globale Funktionen - Native C++ Aktionen Funktionen Globale Funktionen (Seite 110) GetNameOfAreaSection() GetNameOfCPUType() GetNameOfCommunicationInterface() GetNameOfDataType() GetNameOfLEDMode() GetNameOfLEDType() GetNameOfOperatingMode() GetNameOfOperatingState() GetNameOfPrimitiveDataType() GetNameOfTagListDetails() GetNameOfErrorCode() GetNameOfRuntimeConfigChanged() GetNameOfInstanceConfigChanged() GetNameOfDiagSeverity() GetNameOfDirection() GetNameOfRackOrStationFaultType() GetNameOfProcessEventType() GetNameOfPullOrPlugEventType() GetNameOfCycleTimeMonitoringMode() GetNameOfDiagProperty() GetNameOfAutodiscoverType() API ISimulationRuntimeManager...
  • Seite 92 Anwenderschnittstellen (API) 7.1 Einführung Tabelle 7- 5 Übersicht API ISimulationRuntimeManager Ereignisse - Native C++ Ereignisse Funktionen RegisterOnConfigurationChangedCallback() OnConfigurationChanged (Seite 134) UnregisterOnConfigurationChangedCallback() RegisterOnConfigurationChangedEvent() UnregisterOnConfigurationChangedEvent() WaitForOnConfigurationChangedEvent() RegisterOnRuntimeManagerLostCallback() OnRuntimeManagerLost (Sei- UnregisterOnRuntimeManagerLostCallback() te 137) RegisterOnRuntimeManagerLostEvent() UnregisterOnRuntimeManagerLostEvent() WaitForOnRuntimeManagerLostEvent() RegisterOnAutodiscoverCallback() OnAutodiscover (Seite 139) UnregisterOnAutodiscoverCallback() API IInstances Tabelle 7- 6 Übersicht IInstances Funktionen - Native C++ Einstellungen...
  • Seite 93 Anwenderschnittstellen (API) 7.1 Einführung Einstellungen Funktionen WriteBit() I/O-Zugriff über Adresse - Schreiben (Seite 189) WriteByte() WriteBytes() WriteSignals() Read() I/O-Zugriff über Variablenname ReadBool() - Lesen (Seite 196) ReadChar(), ReadWChar() ReadDouble() ReadFloat() ReadInt8(), ReadInt16(), ReadInt32(), ReadInt64() ReadUInt8(), ReadUInt16(), ReadUInt32(), Rea- dUInt64() ReadSignals() Write() I/O-Zugriff über Variablenname - Schreiben (Seite 227)
  • Seite 94 Anwenderschnittstellen (API) 7.1 Einführung Tabelle 7- 7 Übersicht IInstances Ereignisse - Native C++ Ereignisse Funktionen RegisterOnOperatingStateChangedCallback() OnOperatingStateChanged (Seite 291) UnregisterOnOperatingStateChangedCallback() RegisterOnOperatingStateChangedEvent() UnregisterOnOperatingStateChangedEvent() WaitForOnOperatingStateChangedEvent() RegisterOnLedChangedCallback() OnLedChanged (Seite 295) UnregisterOnLedChangedCallback() RegisterOnLedChangedEvent() UnregisterOnLedChangedEvent() WaitForOnLedChangedEvent() RegisterOnConfigurationChangingCallback() OnConfigurationChanging (Seite 297) UnregisterOnConfigurationChangingCallback() RegisterOnConfigurationChangingEvent() UnregisterOnConfigurationChangingEvent() WaitForOnConfigurationChangingEvent() RegisterOnConfigurationChangedCallback() OnConfigurationChanged (Seite 300) UnregisterOnConfigurationChangedCallback()
  • Seite 95: Übersicht Anwenderschnittstellen Für Managed Code

    Anwenderschnittstellen (API) 7.1 Einführung 7.1.4 Übersicht Anwenderschnittstellen für Managed Code API initialisieren und herunterfahren Tabelle 7- 10 Übersicht API initialisieren und herunterfahren - .NET (C#) Aktionen Funktionen Sie- API initialisieren (Seite 104) mens.Simatic.Simulation.Runtime.SimulationRuntimeM anager API herunterfahren (Seite 110) API ISimulationRuntimeManager Tabelle 7- 11 Übersicht ISimulationRuntimeManager Funktionen - .NET (C#) Einstellungen Funktionen...
  • Seite 96 Anwenderschnittstellen (API) 7.1 Einführung API IInstances Tabelle 7- 13 Übersicht IInstances Funktionen - .NET (C#) Einstellungen Funktionen Dispose () Schnittstelle (Seite 141) ID { get; } Name { get; } CPUType { get; set; } CommunicationInterface { get; } Info { get; } UnregisterInstance() StrictMotionTiming { get;...
  • Seite 97 Anwenderschnittstellen (API) 7.1 Einführung Einstellungen Funktionen SystemTime { get; set; } Virtuelle Zeit (Seite 256) ScaleFactor { get; set; } OperatingMode { get; set; } Zykluskontrolle (Seite 259) IsSendSyncEventInDefaultModeEnabled { get; set; } OverwrittenMinimalCycleTime_ns { get; set; } RunToNextSyncPoint StartProcessing() SetCycleTimeMonitoringMode() GetCycleTimeMonitoringMode() Azyklische Dienste (Seite 269)
  • Seite 98: Übersicht Datentypen Für Native C

    Anwenderschnittstellen (API) 7.1 Einführung API IRemoteRuntimeManager Tabelle 7- 15 Übersicht IRemoteRuntimeManager Funktionen - .NET (C#) Einstellungen Funktionen Dispose() Schnittstelle (Seite 314) Version { get; } IP { get; } Port { get; } RemoteComputerName { get; } Disconnect() StrictMotionTiming { get; set; } RegisterInstanceInfo { get;...
  • Seite 99 Anwenderschnittstellen (API) 7.1 Einführung Datentyp Definitionen und Konstanten (Seite 361) Unions (Seite 362) UDataValue SDataValue Strukturen (Seite 365) SDVBNI SDataValueByAddress SDataValueByName SConnectionInfo SInstanceInfo SDimension STagInfo SIPSuite4 SOnSyncPointReachedResult SDataValueByAddressWithCheck SDataValueByNameWithCheck SDataRecordInfo SDataRecord SConfiguredProcessEvents SDiagExtChannelDescription SAutodiscoverData ERuntimeErrorCode Aufzählungen (Seite 387) EArea EOperatingState EOperatingMode ECPUType ECommunicationInterface...
  • Seite 100: Übersicht Datentypen Für Managed Code

    Anwenderschnittstellen (API) 7.1 Einführung 7.1.6 Übersicht Datentypen für Managed Code Die folgende Tabelle zeigt, welche Datentypen für die Simulation im Runtime Manager vorhanden sind. Tabelle 7- 18 Übersicht Datentypen - .NET (C#) Datentyp Delegate_Void Delegat Definitionen (Sei- Delegate_SRCC_UINT32_UINT32_INT32 te 347) Delegate_SRRSI_AD - Event Handler Methoden Delegate_IRRTM...
  • Seite 101: Api Initialisieren

    API von früheren PLCSIM Advanced Versionen. Beim Installieren von PLCSIM Advanced V4.0 werden auch frühere Versionen der API installiert. Der voreingestellte Pfad lautet: • C:\Program Files (x86)\Common Files\Siemens\PLCSIMADV\API\1.0 • C:\Program Files (x86)\Common Files\Siemens\PLCSIMADV\API\2.0 • C:\Program Files (x86)\Common Files\Siemens\PLCSIMADV\API\2.1 • C:\Program Files (x86)\Common Files\Siemens\PLCSIMADV\API\3.0 •...
  • Seite 102: Native C

    Anwenderschnittstellen (API) 7.2 API initialisieren Verweis Weitere Informationen erhalten Sie: • Für Native C++ im Kapitel InitializeApi() (Seite 101). • Für .NET über den Aufruf der Funktion "System.Reflection.Assembly.LoadFile(string)" in der Online-Dokumentation zu MSDN. 7.2.2 Native C++ 7.2.2.1 InitializeApi() Beschreibung Die Funktion InitializeApi lädt die API-Bibliothek (DLL) und initialisiert die API. Die Funktion lädt die Version der DLL, die zur Architektur Ihrer Anwendung passt und die auch mit der Header-Datei der API kompatibel ist ("SimulationRuntimeApi.h").
  • Seite 103 Anwenderschnittstellen (API) 7.2 API initialisieren Tabelle 7- 19 InitializeApi() - Native C++ ERuntimeErrorCode InitializeApi( Syntax ISimulationRuntimeManager** out_SimulationRuntimeManagerInterface ERuntimeErrorCode InitializeApi( WCHAR* in_SimulationRuntimeApiDllPath, ISimulationRuntimeManager** in- out_SimulationRuntimeManagerInterface Parameter • ISimulationRuntimeManager** out_SimulationRuntimeManagerInterface: Zeiger auf einen Runtime Manager Schnittstellenzeiger. Der Zeiger muss mit NULL initialisiert werden. Die Schnittstelle wird innerhalb der Funktion er- zeugt.
  • Seite 104: Runtimeapientry_Initialize

    Anwenderschnittstellen (API) 7.2 API initialisieren 7.2.2.2 RuntimeApiEntry_Initialize Beschreibung Nutzen Sie die Funktion RuntimeApiEntry_Initialize nur, wenn die API-Bibliothek (DLL) von einem anderen Verzeichnis geladen werden soll als dem Verzeichnis, in dem auch Ihre Anwendung liegt, die diese Funktion aufruft. Beim Initialisieren der API wird zuerst die API-Bibliothek geladen und dann die Funktion Initialize importiert und aufgerufen.
  • Seite 105: Net (C#)

    Siehe DestroyInterface() (Seite 106). 7.2.3 .NET (C#) 7.2.3.1 Initialize Beschreibung Der Eintrittspunkt zur API ist die statische Klasse Siemens.Simatic.Simulation.Runtime.SimulationRuntimeManager. Die API wird initialisiert, wenn eine Funktion dieser Klasse erstmalig genutzt wird. Tabelle 7- 21 Initialize - .NET (C#) Sie- Ausnahmen mens.Simatic.Simulation.Runtime.SimulationInitializationExcepti Runtime Fehlercode...
  • Seite 106: Api Herunterfahren

    Anwenderschnittstellen (API) 7.3 API herunterfahren API herunterfahren 7.3.1 Native C++ Prinzipielles Vorgehen beim Löschen der Anwenderschnittstellen Um alle Anwenderschnittstellen zu löschen, gehen Sie prinzipiell so vor: 1. Löschen Sie die Schnittstellen IInstances und IRemoteRuntimeManager. 2. Rufen Sie die Funktion Shutdown() der Schnittstelle ISimulationRuntimeManager auf. 3.
  • Seite 107: Destroyinterface()

    Anwenderschnittstellen (API) 7.3 API herunterfahren 7.3.1.1 DestroyInterface() Beschreibung Ein Funktionszeiger auf die Funktion RuntimeApiEntry_DestroyInterface. Der Funktionszeiger DestoyInterface() wird nur gültig, wenn die Funktion InitializeApi erfolgreich aufgerufen wurde. Die Funktion entlädt den Speicher einer ISimulationRuntimeManager, IRemoteRuntimeManager oder IInstance Schnittstelle. Tabelle 7- 22 DestroyInterface() - Native C++ ERuntimeErrorCode DestroyInterface( Syntax IBaseInterface* in_Interface...
  • Seite 108: Runtimeapientry_Destroyinterface

    Anwenderschnittstellen (API) 7.3 API herunterfahren 7.3.1.2 RuntimeApiEntry_DestroyInterface Beschreibung Nutzen Sie die Funktion RuntimeApiEntry_DestroyInterface nur, wenn die API-Bibliothek (DLL) von einem anderen Verzeichnis geladen werden soll als dem Startup-Verzeichnis der Anwendung, die diese Funktion aufruft. Wenn die API über die Funktion InitializeApi initialisiert wurde, dann wählen Sie die Funktion DestroyInterface() (Seite 106).
  • Seite 109: Freeapi()

    Anwenderschnittstellen (API) 7.3 API herunterfahren 7.3.1.3 FreeApi() Beschreibung Die Funktion FreeApi() entlädt die Bibliothek der Runtime API. Diese Funktion kann nur aufgerufen werden nach dem erfolgreichen Aufruf der Funktion InitializeApi. Wenn die Funktion InitializeApi nicht aufgerufen wurde, muss die Bibliothek über die Win32 API-Funktion FreeLibrary()entladen werden. Tabelle 7- 24 FreeApi() - Native C++ ERuntimeErrorCode FreeApi();...
  • Seite 110: Shutdownandfreeapi()

    Anwenderschnittstellen (API) 7.3 API herunterfahren 7.3.1.4 ShutdownAndFreeApi() Beschreibung Die Funktion ShutdownAndFreeApi() fährt die Runtime API herunter, löscht die IRuntimeManager Schnittstelle und entlädt die Bibliothek der Runtime API. Diese Funktion kann nur aufgerufen werden nach dem erfolgreichen Aufruf der Funktion InitializeApi. Wenn die Funktion InitializeApi nicht aufgerufen wurde, muss die Bibliothek über die Win32 API-Funktion FreeLibrary() entladen werden.
  • Seite 111: Net (C#)

    Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) 7.3.2 .NET (C#) 7.3.2.1 API herunterfahren Die .NET-Komponenten der API können Sie für die IInstance und IRemoteRuntimeManager Schnittstellen über den Aufruf der Funktion Dispose (Seite 141) beenden. Zudem können diese Schnittstellen auch automatisch durch den .NET Garbage Collector bereinigt werden.
  • Seite 112 Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfCommunicationInterface() Tabelle 7- 28 GetNameOfCommunicationInterface() - Native C++ const WCHAR* GetNameOfCommunicationInterface( Syntax ECommunicationInterface in_CommunicationInterface ECommunicationInterface in_CommunicationInterface: Parameter Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfDataType() Tabelle 7- 29 GetNameOfDataType() - Native C++ const WCHAR* GetNameOfDataType( Syntax EDataType in_DataType Parameter...
  • Seite 113 Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfOperatingMode() Tabelle 7- 33 GetNameOfOperatingMode() - Native C++ const WCHAR* GetNameOfOperatingMode( Syntax EOperatingMode in_OperatingMode Parameter EOperatingMode in_OperatingMode: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfErrorCode() Tabelle 7- 34 GetNameOfErrorCode() - Native C++ const WCHAR* GetNameOfErrorCode( Syntax ERuntimeErrorCode in_ErrorCode Parameter...
  • Seite 114 Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfRuntimeConfigChanged() Tabelle 7- 38 GetNameOfRuntimeConfigChanged() - Native C++ const WCHAR* GetNameOfRuntimeConfigChanged( Syntax ERuntimeConfigChanged in_RuntimeConfigChanged); ERuntimeConfigChanged in_RuntimeConfigChanged: Parameter Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfInstanceConfigChanged() Tabelle 7- 39 GetNameOfInstanceConfigChanged() - Native C++ const WCHAR* GetNameOfInstanceConfigChanged( Syntax EInstanceConfigChanged in_InstanceConfigChanged);...
  • Seite 115 Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfProcessEventType() Tabelle 7- 43 GetNameOfProcessEventType() - Native C++ const WCHAR*(GetNameOfProcessEventType( Syntax EProcessEventType in_ProcessEventType Parameter EProcessEventType in_ProcessEventType: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfPullOrPlugEventType() Tabelle 7- 44 GetNameOfPullOrPlugEventType() - Native C++ const WCHAR* GetNameOfPullOrPlugEventType( Syntax EPullOrPlugEventType in_PullOrPlugEventType EPullOrPlugEventType in_PullOrPlugEventType:...
  • Seite 116: Api Isimulationruntimemanager

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager GetNameOfAutodiscoverType() Tabelle 7- 47 GetNameOfAutodiscoverType() - Native C++ const WCHAR* GetNameOfAutodiscoverType( Syntax EAutodiscoverType in_AutodiscoverType Parameter EAutodiscoverType in_AutodiscoverType: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags Siehe auch EPrimitiveDataType (Seite 397) EDataType (Seite 399) Aufzählungen (Seite 386) API ISimulationRuntimeManager 7.5.1 Schnittstellen - Informationen und Einstellungen...
  • Seite 117 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager IsInitialized() / IsInitialized { get; } Liefert einen Wert zurück, der anzeigt, ob die API erfolgreich initialisiert wurde. Tabelle 7- 50 IsInitialized() - Native C++ bool IsInitialized(); Syntax Parameter Keine Rückgabewerte • false: Wenn die API nicht initialisiert wurde. •...
  • Seite 118 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Shutdown() Beendet die Kommunikation mit dem Runtime Manager und bereinigt die Schnittstellen. Rufen Sie diese Funktion in folgenden Fällen auf: • Unmittelbar bevor die API-Bibliothek (DLL) abgemeldet wird (Native C++). • Wenn Ihre Applikation den Runtime Manager nicht mehr nutzt. Tabelle 7- 54 Shutdown() - Native C++ ERuntimeErrorCode Shutdown() Syntax...
  • Seite 119 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Tabelle 7- 57 StrictMotionTiming { get; } - .NET (C#) bool StrictMotionTiming { get; } Syntax Parameter Keine Sie- Rückgabewerte mens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeError- Die Einstellung konnte nicht aus der Code.ConfigFileError Konfigurationsdatei UserInterfaceCon- figuration.xml gelesen werden.
  • Seite 120: Simulation Runtime Instanzen

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Tabelle 7- 59 StrictMotionTiming { set; } - .NET (C#) bool StrictMotionTiming { set; } Syntax Parameter Keine Sie- Rückgabewerte mens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Bedingung ERuntimeError- Eine Instanz ist registriert. Es darf keine Code.AlreadyExists Instanz registriert sein, um die Einstel- lung zu ändern.
  • Seite 121 Tabelle 7- 62 RegisteredInstanceInfo { get; } - .NET (C#) Syntax SInstanceInfo[] RegisteredInstanceInfo { get; } Parameter Keine Rückgabewerte SInstanceInfo[]: Ein Array mit Informationen zu allen registrierten Instanzen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 122 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RegisterInstance() Registriert im Runtime Manager eine neue Instanz eines virtuellen Controllers. Erzeugt und liefert eine Schnittstelle von dieser Instanz zurück. Tabelle 7- 63 RegisterInstance() - Native C++ ERuntimeErrorCode RegisterInstance( Syntax IInstance** out_InstanceInterface ERuntimeErrorCode RegisterInstance( WCHAR* in_InstanceName, IInstance** out_InstanceInterface ERuntimeErrorCode RegisterInstance( ECPUType in_CPUType,...
  • Seite 123 Name eindeutig ist. Die Länge des Namens muss kürzer sein als DINSTANCE_NAME_LENGTH. Siehe Datentypen (Seite 361). Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten einen Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 124 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RegisterCustomInstance() Registriert eine neue Instanz eines virtuellen Controllers im Runtime Manager. Erzeugt und liefert eine Schnittstelle dieser Instanz zurück. Tabelle 7- 65 RegisterCustomInstance() - Native C++ ERuntimeErrorCode RegisterCustomInstance( Syntax WCHAR* in_VplcDll, IInstance** out_InstanceInterface ERuntimeErrorCode RegisterCustomInstance( WCHAR* in_VplcDll, WCHAR* in_InstanceName, IInstance** out_InstanceInterface...
  • Seite 125 Name eindeutig ist. Die Länge des Namens muss kürzer sein als DINSTANCE_NAME_LENGTH. Siehe Datentypen (Seite 361). Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 126: Createinterface

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager CreateInterface() Erzeugt und liefert eine Schnittstelle einer bereits registrierten Instanz eines virtuellen Controllers zurück. Die Instanz kann über die Anwendung registriert worden sein oder über eine andere Anwendung, die die Simulation Runtime API nutzt. Tabelle 7- 67 CreateInterface() - Native C++ ERuntimeErrorCode CreateInterface( Syntax WCHAR* in_InstanceName,...
  • Seite 127 Der Name der registrierten Instanz, von der Sie die Schnittstelle empfangen möchten. Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 128: Remote-Verbindungen

    OpenPort( Syntax UInt16 in_Port Parameter • UInt16 in_Port: Der Port. Der Wert muss größer sein als 1024. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der. ERuntimeError- Es ist bereits ein Port offen.
  • Seite 129 Schließt einen offenen Port und alle offenen Verbindungen, die ein weiterer Runtime Manager zu diesem offenen Port erstellt hat. Tabelle 7- 71 ClosePort() - Native C++ ERuntimeErrorCode ClosePort(); Syntax Parameter Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung SREC_OK Die Funktion ist erfolgreich. SREC_TIMEOUT Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 130 Tabelle 7- 77 RemoteConnectionInfo { get; } - .NET (C#) SConnectionInfo[] RemoteConnectionInfo { get; } Syntax Parameter Keine Rückgabewerte SConnectionInfo[]: Ein Array von Informationen zu allen offenen Verbindun- gen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der. S7-PLCSIM Advanced...
  • Seite 131: Remoteconnect

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RemoteConnect() Erstellt eine neue Verbindung zu einem Remote Runtime Manager oder nutzt eine bereits existierende Verbindung, um eine IRemoteRuntimeManager Schnittstelle zu erstellen. Tabelle 7- 78 RemoteConnect() - Native C++ ERuntimeErrorCode RemoteConnect( Syntax UINT8 in_IP3, UINT8 in_IP2, UINT8 in_IP1, UINT8 in_IP0, UINT16 in_Port,...
  • Seite 132 • SIP in_IP: IP-Adresse des Remote-PC. • UInt16 in_Port: Der Port, der auf dem Remote-PC geöffnet ist. Rückgabewerte IRemoteRuntimeManager: Schnittstelle zum Remote Runtime Manager. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Verbindung zum Remote Runtime Manager Code.ConnectionError kann nicht hergestellt werden.
  • Seite 133: Runautodiscover()

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Siehe auch Variablentabelle (Seite 170) Datentypen (Seite 331) 7.5.3.1 RunAutodiscover() Beschreibung Mit dieser Funktion werden alle Runtime Manager identifiziert, die sich im Netzwerk befinden und die bereit sind, eine Remote-Verbindung herzustellen. Hinweis Die Funktion identifiziert Runtime Manager ab PLCSIM Advanced V4.0. Voraussetzungen •...
  • Seite 134: Ereignisse Für Isimulationruntimemanager

    Ein Timeout-Wert in Millisekunden, der definiert, wie lange der lokale Runtime Manager auf Antworten vom Remote Manager wartet. Gültig ist ein Wert zwischen 500 ms und 30000 ms. Voreinstellung: 2000 ms. Rückgabewerte keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Bedingung ERuntimeError- Der Timeout-Wert ist außerhalb des zuläs- Code.WrongArgument sigen Bereichs.
  • Seite 135: Ereignisse Onconfigurationchanged

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager 7.5.4.1 Ereignisse OnConfigurationChanged OnConfigurationChanged Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 83 OnConfigurationChanged - .NET (C#) event Delegate_SRCC_UINT32_UINT32_INT32 OnConfiguration- Syntax Changed; Parameter Keine. Siehe Delegate_SRCC_UINT32_UINT32_INT32 (Seite 348). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnConfigurationChangedCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 136 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RegisterOnConfigurationChangedEvent() Wenn das Ereignis eintritt, wird das registrierte Event-Objekt in den signalisierten Zustand gesetzt. Es kann nur ein Event-Objekt für das Ereignis registriert sein. Die Registrierung eines neuen Event-Objekts führt zum Löschen des vorhergehenden. Tabelle 7- 85 RegisterOnConfigurationChangedEvent() - Native C++ void RegisterOnConfigurationChangedEvent();...
  • Seite 137 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager UnregisterOnConfigurationChangedEvent() Meldet das Event-Objekt ab. Tabelle 7- 88 UnregisterOnConfigurationChangedEvent() - Native C++ void UnregisterOnConfigurationChangedEvent(); Syntax Parameter Keine Rückgabewerte Keine Tabelle 7- 89 UnregisterOnConfigurationChangedEvent() - .NET (C#) void UnregisterOnConfigurationChangedEvent(); Syntax Parameter Keine Rückgabewerte Keine WaitForOnConfigurationChangedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt in den signalisierten Zustand gesetzt ist oder bis das Timeout-Intervall überschritten wird.
  • Seite 138: Ereignisse Onruntimemanagerlost

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager 7.5.4.2 Ereignisse OnRuntimeManagerLost OnRuntimeManagerLost Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 92 OnRuntimeManagerLost - .NET (C#) event Delegate_Void OnRuntimeManagerLost; Syntax Parameter Keine. Siehe Delegate_Void (Seite 347). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnRuntimeManagerLostCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 139 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Tabelle 7- 95 RegisterOnRuntimeManagerLostEvent() - .NET (C#) void RegisterOnRuntimeManagerLostEvent(); Syntax Parameter Keine Rückgabewerte Keine UnregisterOnRuntimeManagerLostCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 96 UnregisterOnRuntimeManagerLostCallback() - Native C++ void UnregisterOnRuntimeManagerLostCallback(); Syntax Parameter Keine...
  • Seite 140: Ereignisse Onautodiscoverdata

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager WaitForOnRuntimeManagerLostEvent() Die Funktion wird das Programm solange blockieren, bis das registrierte Event-Objekt in den signalisierten Zustand gesetzt ist oder bis das Timeout-Intervall überschritten wird. Tabelle 7- 99 WaitForOnRuntimeManagerLostEvent() - Native C++ bool WaitForOnRuntimeManagerLostEvent(); Syntax bool WaitForOnRuntimeManagerLostEvent( UINT32 in_Time_ms Parameter •...
  • Seite 141 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RegisterOnAutodiscoverCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Die Registrierung einer neuen Callback-Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 102 RegisterOnAutodiscoverCallback() - Native C++ void RegisterOnAutodiscoverCallback( Syntax EventCallback_SRRSI_AD in_CallbackFunction...
  • Seite 142: Api Iinstances

    Anwenderschnittstellen (API) 7.6 API IInstances API IInstances 7.6.1 Schnittstellen - Informationen und Einstellungen Dispose() Löscht die managed Schnittstelle und entlädt die nativen Komponenten der Anwenderschnittstellen. Tabelle 7- 104 Dispose() - .NET (C#) void Dispose() Syntax Parameter Keine Rückgabewerte Keine GetID() / ID { get; } Liefert die Instanz-ID zurück.
  • Seite 143 = psa->GetName(name, DINSTANCE_NAME_MAX_LENGTH); Tabelle 7- 108 Name { get; } - .NET (C#) string Name { get; } Syntax Parameter Keine Rückgabewerte Name der Instanz. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 144 Anwenderschnittstellen (API) 7.6 API IInstances GetCPUType() Liefert den CPU-Typ des virtuellen Controllers zurück. Tabelle 7- 109 GetCPUType() - Native C++ ECPUType GetCPUType(); Syntax Parameter Keine Rückgabewerte Ein Aufzählungselement, das den CPU-Typ definiert. Siehe ECPUType (Seite 393). SetCPUType() Setzt den CPU-Typ des virtuellen Controllers. Ein Wechsel des CPU-Typs erfolgt nur bei einem Neustart des Controllers.
  • Seite 145 Anwenderschnittstellen (API) 7.6 API IInstances GetCommunicationInterface() Liefert die Kommunikationsschnittstelle des virtuellen Controllers zurück: Lokale Kommunikation (Softbus) oder TCPIP. Ein Wechsel der Kommunikationsschnittstelle erfolgt nur bei einem Neustart des Controllers. Alle Instanzen, die gestartet werden, müssen die selbe Kommunikationsschnittstelle nutzen. PowerOn wird verhindert, wenn eine Kommunikationsschnittstelle ausgewählt ist, die nicht von den gestarteten Instanzen genutzt wird.
  • Seite 146 Anwenderschnittstellen (API) 7.6 API IInstances CommunicationInterface { get; set; } Setzt die Kommunikationsschnittstelle des virtuellen Controllers oder liefert sie zurück: Lokale Kommunikation (Softbus) oder TCPIP. Ein Wechsel der Kommunikationsschnittstelle erfolgt nur beim Neustart des Controllers. Alle Instanzen, die gestartet werden, müssen die selbe Kommunikationsschnittstelle nutzen.
  • Seite 147 Die Funktion kehrt nicht rechtzeitig wie- der. Tabelle 7- 118 UnregisterInstance() - .NET (C#) void UnregisterInstance(); Syntax Parameter Keine Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 148: Controller - Informationen Und Einstellungen

    Tabelle 7- 120 ControllerName { get; } - .NET (C#) string ControllerName { get; } Syntax Parameter Keine string: Rückgabewerte Der heruntergeladene Name des virtuellen Controllers. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 149 Tabelle 7- 122 ControllerShortDesignation { get; } - .NET (C#) string ControllerShortDesignation { get; } Syntax Parameter Keine string: Rückgabewerte Die heruntergeladene Kurzbezeichnung des virtuellen Controllers. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 150 Anwenderschnittstellen (API) 7.6 API IInstances GetControllerIP() / ControllerIP { get; } Liefert eine konfigurierte IP-Adresse der Instanz zurück. Tabelle 7- 124 GetControllerIP() - Native C++ UIP GetControllerIP(); Syntax UIP GetControllerIP( UINT32 in_Index Parameter • WCHAR in_Index: Der Index der IP-Adresse, die Sie erhalten möchten. Der Index muss kleiner sein als der Wert, den Sie von GetControllerIPCount()erhalten.
  • Seite 151 Anwenderschnittstellen (API) 7.6 API IInstances SetIPSuite() Setzt die IP-Suite der Netzwerk-Schnittstelle eines virtuellen Controllers. Tabelle 7- 128 SetIPSuite() - Native C++ ERuntimeErrorCode SetIPSuite( Syntax UINT32 in_InterfaceID, SIPSuite4 in_IPSuite, bool in_IsRemanent Parameter • UINT32 in_InterfaceID: Die ID der Netzwerk-Schnittstelle. • SIPSuite4 in_IPSuite: Die IP-Suite, die der Netzwerk-Schnittstelle zugewiesen werden soll.
  • Seite 152 Wenn true, dann wird die IP-Suite nach dem Neustart des virtuellen Control- lers gespeichert. Wenn die Kommunikationsschnittstelle "Softbus" ist, dann wird dieses Flag ig- noriert. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 153 Setzen Sie den Pfad, bevor Sie die Instanz starten. Eine Änderung des Pfads wirkt sich erst bei einem Neustart des Controllers aus. Wenn kein Pfad gesetzt ist, gilt die Voreinstellung: <Eigene Dokumente>\Siemens\Simatic\Simulation\Runtime\Persistence\<Instance Name>. Tabelle 7- 131 SetStoragePath() - Native C++ ERuntimeErrorCode SetStoragePath(...
  • Seite 154 Anwenderschnittstellen (API) 7.6 API IInstances ArchiveStorage() Das Anwenderprogramm, die Hardware-Konfiguration und die remanenten Daten werden in einer Datei gespeichert, der Virtual SIMATIC Memory Card. ArchiveStorage() speichert diese Datei als ZIP-Datei. Die Instanz des virtuellen Controllers muss dazu im Betriebszustand OFF sein. Tabelle 7- 133 ArchiveStorage() - Native C++ ERuntimeErrorCode ArchiveStorage( Syntax...
  • Seite 155 Computers, auf dem die API aufgerufen wird. Rückgabewerte Runtime Fehlercode Bedingung Es ist kein Storage Pfad gesetzt. Der An- SREC_NO_STORAGE_PATH_SET wender muss die Funktion SetStorage- Pfad() vorher ausführen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 156 Anwenderschnittstellen (API) 7.6 API IInstances RetrieveStorage() RetrieveStorage() stellt aus der archivierten ZIP-Datei wieder eine Virtual SIMATIC Memory Card her. Der virtuelle Controller muss dazu im Betriebszustand OFF sein. Tabelle 7- 135 RetrieveStorage() - Native C++ ERuntimeErrorCode RetrieveStorage( Syntax WCHAR* in_FullFileName Parameter •...
  • Seite 157 Computers, auf dem die API aufgerufen wird. Rückgabewerte Runtime Fehlercode Bedingung Es ist kein Storage Pfad gesetzt. Der An- SREC_NO_STORAGE_PATH_SET wender muss die Funktion SetStorage- Pfad() vorher ausführen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 158 Der Speicher ist ungültig. Er enthält Da- teien oder Verzeichnisse, die nicht erlaubt sind. Tabelle 7- 138 CleanupStoragePath() - .NET (C#) void CleanupStoragePath( Syntax Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 159 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 140 StrictMotionTiming { get; } - .NET (C#) bool StrictMotionTiming { get; } Syntax Parameter Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Rückgabewerte Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der. ERuntimeError- Die Instanz ist im Power On. Die Instanz Code.InvalidOperatingState...
  • Seite 160: Betriebszustand

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.3 Betriebszustand PowerOn() Die Funktion erzeugt den Prozess für die Simulation Runtime Instanz und startet die Firmware des virtuellen Controllers. Tabelle 7- 143 PowerOn() - Native C++ ERuntimeErrorCode PowerOn(); Syntax ERuntimeErrorCode PowerOn( UINT32 in_Timeout_ms Parameter •...
  • Seite 161 Anwenderschnittstellen (API) 7.6 API IInstances SREC_WARNING_RUNNING_ON_TIA_P Warnung: Es ist keine gültige Lizenz vor- ORTAL_TEST_SUITE handen, jedoch eine "TIA Portal Test Sui- te" Lizenz. PLCSIM Advanced startet mit dieser Li- zenz. Ein Download aus dem TIA Portal ist möglich, allerdings beendet sich die In- stanz ohne Rückmeldung, wenn der Download nicht aus der TIA Portal Test Suite erfolgt ist.
  • Seite 162 Anwenderschnittstellen (API) 7.6 API IInstances SREC_WRONG_COMMUNICATION_INTE Sie haben versucht, die 2. Instanz mit der RFACE Kommunikationsschnittstelle zu versor- gen, die sich von der bereits eingeschal- teten 1. Instanz unterscheidet. Beispiel: 1. PowerOn() 1. Instanz mit Softbus ist erfolgreich. 2. PowerOn() 2. Instanz mit TCP/IP, der Fehlercode wird zurückgegeben.
  • Seite 163 Anwenderschnittstellen (API) 7.6 API IInstances ERuntimeErrorCode.NotEmpty Warnung: Es ist keine gültige Lizenz für PLCSIM Advanced vorhanden, jedoch eine "TIA Portal Test Suite" Lizenz. In diesem Fall wird der Hochlauf aus der Virtual SIMATIC Memory Card nicht un- terstützt. ERuntimeError- Bei lokaler Kommunikation über Soft- Code.CommunicationInterfaceNo tAvailable PLCSIM Advanced kann sich nicht mit...
  • Seite 164 ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Der erwartete Betriebszustand tritt nicht rechtzeitig ein. ERuntimeError- Die "Siemens.Simatic.Simulation. Runti- Code.ErrorLoadingDll me.Instance.exe" kann die "Sie- mens.Simatic.PlcSim.Vplc1500.dll" nicht laden. ERuntimeError- Der ausgewählte Pfad für diese Instanz Code.StoragePathAlreadyInUse wird bereits von einer anderen Instanz genutzt.
  • Seite 165 – die Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwarteter Betriebszustand, wenn diese Funktion erfolgreich ist: { EOperatingState.Off } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 166 – die Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwartete Betriebszustände, wenn diese Funktion erfolgreich ist: { EOperatingState.Run } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 167 – die Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwarteter Betriebszustand, wenn diese Funktion erfolgreich ist: { EOperatingState.Stop } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 168 Anwenderschnittstellen (API) 7.6 API IInstances GetOperatingState() / OperatingState { get; } Liefert den Betriebszustand des virtuellen Controllers zurück. Wenn sich der Betriebszustand ändert, wird das Ereignis OnOperatingStateChanged() (Seite 291) ausgelöst. Details zum Betriebszustand siehe Datentypen (Seite 391). Tabelle 7- 151 GetOperatingState() - Native C++ EOperatingState GetOperatingState();...
  • Seite 169 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 152 OperatingState { get; } - .NET (C#) EOperatingState OperatingState { get; } Syntax Parameter Keine Rückgabewerte • EOperatingState.InvalidOperatingState: wenn die Funktion fehlschlägt. • EOperatingState.Off: wenn die Simulation Runtime Instanz nicht läuft. • EOperatingState.Booting: wenn in diesem Zustand PowerOn() aufgerufen wurde, aber der virtuelle Con- troller noch nicht bereit ist, das Anwenderprogramm zu starten.
  • Seite 170: Memoryreset

    Anwenderschnittstellen (API) 7.6 API IInstances MemoryReset() Fährt den virtuellen Controller herunter, schließt dessen Prozesse und führt einen Neustart durch. Tabelle 7- 153 MemoryReset() - Native C++ ERuntimeErrorCode MemoryReset(); Syntax ERuntimeErrorCode MemoryReset( UINT32 in_Timeout_ms Parameter • UINT32 in_Timeout_ms: Ein Timeout-Wert in Millisekunden. Wenn kein Timeout-Wert gesetzt ist, dann kehrt die Funktion sofort wieder.
  • Seite 171: Variablentabelle

    Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwartete Betriebszustände, wenn diese Funktion erfolgreich ist: { EOperatingState.Run, EOperatingState.Stop } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 172 Anwenderschnittstellen (API) 7.6 API IInstances UpdateTagList() Die Funktion liest die Variablen aus dem virtuellen Controller und schreibt sie nach Namen geordnet in den gemeinsamen Speicher. Wenn die Variable ein Feld oder eine Struktur ist, gibt es mehrfache Einträge. Bei einer Struktur gibt es einen Eintrag für die Struktur selbst und einen zusätzlichen Eintrag für jedes Strukturelement Entry_1: "StructName"...
  • Seite 173 Anwenderschnittstellen (API) 7.6 API IInstances Wenn es Probleme mit der maximalen Anzahl der Einträge gibt, aber nicht alle Variablen benötigt werden, dann können beim Aktualisieren der Variablentabelle zwei Filter genutzt werden. Tabelle 7- 155 UpdateTagList() - Native C++ ERuntimeErrorCode UpdateTagList(); Syntax ERuntimeErrorCode UpdateTagList( ETagListDetails in_TagListDetails...
  • Seite 174 Anwenderschnittstellen (API) 7.6 API IInstances Rückgabewerte Runtime Fehlercode Bedingung SREC_OK Die Funktion ist erfolgreich. SREC_INTERFACE_REMOVED Die Instanz ist im Runtime Manager nicht registriert. SREC_TIMEOUT Die Funktion kehrt nicht rechtzeitig wie- der. SREC_INSTANCE_NOT_RUNNING Der Prozess des virtuellen Controllers läuft nicht. SREC_NOT_ENOUGH_MEMORY Es werden mehr als 500000 Einträge angefordert.
  • Seite 175 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 156 UpdateTagList() - .NET (C#) void UpdateTagList(); Syntax void UpdateTagList( ETagListDetails in_TagListDetails void UpdateTagList( ETagListDetails in_TagListDetails, bool in_IsHMIVisibleOnly ERuntimeErrorCode UpdateTagList( ETagListDetails in_TagListDetails, bool in_IsHMIVisibleOnly, string in_DataBlockFilterList Parameter • ETagListDetails in_TagListDetails: Jede Kombination der folgenden vier Bereiche: IO: Eingänge und Ausgänge M: Merker CT: Zähler und Zeiten...
  • Seite 176 Anwenderschnittstellen (API) 7.6 API IInstances Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der. ERuntimeError- Der Prozess des virtuellen Controllers Code.InstanceNotRunning läuft nicht. ERuntimeError- Es werden mehr als 500000 Einträge Code.NotEnoughMemory...
  • Seite 177 Tabelle erforderlich ist. • out bool out_IsHMIVisibleOnly: Wenn true, sind nur Variablen in der Tabelle verfügbar, die mit "HMI Visible" markiert sind. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 178 Tabelle 7- 161 TagInfos { get; } - .NET (C#) STagInfo[] TagInfos { get; } Syntax Parameter Keine Rückgabewerte Ein Feld, das alle verfügbaren Einträge des Speichers enthält. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 179 Syntax string in_FullFileName Parameter Keine Rückgabewerte • string in_FullFileName: Dateiname der XML-Datei, in die geschrieben wird: <Pfad> + <Dateiname> + <Dateiendung>. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 180: I/O-Zugriff

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.5 I/O-Zugriff 7.6.5.1 Synchronisieren von Eingängen und Ausgängen Beschreibung In PLCSIM Advanced kann der komplette Umfang des Eingangs- und Ausgangsbereichs genutzt werden (siehe GetAreaSize/AreaSize (Seite 180)). Dies ist auch dann möglich, wenn kein IO-Modul konfiguriert ist. Eingänge und Ausgänge, die über konfigurierte IO-Module definiert sind, werden zur festgelegten Aktualisierung des Teilprozessabbilds (TPA) synchronisiert.
  • Seite 181: I/O-Zugriff Über Adresse - Lesen

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.5.2 I/O-Zugriff über Adresse - Lesen InputArea { get; }, MarkerArea { get; }, OutputArea { get; } Liefert eine Schnittstelle zurück, die Sie nutzen, um die .NET-Funktionen in diesem Kapitel aufzurufen. Tabelle 7- 164 InputArea { get; } MarkerArea { get; } OutputArea { get; } - .NET (C#) IIOArea InputArea { get;...
  • Seite 182 Anwenderschnittstellen (API) 7.6 API IInstances ReadBit() Liest ein einzelnes Bit aus der Area. Hinweis Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen (Seite 196) und nicht über die Adressbereiche. Tabelle 7- 167 ReadBit() - Native C++ ERuntimeErrorCode ReadBit( Syntax...
  • Seite 183 Der Byte-Offset innerhalb der Area. Der Wert muss zwischen 0 und dem Wert sein, den AreaSize zurückgibt. • Byte in_Bit: Der Bit-Offset innerhalb des Bytes. Der Wert muss zwischen 0 und 7 sein. Rückgabewerte bool: Bitwert Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 184 Anwenderschnittstellen (API) 7.6 API IInstances ReadByte() Liest ein einzelnes Byte aus der Area. Hinweis Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen und nicht über die Adressbereiche. Tabelle 7- 169 ReadByte() - Native C++ ERuntimeErrorCode ReadByte( Syntax EArea in_Area,...
  • Seite 185 Parameter • UInt32 in_Offset: Der Byte-Offset innerhalb der Area. Der Wert muss zwischen 0 und dem Wert sein, der von AreaSize zurückgegeben wird. Rückgabewerte Byte: Bytewert. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 186 Anwenderschnittstellen (API) 7.6 API IInstances ReadBytes() Liest ein Byte-Array aus der Area. Hinweis Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen und nicht über die Adressbereiche. Tabelle 7- 171 ReadByte() - Native C++ ERuntimeErrorCode ReadBytes( Syntax EArea in_Area,...
  • Seite 187 Der Byte-Offset innerhalb der Area. Der Wert muss zwischen 0 und dem Wert sein, der von AreaSize zurückgegeben wird. • UInt32 in_BytesToRead: Die Anzahl der Bytes, die gelesen werden. Rückgabewerte Byte[]: Die gelesenen Bytes. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 188 Anwenderschnittstellen (API) 7.6 API IInstances ReadSignals() Strukturen und Felder können durch Signallisten nachgebildet und dann über die Funktion ReadSignals() gelesen werden. Die Funktion berücksichtigt auch die Byte-Reihenfolge (Endianness). Es werden nur primitive Datentyp-Signale unterstützt, aber die Funktion ist nicht typsicher. Hinweis Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen (Seite 196) und nicht über die...
  • Seite 189 Rückgabewerte Keine Signalfehler Runtime Fehlercode Bedingung ERuntimeErrorCode.Ok Die Signaloperation ist erfolgreich. ERuntimeError- Offset oder Bits sind ungültig. Code.IndexOutOfRange Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 190: I/O-Zugriff Über Adresse - Schreiben

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.5.3 I/O-Zugriff über Adresse - Schreiben WriteBit() Schreibt ein einzelnes Bit in die Area. Hinweis Daten können überschrieben werden Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen (Seite 227) und nicht über die Adressbereiche.
  • Seite 191 AreaSize zurückgegeben wird. • Byte in_Bit: Der Bit-Offset innerhalb des Bytes. Der Wert muss zwischen 0 und 7 sein. • bool in_Value: Bitwert. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 192 Anwenderschnittstellen (API) 7.6 API IInstances WriteByte() Schreibt ein einzelnes Byte in die Area. Hinweis Daten können überschrieben werden Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen (Seite 227) und nicht über die Adressbereiche.
  • Seite 193 Der Byte-Offset innerhalb der Area. Der Wert muss zwischen 0 und dem Wert sein, der von AreaSize zurückgegeben wird. • BYTE in_Value: Bytewert. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 194 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 179 WriteBytes() - Native C++ ERuntimeErrorCode WriteBytes( Syntax EArea in_Area, UINT32 in_Offset, UINT32 in_BytesToWrite, UINT32* out_BytesWritten, BYTE in_Values[]) Parameter • EArea in_Area: Die Area, in die geschrieben werden soll. Zulässige Werte: {SRA_INPUT, SRA_MARKER, SRA_OUTPUT}. Siehe EArea (Seite 390).
  • Seite 195 Enthält die Anzahl der Bytes, die geschrieben werden. Der Wert muss zwischen 1 und der Größe des Arraywerts sein. • BYTE in_Value: Bytewert. Rückgabewerte UInt32: Enthält die Anzahl der Bytes, die gerade geschrieben wurden. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 196 Anwenderschnittstellen (API) 7.6 API IInstances WriteSignals() Schreibt mehrere Signale innerhalb eines API-Aufrufs. Die Funktion berücksichtigt auch die Byte-Reihenfolge (Endianness). Die Funktion unterstützt nur primitive Datentyp-Signale, sie ist aber nicht typsicher. Hinweis Daten können überschrieben werden Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen (Seite 227) und nicht über die Adressbereiche.
  • Seite 197: I/O-Zugriff Über Variablenname - Lesen

    Rückgabewerte Keine Signalfehler Fehlercode Bedingung ERuntimeErrorCode.Ok Die Signaloperation ist erfolgreich. ERuntimeError- Offset oder Bits sind ungültig. Code.IndexOutOfRange Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 198 Anwenderschnittstellen (API) 7.6 API IInstances Read() Liest den Wert einer PLC-Variablen. Tabelle 7- 183 Read() - Native C++ ERuntimeErrorCode Read( Syntax WCHAR* in_Tag, SDataValue* inout_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • SDataValue* inout_Value: Enthält den Wert und den erwarteten Typ der PLC-Variablen.
  • Seite 199 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte SDataValue: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 200 Anwenderschnittstellen (API) 7.6 API IInstances ReadBool() Liest den Wert einer PLC-Variablen. Tabelle 7- 185 ReadBool() - Native C++ ERuntimeErrorCode ReadBool( Syntax WCHAR* in_Tag, bool* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • bool* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 201 ReadBool( Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte bool: Enthält den Wert der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 202 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt8() Liest den Wert einer PLC-Variablen. Tabelle 7- 187 ReadInt8() - Native C++ ERuntimeErrorCode ReadInt8( Syntax WCHAR* in_Tag, INT8* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT8* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 203 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Int8: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 204 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt16() Liest den Wert einer PLC-Variablen. Tabelle 7- 189 ReadInt16() - Native C++ ERuntimeErrorCode ReadInt16( Syntax WCHAR* in_Tag, INT16* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT16* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 205 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Int16: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 206 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt32() Liest den Wert einer PLC-Variablen. Tabelle 7- 191 ReadInt32() - Native C++ ERuntimeErrorCode ReadInt32( Syntax WCHAR* in_Tag, INT32* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT32* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 207 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Int32: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 208 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt64() Liest den Wert einer PLC-Variablen. Tabelle 7- 193 ReadInt64() - Native C++ ERuntimeErrorCode ReadInt64( Syntax WCHAR* in_Tag, INT64* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT64* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 209 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Int64: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 210 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt8() Liest den Wert einer PLC-Variablen. Tabelle 7- 195 ReadUInt8() - Native C++ ERuntimeErrorCode ReadUInt8( Syntax WCHAR* in_Tag, UINT8* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT8* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 211 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte UInt8: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 212 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt16() Liest den Wert einer PLC-Variablen. Tabelle 7- 197 ReadUInt16() - Native C++ ERuntimeErrorCode ReadUInt16( Syntax WCHAR* in_Tag, UINT16* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT16* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 213 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte UInt16: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 214 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt32() Liest den Wert einer PLC-Variablen. Tabelle 7- 199 ReadUInt32() - Native C++ ERuntimeErrorCode ReadUInt32( Syntax WCHAR* in_Tag, UINT32* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT32* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 215 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte UInt32: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 216 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt64() Liest den Wert einer PLC-Variablen. Tabelle 7- 201 ReadInt64() - Native C++ ERuntimeErrorCode ReadUInt64( Syntax WCHAR* in_Tag, UINT64* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT64* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 217 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte UInt64: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 218 Anwenderschnittstellen (API) 7.6 API IInstances ReadFloat() Liest den Wert einer PLC-Variablen. Tabelle 7- 203 ReadFloat() - Native C++ ERuntimeErrorCode ReadFloat( Syntax WCHAR* in_Tag, float* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • float* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 219 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte float: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 220 Anwenderschnittstellen (API) 7.6 API IInstances ReadDouble() Liest den Wert einer PLC-Variablen. Tabelle 7- 205 ReadDouble() - Native C++ ERuntimeErrorCode ReadDouble( Syntax WCHAR* in_Tag, double* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • double* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 221 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte double: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 222 Anwenderschnittstellen (API) 7.6 API IInstances ReadChar() Liest den Wert einer PLC-Variablen. Tabelle 7- 207 ReadChar() - Native C++ ERuntimeErrorCode ReadChar( Syntax WCHAR* in_Tag, char* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • char* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 223 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte sbyte: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 224 Anwenderschnittstellen (API) 7.6 API IInstances ReadWChar() Liest den Wert einer PLC-Variablen. Tabelle 7- 209 ReadWChar() - Native C++ ERuntimeErrorCode ReadWChar( Syntax WCHAR* in_Tag, WCHAR* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • WCHAR* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 225 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte char: Enthält den Wert und den Typ der PLC-Variablen. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 226 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 211 ReadSignals() - Native C++ ERuntimeErrorCode ReadSignals( Syntax SDataValueByName* inout_Signals, UINT32 in_SignalCount ERuntimeErrorCode ReadSignals( SDataValueByNameWithCheck* inout_Signals, UINT32 in_SignalCount bool* out_SignalsHaveChanged Parameter • SDataValueByName* inout_Signals: Enthält den Namen, den Wert und den erwarteten Typ der PLC-Variablen. Wenn der erwartete Typ UNSPECIFIC ist, dann wird er auf den gespeicherten Typ ge- setzt, wenn die Funktion erfolgreich war.
  • Seite 227 ERuntimeError- Der erwartete Typ passt nicht zum ge- Code.TypeMismatch speicherten Typ. Siehe Kompatible primi- tive Datentypen (Seite 397). ERuntimeError- Offset oder Bits sind ungültig. Code.IndexOutOfRange Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 228: I/O-Zugriff Über Variablenname - Schreiben

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.5.5 I/O-Zugriff über Variablenname - Schreiben Einzelzugriffe auf IO-Daten sind dazu geeignet, Werte, die nicht regelmäßig aktualisiert werden, auf einer grafischen Oberfläche (GUI) anzuzeigen und zu schreiben. Hinweis Um einen regelmäßigen Signalaustausch zu simulieren, erstellen Sie einmal eine Signalliste für jeden Satz an Signalen.
  • Seite 229 Enthält den Wert und den erwarteten Typ der PLC-Variablen. Die Typen UNSPECIFIC und STRUCT werden nicht unterstützt. Strukturen und Felder können durch Signallisten nachgebildet und dann über WriteSignals() geschrieben werden. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 230 Anwenderschnittstellen (API) 7.6 API IInstances WriteBool() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 215 WriteBool() - Native C++ ERuntimeErrorCode WriteBool( Syntax WCHAR* in_Tag, bool in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • bool in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 231 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • bool in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 232 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt8() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 217 WriteInt8() - Native C++ ERuntimeErrorCode WriteInt8( Syntax WCHAR* in_Tag, INT8 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT8 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 233 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int8 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 234 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt16() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 219 WriteInt16() - Native C++ ERuntimeErrorCode WriteInt16( Syntax WCHAR* in_Tag, INT16 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT16 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 235 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int16 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 236 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt32() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 221 WriteInt32() - Native C++ ERuntimeErrorCode WriteInt32( Syntax WCHAR* in_Tag, INT32 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT32 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 237 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int32 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 238 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt64() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 223 WriteInt64() - Native C++ ERuntimeErrorCode WriteInt64( Syntax WCHAR* in_Tag, INT64 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT64 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 239 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int64 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 240 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt8() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 225 WriteUInt8() - Native C++ ERuntimeErrorCode WriteUInt8( Syntax WCHAR* in_Tag, UINT8 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT8 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 241 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt8 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 242 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt16() Liest den Wert einer PLC-Variablen. Tabelle 7- 227 WriteUInt16() - Native C++ ERuntimeErrorCode WriteUInt16( Syntax WCHAR* in_Tag, UINT16 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT16 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 243 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt16 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 244 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt32() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 229 WriteUInt32() - Native C++ ERuntimeErrorCode WriteUInt32( Syntax WCHAR* in_Tag, UINT32 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT32 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 245 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt32 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 246 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt64() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 231 WriteUInt64() - Native C++ ERuntimeErrorCode WriteUInt64( Syntax WCHAR* in_Tag, UINT64 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT64 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 247 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt64 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 248 Anwenderschnittstellen (API) 7.6 API IInstances WriteFloat() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 233 WriteFloat() - Native C++ ERuntimeErrorCode WriteFloat( Syntax WCHAR* in_Tag, float in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • float in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 249 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • float in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 250 Anwenderschnittstellen (API) 7.6 API IInstances WriteDouble() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 235 WriteDouble() - Native C++ ERuntimeErrorCode WriteDouble( Syntax WCHAR* in_Tag, double in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • double in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 251 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • double in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 252 Anwenderschnittstellen (API) 7.6 API IInstances WriteChar() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 237 WriteChar() - Native C++ ERuntimeErrorCode WriteChar( Syntax WCHAR* in_Tag, char in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • char in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 253 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • sbyte in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 254 Anwenderschnittstellen (API) 7.6 API IInstances WriteWChar() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 239 WriteWChar() - Native C++ ERuntimeErrorCode WriteWChar( Syntax WCHAR* in_Tag, WCHAR in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • WCHAR in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 255 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • char in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 256 Anwenderschnittstellen (API) 7.6 API IInstances WriteSignals() Schreibt mehrere Signale innerhalb eines API-Aufrufs. Wenn die Funktion das erste Mal aufgerufen wird, speichert sie in den Strukturen SDataValueByName* interne Informationen, um die Performanz der folgenden Aufrufe zu verbessern. Hinweis Um einen regelmäßigen Signalaustausch zu simulieren, erstellen Sie einmal eine Signalliste für jeden Satz an Signalen.
  • Seite 257: Einstellungen Für Die Virtuelle Zeit

    Typen UNSPECIFIC und STRUCT werden nicht unterstützt. Rückgabewerte Keine Signalfehler Fehlercode Bedingung ERuntimeError- Offset oder Bits sind ungültig. Code.IndexOutOfRange Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 258 "Jan 1 1970 00:00:00:000" und "Dec 31 2200 23:59:59:999". Tabelle 7- 245 SystemTime { get; set; } - .NET (C#) DateTime SystemTime { get; set; } Syntax Parameter Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Rückgabewerte Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 259 Anwenderschnittstellen (API) 7.6 API IInstances SetScaleFactor() Setzt den Skalierfaktor, mit dem die virtuelle Zeit fortschreitet. Beginnen Sie mit einem kleinen Skalierfaktor und tasten Sie sich schrittweise an einen Skalierfaktor heran, bei dem der virtuelle Controller in RUN bleibt. Gültig ist ein Wert zwischen 0,01 und 100. Die Voreinstellung ist 1. •...
  • Seite 260: Zykluskontrolle

    Tabelle 7- 248 ScaleFactor { get; set; } - .NET (C#) double ScaleFactor { get; set; } Syntax Parameter Keine Rückgabewerte double: Skalierfaktor der virtuellen Zeit. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 261 Tabelle 7- 251 OperatingMode { get; set; } - .NET (C#) EOperatingMode OperatingMode { get; set; } Syntax Parameter Keine Rückgabewerte EOperatingMode: Betriebsart des virtuellen Controllers Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 262 Anwenderschnittstellen (API) 7.6 API IInstances SetSendSyncEventInDefaultModeEnabled() Setzt den Modus SendSyncEventInDefault. In diesem Modus wird in der Betriebsart Default nach jedem Zyklusende das Ereignis OnSyncPointReached ausgelöst. Siehe OnSyncPointReached (Seite 302). Tabelle 7- 252 SetSendSyncEventInDefaultModeEnabled() - Native C++ ERuntimeErrorCode SetSendSyncEventInDefaultModeEnabled( Syntax bool in_Enable Parameter •...
  • Seite 263 Parameter Keine Rückgabewerte • false: Das Ereignis wird nicht ausgelöst (außer der Modus Sync-Freeze ist aktiv). • true: Das Ereignis wird nach jedem Zyklus ausgelöst. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 264 Tabelle 7- 257 OverwrittenMinimalCycleTime_ns { get; set; } - .NET (C#) Int64 OverwrittenMinimalCycleTime_ns { get; set; } Syntax Parameter Keine Rückgabewerte Int64: Die überschriebene minimale Zykluszeit in Nanosekunden. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 265 Der Prozess des virtuellen Controllers läuft nicht. Tabelle 7- 259 RunToNextSyncPoint() - .NET (C#) void RunToNextSyncPoint(); Syntax Parameter Keine Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 266: Weitere Informationen

    Int64 in_MinimalTimeToRun_ns Parameter • Int64 in_MinimalTimeToRun_ns: Die minimale virtuelle Zeit (in Nanosekunden), die der virtuelle Controller läuft, bevor er in den Freeze-Zustand wechselt. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 267 Anwenderschnittstellen (API) 7.6 API IInstances SetCycleTimeMonitoringMode() Mit dieser Funktion kann die Quelle für den Timer zur maximalen Zykluszeitüberwachung geändert werden. Tabelle 7- 262 SetCycleTimeMonitoringMode() - Native C++ ERuntimeErrorCode SetCycleTimeMonitoringMode( Syntax ECycleTimeMonitoringMode in_CycleTimeMonitoringMode ERuntimeErrorCode SetCycleTimeMonitoringMode( ECycleTimeMonitoringMode in_CycleTimeMonitoringMode, INT64 in_MaxCycleTime_ns Parameter • ECycleTimeMonitoringMode in_CycleTimeMonitoringMode: Wählen Sie eine der folgenden Optionen für die maximale Zykluszeitüberwa- chung:...
  • Seite 268 Gültig ist ein Wert zwischen 1000000 und 60000000000 ns (1 Millisekunde bis 1 Minute). Wenn in der API kein Wert spezifiziert wird, gilt die Voreinstellung von 150 ms. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 269 Int64 in_MaxCycleTime_ns: Der anwenderspezifische Wert für die maximale Zykluszeitüberwachung. Wenn in der API kein Wert spezifiziert ist, wird der voreingestellte Wert 150 ms zu- rückgegeben. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 270: Azyklische Dienste

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8 Azyklische Dienste 7.6.8.1 Übersicht Die azyklischen Dienste umfassen bei PLCSIM Advanced: • Lese- und Schreibvorgänge von Parameter- und Status-Daten vom Anwenderprogramm der SPS in die Peripheriemodule • Alarm- und Ereignismeldungen, die die Peripheriemodule an die CPU senden. Lese- und Schreibvorgänge Vom Anwenderprogramm (TIA Portal) getriggerte Ereignisse, die sich für die Notifizierung angemeldet haben:...
  • Seite 271: Api-Methoden Und Zugehörige Ereignisse

    Anwenderschnittstellen (API) 7.6 API IInstances API-Methoden und zugehörige Ereignisse Ereignisse, die von Peripheriemodulen ausgelöst werden, und zugehörige API-Methoden: Tabelle 7- 267 API-Methoden und zugehörige Ereignisse Name API-Methode zum Triggern des API-Ereignis nach OB (Anfrage) OB-Ausführung (Meldung) Diagnostic error Inter- AlarmNotification (Seite 274) OnAlarmNotificationDone (Sei- rupt te 307)
  • Seite 272: Readrecorddone / Writerecorddone

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.2 ReadRecordDone / WriteRecordDone ReadRecordDone() Mit dieser API-Methode meldet die Simulation eines IO-Moduls an die CPU, dass das asynchrone Lesen eines Datensatzes abgeschlossen ist. Die Simulation stellt dabei die gelesenen Informationen zur Verfügung. Tabelle 7- 268 ReadRecordDone() - Native C++ ERuntimeErrorCode ReadRecordDone( Syntax SDataRecordInfo in_RecordInfo,...
  • Seite 273 Byte-Array des gelesenen Datensatzes mit der Länge, die definiert ist über Da- taSize in der Struktur SDataRecordInfo. • UInt32 in_Status: Status der Auftragsausführung Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 274 • SDataRecordInfo in_RecordInfo: Struktur, die die Datensatz-Information enthält. Siehe SDataRecordInfo (Seite 380). • UInt32 in_Status: Status der Auftragsausführung Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeError- Die HW-Kennung des Moduls existiert Code.DoesNotExist...
  • Seite 275: Alarmnotification

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.3 AlarmNotification AlarmNotification() Diese Funktion löst Diagnosemeldungen nach PROFINET-Standard aus. Jeder Aufruf dieser Funktion ruft den OB 82 einmal auf, unabhängig von der Anzahl und vom Schweregrad der übermittelten Diagnoseeinträge. Tabelle 7- 272 AlarmNotification() - Native C++ ERuntimeErrorCode AlarmNotification( Syntax UINT16 in_HardwareIdentifier,...
  • Seite 276 Anwenderschnittstellen (API) 7.6 API IInstances Rückgabewerte Runtime Fehlercode Bedingung SREC_OK Die Funktion ist erfolgreich. SREC_INTERFACE_REMOVED Die Instanz ist im Runtime Manager nicht registriert. SREC_WRONG_MODULE_STATE Das Modul ist momentan gezogen. SREC_DOES_NOT_EXIST Die HW-Kennung des Moduls existiert nicht. SREC_WRONG_MODULE_TYPE Die Kanalnummer existiert für das Modul nicht.
  • Seite 277 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 273 AlarmNotification() - .NET (C#) void AlarmNotification( Syntax ushort in_HardwareIdentifier, ushort in_ModuleState, ushort in_NumberOfDiagnosisEvents, SDiagExtChannelDescription [] in_ArrayOfDiagnosisEvents, Out ushort out_SequenceNumber Parameter • ushort in_HardwareIdentifier: Die HW-Kennung des Moduls oder Submoduls, das den Diagnoseeintrag sendet. Die Kennung muss zu einer Hardware-Komponente im aktuell geladenen Pro- jekt gehören.
  • Seite 278 Anwenderschnittstellen (API) 7.6 API IInstances Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeError- Das Modul ist momentan gezogen. Code.WrongModuleState ERuntimeError- Die HW-Kennung des Moduls existiert Code.DoesNotExist nicht. ERuntimeError- Der Wert für den Modulzustand ist ungül- Code.WrongArgument...
  • Seite 279: Processevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.4 ProcessEvent ProcessEvent() Mit dieser Funktion können Prozessalarme von zentralen und dezentralen Eingangsmodulen simuliert werden. Tabelle 7- 274 ProcessEvent() - Native C++ ERuntimeErrorCode ProcessEvent( Syntax UINT16 in_HardwareIdentifier, UINT16 in_Channel, EProcessEventType in_ProcessEventType, UINT16* out SequenceNumber); Parameter •...
  • Seite 280 Nummer zu. Nach PROFINET-Standard ist die Sequenznummer 10 Bits weit (1 bis 7FF Wenn die höchste Nummer erreicht ist, startet die Nummerierung wieder bei 1. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 281: Pullorplugevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.5 PullOrPlugEvent PullOrPlugEvent() Diese Funktion löst Ziehen/Stecken-Ereignisse aus. Für diese Ereignisse wird der Alarm-OB (OB 83) "Pull or plug of modules” ausgeführt. Tabelle 7- 276 PullOrPlugEvent() - Native C++ ERuntimeErrorCode PullOrPlugEvent( Syntax UINT16 in_HardwareIdentifier, EPullOrPlugEventType in_PullOrPlugEventType, UINT16* out_SequenceNumber Parameter •...
  • Seite 282 Nummer zu. Nach PROFINET-Standard ist die Sequenznummer 10 Bits weit (1 bis 7FF Wenn die höchste Nummer erreicht ist, startet die Nummerierung wieder bei 1. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 283: Statusevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.6 StatusEvent StatusEvent() Diese Funktion wird benutzt, um den Status-Ereignis-OB (OB 55) auszulösen. Status- Ereignisse werden nur für Module in einem dezentralen IO-System unterstützt. Tabelle 7- 278 StatusEvent() - Native C++ ERuntimeErrorCode StatusEvent( Syntax UINT16 in_HardwareIdentifier, UINT16 in_Specifier Parameter •...
  • Seite 284 Die Kennung muss zu einer Hardware-Komponente im aktuell geladenen Pro- jekt gehören. • ushort in_Specifier: Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangsparameter des OB 55-Aufrufs verfügbar. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 285: Profileevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.7 ProfileEvent ProfileEvent() Diese Funktion wird benutzt, um den Profile-Ereignis OB (OB 57) auszulösen. Profile- Ereignisse werden nur für Module in einem dezentralen IO-System unterstützt. Tabelle 7- 280 ProfileEvent() - Native C++ ERuntimeErrorCode ProfileEvent( Syntax UINT16 in_HardwareIdentifier, UINT16 in_Specifier Parameter...
  • Seite 286 Die Kennung muss zu einer Hardware-Komponente im aktuell geladenen Pro- jekt gehören. • ushort in_Specifier: Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangsparameter des OB 57-Aufrufs verfügbar. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 287: Updateevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.8 UpdateEvent UpdateEvent() Diese Funktion wird benutzt, um den Update-Ereignis-OB (OB 56) auszulösen. Update- Ereignisse werden nur für Module in einem dezentralen IO-System unterstützt. Tabelle 7- 282 UpdateEvent() - Native C++ ERuntimeErrorCode UpdateEvent( Syntax UINT16 in_HardwareIdentifier, UINT16 in_Specifier Parameter •...
  • Seite 288 Die Kennung muss zu einer Hardware-Komponente im aktuell geladenen Pro- jekt gehören. • ushort in_Specifier: Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangsparameter des OB 56-Aufrufs verfügbar. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 289: Getconfiguredprocessevent

    SConfiguredProcessEvents [] GetConfiguredProcessEvents( Syntax Parameter Keine Rückgabewerte Feld mit konfigurierten Prozessereignissen und Feldgröße ergeben die Anzahl der konfigurierten Prozessereignisse. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 290: Rackorstationfaultevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.10 RackOrStationFaultEvent Beschreibung Diese Funktion wird benutzt, um den RackOrStationFault-Ereignis OB (OB 86) auszulösen. DIese Ereignisse werden nur bei dezentralen Geräten unterstützt. Tabelle 7- 286 RackOrStationFaultEvent() - Native C++ ERuntimeErrorCode RackOrStationFaultEvent( Syntax UINT16 in_HardwareIdentifier, ERackOrStationFaultType in_EventType Parameter •...
  • Seite 291: Weitere Informationen

    Die HW-Kennung des Geräts, das das Ereignis sendet. Verwenden Sie die HW- Kennung vom Typ Hw_Device. • ERackOrStationFaultType in_EventType: Ein Wert aus der Liste der vordefinierten Typen von Ereignissen, siehe ERackOr- StationFaultType (Seite 408). Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 292: Ereignisse Für Iinstances

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.9 Ereignisse für IInstances 7.6.9.1 Ereignisse für Betriebszustand und Zykluskontrolle Ereignisse für Betriebszustand und Zykluskontrolle Für die Schnittstelle IInstances werden folgende Ereignisse ausgelöst: Tabelle 7- 288 Ereignisse für IInstances Ereignis Ursache OnOperatingStateChanged Der Betriebszustand des virtuellen Controllers hat sich geändert. (Seite 291) OnLedChanged (Seite 295) Die LED-Anzeige des virtuellen Controllers hat sich geändert.
  • Seite 293 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnOperatingStateChangedCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Das Registrieren einer neuen Callback- Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 290 RegisterOnOperatingStateChangedCallback() - Native C++ void RegisterOnOperatingStateChangedCallback( Syntax EventCallback_II_SREC_ST_SROS_SROS in_CallbackFunction...
  • Seite 294 Anwenderschnittstellen (API) 7.6 API IInstances // Thread 1 ----------------------------------------------- Beispiel C++ ISimulationRuntimeManager * api = NULL; ERuntimeErrorCode result = Initialize(&api); IInstance* psa = NULL; if (result == SREC_OK) result = api->RegisterInstance(&psa); // Register the internal event object psa->RegisterOnOperatingStateChangedEvent(); // Thread 2 ----------------------------------------------- while (condition) // Wait for the event to be set (timeout after 10s) bool isEventSet = psa-...
  • Seite 295 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnOperatingStateChangedCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 292 UnregisterOnOperatingStateChangedCallback() - Native C++ void UnregisterOnOperatingStateChangedCallback(); Syntax Parameter Keine Rückgabewerte Keine UnregisterOnOperatingStateChangedEvent() Meldet das Event-Objekt ab. Tabelle 7- 293 UnregisterOnOperatingStateChangedEvent() - Native C++ void UnregisterOnOperatingStateChangedEvent();...
  • Seite 296 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 296 WaitForOnOperatingStateChangedEvent() - .NET (C#) bool WaitForOnOperatingStateChangedEvent(); Syntax bool WaitForOnOperatingStateChangedEvent( UInt32 in_Time_ms Parameter • None: Das Zeitlimit ist auf INFINITE gesetzt. • UInt32 in_Time_ms: Wert für das Zeitlimit in Millisekunden. Rückgabewerte • true: Wenn das Event-Objekt in den signalisierten Zustand gesetzt wurde. •...
  • Seite 297 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnLedChangedEvent() Wenn das Ereignis eintritt, wird das registrierte Event-Objekt in den signalisierten Zustand gesetzt. Es kann nur ein Event-Objekt für das Ereignis registriert sein. Das Registrieren eines neuen Event-Objekts führt zum Löschen des vorhergehenden. Tabelle 7- 299 RegisterOnLedChangedEvent() - Native C++ void RegisterOnLedChangedEvent();...
  • Seite 298 Anwenderschnittstellen (API) 7.6 API IInstances WaitForOnLedChangedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 7- 303 WaitForOnLedChangedEvent() - Native C++ bool WaitForOnLedChangedEvent(); Syntax bool WaitForOnLedChangedEvent( UINT32 in_Time_ms Parameter •...
  • Seite 299 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnConfigurationChangingCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Das Registrieren einer neuen Callback- Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 306 RegisterOnConfigurationChangingCallback() - Native C++ void RegisterOnConfigurationChangingCallback( Syntax EventCallback_II_SREC_ST in_CallbackFunction...
  • Seite 300 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnConfigurationChangingEvent() Meldet das Event-Objekt ab. Tabelle 7- 309 UnregisterOnConfigurationChangingEvent() - Native C++ void UnregisterOnConfigurationChangingEvent(); Syntax Parameter Keine Rückgabewerte Keine Tabelle 7- 310 UnregisterOnConfigurationChangingEvent() - .NET (C#) void UnregisterOnConfigurationChangingEvent(); Syntax Parameter Keine Rückgabewerte Keine WaitForOnConfigurationChangingEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist.
  • Seite 301 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 312 WaitForOnConfigurationChangingEvent() - .NET (C#) bool WaitForOnConfigurationChangingEvent(); Syntax bool WaitForOnConfigurationChangingEvent( UInt32 in_Time_ms Parameter • None: Das Zeitlimit ist auf INFINITE gesetzt. • UInt32 in_Time_ms: Wert für das Zeitlimit in Millisekunden. Rückgabewerte • true: Wenn das Event-Objekt in den signalisierten Zustand gesetzt wurde. •...
  • Seite 302 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnConfigurationChangedEvent() Wenn das Ereignis eintritt, wird das registrierte Event-Objekt in den signalisierten Zustand gesetzt. Es kann nur ein Event-Objekt für das Ereignis registriert sein. Das Registrieren eines neuen Event-Objekts führt zum Löschen des vorhergehenden. Tabelle 7- 315 RegisterOnConfigurationChangedEvent() - Native C++ void RegisterOnConfigurationChangedEvent();...
  • Seite 303 Anwenderschnittstellen (API) 7.6 API IInstances WaitForOnConfigurationChangedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 7- 319 WaitForOnConfigurationChangedEvent() - Native C++ bool WaitForOnConfigurationChangedEvent(); Syntax bool WaitForOnConfigurationChangedEvent( UINT32 in_Time_ms Parameter •...
  • Seite 304 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnSyncPointReachedCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Das Registrieren einer neuen Callback- Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 322 RegisterOnSyncPointReachedCallback() - Native C++ void RegisterOnSyncPointReachedCallback( Syntax EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32...
  • Seite 305 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnSyncPointReachedEvent() Meldet das Event-Objekt ab. Tabelle 7- 325 UnregisterOnSyncPointReachedEvent() - Native C++ void UnregisterOnSyncPointReachedEvent(); Syntax Parameter Keine Rückgabewerte Keine Tabelle 7- 326 UnregisterOnSyncPointReachedEvent() - .NET (C#) void UnregisterOnSyncPointReachedEvent(); Syntax Parameter Keine Rückgabewerte Keine WaitForOnSyncPointReachedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist.
  • Seite 306: Ereignisse Für Azyklische Dienste

    Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 328 WaitForOnSyncPointReachedEvent() - .NET (C#) SOnSyncPointReachedResult WaitForOnSyncPointReachedEvent(); Syntax SOnSyncPointReachedResult WaitForOnSyncPointReachedEvent( UInt32 in_Time_ms Parameter • None: Das Zeitlimit ist auf INFINITE gesetzt. • UInt32 in_Time_ms: Wert für das Zeitlimit in Millisekunden. Rückgabewerte • SOnSyncPointReachedResult: Eine Struktur, die Informationen zum Ereignis liefert.
  • Seite 307 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnDataRecordReadCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Das Registrieren einer neuen Callback- Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 331 RegisterOnDataRecordReadCallback() - Native C++ void RegisterOnDataRecordReadCallback ( Syntax Event Callback_II_SREC_ST_SDRI in_CallbackFunction...
  • Seite 308 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnDataRecordWriteCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 334 UnregisterOnDataRecordWriteCallback() - Native C++ void UnregisterOnDataRecordWriteCallback(); Syntax Parameter Keine Rückgabewerte Keine Ereignisse OnAlarmNotification OnAlarmNotificationDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 335 OnAlarmNotificationDone() - .NET (C#) event Delegate_SREC_ST_UINT32_UINT32 OnAlarmNotifica- Syntax...
  • Seite 309 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnAlarmNotificationDoneCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 337 UnregisterOnAlarmNotificationDoneCallback() - Native C++ void UnregisterOnAlarmNotificationDoneCallback (); Syntax Parameter Keine Rückgabewerte Keine Ereignisse OnProcessEvent OnProcessEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 338 OnProcessEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32 OnProces- Syntax...
  • Seite 310 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnProcessEventDoneCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 340 UnregisterOnProcessEventDoneCallback() - Native C++ void UnregisterOnProcessEventDoneCallback (); Syntax Parameter Keine Rückgabewerte Keine Ereignisse OnPullOrPlugEvent OnPullOrPlugEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 341 OnPullOrPlugEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32_EPPET_UINT32 OnPullOr- Syntax...
  • Seite 311 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnPullOrPlugEventDoneCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 343 UnregisterOnPullOrPlugEventDoneCallback() - Native C++ void UnregisterOnPullOrPlugEventDoneCallback (); Syntax Parameter Keine Rückgabewerte Keine Ereignisse OnStatusEvent OnStatusEventDone() Meldet eine Event-Handler Methode an- oder ab. Tabelle 7- 344 OnStatusEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32 OnStatusEventDone;...
  • Seite 312 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnStatusEventDoneCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 346 UnregisterOnStatusEventDoneCallback() - Native C++ void UnregisterOnStatusEventDoneCallback (); Syntax Parameter Keine Rückgabewerte Keine Ereignisse OnProfileEvent OnProfileEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 347 OnProfileEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32 OnProfileEventDone;...
  • Seite 313 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnProfileEventDoneCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 349 UnregisterOnProfileEventDoneCallback() - Native C++ void UnregisterOnProfileEventDoneCallback (); Syntax Parameter Keine Rückgabewerte Keine Ereignisse OnUpdateEvent OnUpdateEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 350 OnUpdateEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32 OnUpdateEventDone;...
  • Seite 314 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnUpdateEventDoneCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 352 UnregisterOnUpdateEventDoneCallback() - Native C++ void UnregisterOnUpdateEventDoneCallback (); Syntax Parameter Keine Rückgabewerte Keine Ereignisse RackOrStationFault OnRackOrStationFaultEvent Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 353 OnRackOrStationFaultEvent - .NET (C#) event Delegate_SREC_ST_UINT32_ERSFET OnRackOrStationFault;...
  • Seite 315: Api Iremoteruntimemanager

    Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager UnregisterOnRackOrStationFaultEventCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 355 UnregisterOnRackOrStationFaultEventCallback() - Native C++ void UnregisterOnRackOrStationFaultEventCallback (); Syntax Parameter Keine Rückgabewerte Keine API IRemoteRuntimeManager 7.7.1 Schnittstellen - Information und Einstellungen Dispose() Löscht die managed Schnittstelle und entlädt die nativen Komponenten der Anwenderschnittstellen.
  • Seite 316 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager GetVersion() Liefert die Version des Remote Runtime Managers zurück. Wenn die Funktion fehlschlägt, wird die Version 0.0 zurückgegeben. Tabelle 7- 357 GetVersion() - Native C++ UINT32 GetVersion(); Syntax Parameter Keine Rückgabewerte UINT32: Remote Runtime Manager Version (HIWORD = Major, LOWORD = Minor) Tabelle 7- 358 Version { get;...
  • Seite 317 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager GetPort() / Port { get; } Liefert den offenen Port des PC, auf dem der Remote Runtime Manager läuft. Wenn die Funktion fehlschlägt, ist der Rückgabewert 0. Tabelle 7- 361 GetPort() - Native C++ UINT16 GetPort(); Syntax Parameter Keine...
  • Seite 318 Tabelle 7- 364 RemoteComputerName { get; } - .NET (C#) string RemoteComputerName { get; } Syntax Parameter Keine Rückgabewerte string: Name des PC, auf dem der Remote Runtime Manager läuft. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved Manager getrennt.
  • Seite 319 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager GetStrictMotionTiming() / StrictMotionTiming { get; } Liefert die aktuelle globale Einstellung für das "Strict Motion Timing" Feature, die sich auf neu erzeugte Instanzen auswirkt. Tabelle 7- 367 GetStrictMotionTiming() - Native C++ ERuntimeErrorCode GetStrictMotionTiming(bool* enabled); Syntax Parameter bool* enabled: Erhält die aktuelle Einstellung.
  • Seite 320 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager SetStrictMotionTiming() / StrictMotionTiming { set; } Setzt die globale Einstellung für das "Strict Motion Timing" Feature, die sich auf neu erzeugte Instanzen auswirkt. Tabelle 7- 369 SetStrictMotionTiming() - Native C++ ERuntimeErrorCode SetStrictMotionTiming(bool enable); Syntax Parameter bool enable: Der einzustellende Wert.
  • Seite 321: Simulation Runtime Instanzen

    Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager 7.7.2 Simulation Runtime Instanzen 7.7.2.1 Simulation Runtime Instanzen (Remote) GetRegisteredInstancesCount() Liefert die Anzahl der Instanzen zurück, die im Runtime Manager registriert sind. Wenn die Funktion fehlschlägt, ist der Rückgabewert 0. Tabelle 7- 371 GetRegisteredInstancesCount() - Native C++ UINT32 GetRegisteredInstancesCount();...
  • Seite 322 Namen dieser Instanz verwenden, um eine Schnittstelle von dieser Instanz zu erzeugen, siehe CreateInterface(). Tabelle 7- 373 RegisterInstanceInfo { get; } - .NET (C#) Syntax SInstanceInfo[] RegisteredInstanceInfo { get; } Parameter Keine Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved Manager getrennt. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 323 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager RegisterInstance() Registriert im Runtime Manager eine neue Instanz eines virtuellen Controllers. Erzeugt und liefert eine Schnittstelle von dieser Instanz zurück. Tabelle 7- 374 RegisterInstance() - Native C++ ERuntimeErrorCode RegisterInstance( Syntax IInstance** out_InstanceInterface ERuntimeErrorCode RegisterInstance( WCHAR* in_InstanceName, IInstance** out_InstanceInterface ERuntimeErrorCode RegisterInstance( ECPUType in_CPUType,...
  • Seite 324 Name eindeutig ist. Die Länge des Namens muss kürzer sein als DINSTANCE_NAME_LENGTH. Siehe Datentypen (Seite 361). Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers. Ansonsten einen Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved...
  • Seite 325 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager RegisterCustomInstance() Registriert im Runtime Manager eine neue Instanz eines virtuellen Controllers. Erzeugt und liefert eine Schnittstelle von dieser Instanz zurück. Tabelle 7- 376 RegisterCustomInstance() - Native C++ ERuntimeErrorCode RegisterCustomInstance( Syntax WCHAR* in_VplcDll, IInstance** out_InstanceInterface ERuntimeErrorCode RegisterCustomInstance( WCHAR* in_VplcDll, WCHAR* in_InstanceName, IInstance** out_InstanceInterface...
  • Seite 326 Name eindeutig ist. Die Länge des Namens muss kürzer sein als DINSTANCE_NAME_LENGTH. Siehe Datentypen (Seite 361). Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved...
  • Seite 327 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager CreateInterface() Erzeugt und liefert eine Schnittstelle einer bereits registrierten Instanz eines virtuellen Controllers zurück. Die Instanz kann über die Anwendung registriert worden sein oder über eine andere Anwendung, die die Simulation Runtime API nutzt. Tabelle 7- 378 CreateInterface() - Native C++ ERuntimeErrorCode CreateInterface( Syntax WCHAR* in_InstanceName,...
  • Seite 328: Ereignisse Für Iremoteruntimemanager

    Der Name der registrierten Instanz, von der Sie die Schnittstelle emfangen möchten. Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved...
  • Seite 329 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager OnConnectionLost Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 380 OnConnectionLost - .NET (C#) event Delegate_IRRTM OnConnectionLost; Syntax Parameter Keine. Siehe Delegate_IRRTM (Seite 353) Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnConnectionLostCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 330 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager Tabelle 7- 383 RegisterOnConnectionLostEvent() - .NET (C#) void RegisterOnConnectionLostEvent(); Syntax Parameter Keine Rückgabewerte Keine UnregisterOnConnectionLostCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 384 UnregisterOnConnectionLostCallback() - Native C++ void UnregisterOnConnectionLostCallback(); Syntax Parameter Keine...
  • Seite 331 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager WaitForOnConnectionLostEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 7- 387 WaitForOnConnectionLostEvent() - Native C++ bool WaitForOnConnectionLostEvent(); Syntax bool WaitForOnConnectionLostEvent( UINT32 in_Time_ms ) Parameter •...
  • Seite 332: Datentypen

    2457 zu 999. Ohne BCD-Konvertierung gibt es keinen UInt16-Wert und Write schreibt überhaupt keinen Wert. Weitere Informationen Informationen zu Datentypen und zur Konvertierung erhalten Sie im Kapitel "Datentypen" im Systemhandbuch SIMATIC STEP 7 Basic/Professional (https://support.industry.siemens.com/cs/ww/de/view/109755202). S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 333: Dll-Importfunktionen (Native C++)

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.1 DLL-Importfunktionen (Native C++) 7.8.1.1 ApiEntry_Initialize Beschreibung Typ des zentralen Eintrittspunkts für die API-Bibliothek (DLL). Tabelle 7- 389 ApiEntry_Initialize - Native C++ typedef ERuntimeErrorCode(*ApiEntry_Initialize)( Syntax ISimulationRuntimeManager** out_RuntimeManagerInterface Parameter • ISimulationRuntimeManager** out_SimulationRuntimeManagerInterface: Zeiger auf einen Runtime Manager Schnittstellenzeiger. Der Zeiger muss mit NULL initialisiert werden.
  • Seite 334: Apientry_Destroyinterface

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.1.2 ApiEntry_DestroyInterface Beschreibung Typ des Eintrittspunkts für DestroyInterface (Seite 106). Tabelle 7- 390 ApiEntry_DestroyInterface - Native C++ typedef ERuntimeErrorCode(*ApiEntry_DestroyInterface)( Syntax IBaseInterface* in_Interface Parameter • IBaseInterface* in_Interface: Die Schnittstelle, die gelöscht werden soll. Rückgabewerte Runtime Fehlercode Bedingung SREC_OK Die Funktion ist erfolgreich.
  • Seite 335: Eventcallback_Srcc_Uint32_Uint32_Int32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.2 EventCallback_SRCC_UINT32_UINT32_INT32 Beschreibung Tabelle 7- 392 EventCallback_SRCC_UINT32_UINT32_INT32 - Native C++ ERuntimeConfigChanged in_RuntimeConfigChanged, Syntax UINT32 in_Param1, UINT32 in_Param2, INT32 in_Param3 Parameter ERuntimeCon- UInt32 UInt32 Int32 figChanged in_Param1 in_Param2 in_Param3 in_RuntimeCon figChanged SRCC_INSTANCE ID der registrierten _REGISTERED Instanz SRCC_INSTANCE ID der nicht re- _UNREGISTERED...
  • Seite 336: Eventcallback_Srrsi_Ad

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.3 EventCallback_SRRSI_AD Beschreibung Tabelle 7- 393 EventCallback_SRRSI_AD - Native C++ typedef void (*EventCallback_SRRSI_AD)( Syntax EAutodiscoverType in_AutodiscoverMsg, SAutodiscoverData in_AutodiscoverData Parameter • in_AutodiscoverMsg: Ein Wert aus der Liste der vordefinierten Typen von Ereignissen, siehe EAuto- discoverType (Seite 385). SRRSI_DISCOVER_STARTED, wenn der Identifizierungs-Vorgang durch –...
  • Seite 337: Eventcallback_Ii_Srec_St_Sros_Sros

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.5 EventCallback_II_SREC_ST_SROS_SROS Beschreibung Tabelle 7- 395 EventCallback_II_SREC_ST_SROS_SROS - Native C++ typedef void (*EventCallback_II_SREC_ST_SROS_SROS)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, EOperatingState in_PrevState, EOperatingState in_OperatingState Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 338: Eventcallback_Ii_Srec_St_Uint32_Int64_Int64_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.6 EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32 Beschreibung Tabelle 7- 396 EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32 - Native C++ typedef void Syntax (*EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32)( IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_PipId, INT64 in_TimeSinceSameSyncPoint_ns, INT64 in_TimeSinceAnySyncPoint_ns, UINT32 in_SyncPointCount Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 339: Eventcallback_Ii_Srec_St

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.7 EventCallback_II_SREC_ST Beschreibung Tabelle 7- 397 EventCallback_II_SREC_ST - Native C++ typedef void (*EventCallback_II_SREC_ST)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode. •...
  • Seite 340: Eventcallback_Ii_Srec_St_Sricc_Uint32_Uint32_Uint32_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.8 EventCallback_II_SREC_ST_SRICC_UINT32_UINT32_UINT32_UINT32 Beschreibung Tabelle 7- 398 EventCallback_II_SREC_ST_SRICC_UINT32_UINT32_UINT32_UINT32 - Native C++ typedef void Syntax (*EventCallback_II_SREC_ST_SRICC_UINT32_UINT32_UINT32_UINT3 IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, EInstanceConfigChanged in_InstanceConfigChanged, UINT32 in_Param1, UINT32 in_Param2, UINT32 in_Param3, UINT32 in_Param4 Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 341: Eventcallback_Ii_Srec_St_Srlt_Srlm

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.9 EventCallback_II_SREC_ST_SRLT_SRLM Beschreibung Tabelle 7- 399 EventCallback_II_SREC_ST_SRLT_SRLM - Native C++ typedef void (*EventCallback_II_SREC_ST_SRLT_SRLM)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, ELEDType in_LEDType, ELEDMode in_LEDMode, Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 342: Eventcallback_Ii_Srec_St_Sdri

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.10 EventCallback_II_SREC_ST_SDRI Beschreibung Tabelle 7- 400 EventCallback_II_SREC_ST_SDRI - Native C++ typedef void (*EventCallback_II_SREC_ST_SDRI)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, SDataRecordInfo in_DataRecordInfo Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode •...
  • Seite 343: Eventcallback_Ii_Srec_St_Sdri_Byte

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.11 EventCallback_II_SREC_ST_SDRI_BYTE Beschreibung Tabelle 7- 401 EventCallback_II_SREC_ST_SDRI_BYTE - Native C++ typedef void (*EventCallback_II_SREC_ST_SDRI_BYTE)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, SDataRecordInfo in_DataRecordInfo const BYTE* in_Data Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 344: Eventcallback_Ii_Srec_St_Uint32_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.12 EventCallback_II_SREC_ST_UINT32_UINT32 Beschreibung Tabelle 7- 402 EventCallback_II_SREC_ST_UINT32_UINT32 - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32_UINT32)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier), UINT32 in_SequenceNumber Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 345: Eventcallback_Ii_Srec_St_Uint32_Uint32_Epet_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.13 EventCallback_II_SREC_ST_UINT32_UINT32_EPET_UINT32 Beschreibung Tabelle 7- 403 EventCallback_II_SREC_ST_UINT32_UINT32_EPET_UINT32 - Native C++ typedef void Syntax (*EventCallback_II_SREC_ST_UINT32_UINT32_EPET_UINT32)( IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier, UINT32 in_Channel, EProcessEventType in_ProcessEventType, UINT32 in_SequenceNumber Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 346: Eventcallback_Ii_Srec_St_Uint32_Eppet_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.14 EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 Beschreibung Tabelle 7- 404 EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 - Native C++ typedef void Syntax (*EventCallback_II_SREC_ST_UINT32_EPPET_UINT32)( IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SYSTEMTIME, UINT32 in_HardwareIdentifier, EPullOrPlugEventType in_PullOrPlugEventType, UINT32 in_SequenceNumber Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 347: Eventcallback_Ii_Srec_St_Uint32_Ersfet

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.15 EventCallback_II_SREC_ST_UINT32_ERSFET Beschreibung Tabelle 7- 405 EventCallback_II_SREC_ST_UINT32_ERSFET - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32_ERSFET)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier, ERackOrStationFaultType in_EventType Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 348: Eventcallback_Ii_Srec_St_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.16 EventCallback_II_SREC_ST_UINT32 Beschreibung Tabelle 7- 406 EventCallback_II_SREC_ST_UINT32 - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier); Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode •...
  • Seite 349: Delegate_Srcc_Uint32_Uint32_Int32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.2 Delegate_SRCC_UINT32_UINT32_INT32 Beschreibung Tabelle 7- 408 Delegate_SRCC_UINT32_UINT32_INT32 - .NET (C#) delegate void Delegate_SRCC_UINT32_UINT32_INT32( Syntax ERuntimeConfigChanged in_RuntimeConfigChanged, UInt32 in_Param1, UInt32 in_Param2, Int32 in_Param3 ERuntimeCon- UInt32 UInt32 Int32 Parameter figChanged in_Param1 in_Param2 in_Param3 in_RuntimeCon figChanged InstanceRe- ID der registrierten gistered Instanz InstanceUnre-...
  • Seite 350: Delegate_Srrsi_Ad

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.3 Delegate_SRRSI_AD Beschreibung Tabelle 7- 409 Delegate_SRRSI_AD - .NET (C#) delegate void Delegate_SRRSI_AD( Syntax EAutodiscoverType in_AutodiscoverType, SAutodiscoverData in_AutodiscoverData Parameter • in_AutodiscoverType Ein Wert aus der Liste der vordefinierten Typen von Ereignissen, siehe EAuto- discoverType (Seite 409). AutodiscoverStarted, wenn der Identifizierungs-Vorgang durch ei- –...
  • Seite 351: Delegate_Ii_Erec_Dt

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.4 Delegate_II_EREC_DT Beschreibung Tabelle 7- 410 Delegate_II_EREC_DT - .NET (C#) delegate void Delegate_II_EREC_DT ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 352: Delegate_Ii_Erec_Dt_Elt_Elm

    Anwenderschnittstellen (API) 7.8 Datentypen Rückgabewerte Keine Fehlercodes Runtime Fehlercode Bedingung ERuntimeErrorCode.OK Die Funktion ist erfolgreich. ERuntimeError- Keine Lizenz verfügbar. Sie können die Code.WarningTrialModeActive Instanz ohne Einschränkung mit der Trial License nutzen. Danach wird die Instanz abgeschaltet. ERuntimeError- Der Testmodus ist abgelaufen. Code.LicenseNotFound ERuntimeError- Ein Problem mit der ausgewählten...
  • Seite 353: Delegate_Ii_Erec_Dt_Uint32_Int64_Int64_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.7 Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 Beschreibung Tabelle 7- 413 Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 - .NET (C#) delegate void Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_PipId, Int64 in_TimeSinceSameSyncPoint_ns, Int64 in_TimeSinceAnySyncPoint_ns, UInt32 in_SyncPointCount Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 354: Delegate_Irrtm

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.8 Delegate_IRRTM Beschreibung Tabelle 7- 414 Delegate_IRRTM - .NET (C#) delegate void Delegate_IRRTM( Syntax IRemoteRuntimeManager in_Sender, Parameter • IRemoteRuntimeManager in_Sender: Eine Schnittstelle des Remote Runtime Managers, die dieses Ereignis emp- fängt. Rückgabewerte Keine 7.8.3.9 Delegate_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32 Beschreibung Tabelle 7- 415 Delegate_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32 - .NET (C#) delegate void Delega- Syntax...
  • Seite 355: Delegate_Ii_Erec_Dt_Sdri

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.10 Delegate_II_EREC_DT_SDRI Beschreibung Tabelle 7- 416 Delegate_II_EREC_DT_SDRI - .NET (C#) delegate void Delegate_II_EREC_DT_SDRI ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, SDataRecordInfo in_DataRecordInfo Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 356: Delegate_Ii_Erec_Dt_Sdr

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.11 Delegate_II_EREC_DT_SDR Beschreibung Tabelle 7- 417 Delegate_II_EREC_DT_SDR - .NET (C#) delegate void Delegate_II_EREC_DT_SDR ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, SDataRecord in_DataRecord Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 357: Delegate_Srec_St_Uint32_Eppet_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.12 Delegate_SREC_ST_UINT32_EPPET_UINT32 Beschreibung Tabelle 7- 418 Delegate_SREC_ST_UINT32_EPPET_UINT32 - .NET (C#) delegate void Delegate_SREC_ST_UINT32 ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier, EPullOrPlugEventType in_PullOrPlugEventType, UInt32 in_SequenceNumber Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 358: Delegate_Srec_St_Uint32_Uint32_Epet_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.13 Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32 Beschreibung Tabelle 7- 419 Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32 - Native C++ delegate void Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier UInt32 in_Channel, EProcessEventType in_ProcessEventType, UInt32 in_SequenceNumber Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 359: Delegate_Srec_St_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.14 Delegate_SREC_ST_UINT32 Beschreibung Tabelle 7- 420 Delegate_SREC_ST_UINT32 - .NET (C#) delegate void Delegate_SREC_ST_UINT32 ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 360: Delegate_Srec_St_Uint32_Uint32

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.15 Delegate_SREC_ST_UINT32_UINT32 Beschreibung Tabelle 7- 421 Delegate_SREC_ST_UINT32_UINT32 - .NET (C#) delegate void Delegate_SREC_ST_UINT32 ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier UInt32 in_SequenceNumber Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 361: Delegate_Srec_St_Uint32_Ersfet

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.16 Delegate_SREC_ST_UINT32_ERSFET Beschreibung Tabelle 7- 422 Delegate_SREC_ST_UINT32_ERSFET - .NET (C#) delegate void Delegate_SREC_ST_UINT32_ERSFET( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier, ERackOrStationFaultType in_EventType Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 362: Definitionen Und Konstanten

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.4 Definitionen und Konstanten Folgende Bezeichner werden in der API verwendet: Tabelle 7- 423 Definitionen - Native C++ Bezeichner Wert Beschreibung DINSTANCE_NAME_MAX_LENGTH Der eindeutige Name einer Instanz muss kleiner sein als dieser Wert. DSTORAGE_PATH_MAX_LENGTH Die maximale Pfadlänge zur virtuellen Memory Card.
  • Seite 363: Unions (Native C++)

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.5 Unions (Native C++) 7.8.5.1 Beschreibung Enthält eine IPv4-Adresse. Tabelle 7- 425 UIP - Native C++ union UIP Syntax DWORD IP; BYTE IPs[4]; Member • DWORD IP: Die IP-Adresse in einem einzelnen DWORD • BYTE IPs[4]: Die vier Elemente der IP in absteigender Reihenfolge Beispiel Beispiel für eine IP-Adresse: 192.168.0.1...
  • Seite 364: Udatavalue

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.5.2 UDataValue Beschreibung Enthält den Wert einer PLC-Variable. Tabelle 7- 426 UDataValue - Native C++ union UDataValue Syntax bool Bool; INT8 Int8; INT16 Int16; INT32 Int32; INT64 Int64; UINT8 UInt8; UINT16 UInt16; UINT32 UInt32; UINT64 UInt64; float Float;...
  • Seite 365 Anwenderschnittstellen (API) 7.8 Datentypen Member • bool Bool: 1-Byte boolscher Wert • INT8 Int8: 1-Byte-Ganzzahl mit Vorzeichen • INT16 Int16: 2-Byte-Ganzzahl mit Vorzeichen • INT32 Int32: 4-Byte-Ganzzahl mit Vorzeichen • INT64 Int64: 8-Byte-Ganzzahl mit Vorzeichen • UINT8 UInt8: 1-Byte-Ganzzahl ohne Vorzeichen •...
  • Seite 366: Strukturen

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6 Strukturen Folgende Strukturen stehen zur Verfügung: • SDataValue (Seite 365) • SDVBNI (Seite 368) • SDataValueByAddress (Seite 368) • SDataValueByAddressWithCheck (Seite 369) • SDataValueByName (Seite 370) • SDataValueByNameWithCheck (Seite 371) • SConnectionInfo (Seite 371) • SInstanceInfo (Seite 372) •...
  • Seite 367 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 428 SDataValue - .NET (C#) struct SDataValue Syntax bool Bool { get; set; } Int8 Int8 { get; set; } Int16 Int16 { get; set; } Int32 Int32 { get; set; } Int64 Int64 { get; set; } UInt8 UInt8 { get;...
  • Seite 368 Anwenderschnittstellen (API) 7.8 Datentypen Member • bool Bool: 1-Byte boolscher Wert • Int8 Int8: 1-Byte-Ganzzahl mit Vorzeichen • Int16 Int16: 2-Byte-Ganzzahl mit Vorzeichen • Int32 Int32: 4-Byte-Ganzzahl mit Vorzeichen • Int64 Int64: 8-Byte-Ganzzahl mit Vorzeichen • UntT8 UInt8: 1-Byte-Ganzzahl ohne Vorzeichen •...
  • Seite 369: Sdvbni

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.2 SDVBNI Beschreibung Diese Struktur ist nur für den internen Gebrauch. Ändern Sie diese Struktur nicht. Tabelle 7- 429 SDVBNI - Native C++ struct SDVBNI Syntax Tabelle 7- 430 SDVBNI - .NET (C#) struct SDVBNI Syntax 7.8.6.3 SDataValueByAddress Beschreibung...
  • Seite 370: Sdatavaluebyaddresswithcheck

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.4 SDataValueByAddressWithCheck Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihre Adresse aufgerufen wird. Tabelle 7- 433 SDataValueByAddressWithCheck - Native C++ struct SDataValueByAddressWithCheck Syntax UINT32 Offset; UINT8 Bit; SDataValue DataValue; ERuntimeErrorCode ErrorCode; bool ValueHasChanged; Tabelle 7- 434 SDataValueByAddressWithCheck - .NET (C#) struct SDataValueByAddressWithCheck Syntax UInt32 Offset;...
  • Seite 371: Sdatavaluebyname

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.5 SDataValueByName Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihren Namen aufgerufen wird. Tabelle 7- 435 SDataValueByName - Native C++ struct SDataValueByName Syntax WCHAR Name[DTAG_NAME_MAX_LENGTH]; SDataValue DataValue; ERuntimeErrorCode ErrorCode; SDVBNI Internal; Tabelle 7- 436 SDataValueByName - .NET (C#) struct SDataValueByName Syntax String Name;...
  • Seite 372: Sdatavaluebynamewithcheck

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.6 SDataValueByNameWithCheck Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihren Namen aufgerufen wird. Tabelle 7- 437 SDataValueByNameWithCheck - Native C++ struct SDataValueByNameWithCheck Syntax WCHAR Name[DTAG_NAME_MAX_LENGTH]; SDataValue DataValue; ERuntimeErrorCode ErrorCode; SDVBNI Internal; bool ValueHasChanged; Tabelle 7- 438 SDataValueByNameWithCheck - .NET (C#) struct SDataValueByNameWithCheck Syntax String Name;...
  • Seite 373: Sinstanceinfo

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.8 SInstanceInfo Beschreibung Diese Struktur enthält eine IPv4-Adresse. Tabelle 7- 441 SInstanceInfo - Native C++ struct SInstanceInfo Syntax INT32 ID; WCHAR Name[DINSTANCE_NAME_MAX_LENGTH]; Member • INT32 ID: Die ID der Instanz • WCHAR Name[DINSTANCE_NAME_MAX_LENGTH]: Der Name der Instanz Tabelle 7- 442 SInstanceInfo - .NET (C#) struct SInstanceInfo Syntax...
  • Seite 374: Staginfo

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.10 STagInfo Beschreibung Diese Struktur enthält Informationen zu einer PLC-Variablen. Tabelle 7- 445 STagInfo - Native C++ struct STagInfo Syntax WCHAR Name[DTAG_NAME_MAX_LENGTH]; EArea Area; EDataType DataType; EPrimitiveDataType PrimitiveDataType; UINT16 Size; UINT32 Offset; UINT8 Bit; UINT8 DimensionCount; UINT32 Index;...
  • Seite 375 Anwenderschnittstellen (API) 7.8 Datentypen Member • WCHAR Name[DTAG_NAME_MAX_LENGTH]: Der Name der Variablen • EArea Area: Der CPU-Bereich, in dem sich die Variable befindet. • EDataType DataType: Der CPU-Datentyp der Variablen • EPrimitiveDataType PrimitiveDataType: Der primitive Datentyp der Variablen • UINT16 Size: Die Größe der Variablen in Byte •...
  • Seite 376 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 446 STagInfo - .NET (C#) public struct STagInfo Syntax String Name; EArea Area; EDataType DataType; EPrimitiveDataType PrimitiveDataType; UInt16 Size; UInt32 Offset; UInt8 Bit; UInt32 Index; UInt32 ParentIndex; SDimension[] Dimension; Member • String Name: Der Name der Variablen •...
  • Seite 377: Sip

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.11 Beschreibung Diese Struktur enthält eine IPv4-Adresse. Tabelle 7- 447 SIP - .NET (C#) struct SIP Syntax byte[] IPArray { get; set; } UInt32 IPDWord { get; set; } string IPString { get; set; } Member •...
  • Seite 378 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 449 SIPSuite4 - .NET (C#) struct SIPSuite4 Syntax SIP IPAddress; SIP SubnetMask; SIP DefaultGateway; Member • SIP IPAddress: Die IP-Adresse • SIP SubnetMask: Die Subnetzmaske • SIP DefaultGateway: Das Standard-Gateway S7-PLCSIM Advanced Funktionshandbuch, 05/2021, A5E37039506-AD...
  • Seite 379: Sonsyncpointreachedresult

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.13 SOnSyncPointReachedResult Beschreibung Diese Struktur enthält die Ergebnisse des OnSyncPointReached-Ereignisses. Tabelle 7- 450 SOnSyncPointReachedResult - Native C++ struct SOnSyncPointReachedResult Syntax ERuntimeErrorCode ErrorCode; SYSTEMTIME SystemTime; UINT32 PipId; INT64 TimeSinceSameSyncPoint_ns; INT64 TimeSinceAnySyncPoint_ns; UINT32 SyncPointCount; Member • ERuntimeErrorCode ErrorCode: SREC_TIMEOUT, wenn während der definierten Zeitspanne kein Ereignis –...
  • Seite 380 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 451 SOnSyncPointReachedResult - .NET (C#) struct SOnSyncPointReachedResult Syntax ERuntimeErrorCode ErrorCode; DateTime SystemTime; UInt32 PipId; Int64 TimeSinceSameSyncPoint_ns; Int64 TimeSinceAnySyncPoint_ns; UInt32 SyncPointCount; Member • ERuntimeErrorCode ErrorCode: ERuntimeErrorCode.Timeout, wenn während der definierten Zeit- – spanne kein Ereignis ausgelöst wurde. WarningInvalidCall, wenn zuvor keine Funktion RegisterOn- –...
  • Seite 381: Sdatarecordinfo

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.14 SDataRecordInfo Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen. Tabelle 7- 452 SDataRecordInfo - Native C++ struct SDataRecordInfo Syntax UINT32 HardwareId; UINT32 RecordIdx; UINT32 DataSize; Member • UINT32 HardwareId: Die ID des Hardware-Moduls (Hardware-Identifier) • UINT32 RecordIdx: Die Datensatznummer •...
  • Seite 382: Sdatarecord

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.15 SDataRecord Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen und Datensätze. Tabelle 7- 454 SDataRecord - .NET (C#) struct SDataRecord Syntax UInt32 HardwareId; byte[] Data Member • SDataRecordInfo Info: Die Datensatz-Information, siehe SDataRecordInfo (Seite 380) • byte[] Data: Die Feldgröße 7.8.6.16 SConfiguredProcessEvents...
  • Seite 383 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 456 SConfiguredProcessEvents - .NET (C#) public struct SConfiguredProcessEvents Syntax ushort HardwareIdentifier; ushort Channel; EProcessEventType ProcessEventType; string Name; Member • ushort HardwareIdentifier: Die HW-Kennung • ushort Channel: Der Kanal des IO-Moduls, das das Prozessereignis generiert. •...
  • Seite 384: Sdiagextchanneldescription

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.17 SDiagExtChannelDescription Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen und Datensätze. Tabelle 7- 457 SDiagExtChannelDescription - Native C++ struct SDiagExtChannelDescription Syntax UINT16 ChannelNumber; UINT16 ErrorType; UINT16 ExtErrorType; EDiagSeverity Severity; EDiagProperty Direction; Member • UINT16 ChannelNumber: Wenn sich der Alarm auf einen bestimmten Kanal des IO-Device bezieht (z. B. Kurzschluss), dann muss dieser Parameter die Nummer des gestörten Kanals enthalten.
  • Seite 385 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 458 SDiagExtChannelDescription - .NET (C#) struct SDiagExtChannelDescription Syntax UInt16 ChannelNumber; UInt16 ErrorType; UInt16 ExtErrorType; EDiagSeverity Severity; EDiagProperty Direction; Member • UInt16 ChannelNumber: Wenn sich der Alarm auf einen bestimmten Kanal des IO-Device bezieht (z. B. Kurzschluss), dann muss dieser Parameter die Nummer des gestörten Kanals enthalten.
  • Seite 386: Die Folgende Tabelle Enthält Fehlertypen Extchannelerrortype Für Channelerrortype "Remote Mismatch"

    Anwenderschnittstellen (API) 7.8 Datentypen Die folgende Tabelle enthält Fehlertypen ExtChannelErrorType für ChannelErrorType "Remote mismatch": Tabelle 7- 460 Fehlertypen ExtChannelErrorType Wert Bedeutung Gebrauch 0x0000 Reserviert 0x0001 bis 0x7FFF Herstellerkennung Alarm/Diagnose 0x8000 Peer name of station mismatch Alarm/Diagnose 0x8001 Peer name of port mismatch Alarm/Diagnose 0x8002 Peer RT_CLASS_3 mismatch...
  • Seite 387: Aufzählungen

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7 Aufzählungen Folgende Aufzählungen stehen zur Verfügung: • ERuntimeErrorCode (Seite 387) • EArea (Seite 390) • EOperatingState (Seite 391) • EOperatingMode (Seite 392) • ECPUType (Seite 393) • ECommunicationInterface (Seite 395) • ELEDType (Seite 395) • ELEDMode (Seite 396) •...
  • Seite 388: Eruntimeerrorcode

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.1 ERuntimeErrorCode Beschreibung Diese Aufzählung enthält alle Fehlercodes, die von der Simulation Runtime API genutzt werden. Die meisten der API-Funktionen liefern einen dieser Fehlercodes zurück. Wenn die Funktionen erfolgreich sind, ist der Rückgabewert immer SREC_OK / OK. Fehler werden mit negativen Werten zurückgegeben, Warnungen mit positiven.
  • Seite 389 Anwenderschnittstellen (API) 7.8 Datentypen SREC_STORAGE_PATH_ALREADY_IN_USE = -35, Syntax SREC_MESSAGE_INCOMPLETE = -36, SREC_ARCHIVE_STORAGE_NOT_CREATED = -37, SREC_RETRIEVE_STORAGE_FAILURE = -38, SREC_INVALID_OPERATING_STATE = -39, SREC_INVALID_ARCHIVE_PATH = -40, SREC_DELETE_EXISTING_STORAGE_FAILED = -41, SREC_CREATE_DIRECTORIES_FAILED = -42, SREC_NOT_ENOUGH_MEMORY = -43, SREC_WARNING_TRIAL_MODE_ACTIVE = 44, SREC_NOT_RUNNING = -45, SREC_NOT_EMPTY = -46, SREC_NOT_UP_TO_DATE = -47, SREC_COMMUNICATION_INTERFACE_NOT_AVAILABLE = -48, SREC_WARNING_NOT_COMPLETE = 49,...
  • Seite 390 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 464 ERuntimeErrorCode - .NET (C#) enum ERuntimeErrorCode Syntax OK = 0, InvalidErrorCode = -1, NotImplemented = -2, IndexOutOfRange = -3, DoesNotExist = -4, AlreadyExists = -5, UnknownMessageType = -6, InvalidMessageId = -7, WrongArgument = -8, WrongPipe = -9, ConnectionError = -10, Timeout = -11,...
  • Seite 391: Earea

    Anwenderschnittstellen (API) 7.8 Datentypen CreateDirectoriesFailed = -42, Syntax NotEnoughMemory = -43, WarningTrialModeActive = 44, NotRunning = -45, NotEmpty = -46, NotUpToDate = -47, CommunicationInterfaceNotAvailable = -48, WarningNotComplete = 49, RuntimeNotAvailable = -51, IsEmpty = -52, WrongModuleState = -53, WrongModuleType = -54, NotSupportedByModule = -55, InternalError = -56, StorageTransferError = -57,...
  • Seite 392: Eoperatingstate

    Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 466 EArea - .NET (C#) public enum EArea Syntax InvalidArea = 0, Input = 1, Marker = 2, Output = 3, Counter = 4, Timer = 5, DataBlock = 6, 7.8.7.3 EOperatingState Beschreibung Diese Aufzählung enthält alle Betriebszustände eines virtuellen Controllers. Tabelle 7- 467 EOperatingState - Native C++ enum EOperatingState Syntax...
  • Seite 393: Eoperatingmode

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.4 EOperatingMode Beschreibung Diese Aufzählung enthält alle Betriebsarten eines virtuellen Controllers. Tabelle 7- 469 EOperatingMode - Native C++ enum EOperatingMode Syntax SROM_DEFAULT = 0, SROM_SINGLE_STEP_C = 1, SROM_SINGLE_STEP_CT = 2, SROM_TIMESPAN_SYNCHNRONIZED_C = 3, SROM_SINGLE_STEP_P = 4, SROM_TIMESPAN_SYNCHNRONIZED_P = 5, SROM_SINGLE_STEP_CP = 6, SROM_SINGLE_STEP_CPT = 7,...
  • Seite 394: Ecputype

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.5 ECPUType Beschreibung Diese Aufzählung enthält alle CPU-Typen, die auf einen virtuellen Controller geladen werden können. Tabelle 7- 471 ECPUType - Native C++ Syntax enum ECPUType SRCT_1500_Unspecified = 0x000005DC, SRCT_1511 = 0x000005E7, SRCT_1513 = 0x000005E9, SRCT_1515 = 0x000005EB, SRCT_1516 = 0x000005EC, SRCT_1517 = 0x000005ED, SRCT_1518 = 0x000005EE,...
  • Seite 395 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 472 ECPUType - .NET (C#) Syntax enum ECPUType CPU1500_Unspecified = 0x000005DC, CPU1511 = 0x000005E7, CPU1513 = 0x000005E9, CPU1515 = 0x000005EB, CPU1516 = 0x000005EC, CPU1517 = 0x000005ED, CPU1518 = 0x000005EE, CPU1511C = 0x000405E7, CPU1512C = 0x000405E8, CPU1511F = 0x000105E7, CPU1513F = 0x000105E9, CPU1515F = 0x000105EB,...
  • Seite 396: Ecommunicationinterface

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.6 ECommunicationInterface Beschreibung Diese Aufzählung enthält die verfügbaren Kommunikationsschnittstellen eines virtuellen Controllers. Tabelle 7- 473 ECommunicationInterface - Native C++ enum ECommunicationInterface Syntax SRCI_NONE = 0, SRCI_SOFTBUS = 1, SRCI_TCPIP = 2, SRCI_ENUMERATION_SIZE = 3 Tabelle 7- 474 ECommunicationInterface - .NET (C#) enum ECommunicationInterface Syntax None = 0,...
  • Seite 397: Eledmode

    Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 476 ELEDType - .NET (C#) enum ELEDType Syntax Stop = 0, Run = 1, Error = 2 Maint = 3, Redund = 4, Force = 5, Busf1 = 6, Busf2 = 7, Busf3 = 8, Busf4 = 9 7.8.7.8 ELEDMode...
  • Seite 398: Eprimitivedatatype

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.9 EPrimitiveDataType Beschreibung Diese Aufzählung enthält alle primitiven Datentypen, die von den I/O-Zugriffs-Funktionen genutzt werden. Tabelle 7- 479 EPrimitiveDataType - Native C++ enum EPrimitiveDataType Syntax SRPDT_UNSPECIFIC = 0, SRPDT_STRUCT = 1, SRPDT_BOOL = 2, SRPDT_INT8 = 3, SRPDT_INT16 = 4, SRPDT_INT32 = 5, SRPDT_INT64 = 6,...
  • Seite 399 Anwenderschnittstellen (API) 7.8 Datentypen Kompatible primitive Datentypen Die folgenden Tabellen zeigen die primitiven Datentypen der Anwenderschnittstelle (API) und die Datentypen der PLCSIM Advanced Instanz, die in der gespeicherten Variablentabelle konfiguriert sind. Die Datentypen, die kompatibel verwendbar sind, sind mit "X" markiert. Tabelle 7- 481 Kompatible primitive Datentypen - Lesen PLCSIM Advanced Instanz Bool...
  • Seite 400: Edatatype

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.10 EDataType Beschreibung Diese Aufzählung enthält alle PLC-Datentypen (STEP 7). Tabelle 7- 483 EDataType - Native C++ enum EDataType Syntax SRDT_UNKNOWN = 0, SRDT_BOOL = 1, SRDT_BYTE = 2, SRDT_CHAR = 3, SRDT_WORD = 4, SRDT_INT = 5, SRDT_DWORD = 6, SRDT_DINT = 7, SRDT_REAL = 8,...
  • Seite 401 Anwenderschnittstellen (API) 7.8 Datentypen SRDT_IEC_USCounter = 73, Syntax SRDT_IEC_UDCounter = 74, SRDT_IEC_ULCounter = 75, SRDT_ERROR_STRUCT = 97, SRDT_NREF = 98, SRDT_CREF = 101, SRDT_AOM_IDENT = 128, SRDT_EVENT_ANY = 129, SRDT_EVENT_ATT = 130, SRDT_EVENT_HWINT = 131, SRDT_HW_ANY = 144, SRDT_HW_IOSYSTEM = 145, SRDT_HW_DPMASTER = 146, SRDT_HW_DEVICE = 147, SRDT_HW_DPSLAVE = 148,...
  • Seite 402 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 484 EDataType - .NET (C#) public enum EDataType Syntax Unknown = 0, Bool = 1, Byte = 2, Char = 3, Word = 4, Int = 5, DWord = 6, DInt = 7, Real = 8, Date = 9, TimeOfDay = 10, Time = 11,...
  • Seite 403 Anwenderschnittstellen (API) 7.8 Datentypen NREF = 98, Syntax CREF = 101, Aom_Ident = 128, Event_Any = 129, Event_Att = 130, Event_HwInt = 131, Hw_Any = 144, Hw_IoSystem = 145, Hw_DpMaster = 146, Hw_Device = 147, Hw_DpSlave = 148, Hw_Io = 149, Hw_Module = 150, Hw_SubModule = 151, Hw_Hsc = 152,...
  • Seite 404: Etaglistdetails

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.11 ETagListDetails Beschreibung Diese Aufzählung enthält alle PLC-Areas, die beim Aktualisieren der Variablentabelle als Filter genutzt werden können. Tabelle 7- 485 ETagListDetails - Native C++ enum ETagListDetails Syntax SRTLD_NONE = 0, SRTLD_IO = 1, SRTLD_M = 2, SRTLD_IOM = 3, SRTLD_CT = 4, SRTLD_IOCT = 5,...
  • Seite 405: Eruntimeconfigchanged

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.12 ERuntimeConfigChanged Beschreibung Diese Aufzählung enthält alle möglichen Ursachen für ein OnConfigurationChanged-Ereignis, das der Runtime Manager sendet. Tabelle 7- 487 ERuntimeConfigChanged - Native C++ enum ERuntimeConfigChanged Syntax SRCC_INSTANCE_REGISTERED = 0, SRCC_INSTANCE_UNREGISTERED = 1 SRCC_CONNECTION_OPENED = 2, SRCC_CONNECTION_CLOSED = 3, SRCC_PORT_OPENED = 4, SRCC_PORT_CLOSED = 5...
  • Seite 406: Epullorplugeventtype

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.14 EPullOrPlugEventType Beschreibung Diese Aufzählung enthält vordefinierte Typen von Ziehen/Stecken-Ereignissen für S7-Module. Tabelle 7- 491 EPullOrPlugEventType - Native C++ enum EPullOrPlugEventType Syntax SR_PPE_UNDEFINED = 0, SR_PPE_PULL_EVENT = 1, SR_PPE_PLUG_EVENT = 2, SR_PPE_PLUG_EVENT_ERROR_REMAINS = 3, SR_PPE_PLUG_WRONG_MODULE_EVENT = 4 Tabelle 7- 492 EPullOrPlugEventType - .NET (C#) enum EPullOrPlugEventType Syntax...
  • Seite 407: Edirection

    Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 494 EProcessEventType - .NET (C#) enum EProcessEventType Syntax Undefined = 0, RisingEdge = 1, FallingEdge = 2, Limit_1_Underrun = 3, Limit_1_Overrun = 4, Limit_2_Underrun = 5, Limit_2_Overrun = 6 7.8.7.16 EDirection Beschreibung Diese Aufzählung enthält Eigenschaften der Diagnosemeldung. Tabelle 7- 495 EDirection - Native C++ enum EDirection Syntax...
  • Seite 408: Ediagproperty

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.17 EDiagProperty Beschreibung Diese Aufzählung enthält die Kommend-/Gehend-Information der Diagnosemeldung. Tabelle 7- 497 EDiagProperty - Native C++ enum EDiagProperty Syntax SRP_DIAG_APPEAR = 1, SRP_DIAG_DISAPPEAR = 2 Tabelle 7- 498 EDiagProperty - .NET (C#) enum EDiagProperty Syntax Appear = 1, Disappear = 2 7.8.7.18...
  • Seite 409: Erackorstationfaulttype

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.19 ERackOrStationFaultType Beschreibung Diese Aufzählung enthält die Typen des RackOrStationFault-Ereignisses. Tabelle 7- 501 ERackOrStationFaultType - Native C++ enum ERackOrStationFaultType Syntax SR_RSF_FAULT = 0, SR_RSF_RETURN = 1 Tabelle 7- 502 ERackOrStationFaultType - .NET (C#) enum ERackOrStationFaultType Syntax Fault = 0, Return = 1 7.8.7.20...
  • Seite 410: Eautodiscovertype

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.21 EAutodiscoverType Beschreibung Diese Aufzählung wird bei der Autodiscover Callback-Funktion verwendet. Tabelle 7- 505 EAutodiscoverType - Native C++ enum EAutodiscoverType Syntax SRRSI_DISCOVER_STARTED = 0, SRRSI_DISCOVER_DATA = 1, SRRSI_DISCOVER_FINISHED = 2 Tabelle 7- 506 EAutodiscoverType - .NET (C#) public enum EAutodiscoverType Syntax AutodiscoverStarted = 0,...
  • Seite 411: Einschränkungen, Meldungen Und Abhilfe

    Einschränkungen, Meldungen und Abhilfe Übersicht Bestimmte Aktionen oder Ereignisse können in PLCSIM Advanced oder in STEP 7 zu einem Verhalten führen, das von dem einer Hardware-CPU abweicht. Meldungen und mögliche Abhilfen finden Sie in folgenden Kapiteln: • OPC UA Server (Seite 411) •...
  • Seite 412: Opc Ua Server

    Einschränkungen, Meldungen und Abhilfe 8.2 OPC UA Server OPC UA Server Mit OPC UA wird ein Datenaustausch über ein offenes, standardisiertes und herstellerunabhängiges Kommunikationsprotokoll durchgeführt. Die CPU als OPC UA Server kann mit OPC UA Clients kommunizieren, z. B. mit HMI-Panels und SCADA-Systemen. OPC UA Server konfigurieren Starten Sie die Instanzen über die Kommunikationsschnittstelle "PLCSIM Virtual Ethernet Adapter"...
  • Seite 413: Eingeschränkte Webserver-Funktionalität

    Eingeschränkte Webserver-Funktionalität • Auf einigen Webseiten werden aufgrund von unterschiedlichem Datenhandling die Informationen nicht vollständig angezeigt. • Es gibt keine Topologie-Informationen. • "Online Backup&Restore" ist nicht verfügbar. • FW-Updates werden nicht unterstützt. Projektierung einer PLCSIM Advanced Instanz sichern und wiederherstellen Projektierung sichern und wiederherstellen Ab PLCSIM Advanced V2.0 ist es möglich, eine PLCSIM Advanced Instanz zu sichern und wiederherzustellen.
  • Seite 414: Einschränkungen Bei Dateipfaden

    Einschränkungen, Meldungen und Abhilfe 8.5 Einschränkungen bei Dateipfaden Einschränkungen bei Dateipfaden Für Anwenderschnittstellen, die als Übergabeparameter einen Pfad oder einen vollständigen Dateinamen erwarten, gelten folgende Einschränkungen: Einschränkungen bei Schreibrechte auf systemkritische Verzeichnisse, wie das Windows- lokalen Pfaden Verzeichnis (%Windows%) oder die Programmverzeichnisse (%Program Fi- les%, %Program Files (x86)%) sind nicht erlaubt.
  • Seite 415: Einschränkungen Bei Lokaler Kommunikation Über Softbus

    Einschränkungen bei lokaler Kommunikation über Softbus Identische IP-Adressen für Instanzen Wenn die Kommunikationsschnittstelle "PLCSIM" (Softbus) eingestellt ist, dann werden beim Erstellen der Instanzen über das Control Panel automatisch für alle Instanzen identische IP-Adressen erstellt. In STEP 7 wird in der Lifelist daher nur eine Instanz angezeigt. Abhilfe Weisen Sie über die API-Funktion SetIPSuite() jeder Instanz eine eindeutige Adresse zu, dann werden in STEP 7 alle Instanzen mit ihren IP-Adressen angezeigt.
  • Seite 416: Meldungen Bei Kommunikation Über Tcp/Ip

    Im S7-PLCSIM Advanced Control Panel werden die Einstellungen zur TCP/IP-Kommunikation geprüft. Im Folgenden finden Sie die Meldungen und die entsprechenden Abhilfen: Meldung "Siemens PLCSIM Virtual Ethernet Adapter was not found. Please reinstall PLCSIM Advanced." Abhilfe Der PLCSIM Virtual Ethernet Adapter kann auf dem System nicht gefunden werden.
  • Seite 417 Modus und führen Sie den Befehl "net start npcap" aus. Meldung "You have to set a valid IP address for the Siemens PLCSIM Virtual Ethernet Adapter." Abhilfe Weisen Sie dem Siemens PLCSIM Virtual Ethernet Adapter eine statische IP-Adresse zu oder beziehen Sie eine IP-Adresse über DHCP (Voreinstellung).
  • Seite 418: Einschränkung Der Sicherheit Bei Vmware Vsphere Hypervisor (Esxi)

    Einschränkungen, Meldungen und Abhilfe 8.10 Einschränkung der Sicherheit bei VMware vSphere Hypervisor (ESXi) 8.10 Einschränkung der Sicherheit bei VMware vSphere Hypervisor (ESXi) Die nachfolgenden Informationen sind für Sie nur von Bedeutung, wenn Sie mit der "Außenwelt" kommunizieren möchten. D. h., wenn Sie von einer Virtualisierungsplattform, auf der eine Instanz ausgeführt wird, zugreifen auf eine andere VM, auf der das TIA Portal ausgeführt wird.
  • Seite 419: Einschränkungen Bei Hyper-V

    8.11 Einschränkungen bei Hyper-V Die nachfolgenden Informationen sind für Sie nur von Bedeutung, wenn Sie mit der "Außenwelt" kommunizieren möchten. D. h., wenn Sie von einer Virtualisierungsplattform, auf der eine Instanz ausgeführt wird, zugreifen auf eine andere VM, auf der das TIA Portal ausgeführt wird.
  • Seite 420: Überwachung Überlauf

    Einschränkungen, Meldungen und Abhilfe 8.12 Überwachung Überlauf 8.12 Überwachung Überlauf Überwachung Hauptzyklus Die maximale Zykluszeitüberwachung beträgt für PLCSIM Advanced eine Minute. Wenn Sie die Werte verwenden möchten, die im TIA Portal projektiert sind, dann stellen Sie diese über die folgende API-Funktion ein: SetCycleTimeMonitoringMode(). Siehe Zykluskontrolle (Seite 259) Überwachung zyklischer Ereignisse Wenn Ihre Simulation Weckalarme enthält, kann die Warteschlange von PLCSIM Advanced für...
  • Seite 421: Mehrfache Simulationen Und Mögliche Kollision Der Ip-Adressen

    8.14 Mehrfache Simulationen und mögliche Kollision der IP-Adressen Sie können gleichzeitige mehrere CPUs simulieren, aber jede simulierte CPU-Schnittstelle benötigt eine eindeutige IP-Adresse. Stellen Sie sicher, dass Ihre CPUs unterschiedliche IP-Adressen haben, bevor Sie die Simulationen starten. 8.15 Fehlender Zugriff auf eine IP-Adresse Besonderheit bei der verteilten Kommunikation Wenn Sie mehrere Netzwerk-Teilnehmer im selben Subnetz über unterschiedliche virtuelle oder reale Adapter nutzen, kann es vorkommen, dass das Betriebssystem den Teilnehmer am...
  • Seite 422: Installation Von Simatic Net

    Einschränkungen, Meldungen und Abhilfe 8.18 Installation von SIMATIC NET 8.18 Installation von SIMATIC NET Probleme nach Installation von SIMATIC NET PC Software-Produkten Wenn Sie auf Ihrem PC eines der folgenden Betriebssysteme mit S7-PLCSIM Advanced einsetzen, dann kann es zu Problemen mit den PLCSIM Advanced Instanzen über TCP/IP kommen, sobald Sie SIMATIC NET PC Software-Produkte auf Ihrem PC installiert haben: •...
  • Seite 423: Liste Der Abkürzungen

    Liste der Abkürzungen Abkürzung Begriff Automation License Manager Werkzeug zur Verwaltung von License Keys in STEP 7 Application Programming Interface - Anwenderschnittstelle Address resolution protocol Binary Coded Decimal Central Processing Unit (Synonym für PLC) Dynamic Link Library Human Machine Interface - Benutzerschnittstelle I-Device Intelligentes IO-Device Industrial Ethernet...

Diese Anleitung auch für:

Simatic s7-plcsim advanced

Inhaltsverzeichnis