Loading...
 

OC32 Release 3.00

Onderstaand vind je de verschillen van release 3.00 met release 0.0.2.3
Voor release 3.00 is tevens een nieuwe handleiding beschikbaar

OC32 versies 0.0.3.x zijn tijdelijke/beta versies die met ingang van 3.00 zijn vervallen en niet meer worden ondersteund. 3.00 is dus nieuwer dan 0.0.3.x

Let op: Zowel de OC32 firmware als OC32Config is ingrijpend gewijzigd:

  • Achterwaartse compatibiliteit is functioneel in principe goed, met uitzondering van een aantal verwijderde (sterk verouderde) functies (dus een OC32 die je opwaardeert van 0.0.2.x naar 3.00 zou het moeten doen als voorheen)
  • De onderlinge compatibiliteit van OC32 3.00 met OC32Config 0.0.2.x en vice versa is slecht. OC32Config 3.00 dus alleen gebruiken i.c.m OC32 3.00 en OC32Config 0.0.2.x alleen gebruiken i.c.m. 0.0.2.x

Device Configuration

OC32Device Configuration is flink "op de schop" genomen. Het was zo dat een apparaatdefinitie geladen kon worden, maar dat vervolgens deze definitie in OC32COnfig en de OC32 een verzameling losse pinnen werd.
Vanaf 3.00 herkennen OC32Config en de OC32 de samenhang van de Pinnen als "apparaat". Hierdoor kan OC32Config ook alle definities behorende bij dat apparaat met één knop wegschrijven naar en met één knop teruglezen uit de OC32. Het aantal knoppen in OC32Config onder "Device Configuration" om definities te schrijven naar en lezen van de OC32 is hierdoor sterk verminderd, waardoor het voor "normale gebruikers" hopelijk een stuk overzichtelijker wordt. De oude knoppen zijn er nog wel, maar die zitten verstop achter een "expert mode".

In OC32Config is de mogelijkheid toegevoegd om een zelf gemaakt of aangepast Device als DeviceDefinition weg te schrijven naar het bestandssysteem van je PC

OC32 eXtended Addressing (uitgebreide addressering)

Je kunt een OC32 een "eXtended Address" toekennen van 0 tot 95. Het normale module-adres wordt op dat moment een Channel Address (kanaal). Het eXtended Address vormt samen met het Channel Address een uniek adres. Er zijn op deze wijze dus 16 * 96 = 1536 module-adressen beschikbaar.
Deze adressen zul je in de praktijk nooit allemaal gebruiken. De idee is dat je ofwel de normale adressering gebruikt of de extended adressering en dan op één kanaal. Anders wordt het erg onoverzichtelijk. Je kunt echter wel handig gebruik maken van de kanaalnummers: Gebruik bijvoorbeeld kanaalnummer 1 voor de normale (operationele) besturing. Als je dan al een aantal OC32 modules actief hebt (op kanaal 1) en je wilt een extra module toevoegen, dan zet je die module op kanaal 0. Je kunt die module dan configureren, zijn gewenste extended adres toekennen, etc. Ben je klaar, dan zet je de module op kanaal 1 en kan hij mee doen met de rest.

Toekennen van een eXtended Adres aan een module doe je met OC32Config op het tabblad "General". Het is het handigst dat te doen terwijl je eXtended Addressing niet gebruikt voor die betreffende module. Immers, als je een adres wilt toekennen aan een module die nog geen bekend eXtendes Address heeft, weet die module niet naar welk eXtended Address hij moet luisteren. Daarom is het ook handig een apart kanaal te reserveren voor dergelijke doeleinden.

Het kiezen van het eXtended Address van de module waarmee je daadwerkelijk wilt communiceren doe je bovenaan het OC32Config window.

Behalve een eXtended Address is er ook een eXtended Group Mask. Het zal straks ook mogelijk worden bepaalde functies van de OC32 aan te sturen per groep van modules. Zo'n commando stuur je dan naar één groep binnen één kanaal. Elke OC32 kan lid zijn van geen, één, of meerdere groepen. Er zijn 16 groepen gedefinieerd.

OM32 Flexible Addressing

Veel digitale systemen zullen nog niet in staat zijn de OC32 door middel van eXtended Addressing aan te sturen. Op het moment van dit schrijven is dat zelfs geen enkel systeem, zelfs Dinamo niet. Sommige systemen zullen dat hoogstwaarschijnlijk nooit kunnen, omdat ze niet meer verder ontwikkeld worden, zoals bv Koploper.

