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.
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 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..................
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.
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).
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.
• 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.
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: •...
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...
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...
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-...
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.
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...
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. •...
"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.
• 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...
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.
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.
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.
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.
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.
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 •...
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.
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.
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.
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...
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.
• 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.
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".
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.
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".
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.
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...
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: •...
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.
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.
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 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);...
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...
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.
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.
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: •...
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.
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...
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.
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.
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.
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...
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.
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.
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...
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.
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.
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).
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 –...
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".
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").
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.
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.
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.
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: •...
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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...
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).
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.
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.
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) •...
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.
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 •...
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: •...
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.
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.
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"...
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;...
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.
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);...
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.
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...
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.
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.
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.
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.
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.
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();...
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.
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. •...
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.
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.
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();...
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.
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.
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.
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...
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.
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.
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...
"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.
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.
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.
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:...
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)
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...
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.
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.
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...
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.
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.
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.
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.
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.
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.
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).
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.
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.
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...
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.
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).
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.
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 •...
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).
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...
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: •...
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: •...
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...
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...
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: •...
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: •...
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: •...
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.
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 •...
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 •...
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 •...
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;...
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.
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.
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).
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.
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...
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) •...
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.
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.
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.
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".
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.
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).
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.
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.
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.
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"...
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: •...
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...