Herunterladen Inhalt Inhalt Diese Seite drucken
Siemens SIMATIC S7-1500 Funktionshandbuch
Vorschau ausblenden Andere Handbücher für SIMATIC S7-1500:
Inhaltsverzeichnis
Ausgabe
11/2022
FUNKTIONSHANDBUCH
SIMATIC
S7-1500
S7-PLCSIM Advanced
support.industry.siemens.com
Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Siemens SIMATIC S7-1500

  • Seite 1 Ausgabe 11/2022 FUNKTIONSHANDBUCH SIMATIC S7-1500 S7-PLCSIM Advanced support.industry.siemens.com...
  • Seite 2 Einleitung Sicherheitshinweise SIMATIC Produktübersicht S7-PLCSIM Advanced Installieren Funktionshandbuch Kommunikationswege Simulieren Virtuelles Zeitverhalten Anwenderschnittstellen (API) Einschränkungen, Meldungen und Abhilfe Liste der Abkürzungen 11/2022 A5E37039506-AE...
  • Seite 3: Qualifiziertes Personal

    Siemens-Produkte dürfen nur für die im Katalog und in der zugehörigen technischen Dokumentation vorgesehenen Einsatzfälle verwendet werden. Falls Fremdprodukte und -komponenten zum Einsatz kommen, müssen diese von Siemens empfohlen bzw. zugelassen sein. Der einwandfreie und sichere Betrieb der Produkte setzt sachgemäßen Transport, sachgemäße Lagerung, Aufstellung, Montage, Installation, Inbetriebnahme, Bedienung und Instandhaltung voraus.
  • Seite 4: Inhaltsverzeichnis

    Inhaltsverzeichnis Einleitung............................Wegweiser Dokumentation Funktionshandbücher............. 12 1.1.1 Informationsklassen Funktionshandbücher............... 1.1.2 Basiswerkzeuge........................ 13 1.1.3 Technische Dokumentation der SIMATIC................15 Sicherheitshinweise..........................18 Security-Hinweise......................18 Produktübersicht ..........................Was ist S7-PLCSIM Advanced? ................... 19 S7-PLCSIM Produkte......................20 Kompatibilität bei Updates....................21 Sicherheit bei S7-PLCSIM Advanced................... 23 Simulierbarkeit unterstützen.....................
  • Seite 5 S7-PLCSIM Advanced Control Panel................... 60 6.1.2.4 Instanzen importieren....................... 65 6.1.3 STEP 7-Projekt herunterladen.................... 67 6.1.4 Netzwerk-Adressen in der Simulation................70 6.1.4.1 Siemens PLCSIM Virtual Ethernet Adapter................70 6.1.4.2 PLCSIM Advanced Instanzen....................71 6.1.5 Peripherie-IO simulieren....................73 6.1.6 Kommunikation simulieren....................73 6.1.6.1 Simulierbare Kommunikationsdienste................
  • Seite 6 Inhaltsverzeichnis 8.1.6 Übersicht Datentypen für Managed Code................112 API initialisieren ....................... 113 8.2.1 API-Bibliothek laden......................113 8.2.2 Native C++ ........................114 8.2.2.1 InitializeApi() ........................114 8.2.2.2 RuntimeApiEntry_Initialize....................115 8.2.3 .NET (C#).......................... 116 8.2.3.1 Initialize ........................... 116 API herunterfahren......................117 8.3.1 Native C++........................
  • Seite 7 Inhaltsverzeichnis 8.6.8.10 RackOrStationFaultEvent....................254 8.6.9 Ereignisse für IInstances....................255 8.6.9.1 Ereignisse für Betriebszustand und Zykluskontrolle............255 8.6.9.2 Ereignisse für Azyklische Dienste..................269 API IRemoteRuntimeManager.................... 277 8.7.1 Schnittstellen - Information und Einstellungen..............277 8.7.2 Simulation Runtime Instanzen................... 282 8.7.2.1 Simulation Runtime Instanzen (Remote)................282 8.7.3 Ereignisse für IRemoteRuntimeManager................
  • Seite 8 Inhaltsverzeichnis 8.8.5.2 UDataValue........................310 8.8.6 Strukturen........................310 8.8.6.1 SDataValue........................311 8.8.6.2 SDVBNI..........................312 8.8.6.3 SDataValueByAddress....................... 313 8.8.6.4 SDataValueByAddressWithCheck..................314 8.8.6.5 SDataValueByName......................315 8.8.6.6 SDataValueByNameWithCheck..................316 8.8.6.7 SConnectionInfo....................... 316 8.8.6.8 SInstanceInfo........................317 8.8.6.9 SDimension........................317 8.8.6.10 STagInfo........................... 318 8.8.6.11 SIP ........................... 319 8.8.6.12 SIPSuite4..........................
  • Seite 9 Inhaltsverzeichnis Einschränkungen, Meldungen und Abhilfe..................347 Übersicht.......................... 347 OPC UA Server........................347 Webserver........................348 Projektierung einer PLCSIM Advanced Instanz sichern und wiederherstellen....... 348 Laden von Projektdaten einer F-CPU in eine Standard-CPU ..........349 Update eines TIA Portal-Projekts auf eine neue CPU-Firmware..........349 Einschränkungen bei Dateipfaden..................
  • Seite 10: Einleitung

    Einleitung Zweck der Dokumentation Das vorliegende Funktionshandbuch beschreibt die Simulations-Software SIMATIC S7‑PLCSIM Advanced V5.0. Sie können damit Ihre SIMATIC STEP 7-Programme auf einem virtuellen Controller simulieren und testen. Außerdem können Sie über eine API den virtuellen Controller mit einer System- oder Maschinen-Simulation verbinden (Co-Simulation). Erforderliche Grundkenntnisse Die Software darf nur von qualifiziertem Personal verwendet werden.
  • Seite 11: Besondere Informationen

    Entsorgungsbetrieb für Elektronikschrott und entsorgen Sie das Gerät entsprechend der jeweiligen Vorschriften in Ihrem Land. Industry Mall Die Industry Mall ist das Katalog- und Bestellsystem der Siemens AG für Automatisierungs- und Antriebslösungen auf Basis von Totally Integrated Automation (TIA) und Totally Integrated Power (TIP).
  • Seite 12: Wegweiser Dokumentation Funktionshandbücher

    Bereiche. Die Aufteilung bietet Ihnen die Möglichkeit, gezielt auf die gewünschten Inhalte zuzugreifen. Die Dokumentation finden Sie zum kostenlosen Download im Internet. (https://support.industry.siemens.com/cs/ww/de/view/109742705) Basisinformationen Systemhandbücher und Getting Started beschreiben ausführlich die Projektierung, Montage, Verdrahtung und Inbetriebnahme der Systeme SIMATIC S7‑1500, SIMATIC Drive Controller, ET 200MP, ET 200SP, ET 200AL und ET 200eco PN.
  • Seite 13: Übergreifende Informationen

    • SIMATIC Drive Controller (https://support.industry.siemens.com/cs/de/de/view/109772684) • Motion Control (https://support.industry.siemens.com/cs/de/de/view/109794046) • ET 200SP (https://support.industry.siemens.com/cs/de/de/view/73021864) • ET 200eco PN (https://support.industry.siemens.com/cs/ww/de/view/109765611) Manual Collections Die Manual Collections beinhalten die vollständige Dokumentation zu den Systemen zusammengefasst in einer Datei. Sie finden die Manual Collections im Internet: •...
  • Seite 14 Sie finden das SIMATIC Automation Tool im Internet. (https://support.industry.siemens.com/cs/ww/de/view/98161300) PRONETA SIEMENS PRONETA (PROFINET Netzwerk-Analyse) ist ein Inbetriebnahme- und Diagnosetool für PROFINET-Netzwerke. PRONETA Basic verfügt über 2 Kernfunktionen: • In der Netzwerkanalyse erhalten Sie eine Übersicht über die PROFINET-Topologie. Vergleichen Sie einen realen Ausbau mit einer Referenzanlage oder nehmen Sie einfache Parameteränderungen vor, z. B.
  • Seite 15: Technische Dokumentation Der Simatic

    Einleitung 1.1 Wegweiser Dokumentation Funktionshandbücher SIEMENS PRONETA Professional bietet Ihnen als lizenziertes Produkt zusätzliche Funktionen. Es ermöglicht Ihnen das einfache Asset-Management in PROFINET-Netzwerken und unterstützt Betreiber von Automatisierungsanlagen in der automatisierten Datenerfassung der eingesetzten Komponenten durch eine Vielzahl an Funktionen: •...
  • Seite 16: Überblick Zur Technischen Dokumentation Der Simatic

    Dokumentation zur SIMATIC: Industry Online Support International https://support.industry.siemens.com/cs/ww/de/view/109742705 Wo Sie die Übersicht direkt im Siemens Industry Online Support finden und wie Sie den Siemens Industry Online Support auf Ihrem mobilen Endgerät nutzen, zeigen wir Ihnen in einem kurzen Video: Schneller Einstieg in die technische Dokumentation von Automatisierungspro­...
  • Seite 17: Anwendungsbeispiele

    Die Anwendungsbeispiele unterstützen Sie mit verschiedenen Tools und Beispielen bei der Lösung Ihrer Automatisierungsaufgaben. Dabei werden Lösungen im Zusammenspiel mehrerer Komponenten im System dargestellt - losgelöst von der Fokussierung auf einzelne Produkte. Sie finden die Anwendungsbeispiele im Internet. (https://support.industry.siemens.com/cs/ww/de/ps/ae) S7-PLCSIM Advanced Funktionshandbuch, 11/2022, A5E37039506-AE...
  • Seite 18: Sicherheitshinweise

    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 19: Produktübersicht

    Produktübersicht Was ist S7-PLCSIM Advanced? Mit S7-PLCSIM Advanced simulieren Sie Ihre CPU-Programme auf einem virtuellen Controller. Sie benötigen dafür keine realen Controller. Sie konfigurieren Ihre CPU mit STEP 7 im TIA Portal, programmieren Ihre Anwendungslogik und laden dann die Hardware- Konfiguration und das Programm in den virtuellen Controller. Von dort führen Sie Ihre Programmlogik aus, beobachten die Auswirkungen der simulierten Eingänge und Ausgänge und passen Ihre Programme an.
  • Seite 20: S7-Plcsim Produkte

    Produktübersicht 3.2 S7-PLCSIM Produkte S7-PLCSIM Produkte PLCSIM Advanced V5.0, PLCSIM V18 und PLCSIM V5.x Tabelle 3-1  Vergleich von S7-PLCSIM Produkten Funktion PLCSIM Advanced V5.0 PLCSIM V18 PLCSIM V5.x Runtime Eigenständig Zusammen mit STEP 7 Zusammen mit STEP 7 Bedienoberfläche Control Panel/PLCSIM V18 UI Innovierte Bedienoberfläche Look&Feel von STEP 7 V5.x Kommunikation Softbus , TCP/IP...
  • Seite 21: Kompatibilität Bei Updates

    Produktübersicht 3.3 Kompatibilität bei Updates Funktion PLCSIM Advanced V5.0 PLCSIM V18 PLCSIM V5.x Kommunikation zwischen den PLCSIM ab V12 und PLCSIM V5.x können auf dem selben PC Instanzen oder der selben virtuellen Maschine installiert und betrieben werden. Instanzen von PLCSIM ab V12 können über Softbus mit PLC­ SIM V5.x kommunizieren.
  • Seite 22 Produktübersicht 3.3 Kompatibilität bei Updates S7-PLCSIM Advanced Unterstützte CPU-Firmware-Version V1.0 SP1 V1.8, V2.0.1 V1.0 SP1 Upd1 V1.8, V2.0.1 V2.0 V1.8 to V2.5.0 V2.0 Upd1 V1.8 to V2.5.2 V2.0 SP1 V1.8 to V2.6.0 V2.0 SP1 Upd1 V1.8 to V2.6.1 V3.0 V1.8 to V2.8.1 V3.0 Upd1 V1.8 to V2.8.1 V3.0 Upd2 V1.8 to V2.8.3...
  • Seite 23: Sicherheit Bei S7-Plcsim Advanced

    Produktübersicht 3.4 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 Passwörter. •...
  • Seite 24: Simulierbarkeit Unterstützen

    "Simulierbarkeit mit SIMATIC S7‑PLCSIM (Advanced)" aktivieren. Sie finden die Option in den Eigenschaften des Bausteins im Register "Allgemein > Übersetzung". 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 25: Unterstützte Cpus

    • ET 200SP Open Controller CPU 1515SP PC und S7-1500 Software Controller • S7‑1200-CPUs Um CPUs der S7-1200-Produktfamilie simulieren zu können, verwenden Sie S7-PLCSIM. Weitere Informationen zu S7-PLCSIM finden Sie im Internet (https://support.industry.siemens.com/cs/ww/de/view/109797780). Wenn Sie ein TIA Portal-Projekt, dessen Konfiguration eine nicht-unterstützte CPU enthält, herunterladen, erscheint die folgende Fehlermeldung: S7-PLCSIM Advanced...
  • Seite 26: Unterschiede Zwischen Simulierter Und Realer Cpu

    Produktübersicht 3.7 Unterschiede zwischen simulierter und realer CPU "Loading of hardware configuration failed (0020 -3 2 0). Please check the diagnostic buffer of target hardware." Verwenden Sie in einem solchen Fall eine ähnliche und unterstütze CPU oder eine unterstütze Vorgängerversion der relevanten CPU. Unterschiede zwischen simulierter und realer CPU Der virtuelle Controller kann eine reale CPU nicht vollständig bis in die einzelnen Details simulieren.
  • Seite 27: Einschränkungen Bei Allen Unterstützten Cpus

    Produktübersicht 3.7 Unterschiede zwischen simulierter und realer CPU S7-1500R/H Sie können für ein redundantes System S7-1500R/H zur Kommunikation mit anderen Geräten System IP-Adressen in STEP 7 projektieren. 3.7.1 Einschränkungen bei allen unterstützten CPUs Feldbussysteme S7-PLCSIM Advanced simuliert keine Feldbussysteme (PROFINET IO, PROFIBUS DP). Intelligente IO-Devices (I-Devices) S7-PLCSIM Advanced simuliert keine I-Device Funktionalität.
  • Seite 28: Eingeschränkte Unterstützung

    Produktübersicht 3.7 Unterschiede zwischen simulierter und realer CPU Kopierschutz S7-PLCSIM Advanced simuliert nicht Kopierschutz. 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 347). 3.7.2 Hinweise Passwort-Übernahme bei CPU-Tausch 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 29: Priorität Beim Prozessalarm-Ob

    Produktübersicht 3.8 Passwort zum Schutz vertraulicher Konfigurationsdaten Safety-System-Versionen 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, V2.0, V2.1, V2.2, V2.3, V2.4 oder V2.5 verwenden. Mit einer älteren Version funktioniert die Simulation der fehlersicheren Eingabe- und Ausgabemodule nicht korrekt.
  • Seite 30: Weitere Informationen

    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). 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.
  • Seite 31 Produktübersicht 3.8 Passwort zum Schutz vertraulicher Konfigurationsdaten Einschalten der PLCSIM Advanced-Instanz ohne gültiges Passwort Wenn Sie eine Instanz einschalten und das Passwort zum Schutz vertraulicher Konfigurationsdaten ist falsch, dann startet die Instanz automatisch neu und geht in den Betriebszustand STOP über. Die ERROR-LED blinkt rot. Abhilfe: 1.
  • Seite 32: Installieren

    Installieren Einleitung 4.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 4-1  Systemanforderungen Hardware Virtuelle Maschine Prozessor •...
  • Seite 33: Einschränkungen Durch Virenscanner

    Möglicherweise unterstützen bestimmte Produkte weitere Windows-Versionen. Weitere Informationen dazu finden Sie bei den produktspezifischen Systemvoraussetzungen oder Sie überprüfen die Kompatibilitä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 34: Unterstützte Virenscanner

    Vorgehen Fügen Sie den Ausnahmen folgende Ordner 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 Ordnern zu den Ausnahmen hinzu. Wie Sie dabei vorgehen, entnehmen Sie den Anweisungen der jeweiligen Hersteller.
  • Seite 35: Lizenzen

    Installieren 4.1 Einleitung 4.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 V5.0 kann nur mit einer V5.0 Lizenz genutzt werden.
  • Seite 36: Remote-Zugriff

    Installieren 4.1 Einleitung Eine Meldung zeigt beim Starten einer Instanz die noch verbleibenden Tage an. Bild 4-2  Trial License HINWEIS Remote-Zugriff Bei einem Remote-Zugriff müssen Sie die Meldung auf dem PC bestätigen, auf dem die Instanz gestartet wurde. Timeout Wenn die Meldung zur Lizenz nicht rechtzeitig bestätigt wird, wird die Instanz nicht gestartet und folgende Meldung erscheint: Bild 4-3  Timeout Abhilfe...
  • Seite 37: 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 38: S7-Plcsim Advanced

    • Hardware und Software des Computers erfüllen die Systemanforderungen (Seite 32). • 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 TIA Portal-Versionen kleiner oder gleich V14 sind deinstalliert.
  • Seite 39: Fehler Beim Installieren Von S7-Plcsim Advanced

    Installieren 4.3 S7-PLCSIM Advanced installieren S7-PLCSIM Advanced installieren Gehen Sie zur Installation wie folgt vor: 1. Doppelklicken Sie auf das Download-Paket oder legen Sie das Installationsmedium in das DVD-Laufwerk Ihres Computers ein. Das Setup-Programm startet automatisch, sofern Sie nicht die Autostartfunktion auf dem Computer deaktiviert haben. Wenn das Setup- Programm nicht automatisch startet, starten Sie es manuell durch Doppelklick auf die Datei "Start.exe".
  • Seite 40: S7-Plcsim Advanced Ändern

    Installieren 4.5 S7-PLCSIM Advanced reparieren 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 ändern Voraussetzungen Folgende Bedingungen müssen erfüllt sein, bevor Sie die Installation ändern können: • Hardware und Software des Computers erfüllen die Systemvoraussetzungen.
  • Seite 41: Vorgehensweise

    Installieren 4.6 S7-PLCSIM Advanced deinstallieren Vorgehensweise Gehen Sie zum Reparieren Ihrer Installation wie folgt vor: 1. Doppelklicken Sie auf das Download-Paket oder legen Sie das Installationsmedium in das Laufwerk ein. Das Setup-Programm startet automatisch, sofern Sie nicht die Autostartfunktion auf dem Computer deaktiviert haben. Wenn das Setup-Programm nicht automatisch startet, starten Sie es manuell durch Doppelklick auf die Datei "Start.exe".
  • Seite 42: Weitere Software Deinstallieren

    Installieren 4.6 S7-PLCSIM Advanced deinstallieren Weitere Software deinstallieren Wenn Sie S7-PLCSIM über das Setup-Programm deinstallieren, dann bleibt folgende Software aus dem S7‑PLCSIM Advanced Paket installiert: • Automation License Manager • S7‑PLCSIM • .NET Framework • Npcap Wenn Sie auch diese Software deinstallieren möchten, dann nutzen Sie dazu die Windows- Systemsteuerung.
  • Seite 43: 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 5-1  Lokale und verteilte Kommunikation Kommunikationswege Lokal Lokal Verteilt Protokoll Softbus TCP/IP TCP/IP Kommunikationsschnittstelle in PLCSIM Advanced PLCSIM PLCSIM Virtual Ether­ PLCSIM Virtual Ether­...
  • Seite 44: Lokale Kommunikation

    Kommunikationswege 5.1 Lokale Kommunikation Für die verteilte Kommunikation über den "PLCSIM Virtual Ethernet Adapter" (TCP/IP) sind weitere Netzwerkeinstellungen erforderlich; siehe Netzwerk-Adressen in der Simulation (Seite 69). API-Funktionen zur Auswahl der Kommunikationsschnittstelle Für die Auswahl Kommunikationsschnittstelle stehen die folgenden API-Funktionen zur Verfügung: •...
  • Seite 45: Lokale Kommunikation Über Tcp/Ip

    Kommunikationswege 5.2 Kommunikation über TCP/IP 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 46: Beispiel 1: Verteilte Kommunikation

    Kommunikationswege 5.2 Kommunikation über TCP/IP Beispiel 1: Verteilte Kommunikation Im folgenden Beispiel befindet sich STEP 7 auf einem PC, die PLCSIM Advanced Instanzen auf einem weiteren PC oder einer virtuellen Maschine. Die PCs sind über ihre realen Ethernet Adapter verbunden. Bild 5-3  Verteilte Kommunikation über Ethernet 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.
  • Seite 47 Kommunikationswege 5.2 Kommunikation über TCP/IP Notwendige Einstellungen im Dialog "Virtual Machine Settings" am Beispiel der Visualisierungsplattform VMware Wenn Sie innerhalb der virtuellen Maschine STEP 7 (TIA Portal) und Ihr Projekt geöffnet haben, aktivieren Sie für Ihre Onlineverbindung die nachfolgenden Optionen wie folgt: 1.
  • Seite 48: Beispiel 3: Verteilte Kommunikation

    Kommunikationswege 5.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 5-5  Verteilte Kommunikation mit PCs und virtuellen Maschinen 5.2.1 Kommunikation über TCP/IP im Multi-Adapter Network Mode (Non- Promiscuous-Modus) Im Single Adapter Network Mode (Promiscuous-Modus) liest der Netzwerkadapter alle...
  • Seite 49 Kommunikationswege 5.2 Kommunikation über TCP/IP In PLCSIM Advanced-Versionen <V5.0 war die Verwendung des Single Adapter Network Mode (Promiscuous-Modus) für eine Kommunikation mit der "Außenwelt" notwendig. Der Modus war z. B. für Szenarien notwendig, die folgende 3 Bedingungen erfüllen: • Sie greifen von einer Virtualisierungsplattform auf eine andere virtuelle Maschine zu. •...
  • Seite 50 Kommunikationswege 5.2 Kommunikation über TCP/IP indem Sie ein eins-zu-eins-Mapping der MAC-Adressen zwischen den CPU- Netzwerkschnittstellen und den Netzwerkadaptern des PC vornehmen. Die folgenden Anwendungsfälle gehen davon aus, dass Sie in einer Umgebung arbeiten, in der Sicherheitseinschränkungen gelten und Sie deshalb in den Multi-Adapter Network Mode (Non-Promiscuous-Modus) gewechselt haben.
  • Seite 51 Kommunikationswege 5.2 Kommunikation über TCP/IP Das Szenario ist nur gültig, wenn jeweils nur eine Instanz läuft. Bild 5-8  Anwendungsfall 2 S7-PLCSIM Advanced Funktionshandbuch, 11/2022, A5E37039506-AE...
  • Seite 52 Kommunikationswege 5.2 Kommunikation über TCP/IP Vorgehensweise Für eine externe Kommunikation im Multi-Adapter Network Mode (Non-Promiscuous-Modus) sind in Abhängigkeit Ihres Anwendungsfalls folgenden Schritte nötig. 1. Wechseln Sie mit der folgenden Anweisung in den Multi-Adapter Network Mode (Non- Promiscuous-Modus): SetNetworkMode(SRCM_VSWITCH_NON_PROMISCUOUS) 2. Um eine neue Instanz zu registrieren, rufen Sie RegisterInstance() auf. 3.
  • Seite 53: Beispiel 2: Vollständige Einstellungen

    Kommunikationswege 5.2 Kommunikation über TCP/IP rtm->RegisterInstance(ECPUType::SRCT_1518, &instance0); instance0->SetNetInterfaceMapping(EPLCInterface::IE1, L"Ethernet"); instance0->SetNetInterfaceMapping(EPLCInterface::IE1, L"Ethernet 2"); instance0->SetNetInterfaceMapping(EPLCInterface::IE1, L"Ethernet 3"); instance0->PowerOn(60000); rtm->RegisterInstance(ECPUType::SRCT_1518, &instance0); instance1->SetNetInterfaceMapping(EPLCInterface::IE1, L"Ethernet 4"); instance1->SetNetInterfaceMapping(EPLCInterface::IE1, L"Ethernet 5"); instance1->SetNetInterfaceMapping(EPLCInterface::IE1, L"Ethernet 6"); instance1->PowerOn(60000); ShutdownAndFreeApi(rtm); Beispiel 2: Vollständige Einstellungen #include <iostream> #include "SimulationRuntimeApi.h" ISimulationRuntimeManager* rtm = nullptr; IInstance* instance0 = nullptr;...
  • Seite 54 Kommunikationswege 5.2 Kommunikation über TCP/IP // map desired interface on instance interface // each instance interface must have unique or no mapping // we can map interface by these three overloads // interfaceIndex result = instance0->SetNetInterfaceMapping(EPLCInterface::IE1, netInterfaces.get()[0].interfaceIndex); // friendly name result = instance0->SetNetInterfaceMapping(EPLCInterface::IE2, netInterfaces.get()[1].interfaceName);...
  • Seite 55: Verteilte Kommunikation Aktivieren

    Kommunikationswege 5.3 Verteilte Kommunikation aktivieren Verteilte Kommunikation aktivieren Über die Voreinstellung kann der S7-PLCSIM Advanced Virtual Switch nur lokal kommunizieren. Damit eine verteilte und somit rechnerübergreifende Kommunikation möglich ist, müssen Sie bei einem realen Netzwerkadapter den S7-PLCSIM Advanced Virtual Switch aktivieren. HINWEIS Netzwerkadapter Stellen Sie sicher, dass nur bei einem einzigen Netzwerkadapter der S7-PLCSIM Advanced...
  • Seite 56: Erreichbare Teilnehmer

    Kommunikationswege 5.3 Verteilte Kommunikation aktivieren Bild 5-9  S7-PLCSIM Advanced Virtual Switch aktivieren Erreichbare Teilnehmer Auf dem lokalen Rechner werden die PLCSIM Advanced-Instanzen immer als erreichbare Teilnehmer des PLCSIM Virtual Ethernet Adapters angezeigt. Auch wenn der S7-PLCSIM Advanced Virtual Switch aktiviert ist, sind die PLCSIM Advanced- Instanzen lokal nicht über den konfigurierten zweiten Adapter sichtbar.
  • Seite 57: Verteilte Kommunikation Über Wlan

    Kommunikationswege 5.3 Verteilte Kommunikation aktivieren 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. In diesem Fall kann keine WLAN-Verbindung aufgebaut werden.
  • Seite 58: Simulieren

    Simulieren CPU simulieren 6.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 59: Control Panel - Bedienoberfläche

    Simulieren 6.1 CPU simulieren 6.1.2 Control Panel - Bedienoberfläche 6.1.2.1 S7-PLCSIM Advanced Symbol Nach der Installation von PLCSIM Advanced befindet sich folgendes Symbol auf dem Windows Desktop: Bild 6-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 60: Grafische Oberflächen

    Simulieren 6.1 CPU simulieren 6.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. S7-PLCSIM Advanced V5.0 stellt das Control Panel mit zwei Ansichten zur Verfügung. • Control Panel als Schnellansicht Ein Rechtsklick auf das Symbol in der Taskleiste startet die Schnellansicht.
  • Seite 61 Simulieren 6.1 CPU simulieren Aufbau Das folgende Bild zeigt den Aufbau des S7-PLCSIM Advanced Control Panel. ① Online-Zugang Schalter zur Auswahl der Kommunikationsschnittstelle ② TCP/IP-Kommuni­ Auswahl des Netzwerkadapters für die verteilte Kommunikation kation ③ Virtuelle Zeit Schieberegler zum Einstellen des Skalierfaktors S7-PLCSIM Advanced Funktionshandbuch, 11/2022, A5E37039506-AE...
  • Seite 62: Schalter Für Kommunikationsschnittstelle

    Simulieren 6.1 CPU simulieren ④ Strict Motion Ti­ Hier deaktivieren Sie die Überlauferkennung für Motion Control (OB MC-Servo [OB91]). ming Wenn das Optionskästchen aktiviert ist (Voreinstellung), dann werden Überläufe erkannt. Sie können im Control Panel die Einstellung der Überlauferkennung nur ändern, solange noch kei­ ne Instanz registriert ist.
  • Seite 63: Instanz Erstellen (Lokal) Und Starten

    Simulieren 6.1 CPU simulieren TCP/IP-Kommunikation Sie können im laufenden Betrieb aus der Klappliste einen realen Netzwerkadapter auswählen. Sie aktivieren damit den S7-PLCSIM Advanced Virtual Switch und stellen eine TCP/IP- Kommunikation zwischen den Instanzen und dem realen Netzwerk her. Die Einstellung <Local> deaktiviert den S7-PLCSIM Advanced Virtual Switch und trennt die Instanzen vom realen Netzwerk.
  • Seite 64: Meldungen Anzeigen

    Simulieren 6.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 Betriebszustand der Instanz. Markieren Sie dazu eine oder mehrere Instanzen.
  • Seite 65: Instanzen Importieren

    Simulieren 6.1 CPU simulieren Wenn der Runtime Manager Remote-Verbindungen zu Instanzen auf weiteren PCs hat, dann laufen diese Instanzen und der Runtime Manager weiter. 6.1.2.4 Instanzen importieren Voraussetzung Die Funktion steht Ihnen nur zur Verfügung, wenn Sie das Control Panel nicht mit Admin- Rechten starten.
  • Seite 66 Simulieren 6.1 CPU simulieren Bild 6-6  Control Panel: Instanzen importieren S7-PLCSIM Advanced Funktionshandbuch, 11/2022, A5E37039506-AE...
  • Seite 67: Step 7-Projekt Herunterladen

    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 Anzeigen im Download Dialog Der Dialog in STEP 7 zeigt beim ersten Download einer CPU die kompatiblen PLCSIM...
  • Seite 68 Simulieren 6.1 CPU simulieren Bild 6-7  Beispiel: Download über den "PLCSIM Virtual Ethernet Adapter" (TCP/IP) nach der Taufe S7-PLCSIM Advanced Funktionshandbuch, 11/2022, A5E37039506-AE...
  • Seite 69 Simulieren 6.1 CPU simulieren HINWEIS Auf eine Instanz eine weitere CPU laden Beispiel im TIA Portal: 1. Sie weisen einer CPU (z. B. CPU 1518-4 PN/DP) ein IO-Device (z. B. IM 153-4 PN) zu. 2. Sie fügen Ihrem Projekt eine weitere CPU der gleichen Produktfamilie (z. B. CPU 1511-1 PN) hinzu.
  • Seite 70: Netzwerk-Adressen In Der Simulation

    Simulieren 6.1 CPU simulieren 6.1.4 Netzwerk-Adressen in der Simulation 6.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 71: Plcsim Advanced Instanzen

    Simulieren 6.1 CPU simulieren 6.1.4.2 PLCSIM Advanced Instanzen CPUs und Instanzen erkennen Wenn Ethernet-Schnittstellen von CPUs und PLCSIM Advanced Instanzen in einem Netzwerk gemischt sind, dann sind die Instanzen während der Suche nach erreichbaren Teilnehmern in STEP 7 kurz am Suffix "PLCSIM" des Gerätetyps (Device type) erkennbar. Bild 6-8  Suche nach den erreichbaren Teilnehmern in STEP 7 S7-PLCSIM Advanced Funktionshandbuch, 11/2022, A5E37039506-AE...
  • Seite 72: 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 73: Peripherie-Io Simulieren

    Simulieren 6.1 CPU simulieren 6.1.5 Peripherie-IO 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 74: Weitere Informationen

    Beachten Sie bei der Simulation von Kommunikationsdiensten auch die Grundlagen des sicheren Datenaustauschs (Secure Communication). Ausführliche Informationen zu Secure Communication finden Sie im Funktionshandbuch Kommunikation (https://support.industry.siemens.com/cs/ww/de/view/59192925). Weitere Informationen Weitere Informationen zu den verschiedenen Kommunikationsdiensten finden Sie im Funkti­ onshandbuch Kommunikation (https://support.industry.siemens.com/cs/ww/de/view/59192925).
  • Seite 75: Kommunikation Zwischen Instanzen

    Simulieren 6.1 CPU simulieren Abhilfe Stellen Sie den Mailserver über einen anderen PC im Netzwerk zur Verfügung. 6.1.6.2 Kommunikation zwischen Instanzen PLCSIM Advanced unterstützt die Kommunikation zwischen Instanzen. Eine Instanz kann eine Simulation in PLCSIM Advanced V2.0 oder eine Simulation in WinCC Runtime ab V14 sein. Sie können zwei Instanzen von PLCSIM Advanced ausführen, die dann untereinander kommunizieren.
  • Seite 76 Simulieren 6.1 CPU simulieren Um die remanenten Daten sicher in der Virtual SIMATIC Memory Card zu speichern, müssen die Instanzen korrekt abgemeldet werden. Nutzen Sie dazu eine der folgenden Funktionen: • Die API-Funktion PowerOff() • Im Control Panel die Funktionen –...
  • Seite 77: Projektdaten Für Die Simulation Bereitstellen

    Das ODK für PLCSIM Advanced V5.0 unterstützt die Programmiersprache C++. 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 78: Unterstützte Cpus

    Simulieren 6.2 CPU mit ODK-Funktionalität simulieren Unterstützte CPUs PLCSIM Advanced V5.0 unterstützt die ODK-Funktionalität der folgenden Controller: • CPU 1518(F)-4 PN/DP ODK • CPU 1518(F)-4 PN/DP MFP 6.2.1 Besonderheiten bei ODK CPU mit ODK-Funktionalität mit PLCSIM Advanced simulieren Die Simulation einer CPU mit ODK-Funktionalität erfordert ein besonderes Vorgehen beim Start.
  • Seite 79 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 Ordner wie die der PLCSIM Advanced Instanzen ("Siemens.Simatic.Simulation.Runtime.Instance.exe").
  • Seite 80: Fehlercodes

    Parameter <SyncCallStackSize> eingestellt wird. PLCSIM Advanced stellt immer die maximale Stack-Größe von 1 MB zur Verfügung. Weitere Informationen finden Sie im Programmier- und Bedienhandbuch S7‑1500 Open Development Kit 1500S (https://support.industry.siemens.com/cs/ww/de/view/109783714) im Kapitel "Ablaufeigenschaften einer CPU-Funktionsbibliothek definieren". PLCSIM Advanced kann keine Exceptions vom Typ "Stack Overflow" fangen, wenn CPU- Funktionsbibliotheken für die Echtzeit-Umgebung (SO-Dateien) ausgeführt werden.
  • Seite 81: Funktionen Aufrufen

    Simulieren 6.2 CPU mit ODK-Funktionalität simulieren "<storage path of the instance> \SIMATIC_MC\ODK1500S". Siehe GetStoragePath(), SetStoragePath() im Kapitel Controller - Information und Einstellungen (Seite 160). Der ODK‑Client-Prozess dauert solange an, bis die Anweisung "<STEP7Prefix>_Unload" aufgerufen wird, um die zuletzt geladene Funktionsbibliothek zu entladen, oder bis der Prozess der PLCSIM Advanced Instanz endet.
  • Seite 82: Funktionen Entladen

    Simulieren 6.3 Motion Control simulieren 6.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 83: Simulation Mit Externer Simulations-Software

    Simulieren 6.3 Motion Control simulieren mögliche Performance ausgelegt ohne Kompromisse, die ein allgemeines PC-Betriebssystem erfordert. Wenn es im Diagnosepuffer zu Überläufen des OB MC-Servo [OB91] kommt, dann wurde die Zeit für den Applikationszyklus (ms) überschritten, weil die Berechnung dieses Applikationszyklus nicht in der notwendigen Zeit abgeschlossen werden konnte Abhilfe Die Überläufe des OB MC-Servo [OB91] im Diagnosepuffer nehmen ab: •...
  • Seite 84: Referenzpunktfahrt Der Achse

    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) 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: •...
  • Seite 85 Simulieren 6.4 SIMATIC Drive Controller simulieren Besonderheiten Im Unterschied zu anderen SIMATIC S7-1500 Technologie-CPUs verfügen die SIMATIC Drive Controller zusätzlich über: • Integrierte Ein-/Ausgänge (Onboard-Peripherie) • Integrierte Antriebsregelung SINAMICS Integrated Einschränkungen S7-PLCSIM Advanced simuliert nur die Standard-CPU-Funktionalität des SIMATIC Drive Controllers.
  • Seite 86: Redundantes System S7-1500R/H Simulieren

    Simulieren 6.5 Redundantes System S7-1500R/H simulieren Das Gerätehandbuch SIMATIC Drive Controller (https://support.industry.siemens.com/cs/ww/de/view/109766666) enthält eine kompakte Beschreibung der modulspezifischen Informationen wie Eigenschaften, Anschlussbilder, Kennlinien und Technische Daten. Redundantes System S7-1500R/H simulieren Einleitung In einem redundanten System S7-1500R/H sind die CPUs doppelt, also redundant vorhanden.
  • Seite 87 Simulieren 6.5 Redundantes System S7-1500R/H simulieren Die Systemzustände des redundanten Systems S7-1500R/H resultieren aus der Kombination der Betriebszustände der einzelnen CPUs und ergeben sich wie folgt: • STOP • ANLAUF • RUN-Solo • SYNCUP • RUN-Redundant HINWEIS Systemzustand RUN-Solo wird von PLCSIM Advanced unterstützt Die Simulation eines redundanten Systems S7-1500R/H ist im Systemzustand RUN-Solo (Betriebszustand RUN der CPU) möglich.
  • Seite 88 Ausfall einer Redundanzverbindung. Beachten Sie, dass das Ziehen und Stecken von R1-Devices von S7-PLCSIM Advanced nicht unterstützt wird. Weitere Informationen Das Systemhandbuch Redundantes System S7-1500R/H (https://support.industry.siemens.com/cs/ww/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 89: Virtuelles Zeitverhalten

    Virtuelles Zeitverhalten Der virtuelle Controller nutzt für die Simulation zwei Arten von internen 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 90: Zeitversatz

    Virtuelles Zeitverhalten 7.1 Simulation beschleunigen und verlangsamen 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 91 Virtuelles Zeitverhalten 7.1 Simulation beschleunigen und verlangsamen Schnelllauf und Zeitlupe ändern nicht die Ausführungsgeschwindigkeit des CPU-Maschinen- Codes. Es wird z. B. nicht die Geschwindigkeit geändert, mit der alle Operationen eines OB1-Zyklus ausgeführt werden. Die Ausführungsgeschwindigkeit hängt vom Prozessor des PC ab, auf dem der virtuelle Controller läuft. Wenn Sie den Skalierfaktor ändern, werden mehr oder weniger Zykluskontrollpunkte in einer festen Zeitspanne der virtuellen Zeit erreicht.
  • Seite 92: Simulation Anhalten

    Virtuelles Zeitverhalten 7.2 Simulation anhalten Simulation anhalten Freeze-Zustand des virtuellen Controllers Um eine Simulation anzuhalten und Simulations-Partner zu synchronisieren, können Sie einen virtuellen Controller über die API in einen Freeze-Zustand versetzen. Wenn der virtuelle Controller einen Synchronisationspunkt erreicht hat, sendet der virtuelle Controller das Ereignis OnSyncPointReached an die API-Clients.
  • Seite 93: Freeze-Zustand Auslösen

    Virtuelles Zeitverhalten 7.2 Simulation anhalten HINWEIS Reaktion einer PLCSIM Advanced-API auf einen Freeze-Zustand Wenn Sie eine SingleStep-Betriebsart verwenden, müssen Sie eine Callback-Funktion für das Ereignis OnSyncPointReached registrieren. Durch den Aufruf der betriebsartspezifischen Methode RunToNextSyncPoint ist sichergestellt, dass der Freeze-Zustand des virtuellen Controllers wieder verlassen wird.
  • Seite 94: Simulations-Partner Synchronisieren

    Virtuelles Zeitverhalten 7.3 Simulations-Partner synchronisieren Simulations-Partner synchronisieren 7.3.1 Simulations-Partner zyklusgesteuert synchronisieren SingleStep-Betriebsarten Mit den SingleStep-Betriebsarten des virtuellen Controllers werden mehrere Simulations- Partner (Clients) mit Hilfe von Synchronisationspunkten synchronisiert. Die Betriebsarten definieren den Synchronisationspunkt, an dem der virtuelle Controller in den Freeze-Zustand wechselt und das Ereignis OnSyncPointReached sendet.
  • Seite 95: Bedingungen Für Die Betriebsart

    Virtuelles Zeitverhalten 7.3 Simulations-Partner synchronisieren Bedingungen für die Betriebsart SingleStep_Bus Für die Betriebsart SingleStep_Bus müssen die folgenden Bedingungen erfüllt sein: • Sie müssen Ausgänge am Controller projektiert haben. • Sie müssen im Taktsynchronalarm-OB die Anweisung SYNC_PO zur Synchronisation des Prozessabbilds der Ausgänge aufrufen. HINWEIS Zusätzlich zum Sendetakt des Busses, wird auch der Zykluskontrollpunkt als Synchronisationspunkt verwendet.
  • Seite 96: Freeze-Zustand Beenden

    Virtuelles Zeitverhalten 7.3 Simulations-Partner synchronisieren Hinweis zu der Betriebsart SingleStep_P SingleStep_Bus HINWEIS Verlust eines OnSyncPointReached Ereignisses beim Download eines taktsynchronen OBs im Betriebszustand RUN Wenn Sie in den Betriebsarten SingleStep_P und SingleStep_Bus auf das Ereignis OnSyncPointReached registriert sind, sendet der virtuelle Controller beim Download eines taktsynchronen OBs dieses Ereignis nicht an den API-Client.
  • Seite 97: Einstellungen In Der Beobachtungstabelle Ändern

    Virtuelles Zeitverhalten 7.3 Simulations-Partner synchronisieren Die Funktion RunToNextSyncPoint() hebt den Freeze-Zustand auf. Bild 7-4  Beispiel: Ablauf in der Betriebsart SingleStep_CP Einstellungen in der Beobachtungstabelle ändern HINWEIS Trigger wählen für das Beobachten von Variablen in den SingleStep-Betriebsarten Im TIA Portal zeigt die Beobachtungstabelle im Basismodus die Werte für Ausgänge und Merker vor der Verarbeitung.
  • Seite 98: Simulations-Partner Zeitgesteuert Synchronisieren

    Virtuelles Zeitverhalten 7.3 Simulations-Partner synchronisieren 7.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 7-2  Zeitgesteuerte Betriebsarten (TimespanSynchronized) Betriebsart Synchronisationspunkt...
  • Seite 99: Beschreibung

    Virtuelles Zeitverhalten 7.3 Simulations-Partner synchronisieren Die Funktion StartProcessing() hebt den Freeze-Zustand auf. Bild 7-5  Beispiel: Ablauf in der Betriebsart TimespanSynchronized_CP Beschreibung Für die zeitgesteuerten Betriebsarten werden mindestens zwei Clients auf Basis einer virtuellen Zeitspanne synchronisiert. Ein Client kann eine Instanz eines virtuellen Controllers sein oder eine Anwendung, die die Runtime API nutzt (API-Client).
  • Seite 100: Anwenderschnittstellen (Api)

    Für den Umgang mit der Simulation Runtime der PLCSIM Advanced sind folgende Komponenten relevant: Tabelle 8-1  Komponenten der Simulation Runtime Komponenten Beschreibung • "Siemens.Simatic.Simulation. Runtime.Mana­ Ein Windows Prozess, der im Hintergrund abläuft. ger.exe" Hauptkomponente der Runtime, die alle weiteren Runtime Komponenten verwaltet. Der Prozess wird automatisch gestartet, sobald eine Applikation versucht, die Runtime API zu initialisieren.
  • Seite 101: Zugriff Auf Instanzen

    Anwenderschnittstellen (API) 8.1 Einführung Eine externe Applikation kann z. B. eine weitere Simulations-Software oder eine grafische Oberfläche (GUI) sein. Bild 8-1  Externe Applikationen und Simulation Runtime 8.1.1 Zugriff auf Instanzen Zugriff über das Control Panel und die API Über das Control Panel können Sie nur auf eine lokale Instanz auf dem PC zugreifen. Es spielt keine Rolle, auf welchem der PCs eine Instanz erstellt und gestartet wurde.
  • Seite 102: Siehe Auch

    Anwenderschnittstellen (API) 8.1 Einführung ① Zugriff auf eine lokale Instanz über das Control Panel ② Zugriff auf eine Remote-Instanz über die Runtime API Bild 8-2  Zugriff auf Instanzen bei verteilter Kommunikation API-Funktionen • Übersicht IInstances Funktionen - Native C++ (Seite 105) •...
  • Seite 103: Api Und Externe Anwendungen

    Anwenderschnittstellen (API) 8.1 Einführung API und externe Anwendungen Die Runtime API stellt einer externen Anwendung die Schnittstellen zur Verfügung. ① ISimulationRuntimeManager Schnittstelle des Runtime Managers. Sie wird benutzt, um neue Runtime Instanzen zu registrie­ ren, bereits bestehende zu durchsuchen und eine Schnittstelle einer registrierten Instanz zu er­ halten.
  • Seite 104: Übersicht Anwenderschnittstellen Für Native C

    Anwenderschnittstellen (API) 8.1 Einführung   8.1.3 Übersicht Anwenderschnittstellen für Native C++ API initialisieren und herunterfahren Tabelle 8-2  Übersicht API initialisieren und herunterfahren - Native C++ Aktionen Funktionen API initialisieren (Seite 113-114) InitializeApi RuntimeApiEntry_Initialize API herunterfahren (Seite 117) DestroyInterface RuntimeApiEntry_DestroyInterface API-Bibliothek abmelden (Seite 119) FreeApi ShutdownAndFreeApi Globale Funktionen...
  • Seite 105 Anwenderschnittstellen (API) 8.1 Einführung Einstellungen Funktionen Simulation Runtime Instanzen (Seite GetRegisteredInstancesCount() GetRegisteredInstanceInfoAt() 135) RegisterInstance() RegisterCustomInstance() CreateInterface() Remote-Verbindungen (Seite 140) OpenPort() ClosePort() GetPort() GetRemoteConnectionsCount() GetRemoteConnectionInfoAt() RemoteConnect() RunAutodiscover() Tabelle 8-5  Übersicht API ISimulationRuntimeManager Ereignisse - Native C++ Ereignisse Funktionen OnSoftwareConfigurationChanged RegisterOnSoftwareConfigurationChangedCallback() UnregisterOnSoftwareConfigurationChangedCallback() RegisterOnSoftwareConfigurationChangedEvent() UnregisterOnSoftwareConfigurationChangedEvent() WaitForOnSoftwareConfigurationChangedEvent() OnRuntimeManagerLost (Seite 149)
  • Seite 106 Anwenderschnittstellen (API) 8.1 Einführung Einstellungen Funktionen Betriebszustand (Seite 166) PowerOn() PowerOff() Run() Stop() GetOperatingState() MemoryReset() Variablentabelle (Seite 176) UpdateTagList() GetTagListStatus() GetTagInfoCount() GetTagInfos() CreateConfigurationFile() I/O-Zugriff über Adresse - Lesen (Seite GetAreaSize() ReadBit() 182) ReadByte() ReadBytes() ReadSignals() I/O-Zugriff über Adresse - Schreiben WriteBit() WriteByte() (Seite 187)
  • Seite 107 Anwenderschnittstellen (API) 8.1 Einführung Tabelle 8-7  Übersicht IInstances Ereignisse - Native C++ Ereignisse Funktionen OnOperatingStateChanged (Seite 255) RegisterOnOperatingStateChangedCallback() UnregisterOnOperatingStateChangedCallback() RegisterOnOperatingStateChangedEvent() UnregisterOnOperatingStateChangedEvent() WaitForOnOperatingStateChangedEvent() OnLedChanged (Seite 259) RegisterOnLedChangedCallback() UnregisterOnLedChangedCallback() RegisterOnLedChangedEvent() UnregisterOnLedChangedEvent() WaitForOnLedChangedEvent() OnSoftwareConfigurationChanged RegisterOnSoftwareConfigurationChangedCallback() UnregisterOnSoftwareConfigurationChangedCallback() (Seite 261) RegisterOnSoftwareConfigurationChangedEvent() UnregisterOnSoftwareConfigurationChangedEvent() WaitForOnSoftwareConfigurationChangedEvent() OnSyncPointReached (Seite 265) RegisterOnSyncPointReachedCallback() UnregisterOnSyncPointReachedCallback() RegisterOnSyncPointReachedEvent()
  • Seite 108: Übersicht Anwenderschnittstellen Für Managed Code

    Übersicht Anwenderschnittstellen für Managed Code API initialisieren und herunterfahren Tabelle 8-10  Übersicht API initialisieren und herunterfahren - .NET (C#) Aktionen Funktionen API initialisieren (Seite 116) Siemens.Simatic.Simulation.Runtime.SimulationRuntimeManager API herunterfahren (Seite 120) API ISimulationRuntimeManager Tabelle 8-11  Übersicht ISimulationRuntimeManager Funktionen - .NET (C#) Einstellungen Funktionen Schnittstelle (Seite 125) Version { get;...
  • Seite 109 Anwenderschnittstellen (API) 8.1 Einführung Einstellungen Funktionen Controller - Informationen und Einstel­ ControllerName { get; } ControllerShortDesignation { get; } lungen (Seite 156) ControllerIPSuite4 { get; } SetIPSuite() StoragePath { get; set; } ArchiveStorage() RetrieveStorage() CleanupStoragePath() Betriebszustand (Seite 166) PowerOn() PowerOff() Run() Stop() OperatingState { get;...
  • Seite 110: Übersicht Datentypen Für Native C

    Anwenderschnittstellen (API) 8.1 Einführung Tabelle 8-14  Übersicht IInstances Ereignisse - .NET (C#) Ereignisse Funktionen OnOperatingStateChanged (Seite 255) OnOperatingStateChanged() RegisterOnOperatingStateChangedEvent() UnregisterOnOperatingStateChangedEvent() WaitForOnOperatingStateChangedEvent() OnLedChanged (Seite 259) OnLedChanged() RegisterOnLedChangedEvent() UnregisterOnLedChangedEvent() WaitForOnLedChangedEvent() OnSoftwareConfigurationChanged UnregisterOnSoftwareConfigurationChangedEvent() WaitForOnSoftwareConfigurationChangedEvent() (Seite 146) OnSyncPointReached (Seite 265) OnSyncPointReached() RegisterOnSyncPointReachedEvent() UnregisterOnSyncPointReachedEvent() WaitForOnSyncPointReachedEvent() OnHardwareConfigChanged OnHardwareConfigChanged() RegisterOnHardwareConfigChangedEvent() UnregisterOnHardwareConfigChangedEvent()
  • Seite 111 Anwenderschnittstellen (API) 8.1 Einführung Datentyp Event Callback- Funktionen (Seite EventCallback_VOID EventCallback_SRCC_UINT32_UINT32_INT32 292) EventCallback_SRRSI_AD EventCallback_IRRTM EventCallback_II_SREC_ST_SROS_SROS EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32 EventCallback_II_SREC_ST EventCallback_II_SREC_ST_SRICC_UINT32_UINT32_UINT32_UINT32 EventCallback_II_SREC_ST_SRLT_SRLM EventCallback_II_SREC_ST_SDRI EventCallback_II_SREC_ST_SDRI_BYTE EventCallback_II_SREC_ST_UINT32_UINT32 EventCallback_II_SREC_ST_UINT32_UINT32_EPET_UINT32 EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 EventCallback_II_SREC_ST_UINT32_ERSFET EventCallback_II_SREC_ST_UINT32 EventCallback_II_SSCCP Definitionen und Konstanten (Seite 308) Unions (Seite 309) UDataValue Strukturen (Seite 310) SDataValue SDVBNI SDataValueByAddress SDataValueByName...
  • Seite 112: Übersicht Datentypen Für Managed Code

    Anwenderschnittstellen (API) 8.1 Einführung 8.1.6 Übersicht Datentypen für Managed Code Die folgende Tabelle zeigt, welche Datentypen für die Simulation im Runtime Manager vorhanden sind. Tabelle 8-18  Übersicht Datentypen - .NET (C#) Datentyp Delegat Definitionen (Seite 300) Delegate_Void Delegate_SRCC_UINT32_UINT32_INT32 - Event Handler Methoden Delegate_SRRSI_AD Delegate_IRRTM Delegate_II_EREC_DT_EOS_EOS...
  • Seite 113: Api Initialisieren

    API von früheren PLCSIM Advanced Versionen. Beim Installieren von PLCSIM Advanced V5.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 114: Native C

    Anwenderschnittstellen (API) 8.2 API initialisieren 8.2.2 Native C++ 8.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 mit der Architektur Ihrer Anwendung und mit der Header-Datei der API kompatibel ist ("SimulationRuntimeApi.h"). Um die DLL zu laden, sucht die Funktion InitializeApi der Reihe nach in folgenden Ordnern: •...
  • Seite 115: Runtimeapientry_Initialize

    Anwenderschnittstellen (API) 8.2 API initialisieren Beispiel C++ // Include The Headerfile Of The API #include "SimulationRuntimeApi.h" // Prepare The Variables ERuntimeErrorCode result = SREC_INVALID_ERROR_CODE; ISimulationRuntimeManager* api = NULL; // Initialize The API And Get The RuntimeManager Interface result = InitializeApi(&api); HINWEIS Wenn Sie die Schnittstelle nicht mehr benötigen, dann löschen Sie die Schnittstelle.
  • Seite 116: Net (C#)

    SieheDestroyInterface() (Seite 117). 8.2.3 .NET (C#) 8.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 8-21  Initialize - .NET (C#) Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationInitializationException Runtime Fehlercode Beschreibung ERuntimeErrorCode.
  • Seite 117: Api Herunterfahren

    Anwenderschnittstellen (API) 8.3 API herunterfahren Ausnahmen ERuntimeErrorCode. Die Version der API ist nicht kompatibel mit der Runtime. WrongVersion Siehe Kompatibilität beim Upgrade (Seite 21). ERuntimeErrorCode. In dieser Windows Nutzersitzung läuft kein Runtime Manager. RuntimeNotAvailable ERuntimeErrorCode. Operation bezüglich der Konfigurationsdatei "UserInterface­ ConfigFileError Configuration.xml"...
  • Seite 118: Runtimeapientry_Destroyinterface

    Anwenderschnittstellen (API) 8.3 API herunterfahren Rückgabewerte Runtime Fehlercode Beschreibung SREC_OK Die Funktion ist erfolgreich. SREC_WRONG_ARGUMENT Der Zeiger auf die Schnittstelle ist NULL. Beispiel C++ // Include The Headerfile Of The API #include "SimulationRuntimeApi.h" // The Interfaces ERuntimeErrorCode result; ISimulationRuntimeManager* api = NULL; IInstance* instance = NULL;...
  • Seite 119: Freeapi()

    Anwenderschnittstellen (API) 8.3 API herunterfahren Destroy = (ApiEntry_ DestroyInterface)GetProcAddress(dllHandle, DAPI_ENTRY_DESTROY_INTERFACE); … // Frees the memory of an IInstance interface result = Destroy(instance); 8.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.
  • Seite 120: Net (C#)

    Anwenderschnittstellen (API) 8.3 API herunterfahren 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 Windows API-Funktion FreeLibrary() entladen werden. Tabelle 8-25  ShutdownAndFreeApi() - Native C++ Syntax ERuntimeErrorCode ShutdownAndFreeApi(ISimulationRuntimeManager* in_SimulationRuntimeManagerInterface);...
  • Seite 121: Globale Funktionen (Native C++)

    Anwenderschnittstellen (API) 8.4 Globale Funktionen (Native C++) Globale Funktionen (Native C++) Die globalen Funktionen GetNameOf... liefern den Namen des Aufzählungseintrags zurück (const WCHAR*). GetNameOfAreaSection() Tabelle 8-26  GetNameOfAreaSection() - Native C++ Syntax const WCHAR* GetNameOfAreaSection(EArea in_AreaSection); Parameter EArea in_AreaSection: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfCPUType() Tabelle 8-27  GetNameOfCPUType() - Native C++ Syntax...
  • Seite 122 Anwenderschnittstellen (API) 8.4 Globale Funktionen (Native C++) GetNameOfLEDMode() Tabelle 8-31  GetNameOfLEDMode() - Native C++ Syntax const WCHAR* GetNameOfLEDMode(ELEDMode in_LEDMode); Parameter ELEDMode in_LEDMode: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfLEDType() Tabelle 8-32  GetNameOfLEDType() - Native C++ Syntax const WCHAR* GetNameOfLEDType(ELEDType in_LEDType); Parameter ELEDType in_LEDType: Aufzählungseintrag.
  • Seite 123 Anwenderschnittstellen (API) 8.4 Globale Funktionen (Native C++) GetNameOfPrimitiveDataType Tabelle 8-36  GetNameOfPrimitiveDataType() - Native C++ Syntax const WCHAR* GetNameOfPrimitiveDataType(EPrimitiveDataType in_DataType); Parameter EPrimitiveDataType in_DataType: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfTagListDetails Tabelle 8-37  GetNameOfTagListDetails() - Native C++ Syntax const WCHAR* GetNameOfTagListDetails(ETagListDetails in_TagListDetails); Parameter ETagListDetails in_TagListDetails: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags...
  • Seite 124 Anwenderschnittstellen (API) 8.4 Globale Funktionen (Native C++) GetNameOfDiagSeverity() Tabelle 8-41  GetNameOfDiagSeverity() - Native C++ Syntax const WCHAR* GetNameOfDiagSeverity(EDiagSeverity in_DiagSeverity); Parameter EDiagSeverity in_DiagSeverity: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfRackOrStationFaultType() Tabelle 8-42  GetNameOfRackOrStationFaultType() - Native C++ Syntax const WCHAR* GetNameOfRackOrStationFaultType(ERackOrStationFaultType in_RackOrStationFaultType); Parameter ERackOrStationFaultType in_RackOrStationFaultType: Aufzählungseintrag Rückgabewerte...
  • Seite 125: Api Isimulationruntimemanager

    Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager GetNameOfDiagProperty() Tabelle 8-46  GetNameOfDiagProperty() - Native C++ Syntax const WCHAR* GetNameOfDiagProperty(EDiagProperty in_DiagProperty); Parameter EDiagProperty in_DiagProperty: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfAutodiscoverType() Tabelle 8-47  GetNameOfAutodiscoverType() - Native C++ Syntax const WCHAR* GetNameOfAutodiscoverType(EAutodiscoverType in_AutodiscoverType); Parameter EAutodiscoverType in_AutodiscoverType: Aufzählungseintrag Rückgabewerte const WCHAR*: Name des Aufzählungseintrags GetNameOfSoftwareConfigChanged()
  • Seite 126 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager IsInitialized() / IsInitialized { get; } Liefert einen Wert zurück, der anzeigt, ob die API erfolgreich initialisiert wurde. Tabelle 8-51  IsInitialized() - Native C++ Syntax bool IsInitialized(); Parameter Keine Rückgabewerte • false: Wenn die API nicht initialisiert wurde. •...
  • Seite 127 UserInterfaceConfiguration.xml gelesen werden. Tabelle 8-58  StrictMotionTiming { get; } - .NET (C#) Syntax bool StrictMotionTiming { get; } Parameter Keine Rückgabewerte Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.ConfigFileError Die Einstellung konnte nicht aus der Konfigurati­...
  • Seite 128 Tabelle 8-60  StrictMotionTiming { set; } - .NET (C#) Syntax bool StrictMotionTiming { set; } Parameter Keine Rückgabewerte Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.AlreadyExists Eine Instanz ist registriert. Es darf keine Instanz registriert sein, um die Einstellung zu ändern. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 129 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager SetNetworkMode() Stellt den Netzwerkmodus ein, wie er in dem Netzadapter für verteilte Kommunikation verwendet wird. Überprüfen Sie, ob das Binding auf den Netzwerkschnittstellen korrekt ist. Tabelle 8-62  SetNetworkMode() - Native C++ Syntax ERuntimeErrorCode ISimulationRuntimeManager::SetNetworkMode(constECommunicationMode in_Mode); Parameter ECommunicationMode in_Mode: Art des einzustellenden Netzwerk-Kommunikationsmodus Rückgabewerte...
  • Seite 130 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Rückgabewerte Wert Beschreibung Größer als 0 Index der gemappten PC-Schnittstelle Für die CPU-Schnittstelle wurde kein Mapping defi­ niert. Das Mapping konnte nicht geliefert werden. SetNetInterfaceMapping() Setzt Schnittstellen-Mappings zwischen CPU-Schnittstelle und PC-Schnittstelle. Ethernet- Pakete, das eine bestimmte PC-Schnittstelle erhält, werden an die zugeordnete CPU- Schnittstelle weitergeleitet.
  • Seite 131 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Ausnahmen Runtime Fehlercode Beschreibung ERuntimeErrorCode. Die PC-Schnittstelle existiert nicht oder ist nicht WrongCommunicationInterface kompatibel (deaktiviert, nicht verbunden oder ein PLCSIM Virtual Ethernet Adapter). ERuntimeErrorCode.AlreadyExixts Die PC-Schnittstelle wurde bereits einer anderen CPU-Schnittstelle zugeordnet ERuntimeErrorCode.ConfigFileError Bei Schreiben der Konfiguration in die Datei "sim_hwdb.ini"...
  • Seite 132 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Tabelle 8-68  GetNetInterfaces() - .NET (C#) Syntax SNetInterfaceInfo[] NetInterfaces { get; } Rückgabewerte Runtime Fehlercode Beschreibung SNetInterfaceInfo[] Informationen über die PC-Netzwerkschnittstellen Ausnahmen ERuntimeErrorCode.InternalError Der Systemaufruf hat einen internen Fehler verur­ sacht. CheckNetInterfaceMapping() Die Funktion prüft die Gültigkeit des Interface-Mapping, um die Instanz starten zu können. Alle bereits laufenden PC-Instanzen werden auf mögliche doppelte Mappings hin überprüft.
  • Seite 133 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Rückgabewerte ERuntimeErrorCode. Die Konfiguration ist ungültig. InvalidConfiguration Beispiele: • Die aktuelle Instanz hat eine gemappte PC-Netz­ werkschnittstelle, die bereits von einer anderen laufenden Instanz verwendet wird. • Es existiert ein gemappter PLCSIM Virtual Ether­ net Adapter. ERuntimeErrorCode.
  • Seite 134 ResetNetInterfaceBindings() Deaktiviert das Binding eines S7-PLCSIM Advanced Virtual Switch auf PC-Schnittstellen. Das Binding auf dem Siemens PLCSIM Virtual Ethernet Adapter bleibt bestehen. Sie müssen die Funktion von einer übergeordneten Session (Administratormodus) aus aufrufen, da Sie andernfalls keinen Zugriff darauf haben und die Meldung SREC_ACCESS_DENIED erscheint.
  • Seite 135: Simulation Runtime Instanzen

    Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Rückgabewerte Runtime Fehlercode Beschreibung SREC_OK Die Funktion ist erfolgreich. SREC_ACCESS_DENIED Sie haben keine Berechtigung, das Binding auf die PC-Netzwerkschnittstellen durchzuführen. SREC_NOT_ALLOWED Im Single Adapter Network Mode (Promiscuous-Mo­ dus) ist es nicht erlaubt, das Binding zu ändern, während eine Instanz gerade läuft.
  • Seite 136 SInstanceInfo[] RegisteredInstanceInfo { get; } Parameter Keine Rückgabewerte SInstanceInfo[]: Ein Array mit Informationen zu allen registrierten Instanzen. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. RegisterInstance() Registriert im Runtime Manager eine neue Instanz eines virtuellen Controllers. Erzeugt und liefert eine Schnittstelle von dieser Instanz zurück.
  • Seite 137 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Name eindeutig ist. Die Länge des Namens muss kürzer sein als DINSTANCE_NAME_LENGTH. Sie­ he Datentypen (Seite 308). • IInstance** out_InstanceInterface: Zeiger auf einen Simulation Runtime Schnittstellenzeiger. Der Zeiger muss mit NULL initialisiert werden. Die Schnittstelle wird innerhalb der Funktion erzeugt. Rückgabewerte Runtime Fehlercode Beschreibung...
  • Seite 138 IInstance** out_InstanceInterface); Parameter • WCHAR* in_VplcDll: Der vollständige Pfad zur DLL des virtuellen Controllers, den die "Siemens.Simatic.Simulation.Runti­ me.Instance.exe" bei PowerOn laden wird. • WCHAR* in_InstanceName: Name, den die Instanz erhalten soll. Jede Instanz muss einen eindeutigen Namen erhalten. Wenn kein Name vergeben wird beim Registrieren einer neuen Instanz, dann erhält die Instanz den Na­...
  • Seite 139: Createinterface

    IInstance RegisterCustomInstance(string in_VplcDll, string in_InstanceName); Parameter • string in_VplcDll: Der vollständige Pfad zur DLL des virtuellen Controllers, den die "Siemens.Simatic.Simulation.Runti­ me.Instance.exe" bei PowerOn laden wird. • string in_InstanceName: Name, den die Instanz erhalten soll. Jede Instanz muss einen eindeutigen Namen erhalten. Wenn kein Name vergeben wird beim Registrieren einer neuen Instanz, dann erhält die Instanz den Na­...
  • Seite 140 Der Name der registrierten Instanz, von der Sie die Schnittstelle empfangen möchten. Rückgabewerte Wenn die Funktion erfolgreich ist, liefert die Funktion eine Schnittstelle eines virtuellen Controllers, ansonsten liefert die Funktion einen Null-Zeiger. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 141: Remote-Verbindungen

    OpenPort(UInt16 in_Port); Parameter • UInt16 in_Port: Der Port. Der Wert muss größer sein als 1024. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.AlreadyExists Es ist bereits ein Port offen. ERuntimeErrorCode.WrongArgument Der Port ist ungültig.
  • Seite 142 ClosePort(UInt16 in_Port); Parameter Keine Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. GetPort() / Port { get; } Liefert den offenen Port zurück. Wenn kein Port offen ist oder die Funktion fehlschlägt, dann ist der Rückgabewert 0.
  • Seite 143: Remoteconnect

    SConnectionInfo[] RemoteConnectionInfo { get; } Parameter Keine Rückgabewerte SConnectionInfo[]: Ein Array von Informationen zu allen offenen Verbindungen. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. RemoteConnect() Erstellt eine neue Verbindung zu einem Remote Runtime Manager oder nutzt eine bereits existierende Verbindung, um eine IRemoteRuntimeManager Schnittstelle zu erstellen.
  • Seite 144 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.ConnectionError Verbindung zum Remote Runtime Manager kann nicht hergestellt werden. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 145: Runautodiscover()

    Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Ausnahmen ERuntimeErrorCode.WrongVersion Die Version der API ist nicht kompatibel mit der Run­ time. Siehe Kompatibilität bei Updates (Seite 21). 8.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.
  • Seite 146: Ereignisse Für Isimulationruntimemanager

    Ein Timeout-Wert in Millisekunden, der definiert, wie lange der lokale Runtime Manager auf Ant­ worten 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 Beschreibung ERuntimeErrorCode.WrongArgument Der Timeout-Wert ist außerhalb des zulässigen Be­ reichs. ERuntimeErrorCode.
  • Seite 147: Ereignisse Onsoftwareconfigurationchanged

    Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager 8.5.4.1 Ereignisse OnSoftwareConfigurationChanged OnSoftwareConfigurationChanged Meldet Software-Änderungen in den Betriebszuständen STOP und RUN. Tabelle 8-97  OnSoftwareConfigurationChanged Syntax event Delegate_SRSCC OnSoftwareConfigurationChanged(); Parameter IInstance, ERuntimeErrorCode, SYSTEMTIME, ESoftwareConfigChanged Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnSoftwareConfigurationChangedCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 148 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager UnregisterOnSoftwareConfigurationChangedCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 8-100  UnregisterOnSoftwareConfigurationChangedCallback() - Native C++ Syntax void UnregisterOnSoftwareConfigurationChangedCallback(); Parameter Keine Rückgabewerte Keine UnregisterOnSoftwareConfigurationChangedEvent() Meldet das Event-Objekt ab. Tabelle 8-101  UnregisterOnSoftwareConfigurationChangedEvent() - Native C++ Syntax void UnregisterOnSoftwareConfigurationChangedEvent();...
  • Seite 149: Ereignisse Onruntimemanagerlost

    Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Hinweis Die Funktion blockiert das CoSimulation-Programm solange, bis ein Software-Download in den si­ gnalisierten Zustand gesetzt oder bis das Timeout-Intervall überschritten wird. 8.5.4.2 Ereignisse OnRuntimeManagerLost OnRuntimeManagerLost Meldet eine Event-Handler Methode an oder ab. Tabelle 8-105  OnRuntimeManagerLost - .NET (C#) Syntax event Delegate_Void OnRuntimeManagerLost;...
  • Seite 150 Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Tabelle 8-108  RegisterOnRuntimeManagerLostEvent() - .NET (C#) Syntax void RegisterOnRuntimeManagerLostEvent(); Parameter Keine Rückgabewerte Keine UnregisterOnRuntimeManagerLostCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 8-109  UnregisterOnRuntimeManagerLostCallback() - Native C++ Syntax void UnregisterOnRuntimeManagerLostCallback(); Parameter optionaler Parameter des gleichen Typs wie für die Funktion Register*() Wenn Sie den Parameter verwenden, deinstalliert er die spezifische Funktion, andernfalls wird die zuletzt registrierte Callback-Funktion abgemeldet.
  • Seite 151: Ereignisse Onautodiscoverdata

    Anwenderschnittstellen (API) 8.5 API ISimulationRuntimeManager Tabelle 8-113  WaitForOnRuntimeManagerLostEvent() - .NET (C#) Syntax bool WaitForOnRuntimeManagerLostEvent(); bool WaitForOnRuntimeManagerLostEvent(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 152: Api Iinstances

    Anwenderschnittstellen (API) 8.6 API IInstances API IInstances 8.6.1 Schnittstellen - Informationen und Einstellungen Dispose() Löscht die managed Schnittstelle und entlädt die nativen Komponenten der Anwenderschnittstellen. Tabelle 8-117  Dispose() - .NET (C#) Syntax void Dispose() Parameter Keine Rückgabewerte Keine GetID() / ID { get; } Liefert die Instanz-ID zurück.
  • Seite 153 Tabelle 8-121  Name { get; } - .NET (C#) Syntax string Name { get; } Parameter Keine Rückgabewerte Name der Instanz. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. GetCPUType() Liefert den CPU-Typ des virtuellen Controllers zurück. Tabelle 8-122  GetCPUType() - Native C++ Syntax ECPUType GetCPUType();...
  • Seite 154 Anwenderschnittstellen (API) 8.6 API IInstances CPUType { get; set; } Liefert oder setzt den CPU-Typ des virtuellen Controllers. Ein Wechsel des CPU-Typs erfolgt nur bei einem Neustart des Controllers. Wenn über STEP 7 oder von der Virtual Memory Card ein anderer CPU-Typ geladen wird, dann gilt dieser CPU-Typ.
  • Seite 155 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte Keine 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 156: Verlust Der Schnittstellen

    Die Funktion kehrt nicht rechtzeitig wieder. Tabelle 8-131  UnregisterInstance() - .NET (C#) Syntax void UnregisterInstance(); Parameter Keine Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. 8.6.2 Controller - Informationen und Einstellungen GetControllerName() / ControllerName { get;...
  • Seite 157 ControllerName { get; } Parameter Keine Rückgabewerte string: Der heruntergeladene Name des virtuellen Controllers. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. GetControllerShortDesignation() / ControllerShortDesignation { get; } Liefert die heruntergeladene Kurzbezeichnung des virtuellen Controllers zurück.
  • Seite 158 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte INT32: Anzahl der konfigurierten IP-Adressen des virtuellen Controllers. GetControllerIP() / ControllerIP { get; } Liefert eine konfigurierte IP-Adresse der Instanz zurück. Tabelle 8-137  GetControllerIP() - Native C++ Syntax UIP GetControllerIP(); UIP GetControllerIP(UINT32 in_Index); Parameter • WCHAR in_Index: Der Index der IP-Adresse, die Sie erhalten möchten.
  • Seite 159 Wenn true, dann wird die IP-Suite nach dem Neustart des virtuellen Controllers gespeichert. Wenn die Kommunikationsschnittstelle "Softbus" ist, dann wird dieses Flag ignoriert. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 160 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 8-144  SetStoragePath() - Native C++ Syntax ERuntimeErrorCode SetStoragePath(WCHAR* in_StoragePath);...
  • Seite 161 Anwenderschnittstellen (API) 8.6 API IInstances Wenn kein Pfad gesetzt ist, gilt die Voreinstellung: <Eigene Dokumente>\Siemens\Simatic\Simulation\Runtime\Persistence\<Instance Name>. Tabelle 8-145  StoragePath { get; set; } - .NET (C#) Syntax string StoragePath { get; set; } Parameter Keine Rückgabewerte string: Der konfigurierte Speicherpfad. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException...
  • Seite 162 Anwenderschnittstellen (API) 8.6 API IInstances DefaultStoragePath { get; set; } Liefert oder setzt den vollständigen Pfad des Default-Ordners, in dem die Instanz ihre Daten speichert. Tabelle 8-148  DefaultStoragePath { get; set; } - .NET (C#) Syntax System::String^ SimulationRuntimeManager::DefaultStoragePath { System::String^ get(); void set(System::String^); } Rückgabewerte Runtime Fehlercode Beschreibung...
  • Seite 163 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode. Die Instanz ist nicht im Betriebszustand OFF. InvalidOperatingState ERuntimeErrorCode.InvalidArchivePath Der Archiv-Pfad ist ungültig.
  • Seite 164 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode. Die Instanz ist nicht im Betriebszustand OFF. InvalidOperatingState ERuntimeErrorCode.InvalidArchivePath Der Archiv-Pfad ist ungültig.
  • Seite 165 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode. Die Instanz ist nicht im Betriebszustand OFF. InvalidOperatingState ERuntimeErrorCode. Der Ordner mit dem Speicher kann nicht gelöscht DeleteExistingStorageFailed werden.
  • Seite 166: Betriebszustand

    Power On sein, um die Einstellung zu ändern. Tabelle 8-158  StrictMotionTiming { set; } - .NET (C#) Syntax bool StrictMotionTiming { set; } Parameter Keine Rückgabewerte Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode. Die Instanz ist im Power On. Die Instanz darf nicht InvalidOperatingState im Power On sein, um die Einstellung zu ändern.
  • Seite 167 Die Instanz ist im Runtime Manager nicht registriert. SREC_TIMEOUT Der erwartete Betriebszustand tritt nicht rechtzeitig ein. SREC_ERROR_LOADING_DLL Die "Siemens.Simatic.Simulation.Runtime.Instan­ ce.exe" kann die "Siemens.Simatic.Plc­ Sim.Vplc1500.dll" nicht laden. SREC_STORAGE_PATH_ALREADY_IN_USE Der ausgewählte Pfad für diese Instanz wird bereits von einer anderen Instanz genutzt. SREC_NO_STORAGE_PATH_SET Es ist kein Storage Pfad gesetzt.
  • Seite 168 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte SREC_COMMUNICATION_INTERFACE_NOT_AV- Bei lokaler Kommunikation über Softbus AILABLE PLCSIM Advanced kann sich nicht mit dem Softbus verbinden. Abhilfe • Versuchen Sie erneut, die Verbindung herzustel­ len. • Beenden Sie PLCSIM Advanced und das TIA Por­ tal und starten Sie die Anwendungen erneut. •...
  • Seite 169 Anwenderschnittstellen (API) 8.6 API IInstances Parameter • UInt32 in_Timeout_ms: Ein Timeout-Wert in Millisekunden. – Wenn kein Timeout-Wert gesetzt ist, dann kehrt die Funktion wieder sobald eine Instanz ange­ legt und bevor das Anwenderprogramm in der CPU gestartet wurde. Abonnieren Sie das Ereig­ nis OnOperatingStateChanged(), um zu erfahren, wann die Operation durchgeführt wur­...
  • Seite 170 Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Der erwartete Betriebszustand tritt nicht rechtzeitig ein. ERuntimeErrorCode.ErrorLoadingDll Die "Siemens.Simatic.Simulation. Runtime.Instan­ ce.exe" kann die "Siemens.Simatic.Plc­ Sim.Vplc1500.dll" nicht laden. ERuntimeErrorCode. Der ausgewählte Pfad für diese Instanz wird bereits StoragePathAlreadyInUse von einer anderen Instanz genutzt.
  • Seite 171 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht mehr. ERuntimeErrorCode. Die Konfiguration ist ungültig, weil z. B die aktuelle InvalidConfiguration Instanz eine gemappte PC-Netzwerkschnittstelle hat, die bereits von einer anderen laufenden Instanz verwendet wird. ERuntimeErrorCode.InternalError Der Systemaufruf hat einen internen Fehler verur­...
  • Seite 172 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Der erwartete Betriebszustand tritt nicht rechtzeitig ein. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht. PowerOff() ausführen Die API-Funktion PowerOff() liefert nach ihrem Start den Fehlercode "-39 InvalidOperatingState"...
  • Seite 173 System zu starten. Nach dem Start wird der folgende Fehlercode zurückgegeben: "SREC_WARNING_PASSWORD_PROTECTION_ERRO­ R" Danach haben Sie versucht, den virtuellen Control­ ler in den Betriebszustand RUN zu schalten. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert.
  • Seite 174 Funktion wieder, wenn die Operation durchgeführt wurde oder nach einem Timeout. Erwarteter Betriebszustand, wenn diese Funktion erfolgreich ist: { EOperatingState.Stop } Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Der erwartete Betriebszustand tritt nicht rechtzeitig ein.
  • Seite 175 Anwenderschnittstellen (API) 8.6 API IInstances GetOperatingState() / OperatingState { get; } Liefert den Betriebszustand des virtuellen Controllers zurück. Wenn sich der Betriebszustand ändert, wird das Ereignis OnOperatingStateChanged() (Seite 255) ausgelöst. Details zum Betriebszustand siehe Datentypen (Seite 330). Tabelle 8-167  GetOperatingState() - Native C++ Syntax EOperatingState GetOperatingState();...
  • Seite 176: Memoryreset

    Operation durchgeführt wurde oder nach einem Timeout. Erwartete Betriebszustände, wenn diese Funktion erfolgreich ist: { EOperatingState.Run, EOperatingState.Stop } Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Der erwartete Betriebszustand tritt nicht rechtzeitig ein.
  • Seite 177: Variablentabelle

    Anwenderschnittstellen (API) 8.6 API IInstances 8.6.4 Variablentabelle HINWEIS Elemente mit Datentypen, die der API nicht bekannt sind (EDataType.Unknown), werden nicht mit in die Variablentabelle aufgenommen. UpdateTagList() Die Funktion liest die Variablen aus dem virtuellen Controller und schreibt sie nach Namen geordnet in den gemeinsamen Speicher.
  • Seite 178 Anwenderschnittstellen (API) 8.6 API IInstances Beispiel: IOM liest nur die Variablen aus der Area Eingänge / Ausgänge und Merker. • bool in_IsHMIVisibleOnly: Wenn true, werden nur Variablen gelesen, die mit "HMI Visible" markiert sind. Die Voreinstellung ist true. • WCHAR* in_DataBlockFilterList: Ein String, der die Namen aller Datenbausteine enthält, die im Variablentabellen-Speicher verfüg­...
  • Seite 179 Fehler ausgelöst. Damit diese Liste berücksichtigt wird, muss in_DataBlockFilterList ungleich NULL sein und in_TagListDetails muss "DB" enthalten. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 180 • out bool out_IsHMIVisibleOnly: Wenn true, sind nur Variablen in der Tabelle verfügbar, die mit "HMI Visible" markiert sind. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 181: Io-Zugriff

    Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte Ein Feld, das alle verfügbaren Einträge des Speichers enthält. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 182: I/O-Zugriff Über Adresse - Lesen

    Anwenderschnittstellen (API) 8.6 API IInstances Eingänge und Ausgänge, welche keinem I/O-Modul zugeordnet sind, werden am Zykluskontrollpunkt synchronisiert. Beachten Sie beim Synchronisieren dieser Eingänge und Ausgänge Folgendes: • Eingänge können nur als Eingänge genutzt werden. Sie können Werte über die API schreiben. Werte, die aber über das STEP 7-Anwenderprogramm geschrieben werden, sind in der API nicht sichtbar.
  • Seite 183 • Byte in_Bit: Der Bit-Offset innerhalb des Bytes. Der Wert muss zwischen 0 und 7 sein. Rückgabewerte bool: Bitwert Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 184 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 185 AreaSize zurückgegeben wird. • UInt32 in_BytesToRead: Die Anzahl der Bytes, die gelesen werden. Rückgabewerte Byte[]: Die gelesenen Bytes. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 186 Anwenderschnittstellen (API) 8.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 192) und nicht über die...
  • Seite 187: I/O-Zugriff Über Adresse - Schreiben

    Runtime Fehlercode Beschreibung ERuntimeErrorCode.Ok Die Signaloperation ist erfolgreich. ERuntimeErrorCode.IndexOutOfRange Offset oder Bits sind ungültig. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 188 Der Bit-Offset innerhalb des Bytes. Der Wert muss zwischen 0 und 7 sein. • bool in_Value: Bitwert. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 189 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 Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 190 Arraywerts sein. • BYTE in_Value: Bytewert. Rückgabewerte UInt32: Enthält die Anzahl der Bytes, die gerade geschrieben wurden. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 191 Anwenderschnittstellen (API) 8.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 212) und nicht über die Adressbereiche.
  • Seite 192: I/O-Zugriff Über Variablenname - Lesen

    Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht. ERuntimeErrorCode. Mindestens ein Signalfehler ist in der Liste.
  • Seite 193 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 194 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte bool: Enthält den Wert der PLC-Variablen. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 195 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 196 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 197 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 198 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 199 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 200 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen ERuntimeErrorCode.IndexOutOfRange Der Offset liegt außerhalb der Area-Größe. Kein Wert konnte gelesen werden. ERuntimeErrorCode.DoesNotExist Der Eintrag existiert nicht in der gespeicherten Va­ riablentabelle. ERuntimeErrorCode.NotSupported Der Zugriff auf ganze Strukturen oder Felder wird nicht unterstützt. ERuntimeErrorCode.TypeMismatch Der erwartete Typ passt nicht zum gespeicherten Typ.
  • Seite 201 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht. ERuntimeErrorCode.IndexOutOfRange Der Offset liegt außerhalb der Area-Größe. Kein Wert konnte gelesen werden.
  • Seite 202 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 203 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 204 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 205 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 206 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 207 • 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 208 Anwenderschnittstellen (API) 8.6 API IInstances 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 209 Der erwartete Typ passt nicht zum gespeicherten Typ. Siehe Kompatible primitive Datentypen (Seite 336). ERuntimeErrorCode.IndexOutOfRange Offset oder Bits sind ungültig. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 210 Anwenderschnittstellen (API) 8.6 API IInstances Parameter • const WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • CHAR* out_Value: Enthält den Wert der PLC-Variablen • const UINT32 in_BufferSize: Größe des bereitgestellten Puffers • UINT32* out_CharsRead: Anzahl der gelesenen Zeichen Rückgabewerte Runtime Fehlercode Beschreibung...
  • Seite 211 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen ERuntimeErrorCode.BufferOverflow Der bereitgestellte Puffer ist zu klein. ReadWString() Liest den Wert einer PLC-Variablen. Tabelle 8-231  ReadWString() - Native C++ Syntax ERuntimeErrorCode IInstance::ReadWString( const WCHAR* in_Tag, WCHAR* out_Value, const UINT32 in_BufferSize, UINT32* out_CharsRead Parameter • const WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll.
  • Seite 212: I/O-Zugriff Über Variablenname - Schreiben

    Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht. ERuntimeErrorCode.IndexOutOfRange Der Offset liegt außerhalb der Area-Größe. Kein Wert konnte gelesen werden.
  • Seite 213 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 Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 214 Der Name der PLC-Variablen, die geschrieben werden soll. • bool in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 215 Der Name der PLC-Variablen, die geschrieben werden soll. • Int8 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 216 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen ERuntimeErrorCode.NotSupported Der Zugriff auf ganze Strukturen oder Felder wird nicht unterstützt. ERuntimeErrorCode.TypeMissmatch Der erwartete Typ passt nicht zum gespeicherten Typ. Siehe Kompatible primitive Datentypen (Seite 336). ERuntimeErrorCode.NotUpToData Die gespeicherte Variablentabelle muss aktualisiert werden. WriteInt16() Schreibt den Wert einer PLC-Variablen.
  • Seite 217 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht. ERuntimeErrorCode.IndexOutOfRange Der Offset liegt außerhalb der Area-Größe. Kein Wert konnte geschrieben werden.
  • Seite 218 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 Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 219 Der Name der PLC-Variablen, die geschrieben werden soll. • Int64 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 220 Der Name der PLC-Variablen, die geschrieben werden soll. • UInt8 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 221 Der Name der PLC-Variablen, die geschrieben werden soll. • UInt16 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 222 Der Name der PLC-Variablen, die geschrieben werden soll. • UInt32 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 223 Der Name der PLC-Variablen, die geschrieben werden soll. • UInt64 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 224 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen ERuntimeErrorCode.NotSupported Der Zugriff auf ganze Strukturen oder Felder wird nicht unterstützt. ERuntimeErrorCode.TypeMissmatch Der erwartete Typ passt nicht zum gespeicherten Typ. Siehe Kompatible primitive Datentypen (Seite 336). ERuntimeErrorCode.NotUpToData Die gespeicherte Variablentabelle muss aktualisiert werden. WriteFloat() Schreibt den Wert einer PLC-Variablen.
  • Seite 225 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht. ERuntimeErrorCode.IndexOutOfRange Der Offset liegt außerhalb der Area-Größe. Kein Wert konnte geschrieben werden.
  • Seite 226 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 Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 227 Der Name der PLC-Variablen, die geschrieben werden soll. • sbyte in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 228 Der Name der PLC-Variablen, die geschrieben werden soll. • char in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 229 Rückgabewerte Keine Signalfehler Fehlercode Beschreibung ERuntimeErrorCode.IndexOutOfRange Offset oder Bits sind ungültig. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.InstanceNotRunning Der Prozess des virtuellen Controllers läuft nicht.
  • Seite 230 Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen ERuntimeErrorCode.TypeMismatch Der erwartete Typ passt nicht zum gespeicherten Typ. Siehe Kompatible primitive Datentypen (Seite 337). ERuntimeErrorCode.NotUpToData Die gespeicherte Variablentabelle muss aktualisiert werden. ERuntimeErrorCode.WrongArgument Der erwartete Typ ist UNSPECIFIC. WriteString() Schreibt den Wert einer PLC-Variablen. Tabelle 8-263  WriteString() - Native C++ Syntax ERuntimeErrorCode IInstance::WriteString(...
  • Seite 231 Anwenderschnittstellen (API) 8.6 API IInstances Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • string in_Value: Der Wert, der in die PLC-Variable geschrieben werden soll. Rückgabewerte Keine Ausnahmen Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 232 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte SREC_NOT_SUPPORTED Der Zugriff auf ganze Strukturen oder Felder wird nicht unterstützt. SREC_TYPE_MISMATCH Der erwartete Typ passt nicht zum gespeicherten Typ. Siehe Kompatible primitive Datentypen (Seite 336). SREC_NOT_UP_TO_DATE Die gespeicherte Variablentabelle muss aktualisiert werden. SREC_BUFFER_OVERFLOW Die zu schreibenden Zeichen sind größer als der ma­...
  • Seite 233: Einstellungen Für Die Virtuelle Zeit

    "Jan 1 1970 00:00:00:000" und "Dec 31 2200 23:59:59:999". Tabelle 8-269  SystemTime { get; set; } - .NET (C#) Syntax DateTime SystemTime { get; set; } Parameter Keine Rückgabewerte Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Bedingung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 234 Anwenderschnittstellen (API) 8.6 API IInstances GetScaleFactor() Liefert den Skalierfaktor zurück, mit dem die virtuelle Zeit fortschreitet. Tabelle 8-270  GetScaleFactor() - Native C++ Syntax double GetScaleFactor(); Parameter Keine Rückgabewerte double: Skalierfaktor der virtuellen Zeit. SetScaleFactor() Setzt den Skalierfaktor, mit dem die virtuelle Zeit fortschreitet. Wir empfehlen Ihnen, dass Sie mit einem kleinen Skalierfaktor beginnen und sich schrittweise an einen Skalierfaktor herantasten, bei dem der virtuelle Controller in RUN bleibt.
  • Seite 235: Zykluskontrolle

    Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte double: Skalierfaktor der virtuellen Zeit. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Bedingung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.WrongArgument Der Wert befindet sich außerhalb der Grenzen.
  • Seite 236 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 237 Tabelle 8-281  OverwrittenMinimalCycleTime_ns { get; set; } - .NET (C#) Syntax Int64 OverwrittenMinimalCycleTime_ns { get; set; } Parameter Keine Rückgabewerte Int64: Die überschriebene minimale Zykluszeit in Nanosekunden. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. ERuntimeErrorCode.WrongArgument Der Wert befindet sich außerhalb der Grenzen.
  • Seite 238 Controllers verwendet werden soll. • UINT64 in_BusTimeStamp_ns: Zeitstempel in Nanosekunden des jeweiligen I/O-Systems zum jeweiligen Zyklusbeginn. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 239: Weitere Informationen

    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 Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 240 Anwenderschnittstellen (API) 8.6 API IInstances SetCycleTimeMonitoringMode() Mit dieser Funktion kann die Quelle für den Timer zur maximalen Zykluszeitüberwachung geändert werden. Tabelle 8-286  SetCycleTimeMonitoringMode() - Native C++ Syntax ERuntimeErrorCode SetCycleTimeMonitoringMode(ECycleTimeMonitoringMode in_CycleTimeMonitoringMode) ERuntimeErrorCode SetCycleTimeMonitoringMode(ECycleTimeMonitoringMode in_CycleTimeMonitoringMode, INT64 in_MaxCycleTime_ns) ECycleTimeMonitoringMode in_CycleTimeMonitoringMode: Parameter • Wählen Sie eine der folgenden Optionen für die maximale Zykluszeitüberwachung: –...
  • Seite 241 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 Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert.
  • Seite 242: Azyklische Dienste

    Anwenderschnittstellen (API) 8.6 API IInstances 8.6.8 Azyklische Dienste 8.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 STEP 7-Anwenderprogramm getriggerte Ereignisse, die sich für die Notifizierung angemeldet haben:...
  • Seite 243: Api-Methoden Und Zugehörige Ereignisse

    Anwenderschnittstellen (API) 8.6 API IInstances API-Methoden und zugehörige Ereignisse Ereignisse, die von Peripheriemodulen ausgelöst werden, und zugehörige API-Methoden: Tabelle 8-291  API-Methoden und zugehörige Ereignisse Name API-Methode zum Triggern des OB (An­ API-Ereignis nach OB‑Ausführung (Mel­ frage) dung) Diagnostic error Interrupt AlarmNotification (Seite 245) OnAlarmNotificationDone (Seite 271) Hardware Interrupt ProcessEvent (Seite 247)
  • Seite 244: Readrecorddone/Writerecorddone

    Byte-Array des gelesenen Datensatzes mit der Länge, die definiert ist über DataSize in der Struk­ tur SDataRecordInfo. • UInt32 in_Status: Status der Auftragsausführung Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.DoesNotExist Die HW-Kennung des Moduls existiert nicht. ERuntimeErrorCode.IndexOutOfRange Das Byte-Array des gelesenen Datensatzes über­...
  • Seite 245: Rückgabewerte Eines Geschriebenen Datensatzes

    Struktur, die die Datensatz-Information enthält. Siehe SDataRecordInfo (Seite 322). • UInt32 in_Status: Status der Auftragsausführung Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.DoesNotExist Die HW-Kennung des Moduls existiert nicht. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 246 Anwenderschnittstellen (API) 8.6 API IInstances Jeder Aufruf dieser Funktion ruft den Diagnosealarm-OB (OB 82) einmal auf, unabhängig von der Anzahl und vom Schweregrad der übermittelten Diagnoseeinträge. Tabelle 8-296  AlarmNotification() - Native C++ Syntax ERuntimeErrorCode AlarmNotification(UINT16 in_HardwareIdentifier, UINT16 in_ModuleState, UINT16 in_NumberOfDiagnosisEvents, SDiagExtChannelDescription* in_ArrayOfDiagnosisEvents, UINT16* out_SequenceNumber);...
  • Seite 247 PLCSIM Advanced weist jedem Alarm-Ereignis eine eindeutige aufeinander folgende 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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert.
  • Seite 248: Processevent

    Anwenderschnittstellen (API) 8.6 API IInstances 8.6.8.4 ProcessEvent ProcessEvent() Mit dieser Funktion können Prozessalarme von zentralen und dezentralen Eingangsmodulen simuliert werden. Tabelle 8-298  ProcessEvent() - Native C++ Syntax ERuntimeErrorCode ProcessEvent(UINT16 in_HardwareIdentifier, UINT16 in_Channel, EProcessEventType in_ProcessEventType, UINT16* out_SequenceNumber); Parameter • UINT16 in_HardwareIdentifier: Die HW-Kennung des Moduls oder Submoduls, das das Prozessereignis sendet. Die Kennung muss zu einer Hardware-Komponente im aktuell geladenen Projekt gehören.
  • Seite 249: Pullorplugevent

    Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.WrongModuleState Das Modul ist momentan gezogen. ERuntimeErrorCode.DoesNotExist Die HW-Kennung des Moduls existiert nicht. ERuntimeErrorCode. Das Modul wird nicht unterstützt bei dieser Anwen­...
  • Seite 250: Statusevent

    PLCSIM Advanced weist jedem Alarmereignis eine eindeutige aufeinander folgende 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 Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert.
  • Seite 251: Profileevent

    Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangspa­ rameter des OB 55-Aufrufs verfügbar. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. Das Modul ist momentan gezogen.
  • Seite 252: Updateevent

    Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangspa­ rameter des OB 57-Aufrufs verfügbar. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. Das Modul ist momentan gezogen.
  • Seite 253: Getconfiguredprocessevent

    Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangspa­ rameter des OB 56-Aufrufs verfügbar. Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. Das Modul ist momentan gezogen.
  • Seite 254: Rackorstationfaultevent

    Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Instanz ist im Runtime Manager nicht registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. 8.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.
  • Seite 255: Weitere Informationen

    Anwenderschnittstellen (API) 8.6 API IInstances Ausnahmen ERuntimeErrorCode.WrongModuleType Die spezifizierte HW-Kennung ist nicht die eines de­ zentralen Geräts. ERuntimeErrorCode.WrongModuleState Das Gerät mit der spezifizierten HW-Kennung mel­ det bereits den Zustand Fault/Return. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. Weitere Informationen Weitere Informationen zur HW-Kennung finden Sie in der Onlinehilfe STEP 7. 8.6.9 Ereignisse für IInstances 8.6.9.1...
  • Seite 256 Anwenderschnittstellen (API) 8.6 API IInstances OnOperatingStateChanged Meldet eine Event-Handler Methode an oder ab. Tabelle 8-313  OnOperatingStateChanged - .NET (C#) Syntax event Delegate_II_EREC_DT_EOS_EOS OnOperatingStateChanged; Parameter Keine. Siehe Delegate_II_EREC_DT_EOS_EOS (Seite 302). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnOperatingStateChangedCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 257 Anwenderschnittstellen (API) 8.6 API IInstances psa->RegisterOnOperatingStateChangedEvent(); // Thread 2 -------------------------------------------------- while (condition) // Wait for the event to be set (timeout after 10s) bool isEventSet = psa->WaitForOnOperatingStateChangedEvent(10000); if (isEventSet) // Do Something … Beispiel C++ // Thread 1 -------------------------------------------------- ISimulationRuntimeManager * api = NULL; ERuntimeErrorCode result = InitializeApi(&api);...
  • Seite 258 Anwenderschnittstellen (API) 8.6 API IInstances UnregisterOnOperatingStateChangedCallback() Meldet die Callback-Funktion ab. Tabelle 8-317  UnregisterOnOperatingStateChangedCallback() - Native C++ Syntax void UnregisterOnOperatingStateChangedCallback (EventCallback_II_SREC_ST_SROS_SROS in_CallbackFunction = nullptr); Parameter optionaler Parameter des gleichen Typs wie für die Funktion Register*() Wenn Sie den Parameter verwenden, deinstalliert er die spezifische Funktion, andernfalls wird die zuletzt registrierte Callback-Funktion abgemeldet.
  • Seite 259 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte • true: Wenn das Event-Objekt in den signalisierten Zustand gesetzt wurde. • false: Wenn während des definierten Zeitlimits kein Ereignis empfangen wurde. OnLedChanged Meldet eine Event-Handler Methode an oder ab. Tabelle 8-322  OnLedChanged - .NET (C#) Syntax event Delegate_II_EREC_DT_ELT_ELM OnLedChanged;...
  • Seite 260 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte Keine UnregisterOnLedChangedCallback() Meldet die Callback-Funktion ab. Tabelle 8-326  UnregisterOnLedChangedCallback() - Native C++ Syntax void UnregisterOnLedChangedCallback(); Parameter optionaler Parameter des gleichen Typs wie für die Funktion Register*() Wenn Sie den Parameter verwenden, deinstalliert er die spezifische Funktion, andernfalls wird die zuletzt registrierte Callback-Funktion abgemeldet.
  • Seite 261 Anwenderschnittstellen (API) 8.6 API IInstances Tabelle 8-330  WaitForOnLedChangedEvent() - .NET (C#) Syntax bool WaitForOnLedChangedEvent(); bool WaitForOnLedChangedEvent(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 262 Anwenderschnittstellen (API) 8.6 API IInstances UnregisterOnSoftwareConfigurationChangedCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 8-334  UnregisterOnSoftwareConfigurationChangedCallback() - Native C++ Syntax void UnregisterOnSoftwareConfigurationChangedCallback(); Parameter Keine Rückgabewerte Keine UnregisterOnConfigurationChangedEvent() Meldet das Event-Objekt ab. Tabelle 8-335  UnregisterOnConfigurationChangedEvent() - Native C++ Syntax void UnregisterOnSoftwareConfigurationChangedEvent();...
  • Seite 263 Anwenderschnittstellen (API) 8.6 API IInstances Tabelle 8-338  WaitForOnSoftwareConfigurationChangedEvent() - .NET (C#) Syntax void WaitForOnSoftwareConfigurationChangedEvent(); 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 264 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte Keine UnregisterOnIPAddressChangedEvent() Abmeldefunktion für den Empfang von Ereignissen, wenn sich eine IP-Adresse geändert hat. Tabelle 8-342  UnregisterOnIPAddressChangedEvent() - Native C++ Syntax void IInstance::UnregisterOnIPAddressChangedEvent(); Parameter Keine Rückgabewerte Keine OnIPAddressChanged() Das Ereignis wird aufgerufen, wenn sich die IP-Konfiguration der CPU-Schnittstelle geändert hat.
  • Seite 265 Anwenderschnittstellen (API) 8.6 API IInstances Hinweis Die Event-Handler Methode läuft in einem separaten Thread. OnSyncPointReached Meldet eine Event-Handler Methode an oder ab. Tabelle 8-346  OnSyncPointReached - .NET (C#) Syntax event Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 OnSyncPointReached; Parameter Keine. Siehe Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 (Seite 303). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread.
  • Seite 266 Anwenderschnittstellen (API) 8.6 API IInstances Tabelle 8-349  RegisterOnSyncPointReachedEvent() – .NET (C#) Syntax RegisterOnSyncPointReachedEvent() – .NET (C#) Parameter Keine Rückgabewerte Keine UnregisterOnSyncPointReachedCallback() Meldet die Callback-Funktion ab. Tabelle 8-350  UnregisterOnSyncPointReachedCallback() - Native C++ Syntax void UnregisterOnSyncPointReachedCallback(); Parameter optionaler Parameter des gleichen Typs wie für die Funktion Register*() Wenn Sie den Parameter verwenden, deinstalliert er die spezifische Funktion, andernfalls wird die zuletzt registrierte Callback-Funktion abgemeldet.
  • Seite 267 Anwenderschnittstellen (API) 8.6 API IInstances Tabelle 8-354  WaitForOnSyncPointReachedEvent() - .NET (C#) Syntax SOnSyncPointReachedResult WaitForOnSyncPointReachedEvent(); 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. Siehe SOnSyncPointReachedResult (Seite 320).
  • Seite 268 Anwenderschnittstellen (API) 8.6 API IInstances Parameter • None: Ein internes Event-Objekt wird registriert. • Handle* in_Event Ein Handle zu einem anwenderspezifischen Event-Objekt. Das Event-Objekt wird registriert. Rückgabewerte Keine Tabelle 8-358  RegisterOnHardwareConfigChangedEvent() – .NET (C#) Syntax void RegisterOnHardwareConfigChangedEvent(); Parameter Keine Rückgabewerte Keine UnregisterOnHardwareConfigChangedCallback() UnregisterOnHardwareConfigChangedCallback()Meldet die Callback-Funktion ab.
  • Seite 269: Ereignisse Für Azyklische Dienste

    Anwenderschnittstellen (API) 8.6 API IInstances WaitForOnHardwareConfigurationChangedEvent() Die Funktion blockiert das Programm so lange bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 8-362  WaitForOnHardwareConfigChangedEvent() – Native C++ Syntax bool WaitForOnHardwareConfigChangedEvent(); bool WaitForOnHardwareConfigChangedEvent (in_Time_ms); Parameter • None: Das Zeitlimit ist auf INFINITE gesetzt.
  • Seite 270 Anwenderschnittstellen (API) 8.6 API IInstances Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnDataRecordReadCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es können mehrere Callback-Funktionen für das Ereignis registriert sein. Tabelle 8-366  RegisterOnDataRecordReadCallback() - Native C++ Syntax void RegisterOnDataRecordReadCallback (Event Callback_II_SREC_ST_SDRI in_CallbackFunction);...
  • Seite 271 Anwenderschnittstellen (API) 8.6 API IInstances UnregisterOnDataRecordWriteCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 8-369  UnregisterOnDataRecordWriteCallback() - Native C++ Syntax void UnregisterOnDataRecordWriteCallback(); Parameter optionaler Parameter des gleichen Typs wie für die Funktion Register*() Wenn Sie den Parameter verwenden, deinstalliert er die spezifische Funktion, andernfalls wird die zuletzt registrierte Callback-Funktion abgemeldet.
  • Seite 272 Anwenderschnittstellen (API) 8.6 API IInstances OnProcessEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 8-373  OnProcessEventDone() - .NET (C#) Syntax event Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32 OnProcessEventDone; Parameter Keine. Siehe Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32. (Seite 306) Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnProcessEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 273 Anwenderschnittstellen (API) 8.6 API IInstances Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnPullOrPlugEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es können mehrere Callback-Funktionen für das Ereignis registriert sein. Tabelle 8-377  RegisterOnPullOrPlugEventDoneCallback() - Native C++ Syntax void RegisterOnPullOrPlugEventDoneCallback (EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 in_CallbackFunction);...
  • Seite 274 Anwenderschnittstellen (API) 8.6 API IInstances RegisterOnStatusEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es können mehrere Callback-Funktionen für das Ereignis registriert sein. Tabelle 8-380  RegisterOnStatusEventDoneCallback() - Native C++ Syntax void RegisterOnStatusEventDoneCallback (EventCallback_II_SREC_ST_UINT32 in_CallbackFunction); Parameter EventCallback_II_SREC_ST_UINT32 in_CallbackFunction: Eine Callback-Funktion, die das Ereignis abonniert. Siehe EventCallback_II_SREC_ST_UINT32 (Seite 300).
  • Seite 275 Anwenderschnittstellen (API) 8.6 API IInstances RegisterOnProfileEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es können mehrere Callback-Funktionen für das Ereignis registriert sein. Tabelle 8-383  RegisterOnProfileEventDoneCallback() - Native C++ Syntax void RegisterOnProfileEventDoneCallback (EventCallback_II_SREC_ST_UINT32 in_CallbackFunction); Parameter EventCallback_II_SREC_ST_UINT32 in_CallbackFunction: Eine Callback-Funktion, die das Ereignis abonniert. Siehe EventCallback_II_SREC_ST_UINT32 (Seite 300).
  • Seite 276 Anwenderschnittstellen (API) 8.6 API IInstances RegisterOnUpdateEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es können mehrere Callback-Funktionen für das Ereignis registriert sein. Tabelle 8-386  RegisterOnUpdateEventDoneCallback() - Native C++ Syntax void RegisterOnUpdateEventDoneCallback (EventCallback_II_SREC_ST_UINT32 in_CallbackFunction); Parameter EventCallback_II_SREC_ST_UINT32 in_CallbackFunction: Eine Callback-Funktion, die das Ereignis abonniert. Siehe EventCallback_II_SREC_ST_UINT32 (Seite 300).
  • Seite 277: Api Iremoteruntimemanager

    Anwenderschnittstellen (API) 8.7 API IRemoteRuntimeManager RegisterOnRackOrStationFaultEventCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es können mehrere Callback-Funktionen für das Ereignis registriert sein. Tabelle 8-389  RegisterOnRackOrStationFaultEventCallback() - Native C++ Syntax void RegisterOnRackOrStationFaultEventCallback ( EventCallback_II_SREC_ST_UINT32_ERSFET in_CallbackFunction); Parameter EventCallback_II_ SREC_ST_UINT32_ERSFET in_CallbackFunction. Eine Callback-Funktion, die das Ereignis abonniert. Siehe EventCallback_II_SREC_ST_UINT32_ERSFET (Seite 299) Rückgabewerte Keine...
  • Seite 278 Anwenderschnittstellen (API) 8.7 API IRemoteRuntimeManager Rückgabewerte Keine GetVersion() Liefert die Version des Remote Runtime Managers zurück. Wenn die Funktion fehlschlägt, wird die Version 0.0 zurückgegeben. Tabelle 8-392  GetVersion() - Native C++ Syntax UINT32 GetVersion(); Parameter Keine Rückgabewerte UINT32: Remote Runtime Manager Version (HIWORD = Major, LOWORD = Minor) Tabelle 8-393  Version { get;...
  • Seite 279 Syntax string RemoteComputerName { get; } Parameter Keine Rückgabewerte string: Name des PC, auf dem der Remote Runtime Manager läuft. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Schnittstelle ist vom Remote Runtime Manager getrennt. ERuntimeErrorCode.IndexOutOfRange Das Feld ist zu klein, um den Computernamen zu empfangen.
  • Seite 280 Die Funktion kehrt nicht rechtzeitig wieder. Tabelle 8-401  Disconnect() - .NET (C#) Syntax void Disconnect(); Parameter Keine Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Schnittstelle ist vom Remote Runtime Manager getrennt. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. GetStrictMotionTiming() / StrictMotionTiming { get; } Liefert die aktuelle globale Einstellung für das "Strict Motion Timing"...
  • Seite 281 Tabelle 8-405  StrictMotionTiming { set; } - .NET (C#) Syntax bool StrictMotionTiming { set; } Parameter Keine Rückgabewerte Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.AlreadyExists Eine Instanz ist registriert. Es darf keine Instanz registriert sein, um die Einstellung zu ändern. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 282: Simulation Runtime Instanzen

    Anwenderschnittstellen (API) 8.7 API IRemoteRuntimeManager Rückgabewerte SREC_VIRTUAL_SWITCH_MISCONFIGURED Der S7-PLCSIM Advanced Virtual Switch ist falsch konfiguriert. SetNetworkMode() Stellt den Netzwerkmodus ein, wie er im Netzwerkadapter für verteilte Kommunikation verwendet wird. Überprüfen Sie, ob das Binding auf den Netzwerkschnittstellen korrekt ist. Tabelle 8-407  SetNetworkMode() - Native C++ Syntax ERuntimeErrorCode IRemoteRuntimeManager::SetNetworkMode(const ECommunicationMode in_Mode);...
  • Seite 283 Tabelle 8-411  RegisterInstanceInfo { get; } - .NET (C#) Syntax SInstanceInfo[] RegisteredInstanceInfo { get; } Parameter Keine Rückgabewerte Keine Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Schnittstelle ist vom Remote Runtime Manager getrennt. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder. S7-PLCSIM Advanced...
  • Seite 284 Anwenderschnittstellen (API) 8.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 8-412  RegisterInstance() - Native C++ Syntax ERuntimeErrorCode RegisterInstance(IInstance** out_InstanceInterface); ERuntimeErrorCode RegisterInstance(WCHAR* in_InstanceName, IInstance** out_InstanceInterface); ERuntimeErrorCode RegisterInstance(ECPUType in_CPUType, IInstance** out_InstanceInterface);...
  • Seite 285 IInstance** out_InstanceInterface); Parameter • WCHAR* in_VplcDll: Der vollständige Pfad zur DLL des virtuellen Controllers, den die Siemens.Simatic.Simulation.Runti­ me.Instance.exe bei PowerOn laden wird. • WCHAR* in_InstanceName: Name, den die Instanz erhalten soll. Jede Instanz muss einen eindeutigen Namen erhalten. Wenn kein Name vergeben wird beim Registrieren einer neuen Instanz, dann erhält die Instanz den Na­...
  • Seite 286 IInstance RegisterCustomInstance(string in_VplcDll, string in_InstanceName); Parameter • string in_VplcDll: Der vollständige Pfad zur DLL des virtuellen Controllers, den die Siemens.Simatic.Simulation.Runti­ me.Instance.exe bei PowerOn laden wird. • string in_InstanceName: Name, den die Instanz erhalten soll. Jede Instanz muss einen eindeutigen Namen erhalten. Wenn kein Name vergeben wird beim Registrieren einer neuen Instanz, dann erhält die Instanz den Na­...
  • Seite 287 Anwenderschnittstellen (API) 8.7 API IRemoteRuntimeManager Ausnahmen ERuntimeErrorCode.AlreadyExists Eine Instanz mit diesem Namen existiert bereits. 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.
  • Seite 288: Ereignisse Für Iremoteruntimemanager

    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. Ausnahmen Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Runtime Fehlercode Beschreibung ERuntimeErrorCode.InterfaceRemoved Die Schnittstelle ist vom Remote Runtime Manager getrennt.
  • Seite 289 Anwenderschnittstellen (API) 8.7 API IRemoteRuntimeManager RegisterOnConnectionLostCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es können mehrere Callback-Funktionen für das Ereignis registriert sein. Tabelle 8-419  RegisterOnConnectionLostCallback() - Native C++ Syntax void RegisterOnConnectionLostCallback(EventCallback_IRRTM in_CallbackFunction); Parameter EventCallback_IRRTM in_CallbackFunction: Eine Callback-Funktion, die ein Ereignis abonniert. Siehe EventCallback_IRRTM (Seite 293). Rückgabewerte Keine Hinweis...
  • Seite 290: Datentypen

    Anwenderschnittstellen (API) 8.8 Datentypen UnregisterOnConnectionLostEvent() Meldet das Event-Objekt ab. Tabelle 8-423  UnregisterOnConnectionLostEvent() - Native C++ Syntax void UnregisterOnConnectionLostEvent(); Parameter Keine Rückgabewerte Keine Tabelle 8-424  UnregisterOnConnectionLostEvent() - .NET (C#) Syntax void UnregisterOnConnectionLostEvent(); Parameter Keine Rückgabewerte Keine WaitForOnConnectionLostEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist.
  • Seite 291: Datentypen Konvertieren

    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). 8.8.1 DLL-Importfunktionen (Native C++) 8.8.1.1 ApiEntry_Initialize Beschreibung Typ des zentralen Eintrittspunkts für die API-Bibliothek (DLL).
  • Seite 292: Apientry_Destroyinterface

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.1.2 ApiEntry_DestroyInterface Beschreibung Typ des Eintrittspunkts für DestroyInterface (Seite 117). Tabelle 8-428  ApiEntry_DestroyInterface - Native C++ Syntax typedef ERuntimeErrorCode(*ApiEntry_DestroyInterface)(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. SREC_WRONG_ARGUMENT Der Zeiger auf die Schnittstelle ist NULL.
  • Seite 293: Eventcallback_Srrsi_Ad

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter SRCC_CONNECTION_- IP des Remote Runtime Port des Remote Runti­ CLOSED Managers me Managers SRCC_PORT_OPENED Der offene Port SRCC_PORT_CLOSED Rückgabewerte Keine 8.8.2.3 EventCallback_SRRSI_AD Beschreibung Tabelle 8-431  EventCallback_SRRSI_AD - Native C++ Syntax typedef void (*EventCallback_SRRSI_AD)(EAutodiscoverType in_AutodiscoverMsg, SAutodiscoverData in_AutodiscoverData); Parameter •...
  • Seite 294: Eventcallback_Ii_Srec_St_Sros_Sros

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.2.5 EventCallback_II_SREC_ST_SROS_SROS Beschreibung Tabelle 8-433  EventCallback_II_SREC_ST_SROS_SROS - Native C++ Syntax typedef void (*EventCallback_II_SREC_ST_SROS_SROS)(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. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode •...
  • Seite 295: Eventcallback_Ii_Srec_St

    Anwenderschnittstellen (API) 8.8 Datentypen • UINT32 in_Id: Für die Betriebsart SingleStep_Bus gilt: Die ID des I/O-Systems, das zur zyklusgesteuerten Synchronisation des virtuellen Controllers ver­ wendet wird. Für alle anderen Betriebsarten gilt: Die ID des Teilprozessabbilds (TPA), das dieses Ereignis auslöst. 0 für den Zykluskontrollpunkt (End of cycle).
  • Seite 296: Eventcallback_Ii_Srec_St_Srlt_Srlm

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode. • SYSTEMTIME in_SystemTime: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt als dieses Ereignis ausgelöst wurde. EInstanceCon- UINT32 UINT32 UINT32 UINT32...
  • Seite 297: Eventcallback_Ii_Srec_St_Sdri_Byte

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode • SYSTEMTIME in_SystemTime: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt, als dieses Ereignis ausgelöst wurde. SDataRecordInfo in_DataRecordInfo: •...
  • Seite 298: Eventcallback_Ii_Srec_St_Uint32_Uint32_Epet_Uint32

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode • SYSTEMTIME in_SYSTEMTIME: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt, als dieses Ereignis ausgelöst wurde. UINT32 in_HardwareIdentifier: •...
  • Seite 299: Eventcallback_Ii_Srec_St_Uint32_Eppet_Uint32

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.2.14 EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 Beschreibung Tabelle 8-442  EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 - Native C++ Syntax typedef void (*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. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode •...
  • Seite 300: Eventcallback_Ii_Srec_St_Uint32

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.2.16 EventCallback_II_SREC_ST_UINT32 Beschreibung Tabelle 8-444  EventCallback_II_SREC_ST_UINT32 - Native C++ Syntax typedef void (*EventCallback_II_SREC_ST_UINT32)(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 301: Delegate_Srrsi_Ad

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter InstanceUnregis- ID der nicht registrierten tered Instanz ConnectionOpened IP des Remote Runtime Port des Remote Runti­ Managers me Managers ConnectionClosed IP des Remote Runtime Port des Remote Runti­ Managers me Managers PortOpened Der offene Port PortClosed Rückgabewerte Keine...
  • Seite 302: Delegate_Ii_Erec_Dt_Eos_Eos

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode. • DateTime in_DateTime: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt als dieses Ereignis ausgelöst wurde. Rückgabewerte Keine 8.8.3.5 Delegate_II_EREC_DT_EOS_EOS Beschreibung...
  • Seite 303: Delegate_Ii_Erec_Dt_Uint32_Int64_Int64_Uint32

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode. • DateTime in_DateTime: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt als dieses Ereignis ausgelöst wurde. ELEDType in_LEDType: •...
  • Seite 304: Delegate_Irrtm

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.3.8 Delegate_IRRTM Beschreibung Tabelle 8-452  Delegate_IRRTM - .NET (C#) Syntax delegate void Delegate_IRRTM(IRemoteRuntimeManager in_Sender); Parameter • IRemoteRuntimeManager in_Sender: Eine Schnittstelle des Remote Runtime Managers, die dieses Ereignis empfängt. Rückgabewerte Keine 8.8.3.9 Delegate_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32 Beschreibung Tabelle 8-453  Delegate_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32 - .NET (C#) Syntax delegate void Delegate_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32(IInstance...
  • Seite 305: Delegate_Ii_Erec_Dt_Sdr

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode. • DateTime in_DateTime: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt als dieses Ereignis ausgelöst wurde. SDataRecordInfo in_DataRecordInfo: •...
  • Seite 306: Delegate_Srec_St_Uint32_Uint32_Epet_Uint32

    Anwenderschnittstellen (API) 8.8 Datentypen Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode. • DateTime in_DateTime: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt als dieses Ereignis ausgelöst wurde. UInt32 in_HardwareIdentifier: •...
  • Seite 307: Delegate_Srec_St_Uint32

    Anwenderschnittstellen (API) 8.8 Datentypen Rückgabewerte Keine 8.8.3.14 Delegate_SREC_ST_UINT32 Beschreibung Tabelle 8-458  Delegate_SREC_ST_UINT32 - .NET (C#) Syntax delegate void Delegate_SREC_ST_UINT32 (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 308: Delegate_Srec_St_Uint32_Ersfet

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.3.16 Delegate_SREC_ST_UINT32_ERSFET Beschreibung Tabelle 8-460  Delegate_SREC_ST_UINT32_ERSFET - .NET (C#) Syntax delegate void Delegate_SREC_ST_UINT32_ERSFET(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. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 309: Unions (Native C++)

    Anwenderschnittstellen (API) 8.8 Datentypen Bezeichner Wert Beschreibung DMODULE_STATE_MAINT_REQUIRED AlarmNotification: Wartungsbedarf Tabelle 8-462  Konstanten - .NET (C#) Bezeichner Wert Beschreibung RuntimeConstants.InstanceNameLength Der eindeutige Name einer Instanz muss kleiner sein als dieser Wert. RuntimeConstants. Die maximale Pfadlänge zur virtuellen Memory Card. Ein­ StoragePathMaxLength schließlich der NULL-Terminierung.
  • Seite 310: Udatavalue

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.5.2 UDataValue Beschreibung Enthält den Wert einer PLC-Variable. Tabelle 8-464  UDataValue - Native C++ Syntax union UDataValue bool Bool; INT8 Int8; INT16 Int16; INT32 Int32; INT64 Int64; UINT8 UInt8; UINT16 UInt16; UINT32 UInt32; UINT64 UInt64; float Float; double Double;...
  • Seite 311: Sdatavalue

    Anwenderschnittstellen (API) 8.8 Datentypen • SDataValueByName (Seite 314) • SDataValueByNameWithCheck (Seite 315) • SConnectionInfo (Seite 316) • SInstanceInfo (Seite 316) • SDimension (Seite 317) • STagInfo (Seite 317) • SIP (Seite 319) • SIPSuite4 (Seite 319) • SOnSyncPointReachedResult (Seite 320) •...
  • Seite 312: Sdvbni

    Anwenderschnittstellen (API) 8.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 313: Sdatavaluebyaddress

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.3 SDataValueByAddress Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihre Adresse aufgerufen wird. Tabelle 8-469  SDataValueByAddress - Native C++ Syntax struct SDataValueByAddress UINT32 Offset; UINT8 Bit; SDataValue DataValue; ERuntimeErrorCode ErrorCode; Member • UINT32 Offset Der Byte-Offset der Variablen, wenn sie sich nicht in einem Datenbaustein befindet •...
  • Seite 314: Sdatavaluebyaddresswithcheck

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.4 SDataValueByAddressWithCheck Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihre Adresse aufgerufen wird. Tabelle 8-471  SDataValueByAddressWithCheck - Native C++ Syntax struct SDataValueByAddressWithCheck UINT32 Offset; UINT8 Bit; SDataValue DataValue; ERuntimeErrorCode ErrorCode; bool ValueHasChanged; Member • UINT32 Offset Der Byte-Offset der Variablen, wenn sie sich nicht in einem Datenbaustein befindet •...
  • Seite 315: Sdatavaluebyname

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.5 SDataValueByName Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihren Namen aufgerufen wird. Tabelle 8-473  SDataValueByName - Native C++ Syntax struct SDataValueByName WCHAR Name[DTAG_NAME_MAX_LENGTH]; SDataValue DataValue; ERuntimeErrorCode ErrorCode; SDVBNI Internal; Member • WCHAR Name[DTAG_NAME_MAX_LENGTH] Der Name der Variablen •...
  • Seite 316: Sdatavaluebynamewithcheck

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

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.8 SInstanceInfo Beschreibung Diese Struktur enthält eine IPv4-Adresse. Tabelle 8-479  SInstanceInfo - Native C++ Syntax struct SInstanceInfo 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 8-480  SInstanceInfo - .NET (C#) Syntax struct SInstanceInfo Int32 ID;...
  • Seite 318: Staginfo

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.10 STagInfo Beschreibung Diese Struktur enthält Informationen zu einer PLC-Variablen. Tabelle 8-483  STagInfo - Native C++ Syntax struct STagInfo WCHAR Name[DTAG_NAME_MAX_LENGTH]; EArea Area; EDataType DataType; EPrimitiveDataType PrimitiveDataType; UINT16 Size; UINT32 Offset; UINT8 Bit; UINT8 DimensionCount; UINT32 Index; UINT32 ParentIndex;...
  • Seite 319: Sip

    Anwenderschnittstellen (API) 8.8 Datentypen Member • String Name: 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 320: Sipsuite4

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.12 SIPSuite4 Beschreibung Diese Struktur enthält eine IPv4-Suite. Tabelle 8-486  SIPSuite4 - Native C++ Syntax struct SIPSuite4 UIP IPAddress; UIP SubnetMask; UIP DefaultGateway; Member • UIP IPAddress: Die IP-Adresse • UIP SubnetMask: Die Subnetzmaske • UIP DefaultGateway: Das Standard-Gateway Tabelle 8-487  SIPSuite4 - .NET (C#) Syntax...
  • Seite 321 Anwenderschnittstellen (API) 8.8 Datentypen Member • ERuntimeErrorCode ErrorCode: – SREC_TIMEOUT, wenn während der definierten Zeitspanne kein Ereignis ausgelöst wurde. In einem solchen Fall werden die struct-Werte nicht verwendet. – SREC_WARNING_INVALID_CALL, wenn zuvor keine Funktion RegisterOnSyncPointReachedEvent aufgerufen wurde. Siehe ERuntimeErrorCode. • SYSTEMTIME SystemTime: Die virtuelle Systemzeit des virtuellen Controllers, zum Zeitpunkt, als dieses Ereignis ausgelöst wurde.
  • Seite 322: Sdatarecordinfo

    Anwenderschnittstellen (API) 8.8 Datentypen • UInt32 Id: Für die Betriebsart SingleStep_Bus gilt: Die ID des I/O-Systems, das zur zyklusgesteuerten Synchronisation des virtuellen Controllers ver­ wendet wird. Für alle anderen Betriebsarten gilt: Die ID des Teilprozessabbilds (TPA), das dieses Ereignis auslöst. 0 für den Zykluskontrollpunkt (End of cycle).
  • Seite 323: Sdatarecord

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.15 SDataRecord Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen und Datensätze. Tabelle 8-492  SDataRecord - .NET (C#) Syntax struct SDataRecord UInt32 HardwareId; byte[] Data Member • SDataRecordInfo Info: Die Datensatz-Information; siehe SDataRecordInfo (Seite 322) • byte[] Data: Die Feldgröße 8.8.6.16 SConfiguredProcessEvents Beschreibung...
  • Seite 324: Sdiagextchanneldescription

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.6.17 SDiagExtChannelDescription Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen und Datensätze. Tabelle 8-495  SDiagExtChannelDescription - Native C++ Syntax struct SDiagExtChannelDescription 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 325: Sautodiscoverdata

    Anwenderschnittstellen (API) 8.8 Datentypen Fehlertypen Die folgende Tabelle enthält wichtige Fehlertypen (ErrorType) nach PROFINET-Standard: Tabelle 8-497  Fehlertypen nach PROFINET-Standard Wert Bedeutung 0x0000 Reserviert / Unbekannter Fehler 0x0001 Kurzschluss 0x0002 Unterspannung 0x0003 Überspannung 0x0004 Überlast 0x0005 Übertemperatur 0x0006 Drahtbruch 0x0007 Obergrenze überschritten 0x0008 Untergrenze unterschritten 0x0009...
  • Seite 326: Smacaddress

    Anwenderschnittstellen (API) 8.8 Datentypen Tabelle 8-500  SAutodiscoverData - .NET (C#) Syntax public struct SAutodiscoverData public SIP IP; public ushort Port; public uint RuntimeVersion; public string ComputerName; 8.8.6.19 SMACAddress Beschreibung Definiert die Struktur einer MAC-Adresse. Tabelle 8-501  SMACAddress - Native C++ Syntax #define DMAC_ADDRESS_LEN 6 struct SMACAddress BYTE Octets[DMAC_ADDRESS_LEN];...
  • Seite 327: Eruntimeerrorcode

    Anwenderschnittstellen (API) 8.8 Datentypen • ELEDType (Seite 334) • ELEDMode (Seite 335) • EPrimitiveDataType (Seite 336) • EDataType (Seite 337) • ETagListDetails (Seite 340) • ERuntimeConfigChanged (Seite 341) • EInstanceConfigChanged (Seite 341) • EPullOrPlugEventType (Seite 342) • EProcessEventType (Seite 342) •...
  • Seite 328 Anwenderschnittstellen (API) 8.8 Datentypen SREC_CONFIGURED_DEVICE_NOT_FOUND = -27, SREC_INVALID_CONFIGURATION = -28, SREC_TYPE_MISMATCH = -29, SREC_LICENSE_NOT_FOUND = -30, SREC_NO_LICENSE_AVAILABLE = -31, SREC_WRONG_COMMUNICATION_INTERFACE = -32, SREC_LIMIT_REACHED = -33, SREC_NO_STORAGE_PATH_SET = -34, SREC_STORAGE_PATH_ALREADY_IN_USE = -35, 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,...
  • Seite 329 Anwenderschnittstellen (API) 8.8 Datentypen ApiNotInitialized = -17, WarningAlreadyExists = 18, NotSupported = -19, WarningInvalidCall = 20, ErrorLoadingDll = -21, SignalNameDoesNotExist = -22, SignalTypeMismatch = -23, SignalConfigurationError = -24, NoSignalConfigurationLoaded = -25, ConfiguredConnectionNotFound = -26, ConfiguredDeviceNotFound = -27, InvalidConfiguration = -28, TypeMismatch = -29, LicenseNotFound = -30, NoLicenseAvailable = -31,...
  • Seite 330: Earea

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.2 EArea Beschreibung Diese Aufzählung enthält alle PLC-Areas, die verfügbare PLC-Variablen beinhalten. Tabelle 8-505  EArea - Native C++ Syntax enum EArea SRA_INVALID_AREA = 0, SRA_INPUT = 1, SRA_MARKER = 2, SRA_OUTPUT = 3, SRA_COUNTER = 4, SRA_TIMER = 5, SRA_DATABLOCK = 6, SRA_ENUMERATION_SIZE = 7 Tabelle 8-506  EArea - .NET (C#)
  • Seite 331: Eoperatingmode

    Anwenderschnittstellen (API) 8.8 Datentypen Tabelle 8-508  EOperatingState - .NET (C#) Syntax enum EOperatingState InvalidOperatingState = 0, Off = 1, Booting = 2, Stop = 3, Startup = 4, Run = 5, Freeze = 6, ShuttingDown = 7, Hold = 8 8.8.7.4 EOperatingMode Beschreibung Diese Aufzählung enthält alle Betriebsarten eines virtuellen Controllers.
  • Seite 332: Ecputype

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.5 ECPUType Beschreibung Diese Aufzählung enthält alle CPU-Typen, die auf einen virtuellen Controller geladen werden können. Tabelle 8-511  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 333 Anwenderschnittstellen (API) 8.8 Datentypen Tabelle 8-512  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, CPU1516F = 0x000105EC,...
  • Seite 334: Ecommunicationinterface

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.6 ECommunicationInterface Beschreibung Diese Aufzählung enthält die verfügbaren Kommunikationsschnittstellen eines virtuellen Controllers. Tabelle 8-513  ECommunicationInterface - Native C++ Syntax enum ECommunicationInterface SRCI_NONE = 0, SRCI_SOFTBUS = 1, SRCI_TCPIP = 2, SRCI_ENUMERATION_SIZE = 3 Tabelle 8-514  ECommunicationInterface - .NET (C#) Syntax enum ECommunicationInterface None = 0,...
  • Seite 335: Eledtype

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.9 ELEDType Beschreibung Diese Aufzählung enthält alle LED-Typen eines virtuellen Controllers. Tabelle 8-517  ELEDType - Native C++ Syntax enum ELEDType SRLT_STOP = 0, SRLT_RUN = 1, SRLT_ERROR = 2, SRLT_MAINT = 3, SRLT_REDUND = 4, SRLT_FORCE = 5, SRLT_BUSF1 = 6, SRLT_BUSF2 = 7, SRLT_BUSF3 = 8,...
  • Seite 336: Eprimitivedatatype

    Anwenderschnittstellen (API) 8.8 Datentypen Tabelle 8-520  ELEDMode - .NET (C#) Syntax enum ELEDMode Off = 0, On = 1, FlashFast = 2, FlashSlow = 3, Invalid = 4 8.8.7.11 EPrimitiveDataType Beschreibung Diese Aufzählung enthält alle primitiven Datentypen, die von den I/O-Zugriffs-Funktionen genutzt werden.
  • Seite 337 Anwenderschnittstellen (API) 8.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 kompatiblen Datentypen sind mit "X" markiert. Tabelle 8-523  Kompatible primitive Datentypen - Lesen PLCSIM Advanced Instanz Bool UINT...
  • Seite 338: Edatatype

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.12 EDataType Beschreibung Diese Aufzählung enthält alle PLC-Datentypen (STEP 7). Tabelle 8-525  EDataType - Native C++ Syntax enum EDataType 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, SRDT_DATE = 9,...
  • Seite 339 Anwenderschnittstellen (API) 8.8 Datentypen SRDT_HW_PWM = 153, SRDT_HW_PTO = 154, SRDT_HW_INTERFACE = 155, SRDT_HW_IEPORT = 156, SRDT_OB_ANY = 160, SRDT_OB_DELAY = 161, SRDT_OB_TOD = 162, SRDT_OB_CYCLIC = 163, SRDT_OB_ATT = 164, SRDT_CONN_ANY = 168, SRDT_CONN_PRG = 169, SRDT_CONN_OUC = 170, SRDT_CONN_R_ID = 171, SRDT_PORT = 173, SRDT_RTM = 174,...
  • Seite 340: Etaglistdetails

    Anwenderschnittstellen (API) 8.8 Datentypen IEC_UCounter = 72, IEC_USCounter = 73, IEC_UDCounte = 74, IEC_ULCounter = 75, ErrorStruct = 97, NREF = 98, 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,...
  • Seite 341: Eruntimeconfigchanged

    Anwenderschnittstellen (API) 8.8 Datentypen SRTLD_IOMCT = 7, SRTLD_DB = 8, SRTLD_IODB = 9, SRTLD_MDB = 10, SRTLD_IOMDB = 11, SRTLD_CTDB = 12, SRTLD_IOCTDB = 13, SRTLD_MCTDB = 14, SRTLD_IOMCTDB = 15 Tabelle 8-528  ETagListDetails - .NET (C#) Syntax enum ETagListDetails None = 0, IO = 1, M = 2, IOM = 3,...
  • Seite 342: Einstanceconfigchanged

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.15 EInstanceConfigChanged Beschreibung Diese Aufzählung enthält alle möglichen Ursachen für ein OnSoftwareConfigurationChanged- Ereignis, das der virtuelle Controller sendet. Tabelle 8-531  EInstanceConfigChanged - Native C++ Syntax enum EInstanceConfigChanged SRICC_HARDWARE_SOFTWARE_CHANGED = 0, SRICC_IP_CHANGED = 1 Tabelle 8-532  EInstanceConfigChanged - .NET (C#) Syntax enum EInstanceConfigChanged HardwareSoftwareChanged = 0,...
  • Seite 343: Eprocesseventtype

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.17 EProcessEventType Beschreibung Diese Aufzählung enthält vordefinierte Typen von Prozessereignissen für S7-Module. Tabelle 8-535  EProcessEventType - Native C++ Syntax enum EProcessEventType SR_PET_UNDEFINED = 0, SR_PET_RISING_EDGE = 1, SR_PET_FALLING_EDGE = 2, SR_PET_LIMIT1_UNDERRUN = 3, SR_PET_LIMIT1_OVERRUN = 4, SR_PET_LIMIT2_UNDERRUN = 5, SR_PET_LIMIT2_OVERRUN = 6 Tabelle 8-536  EProcessEventType - .NET (C#) Syntax...
  • Seite 344: Ediagproperty

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.19 EDiagProperty Beschreibung Diese Aufzählung enthält die Kommend-/Gehend-Information der Diagnosemeldung. Tabelle 8-539  EDiagProperty - Native C++ Syntax enum EDiagProperty SRP_DIAG_APPEAR = 1, SRP_DIAG_DISAPPEAR = 2 Tabelle 8-540  EDiagProperty - .NET (C#) Syntax enum EDiagProperty Appear = 1, Disappear = 2 8.8.7.20 EDiagSeverity Beschreibung...
  • Seite 345: Erackorstationfaulttype

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.21 ERackOrStationFaultType Beschreibung Diese Aufzählung enthält die Typen des RackOrStationFault-Ereignisses. Tabelle 8-543  ERackOrStationFaultType - Native C++ Syntax enum ERackOrStationFaultType SR_RSF_FAULT = 0, SR_RSF_RETURN = 1 Tabelle 8-544  ERackOrStationFaultType - .NET (C#) Syntax enum ERackOrStationFaultType Fault = 0, Return = 1 8.8.7.22 ECycleTimeMonitoringMode Beschreibung...
  • Seite 346: Eautodiscovertype

    Anwenderschnittstellen (API) 8.8 Datentypen 8.8.7.23 EAutodiscoverType Beschreibung Diese Aufzählung wird bei der Autodiscover Callback-Funktion verwendet. Tabelle 8-547  EAutodiscoverType - Native C++ Syntax enum EAutodiscoverType SRRSI_DISCOVER_STARTED = 0, SRRSI_DISCOVER_DATA = 1, SRRSI_DISCOVER_FINISHED = 2 Tabelle 8-548  EAutodiscoverType - .NET (C#) Syntax public enum EAutodiscoverType AutodiscoverStarted = 0, AutodiscoverData = 1, AutodiscoverFinished = 2...
  • Seite 347: 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 347) •...
  • Seite 348: Webserver

    Einschränkungen, Meldungen und Abhilfe 9.4 Projektierung einer PLCSIM Advanced Instanz sichern und wiederherstellen Die Nutzungsberechtigung gilt für zwei Instanzen. Webserver Der in eine CPU integrierte Webserver ermöglicht es autorisierten Nutzern, die CPU über ein Netzwerk zu überwachen und zu verwalten. Auswertungen und Diagnose sind somit über große Entfernungen möglich.
  • Seite 349: Laden Von Projektdaten Einer F-Cpu In Eine Standard-Cpu

    Einschränkungen, Meldungen und Abhilfe 9.6 Update eines TIA Portal-Projekts auf eine neue CPU-Firmware Voraussetzung • Das Sichern und Wiederherstellen der Projektierung einer PLCSIM Advanced Instanz erfolgt über das Protokoll TCP/IP. Softbus wird nicht unterstützt. • Das Wiederherstellen der Projektierung einer PLCSIM Advanced Instanz ist nur mit der entsprechenden Sicherung aus PLCSIM Advanced möglich.
  • Seite 350: Einschränkungen Bei Dateipfaden

    Einschränkungen, Meldungen und Abhilfe 9.10 Einschränkungen bei Anweisungen 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 Ordner, wie der Windows-Ordner (%Windows%) oder die lokalen Pfaden Programmordner (%Program Files%, %Program Files (x86)%) sind nicht erlaubt.
  • Seite 351: Nicht Unterstützte Anweisungen

    Einschränkungen, Meldungen und Abhilfe 9.11 Einschränkungen bei lokaler Kommunikation über Softbus Ausgänge zurück, die zwar gültig sind, jedoch nicht unbedingt denen entsprechen, die eine reale CPU mit physischen Eingängen / Ausgängen zurückgeben würde. Nicht unterstützte Anweisungen Nicht unterstützte Anweisungen werden als nicht betriebsbereit behandelt. Der Wert nicht unterstützter Anweisungen ist immer "OK".
  • Seite 352: Unbekannte Datensätze

    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 353: Uhrzeitsynchronisation Über Ntp-Verfahren

    Npcap ist auf dem System nicht aktiv. Starten Sie die Kommandozeile im Administrator- 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 354: Einschränkung Der Sicherheit Bei Vmware Vsphere Hypervisor (Esxi)

    Einschränkungen, Meldungen und Abhilfe 9.16 Einschränkungen bei Hyper-V 9.15 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. 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 355: Überwachung Überlauf

    Einschränkungen, Meldungen und Abhilfe 9.18 Abweichende E/A-Werte im STEP 7-Anwenderprogramm Wenn Sie die Virtualisierungsplattform Hyper-V verwenden, dann müssen Sie folgende Einstellungen vornehmen, um die Kommunikation über TCP/IP nutzen zu können. 1. Wählen Sie im Hyper-V Manager den Hyper-V Server. 2. Wählen Sie die VM und ihre Einstellungen über "Settings...". 3.
  • Seite 356: Mehrfache Simulationen Und Mögliche Kollision Der Ip-Adressen

    Einschränkungen, Meldungen und Abhilfe 9.22 Zeitverhalten von PLCSim Advanced in Verbindung mit Peripheriesystemen Nicht aktualisierte Werte Wenn der Wert über die API-Funktionen Write...() nicht aktualisiert wurde, liefern die API- Funktionen Read...() für den Ausgangsbereich den Wert aus STEP 7 zurück. 9.19 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.
  • Seite 357: Simulationsstart Von Simit Mit S7-Plcsim Advanced

    Einschränkungen, Meldungen und Abhilfe 9.25 ET 200SP-CPUs: Einsatz von BusAdaptern mit Glasfaser-Schnittstelle 9.23 Simulationsstart von SIMIT mit S7-PLCSIM Advanced Fehlermeldung bei Simulationsstart von SIMIT mit S7-PLCSIM Advanced Sie haben in SIMIT eine S7-PLCSIM Advanced-Kopplung projektiert. Beim Start der Simulation bricht SIMIT ab und die folgende Fehlermeldung wird zurückgeliefert: "-14 InstanceNotRunning"...
  • Seite 358: Installation Von Simatic Net

    Einschränkungen, Meldungen und Abhilfe 9.26 Installation von SIMATIC NET 9.26 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, falls Sie SIMATIC NET PC Software-Produkte auf Ihrem PC installiert haben: •...
  • Seite 359: 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