Je kunt met de OC32 communiceren via 2 protocollen. Hoewel deze protocollen gewoon door elkaar heen gebruikt kunnen worden zijn ze fundamenteel verschillend. Voor het configureren en testen van de OC32 maakt OC32Config gebruik van het OC32 protocol. Ook operationele besturingssoftware kan gebruik maken van dit OC32 protocol. Het OC32 protocol is bidirectioneel en staat nu (bovenstaand) dus ook eXtended Addressing toe, zodat je beschikt over voldoende adressen om alles aan te sturen.
Daarnaast begrijpt de OC32 het "oude" OM32 protocol. Het OM32 protocol kent geen eXtended Addressing en is beperkt tot 16 modules * 32 pinnen, dus 512 "uitgangen".

Bij OM32 Flexible Addressing gebruiken we de adresruimte voor de 512 adressen als lineaire adresruimte. De adressen worden dus niet meer verdeeld over 16 modules, maar je kunt deze adressen willekeurig verdelen over zoveel modules als je gebruikt, mits het totaal aantal benodigde adressen niet boven de 512 komt. In de praktijk levert dit vaak een flink efficiënter gebruik van de adressen op. Immers een Nederlands sein met 3 lampen bezet 3 pinnen, maar kan via 1 adres worden bestuurd. Een Duits uitrijsein met voorsein bezet 9 pinnen, maar kan met 1 adres bestuurd worden. Met andere woorden: bijna elk "apparaat" bezet meerdere pinnen en in de "oude" situatie dus meerdere adressen, maar kan via 1 adres worden bestuurd.

Je kunt nu aan elke Pin 0 tot 6 OM32 adressen toekennen. De eerste pin van het apparaat geef je 1 adres, de volgende pinnen geef je 0 adressen. Je geeft de OC32 module het eerste OM32 adres op waarnaar hij moet luisteren. De OC32 rekent dan zelf het OM32 adres uit waarmee het betreffende apparaat kan worden aangestuurd.
Welk adres dat is kun je uitrekenen, maar het wordt ook getoond op het configuratie tabblad van OC32Config naast het pinnummer. Voorwaarde is wel dat het het OM32 Flex Start-Address hebt ingevuld EN geactiveerd op het tabblad "General". Als het OM32 Flex Start-Address niet geactiveerd is werkt de OC32 op de ouderwetse manier met OM32 adressen, ongeacht hoeveel adressen je aan elke pin hebt toegekend!

OM32 Flexible Addressing werkt ook de andere kant op. Soms gebruikt een apparaat maar één Pin, maar heb je meerdere adressen nodig om de functies aan te sturen. Bijvoorbeeld een 3-weg MCC wissel, aangestuurd met een Servo. Wil je die besturen vanuit Koploper, dan heb je minimaal 2 adressen nodig. Je kunt dit in de OC32 oplossen door een redirect uit te voeren van een andere, ongebruikte pin, maar soms is dat onhandig of zelfs onmogelijk, bijvoorbeeld als je heel veel van dergelijke apparaten op één OC32 hebt. Je hebt dan dus eigenlijk méér dan de 32 beschikbare adressen per OC32 nodig. Met OM32 Flexible Addressing kan dat door meerdere adressen toe te kennen aan een pin.

Er is één belangrijke beperking bij OM32 Flexible Addressing. Indien deze functie geactiveerd is werkt er nog maar één OM32 commando: "Set Aspect".

Bij het eerste adres dat is toegekend aan een pin zijn de Aspects 1 op 1 gekoppeld, dus Aspect 0 stuurt stand 0, Aspect 1 stuurt stand 1, etc. Bij het eerstvolgende adres stuurt Aspect 0 stand 2, Aspect 1 stuurt stand 3, etc. Bij een eventueel volgend adres stuurt Aspect 0 stand 4, Aspect 1 stand 5, etc.

Flexible DCC Addressing

Flexibele DCC addressering werkt op dezelfde wijze als bovenbeschreven Fexibele OM32 addressering. Het DCC start adres kon/moest je al instellen, dus daar is niets aan veranderd. Wat is toegevoegd is de mogelijkheid 0..6 DCC adressen toe te kennen aan elke pin. Zo kun je dus DCC adressen uitsparen of de andere kant op meerdere DCC adressen toekennen aan een aparaat zonder dat je redirects moet gebruiken. Bij DCC is dit nog belangrijker dan bij seriele adressering, aangezien helaas nagenoeg geen enkel DCC systeem Extended Accessory Decoder Packets kan genereren, waarmee je 1 DCC adres in 32 standen kunt zetten. Je bent daarom in vrijwel alle gevallen genoodzaakt terug te vallen op de "rechtdoor" en "afbuigend" standen, dus slechts 2 per DCC adres.

