Aufbau der Software
openTCS ist vollständig in der Programmiersprache Java implementiert und somit auf jeder Betriebssystemplattform lauffähig, für die eine Java-Laufzeitumgebung (mindestens Version 1.8) existiert.
Die Software kann daher z.B. auf einem Linux-/Unix-System ebenso eingesetzt werden wie auf einem Windows-System.
Systemkomponenten
Das gesamte Softwarepaket besteht aus mehreren Komponenten, mit denen ein vollständiges Leitsystem realisierbar ist:
Kernel
Der Kernel nimmt die zentrale Position im Leitsystem ein. Hier werden der Zustand des Gesamtsystems abgebildet, Transportaufträge an Fahrzeuge vergeben, Fahrtrouten berechnet und Streckenfreigaben erteilt. Außerdem werden Schnittstellen für Bedieneroberflächen sowie für Hosts, die eine übergeordnete Prozesssteuerung übernehmen, zur Verfügung gestellt.
Der Kernel stellt darüber hinaus einen Rahmen und einheitliche Schnittstellen für Fahrzeugtreiber zur Verfügung. Fahrzeugtreiber übersetzen abstrakte Fahraufträge des Kernels in das zum jeweiligen Fahrzeug passende Kommunikationsprotokoll und setzen umgekehrt Meldungen der Fahrzeuge in einheitliche Zustandsbeschreibungen für den Kernel um. So ist ein Fahrzeugtreiber die einzige Komponente im System, welche die typspezifischen Eigenschaften eines Fahrzeugs kennen muss und mit ihnen arbeitet. Lieferanten können neue Treiber für eigene Fahrzeuge entwickeln und diese nach dem Plug-In-Konzept in den Kernel laden.
Anlagenübersicht
Über die graphische Bedieneroberfläche der Anlagenübersicht können interaktiv Fahrkurse angelegt und geändert und damit Transportsysteme modelliert werden. Neben den wichtigsten Informationen über die Topologie der jeweiligen Anlage - Melde-/Haltepunkte, Lastwechselstationen und Wege, auf denen die Fahrzeuge sich bewegen - können hier weitere Daten wie fahrzeug- und streckenabhängige Höchstgeschwindigkeiten hinterlegt werden.
Außerdem dient die Anlagenübersicht während des Betriebs zur Visualisierung des Anlagenzustandes. Dazu gehört u.a. die Darstellung der gegenwärtigen Fahrzeugpositionen und der zukünftigen Fahrtrouten. Sie kann außerdem zur manuellen Eingabe von Transportaufträgen durch einen Bediener genutzt werden und erlaubt Eingriffe im Störungsfall wie das Entziehen von Aufträgen.