Unten finden Sie die Unterschiede von Release 3.00 gegenüber Release 0.0.2.3.
Für Release 3.00 ist zudem ein neues Handbuch verfügbar.
OC32-Versionen 0.0.3.x sind temporäre Beta-Versionen, die mit Einführung von 3.00 hinfällig geworden sind und nicht mehr unterstützt werden. 3.00 ist somit neuer als 0.0.3.x.
Achtung: Sowohl die OC32-Firmware als auch OC32Config wurden grundlegend geändert:
- Die Abwärtskompatibilität ist funktionell im Prinzip gut, mit Ausnahme einiger entfernter (stark veralteter) Funktionen (eine OC32, die Sie von 0.0.2.x auf 3.00 aktualisieren, sollte also wie bisher funktionieren).
- Die gegenseitige Kompatibilität von OC32 3.00 mit OC32Config 0.0.2.x und umgekehrt ist schlecht. Verwenden Sie OC32Config 3.00 daher nur in Kombination mit OC32 3.00 und OC32Config 0.0.2.x nur in Kombination mit 0.0.2.x.
Gerätekonfiguration
Die OC32-Gerätekonfiguration wurde grundlegend überarbeitet. Bisher war es so, dass eine Gerätedefinition geladen werden konnte, diese Definition in OC32Config und der OC32 jedoch zu einer Sammlung einzelner Pins wurde.
Ab Version 3.00 erkennen OC32Config und die OC32 den Zusammenhang der Pins als „Gerät“. Dadurch kann OC32Config auch alle zu diesem Gerät gehörenden Definitionen mit einer Taste in die OC32 schreiben und mit einer Taste aus ihr auslesen. Die Anzahl der Tasten in OC32Config unter „Device Configuration“ zum Schreiben und Lesen von Definitionen in die bzw. aus der OC32 wurde dadurch stark reduziert, was die Bedienung für „normale Benutzer“ hoffentlich deutlich übersichtlicher macht. Die alten Tasten sind zwar noch vorhanden, befinden sich jedoch hinter einem „Expert Mode“.
In OC32Config wurde die Möglichkeit hinzugefügt, ein selbst erstelltes oder angepasstes Gerät als „DeviceDefinition“ auf dem Dateisystem Ihres PCs zu speichern.
OC32 eXtended Addressing (Erweiterte Adressierung)
Sie können einer OC32 eine „eXtended Address“ von 0 bis 95 zuweisen. Die normale Moduladresse wird in diesem Moment zu einer Channel Address (Kanal). Die eXtended Address bildet zusammen mit der Channel Address eine eindeutige Adresse. Auf diese Weise stehen 16 * 96 = 1536 Moduladressen zur Verfügung.
In der Praxis werden Sie diese Adressen niemals alle benötigen. Die Idee ist, dass Sie entweder die normale Adressierung oder die erweiterte Adressierung verwenden, und zwar auf einem Kanal. Andernfalls wird es sehr unübersichtlich. Sie können jedoch die Kanalnummern geschickt nutzen: Verwenden Sie beispielsweise Kanalnummer 1 für die normale (operative) Steuerung. Wenn Sie bereits einige OC32-Module aktiv haben (auf Kanal 1) und ein zusätzliches Modul hinzufügen möchten, stellen Sie dieses Modul auf Kanal 0. Sie können dieses Modul dann konfigurieren, ihm die gewünschte erweiterte Adresse zuweisen usw. Wenn Sie fertig sind, stellen Sie das Modul auf Kanal 1 um, und es kann mit den restlichen Modulen zusammenarbeiten.
Die Zuweisung einer eXtended Address an ein Modul erfolgt mit OC32Config auf der Registerkarte „General“. Es ist am sinnvollsten, dies zu tun, während Sie die eXtended Addressing für das betreffende Modul noch nicht verwenden. Denn wenn Sie einem Modul eine Adresse zuweisen möchten, das noch keine bekannte eXtended Address hat, weiß dieses Modul nicht, auf welche eXtended Address es hören soll. Daher ist es auch praktisch, einen separaten Kanal für solche Zwecke zu reservieren.
Die Auswahl der eXtended Address des Moduls, mit dem Sie tatsächlich kommunizieren möchten, erfolgt oben im OC32Config-Fenster.
Neben einer eXtended Address gibt es auch eine eXtended Group Mask. Es wird demnächst auch möglich sein, bestimmte Funktionen der OC32 pro Modulgruppe zu steuern. Einen solchen Befehl senden Sie dann an eine Gruppe innerhalb eines Kanals. Jede OC32 kann Mitglied keiner, einer oder mehrerer Gruppen sein. Es sind 16 Gruppen definiert.
OM32 Flexible Addressing
Viele Digitalsysteme werden noch nicht in der Lage sein, die OC32 mittels eXtended Addressing anzusteuern. Zum Zeitpunkt der Erstellung dieses Textes ist dies bei keinem System der Fall, nicht einmal bei Dinamo. Einige Systeme werden dies höchstwahrscheinlich nie können, da sie nicht mehr weiterentwickelt werden, wie z. B. Koploper.
Sie können mit der OC32 über zwei Protokolle kommunizieren. Obwohl diese Protokolle parallel verwendet werden können, sind sie grundlegend verschieden. Für die Konfiguration und das Testen der OC32 nutzt OC32Config das OC32-Protokoll. Auch operative Steuerungssoftware kann dieses OC32-Protokoll nutzen. Das OC32-Protokoll ist bidirektional und erlaubt nun (wie oben beschrieben) auch eXtended Addressing, sodass Ihnen genügend Adressen zur Verfügung stehen, um alles zu steuern.
Zusätzlich versteht die OC32 das „alte“ OM32-Protokoll. Das OM32-Protokoll kennt kein eXtended Addressing und ist auf 16 Module * 32 Pins, also 512 „Ausgänge“, begrenzt.
Bei OM32 Flexible Addressing nutzen wir den Adressraum für die 512 Adressen als linearen Adressraum. Die Adressen werden also nicht mehr auf 16 Module verteilt, sondern Sie können diese Adressen beliebig auf so viele Module verteilen, wie Sie verwenden, sofern die Gesamtzahl der benötigten Adressen 512 nicht überschreitet. In der Praxis führt dies oft zu einer deutlich effizienteren Nutzung der Adressen. Ein niederländisches Signal mit 3 Lampen belegt beispielsweise 3 Pins, kann aber über eine Adresse gesteuert werden. Ein deutsches Ausfahrsignal mit Vorsignal belegt 9 Pins, kann aber ebenfalls mit einer Adresse gesteuert werden. Mit anderen Worten: Fast jedes „Gerät“ belegt mehrere Pins und in der „alten“ Situation somit mehrere Adressen, kann aber über eine einzige Adresse gesteuert werden.
Sie können nun jedem Pin 0 bis 6 OM32-Adressen zuweisen. Dem ersten Pin des Geräts geben Sie eine Adresse, den folgenden Pins geben Sie 0 Adressen. Sie geben dem OC32-Modul die erste OM32-Adresse an, auf die es hören soll. Die OC32 berechnet dann selbst die OM32-Adresse, mit der das betreffende Gerät gesteuert werden kann.
Welche Adresse das ist, können Sie ausrechnen, sie wird aber auch auf der Konfigurations-Registerkarte von OC32Config neben der Pin-Nummer angezeigt. Voraussetzung ist jedoch, dass Sie die OM32 Flex Start-Address auf der Registerkarte „General“ eingetragen UND aktiviert haben. Wenn die OM32 Flex Start-Address nicht aktiviert ist, arbeitet die OC32 auf die herkömmliche Weise mit OM32-Adressen, ungeachtet dessen, wie viele Adressen Sie jedem Pin zugewiesen haben!
OM32 Flexible Addressing funktioniert auch in die andere Richtung. Manchmal benötigt ein Gerät nur einen Pin, aber Sie brauchen mehrere Adressen, um die Funktionen anzusteuern. Zum Beispiel eine 3-Wege-MCC-Weiche, die mit einem Servo gesteuert wird. Wenn Sie diese über Koploper steuern möchten, benötigen Sie mindestens zwei Adressen. Sie können dies in der OC32 lösen, indem Sie einen Redirect von einem anderen, ungenutzten Pin durchführen, aber manchmal ist das unpraktisch oder sogar unmöglich, zum Beispiel wenn Sie sehr viele solcher Geräte an einer OC32 haben. Sie benötigen dann also eigentlich mehr als die 32 verfügbaren Adressen pro OC32. Mit OM32 Flexible Addressing ist dies möglich, indem einem Pin mehrere Adressen zugewiesen werden.
Es gibt eine wichtige Einschränkung bei OM32 Flexible Addressing. Wenn diese Funktion aktiviert ist, funktioniert nur noch ein einziger OM32-Befehl: „Set Aspect“.
Bei der ersten einem Pin zugewiesenen Adresse sind die Aspects 1 zu 1 gekoppelt, d. h. Aspect 0 steuert Stellung 0, Aspect 1 steuert Stellung 1 usw. Bei der nächsten Adresse steuert Aspect 0 Stellung 2, Aspect 1 steuert Stellung 3 usw. Bei einer eventuellen weiteren Adresse steuert Aspect 0 Stellung 4, Aspect 1 Stellung 5 usw.
Flexible DCC Addressing
Flexible DCC-Adressierung funktioniert auf die gleiche Weise wie die oben beschriebene flexible OM32-Adressierung. Die DCC-Startadresse konnten/mussten Sie bereits einstellen, daran hat sich nichts geändert. Neu hinzugekommen ist die Möglichkeit, jedem Pin 0 bis 6 DCC-Adressen zuzuweisen. So können Sie DCC-Adressen einsparen oder umgekehrt einem Gerät mehrere DCC-Adressen zuweisen, ohne Redirects verwenden zu müssen. Bei DCC ist dies noch wichtiger als bei der seriellen Adressierung, da leider fast kein DCC-System „Extended Accessory Decoder Packets“ generieren kann, mit denen man eine DCC-Adresse in 32 Stellungen schalten kann. Sie sind daher in fast allen Fällen gezwungen, auf die Stellungen „gerade“ und „abzweigend“ zurückzugreifen, also nur zwei pro DCC-Adresse.
Extended DCC-Adressierung
Da iTrain nun in Kombination mit bestimmten Zentraleinheiten Extended DCC Accessory Packets unterstützt, wurden auch die Möglichkeiten in der OC32 hierfür weiter optimiert.
Sie haben nun die Möglichkeit, Basic DCC-Adressen und Extended DCC-Adressen separat zuzuweisen. Die OC32 verfügt nun also nicht nur über eine DCC-Startadresse, sondern auch über eine XDCC-Startadresse. Basic und Extended sind somit zwei verschiedene Adressräume, die Sie beide, auf Wunsch auch gemischt, verwenden können.
Jedem OC32-Pin können Sie nun neben maximal 6 DCC-Adressen auch maximal eine XDCC-Adresse zuweisen.
Nummerierung von DCC-Adressen
Hinsichtlich der Zählung ist die DCC-Spezifikation höchst unklar, vor allem in Bezug auf den Start bei Adresse 0 oder 1. Dies wird dadurch erschwert, dass ein Basic DCC Accessory Decoder faktisch 4 Adressen mit jeweils 2 Ausgängen mit wiederum jeweils 2 Zuständen hat. Es ist also unklar, ob Decoder 1 mit Adresse 0, 1, 4 oder 5 beginnt. Nach Rücksprache mit u. a. iTrain wurde in der OC32 folgende Implementierung gewählt:
- Wenn Sie in OC32Config angeben, dass Decoder 0 NICHT verwendet wird, dann ist Basic Decoder 1 Adresse 1..4 und Extended Decoder 1 Adresse 1. Dies ist die alte Einstellung.
- Wenn Sie in OC32Config angeben, dass Decoder 0 verwendet wird und Sie wählen, dass Sie in OC32Config Ihre Adressen ab 0 nummerieren, dann ist Basic Decoder 0 Adresse 0..3 und Extended Decoder 0 Adresse 0.
- Wenn Sie in OC32Config angeben, dass Decoder 0 verwendet wird und Sie wählen, dass Sie in OC32Config Ihre Adressen ab 1 nummerieren, dann ist Basic Decoder 0 Adresse 1..4 und Extended Decoder 0 Adresse 1.
Kombination von Flexible OM32 und DCC Addressing.
Wenn Sie Ihre OC32-Module sowohl für Zubehör am Gleis als auch für Zubehör an der Straße sowie für Tag-/Nachtbeleuchtung verwenden, bietet diese Kombination eine noch größere Ersparnis. Angenommen, Sie steuern Ihr Bahnzubehör mit DCC, Ihr Autozubehör mit RS485 und die Tag-/Nachtsimulation autonom oder über ETI-Eingänge. In diesem Fall müssen Sie ab sofort nur noch DCC-Adressen an Geräte vergeben, die über DCC steuerbar sein müssen, und OM32-Flex-Adressen an Geräte, die über RS485 gesteuert werden.
Event Control
Es war bereits möglich, die für die Trigger-Eingänge definierten Ereignisse (Events) auch softwareseitig (aus einer Aspect-Definition heraus) mittels einer „Soft-Event“-Instruktion zu aktivieren. Die Möglichkeiten zur Nutzung der Event Trigger Inputs wurden stark erweitert:
- Es können nun auch Aktionen mit dem Inaktivwerden eines ETI verknüpft werden. Ein Eingang kennt nun also nicht nur ein, sondern zwei Ereignisse.
- Es ist möglich, die externen (physischen) Events zu maskieren. Auf diese Weise können Sie die Reaktion auf ein externes Ereignis vorübergehend aus- und einschalten. Sie können die ON- und OFF-Events aller ETI-Eingänge separat mittels einer Event-Konfigurationsinstruktion maskieren (deaktivieren). Der Ordnung halber: Die Masken wirken nur auf die echten Event-Inputs. Sie maskieren also keine eventuell aus Aspect-Definitionen generierten Soft-Events.
- Sie können einstellen, welche Events (ETI-Inputs) beim Starten „enabled“ sein sollen und welche nicht (OC32Config Registerkarte Event Control). Achtung: Eine Änderung bezieht sich nur auf die initiale Enable-Maske, wird also nur beim Starten der OC32 geladen.
Durch die Erweiterung der Möglichkeiten wurde die Registerkarte „Event Configuration“ von OC32Config stark vereinfacht. Das klingt widersprüchlich, aber aufgrund der vielen neuen Optionen passte es schlichtweg nicht mehr in das Fenster. Sie müssen die Einstellungen nun Pin für Pin konfigurieren. Das hat Vor- und Nachteile.
Pins als Eingang verwenden
Es ist nun möglich, einen Pin (also einen oder mehrere der 32) als Eingang zu konfigurieren. Damit entsteht u. a. die Möglichkeit, die OC32 als eigenständige Steuereinheit für analoge Modellanlagen ohne PC-Steuerung zu nutzen. Natürlich benötigen Sie einen PC, um die OC32 zu konfigurieren, aber sobald dies geschehen ist, können Sie die Funktionen der OC32 über Druckknöpfe, Reed-Kontakte, Schalter oder andere externe Signale steuern, die an eine Reihe von Pins der OC32 angeschlossen sind. Es handelt sich in gewissem Sinne um eine Erweiterung der Event-Inputs, über die die OC32/FULL und OC32/ETI bereits verfügten, nur ist die Funktion etwas anders.
Um einen Pin als Eingang nutzen zu können, muss ein Widerstandsnetzwerk in der betreffenden Pingruppe platziert sein und dies muss auch so in der Hardware-Konfiguration (Registerkarte General) eingestellt sein.
ACHTUNG: Die Eingangsspannung an einem Pin darf niemals mehr als +5 V oder weniger als 0 V betragen, andernfalls kann dies den Prozessor irreparabel beschädigen! Um das Risiko einer Beschädigung zu minimieren, wählen Sie am besten ein Widerstandsnetzwerk mit einem etwas höheren Widerstandswert, z. B. 470 Ohm oder 1 kOhm, sofern dies für die Nutzung der übrigen Pins der Gruppe möglich ist.
Ein Eingang ist Aktiv (1) oder Inaktiv (0). Der Pin kann High-aktiv (normal) oder Low-aktiv (invertiert) sein. High-aktiv bedeutet, dass der Pin als Aktiv angesehen wird, wenn das Eingangssignal höher als 4 V ist. Der Pin wird als Inaktiv angesehen, wenn das Eingangssignal niedriger als 1 V ist. Low-aktiv ist das Umgekehrte. Bei der Einstellung Low-aktiv (invertiert) generiert die OC32 einen sogenannten „Pull-Up“. Das bedeutet, dass der Pin „High“ (also Inaktiv) ist, wenn nichts angeschlossen ist. Sie können in diesem Fall einfach einen Schalter oder Druckknopf zwischen dem Pin und GND anschließen. Schalter/Knopf geschlossen ist dann Aktiv, Schalter/Knopf offen ist Inaktiv. Bei der nicht-invertierten Einstellung ist der Zustand undefiniert, wenn nichts am Pin angeschlossen ist.
Ein mechanischer Schalter prellt beim Umschalten (fast) immer. Daher verfügt die OC32 über eine „Debounce“-Funktion (Entprellung). Die OC32 prüft dann mehrmals hintereinander, ob der Eingang wirklich Aktiv oder Inaktiv ist, bevor diese Schlussfolgerung gezogen wird. Diese Verzögerung heißt ON-delay und OFF-delay und ist pro Pin über OC32Config einstellbar. Standardmäßig beträgt die Verzögerung 4, ca. 100 ms. Wenn Sie Probleme mit prellenden Eingängen haben, können Sie diese Werte erhöhen. Meist hilft es bereits ausreichend, nur das OFF-delay zu erhöhen. Wenn die OC32 auf sehr kurze Impulse reagieren soll, müssen Sie (einen dieser) Werte verringern.
Das Aktivwerden eines Pins löst Aspect 1 des betreffenden Pins aus. Das Inaktivwerden löst Aspect 0 aus. Über die Aspect-Konfiguration können Sie also völlig frei festlegen, was passieren soll, wenn der Eingang Aktiv oder Inaktiv wird.
Rückmeldungen
Bisher konnte die OC32 nur Befehle von einem Digitalsystem oder PC empfangen. Ab sofort kann die OC32 auch Ereignisse an den PC zurückmelden. Voraussetzung ist, dass die Verbindung zur OC32 über RS485 erfolgt.
Das Melden eines Ereignisses ist nichts anderes als eine Instruktion in einer Aspect-Definition. Eine Meldung kann also beispielsweise durch eine Zustandsänderung eines Pins, der auf Input steht, aktiviert werden, aber auch zu bestimmten Zeitpunkten beim Ablauf einer Sequenz.
Weichen-Multiplexer
Mit der PM32 können Sie 64 Weichen (128 Spulen) mit 24 Drähten ansteuern.
Dieselbe Technik steckt nun auch in der OC32. Die OC32 verfügt nun über eine Instruktion, mit der Weichen sequenziell mittels Multiplexing bedient werden können. Um dies nutzen zu können, müssen eine Reihe von Pins mit Sourcedrivern und eine Reihe von Pins mit Sinkdrivern ausgestattet werden. In den meisten Fällen werden Sie die Ausgänge mit Transistoren auf einer DS32 verstärken müssen. Die Anzahl der verwendeten Pins ist flexibel, z. B.:
- 2 x Source + 1 x Sink = 1 Weiche mit 3 Pins (1 Pin Verlust)
- 2 x Source + 2 x Sink = 2 Weichen mit 4 Pins
- 4 x Source + 4 x Sink = 8 Weichen mit 8 Pins (8 Pins Gewinn)
- 8 x Source + 4 x Sink = 16 Weichen mit 12 Pins (20 Pins Gewinn)
- 8 x Source + 8 x Sink = 32 Weichen mit 16 Pins (48 Pins Gewinn)
Die ersten beiden Optionen sind natürlich wenig sinnvoll, aber für die letzten drei Optionen wird eine Gerätedefinition erstellt.
Die Pins, die nicht für das Multiplexing verwendet werden, können Sie selbstverständlich für andere Zwecke nutzen.
SendSerial
An der OC32 befinden sich zwei serielle Schnittstellen: RS485 und RS232/TTL. Letztere konnte bisher nur empfangen. Natürlich verfügt dieser Port über eine Sendemöglichkeit, die jedoch von der OC32 nicht genutzt wurde. Mit „SendSerial“ kann dieser Port Daten an externe Geräte senden, wie z. B. MP3-Player und andere Dinge, die mit einfachen seriellen Befehlen gesteuert werden können.
Wenn Sie die SendSerial-Möglichkeit nutzen, können Sie den RS232-Port an der OC32 nicht mehr verwenden, um Ihre OC32 selbst zu steuern. Das bedeutet, dass die Steuerung dann über RS485 oder DCC (oder beides) erfolgen muss. Der RS232-Port funktioniert zwar weiterhin, wird aber beim Senden mit „SendSerial“ Pakete verlieren.
Entfernte Funktionen
Die folgenden Instruktionen wurden bereits als „veraltet“ deklariert und sind ein Erbe aus der OM32-Ära. Diese Instruktionen wurden nun endgültig entfernt:
- Level Log
- Level Lin
- Level-Pulse Log
- Level-Pulse Lin
Das, was diese Funktionen bewirkten, kann heutzutage besser und flexibler mit Sequence-Instruktionen erreicht werden.
(Einige) Sonstige Änderungen
OC32Config
- Die Option „force OC32 messages“ wurde entfernt. Alle Nachrichten werden nun im OC32-Format gesendet, es sei denn, Sie weichen explizit davon ab. Diese Entscheidung wurde getroffen, um Verwirrung zu vermeiden, falls Sie OM32 Flexible Addressing auf dem betreffenden Modul aktiviert haben.
- Die Option zur Einstellung der Bitrate des COM-Ports wurde entfernt bzw. ausgeblendet. Bei einem UCCI(/E) oder RM-U als USB-Interface hat die Bitraten-Einstellung ohnehin keine Auswirkung und beim U485 macht es in der Praxis kaum einen Unterschied. Sie können die Option bei Bedarf aufrufen, indem Sie auf den Text „Port“ oben links doppelklicken.
- Es wurde eine „Refresh“-Taste hinzugefügt, um die Liste der COM-Ports zu aktualisieren, wenn Sie während der Ausführung von OC32Config ein USB-Gerät hinzufügen oder entfernen.
- Es wurde eine „globale“ Read-All- und Write-All-Taste hinzugefügt, die (sofern ich nichts vergessen habe) wirklich alle Einstellungen von OC32Config in das Modul schreibt bzw. alle Einstellungen ausliest.
- „Write-Differences“ wurde entfernt. Das Endergebnis dieser Taste unterschied sich nicht von „Write-All“. Der einzige Unterschied war, dass „Write-Differences“ keine Daten schreibt, die nicht geändert wurden. Um dies tun zu können, musste die Funktion jedoch erst prüfen, wo die Unterschiede lagen. Per Saldo war „Write-Differences“ nicht schneller. Da die OC32 in späteren Versionen selbst feststellt, ob Daten, die bereits so im Flash-Speicher stehen, nicht erneut geschrieben werden müssen, bietet „Write-Differences“ keinen Vorteil mehr.
- Die Tasten „Fill-Idle“ und „Fill-Defaults“ auf der Registerkarte Event Control wurden entfernt. Stattdessen finden Sie dort eine Taste „Copy to All“. Damit können Sie die Einstellungen des Pins, den Sie gerade auf dem Bildschirm haben, auf alle Pins kopieren. Sie erreichen damit also dasselbe, jedoch flexibler.
- Bugfix: Beim Auswählen mehrerer DD-Dateien gleichzeitig konnte ein Teil der Definitionen nicht geladen werden. Dies hat übrigens nie funktioniert, ist nun aber behoben.
- Der Initialwert bei der Servo- und PWM-Konfiguration ist nun ein separates Feld und kann mittels eines Up/Down-Steuerelements angepasst werden. Der Initialwert kann auf die aktuelle Position des Schiebereglers eingestellt werden, indem Sie auf das Eingabefeld des Initialwerts doppelklicken.
- Die Midpoint-Einstellung bei der Servo-Konfiguration wurde in den Rahmen der Range-Einstellung verschoben, um optisch zu verdeutlichen, dass beide Einstellungen in direktem Zusammenhang stehen.
Allgemein
- Möglichkeit hinzugefügt, den Konfigurationsspeicher der OC32 zu löschen.
- Möglichkeit hinzugefügt, das Starten initialer Gerätestellungen erzwungen zu unterbrechen, falls sich in den Aspect-Definitionen Fehler befinden, die die OC32 zum Absturz bringen.