Extended DCC addressering

Aangezien iTrain nu in combinatie met bepaalde centrales Extended DCC Accessory Packets ondersteunt zijn nu ook de mogelijkheden in de OC32 hiervoor verder geoptimaliseerd.
Je hebt nu de mogelijkheid Basic DCC adressen en Extended DCC adressen apart toe te kennen. Dus de OC32 heeft nu niet alleen een DCC start adres, maar tevens een XDCC start adres. Basic en Extended zijn dus 2 verschillende adresruimtes die je beide, desgewenst door elkaar, kunt gebruiken.
Aan elke OC32 Pin kun je nu naast maximaal 6 DCC adressen maximaal 1 XDCC adres toekennen.

Nummering van DCC adressen

Qua telling is de DCC specificatie hoogst onduidelijk, vooral ten aanzien van het starten bij adres 0 of 1. Dit wordt nog eens lastiger omdat een Basic DCC accessory decoder feitelijk 4 adressen heeft met elk 2 uitgangen met elk weer 2 toestanden. Het is dus onduidelijk of decoder 1 start met adres 0, 1, 4 of 5. Na overleg met o.a. iTrain is in de OC32 gekozen voor de volgende implementatie:

  • Als je in OC32Config aangeeft dat decoder 0 NIET gebruikt wordt dan is basic decoder 1 adres 1..4 en extended decoder 1 adres 1. Dit is de oude instelling.
  • Als je in OC32Config aangeeft dat decoder 0 WEL gebruikt wordt en je kiest ervoor dat je in OC32Config je adressen nummert vanaf 0 dan dan is basic decoder 0 adres 0..3 en extended decoder 0 adres 0.
  • Als je in OC32Config aangeeft dat decoder 0 WEL gebruikt wordt en je kiest ervoor dat je in OC32Config je adressen nummert vanaf 1 dan dan is basic decoder 0 adres 1..4 en extended decoder 0 adres 1.

Combineren van Fexible OM32 en DCC Addressing.

Als je je OC32's zowel gebruikt voor accessoires naast het spoor als accessoires naast de weg als dag/nacht verlichting levert deze cominatie een nog grotere besparing op. Stel dat je je trein-accessoires bestuurt met DCC, je auto-accessoires met RS485 en de dag/nacht simulatie autonoom of via ETI inputs. In dat geval hoef je vanaf nu alleen nog maar DCC adressen toe te kennen aan apparaten die via DCC moeten kunnen aangestuurd en OM32 Flex-adressen aan apparaten die via RS485 worden aangestuurd.

Event Control

Het was al mogelijk de gebeurtenissen (Events) die zijn gedefinieerd voor de Trigger Inputs ook softwarematig (vanuit een Aspect Definitie) te activeren door middel van een "soft-event" instructie. De mogelijkheden om de Event Trigger Inputs te gebruiken zijn sterk uitgebreid:

  • Er kunnen nu ook acties worden gekoppeld aan het INactief worden van een ETI. Eén input kent nu dus niet één maar twee gebeurtenissen.
  • Het is mogelijk de externe (fysieke) Events te maskeren. Op die manier kun je de reactie op een externe gebeurtenis tijdelijk uitschakelen en inschakelen. Je kunt de ON en OFF events van alle ETI inputs apart maskeren (uitschakelen) door middel van een Event-configuratie instructie. Voor de goede orde: de maskers werken alleen op de echte Event-Inputs. Ze maskeren dus niet eventueel vanuit Aspect Definities gegenereerde Soft-Events.
  • Je kunt instellen welke Events (ETI-inputs) bij opstarten 'enabled' moeten zijn en welke niet (OC32Config tabblad Event Control). Let op: een wijziging is alleen van toepassing op het initiele enable masker, dus wordt alleen geladen bij opstarten van de OC32.

Door de uitbreiding van de mogelijkheden is het tabblad "Event Configuration" van OC32Config sterk vereenvoudigd. Dat klinkt tegenstrijdig, maar door alle nieuwe mogelijkheden paste het simpelweg niet meer in het window. Je moet de instellingen nu pin voor pin configureren. Het heeft voor -en nadelen.

Pinnen gebruiken als ingang

