Scripting in Vissim
|
|
Hinweis: Vissim-Demo-Versionen unterstützen nicht das Ausführen von Skripten über die COM-Schnittstelle. |
|
|
Hinweis: Microsoft ersetzt VBS |
Einsatzzweck der Scripting-API mit dem Zusatzmodul COM-Schnittstelle
Vissim verfügt über eine Scripting-API, die das Zusatzmodul COM-Schnittstelle verwendet (
Wikipedia: Component Object Model, (Übersicht Zusatzmodule). Dies können Sie beispielsweise für folgende Zwecke einsetzen:
- Vorbereitung und Nachverarbeitung von Daten
- Effizient den Ablauf für die Untersuchung von Szenarien steuern
- Steuerungsalgorithmen einbinden, die Sie selbst definiert haben
- Zugriff auf alle Attribute der Netzobjekte
Möglichkeiten, die COM-Schnittstelle für die Interaktion mit Vissim zu verwenden
Sie können Skripte extern und intern verwenden. Die beiden Möglichkeiten unterscheiden sich in folgenden technischen Aspekten:
-
Externe Skripte (Anforderungen und Hinweise für externe Skripte): Vissim startet und steuert ein externes Skript über COM. Dabei sind Ihr eigenes Skript und Vissim zwei separate Windows-Prozesse, die über COM miteinander kommunizieren. Sie können jede Programmiersprache verwenden, die COM unterstützt, beispielsweise Python, C++, Java
-
Interne Skripte (Anforderungen und Hinweise für interne Skripte): Sie können Skripte direkt ausführen oder zu bestimmten Zeitpunkten während des Simulationslaufs:
- ► Wählen Sie im Menü Aktionen > Ereignisbasierte Skripte.
oder
- ► Wählen Sie im Menü Aktionen > Skriptdatei ausführen.
Ausschließlich Python-Skripte und VBS-Skripte werden unterstützt. Interne Skripte werden innerhalb des aktuellen Vissim-Prozesses ausgeführt. Dadurch ist die Geschwindigkeit, mit der interne Skripte ausgeführt werden, in der Regel höher als bei externen Skripten. Es gelten Einschränkungen (Anforderungen und Hinweise für interne Skripte).
Video: Scripting in PTV Vissim using the COM interface
|
Hinweis: Die Wiedergabe des Videos in Vollansicht ist nur in Google Chrome und Microsoft Edge möglich. Zur Ansicht in anderen Browsern klicken Sie auf den Titel des Videos in der Voransicht. |
Einführung in COM-Programmierung und COM API-Referenz
Eine Einführung in die COM-Programierung, Informationen zu den verfügbaren Funktionen und den zugehörigen Kommandos finden Sie in englischer Sprache in der Vissim - COM API reference, die Sie im Browser anzeigen können:
- ► Wählen Sie im Menü Hilfe > COM-Hilfe.
Beispiele dazu finden Sie standardmäßig in folgendem Verzeichnis:
- ..\Benutzer\Öffentlich\Öffentliche Dokumente\PTV Vision\ PTV Vissim 2025\Examples Training\COM\
Anforderungen und Hinweise für externe Skripte
Um Vissim zu starten und mit Vissim zu interagieren, können Sie jede Programmiersprache verwenden, die COM unterstützt. Informationen und Beispiele finden Sie standardmäßig in folgendem Verzeichnis:
..\Benutzer\Öffentlich\Öffentliche Dokumente\PTV Vision\ PTV Vissim 2025\Examples Training\COM\Basic Commands.
Python-Versionen
Verwenden Sie die Python-Version Ihrer Wahl, mindestens Python 3.9 64-Bit.
Vissim verwendet für die mit Vissim ausgelieferten Beispiele das Python-Paket pywin32, um COM in Python zu unterstützen.
Anforderungen und Hinweise für interne Skripte
Vissim unterstützt als interne Skripte ausschließlich Python- und VBS-Skripte.
Ein Beispiel finden Sie standardmäßig in folgendem Verzeichnis:
..\Examples Training\COM\Drop-off Zone.
Die globale Variable Vissim ist in den Skripten direkt verfügbar und ist eine IVissim-Schnittstelle, die auf die Vissim-Instanz verweist, die das Skript gestartet hat. Informationen finden Sie in der Vissim- COM API reference.
Das interne Skript wird direkt aus Vissim im Vissim-Prozess ausgeführt. Deshalb brauchen Sie Vissim nicht manuell zu starten. Bei Bedarf können Sie weitere Instanzen von Vissim starten. Dafür müssen Sie über entsprechende Lizenzen verfügen. In Bezug auf weitere, gestartete Instanzen von Vissim behandelt Vissim das Skript als externes Skript.
Zusätzlich können Sie die Variable CurrentScript verwenden, um einen Verweis auf das aktuelle Skript zu erstellen, beispielsweise, um dort auf benutzerdefinierte Attribute zuzugreifen.
Das Debuggen interner Skripte ist schwieriger als das Debuggen externer Skripte, da Vissim die Skripte selbst startet, Sie selbst können ein internes Skript nicht direkt in einem Debugger starten.
Abhängig vom Anwendungsfall kann es sinnvoll sein, das Skript zunächst als externes Skript zu schreiben und es anschließend in ein internes Skript zu konvertieren.
Sie können zudem die Funktion IVissim.Log verwenden, um Debug-Meldungen in die Liste Meldungen von Vissim zu schreiben.
Python als Teil der Vissim-Installation
Standardmäßig ist im Vissim-Installationsverzeichnis Python im folgenden Verzeichnis installiert:
..\Exe\Python
Diese Installation wird von jedem Python-Skript verwendet, das innerhalb von Vissim ausgeführt wird. Deshalb müssen Sie Python nicht manuell installieren, um interne Skripte auszuführen. .Vissim verwendet das Python-Paket pywin32, um COM in Python zu unterstützen.
|
Hinweis: Verändern Sie nicht das mit Vissim installierte Python, installieren Sie beispielsweise nicht zusätzliche Pakete, um diese in internen Skripten verfügbar zu machen. Veränderungen können Probleme verursachen, beispielsweise:
|
Zusätzliche Pakete in internen Skripten
1. Zeigen Sie im Windows Explorer das Verzeichnis an, in dem die Python-Version mit Vissim installiert wurde.
Dies ist standardmäßig das Verzeichnis ..\Exe\Python.
2. Klicken Sie mit der rechten Maustaste auf die Datei python.exe und wählen Sie im Kontextmenü Eigenschaften > Details.
3. Ermitteln Sie die Produktversion, die dort angezeigt ist.
Für Vissim 2026 ist dies beispielsweise Python 3.13.
4. Laden Sie von
https://www.python.org/ dieselbe Hauptversion herunter, beispielsweise Python 3.13.* in 64 Bit für Vissim 2026.
5. Installieren Sie diese Python-Version außerhalb des Vissim-Installationsverzeichnisses auf Ihrem Computer.
6. Erstellen Sie eine dedizierte virtuelle Umgebung venv für diese Installation in einem Verzeichnis außerhalb des Vissim-Installationsverzeichnisses und außerhalb des Python-Installationsverzeichnisses, beispielsweise in Ihrem Home-Verzeichnis:
py.exe -3.13 -m venv "C:\Users\<name>\python313_venv_vissim"
7. Installieren Sie die gewünschten Pakete in dieser venv, beispielsweise pandas:
C:\Users\<name>\python313_venv_vissim\Scripts\pip.exe install pandas
8. Fügen Sie in Ihrem internen Skript den Pfad zum venv-Verzeichnis am Anfang des Skripts zur sys.path-Liste hinzu, beispielsweise:
import sys
sys.path.append(r"C:\Users\<name>\python313_venv_vissim\Lib\site-packages")
|
Hinweise:
|
Über die COM-Schnittstelle auf Attribute zugreifen
Sie können auf alle Attribute der Netzobjekte mit der Methode AttValue lesend zugreifen. Schreibender Zugriff ist nicht auf alle Attribute möglich. In der COM-Hilfe gibt für jedes Attribut die Zeile Editable mit dem Wert True oder False an, ob auf das Attribut schreibend zugegriffen werden kann oder nicht.
Übergeordnetes Thema:
Programmierschnittstellen (API)
Informationen zum Bearbeiten:
Externe LSA-Steuerungsverfahren aktivieren
Externes Fahrermodell über Driver Model DLL-Datei aktivieren

