Herunterladen Diese Seite drucken

Werbung

Werbung

loading

Inhaltszusammenfassung für Siemens SIMATICS7-1500

  • Seite 2 ___________________ Vorwort ___________________ Wegweiser ___________________ Produktübersicht SIMATIC ___________________ Installieren S7-1500 S7-PLCSIM Advanced ___________________ Kommunikationswege ___________________ CPU simulieren Funktionshandbuch ___________________ Virtuelles Zeitverhalten ___________________ Anwenderschnittstellen (API) ___________________ Einschränkungen ___________________ Liste der Abkürzungen 12/2017 A5E37039506-AB...
  • Seite 3: Rechtliche Hinweise

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

    Das vorliegende Funktionshandbuch beschreibt die Simulations-Software SIMATIC S7-PLCSIM Advanced V2.0. Sie können damit Ihre SIMATIC STEP 7-Programme auf einem virtuellen Controller simulieren und testen. Aktualisierungen zum Funktionshandbuch erhalten Sie als Download im Internet (https://support.industry.siemens.com/cs/de/de/view/109739154). Ein Anwendungsbeispiel zu S7-PLCSIM Advanced finden Sie ebenfalls im Internet (https://support.industry.siemens.com/cs/ww/de/view/109739660). Gültigkeitsbereich Das Funktionshandbuch ist gültig für folgende Bestellvarianten:...
  • Seite 5 Industrial Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts. Der Kunde ist dafür verantwortlich, unbefugten Zugriff auf seine Anlagen, Systeme, Maschinen und Netzwerke zu verhindern.
  • Seite 6: Inhaltsverzeichnis

    Inhaltsverzeichnis Vorwort ..............................4 Wegweiser ............................27 Wegweiser Dokumentation ....................27 S7-PLCSIM Produkte ......................29 Produktübersicht ........................... 30 Was ist S7-PLCSIM Advanced? .................... 30 Kompatibilitat beim Upgrade ....................31 Sicherheit bei S7-PLCSIM Advanced ..................32 Simulations-Support ....................... 33 Unterstützte CPUs ......................... 34 Unterschiede zwischen simulierter und realer CPU ..............
  • Seite 7 Inhaltsverzeichnis Download ..........................64 Netzwerk-Adressen in der Simulation ..................66 5.4.1 Siemens PLCSIM Virtual Ethernet Adapter ................66 5.4.2 PLCSIM Advanced Instanzen ....................66 Peripherie-I/O simulieren ......................68 Kommunikation simulieren ...................... 69 5.6.1 Simulierbare Kommunikationsdienste ..................69 5.6.2 Kommunikation zwischen Instanzen ..................70 Projektdaten offline für die Simulation bereitstellen ..............
  • Seite 8 Inhaltsverzeichnis API ISimulationRuntimeManager ..................113 7.5.1 Schnittstellen - Informationen und Einstellungen ..............113 7.5.2 Simulation Runtime Instanzen ..................... 115 7.5.3 Remote-Verbindungen ......................123 7.5.4 Ereignisse ..........................128 7.5.4.1 Ereignisse OnConfigurationChanged .................. 128 7.5.4.2 Ereignisse OnRuntimeManagerLost ..................131 API IInstances ........................134 7.6.1 Schnittstellen - Informationen und Einstellungen ..............
  • Seite 9 Inhaltsverzeichnis API IRemoteRuntimeManager ....................292 7.7.1 Schnittstellen - Information und Einstellungen ..............292 7.7.2 Simulation Runtime Instanzen ....................295 7.7.2.1 Simulation Runtime Instanzen (Remote) ................295 7.7.3 Ereignisse ..........................302 7.7.3.1 Ereignisse OnConnectionLost ....................302 Datentypen ..........................306 7.8.1 DLL-Importfunktionen (Native C++) ..................307 7.8.1.1 ApiEntry_Initialize ........................
  • Seite 10 Inhaltsverzeichnis 7.8.5 Unions (Native C++) ......................335 7.8.5.1 UIP ............................335 7.8.5.2 UDataValue .......................... 336 7.8.6 Strukturen ..........................337 7.8.6.1 SDataValue .......................... 337 7.8.6.2 SDVBNI ..........................339 7.8.6.3 SDataValueByAddress ......................339 7.8.6.4 SDataValueByAddressWithCheck ..................340 7.8.6.5 SDataValueByName ......................340 7.8.6.6 SDataValueByNameWithCheck ...................
  • Seite 11 Inhaltsverzeichnis Einschränkungen bei Kommunikationsdiensten ..............380 Einschränkungen bei Anweisungen ..................381 Einschränkungen bei Motion Control ..................382 8.9.1 MCR und EMCR ........................382 8.9.2 Technologiemodule ....................... 383 8.9.3 OB 91 und OB 92 ........................383 8.10 Einschränkungen bei lokaler Kommunikation über Softbus ..........384 8.11 Einschränkung der Sicherheit bei VMware vSphere Hypervisor (ESXi) ......
  • Seite 12 Inhaltsverzeichnis Tabellen Tabelle 1- 1 Vergleich von S7-PLCSIM Produkten ..................29 Tabelle 2- 1 Kompatibilität von API- und Runtime-Versionen ................31 Tabelle 2- 2 Unterstützte CPUs ........................34 Tabelle 2- 3 Kompatibilität zum TIA Portal ....................... 35 Tabelle 3- 1 Mindestvoraussetzungen für Hardware ..................
  • Seite 13 Inhaltsverzeichnis Tabelle 7- 27 GetNameOfCommunicationInterface() - Native C++ ..............108 Tabelle 7- 28 GetNameOfDataType() - Native C++ ..................108 Tabelle 7- 29 GetNameOfErrorCode() - Native C++ ..................109 Tabelle 7- 30 GetNameOfLEDMode() - Native C++ ..................109 Tabelle 7- 31 GetNameOfLEDType() - Native C++ ..................
  • Seite 14 Inhaltsverzeichnis Tabelle 7- 63 GetPort() - Native C++ ....................... 124 Tabelle 7- 64 Port { get; } - .NET (C#) ......................124 Tabelle 7- 65 GetRemoteConnectionsCount() - Native C++ ................125 Tabelle 7- 66 GetRemoteConnectionInfoAt()- Native C++ ................125 Tabelle 7- 67 RemoteConnectionInfo { get;...
  • Seite 15 Inhaltsverzeichnis Tabelle 7- 99 CommunicationInterface { get; set; } - .NET (C#) ..............138 Tabelle 7- 100 GetInfo() - Native C++ ........................ 138 Tabelle 7- 101 Info { get; } - .NET (C#) ......................138 Tabelle 7- 102 UnregisterInstance() - Native C++ ..................... 139 Tabelle 7- 103 UnregisterInstance() - .NET (C#) ....................
  • Seite 16 Inhaltsverzeichnis Tabelle 7- 135 UpdateTagList() - .NET (C#) ...................... 161 Tabelle 7- 136 GetTagListStatus() - Native C++ ....................162 Tabelle 7- 137 GetTagListStatus() - .NET (C#)....................162 Tabelle 7- 138 GetTagInfoCount() - Native C++ ....................163 Tabelle 7- 139 GetTagInfos() - Native C++ ......................163 Tabelle 7- 140 TagInfos { get;...
  • Seite 17 Inhaltsverzeichnis Tabelle 7- 171 ReadInt32() - .NET (C#) ......................190 Tabelle 7- 172 ReadInt64() - Native C++ ......................191 Tabelle 7- 173 ReadInt64() - .NET (C#) ......................192 Tabelle 7- 174 ReadUInt8() - Native C++ ......................193 Tabelle 7- 175 ReadUInt8() - .NET (C#) ......................194 Tabelle 7- 176 ReadUInt16() - Native C++ ......................
  • Seite 18 Inhaltsverzeichnis Tabelle 7- 207 WriteUInt16() - .NET (C#) ......................226 Tabelle 7- 208 WriteUInt32() - Native C++ ......................227 Tabelle 7- 209 WriteUInt32() - .NET (C#) ......................228 Tabelle 7- 210 WriteUInt64() - Native C++ ......................229 Tabelle 7- 211 WriteUInt64() - .NET (C#) ......................230 Tabelle 7- 212 WriteFloat() - Native C++ ......................
  • Seite 19 Inhaltsverzeichnis Tabelle 7- 243 ReadRecordDone() - .NET (C#) ....................252 Tabelle 7- 244 WriteRecordDone() - Native C++ ....................252 Tabelle 7- 245 WriteRecordDone() - .NET (C#) ....................253 Tabelle 7- 246 AlarmNotification() - Native C++ ....................254 Tabelle 7- 247 AlarmNotification() - .NET (C#) ....................256 Tabelle 7- 248 ProcessEvent() - Native C++ .....................
  • Seite 20 Inhaltsverzeichnis Tabelle 7- 279 OnConfigurationChanging - .NET (C#) ..................275 Tabelle 7- 280 RegisterOnConfigurationChangingCallback() - Native C++ ............276 Tabelle 7- 281 RegisterOnConfigurationChangingEvent() - Native C++ ............276 Tabelle 7- 282 UnregisterOnConfigurationChangingCallback() - Native C++ ........... 276 Tabelle 7- 283 UnregisterOnConfigurationChangingEvent() - Native C++ ............277 Tabelle 7- 284 UnregisterOnConfigurationChangingEvent() - .NET (C#) ............
  • Seite 21 Inhaltsverzeichnis Tabelle 7- 315 UnregisterOnPullOrPlugEventDoneCallback() - Native C++ ............. 287 Tabelle 7- 316 OnStatusEventDone() - .NET (C#) .................... 288 Tabelle 7- 317 RegisterOnStatusEventDoneCallback() - Native C++ ............... 288 Tabelle 7- 318 UnregisterOnStatusEventDoneCallback() - Native C++ ............288 Tabelle 7- 319 OnProfileEventDone() - .NET (C#) .................... 289 Tabelle 7- 320 RegisterOnProfileEventDoneCallback() - Native C++ ...............
  • Seite 22 Inhaltsverzeichnis Tabelle 7- 351 RegisterOnConnectionLostEvent() - .NET (C#) ................. 304 Tabelle 7- 352 UnregisterOnConnectionLostCallback() - Native C++ ............... 304 Tabelle 7- 353 UnregisterOnConnectionLostEvent() - Native C++ ..............304 Tabelle 7- 354 UnregisterOnConnectionLostEvent() - .NET (C#) ..............304 Tabelle 7- 355 WaitForOnConnectionLostEvent() - Native C++ ................ 305 Tabelle 7- 356 WaitForOnConnectionLostEvent() - .NET (C#)................
  • Seite 23 Inhaltsverzeichnis Tabelle 7- 387 Delegate_SREC_ST_UINT32_UINT32 - .NET (C#) ..............332 Tabelle 7- 388 Delegate_SREC_ST_UINT32_ERSFET - .NET (C#) ..............333 Tabelle 7- 389 Definitionen - Native C++ ......................334 Tabelle 7- 390 Konstanten - .NET (C#) ......................335 Tabelle 7- 391 UIP - Native C++ ........................335 Tabelle 7- 392 UDataValue - Native C++ ......................
  • Seite 24 Inhaltsverzeichnis Tabelle 7- 423 SConfiguredProcessEvents - .NET (C#) ..................351 Tabelle 7- 424 SDiagExtChannelDescription - Native C++ ................352 Tabelle 7- 425 SDiagExtChannelDescription - .NET (C#) ................. 353 Tabelle 7- 426 Fehlertypen nach PROFINET-Standard ..................353 Tabelle 7- 427 Fehlertypen ExtChannelErrorType .................... 354 Tabelle 7- 428 ERuntimeErrorCode - Native C++ .....................
  • Seite 25 Inhaltsverzeichnis Tabelle 7- 459 EProcessEventType - .NET (C#) ....................372 Tabelle 7- 460 EDirection - Native C++ ......................372 Tabelle 7- 461 EDirection - .NET (C#) ....................... 372 Tabelle 7- 462 EDiagProperty - Native C++ ...................... 373 Tabelle 7- 463 EDiagProperty - .NET (C#) ......................373 Tabelle 7- 464 EDiagSeverity - Native C++ .......................
  • Seite 26 Inhaltsverzeichnis Bilder Bild 2-1 Simulierbarkeit aktivieren ......................33 Bild 4-1 Lokale Kommunikation über Softbus ................... 53 Bild 4-2 Lokale Kommunikation über TCP/IP .................... 53 Bild 4-3 Verteilte Kommunikation über Ethernet ..................54 Bild 4-4 Verteilte Kommunikation über Netzwerkkarten ................55 Bild 4-5 PLCSIM Virtual Switch aktivieren ....................
  • Seite 27: Wegweiser

    Änderungen und Ergänzungen zu den Handbüchern werden in Produktinformationen dokumentiert. Sie finden die Produktinformationen im Internet: ● S7-1500 (https://support.industry.siemens.com/cs/de/de/view/68052815) ● ET 200SP (https://support.industry.siemens.com/cs/de/de/view/73021864) 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 28: Anwendungsbeispiele

    Um die volle Funktionalität von "mySupport" zu nutzen, müssen Sie sich einmalig registrieren. Sie finden "mySupport" im Internet (http://support.industry.siemens.com/My/ww/de/documentation). "mySupport" - Dokumentation In "mySupport" haben Sie im Bereich Dokumentation die Möglichkeit ganze Handbücher oder nur Teile daraus zu Ihrem eigenen Handbuch zu kombinieren.
  • Seite 29: S7-Plcsim Produkte

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

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

    Produktübersicht 2.2 Kompatibilitat beim Upgrade Kompatibilitat beim Upgrade Kompatibilität von API- und Runtime-Versionen Die Installation von PLCSIM Advance V2.0 führt zu einem Upgrade einer vorhandenen früheren Version. Der Runtime Manager von PLCSIM Advanced V2.0 ist aber kompatibel mit Projekten, die mit der API-Version V1.0 erstellt wurden. Bereits erstellte Projekte können Sie daher weiter verwenden.
  • Seite 32: Sicherheit Bei S7-Plcsim Advanced

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

    Produktübersicht 2.4 Simulations-Support Simulations-Support Voraussetzung für Simulationen Hinweis Simulierbarkeit aktivieren Um ein STEP 7-Projekt mit der Simulation zu nutzen, müssen Sie in den Eigenschaften des Projekts im Register "Schutz" die Option "Beim Übersetzen von Bausteinen Simulierbarkeit unterstützen" aktivieren und mit OK bestätigen. Bild 2-1 Simulierbarkeit aktivieren Know-how-Schutz...
  • Seite 34: Unterstützte Cpus

    Produktübersicht 2.5 Unterstützte CPUs Unterstützte CPUs Unterstützte CPUs aus der S7-1500-Familie PLCSIM Advanced V2.0 unterstützt die Simulation folgender CPUs: Tabelle 2- 2 Unterstützte CPUs Version V1.8, V2.0, V2.1, V2.5 Standard-CPUs CPU 1511-1 PN CPU 1511F-1 PN CPU 1513-1 PN CPU 1513F-1 PN CPU 1515-2 PN CPU 1515F-2 PN CPU 1516-3 PN/DP...
  • Seite 35: Tabelle 2- 3 Kompatibilität Zum Tia Portal

    Produktübersicht 2.5 Unterstützte CPUs Kompatibilität zum TIA Portal Folgende Versionen von PLCSIM Advanced und dem TIA Portal sind kompatibel: Tabelle 2- 3 Kompatibilität zum TIA Portal PLCSIM Advanced Version TIA Portal Version Unterstützte CPU-Version V1.0 SP1 V14 (SP1), V15 V1.8, V2.0 V2.0 V14 (SP1), V15 V1.8, V2.0, V2.1, V2.5...
  • Seite 36: Unterschiede Zwischen Simulierter Und Realer Cpu

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

    Produktübersicht 2.6 Unterschiede zwischen simulierter und realer CPU 2.6.1 Einschränkungen bei allen unterstützten CPUs Bussysteme PLCSIM Advanced simuliert keine Bussysteme (PROFINET IO, PROFIBUS DP, Rückwandbus). Peripherie PLCSIM Advanced simuliert die reale CPU, nicht aber projektierte Peripheriemodule und die Onboard-Peripherie der Kompakt-CPUs. Teilprozessabbilder Teilprozessabbilder werden wie bei der realen CPU unterstützt.
  • Seite 38: Eingeschränkte Unterstützung

    Produktübersicht 2.6 Unterschiede zwischen simulierter und realer CPU Rezepte PLCSIM Advanced simuliert die Verwendung von Rezepten nicht. Kopierschutz PLCSIM Advanced simuliert nicht Kopierschutz. Eingeschränkte Unterstützung PLCSIM Advanced simuliert einige Funktionen in eingeschränktem Umfang. Eine Übersicht finden Sie im Kapitel Einschränkungen (Seite 375). S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 39: Motion Control Simulieren

    2, 3, 8) oder passiven (Modus 4, 5) Referenzpunktfahrtbefehl (MC_Home). Dabei wird die tatsächliche Position als Referenzpunkt festgelegt. Weitere Informationen Informationen zur "Einstellung in der Antriebs- und Geberanbindung", zur Istwertberechnung einer virtuellen Achse und zum Thema "Virtuelle Achse/Simulation" erhalten Sie im Funktionshandbuch S7-1500T Motion Control (https://support.industry.siemens.com/cs/ww/de/view/109481326). S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 40: Installieren

    Empfehlung: Erzeugen Sie maximal 4 lokale Instanzen auf Ihrem PC oder Ihrer Virtualisierungsplattform. Mindestvoraussetzungen für Hardware PLCSIM Advanced installieren Sie bevorzugt stand-alone auf einem Siemens Field PG oder PC, unabhängig von STEP 7. Alternativ können Sie PLCSIM Advanced auf dem Projektierungs-PC installieren, auf dem bereits STEP 7 installiert ist.
  • Seite 41 ● VMware vSphere Hypervisor (ESXi) 6.5 ● VMware Workstation 12.5.5 ● VMware Workstation Player 12.5.5 Informationen, die Sie beachten müssen, wenn Sie STEP 7 (TIA Portal) auf einer virtuellen Maschine installieren, finden Sie im Internet (https://support.industry.siemens.com/cs/de/de/view/78788417). S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 42: Lizenzen

    Installieren 3.1 Einleitung 3.1.2 Lizenzen Floating License PLCSIM Advanced wird mit einer Lizenz vom Typ Floating ausgeliefert. Diese kann lokal abgelegt und für ein Netzwerk freigegeben werden. Hinweis Gültigkeit Eine Lizenz ist gültig für bis zu drei Instanzen innerhalb einer PLCSIM Advanced Installation. PLCSIM Advanced V2.0 kann nicht mit einer V1.0 Lizenz genutzt werden.
  • Seite 43: Timeout Meldung

    Installieren 3.1 Einleitung Eine Meldung zeigt beim Starten der Instanzen die noch verbleibenden Tage an. Hinweis Remote-Zugriff Bei einem Remote-Zugriff muss die Meldung auf dem Rechner bestätigt werden, auf dem die Instanz gestartet wurde. Hinweis Ablauf der Trial License Wenn nach Ablauf der Trial License keine gültige Lizenz vorliegt, wird die Instanz nicht mehr gestartet.
  • Seite 44: Installationsprotokoll

    "%autinstlog%\Reports\Setup_report.cab". Wenn Sie Hilfe bei der Installation benötigen, dann senden Sie dem technischen Support von Siemens diese CAB-Datei. Der technische Support kann die Fehlerbehebung Ihrer Installation anhand der Informationen in der CAB-Datei durchführen. Für jede Installation wird eine eigene CAB-Datei mit einer Datums-ID gespeichert.
  • Seite 45: S7-Plcsim Advanced

    Installieren 3.2 S7-PLCSIM Advanced S7-PLCSIM Advanced Das S7-PLCSIM Advanced Paket enthält folgende Software: ● S7-PLCSIM Advanced ● Automation License Manager ● S7-PLCSIM V5.4 ● .NET Framework ● WinPcap Das Paket steht als Download und auf DVD zur Verfügung: ● SIMATIC S7-PLCSIM Advanced V2.0 Floating License Download ●...
  • Seite 46: S7-Plcsim Advanced Installieren

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

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

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

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

    S7-PLCSIM Advanced über die Windows-Systemsteuerung deinstallieren Gehen Sie wie folgt vor: 1. Wählen Sie in der Windows-Systemsteuerung die Option "Programme und Funktionen". 2. Klicken Sie mit der rechten Maustaste auf "Siemens S7-PLCSIM Advanced V2.0" und wählen Sie "Deinstallieren". 3. Befolgen Sie zur Deinstallation die Eingabeaufforderungen.
  • Seite 51: Kommunikationswege

    Kommunikationswege Lokale und verteilte Kommunikation Für die Kommunikation zwischen STEP 7 ab V15 und den Instanzen der PLCSIM Advanced Anwenderschnittstellen stehen folgende Wege offen: Kommunikationswege Lokal Lokal Verteilt Protokoll Softbus TCP/IP TCP/IP Kommunikationsschnittstelle in PLCSIM PLCSIM Virtual PLCSIM Virtual PLCSIM Advanced Ethernet Adapter Ethernet Adapter STEP 7 und Instanzen...
  • Seite 52 Kommunikationswege API-Funktionen zur Auswahl der Kommunikationsschnittstelle ● GetCommunicationInterface() (Seite 137) ● SetCommunicationInterface() (Seite 137) ● CommunicationInterface { get; set; } (Seite 138) Siehe auch Schnittstellen - Informationen und Einstellungen (Seite 134) S7-PLCSIM Advanced Control Panel (Seite 60) S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 53: Lokale Kommunikation

    Kommunikationswege 4.1 Lokale Kommunikation Lokale Kommunikation Die lokale Kommunikation kann über die Protokolle Softbus oder über TCP/IP erfolgen. Bei der lokalen Kommunikation befindet sich die PLCSIM Advanced Instanz auf dem selben PC oder auf der selben Virtualisierungsplattform (VMware) wie STEP 7 oder ein anderer Kommunikations-Partner.
  • Seite 54: Kommunikation Über Tcp/Ip

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

    Kommunikationswege 4.2 Kommunikation über TCP/IP Beispiel 2: Verteilte Kommunikation Im folgenden Beispiel befindet sich STEP 7 auf einem PC, die PLCSIM Advanced Instanzen in einer virtuellen Maschine auf dem selben PC. PC und virtuelle Maschine sind über die Netzwerkkarten verbunden. Empfehlung Verwenden Sie in den Einstellungen der VMware als Netzwerk Adapter Typ den Bridged Mode, um einen fehlerfreien Betrieb zu gewährleisten.
  • Seite 56: Verteilte Kommunikation Aktivieren

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

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

    CPU simulieren 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: ● STEP 7 ab V14 und S7-PLCSIM Advanced V2.0 sind auf dem selben PC installiert. ●...
  • Seite 59: Bedienoberfläche

    CPU simulieren 5.2 Bedienoberfläche Bedienoberfläche 5.2.1 S7-PLCSIM Advanced Symbol Nach der Installation von PLCSIM Advanced befindet sich folgendes Symbol auf dem Windows Desktop: Bild 5-1 PLCSIM Advanced Symbol Nach einem Doppelklick auf das Symbol wird das Symbol im Infobereich der Taskleiste angezeigt.
  • Seite 60: S7-Plcsim Advanced Control Panel

    CPU simulieren 5.2 Bedienoberfläche 5.2.2 S7-PLCSIM Advanced Control Panel Control Panel Das Control Panel ist optional und wird zum Betrieb von PLCSIM Advanced über die API nicht benötigt. Es steht in der Version 2.0 auf Englisch zur Verfügung. ① Online Zugang Schalter zur Auswahl der Kommunikationsschnittstelle ②...
  • Seite 61: Schalter Für Kommunikationsschnittstelle

    CPU simulieren 5.2 Bedienoberfläche ⑤ Die Eingabefelder werden sichtbar, wenn Sie die Kommunikations- IP-Adresse • schnittstelle auf "PLCSIM Virtual Ethernet Adapter" umschalten. Die Subnetzmaske • IP-Adresse wird automatisch eingetragen. Standard- Gateway • ⑥ CPU-Typ Hier selektieren Sie den zu simulierenden CPU-Typ. ⑦...
  • Seite 62 CPU simulieren 5.2 Bedienoberfläche Virtuelle Zeit Mit dem Schieberegler oder dem Mausrad wählen Sie den Skalierfaktor für die virtuelle Zeit. Der eingestellte Skalierfaktor gilt für die Instanzen, für die die virtuelle Zeit aktiviert ist. Ein Mausklick auf "Off" stellt die Voreinstellung (1) wieder her. Weitere Informationen siehe Virtuelles Zeitverhalten (Seite 73).
  • Seite 63: Meldungen Anzeigen

    CPU simulieren 5.2 Bedienoberfläche Virtual SIMATIC Memory Card In der Virtual SIMATIC Memory Card werden das Anwenderprogramm, die Hardware- Konfiguration und die remanenten Daten gespeichert. Über die Schaltfläche öffnen Sie ein Explorer-Fenster, in dem Sie den Pfad zur virtuellen Speicherkarte auswählen oder in dem der Pfad angezeigt wird.
  • Seite 64: Download

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

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

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

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

    CPU simulieren 5.6 Kommunikation simulieren Kommunikation simulieren 5.6.1 Simulierbare Kommunikationsdienste PLCSIM Advanced V2.0 unterstützt folgende Kommunikationsmöglichkeiten: Tabelle 5- 2 Unterstützte Kommunikationsmöglichkeiten Möglichkeiten der Kommunikation Funktionalität / Anweisungen PG-Kommunikation Zur Inbetriebnahme, Test, Diagnose Offene Kommunikation über TCP/IP TSEND_C / TRCV_C • TSEND / TRCV •...
  • Seite 70: Kommunikation Zwischen Instanzen

    CPU simulieren 5.6 Kommunikation simulieren 5.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 71: Projektdaten Offline Für Die Simulation Bereitstellen

    CPU simulieren 5.7 Projektdaten offline für die Simulation bereitstellen Projektdaten offline für die Simulation bereitstellen Simulationen unabhängig von STEP 7 Um unabhängig von STEP 7 Simulationen durchzuführen, können Sie das Anwender- programm und die HW-Konfiguration in STEP 7 in einem Verzeichnis speichern. Projektdaten offline bereitstellen 1.
  • Seite 72 CPU simulieren 5.7 Projektdaten offline für die Simulation bereitstellen Projektdaten für die Simulation bereitstellen 1. Erstellen Sie auf dem PC, auf dem PLCSIM Advanced installiert ist, in dem Verzeichnis, in dem die Instanz ihre Daten speichert, das Verzeichnis \SIMATIC_MC. 2. Verschieben Sie den Ordner\SIMATIC.S7S in das erstellte Verzeichnis. →...
  • Seite 73: Virtuelles Zeitverhalten

    Virtuelles Zeitverhalten Der virtuelle Controller nutzt intern für die Simulation zwei Arten von Uhren: Eine virtuelle und eine reale Uhr. Basis für das Anwenderprogramm ist immer die virtuelle Uhr. Sie wird von Komponenten genutzt, die für den Ablauf des STEP 7-Anwenderprogramms relevant sind, wie zyklische OBs, Zykluszeitüberwachung, minimale Zykluszeit, virtuelle Systemzeit und Zeitberechnungen.
  • Seite 74 Virtuelles Zeitverhalten Skalierfaktor Mit einem Skalierfaktor können Sie für Simulationen die virtuelle Uhr des virtuellen Controllers beschleunigen oder verlangsamen. ● Die Voreinstellung ist 1, d. h. der Verlauf der virtuellen Zeit entspricht dem Verlauf der realen Zeit. ● Schnelllauf: Ein Skalierfaktor größer 1 beschleunigt die virtuelle Uhr. Beispiel: Skalierfaktor 2,0 →...
  • Seite 75: Simulation Beschleunigen Und Verlangsamen

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

    Virtuelles Zeitverhalten 6.2 Simulation anhalten Simulation anhalten Freeze-Zustand des virtuellen Controllers Um eine Simulation anzuhalten und um Simulations-Partner zu synchronisieren, kann ein virtueller Controller über die API in einen Freeze-Zustand versetzt werden. Wenn der virtuelle Controller einen Synchronisationspunkt erreicht hat, sendet er das Ereignis an die API-Clients.
  • Seite 77: Freeze-Zustand Auslösen

    Virtuelles Zeitverhalten 6.2 Simulation anhalten Synchronisationspunkte Ein Synchronisationspunkt liegt immer dann vor, bevor Eingänge eingelesen werden, z. B. am Zykluskontrollpunkt oder am Anfang eines zyklischen OBs. Bild 6-2 Übersicht zu den Synchronisationspunkten Freeze-Zustand auslösen Um den Freeze-Zustand auszulösen, stehen für den virtuellen Controller folgende Betriebsarten zur Verfügung: ●...
  • Seite 78: Simulations-Partner Synchronisieren

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

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

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

    Anwenderschnittstellen (API) Einführung Komponenten der Simulation Runtime Für den Umgang mit der Simulation Runtime der PLCSIM Advanced sind folgende Komponenten relevant: ● Runtime – Siemens.Simatic.Simulation.Runtime.Manager.exe – Siemens.Simatic.Simulation.Runtime.Instance.exe ● Bibliotheken – Siemens.Simatic.Simulation.Runtime.Api.x86.dll – Siemens.Simatic.Simulation.Runtime.Api.x64.dll – SimulationRuntimeApi.h ● Dokumentation der Schnittstellen mit Beispielen in Native C++ und .NET (Managed...
  • Seite 83: Externe Applikationen Und Simulation Runtime

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

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

    Anwenderschnittstellen (API) 7.1 Einführung 7.1.2 Anwenderschnittstellen (API) Die Anwenderschnittstellen der Simulation Runtime enthalten die Funktionen, mit denen Sie z. B. Instanzen erzeugen, den Betriebszustand eines virtuellen Controllers ändern und I/O- Daten austauschen. Die Simulation Runtime enthält folgende Anwenderschnittstellen: ● ISimulationRuntimeManager ●...
  • Seite 86: Übersicht Anwenderschnittstellen Für Native C

    Anwenderschnittstellen (API) 7.1 Einführung 7.1.3 Übersicht Anwenderschnittstellen für Native C++ API initialisieren und herunterfahren Tabelle 7- 1 Übersicht API initialisieren und herunterfahren - Native C++ Aktionen Funktionen API initialisieren InitializeApi (Seite 97) RuntimeApiEntry_Initialize (Seite 99) DestroyInterface API herunterfahren (Seite 102) RuntimeApiEntry DestroyInterface FreeApi API-Bibliothek abmelden (Sei-...
  • Seite 87: Tabelle 7- 3 Übersicht Api Isimulationruntimemanager Funktionen - Native C

    Anwenderschnittstellen (API) 7.1 Einführung API ISimulationRuntimeManager Tabelle 7- 3 Übersicht API ISimulationRuntimeManager Funktionen - Native C++ Einstellungen und Informatio- Funktionen GetVersion() Schnittstelle (Seite 113) IsInitialized() IsRuntimeManagerAvailable() Shutdown() GetRegisteredInstancesCount() Simulation Runtime Instanzen GetRegisteredInstanceInfoAt() (Seite 115) RegisterInstance() RegisterCustomInstance() CreateInterface() OpenPort() Remote-Verbindungen ClosePort() (Seite 123) GetPort() GetRemoteConnectionsCount()
  • Seite 88: Tabelle 7- 5 Übersicht Iinstances Funktionen - Native C

    Anwenderschnittstellen (API) 7.1 Einführung API IInstances Tabelle 7- 5 Übersicht IInstances Funktionen - Native C++ Einstellungen und Informatio- Funktionen GetID() Schnittstelle (Seite 134) GetName() GetCPUType() SetCPUType() GetCommunicationInterface() SetCommunicationInterface() GetInfo() UnregisterInstance() GetControllerName() Controller (Seite 140) GetControllerShortDesignation() GetControllerIPCount() GetControllerIP() GetControllerIPSuite4() SetIPSuite() GetStoragePath() SetStoragePath() ArchiveStorage() RetrieveStorage()
  • Seite 89: Tabelle 7- 6 Übersicht Iinstances Ereignisse - Native C

    Anwenderschnittstellen (API) 7.1 Einführung Einstellungen und Informatio- Funktionen GetOperatingMode() Zykluskontrolle (Seite 243) SetOperatingMode() SetSendSyncEventInDefaultModeEnabled() IsSendSyncEventInDefaultModeEnabled GetOverwrittenMinimalCycleTime_ns() SetOverwrittenMinimalCycleTime_ns() RunToNextSyncPoint() StartProcessing() Azyklische Dienste (Seite 249) Tabelle 7- 6 Übersicht IInstances Ereignisse - Native C++ Ereignisse Funktionen RegisterOnOperatingStateChangedCallback() OnOperatingStateChanged UnregisterOnOperatingStateChangedCallback() (Seite 269) RegisterOnOperatingStateChangedEvent() UnregisterOnOperatingStateChangedEvent() WaitForOnOperatingStateChangedEvent() RegisterOnSyncPointReachedCallback()
  • Seite 90: Übersicht Anwenderschnittstellen Für Managed Code

    Anwenderschnittstellen (API) 7.1 Einführung API IRemoteRuntimeManager Tabelle 7- 7 Übersicht IRemoteRuntimeManager Funktionen - Native C++ Einstellungen und Informatio- Funktionen GetVersion() Schnittstelle (Seite 292) GetIP() GetPort() GetRemoteComputerName() Disconnect() GetRegisteredInstancesCount() Simulation Runtime Instanzen GetRegisteredInstanceInfoAt() (Seite 295) RegisterInstance() RegisterCustomInstance() CreateInterface() Tabelle 7- 8 Übersicht IRemoteRuntimeManager Ereignisse - Native C++ Ereignisse Funktionen RegisterOnConnectionLostCallback()
  • Seite 91: Tabelle 7- 10 Übersicht Isimulationruntimemanager Funktionen - .Net (C#)

    Anwenderschnittstellen (API) 7.1 Einführung API ISimulationRuntimeManager Tabelle 7- 10 Übersicht ISimulationRuntimeManager Funktionen - .NET (C#) Einstellungen und Informatio- Funktionen Version { get; } Schnittstelle (Seite 113) IsInitialized { get; } IsRuntimeManagerAvailable { get; } Shutdown() RegisterInstanceInfo { get; } Simulation Runtime Instanzen RegisterInstance() (Seite 115) RegisterCustomInstance()
  • Seite 92 Anwenderschnittstellen (API) 7.1 Einführung Einstellungen und Informatio- Funktionen UpdateTagList() Variablentabelle (Seite 159) GetTagListStatus() TagInfos { get; } CreateConfigurationFile() InputArea | MarkerArea | OutputArea { get; } I/O-Zugriff über Adresse - AreaSize { get; } Lesen (Seite 165) ReadBit() ReadByte() ReadBytes() ReadSignals() WriteBit() I/O-Zugriff über Adresse -...
  • Seite 93: Tabelle 7- 13 Übersicht Iinstances Ereignisse - .Net (C#)

    Anwenderschnittstellen (API) 7.1 Einführung Tabelle 7- 13 Übersicht IInstances Ereignisse - .NET (C#) Ereignisse Funktionen OnOperatingStateChanged OnOperatingStateChanged RegisterOnOperatingStateChangedEvent() (Seite 269) UnregisterOnOperatingStateChangedEvent() WaitForOnOperatingStateChangedEvent() OnSyncPointReached OnSyncPointReached RegisterOnSyncPointReachedEvent() (Seite 273) UnregisterOnSyncPointReachedEvent() WaitForOnSyncPointReachedEvent() OnConfigurationChanging OnConfigurationChanging RegisterOnConfigurationChangingEvent() (Seite 275) UnregisterOnConfigurationChangingEvent() WaitForOnConfigurationChangingEvent() OnConfigurationChanged OnConfigurationChanged RegisterOnConfigurationChangedEvent() (Seite 278) UnregisterOnConfigurationChangedEvent() WaitForOnConfigurationChangedEvent() OnLedChanged...
  • Seite 94: Übersicht Datentypen Für Native C

    Anwenderschnittstellen (API) 7.1 Einführung 7.1.5 Übersicht Datentypen für Native C++ Die folgende Tabelle zeigt, welche Datentypen für die Simulation im Runtime Manager vorhanden sind. Tabelle 7- 16 Übersicht Datentypen - Native C++ Datentyp ApiEntry_Initialize DLL-Importfunktionen ApiEntry_DestroyInterface (Seite 307) EventCallback_VOID Event Callback- Funktio- EventCallback_II_SREC_ST nen (Seite 308) EventCallback_II_SREC_ST_SROS_SROS...
  • Seite 95: Übersicht Datentypen Für Managed Code

    Anwenderschnittstellen (API) 7.1 Einführung Datentyp ERuntimeErrorCode Aufzählungen (Seite 355) EArea EOperatingState EOperatingMode ECPUType ECommunicationInterface ELEDType ELEDMode EPrimitiveDataTypes EDataType ETagListDetails ERuntimeConfigChanged EInstanceConfigChanged Neu in V2.0: EPullOrPlugEventType EProcessEventType EDirection EDiagProperty EDiagSeverity ERackOrStationFaultType 7.1.6 Übersicht Datentypen für Managed Code Die folgende Tabelle zeigt, welche Datentypen für die Simulation im Runtime Manager vorhanden sind.
  • Seite 96 Anwenderschnittstellen (API) 7.1 Einführung Datentyp Definitionen und Konstanten (Seite 334) SDataValue Strukturen (Seite 337) SDVBNI SDataValueByAddress SDataValueByName SConnectionInfo SInstanceInfo SDimension STagInfo SIPSuite4 SOnSyncPointReachedResult Neu in V2.0: SDataValueByAddressWithCheck SDataValueByNameWithCheck SDataRecordInfo SDataRecord SConfiguredProcessEvents SDiagExtChannelDescription ERuntimeErrorCode Aufzählungen (Seite 355) EArea EOperatingState EOperatingMode ECPUType ECommunicationInterface ELEDType ELEDMode...
  • Seite 97: Api Initialisieren

    API von PLCSIM Advanced V1.0. Beim Installieren von PLCSIM Advanced V2.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 Den Installationspfad von PLCSIM Advanced entnehmen Sie der Registry: ● Schlüssel: "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Siemens\Shared Tools\PLCSIMADV_SimRT"...
  • Seite 98: Initializeapi Der Reihe Nach In Folgenden

    Anwenderschnittstellen (API) 7.2 API initialisieren Um die DLL zu laden, sucht die Funktion der Reihe nach in folgenden InitializeApi Verzeichnissen: ● Im Verzeichnis, zu dem der Parameter der Funktion führt in_SimulationRuntimeApiDllPath ● Im Verzeichnis, in dem auch Ihre Anwendung liegt, die diese Funktion aufruft ●...
  • Seite 99: Runtimeapientry_Initialize

    Anwenderschnittstellen (API) 7.2 API initialisieren // Include The Headerfile Of The API Beispiel C++ #include "SimulationRuntimeApi.h" // Prepare The Variables ERuntimeErrorCode result = SREC_INVALID_ERROR_CODE; ISimulationRuntimeManager* api = NULL; // Initialize The API And Get The RuntimeManager Interface InitializeApi result = (&api);...
  • Seite 100 Anwenderschnittstellen (API) 7.2 API initialisieren Rückgabewerte Runtime Fehlercode Bedingung SREC_OK Die Funktion ist erfolgreich. SREC_WRONG_ARGUMENT Der Zeiger auf die Runtime Manager Schnitt- stelle ist ungleich NULL SREC_WRONG_VERSION Die angeforderte Version der Schnittstelle • ist nicht kompatibel mit der Version, mit der die API kompiliert wurde.
  • Seite 101: Net (C#)

    Beschreibung Der Eintrittspunkt zur API ist die statische Klasse iemens.Simatic.Simulation.Runtime.SimulationRuntimeManager Die API wird initialisiert, wenn eine Funktion dieser Klasse erstmalig genutzt wird. Tabelle 7- 20 Initialize - .NET (C#) Siemens.Simatic.Simulation.Runtime.SimulationInitializationException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Zum Runtime Manager kann keine Verbindung Code.ConnectionError...
  • Seite 102: Api Herunterfahren

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

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

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

    Anwenderschnittstellen (API) 7.3 API herunterfahren 7.3.1.3 FreeApi() Beschreibung Die Funktion entlädt die Bibliothek der Runtime API. FreeApi() Diese Funktion kann nur aufgerufen werden nach dem erfolgreichen Aufruf der Funktion Wenn die Funktion nicht aufgerufen wurde, muss die InitializeApi. InitializeApi Bibliothek über die Win32 API-Funktion entladen werden.
  • Seite 106: Shutdownandfreeapi()

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

    Anwenderschnittstellen (API) 7.3 API herunterfahren 7.3.2 .NET (C#) 7.3.2.1 API herunterfahren Die .NET-Komponenten der API können Sie für die IInstance und IRemoteRuntimeManager Schnittstellen über den Aufruf der Funktion Dispose (Seite 134) beenden. Zudem können diese Schnittstellen auch automatisch durch den .NET Garbage Collector bereinigt werden.
  • Seite 108: Globale Funktionen (Native C++)

    Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) Globale Funktionen (Native C++) Die globalen Funktionen liefern den Namen des Aufzählungseintrags zurück. GetNameOf... GetNameOfAreaSection() Tabelle 7- 25 GetNameOfAreaSection() - Native C++ const WCHAR* GetNameOfAreaSection( Syntax EArea in_AreaSection Parameter • EArea in_AreaSection: Aufzählungseintrag Rückgabewerte Name des Aufzählungseintrags const WCHAR*:...
  • Seite 109 Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfErrorCode() Tabelle 7- 29 GetNameOfErrorCode() - Native C++ const WCHAR* GetNameOfErrorCode( Syntax ERuntimeErrorCode in_ErrorCode Parameter • ERuntimeErrorCode in_ErrorCode: Aufzählungseintrag Rückgabewerte Name des Aufzählungseintrags const WCHAR*: GetNameOfLEDMode() Tabelle 7- 30 GetNameOfLEDMode() - Native C++ const WCHAR* GetNameOfLEDMode( Syntax ELEDMode in_LEDMode...
  • Seite 110 Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfErrorCode() Tabelle 7- 33 GetNameOfErrorCode() - Native C++ const WCHAR* GetNameOfErrorCode( Syntax ERuntimeErrorCode in_ErrorCode Parameter • ERuntimeErrorCode in_ErrorCode: Aufzählungseintrag Rückgabewerte Name des Aufzählungseintrags const WCHAR*: GetNameOfOperatingState Tabelle 7- 34 GetNameOfOperatingState() - Native C++ const WCHAR* GetNameOfOperatingState( Syntax EOperatingState in_OperatingState...
  • Seite 111 Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfRuntimeConfigChanged() Tabelle 7- 37 GetNameOfRuntimeConfigChanged() - Native C++ const WCHAR* GetNameOfRuntimeConfigChanged( Syntax ERuntimeConfigChanged in_RuntimeConfigChanged); Parameter • ERuntimeConfigChanged in_RuntimeConfigChanged: Aufzählungseintrag Rückgabewerte Name des Aufzählungseintrags const WCHAR*: GetNameOfInstanceConfigChanged() Tabelle 7- 38 GetNameOfInstanceConfigChanged() - Native C++ const WCHAR* GetNameOfInstanceConfigChanged( Syntax EInstanceConfigChanged in_InstanceConfigChanged);...
  • Seite 112: Siehe Auch

    Anwenderschnittstellen (API) 7.4 Globale Funktionen (Native C++) GetNameOfRackOrStationFaultType() Tabelle 7- 41 GetNameOfRackOrStationFaultType() - Native C++ const WCHAR* GetNameOfRackOrStationFaultType( Syntax ERackOrStationFaultType in_RackOrStationFaultType Parameter • ERackOrStationFaultType in_RackOrStationFaultType: Aufzählungseintrag Rückgabewerte Name des Aufzählungseintrags const WCHAR*: Siehe auch EPrimitiveDataType (Seite 363) EDataType (Seite 366) Aufzählungen (Seite 355) S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 113: Api Isimulationruntimemanager

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager API ISimulationRuntimeManager 7.5.1 Schnittstellen - Informationen und Einstellungen GetVersion() / Version { get; } Liefert die Version des Runtime Managers zurück. Wenn die Funktion fehlschlägt, wird die Version 0.0 zurückgegeben. Tabelle 7- 42 GetVersion() - Native C++ UINT32 GetVersion();...
  • Seite 114 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager IsRuntimeManagerAvailable() / IsRuntimeManagerAvailable { get; } Die Funktion gibt zurück, wenn die Verbindung zum Runtime Manager unterbrochen false ist. Dies passiert nur, wenn der Prozess des Runtime Managers geschlossen ist. Abonnieren Sie das Ereignis , um zu erfahren, ob die Verbindung OnRuntimeManagerLost() unterbrochen ist.
  • Seite 115: Simulation Runtime Instanzen

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager 7.5.2 Simulation Runtime Instanzen GetRegisteredInstancesCount() Liefert die Anzahl der Instanzen zurück, die im Runtime Manager registriert sind. Wenn die Funktion fehlschlägt, ist der Rückgabewert 0. Tabelle 7- 50 GetRegisteredInstancesCount() - Native C++ UINT32 GetRegisteredInstancesCount(); Syntax Parameter Keine Rückgabewerte...
  • Seite 116 Tabelle 7- 52 RegisteredInstanceInfo { get; } - .NET (C#) Syntax SInstanceInfo[] RegisteredInstanceInfo { get; Parameter Keine Rückgabewerte Ein Array mit Informationen zu allen registrierten Instanzen. SInstanceInfo[]: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der. RegisterInstance() Registriert im Runtime Manager eine neue Instanz eines virtuellen Controllers.
  • Seite 117 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Rückgabewerte Runtime Fehlercode Bedingung SREC_OK Die Funktion ist erfolgreich. SREC_TIMEOUT Die Funktion kehrt nicht rechtzeitig wie- der. SREC_WRONG_ARGUMENT Der Name oder der IInstance-Zeiger ist ungültig. SREC_LIMIT_REACHED Es sind bereits 16 Instanzen im Runtime Manager registriert. SREC_ALREADY_EXISTS Eine Instanz mit diesem Namen existiert bereits.
  • Seite 118 Name eindeutig ist. Die Länge des Namens muss kürzer sein als . Siehe Datentypen (Seite 334). DINSTANCE_NAME_LENGTH Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten einen Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 119 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RegisterCustomInstance() Registriert eine neue Instanz eines virtuellen Controllers im Runtime Manager. Erzeugt und liefert eine Schnittstelle dieser Instanz zurück. Tabelle 7- 55 RegisterCustomInstance() - Native C++ ERuntimeErrorCode RegisterCustomInstance( Syntax WCHAR* in_VplcDll, IInstance** out_InstanceInterface ERuntimeErrorCode RegisterCustomInstance( WCHAR* in_VplcDll, WCHAR* in_InstanceName, IInstance** out_InstanceInterface...
  • Seite 120 Name eindeutig ist. Die Länge des Namens muss kürzer sein als . Siehe Datentypen (Seite 334). DINSTANCE_NAME_LENGTH Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 121 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager CreateInterface() Erzeugt und liefert eine Schnittstelle einer bereits registrierten Instanz eines virtuellen Controllers zurück. Die Instanz kann über die Anwendung registriert worden sein oder über eine andere Anwendung die die Simulation Runtime API nutzt. Tabelle 7- 57 CreateInterface() - Native C++ ERuntimeErrorCode CreateInterface( Syntax WCHAR* in_InstanceName,...
  • Seite 122 Der Name der registrierten Instanz, von der Sie die Schnittstelle empfangen möchten. Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 123: Remote-Verbindungen

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

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RemoteConnect() Erstellt eine neue Verbindung zu einem Remote Runtime Manager oder nutzt eine bereits existierende Verbindung, um eine IRemoteRuntimeManager Schnittstelle zu erstellen. Tabelle 7- 68 RemoteConnect() - Native C++ ERuntimeErrorCode RemoteConnect( Syntax UINT8 in_IP3, UINT8 in_IP2, UINT8 in_IP1, UINT8 in_IP0, UINT16 in_Port,...
  • Seite 127 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Hinweis Native C++ Wenn Sie die Schnittstelle nicht mehr benötigen, dann löschen Sie die Schnittstelle. Siehe DestroyInterface() (Seite 103). Tabelle 7- 69 RemoteConnect() - .NET (C#) IRemoteRuntimeManager RemoteConnect( Syntax string in_ConnectionString IRemoteRuntimeManager RemoteConnect( SIP in_IP, UInt16 in_Port IRemoteRuntimeManager RemoteConnect( Byte in_IP3,...
  • Seite 128: Ereignisse

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Verbindung zum Remote Runtime Mana- Code.ConnectionError ger kann nicht hergestellt werden. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der. ERuntimeErrorCode.WrongArgument IP oder Port ist ungültig. ERuntimeErrorCode.WrongVersion Die Version der API ist nicht kompatibel mit der Runtime.
  • Seite 129 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RegisterOnConfigurationChangedCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Die Registrierung einer neuen Callback-Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 72 RegisterOnConfigurationChangedCallback() - Native C++ void RegisterOnConfigurationChangedCallback( Syntax EventCallback_SRCC_UINT32_UINT32_INT32 in_CallbackFunction...
  • Seite 130 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager UnregisterOnConfigurationChangedCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 75 UnregisterOnConfigurationChangedCallback() - Native C++ void UnregisterOnConfigurationChangedCallback(); Syntax Parameter Keine Rückgabewerte Keine UnregisterOnConfigurationChangedEvent() Meldet das Event-Objekt ab. Tabelle 7- 76 UnregisterOnConfigurationChangedEvent() - Native C++ void UnregisterOnConfigurationChangedEvent();...
  • Seite 131: Ereignisse Onruntimemanagerlost

    Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Tabelle 7- 79 WaitForOnConfigurationChangedEvent - .NET (C#) bool WaitForOnConfigurationChangedEvent(); Syntax bool WaitForOnConfigurationChangedEvent( UInt32 in_Time_ms Parameter • None: Das Zeitlimit ist auf gesetzt. INFINITE • UInt32 in_Time_ms: Wert für das Zeitlimit in Millisekunden. Rückgabewerte Wenn das Event-Objekt in den signalisierten Zustand gesetzt wurde. •...
  • Seite 132 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager RegisterOnRuntimeManagerLostEvent() Wenn das Ereignis eintritt, wird das registrierte Event-Objekt in den signalisierten Zustand gesetzt. Es kann nur ein Event-Objekt für das Ereignis registriert sein. Die Registrierung eines neuen Event-Objekts führt zum Löschen des vorhergehenden. Tabelle 7- 82 RegisterOnRuntimeManagerLostEvent() - Native C++ void RegisterOnRuntimeManagerLostEvent();...
  • Seite 133 Anwenderschnittstellen (API) 7.5 API ISimulationRuntimeManager Tabelle 7- 86 UnregisterOnRuntimeManagerLostEvent() - .NET (C#) void UnregisterOnRuntimeManagerLostEvent(); Syntax Parameter Keine Rückgabewerte Keine WaitForOnRuntimeManagerLostEvent() Die Funktion wird das Programm solange blockieren, bis das registrierte Event-Objekt in den signalisierten Zustand gesetzt ist oder bis das Timeout-Intervall überschritten wird. Tabelle 7- 87 WaitForOnRuntimeManagerLostEvent() - Native C++ bool WaitForOnRuntimeManagerLostEvent();...
  • Seite 134: Api Iinstances

    Anwenderschnittstellen (API) 7.6 API IInstances API IInstances 7.6.1 Schnittstellen - Informationen und Einstellungen Dispose() Löscht die managed Schnittstelle und entlädt die nativen Komponenten der Anwenderschnittstellen. Tabelle 7- 89 Dispose() - .NET (C#) void Dispose() Syntax Parameter Keine Rückgabewerte Keine GetID() / ID { get; } Liefert die Instanz-ID zurück.
  • Seite 135 (name, DINSTANCE_NAME_MAX_LENGTH); Tabelle 7- 93 Name { get; } - .NET (C#) string Name { get; } Syntax Parameter Keine Rückgabewerte Name der Instanz. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. S7-PLCSIM Advanced...
  • Seite 136 Anwenderschnittstellen (API) 7.6 API IInstances GetCPUType() Liefert den CPU-Typ des virtuellen Controllers zurück. Tabelle 7- 94 GetCPUType() - Native C++ ECPUType GetCPUType(); Syntax Parameter Keine Rückgabewerte Ein Aufzählungselement, das den CPU-Typ definiert. Siehe ECPUType (Seite 360). SetCPUType() Setzt den CPU-Typ des virtuellen Controllers. Ein Wechsel des CPU-Typs erfolgt nur bei einem Neustart des Controllers.
  • Seite 137 Anwenderschnittstellen (API) 7.6 API IInstances PowerOn wird verhindert, wenn eine Kommunikationsschnittstelle ausgewählt ist, die nicht von den gestarteten Instanzen genutzt wird. Tabelle 7- 97 GetCommunicationInterface() - Native C++ ECommunicationInterface GetCommunicationInterface(); Syntax Parameter Keine Rückgabewerte • SRCI_NONE Kann nicht ausgewählt werden. Wird zurückgegeben, wenn die Instanz- Schnittstelle nicht mehr gültig ist.
  • Seite 138 Anwenderschnittstellen (API) 7.6 API IInstances CommunicationInterface { get; set; } Setzt die Kommunikationsschnittstelle des virtuellen Controllers oder liefert sie zurück: Lokale Kommunikation (Softbus) oder TCPIP. Ein Wechsel der Kommunikationsschnittstelle erfolgt nur beim Neustart des Controllers. Alle Instanzen, die gestartet werden, müssen die selbe Kommunikationsschnittstelle nutzen.
  • Seite 139 Die Funktion kehrt nicht rechtzeitig wie- der. Tabelle 7- 103 UnregisterInstance() - .NET (C#) void UnregisterInstance(); Syntax Parameter Keine Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 140: Controller - Informationen Und Einstellungen

    Tabelle 7- 105 ControllerName { get; } - .NET (C#) string ControllerName { get; } Syntax Parameter Keine string: Rückgabewerte Der heruntergeladene Name des virtuellen Controllers. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 141 Tabelle 7- 107 ControllerShortDesignation { get; } - .NET (C#) string ControllerShortDesignation { get; } Syntax Parameter Keine string: Rückgabewerte Die heruntergeladene Kurzbezeichnung des virtuellen Controllers. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 142 Anwenderschnittstellen (API) 7.6 API IInstances GetControllerIP() / ControllerIP { get; } Liefert eine konfigurierte IP-Adresse der Instanz zurück. Tabelle 7- 109 GetControllerIP() - Native C++ UIP GetControllerIP(); Syntax UIP GetControllerIP( UINT32 in_Index Parameter • WCHAR in_Index: Der Index der IP-Adresse, die Sie erhalten möchten. Der Index muss kleiner sein als der Wert, den Sie von erhalten.
  • Seite 143 Anwenderschnittstellen (API) 7.6 API IInstances SetIPSuite() Setzt die IP-Suite der Netzwerk-Schnittstelle eines virtuellen Controllers. Tabelle 7- 113 SetIPSuite() - Native C++ ERuntimeErrorCode SetIPSuite( Syntax UINT32 in_InterfaceID, SIPSuite4 in_IPSuite, bool in_IsRemanent Parameter • UINT32 in_InterfaceID: Die ID der Netzwerk-Schnittstelle. • SIPSuite4 in_IPSuite: Die IP-Suite, die der Netzwerk-Schnittstelle zugewiesen werden soll.
  • Seite 144 , dann wird die IP-Suite nach dem Neustart des virtuellen Control- true lers gespeichert. Wenn die Kommunikationsschnittstelle "Softbus" ist, dann wird dieses Flag ig- noriert. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 145 Setzen Sie den Pfad, bevor Sie die Instanz starten. Eine Änderung des Pfads wirkt sich erst bei einem Neustart des Controllers aus. Wenn kein Pfad gesetzt ist, gilt die Voreinstellung: <Eigene Dokumente>\Siemens\Simatic\Simulation\Runtime\Persistence\<Instance Name>. Tabelle 7- 116 SetStoragePath() - Native C++...
  • Seite 146 Setzen Sie den Pfad, bevor Sie die Instanz starten. Eine Änderung des Pfads wirkt sich erst bei einem Neustart des Controllers aus. Wenn kein Pfad gesetzt ist, gilt die Voreinstellung: <Eigene Dokumente>\Siemens\Simatic\Simulation\Runtime\Persistence\<Instance Name>. Tabelle 7- 117 StoragePath { get; set; } - .NET (C#) string StoragePath { get;...
  • Seite 147 Anwenderschnittstellen (API) 7.6 API IInstances ArchiveStorage() Das Anwenderprogramm, die Hardware-Konfiguration und die remanenten Daten werden in einer Datei gespeichert, der Virtual SIMATIC Memory Card. speichert ArchiveStorage() diese Datei als ZIP-Datei. Die Instanz des virtuellen Controllers muss dazu im Betriebszustand OFF sein. Tabelle 7- 118 ArchiveStorage() - Native C++ ERuntimeErrorCode ArchiveStorage(...
  • Seite 148 Parameter • string in_FullFileName: Der vollständige Pfad zur ZIP-Datei. Der Pfad bezieht sich auf Verzeichnisse des Computers, auf dem die API aufgerufen wird. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 149 Anwenderschnittstellen (API) 7.6 API IInstances RetrieveStorage() stellt aus der archivierten ZIP-Datei wieder eine Virtual SIMATIC Memory RetrieveStorage() Card her. Der virtuelle Controller muss dazu im Betriebszustand OFF sein. Tabelle 7- 120 RetrieveStorage() - Native C++ ERuntimeErrorCode RetrieveStorage( Syntax WCHAR* in_FullFileName Parameter •...
  • Seite 150 Parameter • string in_FullFileName: Der vollständige Pfad zur ZIP-Datei. Der Pfad bezieht sich auf Verzeichnisse des Computers, auf dem die API aufgerufen wird. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 151: Betriebszustand

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.3 Betriebszustand GetOperatingState() / OperatingState { get; } Liefert den Betriebszustand des virtuellen Controllers zurück. Wenn sich der Betriebszustand ändert, wird das Ereignis OnOperatingStateChanged() (Seite 269) ausgelöst. Details zum Betriebszustand siehe Datentypen (Seite 358). Tabelle 7- 122 GetOperatingState() - Native C++ EOperatingState GetOperatingState();...
  • Seite 152 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 123 OperatingState { get; } - .NET (C#) EOperatingState OperatingState { get; } Syntax Parameter Keine Rückgabewerte • EOperatingState.InvalidOperatingState: wenn die Funktion fehlschlägt. • EOperatingState.Off: wenn die Simulation Runtime Instanz nicht läuft. • EOperatingState.Booting: wenn in diesem Zustand aufgerufen wurde, aber der virtuelle Con-...
  • Seite 153 Anwenderschnittstellen (API) 7.6 API IInstances PowerOn() Die Funktion erzeugt den Prozess für die Simulation Runtime Instanz und startet die Firmware des virtuellen Controllers. Tabelle 7- 124 PowerOn() - Native C++ ERuntimeErrorCode PowerOn(); Syntax ERuntimeErrorCode PowerOn( UINT32 in_Timeout_ms Parameter • UINT32 in_Timeout_ms: Ein Timeout-Wert in Millisekunden.
  • Seite 154 ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Der erwartete Betriebszustand tritt nicht rechtzeitig ein. ERuntimeError- Die Siemens.Simatic.Simulation. Runti- Code.ErrorLoadingDll me.Instance.exe kann die Sie- mens.Simatic.PlcSim.Vplc1500.dll nicht laden. ERuntimeError- Der ausgewählte Pfad für diese Instanz Code.StoragePathAlreadyInUse wird bereits von einer anderen Instanz genutzt.
  • Seite 155 Wenn der Wert größer als 0 ist (empfohlen ist ein Wert von 60000), kehrt die Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwartete Betriebszustände, wenn diese Funktion erfolgreich ist: { EOperatingState.Off } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 156: Memoryreset

    Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwartete Betriebszustände, wenn diese Funktion erfolgreich ist: { EOperatingState.Run, EOperatingState.Stop } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht regis- Code.InterfaceRemoved...
  • Seite 157 Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwartete Betriebszustände, wenn diese Funktion erfolgreich ist: { EOperatingState.Run } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht regis- Code.InterfaceRemoved triert.
  • Seite 158 Wenn der Wert größer als 0 ist (empfohlen ist ein Wert von 60000), kehrt die Funktion wieder, wenn die Operation durchgeführt wurde oder nach ei- nem Timeout. Erwartete Betriebszustände, wenn diese Funktion erfolgreich ist: { EOperatingState.Stop } Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 159: Variablentabelle

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.4 Variablentabelle UpdateTagList() Die Funktion liest die Variablen aus dem virtuellen Controller und schreibt sie nach Namen geordnet in den gemeinsamen Speicher. Wenn die Variable ein Feld oder eine Struktur ist, gibt es mehrfache Einträge. Bei einer Struktur gibt es einen Eintrag für die Struktur selbst und einen zusätzlichen Eintrag für jedes Strukturelement Entry_1: "StructName"...
  • Seite 160 Anwenderschnittstellen (API) 7.6 API IInstances Wenn es Probleme mit der maximalen Anzahl der Einträge gibt, aber nicht alle Variablen benötigt werden, dann können beim Aktualisieren der Variablentabelle zwei Filter genutzt werden. Tabelle 7- 134 UpdateTagList() - Native C++ ERuntimeErrorCode UpdateTagList(); Syntax ERuntimeErrorCode UpdateTagList( ETagListDetails in_TagListDetails...
  • Seite 161 Variablentabellen-Speicher nicht hinzugefügt, dabei wird kein Fehler ausgelöst. Damit diese Liste berücksichtigt wird, muss in_DataBlockFilterList gleich NULL sein und muss "DB" enthalten. in_TagListDetails Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht regis- Code.InterfaceRemoved triert.
  • Seite 162 Tabelle erforderlich ist. • out bool out_IsHMIVisibleOnly: Wenn , sind nur Variablen in der Tabelle verfügbar, die mit "HMI Visible" true markiert sind. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 163 TagInfos { get; } - .NET (C#) STagInfo[] TagInfos { get; } Syntax Parameter Keine Rückgabewerte Ein Feld, das alle verfügbaren Einträge des Speichers enthält. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht regis- Code.InterfaceRemoved triert.
  • Seite 164 Syntax string in_FullFileName Parameter Keine Rückgabewerte • string in_FullFileName: Dateiname der XML-Datei, in die geschrieben wird: <Pfad> + <Dateiname> + <Dateiendung>. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 165: I/O-Zugriff

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.5 I/O-Zugriff 7.6.5.1 Synchronisieren von Eingängen und Ausgängen Beschreibung In PLCSIM Advanced kann der komplette Umfang des Eingangs- und Ausgangsbereichs genutzt werden (siehe GetAreaSize/AreaSize (Seite 165)). Dies ist auch dann möglich, wenn kein IO-Modul konfiguriert ist. Eingänge und Ausgänge, die über konfigurierte IO-Module definiert sind, werden zur festgelegten Aktualisierung des Teilprozessabbilds (TPA) synchronisiert.
  • Seite 166 Anwenderschnittstellen (API) 7.6 API IInstances GetAreaSize() / AreaSize { get; } Liefert die Größe der Area in Bytes zurück. Tabelle 7- 144 GetAreaSize() - Native C++ UINT32 GetAreaSize( Syntax EArea in_Area Parameter • EArea in_Area: Die Area, von der Sie die Größe erhalten möchten. Zulässige Werte: Siehe EArea (Seite 358).
  • Seite 167 AreaSize • Byte in_Bit: Der Bit-Offset innerhalb des Bytes. Der Wert muss zwischen 0 und 7 sein. Rückgabewerte Bitwert bool: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht regis- Code.InterfaceRemoved triert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 168 Anwenderschnittstellen (API) 7.6 API IInstances ReadByte() Liest ein einzelnes Byte aus der Area. Hinweis Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen und nicht über die Adressbereiche. Tabelle 7- 148 ReadByte() - Native C++ ERuntimeErrorCode ReadByte( Syntax...
  • Seite 169 UInt32 in_Offset: Der Byte-Offset innerhalb der Area. Der Wert muss zwischen 0 und dem Wert sein, der von zurückgegeben wird. AreaSize Rückgabewerte Bytewert. Byte: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 170 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 150 ReadByte() - Native C++ ERuntimeErrorCode ReadBytes( Syntax EArea in_Area, UINT32 in_Offset, UINT32 in_BytesToRead, UINT32* out_BytesRead, BYTE inout_Values[] Parameter • EArea in_Area: Die Area, von der Sie lesen möchten. Zulässige Werte: Siehe EArea (Seite 358). {SRA_INPUT, SRA_MARKER, SRA_OUTPUT}.
  • Seite 171 AreaSize • UInt32 in_BytesToRead: Die Anzahl der Bytes, die gelesen werden. Rückgabewerte Die gelesenen Bytes. Byte[]: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 172 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 152 ReadSignals() - Native C++ ERuntimeErrorCode ReadSignals( Syntax EArea in_Area, SDataValueByAddress* inout_Signals, UINT32 in_SignalCount ERuntimeErrorCode ReadSignals( EArea in_Area, SDataValueByAddressWithCheck* inout_Signals, UINT32 in_SignalCount, bool* out_SignalsHaveChanged Parameter • EArea in_Area: Die Area, von der Sie lesen möchten. Zulässige Werte: Siehe EArea (Seite 358).
  • Seite 173: I/O-Zugriff Über Adresse - Schreiben

    Rückgabewerte Keine Signalfehler Runtime Fehlercode Bedingung ERuntimeErrorCode.Ok Die Signaloperation ist erfolgreich. ERuntimeError- Offset oder Bits sind ungültig. Code.IndexOutOfRange Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 174 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 154 WriteBit() - Native C++ ERuntimeErrorCode WriteBit( Syntax EArea in_Area, UINT32 in_Offset, UINT8 in_Bit, bool in_Value Parameter • EArea in_Area: Die Area, in die geschrieben werden soll. Zulässige Werte: {SRA_INPUT, SRA_MARKER, SRA_OUTPUT}. Siehe EArea (Seite 358). •...
  • Seite 175 AreaSize • Byte in_Bit: Der Bit-Offset innerhalb des Bytes. Der Wert muss zwischen 0 und 7 sein. • bool in_Value: Bitwert. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 176 Der Byte-Offset innerhalb der Area. Der Wert muss zwischen 0 und dem Wert sein, der von zurückgegeben wird. AreaSize • BYTE in_Value: Bytewert. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht regis- Code.InterfaceRemoved triert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wieder.
  • Seite 177 Anwenderschnittstellen (API) 7.6 API IInstances WriteBytes() Schreibt ein Byte-Array in die Area. Hinweis Daten können überschrieben werden Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Achten Sie besonders darauf, nicht auf Bytes zu schreiben, die zu anderen Applikationen gehören oder die interne Daten enthalten, z.
  • Seite 178 Enthält die Anzahl der Bytes, die geschrieben werden. Der Wert muss zwi- schen 1 und der Größe des Arraywerts sein. • BYTE in_Value: Bytewert. Rückgabewerte Enthält die Anzahl der Bytes, die gerade geschrieben wurden. UInt32: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 179 Anwenderschnittstellen (API) 7.6 API IInstances WriteSignals() Schreibt mehrere Signale innerhalb eines API-Aufrufs. Die Funktion berücksichtigt auch die Byte-Reihenfolge (Endianness). Die Funktion unterstützt nur primitive Datentyp-Signale, sie ist aber nicht typsicher. Hinweis Daten können überschrieben werden Die Funktion erlaubt Zugriff auf den gesamten Speicherbereich des virtuellen Controllers! Nutzen Sie daher den Zugriff über den Variablennamen (Seite 211) und nicht über die Adressbereiche.
  • Seite 180: I/O-Zugriff Über Variablenname - Lesen

    Rückgabewerte Keine Signalfehler Fehlercode Bedingung ERuntimeErrorCode.Ok Die Signaloperation ist erfolgreich. ERuntimeError- Offset oder Bits sind ungültig. Code.IndexOutOfRange Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 181 Anwenderschnittstellen (API) 7.6 API IInstances Read() Liest den Wert einer PLC-Variablen. Tabelle 7- 162 Read() - Native C++ ERuntimeErrorCode Read( Syntax WCHAR* in_Tag, SDataValue* inout_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • SDataValue* inout_Value: Enthält den Wert und den erwarteten Typ der PLC-Variablen.
  • Seite 182 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. SDataValue: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 183 Anwenderschnittstellen (API) 7.6 API IInstances ReadBool() Liest den Wert einer PLC-Variablen. Tabelle 7- 164 ReadBool() - Native C++ ERuntimeErrorCode ReadBool( Syntax WCHAR* in_Tag, bool* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • bool* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 184 Syntax string in_Tag Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert der PLC-Variablen. bool: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 185 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt8() Liest den Wert einer PLC-Variablen. Tabelle 7- 166 ReadInt8() - Native C++ ERuntimeErrorCode ReadInt8( Syntax WCHAR* in_Tag, INT8* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT8* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 186 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. Int8: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 187 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt16() Liest den Wert einer PLC-Variablen. Tabelle 7- 168 ReadInt16() - Native C++ ERuntimeErrorCode ReadInt16( Syntax WCHAR* in_Tag, INT16* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT16* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 188 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. Int16: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 189 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt32() Liest den Wert einer PLC-Variablen. Tabelle 7- 170 ReadInt32() - Native C++ ERuntimeErrorCode ReadInt32( Syntax WCHAR* in_Tag, INT32* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT32* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 190 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. Int32: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 191 Anwenderschnittstellen (API) 7.6 API IInstances ReadInt64() Liest den Wert einer PLC-Variablen. Tabelle 7- 172 ReadInt64() - Native C++ ERuntimeErrorCode ReadInt64( Syntax WCHAR* in_Tag, INT64* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • INT64* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 192 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. Int64: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 193 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt8() Liest den Wert einer PLC-Variablen. Tabelle 7- 174 ReadUInt8() - Native C++ ERuntimeErrorCode ReadUInt8( Syntax WCHAR* in_Tag, UINT8* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT8* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 194 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. UInt8: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 195 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt16() Liest den Wert einer PLC-Variablen. Tabelle 7- 176 ReadUInt16() - Native C++ ERuntimeErrorCode ReadUInt16( Syntax WCHAR* in_Tag, UINT16* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT16* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 196 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. UInt16: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 197 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt32() Liest den Wert einer PLC-Variablen. Tabelle 7- 178 ReadUInt32() - Native C++ ERuntimeErrorCode ReadUInt32( Syntax WCHAR* in_Tag, UINT32* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT32* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 198 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. UInt32: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 199 Anwenderschnittstellen (API) 7.6 API IInstances ReadUInt64() Liest den Wert einer PLC-Variablen. Tabelle 7- 180 ReadInt64() - Native C++ ERuntimeErrorCode ReadUInt64( Syntax WCHAR* in_Tag, UINT64* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • UINT64* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 200 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. UInt64: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 201 Anwenderschnittstellen (API) 7.6 API IInstances ReadFloat() Liest den Wert einer PLC-Variablen. Tabelle 7- 182 ReadFloat() - Native C++ ERuntimeErrorCode ReadFloat( Syntax WCHAR* in_Tag, float* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • float* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 202 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. float: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 203 Anwenderschnittstellen (API) 7.6 API IInstances ReadDouble() Liest den Wert einer PLC-Variablen. Tabelle 7- 184 ReadDouble() - Native C++ ERuntimeErrorCode ReadDouble( Syntax WCHAR* in_Tag, double* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • double* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 204 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. double: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 205 Anwenderschnittstellen (API) 7.6 API IInstances ReadChar() Liest den Wert einer PLC-Variablen. Tabelle 7- 186 ReadChar() - Native C++ ERuntimeErrorCode ReadChar( Syntax WCHAR* in_Tag, char* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • char* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 206 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. sbyte: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 207 Anwenderschnittstellen (API) 7.6 API IInstances ReadWChar() Liest den Wert einer PLC-Variablen. Tabelle 7- 188 ReadWChar() - Native C++ ERuntimeErrorCode ReadWChar( Syntax WCHAR* in_Tag, WCHAR* out_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. • WCHAR* out_Value: Enthält den Wert der PLC-Variablen.
  • Seite 208 Parameter • string in_Tag: Der Name der PLC-Variablen, die gelesen werden soll. Rückgabewerte Enthält den Wert und den Typ der PLC-Variablen. char: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 209 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 190 ReadSignals() - Native C++ ERuntimeErrorCode ReadSignals( Syntax SDataValueByName* inout_Signals, UINT32 in_SignalCount ERuntimeErrorCode ReadSignals( SDataValueByNameWithCheck* inout_Signals, UINT32 in_SignalCount bool* out_SignalsHaveChanged Parameter • SDataValueByName* inout_Signals: Enthält den Namen, den Wert und den erwarteten Typ der PLC-Variablen. Wenn der erwartete Typ ist, dann wird er auf den gespeicherten UNSPECIFIC...
  • Seite 210 Der Zugriff auf ganze Strukturen oder Felder wird nicht unterstützt. ERuntimeErrorCode.TypeMismatch Der erwartete Typ passt nicht zum ge- speicherten Typ. Siehe Kompatible primi- tive Datentypen (Seite 363). Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 211: I/O-Zugriff Über Variablenname - Schreiben

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.5.5 I/O-Zugriff über Variablenname - Schreiben Einzelzugriffe auf IO-Daten sind dazu geeignet, Werte, die nicht regelmäßig aktualisiert werden, auf einer grafischen Oberfläche (GUI) anzuzeigen und zu schreiben. Hinweis Um einen regelmäßigen Signalaustausch zu simulieren, erstellen Sie einmal eine Signalliste für jeden Satz an Signalen.
  • Seite 212 Enthält den Wert und den erwarteten Typ der PLC-Variablen. Die Typen werden nicht unterstützt. UNSPECIFIC STRUCT Strukturen und Felder können durch Signallisten nachgebildet und dann über geschrieben werden. WriteSignals() Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 213 Anwenderschnittstellen (API) 7.6 API IInstances WriteBool() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 194 WriteBool() - Native C++ ERuntimeErrorCode WriteBool( Syntax WCHAR* in_Tag, bool in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • bool in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 214 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • bool in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 215 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt8() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 196 WriteInt8() - Native C++ ERuntimeErrorCode WriteInt8( Syntax WCHAR* in_Tag, INT8 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT8 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 216 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int8 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 217 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt16() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 198 WriteInt16() - Native C++ ERuntimeErrorCode WriteInt16( Syntax WCHAR* in_Tag, INT16 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT16 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 218 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int16 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 219 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt32() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 200 WriteInt32() - Native C++ ERuntimeErrorCode WriteInt32( Syntax WCHAR* in_Tag, INT32 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT32 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 220 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int32 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 221 Anwenderschnittstellen (API) 7.6 API IInstances WriteInt64() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 202 WriteInt64() - Native C++ ERuntimeErrorCode WriteInt64( Syntax WCHAR* in_Tag, INT64 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • INT64 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 222 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • Int64 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 223 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt8() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 204 WriteUInt8() - Native C++ ERuntimeErrorCode WriteUInt8( Syntax WCHAR* in_Tag, UINT8 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT8 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 224 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt8 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 225 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt16() Liest den Wert einer PLC-Variablen. Tabelle 7- 206 WriteUInt16() - Native C++ ERuntimeErrorCode WriteUInt16( Syntax WCHAR* in_Tag, UINT16 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT16 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 226 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt16 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 227 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt32() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 208 WriteUInt32() - Native C++ ERuntimeErrorCode WriteUInt32( Syntax WCHAR* in_Tag, UINT32 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT32 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 228 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt32 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 229 Anwenderschnittstellen (API) 7.6 API IInstances WriteUInt64() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 210 WriteUInt64() - Native C++ ERuntimeErrorCode WriteUInt64( Syntax WCHAR* in_Tag, UINT64 in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • UINT64 in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 230 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • UInt64 in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 231 Anwenderschnittstellen (API) 7.6 API IInstances WriteFloat() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 212 WriteFloat() - Native C++ ERuntimeErrorCode WriteFloat( Syntax WCHAR* in_Tag, float in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • float in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 232 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • float in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 233 Anwenderschnittstellen (API) 7.6 API IInstances WriteDouble() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 214 WriteDouble() - Native C++ ERuntimeErrorCode WriteDouble( Syntax WCHAR* in_Tag, double in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • double in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 234 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • double in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 235 Anwenderschnittstellen (API) 7.6 API IInstances WriteChar() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 216 WriteChar() - Native C++ ERuntimeErrorCode WriteChar( Syntax WCHAR* in_Tag, char in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • char in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 236 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • sbyte in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 237 Anwenderschnittstellen (API) 7.6 API IInstances WriteWChar() Schreibt den Wert einer PLC-Variablen. Tabelle 7- 218 WriteWChar() - Native C++ ERuntimeErrorCode WriteWChar( Syntax WCHAR* in_Tag, WCHAR in_Value Parameter • WCHAR* in_Tag: Der Name der PLC-Variablen, die geschieben werden soll. • WCHAR in_Value: Enthält den Wert der PLC-Variablen.
  • Seite 238 Parameter • string in_Tag: Der Name der PLC-Variablen, die geschrieben werden soll. • char in_Value: Enthält den Wert der PLC-Variablen. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 239 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 220 WriteSignals() - Native C++ ERuntimeErrorCode WriteSignals( Syntax SDataValueByName* inout_Signals, UINT32 in_SignalCount Parameter • SDataValueByName* inout_Signals: Enthält den Namen, den Wert und den erwarteten Typ der PLC-Variablen. Die Typen werden nicht unterstützt. UNSPECIFIC STRUCT •...
  • Seite 240: Einstellungen Für Die Virtuelle Zeit

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

    Tabelle 7- 227 ScaleFactor { get; set; } - .NET (C#) double ScaleFactor { get; set; } Syntax Parameter Keine Rückgabewerte Skalierfaktor der virtuellen Zeit. double: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 244 Tabelle 7- 230 OperatingMode { get; set; } - .NET (C#) EOperatingMode OperatingMode { get; set; } Syntax Parameter Keine Rückgabewerte Betriebsart des virtuellen Controllers EOperatingMode: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 245 Keine Rückgabewerte Das Ereignis wird nicht ausgelöst (außer der Modus Sync-Freeze ist • false: aktiv). Das Ereignis wird nach jedem Zyklus ausgelöst. • true: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 246 OverwrittenMinimalCycleTime_ns { get; set; } - .NET (C#) Int64 OverwrittenMinimalCycleTime_ns { get; set; } Syntax Parameter Keine Rückgabewerte Die überschriebene minimale Zykluszeit in Nanosekunden. Int64: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 247 Der Prozess des virtuellen Controllers läuft nicht. Tabelle 7- 238 RunToNextSyncPoint() - .NET (C#) void RunToNextSyncPoint(); Syntax Parameter Keine Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 248: Weitere Informationen

    Int64 in_MinimalTimeToRun_ns Parameter • Int64 in_MinimalTimeToRun_ns: Die minimale virtuelle Zeit (in Nanosekunden), die der virtuelle Controller läuft, bevor er in den Freeze-Zustand wechselt. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 249: Azyklische Dienste

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8 Azyklische Dienste 7.6.8.1 Übersicht Die azyklischen Dienste umfassen bei PLCSIM Advanced: ● Alarm- und Ereignismeldungen, die die Peripheriemodule an die CPU senden. ● Lese- und Schreibvorgänge von Parameter- und Status-Daten vom Anwenderprogramm der SPS in die Peripheriemodule API-Methoden und zugehörige Ereignisse Ereignisse, die von Peripheriemodulen ausgelöst werden, und zugehörige API-Methoden: Tabelle 7- 241...
  • Seite 250 Anwenderschnittstellen (API) 7.6 API IInstances Ablaufschema bei der Simulation von Ereignissen, die von Peripheriemodulen ausgelöst werden. Bild 7-4 Ablaufschema bei der Simulation von Ereignissen Ereignisse Vom Anwenderprogramm (TIA Portal) getriggerte Ereignisse, die sich für die Notifizierung angemeldet haben: Name API-Ereignis zum Triggern des SFB API-Methode (Meldung) RDREC OnDataRecordRead (Seite 283)
  • Seite 251: Readrecorddone / Writerecorddone

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

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.3 AlarmNotification AlarmNotification() Diese Funktion löst Diagnosemeldungen nach PROFINET-Standard aus. Jeder Aufruf dieser Funktion ruft den OB 82 einmal auf, unabhängig von der Anzahl und vom Schweregrad der übermittelten Diagnoseeinträge. Tabelle 7- 246 AlarmNotification() - Native C++ ERuntimeErrorCode AlarmNotification( Syntax UINT16 in_HardwareIdentifier,...
  • Seite 255 Anwenderschnittstellen (API) 7.6 API IInstances Rückgabewerte Runtime Fehlercode Bedingung SREC_OK Die Funktion ist erfolgreich. SREC_INTERFACE_REMOVED Die Instanz ist im Runtime Manager nicht registriert. SREC_DOES_NOT_EXIST Die HW-Kennung des Moduls existiert nicht. SREC_INDEX_OUT_OF_RANGE Die Feldgröße von ist kleiner in_ArrayOfDiagnosisEvents als die Anzahl der aktuell vorhandenen Diagnoseereignisse.
  • Seite 256 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. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 257: Processevent

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

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

    Die Kennung muss zu einer Hardware-Komponente im aktuell geladenen Pro- jekt gehören. • ushort in_Specifier: Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangsparameter des OB 55-Aufrufs verfügbar. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 262: Profileevent

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

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.8.8 UpdateEvent UpdateEvent() Diese Funktion wird benutzt, um den Update-Ereignis-OB (OB 56) auszulösen. Update- Ereignisse werden nur für Module in einem dezentralen IO-System unterstützt. Tabelle 7- 256 UpdateEvent() - Native C++ ERuntimeErrorCode UpdateEvent( Syntax UINT16 in_HardwareIdentifier, UINT16 in_Specifier Parameter •...
  • Seite 265: Getconfiguredprocessevent

    Die Kennung muss zu einer Hardware-Komponente im aktuell geladenen Pro- jekt gehören. • ushort in_Specifier: Der Parameter wird als Alarm-Specifier an das Alarm-Telegramm übergeben. Er ist als Eingangsparameter des OB 56-Aufrufs verfügbar. Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert.
  • Seite 266 Tabelle 7- 259 GetConfiguredProcessEvents() - .NET (C#) SConfiguredProcessEvents [] GetConfiguredProcessEvents( Syntax Parameter Keine Rückgabewerte Feld mit konfigurierten Prozessereignissen und Feldgröße ergeben die Anzahl der konfigurierten Prozessereignisse. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved registriert. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 267: Rackorstationfaultevent

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

    Die HW-Kennung des Geräts, das das Ereignis sendet. • ERackOrStationFaultType in_EventType: Ein Wert aus der Liste der vordefinierten Typen von Ereignissen, siehe ERackOrStationFaultType (Seite 374). Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Instanz ist im Runtime Manager nicht Code.InterfaceRemoved...
  • Seite 269: Ereignisse Onoperatingstatechanged

    Anwenderschnittstellen (API) 7.6 API IInstances Ereignis Ursache OnConfigurationChanged Dieses Ereignis wird ausgelöst, wenn sich die Konfiguration des virtu- (Seite 278) ellen Controllers geändert hat: Nach dem Hochlauf aus der Virtual SIMATIC Memory Card • Am Ende eines Downloads • Wenn sich die IP-Adresse ändert •...
  • Seite 270 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnOperatingStateChangedEvent() Wenn das Ereignis eintritt, wird das registrierte Event-Objekt in den signalisierten Zustand gesetzt. Es kann nur ein Event-Objekt für das Ereignis registriert sein. Das Registrieren eines neuen Event-Objekts führt zum Löschen des vorhergehenden. Tabelle 7- 265 RegisterOnOperatingStateChangedEvent() - Native C++ void RegisterOnOperatingStateChangedEvent();...
  • Seite 271 Anwenderschnittstellen (API) 7.6 API IInstances // Thread 1 -------------------------------------------------- Beispiel C++ ISimulationRuntimeManager * api = NULL; ERuntimeErrorCode result = Initialize(&api); IInstance* psa = NULL; if (result == SREC_OK) result = api->RegisterInstance(&psa); // Create an event object HANDLE eventHandle = CreateEvent(NULL, FALSE, FALSE, NULL); // Register the user created event object RegisterOnOperatingStateChangedEvent psa->...
  • Seite 272 Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 268 UnregisterOnOperatingStateChangedEvent() - .NET (C#) void UnregisterOnOperatingStateChangedEvent(); Syntax Parameter Keine Rückgabewerte Keine WaitForOnOperatingStateChangedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 7- 269 WaitForOnOperatingStateChangedEvent() - Native C++ bool WaitForOnOperatingStateChangedEvent();...
  • Seite 273: Ereignisse Onsyncpointreached

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.9.2 Ereignisse OnSyncPointReached OnSyncPointReached Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 271 OnSyncPointReached - .NET (C#) event Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 OnSyncPoin- Syntax tReached; Parameter Keine. Siehe Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 (Sei- te 324). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread.
  • Seite 274 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnSyncPointReachedEvent() Wenn das Ereignis eintritt, wird das registrierte Event-Objekt in den signalisierten Zustand gesetzt. Es kann nur ein Event-Objekt für das Ereignis registriert sein. Das Registrieren eines neuen Event-Objekts führt zum Löschen des vorhergehenden. Tabelle 7- 273 RegisterOnSyncPointReachedEvent() - Native C++ void RegisterOnSyncPointReachedEvent();...
  • Seite 275: Ereignisse Onconfigurationchanging

    Anwenderschnittstellen (API) 7.6 API IInstances WaitForOnSyncPointReachedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 7- 277 WaitForOnSyncPointReachedEvent() - Native C++ SOnSyncPointReachedResult WaitForOnSyncPointReachedEvent(); Syntax SOnSyncPontReachedResult WaitForOnEndOfCycleOnSyncPoin- tReachedEvent( UINT32 in_Time_ms Parameter •...
  • Seite 276 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnConfigurationChangingCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Das Registrieren einer neuen Callback-Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 280 RegisterOnConfigurationChangingCallback() - Native C++ void RegisterOnConfigurationChangingCallback( Syntax EventCallback_II_SREC_ST in_CallbackFunction...
  • Seite 277 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnConfigurationChangingEvent() Meldet das Event-Objekt ab. Tabelle 7- 283 UnregisterOnConfigurationChangingEvent() - Native C++ void UnregisterOnConfigurationChangingEvent(); Syntax Parameter Keine Rückgabewerte Keine Tabelle 7- 284 UnregisterOnConfigurationChangingEvent() - .NET (C#) void UnregisterOnConfigurationChangingEvent(); Syntax Parameter Keine Rückgabewerte Keine WaitForOnConfigurationChangingEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist.
  • Seite 278: Ereignisse Onconfigurationchanged

    Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 286 WaitForOnConfigurationChangingEvent() - .NET (C#) bool WaitForOnConfigurationChangingEvent(); Syntax bool WaitForOnConfigurationChangingEvent( UInt32 in_Time_ms Parameter • None: Das Zeitlimit ist auf gesetzt. INFINITE • UInt32 in_Time_ms: Wert für das Zeitlimit in Millisekunden. Rückgabewerte Wenn das Event-Objekt in den signalisierten Zustand gesetzt wurde. •...
  • Seite 279 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnConfigurationChangedEvent() Wenn das Ereignis eintritt, wird das registrierte Event-Objekt in den signalisierten Zustand gesetzt. Es kann nur ein Event-Objekt für das Ereignis registriert sein. Das Registrieren eines neuen Event-Objekts führt zum Löschen des vorhergehenden. Tabelle 7- 289 RegisterOnConfigurationChangedEvent() - Native C++ void RegisterOnConfigurationChangedEvent();...
  • Seite 280: Ereignisse Onledchanged

    Anwenderschnittstellen (API) 7.6 API IInstances WaitForOnConfigurationChangedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 7- 293 WaitForOnConfigurationChangedEvent() - Native C++ bool WaitForOnConfigurationChangedEvent(); Syntax bool WaitForOnConfigurationChangedEvent( UINT32 in_Time_ms Parameter •...
  • Seite 281 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnLedChangedCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Das Registrieren einer neuen Callback-Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 296 RegisterOnLedChangedCallback() - Native C++ void RegisterOnLedChangedCallback( Syntax EventCallback_II_SREC_ST_SRLT_SRLM in_CallbackFunction...
  • Seite 282 Anwenderschnittstellen (API) 7.6 API IInstances UnregisterOnLedChangedEvent() Meldet das Event-Objekt ab. Tabelle 7- 299 UnregisterOnLedChangedEvent() - Native C++ void UnregisterOnLedChangedEvent(); Syntax Parameter Keine Rückgabewerte Keine Tabelle 7- 300 UnregisterOnLedChangedEvent() - .NET (C#) void UnregisterOnLedChangedEvent(); Syntax Parameter Keine Rückgabewerte Keine WaitForOnLedChangedEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist.
  • Seite 283: Ereignisse Für Azyklische Dienste

    Anwenderschnittstellen (API) 7.6 API IInstances Tabelle 7- 302 WaitForOnLedChangedEvent() - .NET (C#) bool WaitForOnLedChangedEvent(); Syntax bool WaitForOnLedChangedEvent( UInt32 in_Time_ms Parameter • None: Das Zeitlimit ist auf gesetzt. INFINITE • UInt32 in_Time_ms: Wert für das Zeitlimit in Millisekunden. Rückgabewerte Wenn das Event-Objekt in den signalisierten Zustand gesetzt wurde. •...
  • Seite 284 Anwenderschnittstellen (API) 7.6 API IInstances RegisterOnDataRecordReadCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen. Es kann nur eine Callback-Funktion für das Ereignis registriert sein. Das Registrieren einer neuen Callback-Funktion führt zum Löschen der vorhergehenden. Tabelle 7- 305 RegisterOnDataRecordReadCallback() - Native C++ void RegisterOnDataRecordReadCallback ( Syntax Event Callback_II_SREC_ST_SDRI in_CallbackFunction...
  • Seite 285: Ereignisse Onalarmnotification

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.10.2 Ereignisse OnAlarmNotification OnAlarmNotificationDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 307 OnAlarmNotificationDone() - .NET (C#) event Delegate_SREC_ST_UINT32_UINT32 OnAlarmNotificationDone; Syntax Parameter Keine. Siehe Delegate_SREC_ST_UINT32_UINT32 (Seite 332). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnAlarmNotificationDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 286: Ereignisse Onprocessevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.10.3 Ereignisse OnProcessEvent OnProcessEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 310 OnProcessEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32 OnProcessEvent- Syntax Done; Parameter Keine. Siehe Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32. (Seite 330) 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 287: Ereignisse Onpullorplugevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.10.4 Ereignisse OnPullOrPlugEvent OnPullOrPlugEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 313 OnPullOrPlugEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32_EPPET_UINT32 OnPullOrPlugEventDone; Syntax Parameter Keine. Siehe Delegate_SREC_ST_UINT32_EPPET_UINT32 (Seite 329). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnPullOrPlugEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 288: Ereignisse Onstatusevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.10.5 Ereignisse OnStatusEvent OnStatusEventDone() Meldet eine Event-Handler Methode an- oder ab. Tabelle 7- 316 OnStatusEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32 OnStatusEventDone; Syntax Parameter Keine. Siehe Delegate_SREC_ST_UINT32 (Seite 331). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnStatusEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 289: Ereignisse Onprofileevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.10.6 Ereignisse OnProfileEvent OnProfileEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 319 OnProfileEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32 OnProfileEventDone; Syntax Parameter Keine. Siehe Delegate_SREC_ST_UINT32 (Seite 331). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnProfileEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 290: Ereignisse Onupdateevent

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.10.7 Ereignisse OnUpdateEvent OnUpdateEventDone() Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 322 OnUpdateEventDone() - .NET (C#) event Delegate_SREC_ST_UINT32 OnUpdateEventDone; Syntax Parameter Keine. Siehe Delegate_SREC_ST_UINT32 (Seite 331). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnUpdateEventDoneCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 291: Ereignisse Rackorstationfault

    Anwenderschnittstellen (API) 7.6 API IInstances 7.6.10.8 Ereignisse RackOrStationFault OnRackOrStationFaultEvent Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 325 OnRackOrStationFaultEvent - .NET (C#) event Delegate_SREC_ST_UINT32_ERSFET OnRackOrStationFault; Syntax Parameter Keine. Siehe Delegate_SREC_ST_UINT32_ERSFET (Seite 333). Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnRackOrStationFaultEventCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 292: Schnittstellen - Information Und Einstellungen

    Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager API IRemoteRuntimeManager 7.7.1 Schnittstellen - Information und Einstellungen Dispose() Löscht die managed Schnittstelle und entlädt die nativen Komponenten der Anwenderschnittstellen. Hinweis Wenn die Schnittstelle des Remote Runtime Managers gelöscht wird, dann kann keine IInstance-Schnittstelle, die von der IRemoteRuntimeManager-Schnittstelle erzeugt wurde, mehr genutzt werden.
  • Seite 293 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager GetIP() / IP { get; } Liefert die IP-Adresse des PC, auf dem der Remote Runtime Manager läuft. Wenn die Funktion fehlschlägt, ist der Rückgabewert 0. Tabelle 7- 331 GetIP() - Native C++ UIP GetIP(); Syntax Parameter Keine...
  • Seite 294 RemoteComputerName { get; } - .NET (C#) string RemoteComputerName { get; } Syntax Parameter Keine Rückgabewerte Name des PC, auf dem der Remote Runtime Manager läuft. string: Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved Manager getrennt.
  • Seite 295 Die Funktion kehrt nicht rechtzeitig wie- der. Tabelle 7- 338 Disconnect() - .NET (C#) void Disconnect(); Syntax Parameter Keine Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved Manager getrennt. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 296 CreateInterface() Tabelle 7- 341 RegisterInstanceInfo { get; } - .NET (C#) Syntax SInstanceInfo[] RegisteredInstanceInfo { get; Parameter Keine Rückgabewerte Keine Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved Manager getrennt. ERuntimeErrorCode.Timeout Die Funktion kehrt nicht rechtzeitig wie- der.
  • Seite 297 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager RegisterInstance() Registriert im Runtime Manager eine neue Instanz eines virtuellen Controllers. Erzeugt und liefert eine Schnittstelle von dieser Instanz zurück. Tabelle 7- 342 RegisterInstance() - Native C++ ERuntimeErrorCode RegisterInstance( Syntax IInstance** out_InstanceInterface ERuntimeErrorCode RegisterInstance( WCHAR* in_InstanceName, IInstance** out_InstanceInterface ERuntimeErrorCode RegisterInstance( ECPUType in_CPUType,...
  • Seite 298 Name eindeutig ist. Die Länge des Namens muss kürzer sein als . Siehe Datentypen (Seite 334). DINSTANCE_NAME_LENGTH Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers. Ansonsten einen Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved...
  • Seite 299 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager RegisterCustomInstance() Registriert im Runtime Manager eine neue Instanz eines virtuellen Controllers. Erzeugt und liefert eine Schnittstelle von dieser Instanz zurück. Tabelle 7- 344 RegisterCustomInstance() - Native C++ ERuntimeErrorCode RegisterCustomInstance( Syntax WCHAR* in_VplcDll, IInstance** out_InstanceInterface ERuntimeErrorCode RegisterCustomInstance( WCHAR* in_VplcDll, WCHAR* in_InstanceName, IInstance** out_InstanceInterface...
  • Seite 300 Name eindeutig ist. Die Länge des Namens muss kürzer sein als . Siehe Datentypen (Seite 334). DINSTANCE_NAME_LENGTH Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved...
  • Seite 301 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager CreateInterface() Erzeugt und liefert eine Schnittstelle einer bereits registrierten Instanz eines virtuellen Controllers zurück. Die Instanz kann über die Anwendung registriert worden sein oder über eine andere Anwendung die die Simulation Runtime API nutzt. Tabelle 7- 346 CreateInterface() - Native C++ ERuntimeErrorCode CreateInterface( Syntax...
  • Seite 302: Beschreibung

    Der Name der registrierten Instanz, von der Sie die Schnittstelle emfangen möchten. Rückgabewerte Wenn die Funktion erfolgreich ist, eine Schnittstelle eines virtuellen Controllers, ansonsten ein Null-Zeiger. Siemens.Simatic.Simulation.Runtime.SimulationRuntimeException Ausnahmen Runtime Fehlercode Bedingung ERuntimeError- Die Schnittstelle ist vom Remote Runtime Code.InterfaceRemoved...
  • Seite 303 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager OnConnectionLost Meldet eine Event-Handler Methode an oder ab. Tabelle 7- 348 OnConnectionLost - .NET (C#) event Delegate_IRRTM OnConnectionLost; Syntax Parameter Keine. Siehe Delegate_IRRTM (Seite 325) Rückgabewerte Keine Ausnahmen Keine Hinweis Die Event-Handler Methode läuft in einem separaten Thread. RegisterOnConnectionLostCallback() Wenn das Ereignis eintritt, wird die registrierte Callback-Funktion aufgerufen.
  • Seite 304 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager Tabelle 7- 351 RegisterOnConnectionLostEvent() - .NET (C#) void RegisterOnConnectionLostEvent(); Syntax Parameter Keine Rückgabewerte Keine UnregisterOnConnectionLostCallback() Meldet die Callback-Funktion ab. Wenn das Ereignis eintritt, wird keine Callback-Funktion aufgerufen. Tabelle 7- 352 UnregisterOnConnectionLostCallback() - Native C++ void UnregisterOnConnectionLostCallback(); Syntax Parameter Keine...
  • Seite 305 Anwenderschnittstellen (API) 7.7 API IRemoteRuntimeManager WaitForOnConnectionLostEvent() Die Funktion blockiert das Programm solange, bis das registrierte Event-Objekt im signalisierten Zustand ist oder bis das Timeout-Intervall überschritten ist. Tabelle 7- 355 WaitForOnConnectionLostEvent() - Native C++ bool WaitForOnConnectionLostEvent(); Syntax bool WaitForOnConnectionLostEvent( UINT32 in_Time_ms ) Parameter •...
  • Seite 306 2457 zu 999. Ohne BCD-Konvertierung gibt es keinen -Wert und schreibt UInt16 Write überhaupt keinen Wert. Weitere Informationen Informationen zu Datentypen und zur Konvertierung erhalten Sie im Kapitel "Datentypen" im Systemhandbuch STEP 7 Professional (https://support.industry.siemens.com/cs/ww/de/view/109747136). S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 307 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.1 DLL-Importfunktionen (Native C++) 7.8.1.1 ApiEntry_Initialize Beschreibung Typ des zentralen Eintrittspunkts für die API-Bibliothek (DLL). Tabelle 7- 357 ApiEntry_Initialize - Native C++ typedef ERuntimeErrorCode(*ApiEntry_Initialize)( Syntax ISimulationRuntimeManager** out_RuntimeManagerInterface Parameter • ISimulationRuntimeManager** out_SimulationRuntimeManagerInterface: Zeiger auf einen Runtime Manager Schnittstellenzeiger. Der Zeiger muss mit NULL initialisiert werden.
  • Seite 308 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2 Event Callback-Funktionen (Native C++) 7.8.2.1 EventCallback_VOID Beschreibung Tabelle 7- 359 EventCallback_VOID - Native C++ typedef void (*EventCallback_VOID)(); Syntax Parameter Keine Rückgabewerte Keine 7.8.2.2 EventCallback_II_SREC_ST Beschreibung Tabelle 7- 360 EventCallback_II_SREC_ST - Native C++ typedef void (*EventCallback_II_SREC_ST)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode,...
  • Seite 309 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.3 EventCallback_II_SREC_ST_SROS_SROS Beschreibung Tabelle 7- 361 EventCallback_II_SREC_ST_SROS_SROS - Native C++ typedef void (*EventCallback_II_SREC_ST_SROS_SROS)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, EOperatingState in_PrevState, EOperatingState in_OperatingState Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 310 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.4 EventCallback_II_SREC_ST_SRLT_SRLM Beschreibung Tabelle 7- 362 EventCallback_II_SREC_ST_SRLT_SRLM - Native C++ typedef void (*EventCallback_II_SREC_ST_SRLT_SRLM)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, ELEDType in_LEDType, ELEDMode in_LEDMode, Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 311 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.5 EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32 Beschreibung Tabelle 7- 363 EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32 - Native C++ typedef void Syntax (*EventCallback_II_SREC_ST_UINT32_INT64_INT64_UINT32)( IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_PipId, INT64 in_TimeSinceSameSyncPoint_ns, INT64 in_TimeSinceAnySyncPoint_ns, UINT32 in_SyncPointCount Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 312 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.6 EventCallback_IRRTM Beschreibung Tabelle 7- 364 EventCallback_IRRTM - Native C++ typedef void (*EventCallback_IRRTM)( Syntax IRemoteRuntimeManager* in_Sender Parameter • IRemoteRuntimeManager* in_Sender: Eine Schnittstelle des Remote Runtime Managers, die dieses Ereignis emp- fängt. Rückgabewerte Keine 7.8.2.7 EventCallback_SRCC_UINT32_UINT32_INT32 Beschreibung Tabelle 7- 365 EventCallback_SRCC_UINT32_UINT32_INT32 - Native C++ ERuntimeConfigChanged in_RuntimeConfigChanged,...
  • Seite 313 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.8 EventCallback_II_SREC_ST_SRICC_UINT32_UINT32_UINT32_UINT32 Beschreibung Tabelle 7- 366 EventCallback_II_SREC_ST_SRICC_UINT32_UINT32_UINT32_UINT32 - Native C++ typedef void Syntax (*EventCallback_II_SREC_ST_SRICC_UINT32_UINT32_UINT32_UINT32)( IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, EInstanceConfigChanged in_InstanceConfigChanged, UINT32 in_Param1, UINT32 in_Param2, UINT32 in_Param3, UINT32 in_Param4 Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 314 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.9 EventCallback_II_SREC_ST_SDRI Beschreibung Tabelle 7- 367 EventCallback_II_SREC_ST_SDRI - Native C++ typedef void (*EventCallback_II_SREC_ST_SDRI)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, SDataRecordInfo in_DataRecordInfo Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode •...
  • Seite 315 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.10 EventCallback_II_SREC_ST_SDR Beschreibung Tabelle 7- 368 EventCallback_II_SREC_ST_SDR - .NET (C#) typedef void (*EventCallback_II_SREC_ST_SDR)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, SDataRecord in_DataRecord Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 316 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.11 EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 Beschreibung Tabelle 7- 369 EventCallback_II_SREC_ST_UINT32_EPPET_UINT32 - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32_EPPET_UINT32)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SYSTEMTIME, UINT32 in_HardwareIdentifier, EPullOrPlugEventType in_PullOrPlugEventType, UINT32 in_SequenceNumber Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 317 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.12 EventCallback_II_SREC_ST_UINT32_UINT32_EPET_UINT32 Beschreibung Tabelle 7- 370 EventCallback_II_SREC_ST_UINT32_UINT32_EPET_UINT32 - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32_UINT32_EPET_UINT32)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier, UINT32 in_Channel, EProcessEventType in_ProcessEventType, UINT32 in_SequenceNumber Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 318 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.13 EventCallback_II_SREC_ST_UINT32 Beschreibung Tabelle 7- 371 EventCallback_II_SREC_ST_UINT32 - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier); Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode •...
  • Seite 319 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.14 EventCallback_II_SREC_ST_UINT32_UINT32 Beschreibung Tabelle 7- 372 EventCallback_II_SREC_ST_UINT32_UINT32 - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32_UINT32)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier), UINT32 in_SequenceNumber Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 320 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.2.15 EventCallback_II_SREC_ST_UINT32_ERSFET Beschreibung Tabelle 7- 373 EventCallback_II_SREC_ST_UINT32_ERSFET - Native C++ typedef void (*EventCallback_II_SREC_ST_UINT32_ERSFET)( Syntax IInstance* in_Sender, ERuntimeErrorCode in_ErrorCode, SYSTEMTIME in_SystemTime, UINT32 in_HardwareIdentifier, ERackOrStationFaultType in_EventType Parameter • IInstance* in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 321 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.2 Delegate_II_EREC_DT Beschreibung Tabelle 7- 375 Delegate_II_EREC_DT - .NET (C#) delegate void Delegate_II_EREC_DT ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 322 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.3 Delegate_II_EREC_DT_EOS_EOS Beschreibung Tabelle 7- 376 Delegate_II_EREC_DT_EOS_EOS - .NET (C#) delegate void Delegate_II_EREC_DT_EOS_EOS( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, EOperatingState in_PrevState, EOperatingState in_OperatingState Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 323 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.4 Delegate_II_EREC_DT_ELT_ELM Beschreibung Tabelle 7- 377 Delegate_II_EREC_DT_ELT_ELM - .NET (C#) delegate void Delegate_II_EREC_DT_ELT_ELM( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, ELEDType in_LEDType, ELEDMode in_LEDMode, Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 324 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.5 Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 Beschreibung Tabelle 7- 378 Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 - .NET (C#) delegate void Delegate_II_EREC_DT_UINT32_INT64_INT64_UINT32 ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_PipId, Int64 in_TimeSinceSameSyncPoint_ns, Int64 in_TimeSinceAnySyncPoint_ns, UInt32 in_SyncPointCount Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 325 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.6 Delegate_IRRTM Beschreibung Tabelle 7- 379 Delegate_IRRTM - .NET (C#) delegate void Delegate_IRRTM( Syntax IRemoteRuntimeManager in_Sender, Parameter • IRemoteRuntimeManager in_Sender: Eine Schnittstelle des Remote Runtime Managers, die dieses Ereignis emp- fängt. Rückgabewerte Keine 7.8.3.7 Delegate_SRCC_UINT32_UINT32_INT32 Beschreibung Tabelle 7- 380 Delegate_SRCC_UINT32_UINT32_INT32 - .NET (C#) delegate void Delegate_SRCC_UINT32_UINT32_INT32(...
  • Seite 326 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.8 Delegate_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32 Beschreibung Tabelle 7- 381 Delegate_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32 - .NET (C#) delegate void Delega- Syntax te_II_EREC_DT_SRICC_UINT32_UINT32_UINT32_UINT32( IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, EInstanceConfigChanged in_InstanceConfigChanged, UInt32 in_Param1, UInt32 in_Param2, UInt32 in_Param3, UInt32 in_Param4 Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 327 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.9 Delegate_II_EREC_DT_SDRI Beschreibung Tabelle 7- 382 Delegate_II_EREC_DT_SDRI - .NET (C#) delegate void Delegate_II_EREC_DT_SDRI ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, SDataRecordInfo in_DataRecordInfo Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 328 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.10 Delegate_II_EREC_DT_SDR Beschreibung Tabelle 7- 383 Delegate_II_EREC_DT_SDR - .NET (C#) delegate void Delegate_II_EREC_DT_SDR ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, SDataRecord in_DataRecord Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 329 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.11 Delegate_SREC_ST_UINT32_EPPET_UINT32 Beschreibung Tabelle 7- 384 Delegate_SREC_ST_UINT32_EPPET_UINT32 - .NET (C#) delegate void Delegate_SREC_ST_UINT32 ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier, EPullOrPlugEventType in_PullOrPlugEventType, UInt32 in_SequenceNumber Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 330 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.12 Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32 Beschreibung Tabelle 7- 385 Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32 - Native C++ delegate void Delegate_SREC_ST_UINT32_UINT32_EPET_UINT32( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier UInt32 in_Channel, EProcessEventType in_ProcessEventType, UInt32 in_SequenceNumber Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 331 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.13 Delegate_SREC_ST_UINT32 Beschreibung Tabelle 7- 386 Delegate_SREC_ST_UINT32 - .NET (C#) delegate void Delegate_SREC_ST_UINT32 ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. • ERuntimeErrorCode in_ErrorCode: Ein möglicher Fehlercode.
  • Seite 332 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.14 Delegate_SREC_ST_UINT32_UINT32 Beschreibung Tabelle 7- 387 Delegate_SREC_ST_UINT32_UINT32 - .NET (C#) delegate void Delegate_SREC_ST_UINT32 ( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier UInt32 in_SequenceNumber Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 333 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.3.15 Delegate_SREC_ST_UINT32_ERSFET Beschreibung Tabelle 7- 388 Delegate_SREC_ST_UINT32_ERSFET - .NET (C#) delegate void Delegate_SREC_ST_UINT32_ERSFET( Syntax IInstance in_Sender, ERuntimeErrorCode in_ErrorCode, DateTime in_DateTime, UInt32 in_HardwareIdentifier, ERackOrStationFaultType in_EventType Parameter • IInstance in_Sender: Eine Schnittstelle der Instanz, die dieses Ereignis empfängt. •...
  • Seite 334: Definitionen Und Konstanten

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.4 Definitionen und Konstanten Folgende Bezeichner werden in der API verwendet: Tabelle 7- 389 Definitionen - Native C++ Bezeichner Wert Beschreibung DINSTANCE_NAME_MAX_LENGTH Der eindeutige Name einer Instanz muss kleiner sein als dieser Wert. DSTORAGE_PATH_MAX_LENGTH Die maximale Pfadlänge zur virtuellen Memory Card.
  • Seite 335 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 390 Konstanten - .NET (C#) Bezeichner Wert Beschreibung Runti- Der eindeutige Name einer Instanz muss kleiner meConstants.InstanceNameLength sein als dieser Wert. Runti- Die maximale Pfadlänge zur virtuellen Memory meConstants.StoragePathMaxLength Card. Einschließlich der NULL-Terminierung. Runti- Die maximale Länge des Namens einer PLC- meConstants.TagNameMaxLength Variablen.
  • Seite 336 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.5.2 UDataValue Beschreibung Enthält den Wert einer PLC-Variable. Tabelle 7- 392 UDataValue - Native C++ union UDataValue Syntax bool Bool; INT8 Int8; INT16 Int16; INT32 Int32; INT64 Int64; UINT8 UInt8; UINT16 UInt16; UINT32 UInt32; UINT64 UInt64; float Float;...
  • Seite 337 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6 Strukturen 7.8.6.1 SDataValue Beschreibung Die Struktur enthält den Wert und den Typ einer PLC-Variablen. Tabelle 7- 393 SDataValue - Native C++ struct SDataValue Syntax UDataValue Value; EPrimitiveDataType Type; Member • UDataValue Value: Der Wert der PLC-Variablen •...
  • Seite 338 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 394 SDataValue - .NET (C#) struct SDataValue Syntax bool Bool { get; set; } Int8 Int8 { get; set; } Int16 Int16 { get; set; } Int32 Int32 { get; set; } Int64 Int64 { get; set; } UInt8 UInt8 { get;...
  • Seite 339 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.2 SDVBNI Beschreibung Diese Struktur ist nur für den internen Gebrauch. Ändern Sie diese Struktur nicht. Tabelle 7- 395 SDVBNI - Native C++ struct SDVBNI Syntax Tabelle 7- 396 SDVBNI - .NET (C#) struct SDVBNI Syntax 7.8.6.3 SDataValueByAddress Beschreibung...
  • Seite 340 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.4 SDataValueByAddressWithCheck Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihre Adresse aufgerufen wird. Tabelle 7- 399 SDataValueByAddressWithCheck - Native C++ struct SDataValueByAddressWithCheck Syntax UINT32 Offset; UINT8 Bit; SDataValue DataValue; ERuntimeErrorCode ErrorCode; bool ValueHasChanged; Tabelle 7- 400 SDataValueByAddressWithCheck - .NET (C#) struct SDataValueByAddressWithCheck Syntax...
  • Seite 341 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.6 SDataValueByNameWithCheck Beschreibung Diese Struktur repräsentiert eine PLC-Variable, die über ihren Namen aufgerufen wird. Tabelle 7- 403 SDataValueByNameWithCheck - Native C++ struct SDataValueByNameWithCheck Syntax WCHAR Name[DTAG_NAME_MAX_LENGTH]; SDataValue DataValue; ERuntimeErrorCode ErrorCode; SDVBNI Internal; bool ValueHasChanged; Tabelle 7- 404 SDataValueByNameWithCheck - .NET (C#) struct SDataValueByNameWithCheck Syntax...
  • Seite 342 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.8 SInstanceInfo Beschreibung Diese Struktur enthält eine IPv4-Adresse. Tabelle 7- 407 SInstanceInfo - Native C++ struct SInstanceInfo Syntax INT32 ID; WCHAR Name[DINSTANCE_NAME_MAX_LENGTH]; Member • INT32 ID: Die ID der Instanz • WCHAR Name[DINSTANCE_NAME_MAX_LENGTH]: Der Name der Instanz Tabelle 7- 408 SInstanceInfo - .NET (C#) struct SInstanceInfo...
  • Seite 343 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.10 STagInfo Beschreibung Diese Struktur enthält Informationen zu einer PLC-Variablen. Tabelle 7- 411 STagInfo - Native C++ struct STagInfo Syntax WCHAR Name[DTAG_NAME_MAX_LENGTH]; EArea Area; EDataType DataType; EPrimitiveDataType PrimitiveDataType; UINT16 Size; UINT32 Offset; UINT8 Bit; UINT8 DimensionCount; UINT32 Index;...
  • Seite 344 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 412 STagInfo - .NET (C#) public struct STagInfo Syntax String Name; EArea Area; EDataType DataType; EPrimitiveDataType PrimitiveDataType; UInt16 Size; UInt32 Offset; UInt8 Bit; UInt32 Index; UInt32 ParentIndex; SDimension[] Dimension; Member • String Name: Der Name der Variablen •...
  • Seite 345 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.11 Beschreibung Diese Struktur enthält eine IPv4-Adresse. Tabelle 7- 413 SIP - .NET (C#) struct SIP Syntax byte[] IPArray { get; set; } UInt32 IPDWord { get; set; } string IPString { get; set; } Member •...
  • Seite 346 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 415 SIPSuite4 - .NET (C#) struct SIPSuite4 Syntax SIP IPAddress; SIP SubnetMask; SIP DefaultGateway; Member • SIP IPAddress: Die IP-Adresse • SIP SubnetMask: Die Subnetzmaske • SIP DefaultGateway: Das Standard-Gateway S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 347 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.13 SOnSyncPointReachedResult Beschreibung Diese Struktur enthält die Ergebnisse des OnSyncPointReached-Ereignisses. Tabelle 7- 416 SOnSyncPointReachedResult - Native C++ struct SOnSyncPointReachedResult Syntax ERuntimeErrorCode ErrorCode; SYSTEMTIME SystemTime; UINT32 PipId; INT64 TimeSinceSameSyncPoint_ns; INT64 TimeSinceAnySyncPoint_ns; UINT32 SyncPointCount; Member • ERuntimeErrorCode ErrorCode: Ein möglicher Fehlercode (Seite 355).
  • Seite 348 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 417 SOnSyncPointReachedResult - .NET (C#) struct SOnSyncPointReachedResult Syntax ERuntimeErrorCode ErrorCode; DateTime SystemTime; UInt32 PipId; Int64 TimeSinceSameSyncPoint_ns; Int64 TimeSinceAnySyncPoint_ns; UInt32 SyncPointCount; Member • ERuntimeErrorCode ErrorCode: Ein möglicher Fehlercode (Seite 355). Wenn während der defnierten Zeit- spanne kein Ereignis ausgelöst wurde: ERuntimeErrorCode.Timeout •...
  • Seite 349 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.14 SDataRecordInfo Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen. Tabelle 7- 418 SDataRecordInfo - Native C++ struct SDataRecordInfo Syntax UINT32 HardwareId; UINT32 RecordIdx; UINT32 DataSize; Member • UINT32 HardwareId: Die ID des Hardware-Moduls (Hardware-Identifier) • UINT32 RecordIdx: Die Datensatznummer •...
  • Seite 350 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.15 SDataRecord Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen und Datensätze. Tabelle 7- 420 SDataRecord - Native C++ struct SDataRecord Syntax SDataRecordInfo Info; BYTE Data[DDATARECORD_MAX_SIZE]; Member • SDataRecordInfo Info: Die Datensatz-Information, siehe SDataRecordInfo (Seite 349) • BYTE Data[DDATARECORD_MAX_SIZE]: Die Feldgröße der Nutzdaten DDATARECORD_MAX_SIZE Tabelle 7- 421...
  • Seite 351 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.16 SConfiguredProcessEvents Beschreibung Diese Struktur enthält Informationen über die konfigurierten Prozessereignisse. Tabelle 7- 422 SConfiguredProcessEvents - Native C++ struct SConfiguredProcessEvents Syntax UINT16 HardwareIdentifier; UINT16 Channel; EProcessEventType ProcessEventType; WCHAR Name[DPROCESS_EVENT_NAME_MAX_LENGTH]; Member • UINT16 HardwareIdentifier: Die HW-Kennung • UINT16 Channel: Der Kanal des IO-Moduls, das das Prozessereignis generiert.
  • Seite 352 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.6.17 SDiagExtChannelDescription Beschreibung Diese Struktur enthält Lesen/Schreiben Datensatz-Informationen und Datensätze. Tabelle 7- 424 SDiagExtChannelDescription - Native C++ struct SDiagExtChannelDescription Syntax UINT16 ChannelNumber; UINT16 ErrorType; UINT16 ExtErrorType; EDiagSeverity Severity; EDiagProperty Direction; Member • UINT16 ChannelNumber: Wenn sich der Alarm auf einen bestimmten Kanal des IO-Device bezieht (z. B. Kurzschluss), dann muss dieser Parameter die Nummer des gestörten Kanals enthalten.
  • Seite 353 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 425 SDiagExtChannelDescription - .NET (C#) struct SDiagExtChannelDescription Syntax UInt16 ChannelNumber; UInt16 ErrorType; UInt16 ExtErrorType; EDiagSeverity Severity; EDiagProperty Direction; Member • UInt16 ChannelNumber: Wenn sich der Alarm auf einen bestimmten Kanal des IO-Device bezieht (z. B. Kurzschluss), dann muss dieser Parameter die Nummer des gestörten Kanals enthalten.
  • Seite 354 Anwenderschnittstellen (API) 7.8 Datentypen Die folgende Tabelle enthält Fehlertypen für "Remote ExtChannelErrorType ChannelErrorType mismatch": Tabelle 7- 427 Fehlertypen ExtChannelErrorType Wert Bedeutung Gebrauch 0x0000 Reserviert 0x0001 bis 0x7FFF Herstellerkennung Alarm/Diagnose 0x8000 Peer name of station mismatch Alarm/Diagnose 0x8001 Peer name of port mismatch Alarm/Diagnose 0x8002 Peer RT_CLASS_3 mismatch...
  • Seite 355: Aufzählungen

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7 Aufzählungen Folgende Aufzählungen stehen zur Verfügung: ● ERuntimeErrorCode (Seite 355) ● EArea (Seite 358) ● EOperatingState (Seite 358) ● EOperatingMode (Seite 359) ● ECPUType (Seite 360) ● ECommunicationInterface (Seite 362) ● ELEDType (Seite 362) ● ELEDMode (Seite 363) ●...
  • Seite 356 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 428 ERuntimeErrorCode - Native C++ enum ERuntimeErrorCode Syntax SREC_ISyntaxenum ERuntimeErrorCode{ SREC_OK = 0, SREC_INVALID_ERROR_CODE = -1, SREC_NOT_IMPLEMENTED = -2, SREC_INDEX_OUT_OF_RANGE = -3, SREC_DOES_NOT_EXIST = -4, SREC_ALREADY_EXISTS = -5, SREC_UNKNOWN_MESSAGE_TYPE = -6, SREC_INVALID_MESSAGE_ID = -7, SREC_WRONG_ARGUMENT = -8, SREC_WRONG_PIPE = -9, SREC_CONNECTION_ERROR = -10,...
  • Seite 357 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 429 ERuntimeErrorCode - .NET (C#) enum ERuntimeErrorCode Syntax OK = 0, InvalidErrorCode = -1, NotImplemented = -2, IndexOutOfRange = -3, DoesNotExist = -4, AlreadyExists = -5, UnknownMessageType = -6, InvalidMessageId = -7, WrongArgument = -8, WrongPipe = -9, ConnectionError = -10, Timeout = -11,...
  • Seite 358 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.2 EArea Beschreibung Diese Aufzählung enthält alle PLC-Areas, die verfügbare PLC-Variablen beinhalten. Tabelle 7- 430 EArea - Native C++ enum EArea Syntax SRA_INVALID_AREA = 0, SRA_INPUT = 1, SRA_MARKER = 2, SRA_OUTPUT = 3, SRA_COUNTER = 4, SRA_TIMER = 5, SRA_DATABLOCK = 6, SRA_ENUMERATION_SIZE = 7...
  • Seite 359 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 433 EOperatingState - .NET (C#) enum EOperatingState Syntax InvalidOperatingState = 0, Off = 1, Booting = 2, Stop = 3, Startup = 4, Run = 5, Freeze = 6, ShuttingDown = 7, Hold = 8 7.8.7.4 EOperatingMode Beschreibung...
  • Seite 360 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.5 ECPUType Beschreibung Diese Aufzählung enthält alle CPU-Typen, die auf einen virtuellen Controller geladen werden können. Tabelle 7- 436 ECPUType - Native C++ Syntax enum ECPUType SRCT_1500_Unspecified = 0x000005DC, SRCT_1511 = 0x000005E7, SRCT_1511v2 = 0x010005E7, SRCT_1511v3 = 0x020005E7 SRCT_1513 = 0x000005E9, SRCT_1513v2 = 0x010005E9, SRCT_1513v3 = 0x020005E9...
  • Seite 361 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 437 ECPUType - .NET (C#) Syntax enum ECPUType CPU1500_Unspecified = 0x000005DC, CPU1511 = 0x000005E7, CPU1511v2 = 0x010005E7, CPU1513 = 0x000005E9, CPU1513v2 = 0x010005E9, CPU1511v3 = 0x020005E7, CPU1515 = 0x000005EB, CPU1515v2 = 0x010005EB, CPU1513v3 = 0x020005E9, CPU1516 = 0x000005EC, CPU1516v2 = 0x010005EC, CPU1517 = 0x000005ED,...
  • Seite 362 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.6 ECommunicationInterface Beschreibung Diese Aufzählung enthält die verfügbaren Kommunikationsschnittstellen eines virtuellen Controllers. Tabelle 7- 438 ECommunicationInterface - Native C++ enum ECommunicationInterface Syntax SRCI_NONE = 0, SRCI_SOFTBUS = 1, SRCI_TCPIP = 2, SRCI_ENUMERATION_SIZE = 3 Tabelle 7- 439 ECommunicationInterface - .NET (C#) enum ECommunicationInterface Syntax...
  • Seite 363 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.8 ELEDMode Beschreibung Diese Aufzählung enthält alle LED-Zustände eines virtuellen Controllers. Tabelle 7- 442 ELEDMode - Native C++ enum ELEDMode Syntax SRLM_OFF = 0, SRLM_ON = 1, SRLM_FLASH_FAST = 2, SRLM_FLASH_SLOW = 3, SRLM_INVALID = 4 Tabelle 7- 443 ELEDMode - .NET (C#) enum ELEDMode...
  • Seite 364 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 445 EPrimitiveDataType - .NET (C#) enum EPrimitiveDataType Syntax Unspecific = 0, Struct = 1, Bool = 2, Int8 = 3, Int16 = 4, Int32 = 5, Int64 = 6, UInt8 = 7, UInt16 = 8, UInt32 = 9, UInt64 = 10, Float = 11,...
  • Seite 365 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 447 Kompatible primitive Datentypen - Schreiben PLCSIM Advanced Instanz Bool INT8 INT16 INT32 INT64 UINT8 UINT16 UINT32 UINT6 Float Double Char WChar Bool INT8 INT16 INT32 INT64 UINT8 UINT16 UINT32 UINT64 Float Double Char WChar S7-PLCSIM Advanced Funktionshandbuch, 12/2017, A5E37039506-AB...
  • Seite 366 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.10 EDataType Beschreibung Diese Aufzählung enthält alle PLC-Datentypen (STEP 7). Tabelle 7- 448 EDataType - Native C++ enum EDataType Syntax SRDT_UNKNOWN = 0, SRDT_BOOL = 1, SRDT_BYTE = 2, SRDT_CHAR = 3, SRDT_WORD = 4, SRDT_INT = 5, SRDT_DWORD = 6, SRDT_DINT = 7, SRDT_REAL = 8,...
  • Seite 367 Anwenderschnittstellen (API) 7.8 Datentypen SRDT_NREF = 98, SRDT_CREF = 101, SRDT_AOM_IDENT = 128, SRDT_EVENT_ANY = 129, SRDT_EVENT_ATT = 130, SRDT_EVENT_HWINT = 131, SRDT_HW_ANY = 144, SRDT_HW_IOSYSTEM = 145, SRDT_HW_DPMASTER = 146, SRDT_HW_DEVICE = 147, SRDT_HW_DPSLAVE = 148, SRDT_HW_IO = 149, SRDT_HW_MODULE = 150, SRDT_HW_SUBMODULE = 151, SRDT_HW_HSC = 152,...
  • Seite 368 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 449 EDataType - .NET (C#) public enum EDataType Syntax Unknown = 0, Bool = 1, Byte = 2, Char = 3, Word = 4, Int = 5, DWord = 6, DInt = 7, Real = 8, Date = 9, TimeOfDay = 10, Time = 11,...
  • Seite 369 Anwenderschnittstellen (API) 7.8 Datentypen Hw_SubModule = 151, Hw_Hsc = 152, Hw_Pwm = 153, Hw_Pto = 154, Hw_Interface = 155, Hw_IEPort = 156, OB_Any = 160, OB_Delay = 161, OB_Tod = 162, OB_Cyclic = 163, OB_Att = 164, Conn_Any = 168, Conn_Prg = 169, Conn_Ouc = 170, Conn_R_ID = 171,...
  • Seite 370 Anwenderschnittstellen (API) 7.8 Datentypen Tabelle 7- 451 ETagListDetails - .NET (C#) enum ETagListDetails Syntax None = 0, IO = 1, M = 2, IOM = 3, CT = 4, IOCT = 5, MCT = 6, IOMCT = 7, DB = 8, IODB = 9, MDB = 10, IOMDB = 11,...
  • Seite 371: Einstanceconfigchanged

    Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.13 EInstanceConfigChanged Beschreibung Diese Aufzählung enthält alle möglichen Ursachen für ein OnConfigurationChanged- Ereignis, das der virtuelle Controller sendet. Tabelle 7- 454 EInstanceConfigChanged - Native C++ enum EInstanceConfigChanged Syntax SRICC_HARDWARE_SOFTWARE_CHANGED = 0, SRICC_IP_CHANGED = 1 Tabelle 7- 455 EInstanceConfigChanged - .NET (C#) enum EInstanceConfigChanged Syntax...
  • Seite 372 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.15 EProcessEventType Beschreibung Diese Aufzählung enthält vordefinierte Typen von Prozessereignissen für S7-Module. Tabelle 7- 458 EProcessEventType - Native C++ enum EProcessEventType Syntax SR_PET_UNDEFINED = 0, SR_PET_RISING_EDGE = 1, SR_PET_FALLING_EDGE = 2, SR_PET_LIMIT1_UNDERRUN = 3, SR_PET_LIMIT1_OVERRUN = 4, SR_PET_LIMIT2_UNDERRUN = 5, SR_PET_LIMIT2_OVERRUN = 6 Tabelle 7- 459...
  • Seite 373 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.17 EDiagProperty Beschreibung Diese Aufzählung enthält die Kommend-/Gehend-Information der Diagnosemeldung. Tabelle 7- 462 EDiagProperty - Native C++ enum EDiagProperty Syntax SRP_DIAG_APPEAR = 1, SRP_DIAG_DISAPPEAR = 2 Tabelle 7- 463 EDiagProperty - .NET (C#) enum EDiagProperty Syntax Appear = 1, Disappear = 2 7.8.7.18...
  • Seite 374 Anwenderschnittstellen (API) 7.8 Datentypen 7.8.7.19 ERackOrStationFaultType Beschreibung Diese Aufzählung enthält die Typen des RackOrStationFault-Ereignisses. Tabelle 7- 466 ERackOrStationFaultType - Native C++ enum ERackOrStationFaultType Syntax SR_RSF_FAULT = 0, SR_RSF_RETURN = 1 Tabelle 7- 467 ERackOrStationFaultType - .NET (C#) enum ERackOrStationFaultType Syntax Fault = 0, Return = 1 S7-PLCSIM Advanced...
  • Seite 375: Einschränkungen

    Einschränkungen Ü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. Einschränkungen und mögliche Abhilfen finden Sie in folgenden Kapiteln: ● Einschränkungen bei Fehlersicheren CPUs (Seite 376) ●...
  • Seite 376: Einschränkungen Bei Fehlersicheren Cpus

    Einschränkungen 8.2 Einschränkungen bei Fehlersicheren CPUs Einschränkungen bei Fehlersicheren CPUs Fehler beim Download von Programmänderungen Beim Download von Programmänderungen auf eine F-CPU kommt es zur Fehlermeldung "korrupt". Die F-CPU bleibt im Betriebszustand STOP, wenn das Optionskästchen "Alle starten" aktiviert ist. Abhilfe Deaktivieren Sie im Dialog "Ergebnisse des Ladevorgangs"...
  • Seite 377: Zertifikate

    Einschränkungen 8.3 OPC UA Server Zertifikate Hinweis Server-Zertifikat PLCSIM Advanced nutzt nicht das Zertifikat aus STEP 7, sondern ein eigenes Zertifikat in der Firmware. Das Zertifikat muss für Simulationen nicht geändert werden. Es besitzt aber nicht dieselbe Sicherheitsstufe wie ein heruntergeladenes Server-Zertifikat und kann nicht für sichere Verbindungen benutzt werden! ●...
  • Seite 378: Webserver Konfigurieren

    Einschränkungen 8.4 Webserver Webserver Der in eine CPU integrierte Webserver ermöglicht die Überwachung und Verwaltung der CPU durch berechtigte Nutzer über ein Netzwerk. Auswertungen und Diagnose sind somit über große Entfernungen möglich. Jede PLCSIM Advanced Instanz kann ihren eigenen Webserver simulieren. Die Simulation des Webservers ist unter S7-PLCSIM Advanced V2.0 eingeschränkt: ●...
  • Seite 379: Projektierung Einer Plcsim Advanced Instanz Sichern Und Wiederherstellen

    Einschränkungen 8.5 Projektierung einer PLCSIM Advanced Instanz sichern und wiederherstellen Projektierung einer PLCSIM Advanced Instanz sichern und wiederherstellen Projektierung sichern und wiederherstellen Ab PLCSIM Advanced V2.0 ist es möglich, eine PLCSIM Advanced Instanz zu sichern und wiederherzustellen. Sie können beliebig viele Sicherungen anlegen und so unterschiedliche Projektierungen für eine PLCSIM Advanced Instanz vorhalten.
  • Seite 380: Einschränkungen Bei Dateipfaden

    Einschränkungen 8.6 Einschränkungen bei Dateipfaden Einschränkungen bei Dateipfaden Für Anwenderschnittstellen, die als Übergabeparameter einen Pfad oder einen vollständigen Dateinamen erwarten, gelten folgende Einschränkungen: Einschränkungen bei Schreibrechte auf systemkritische Verzeichnisse, wie das Windows- lokalen Pfaden Verzeichnis (%Windows%) oder die Programmverzeichnisse (%Program Files%, %Program Files (x86)%) sind nicht erlaubt.
  • Seite 381: Einschränkungen Bei Anweisungen

    Einschränkungen 8.8 Einschränkungen bei Anweisungen Einschränkungen bei Anweisungen PLCSIM Advanced simuliert Anweisungen für die CPUs S7-1500 und ET 200SP so realitätsnah wie möglich. PLCSIM Advanced prüft die Eingangsparameter auf Gültigkeit und gibt 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.
  • Seite 382: Einschränkungen Bei Motion Control

    Einschränkungen 8.9 Einschränkungen bei Motion Control Einschränkungen bei Motion Control 8.9.1 MCR und EMCR Auf jeder CPU gibt es Motion Control-Ressourcen (MCR) und Erweiterte Motion Control- Ressourcen (EMCR), die auf die Technologieobjekte verteilt werden können. Hinweis PLCSIM Advanced unterstützt nicht das gesamte Mengengerüst der MCR und EMCR. Die Simulation der Bewegungssteuerung ist daher für folgende CPUs eingeschränkt: Tabelle 8- 1 CPUs mit eingeschränkten Motion Control-Ressourcen (MCR, EMCR) bei der Simulation Motion Control-Ressourcen...
  • Seite 383: Überschreiten Des Mengengerüsts

    Motion Control-Anweisungen nicht unterstützt. Weitere Informationen Weitere Informationen zu Motion Control erhalten Sie in folgenden Handbüchern: ● Gerätehandbücher zu den unterstützen SIMATIC Controllern (https://support.industry.siemens.com/cs/ww/de/view/109744173) ● Funktionshandbuch S7-1500 Motion Control (https://support.industry.siemens.com/cs/ww/de/view/109739589) ● Funktionshandbuch S7-1500T Motion Control (https://support.industry.siemens.com/cs/ww/de/view/109481326)
  • Seite 384: Einschränkungen Bei Lokaler Kommunikation Über Softbus

    Einschränkungen 8.10 Einschränkungen bei lokaler Kommunikation über Softbus 8.10 Einschränkungen bei lokaler Kommunikation über Softbus Identische IP-Adressen für Instanzen Wenn die Kommunikationsschnittstelle "PLCSIM" (Softbus) eingestellt ist, dann werden beim Erstellen der Instanzen über das Control Panel automatisch für alle Instanzen identische IP-Adressen erstellt.
  • Seite 385 Einschränkungen 8.11 Einschränkung der Sicherheit bei VMware vSphere Hypervisor (ESXi) 8.11 Einschränkung der Sicherheit bei VMware vSphere Hypervisor (ESXi) Wenn Sie die Virtualisierungsplattform VMware vSphere Hypervisor (ESXi) verwenden, müssen Sie die Richtlinienausnahmen ändern, um die Kommunikation über TCP/IP nutzen zu können. Abhilfe Akzeptieren Sie für den Virtual Switch des ESXi die Optionen "Promiscuous-Modus"...
  • Seite 386: Fehler Bei Überlauf Zyklischer Ereignisse Und Motion Obs

    Einschränkungen 8.12 Fehler bei Überlauf zyklischer Ereignisse und Motion OBs 8.12 Fehler bei Überlauf zyklischer Ereignisse und Motion OBs Wenn Ihre Simulation Weckalarme enthält, kann die Warteschlange von PLCSIM Advanced für zyklische Ereignisse und für Motion OBs, überlaufen. Aufgrund der Ablaufgeschwindigkeit von PLCSIM Advanced im Vergleich zu realer Hardware kann die benötigte Zeit zur Erstellung des Diagnosepuffereintrags länger sein als die Zeit bis zum nächsten Weckalarm.
  • Seite 387: Mehrfache Simulationen Und Mögliche Kollision Der Ip-Adressen

    Einschränkungen 8.14 Mehrfache Simulationen und mögliche Kollision der IP-Adressen 8.14 Mehrfache Simulationen und mögliche Kollision der IP-Adressen Sie können gleichzeitige mehrere CPUs simulieren, aber jede simulierte CPU-Schnittstelle benötigt eine eindeutige IP-Adresse. Stellen Sie sicher, dass Ihre CPUs unterschiedliche IP-Adressen haben, bevor Sie die Simulationen starten.
  • Seite 388: Liste Der Abkürzungen

    Liste der Abkürzungen Abkürzung Begriff Automation License Manager Werkzeug zur Verwaltung von License Keys in STEP 7 Application Programming Interface - Anwenderschnittstelle Address resolution protocol Binary Coded Decimal Central Processing Unit (Synonym für PLC) EMCR Erweiterte Motion Control-Ressourcen Engineering System Human Machine Interface - Benutzerschnittstelle Industrial Ethernet Graphical User Interface...

Diese Anleitung auch für:

Simatic s7-plcsim advanced