Het is nu mogelijk een Pin (dus een of meerdere van de 32) als ingang te configureren. Hiermee ontstaat o.a. de mogelijkheid de OC32 te gebruiken als zelfstandige besturingseenheid voor analoge modelbanen zonder PC besturing. Uiteraard heb je wel een PC nodig om de OC32 te configureren, maar als dat eenmaal gedaan is kun je de functies van de OC32 besturen via drukknoppen, reed-contacten, schakelaars of andere externe signalen, aangesloten op een aantal pinnen van de OC32. Het is in zekere zin een uitbreiding van de Event Inputs die de OC32/FULL en OC32/ETI al hadden, alleen de functie is ietwat verschillend.
Om een Pin te kunnen gebruiken als ingang moet een weerstandsbank geplaatst zijn in de betreffende groep pinnen en dient dit ook zo als in de hardware-configuratie (tabblad General) te zijn ingesteld.
LET OP: De ingangsspanning op een Pin mag nooit meer dan +5V zijn of minder dan 0V, anders kan dit de processor onherstelbaar beschadigen! Om het risico op beschadiging te minimaliseren kun je het best een weerstandsbank kiezen met een wat hogere weerstandswaarde, bv 470 Ohm of 1k, uiteraard mits dit voor de benutting van de overige pinnen van de groep mogelijk is.

Een ingang is Actief(1) of Inactief(0). De Pin kan hoog-actief (normaal) of laag-actief (geïnverteerd) zijn. Hoog actief wil zeggen dat de Pin als Actief wordt gezien als het ingangssignaal groter dan 4V is. De Pin wordt gezien als Inactief als het ingangssignaal lager dan 1V. Laag-actief is het omgekeerde. Bij de instelling laag-actief (geïnverteerd) genereert de OC32 een zgn "Pull-Up". Dat wil zeggen dat de Pin "hoog" (dus Inactief) is als er niets is aangesloten. Je kunt in dat geval eenvoudig een schakelaar of drukknop aansluiten tussen de Pin en GND. Schakelaar/knop gesloten is dan Actief, schakelaar/knop open is Inactief. Bij de niet-geinverteerde instelling is de toestand ongedefinieerd als er niets op de Pin is aangesloten.

Een mechanische schakelaar klappert bij het omschakelen (bijna) altijd. Daarom zit er in de OC32 een "debounce" functie. De OC32 controleert dan een paar keer achter elkaar of de ingang echt Actief of Inactief is voordat die conclusie getrokken wordt. Deze vertraging heet ON-delay en OFF-delay en is per Pin in te stellen via OC32Config. Standaard is de vertraging 4, ca 100ms. Heb je last van klapperende ingangen dat kun je deze waarden verhogen. Meestal helpt, als het al nodig is, alleen het verhogen van de OFF-delay voldoende. Wil je dat de OC32 reageert op heel korte pulsen, dan zul je (een van) deze waarden moeten verlagen.

Het Actief worden van een Pin triggert Aspect 1 van de betreffende Pin. Het Inactief worden triggert Aspect 0 van de betreffende Pin. Je kunt via de Aspect Configuratie dus helemaal zelf instellen wat er moet gebeuren als de ingang Actief of Inactief wordt.

Feedbacks

Voorheen kon de OC32 alleen opdrachten ontvangen van een digitaal systeem of PC. Vanaf heden kan de OC32 ook gebeurtenissen terugmelden aan de PC. Voorwaarde is dat de verbinding met de OC32 RS485 is.
Het melden van een gebeurtenis is niet meer/minder dan een Instructie in een Aspect Definitie. Dus een melding kan geactiveerd worden door bijvoorbeeld een toestandswijziging van een Pin die op Input staat, maar ook op bepaalde momenten bij het aflopen van een sequentie.

Wissel-Multiplexer

Met de PM32 kun je 64 wissels (128 spoelen) aansturen met 24 draadjes.
Dezelfde techniek zit nu ook in de OC32. De OC32 heeft nu een instructie waarmee wissels sequentieel kunnen worden bediend door middel van multiplexing. Om hiervan gebruik te kunnen maken moeten een aantal Pinnen voorzien worden van sourcedrivers en een aantal Pinnen van Sinkdrivers. In de meeste gevallen zul je de uitgangen moeten versterken met transistoren op een DS32. Het aantal Pinnen dat je gebruikt is flexibel, bv:

  • 2 x source + 1 x sink = 1 wissel met 3 Pinnen (1 Pin verlies)
  • 2 x source + 2 x sink = 2 Wissels met 4 Pinnen
  • 4 x source + 4 x sink = 8 wissels met 8 Pinnen (8 Pinnen winst)
  • 8 x source + 4 x sink = 16 wissels met 12 Pinnen (20 Pinnen winst)
  • 8 x source + 8 x sink = 32 wissels met 16 Pinnen (48 Pinnen winst)

