Zwischenzeiten mit CUAdapter


Voraussetzungen:

- CUAdapter oder Superschiene muss verbaut sein

- Grundkenntnisse in der AddOn-Programmierung sollten vorhanden sein


Einleitung:

Es gibt in Cockpit XP ja die Möglichkeit in einem AddOn die in der Bahn installierten CUAdapter „abzufragen“ bzw. die Sektorzeiten weiter zu verarbeiten.

Im Folgenden wird auf die spezielle Programmierung im AddOn – CUSensorGruppe eingegangen, da hier ein paar spezielle Sachen beachtet werden müssen.

 

<CUSensorGruppe>{ Pascal Script Engine }

{ Event: CUSensorGruppe }

{Parameter:Cockpit.Slot=&lt;FahrzeugID&gt;,Cockpit.Station=&lt;SensorGruppe 2/3&gt; }

 

AddOn-Befehle:

Cockpit.Zwischenzeit

 --> liefert die Zwischenzeit, gemessen von Überfahrt Start/Ziel bis zu dieser Sensorgruppe

 

Cockpit.Sektorzeit

-- > liefert die Sektorzeit, gemessen entweder von Überfahrt Start/Ziel bis Überfahrt dieser Sensorgruppe bzw. von Überfahrt Sensorgruppe 2 bis Überfahrt Sensorgruppe 3

 

Cockpit.Station

--> muss vor der Abfrage von Cockpit.Zwischenzeit und Cockpit.Sektorzeit unbedingt gesetzt werden

 


Die Control-Unit 30352 von Carerra (kurz CU) hat ja 2 eingebaute Sensoren. Über die PC-Unit Schnittstelle liefert die CU beim Überfahren dieser Sensoren den internen Timerstand. Die SensorGruppe für CXP ist hierbei immer die Cockpit.Station = 1. Die „1“ steht also für SensorGruppe Start/Ziel.

Bei Überfahrt einer an den CUAdapter angelöteten IR-Diode wird der Event CUSensorGruppe aufgerufen. Diese ist dann Cockpit.Station = 2  oder Cockpit.Station = 3. Man kann max. noch zwei zusätzliche Sensorgruppen in eine Bahn einbauen. Mehr gibt das Carrera-Protokoll nicht her.

  <CUSensorGruppe>{ Pascal Script Engine }

{ Event: CUSensorGruppe }

{Parameter:Cockpit.Slot=&lt;FahrzeugID&gt;,Cockpit.Station=&lt;SensorGruppe 2/3&gt; }

Hierbei wird dann in der Variablen Cockpit.Slot die Fahrzeug-ID übergeben, also welches Fahrzeug (Reglernummer) die Diode überfahren hat. In der Variablen Cockpit.Station wird die Nummer des CUAdapters übergeben (Station 2 oder 3, je nach Jumperstellung auf der CUAdapter-Platine).

An einen CUAdapter können bis zu 4 x IR-Dioden angelötet werden


Programmierbeispiel für eine Sektorzeit 1 von CUAdapter 2 für Fahrzeug 1:

var

Sektorzeit1 : integer;

Slot        : integer;

begin

Slot:= Cockpit.Slot;

Cockpit.Slot:= Slot;

if (Cockpit.Slot= 1) and (Cockpit.Station = 2) then

   begin

     Cockpit.Station := 1; // 1.te Sektorzeit: Überfahrt SZ bis hier

     Sektorzeit1     := Cockpit.Sektorzeit;

   end;


 

Programmierbeispiel für eine Sektorzeit 2 von CUAdapter 3 für Fahrzeug 1:

var

Sektorzeit1 : integer;

Slot        : integer;

begin

Slot:= Cockpit.Slot;

Cockpit.Slot:= Slot;

if (Cockpit.Slot= 1) and (Cockpit.Station = 3) then

   begin

     Cockpit.Station := 2; // 2.te Sektorzeit: Sektorzeit1 bis hier

     Sektorzeit2     := Cockpit.Sektorzeit;

   end;


--> würde man hier Cockpit.Station:=1 setzen, dann würde man die Zeit von SZ bis zu diesem Sensor bekommen und nicht die eigentliche Sektorzeit gemessen zwischen Sektor1 und Sektor2.

 

Nach oben