De eerste twee opties zijn uiteraard onzinnig, maar voor de laatste 3 opties zal een apparaatdefinitie worden gemaakt.
De pinnen die niet gebruikt worden voor multiplexing kun je uiteraard gewoon voor andere zaken benutten.

SendSerial

Op de OC32 zitten 2 seriele poorten: RS485 en RS232/TTL. De laatstgenoemde kan alleen ontvangen. Uiteraard heeft die betreffende poort wel een zendmogelijkheid, maar die werd door de OC32 niet benut. Met "SendSerial" kan die poort data sturen naar externe apparaten, zoals MP3 spelers en allerlei andere zaken die je kunt besturen met eenvoudige seriele commando's.
Als je de SendSerial mogelijkheid gebruikt kun je de RS232 poort op de OC32 niet meer gebruiken om je OC32 zelf te besturen. Dat wil zeggen dat besturing dan moet plaatsvinden via RS485 of DCC (of beide). De RS232 poort blijft wel werken, maar zal pakketten gaan missen tijdens het zenden met "SendSerial"

Verwijderde functies

De volgende instructies waren reeds "verouderd" verklaard en zijn een erfenis uit het OM32 tijdperk. Deze instructies zijn nu definitief verwijderd:

  • Level Log
  • Level Lin
  • Level-Pulse Log
  • Level-Pulse Lin

Dat wat deze functies deden kan tegenwoordig beter en flexibeler met sequence-instrcuties worden bereikt.

(enkele) Overige wijzigingen

OC32Config

  • De optie "force OC32 messages" is verwijderd. Alle berichten worden nu gestuurd in OC32 format tenzij je er zeer expliciet van afwijkt. Deze keuze is gemaakt om verwarring te vermijden in het geval dat je OM32 Flexible Addressing geactiveerd zou hebben op de betreffende module.
  • De optie om de bitrate van de com-poort in te stellen is verwijderd, of beter gezegd, verborgen. Bij een UCCI(/E) of RM-U als USB interface heeft de bitrate instelling al helemaal geen effect en bij de U485 maakt het in de praktijk heel weinig uit. Je kunt de optie desgewenst oproepen door te dubbelklikken op de tekst "Port" linksboven.
  • Er is een "Refresh" knop toegevoegd om de lijst van com-poorten te verversen wanneer je tijdens het actief zijn van OC32Config een USB device toevoegt of verwijdert.
  • Er is een "globale" Read-All en Write-All knop toegevoegd, die (als ik niets vergeten ben) echt alle instellingen van OC32Config wegschrijft naar de module dan wel alle instellingen leest.
  • "Write-Differences" is verwijderd. Het eindresultaat van deze knop was niet anders dan de Write-All. Het verschil was alleen dat Write-Differences geen data wegschrijft die niet gewijzigd is. Om dit te kunnen doen moest de functie eerst controleren wat de verschillen waren. Per saldo was Write-Differences niet sneller. Aangezien de OC32 in de latere versies zelf al bepaalt dat gegevens die al zo in het flash-geheugen staan niet opnieuw worden weggeschreven heeft Write-Differences geen enkel voordeel meer.
  • De knoppen "Fill-Idle" en "Fill-Defaults" op het tabblad Event Control zijn verwijderd. In plaats daarvan vind je een knop "Copy to All". Daarmee kun je de instellingen van de pin die je op het scherm hebt staan kopieren naar alle pinnen. Je kunt er dus hetzelfde mee bereiken, maar dan flexibeler.
  • Bugfix: Bij het selecteren van meerdere DD files tegelijk kon een deel van de definities niet geladen worden. Dit heeft overigens nooit gewerkt, maar is nu dus opgelost.
  • De initiele waarde bij Servo en PWM configuratie is nu een apart veld geworden en kan door middel van een up/down besturingselement worden aangepast. De initiele waarde bij Servo en PWM configuratie kan worden ingesteld op de actuele stand van de slider door te dubbelklikken op het invulveld van de initiële waarde.
  • De Midpoint-instelling bij Servo configuratie is geplaatst binnen het kader van de Range instelling om optisch duidelijk te maken dat beide instellingen directe relatie hebben.

Algemeen

  • De mogelijkheid toegevoegd om het configuratiegeheugen van de OC32 te kunnen wissen
  • De mogelijkheid om het opstarten van initiele apparaatstanden geforceerd te kunnen onderbreken indien zich in de aspect definities fouten bevinden die de OC32 laten vastlopen

 

Page last modified on Saturday 20 October, 2018 22:09:44 CEST
Dutch (Nederlands, nl)English British (British English, en-uk)German (Deutsch, de)