Strefa OMSI

Pełna wersja: Zmiana configu drzwi busa MAN
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam!

Sprawa dotyczy modyfikacji Morphi'ego - MAN NL/NG by M&R - zobacz

Podoba mi się ogólnie modyfikacja. Podkręca standardowego MAN'a NL/NG. Chociaż nurtowała mnie kwestia kamery kierowcy, to udało mi się ją zmienić, zapodałem wartości ze standardowego MAN'a i to działa świetnie.
Jednak nurtuje mnie w dalszym ciągu kwestia drzwi autobusu. Naciskając klawisz - / otwiera mi całe przednie skrzydło. Chciałbym aby otwierał mi tylko drugą część tym klawiszem. Drugą połówkę przednich drzwi.
Modyfikacja zmieniła tu nieco rozstaw klawiszy - / - otwiera całe przednie skrzydło, zaś klawisz * - tu otwiera całe drugie (środkowe) drzwi autobusu.

Wiecie może jak to zrobić, jakie wartości zmienić ?

Pliki w katalogu danego autobusu script są takie:

antrieb_varlist_ZF.txt
antrieb_ZF.osc
antrieb_ZF_constfile.txt
door-3_constfile_pneumatic.txt
door-3_pneumatic.osc
door-3_varlist.txt
engine_constfile_D0826.txt
engine_constfile_D0826_270.txt
engine_D0826.osc
engine_varlist.txt

Domyślam się, że o zmianę configu drzwi odpowiadają te pliki:

door-3_constfile_pneumatic.txt
door-3_pneumatic.osc
door-3_varlist.txt

Teraz jak ustawić właściwe wartości ? i w jakich plikach trzeba dokonać niezbędnej zmiany ?

Plik - door-3_constfile_pneumatic.txt

[const]
door_delay
1.5

Front/Back Door Acceleration (100%/s˛)

[const]
fdoor_acc
1

[const]
mdoor_acc
1

[const]
bdoor_acc
1

Door Acceleration Variation (100%/s˛)

[const]
door_acc_var
0

Front/Back Door Max Speed (100%/s)

[const]
fdoor_maxspeed
1

[const]
mdoor_maxspeed
1

[const]
bdoor_maxspeed
1

[const]
door_maxspeed_var
0

Front/Back Door Damper (100%/s)

[const]
door0_damper
0.6

[const]
door1_damper
0.6

[const]
door2_damper
0.6

[const]
door3_damper
0.6

[const]
door4_damper
0.6

[const]
door5_damper
0.6


Dämpferkennlinie über Öffnungzustand:

[newcurve]
damper_f_close

[pnt]
0.2
1

[newcurve]
damper_f_open

[pnt]
0.2
1

[newcurve]
damper_m_close

[pnt]
0.2
1

[newcurve]
damper_m_open

[pnt]
0.2
1

[newcurve]
damper_b_close

[pnt]
0.2
1

[newcurve]
damper_b_open

[pnt]
0.2
1

Door Stop Reflexion Coefficient

[const]
door_refl
0

Automatic Back Door Time

[const]
doorMidOpenTime
3

[const]
doorAftOpenTime
3

Busstop Brake will only be activated belov MaxKMH:

[const]
Door_Bremse_Halte_MaxKMH
1

'Vordertürflügel sind kombiniert und Hintertüren manuell:

[const]
door_ManBackDoorFrontDoorCombined
1

'Sicherheits-Rebelüftung:

[const]
door_safe_reactivating
0

[const]
door_stop_request_killed_by_front_door
0

[const]
door_druckluft
0

[const]
door_needs_stopbrake
1

[const]
door_needs_stopbrakeswitch
1

[const]
electric_doors
1

[const]
thinking_doors
0

[const]
door_blocking
0

[const]
door_blocking_area
0.1

[const]
door_blocking_diff
0.03

[const]
door_blocking_speed
0.01

[newcurve]
door_0_opn_speed

[pnt]
0
0.1

[pnt]
0.3
0.6

[newcurve]
door_0_cls_speed

[pnt]
0.7
0.7

[pnt]
1
0.1

[newcurve]
door_1_opn_speed

[pnt]
0
0.1

[pnt]
0.3
0.6

[newcurve]
door_1_cls_speed

[pnt]
0.7
0.6

[pnt]
1
0.1


[newcurve]
door_2_opn_speed

[pnt]
0
0.1

[pnt]
0.3
0.8

[newcurve]
door_2_cls_speed

[pnt]
0.7
0.7

[pnt]
1
0.1

[newcurve]
door_3_opn_speed

[pnt]
0
0.1

[pnt]
0.3
0.6

[newcurve]
door_3_cls_speed

[pnt]
0.7
0.55

[pnt]
1
0.1

[newcurve]
door_4_opn_speed

[pnt]
0
0.1

[pnt]
0.3
0.7

[newcurve]
door_4_cls_speed

[pnt]
0.7
0.7

[pnt]
1
0.1

[newcurve]
door_5_opn_speed

[pnt]
0
0.1

[pnt]
0.3
0.7

[newcurve]
door_5_cls_speed

[pnt]
0.7
0.7

[pnt]
1
0.1


=============================================
Inverse Widerstände (Leitwerte) in 1/Ohm.


Türflügelstromverbrauch: 500W/Geschwindigkeit 1 (0.87 1/Ohm)

[const]
door_Rinv
0.87

.............................

Plik - door-3_pneumatic.osc

'##############
'Door Script
'##############

'Controls Doors

'© 2007-2009 Rüdiger Hülsmann
'© 2007-2012 Marcel Kuhnt
'© 2011 Markus Rabe

'Script Version: 1.1
'Omsi release: 1.0

'Needs:
'- elec
'- articulation

'NrSpecRandom Seed Area:
'301 ... 318

'Revision History:
'- Marcel Kuhnt 13.06.2009 Batterietrennschalter => elec_busbar_main
'- Marcel Kuhnt 21.06.2009 AI-Unterstützung hinzugefügt
'- Rüdiger Hülsmann 24.10.2009 Ansteuerung des Kinderwagenwunsches modifiziert
'- Rüdiger Hülsmann 19.12.2009 Timer für Ausstiegstür jetzt Timegap-basiert, Bugfix: Tür schließt jetzt nur bei elec_busbar=1
'- RÜdiger Hülsmann 22.09.2010 Door light trigger value set to 0.1
'- RÜdiger Hülsmann 07.11.2010 Door speed based on reservoir pressure, air-operated doors made an option
'- Marcel Kuhnt 08.11.2010 AI procedure closing doors debugged
'- Rüdiger Hülsmann 21.11.2010 Front doors only operable when busbar on
'- Rüdiger Hülsmann 23.12.2010 External front door operation included, option: doors only operable with actual stop brake
'- Rüdiger Hülsmann 31.12.2010 Electric door function debugged
'- Rüdiger Hülsmann 05.01.2011 20h-switch
'- Rüdiger Hülsmann 07.01.2011 Backdoor manual switch sound debugged, 20h switch depending on bus type
'- Rüdiger Hülsmann 19.01.2011 Electric door support
'- Markus Rabe 25.02.2011 D92 Schließverhalten der Hintertür und Einstiegsbeleuchtung ans Vorbild angepasst
'- Markus Rabe 27.02.2011 linker Flügel Vordertür: Abfangeinrichtung eingebaut
'- Marcel Kuhnt 29.06.2011 Integration in Standard-Doorscript
'- Marcel Kuhnt 07.07.2011 Druckluftsimulation inkl. Dämpfer
'- Marcel Kuhnt 09.07.2011 Manuelles Öffnen/Schließen
'- Marcel Kuhnt 10.07.2011 Manuelles Öffnen/Schließen optimiert
'- Marcel Kuhnt 10.07.2011 Mit westdeutscher Türsteuerung versehen und für O305 erweitert
'- Marcel Kuhnt 10.09.2011 Entriegelte Türen => Leuchtende Türlichter
'- Marcel Kuhnt 10.09.2011 Unterschiedliche Dämpfereinstellungen je Türflügel möglich
'- Marcel Kuhnt 09.07.2012 Anpassung an neue Busbar-Logik
'- Marcel Kuhnt 30.10.2012 Mausbewegungsrichtung beim manuellen Bewegen angepasst
'- Marcel Kuhnt 01.11.2012 Türentriegelung jetzt auch für E-Türen
'- Marcel Kuhnt 01.11.2012 E-Türen generieren Leitwert
'- Marcel Kuhnt 02.11.2012 Nach E-Türentriegelungsrücknahme verharren die Türen
'- Marcel Kuhnt 02.11.2012 Dreitürer
'- Marcel Kuhnt 04.11.2012 Türvariation fester Wagennummer zugeordnet
'- Marcel Kuhnt 04.11.2012 Türanforderung mit neuen Variablen
'- Rüdiger Hülsmann 18.11.2012 Zwangs-Haltestellenbremse durch Knickschutz
'- Marcel Kuhnt 16.12.2012 Haltewunsch-Abschaltung durch Vordertür konstantenabhängig
'- Marcel Kuhnt 08.01.2013 Je nach Konstante langsam aufbauender Druck erst nach Türtasterbetätigung nach Deaktivierung der Türentriegelung
'- Marcel Kuhnt 09.01.2013 20h-Schalter funktioniert jetzt auch in Verbindung mit SD-Hstbrems-Sperr-Logik
'- Marcel Kuhnt 09.01.2013 Türleuchten sind jetzt im Lights-Script
'- Marcel Kuhnt 09.01.2013 Außentürtaster nur bei eingelegter Haltestellenbremse wirksam
'- Marcel Kuhnt 09.01.2013 Reversierende Türen bei weggenommener Haltestellenbremse korrigiert
'- Marcel Kuhnt 12.01.2013 Außenelemente korrekt angesteuert (Hst-Schalter + Hst-Bremse)
'- Marcel Kuhnt 13.01.2013 Wagen-Hält-Zeichen erlischt bei Öffnen des rechten vorderen Türflügels mit 20h-Schalter
'- Marcel Kuhnt 14.01.2013 Türaußentaster werden auch von Fahrgästen benutzt
'- Rüdiger Hülsmann 28.10.2013 "needs stopbrake" function debugged
'- Rüdiger Hülsmann 29.10.2013 Keine Freigabe der Haltestellenbremse bei aktiviertem Kneeling

'--------------------------------------------------------------------------------
'Zu den Variablen doorEntriegelung_doorActive_01 und doorEntriegelung_doorActive_23:

'Bei Elektrotüren sind die 0, wenn die jeweilige Elektrotür noch entriegelt und in undefinierbarem Zustand ist,
'1, wenn die Tür normal aktiv ist. Bei Drucklufttüren ist sie wiederum 1 im Normalzustand, von 0 bis 1 baut sich
'ggf. der Druck nach erstmaligem Betätigen auf, bei -1 wartet sie auf erstmalige Betätigung und bei -2 ist sie
'drucklos

{trigger:bus_doorfront0}
(T.L.ev_tuertaster_ein)
(L.L.bremse_halte_sw) (L.L.door_20h_sw) || (C.L.door_needs_stopbrakeswitch) && (C.L.door_needs_stopbrake) ! &&
(L.L.bremse_halte) (C.L.door_needs_stopbrake) && ||
(C.L.door_needs_stopbrake) (C.L.door_needs_stopbrakeswitch) || ! ||
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) > &&
{if}
(M.L.trg_bus_doorfront0)
(C.L.door_ManBackDoorFrontDoorCombined)
{if}
(M.L.trg_bus_doorfront1)
{endif}
{endif}
1 (S.L.cockpit_tuertaster1)
{end}

{trigger:bus_doorfront0_off}
(T.L.ev_tuertaster_aus)
0 (S.L.cockpit_tuertaster1)
{end}

{trigger:bus_doorfront0_external}
(L.L.elec_busbar_avail) (C.L.elec_busbar_minV) >
{if}
(M.L.trg_bus_doorfront0)
(C.L.door_ManBackDoorFrontDoorCombined)
{if}
(M.L.trg_bus_doorfront1)
{endif}
{endif}
{end}

{trigger:bus_doorfront1}
(T.L.ev_tuertaster_ein)
(L.L.bremse_halte_sw) (L.L.door_20h_sw) || (C.L.door_needs_stopbrakeswitch) && (C.L.door_needs_stopbrake) ! &&
(L.L.bremse_halte) (C.L.door_needs_stopbrake) && ||
(C.L.door_needs_stopbrake) (C.L.door_needs_stopbrakeswitch) || ! ||
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) > &&
{if}
(C.L.door_ManBackDoorFrontDoorCombined)
{if}
(M.L.trg_bus_dooraft23)
{else}
(M.L.trg_bus_doorfront1)
{endif}
{endif}
1 (S.L.cockpit_tuertaster2)
{end}

{trigger:bus_doorfront1_off}
(T.L.ev_tuertaster_aus)
0 (S.L.cockpit_tuertaster2)
{end}

{trigger:bus_doorfront1_lock}
'Doorfront1-Verriegelung: Funktioniert nur, wenn der Türflügel auch zu ist:
(L.L.door_1) 0.05 <
{if}
(L.L.door_1_locked) ! (S.L.door_1_locked)
{if}
(T.L.ev_doorlock1_on)
{else}
(T.L.ev_doorlock1_off)
{endif}
{endif}
{end}

{trigger:bus_dooraft}
(M.L.trg_bus_dooraft)
{end}

{trigger:bus_20h-switch}
(C.L.cockpit_has_20h_switch)
{if}
(M.L.trg_bus_20h-switch)
{endif}
{end}

{trigger:door_haltewunsch}
1 (S.L.haltewunsch) (S.L.door_haltewunsch_knopfdruck)
{end}

{trigger:door_haltewunsch_off}
0 (S.L.door_haltewunsch_knopfdruck)
{end}

{trigger:door_haltewunsch_2}
1 (S.L.haltewunsch_2) (S.L.door_haltewunsch_2_knopfdruck)
{end}

{trigger:door_haltewunsch_2_off}
0 (S.L.door_haltewunsch_2_knopfdruck)
{end}

{trigger:door_aussenoeffner}
(L.L.door_freigabe)
{if}
1 (S.L.haltewunsch)
{endif}
{end}

{trigger:door_aussenoeffner_2}
(L.L.door_freigabe)
{if}
1 (S.L.haltewunsch_2)
{endif}
{end}

{trigger:cp_schalter_kinderwagen}
(L.L.door_handsteuerung) ! (S.L.door_handsteuerung)
{if}
0 (S.L.door_kinderwagenwunsch)
(T.L.ev_kippschalter_ein)
{else}
(T.L.ev_kippschalter_aus)
{endif}

{end}

{trigger:door_kinderwagenwunsch}
(L.L.door_freigabe) (L.L.door_handsteuerung) ! &&
{if}
1 (S.L.door_kinderwagenwunsch)
{endif}
{end}

{trigger:door0_drag}
(L.S.mouse_y) (L.S.mouse_x) - 20 / (S.L.doorDragAcc_0)
{end}

{trigger:door1_drag}
(L.S.mouse_y) (L.S.mouse_x) + 20 / (S.L.doorDragAcc_1)
{end}

{trigger:door2_drag}
(L.S.mouse_y) (L.S.mouse_x) - 20 / (S.L.doorDragAcc_2)
{end}

{trigger:door3_drag}
(L.S.mouse_y) (L.S.mouse_x) + 20 / (S.L.doorDragAcc_3)
{end}

{trigger:door4_drag}
(L.S.mouse_y) (L.S.mouse_x) - 20 / (S.L.doorDragAcc_4)
{end}

{trigger:door5_drag}
(L.S.mouse_y) (L.S.mouse_x) + 20 / (S.L.doorDragAcc_5)
{end}

{trigger:cp_doorEntriegelung_01}
(L.L.doorEntriegelung_01) ! (S.L.doorEntriegelung_01)
{if}
(T.L.ev_doorEntriegelung_01_on)
{else}
(T.L.ev_doorEntriegelung_01_off)
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{endif}
{end}

{trigger:cp_doorEntriegelung_23}
(L.L.doorEntriegelung_23) ! (S.L.doorEntriegelung_23)
{if}
(T.L.ev_doorEntriegelung_23_on)
{else}
(T.L.ev_doorEntriegelung_23_off)
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{endif}
{end}

{trigger:cp_doorEntriegelung_45}
(L.L.doorEntriegelung_45) ! (S.L.doorEntriegelung_45)
{if}
(T.L.ev_doorEntriegelung_45_on)
{else}
(T.L.ev_doorEntriegelung_45_off)
(C.L.door_druckluft)
{if}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{endif}
{end}

{macro:Door_Init}
301 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0)
302 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_1)
303 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_acc_var) * (C.L.mdoor_acc) + (S.L.doorAcc_2)
304 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_acc_var) * (C.L.mdoor_acc) + (S.L.doorAcc_3)
305 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_4)
306 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_5)

307 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
308 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
309 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.mdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
310 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.mdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)
311 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_4_norm)
312 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_5_norm)

'Beim Dämpfer wird der Wert bis auf 40% reduziert statt eine Varianz verwendet:
313 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door0_damper) * (S.L.doorDamper_0_kennwert)
314 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door1_damper) * (S.L.doorDamper_1_kennwert)
315 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door2_damper) * (S.L.doorDamper_2_kennwert)
316 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door3_damper) * (S.L.doorDamper_3_kennwert)
317 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door4_damper) * (S.L.doorDamper_4_kennwert)
318 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door5_damper) * (S.L.doorDamper_5_kennwert)

(C.L.door_refl) (S.L.doorRefl_0)
(C.L.door_refl) (S.L.doorRefl_1)
(C.L.door_refl) (S.L.doorRefl_2)
(C.L.door_refl) (S.L.doorRefl_3)
(C.L.door_refl) (S.L.doorRefl_4)
(C.L.door_refl) (S.L.doorRefl_5)

0 (S.L.door0_warten)
0 (S.L.door0_umkehr)

0 (S.L.door0_physblock)
1 (S.L.door1_physblock)

0
(S.L.door_pressure_open_0)
(S.L.door_pressure_close_0)
(S.L.door_pressure_open_1)
(S.L.door_pressure_close_1)
(S.L.door_pressure_open_2)
(S.L.door_pressure_close_2)
(S.L.door_pressure_open_3)
(S.L.door_pressure_close_3)
(S.L.door_pressure_open_4)
(S.L.door_pressure_close_4)
(S.L.door_pressure_open_5)
(S.L.door_pressure_close_5)

(S.L.doorDamper_0) (S.L.doorDamper_1) (S.L.doorDamper_2) (S.L.doorDamper_3) (S.L.doorDamper_4) (S.L.doorDamper_5)

1 (S.L.doorEntriegelung_doorActive_01)
1 (S.L.doorEntriegelung_doorActive_23)
1 (S.L.doorEntriegelung_doorActive_45)
{end}

{macro:Door_Frame}

' Tür 2 Schließverzögerung

(L.L.doorTarget_23_delay) !
(L.L.doorTarget_23) &&
(C.L.door_delay) 0 > &&
(L.L.doorEntriegelung_23) ! &&
{if}
(L.L.door_2) 1 =
{if}
(L.L.doorTarget_23_delay_timer) (L.S.Timegap) - 0 max (S.L.doorTarget_23_delay_timer)
0 =
{if}
0 (S.L.doorTarget_23)
(T.L.ev_doortriggerclose_2)
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_23) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_23)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
1 (S.L.doorEntriegelung_doorActive_23)
{endif}
{endif}
{else}
0 (S.L.doorTarget_23)
(T.L.ev_doortriggerclose_2)
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_23) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_23)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
1 (S.L.doorEntriegelung_doorActive_23)
{endif}
{endif}
{endif}

'Anforderung mit neuen Variablen:

(L.L.haltewunsch) (L.L.PAX_Exit0_Req) (L.L.PAX_Exit1_Req) || || (S.L.haltewunsch)
(L.L.haltewunsch_2) (L.L.PAX_Exit2_Req) (L.L.PAX_Exit3_Req) || || (S.L.haltewunsch_2)

'Bei E-Türen die "active"-Variable der Entriegelung nachführen:
(C.L.electric_doors)
{if}
(L.L.doorEntriegelung_01) (L.L.doorEntriegelung_E_active_01) s0 (L.L.elec_busbar_avail) (C.L.elec_busbar_minV) > ! && || s1
l0 = !
{if}
l1
{if}
(T.L.ev_doorEntriegelung_01_active_on)
0 (S.L.doorEntriegelung_doorActive_01)
{else}
(T.L.ev_doorEntriegelung_01_active_off)
{endif}
{endif}
l1 (S.L.doorEntriegelung_E_active_01)

(L.L.doorEntriegelung_23) (L.L.doorEntriegelung_E_active_23) s0 (L.L.elec_busbar_avail) (C.L.elec_busbar_minV) > ! && || s1
l0 = !
{if}
l1
{if}
(T.L.ev_doorEntriegelung_23_active_on)
0 (S.L.doorEntriegelung_doorActive_23)
{else}
(T.L.ev_doorEntriegelung_23_active_off)
{endif}
{endif}
l1 (S.L.doorEntriegelung_E_active_23)

(L.L.doorEntriegelung_45) (L.L.doorEntriegelung_E_active_45) s0 (L.L.elec_busbar_avail) (C.L.elec_busbar_minV) > ! && || s1
l0 = !
{if}
l1
{if}
(T.L.ev_doorEntriegelung_45_active_on)
0 (S.L.doorEntriegelung_doorActive_45)
{else}
(T.L.ev_doorEntriegelung_45_active_off)
{endif}
{endif}
l1 (S.L.doorEntriegelung_E_active_45)
{endif}



(M.L.Door0_Calc)
(M.L.Door1_Calc)
(M.L.DoorAftCalc)
(M.L.Door2_Calc)
(M.L.Door3_Calc)
(M.L.Door4_Calc)
(M.L.Door5_Calc)

0
(S.L.doorDragAcc_0)
(S.L.doorDragAcc_1)
(S.L.doorDragAcc_2)
(S.L.doorDragAcc_3)
(S.L.doorDragAcc_4)
(S.L.doorDragAcc_5)

(L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open)
(L.L.door_1) 0.9 > (S.L.PAX_Entry1_Open)
(L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Entry2_Open) (S.L.PAX_Entry3_Open)
(L.L.door_4) 0.9 > (L.L.door_5) 0.9 > && (S.L.PAX_Exit2_Open) (S.L.PAX_Exit3_Open) (S.L.PAX_Entry4_Open) (S.L.PAX_Entry5_Open)

' "Dauerfeuer"-Haltewunsch über Kinderwagenschalter (macht genau dasselbe wie der "trigger:int_haltewunsch"):
(L.L.door_handsteuerung) (L.L.door_haltewunsch_knopfdruck) ||
{if}
1 (S.L.haltewunsch)
{endif}

' Außentürtaster werden von Fahrgästen benutzt:

(L.L.door_freigabe) (L.L.PAX_Entry2_Req) (L.L.PAX_Entry3_Req) || &&
{if}
1 (S.L.haltewunsch)
{endif}

(L.L.door_freigabe) (L.L.PAX_Entry4_Req) (L.L.PAX_Entry5_Req) || &&
{if}
1 (S.L.haltewunsch_2)
{endif}

' Setzen der Haltestellenbremse erst bei Stillstand des Busses:
(L.L.bremse_halte_sw) (L.L.door_20h_sw) (L.L.door_hstbremse_knickschutz) || ||
(L.L.bremse_halte) ! (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) < && &&
{if}
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) >
{if}
(T.L.ev_haltebremse_an)
1 (S.L.bremse_halte)
{endif}
{endif}

' Anhand dieser Bedingungen kann nun die Automatiktür geöffnet werden:
(C.L.door_ManBackDoorFrontDoorCombined) !
{if}
(M.L.DoorMid_Open)
{endif}

(M.L.DoorAft_Open)

' Türfreigabekriterium

(L.L.bremse_halte_sw) (L.L.bremse_halte) && (S.L.door_freigabe)

' Haltewunschlampe:
(L.L.haltewunsch)
(L.L.door_0) 0.2 < (C.L.door_stop_request_killed_by_front_door) ! ||
(L.L.door_1) 0.2 < (L.L.door_20h_sw) ! || &&
(L.L.door_2) 0.2 < &&
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) > && &&
{if}
1 (S.L.haltewunschlampe)
{else}
0 (S.L.haltewunschlampe) (S.L.haltewunsch)
{endif}

(L.L.haltewunsch_2)
(L.L.door_0) 0.2 < (C.L.door_stop_request_killed_by_front_door) ! ||
(L.L.door_1) 0.2 < (L.L.door_20h_sw) ! || &&
(L.L.door_4) 0.2 < &&
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) > && &&
{if}
1 (S.L.haltewunschlampe_2)
{else}
0 (S.L.haltewunschlampe_2) (S.L.haltewunsch_2)
{endif}

(L.L.haltewunschlampe) (L.L.haltewunschlampe_2) || (S.L.haltewunschlampe_all)

' Bing:

(L.L.haltewunsch) (L.L.haltewunsch_2) || (L.L.prev_haltewunsch) ! && (L.L.elec_busbar_main) (C.L.elec_busbar_minV) > &&
{if}
(T.L.ev_stop)
{endif}

(L.L.haltewunsch) (L.L.haltewunsch_2) || (S.L.prev_haltewunsch)

' Abfall des Kinderwagenwunsch-Relais bei fehlender Stromversorgung:

(L.L.elec_busbar_main) (C.L.elec_busbar_minV) <
{if}
0 (S.L.door_kinderwagenwunsch)
{endif}

' Beleuchtung der Einstiege

' Ausgelagert in Lights-Script




'###############################################################################​################
' Druckluftverhalten:



(C.L.door_druckluft)
{if}





' in s6 ist die verfügbare Druckmenge:
(L.L.bremse_p_Tank04) 100000 - 850000 / s6



'-------------------------------------------------------------------



' Zunächst die Türentriegelungen:

(L.L.doorEntriegelung_01)
{if}
'Tür ist entlüftet:
-2 (S.L.doorEntriegelung_doorActive_01)
{else}
(C.L.door_safe_reactivating) !
{if}
'Tür steht unter Druck:
1 (S.L.doorEntriegelung_doorActive_01)
{else}
(L.L.doorEntriegelung_doorActive_01) -2 =
{if}
'Tür ist "vorbereitet":
-1 (S.L.doorEntriegelung_doorActive_01)
{endif}
{endif}
{endif}



(L.L.doorEntriegelung_23)
{if}
'Tür ist entlüftet:
-2 (S.L.doorEntriegelung_doorActive_23)
{else}
(C.L.door_safe_reactivating) !
{if}
'Tür steht unter Druck:
1 (S.L.doorEntriegelung_doorActive_23)
{else}
(L.L.doorEntriegelung_doorActive_23) -2 =
{if}
'Tür ist "vorbereitet":
-1 (S.L.doorEntriegelung_doorActive_23)
{endif}
{endif}
{endif}




(L.L.doorEntriegelung_45)
{if}
'Tür ist entlüftet:
-2 (S.L.doorEntriegelung_doorActive_45)
{else}
(C.L.door_safe_reactivating) !
{if}
'Tür steht unter Druck:
1 (S.L.doorEntriegelung_doorActive_45)
{else}
(L.L.doorEntriegelung_doorActive_45) -2 =
{if}
'Tür ist "vorbereitet":
-1 (S.L.doorEntriegelung_doorActive_45)
{endif}
{endif}
{endif}

'-------------------------------------------------------------------

'Druck laaaaangsam aufbauen (sofern nötig):

(L.L.doorEntriegelung_doorActive_01) s1 0 >= l1 0.99 < &&
{if}
1 s0 0.1 s2 s3 (M.L.traegheit) (S.L.doorEntriegelung_doorActive_01)
(L.L.doorEntriegelung_doorActive_01) 0.8 >
{if}
(T.L.ev_doorEntriegelung_01_off_final)
1 (S.L.doorEntriegelung_doorActive_01)
{endif}
{endif}

(L.L.doorEntriegelung_doorActive_23) s1 0 >= l1 0.99 < &&
{if}
1 s0 0.1 s2 s3 (M.L.traegheit) (S.L.doorEntriegelung_doorActive_23)
(L.L.doorEntriegelung_doorActive_23) 0.8 >
{if}
(T.L.ev_doorEntriegelung_23_off_final)
1 (S.L.doorEntriegelung_doorActive_23)
{endif}
{endif}

(L.L.doorEntriegelung_doorActive_45) s1 0 >= l1 0.99 < &&
{if}
1 s0 0.1 s2 s3 (M.L.traegheit) (S.L.doorEntriegelung_doorActive_45)
(L.L.doorEntriegelung_doorActive_45) 0.8 >
{if}
(T.L.ev_doorEntriegelung_45_off_final)
1 (S.L.doorEntriegelung_doorActive_45)
{endif}
{endif}


'-------------------------------------------------------------------


(L.L.doorEntriegelung_doorActive_01) 0 <=
{if}
0 s5
{else}
(L.L.doorTarget_0) ! s5 !
{endif}

(L.L.doorEntriegelung_doorActive_01) l6 * * s0
(L.L.door_pressure_open_0) s1
1 s2 1 s3
(M.L.traegheit) (S.L.door_pressure_open_0)

(L.L.door_pressure_close_0) s1
l5 (L.L.doorEntriegelung_doorActive_01) l6 * * s0
(M.L.traegheit) (S.L.door_pressure_close_0)

'.....................

(L.L.doorEntriegelung_doorActive_01) 0 <=
{if}
0 s5
{else}
(L.L.doorTarget_1) ! s5 !
{endif}

l6 (L.L.doorEntriegelung_doorActive_01) * * s0
(L.L.door_pressure_open_1) s1
1 s2 1 s3
(M.L.traegheit) (S.L.door_pressure_open_1)

(L.L.door_pressure_close_1) s1
l5 (L.L.doorEntriegelung_doorActive_01) l6 * * s0
(M.L.traegheit) (S.L.door_pressure_close_1)

'.....................

(L.L.doorEntriegelung_doorActive_23) 0 <=
{if}
0 s5
{else}
(L.L.doorTarget_23) ! s5 !
{endif}

(L.L.doorEntriegelung_doorActive_23) l6 * * s0
(L.L.door_pressure_open_2) s1
1 s2 1 s3
(M.L.traegheit) (S.L.door_pressure_open_2)

(L.L.door_pressure_close_2) s1
(L.L.doorEntriegelung_doorActive_23) l5 l6 * * s0
(M.L.traegheit) (S.L.door_pressure_close_2)

'.....................

(L.L.doorEntriegelung_doorActive_23) 0 <=
{if}
0 s5
{else}
(L.L.doorTarget_23) ! s5 !
{endif}

(L.L.doorEntriegelung_doorActive_23) l6 * * s0
(L.L.door_pressure_open_3) s1
1 s2 1 s3
(M.L.traegheit) (S.L.door_pressure_open_3)

(L.L.door_pressure_close_3) s1
(L.L.doorEntriegelung_doorActive_23) l5 l6 * * s0
(M.L.traegheit) (S.L.door_pressure_close_3)

'.....................

(L.L.doorEntriegelung_doorActive_45) 0 <=
{if}
0 s5
{else}
(L.L.doorTarget_45) ! s5 !
{endif}

(L.L.doorEntriegelung_doorActive_45) l6 * * s0
(L.L.door_pressure_open_4) s1
1 s2 1 s3
(M.L.traegheit) (S.L.door_pressure_open_4)

(L.L.door_pressure_close_4) s1
(L.L.doorEntriegelung_doorActive_45) l5 l6 * * s0
(M.L.traegheit) (S.L.door_pressure_close_4)

'.....................

(L.L.doorEntriegelung_doorActive_45) 0 <=
{if}
0 s5
{else}
(L.L.doorTarget_45) ! s5 !
{endif}

(L.L.doorEntriegelung_doorActive_45) l6 * * s0
(L.L.door_pressure_open_5) s1
1 s2 1 s3
(M.L.traegheit) (S.L.door_pressure_open_5)

(L.L.door_pressure_close_5) s1
(L.L.doorEntriegelung_doorActive_45) l5 l6 * * s0
(M.L.traegheit) (S.L.door_pressure_close_5)

'.....................

l6 (L.L.doorEntriegelung_doorActive_01) 0 max * (S.L.door_pressure_factor_01)
l6 (L.L.doorEntriegelung_doorActive_23) 0 max * (S.L.door_pressure_factor_23)
l6 (L.L.doorEntriegelung_doorActive_45) 0 max * (S.L.door_pressure_factor_45)

{endif}

'###############################################################################​################
' Dämpferverhalten:

(L.L.doorSpeed_0) 0 >
{if}
(L.L.door_0) (F.L.damper_f_open)
{else}
(L.L.door_0) (F.L.damper_f_close)
{endif}
(L.L.doorSpeed_0) * s0

(L.L.doorEntriegelung_01)
{if}
l0
{else}
(L.L.doorDamper_0) s1
3 s2 3 s3
(M.L.traegheit)
{endif}
(S.L.doorDamper_0)

'........................

(L.L.doorSpeed_1) 0 >
{if}
(L.L.door_1) (F.L.damper_f_open)
{else}
(L.L.door_1) (F.L.damper_f_close)
{endif}
(L.L.doorSpeed_1) * s0

(L.L.doorEntriegelung_01)
{if}
l0
{else}
(L.L.doorDamper_1) s1
3 s2 3 s3
(M.L.traegheit)
{endif}
(S.L.doorDamper_1)

'........................

(L.L.doorSpeed_2) 0 >
{if}
(L.L.door_2) (F.L.damper_m_open)
{else}
(L.L.door_2) (F.L.damper_m_close)
{endif}
(L.L.doorSpeed_2) * s0

(L.L.doorEntriegelung_23)
{if}
l0
{else}
(L.L.doorDamper_2) s1
3 s2 3 s3
(M.L.traegheit)
{endif}
(S.L.doorDamper_2)

'........................

(L.L.doorSpeed_3) 0 >
{if}
(L.L.door_3) (F.L.damper_m_open)
{else}
(L.L.door_3) (F.L.damper_m_close)
{endif}
(L.L.doorSpeed_3) * s0

(L.L.doorEntriegelung_23)
{if}
l0
{else}
(L.L.doorDamper_3) s1
3 s2 3 s3
(M.L.traegheit)
{endif}
(S.L.doorDamper_3)

'........................

(L.L.doorSpeed_4) 0 >
{if}
(L.L.door_4) (F.L.damper_b_open)
{else}
(L.L.door_4) (F.L.damper_b_close)
{endif}
(L.L.doorSpeed_4) * s0

(L.L.doorEntriegelung_45)
{if}
l0
{else}
(L.L.doorDamper_4) s1
3 s2 3 s3
(M.L.traegheit)
{endif}
(S.L.doorDamper_4)

'........................

(L.L.doorSpeed_5) 0 >
{if}
(L.L.door_5) (F.L.damper_b_open)
{else}
(L.L.door_5) (F.L.damper_b_close)
{endif}
(L.L.doorSpeed_5) * s0

(L.L.doorEntriegelung_45)
{if}
l0
{else}
(L.L.doorDamper_5) s1
3 s2 3 s3
(M.L.traegheit)
{endif}
(S.L.doorDamper_5)


'###############################################################################​################
' Gegenseitiges Blockieren der Türflügel:

' Die jeweilige Tür wird dadurch blockiert, dass ihr Öffnungsgrad kleiner ist als der des anderen Flügels ist, der selbst aber schon fast zu und nicht blockiert sein muss:

(C.L.door_blocking)
{if}

(L.L.door0_physblock)
{if}
(L.L.door_0) (L.L.door_1) (C.L.door_blocking_diff) + < (L.L.door_1) (C.L.door_blocking_area) < && (L.L.door1_physblock) ! && (S.L.door0_physblock)
{else}
(L.L.door_0) (L.L.door_1) < (L.L.door_1) (C.L.door_blocking_area) < && (L.L.door1_physblock) ! && (S.L.door0_physblock)
{endif}

(L.L.door1_physblock)
{if}
(L.L.door_1) (L.L.door_0) (C.L.door_blocking_diff) + < (L.L.door_0) (C.L.door_blocking_area) < && (L.L.door0_physblock) ! && (S.L.door1_physblock)
{else}
(L.L.door_1) (L.L.door_0) < (L.L.door_0) (C.L.door_blocking_area) < && (L.L.door0_physblock) ! && (S.L.door1_physblock)
{endif}
{else}
0 (S.L.door0_physblock) (S.L.door1_physblock)
{endif}


'###############################################################################​################
'###############################################################################​################
' AI-Ablauf:

(L.L.AI_Scheduled_AtStation) s0
1 =
{if}
'Wenn Türen geöffnet werden sollen:
(L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) <
{if}
'Nur, wenn v < maxkmh, sonst warten
'Taster jeweils nur betätigen, falls noch nicht an
(L.L.bremse_halte_sw) !
{if}
(M.L.trg_bus_dooraft)
{endif}

(C.L.door_ManBackDoorFrontDoorCombined)
{if}
(L.L.doorTarget_0) ! (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_doorfront0)
{endif}
(L.L.doorTarget_1) ! (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_doorfront1)
{endif}
(L.L.haltewunsch)
(L.L.doorTarget_23) ! (L.L.door_AI_timer) 0.6 > && &&
{if}
(M.L.trg_bus_dooraft23)
{endif}
{else}
(L.L.doorTarget_0) ! (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_doorfront0)
{endif}
(L.L.doorTarget_1) ! (L.L.door_AI_timer) 0.6 > &&
{if}
(M.L.trg_bus_doorfront1)
{endif}
{endif}

{else}
0 (S.L.door_AI_timer)
{endif}
(L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
{else}
l0 -1 =
{if}
'Wenn Türen geschlossen werden sollen:
'Taster jeweils nur betätigen, falls noch nicht aus:
(C.L.door_ManBackDoorFrontDoorCombined)
{if}
(L.L.doorTarget_0)
{if}
(M.L.trg_bus_doorfront0)
{endif}
(L.L.doorTarget_1)
{if}
(M.L.trg_bus_doorfront1)
0 (S.L.door_AI_timer)
{endif}
(L.L.doorTarget_23) (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_dooraft23)
{endif}
{else}
(L.L.doorTarget_1)
{if}
(M.L.trg_bus_doorfront1)
0 (S.L.door_AI_timer)
{endif}
(L.L.doorTarget_0) (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_doorfront0)
{endif}
{endif}

'Haltestellenbremse erst wegnehmen, wenn alle Türen zu. Dann auch erst den Bus AI-mäßig freigeben:
(L.L.door_2) 0.1 <
(C.L.door_ManBackDoorFrontDoorCombined) ||
{if}
(L.L.bremse_halte_sw) (L.L.door_AI_timer) 0.3 > &&
{if}
(M.L.trg_bus_dooraft)
{endif}
(L.L.bremse_halte_sw) !
{if}
0 (S.L.AI_Scheduled_AtStation)
{endif}
{else}
'Sollte eine der Türen auf sein und die Haltestellenbremse aus, dann sofort diese einlegen
(L.L.bremse_halte_sw) !
{if}
(M.L.trg_bus_dooraft)
{endif}
(L.L.doorTarget_0) !
(L.L.doorTarget_1) ! &&
{if}
0 (S.L.door_AI_timer)
{endif}
{endif}
(L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
{endif}
{endif}


{end}

'###############################################################################​################
' Door Calc Türenpaar 1
'###############################################################################​################


{macro:Door0_Calc}
(C.L.electric_doors) (L.L.doorEntriegelung_E_active_01) ! &&
{if}
(L.L.doorEntriegelung_doorActive_01)
{if}

(L.L.doorTarget_0)
{if}
(L.L.door_0) (F.L.door_0_opn_speed) (S.L.doorMaxSpeed_0)
{else}
(L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
{endif}

(C.L.fdoor_acc) (S.L.doorAcc_0)

(L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
{if}
(C.L.thinking_doors)
{if}
(L.L.doorTarget_1) !
(L.L.door_1) 0 > &&
(L.L.door_1) (L.L.door_0) - 0.25 /-/ > &&
(L.L.door_1) (L.L.door_0) - 0.25 < &&
(L.L.door_0) 0.15 > &&
{if}
(L.L.door0_warten) 1 =
{if}
0 (S.L.doorSpeed_0)
0.20 (S.L.door_0)
{else}
(L.L.door_0) 0.25 >
{if}
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
(L.L.door0_umkehr) 1 =
{if}
0.1 (S.L.doorMaxSpeed_0)
(L.L.doorSpeed_0) (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
(L.L.door_0) 0.20 >
{if}
1 (S.L.door0_warten)
{endif}
{else}
0.2 (S.L.doorMaxSpeed_0)
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
(L.L.door_0) 0.18 <
{if}
1 (S.L.door0_umkehr)
{endif}
{endif}
{endif}
{endif}
{else}
(L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{endif}

{else}
l0 /-/ (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{endif}
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{endif}
{else}
(L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
{if}
l0 (L.L.doorMaxSpeed_0) <
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
{else}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
{endif}

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
(L.L.door_1) (L.L.door_0) < (L.L.door0_physblock) &&
{if}
(C.L.door_blocking_speed) (S.L.doorSpeed_0)
(T.L.ev_doortriggeropen_0)
{endif}

(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
0 (S.L.doorSpeed_0)
{endif}
{endif}

(L.L.elec_busbar_Rinv_summe)
(L.L.doorSpeed_0) abs (C.L.door_Rinv) * +
(S.L.elec_busbar_Rinv_summe)
{else}
0 (S.L.doorSpeed_0)
{endif}
'Pneumatisch: .................................
{else}
(L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || (L.L.doorDragAcc_0) 0 = ! || &&
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.L.door_pressure_close_0) * (L.L.doorDragAcc_0) - (L.S.Timegap) * -
(L.L.doorDamper_0) (L.L.doorDamper_0_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_0)
(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
(L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorDragAcc_0) 0 = ! || (L.L.doorTarget_0) &&
{if}
(L.L.doorSpeed_0) (L.L.doorAcc_0) (L.L.door_pressure_open_0) * (L.L.doorDragAcc_0) + (L.S.Timegap) * +
(L.L.doorDamper_0) (L.L.doorDamper_0_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_0)

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
(L.L.door_1) (L.L.door_0) < (L.L.door0_physblock) &&
{if}
(C.L.door_blocking_speed) (S.L.doorSpeed_0)
{endif}

(L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
{else}
0 (S.L.doorSpeed_0)
{endif}
{endif}
{endif}

(L.L.door_0) 1 >
{if}
(T.L.ev_doorhitopen_0)
1 (S.L.door_0)
(L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
{else}
(L.L.door_0) 0 <
{if}
(T.L.ev_doorhitclose_0)
0 (S.L.door_0)
(L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
{endif}
{endif}
{end}

{macro:Door1_Calc}
'Nur, wenn nicht verriegelt:
(C.L.electric_doors) (L.L.door_1_locked) ! && (L.L.doorEntriegelung_E_active_01) ! &&
{if}
(L.L.doorEntriegelung_doorActive_01)
{if}
(L.L.doorTarget_1)
{if}
(L.L.door_1) (F.L.door_1_opn_speed) (S.L.doorMaxSpeed_1)
{else}
(L.L.door_1) (F.L.door_1_cls_speed) (S.L.doorMaxSpeed_1)
{endif}

(C.L.fdoor_acc) (S.L.doorAcc_1)

(L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{else}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{endif}
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
(L.L.door_1) 0.01 <
{if}
0 (S.L.door0_warten)
0 (S.L.door0_umkehr)
{endif}

{else}
(L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
{if}
l0 (L.L.doorMaxSpeed_1) <
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
{else}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
{endif}

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
(L.L.door_0) (L.L.door_1) < (L.L.door1_physblock) &&
{if}
(C.L.door_blocking_speed) (S.L.doorSpeed_1)
(T.L.ev_doortriggeropen_1)
{endif}

(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
0 (S.L.doorSpeed_1)
{endif}
{endif}
(L.L.elec_busbar_Rinv_summe)
(L.L.doorSpeed_1) abs (C.L.door_Rinv) * +
(S.L.elec_busbar_Rinv_summe)
{else}
0 (S.L.doorSpeed_1)
{endif}
'Pneumatisch: .................................
{else}
(L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || (L.L.doorDragAcc_1) 0 = ! || && (L.L.door_1_locked) ! &&
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.L.door_pressure_close_1) (L.L.doorDragAcc_1) - * (L.S.Timegap) * -
(L.L.doorDamper_1) (L.L.doorDamper_1_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_1)
(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
(L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorDragAcc_1) 0 = ! || (L.L.doorTarget_1) && (L.L.door_1_locked) ! &&
{if}
(L.L.doorSpeed_1) (L.L.doorAcc_1) (L.L.door_pressure_open_1) (L.L.doorDragAcc_1) + * (L.S.Timegap) * +
(L.L.doorDamper_1) (L.L.doorDamper_1_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_1)

'Falls die Tür durch den anderen Flügel blockiert wird, geht sie nur gaaanz langsam auf:
(L.L.door_0) (L.L.door_1) < (L.L.door1_physblock) &&
{if}
(C.L.door_blocking_speed) (S.L.doorSpeed_1)
{endif}

(L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
{else}
0 (S.L.doorSpeed_1)
{endif}
{endif}
{endif}
(L.L.door_1) 1 >
{if}
(T.L.ev_doorhitopen_1)
1 (S.L.door_1)
(L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
{else}
(L.L.door_1) 0 <
{if}
(T.L.ev_doorhitclose_1)
0 (S.L.door_1)
(L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
{endif}
{endif}
{end}

'###############################################################################​################
' Hintertürautomatiken
'###############################################################################​################

{macro:DoorMid_Open}

(L.L.haltewunsch) (L.L.bremse_halte) &&
(L.L.doorEntriegelung_E_active_23) (C.L.electric_doors) && ! &&
{if}

(L.L.doorTarget_23) !
(L.L.bremse_halte_sw)
(L.L.door_2) 0 >
(L.L.door_3) 0 > || || &&
{if}
(T.L.ev_doortriggeropen_2)
1 (S.L.doorTarget_23)
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_23) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_23)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{else}
1 (S.L.doorEntriegelung_doorActive_23)
{endif}
0 (S.L.doorMidLastOpen)
{endif}
{end}

{macro:DoorAft_Open}

(L.L.haltewunsch_2) (L.L.bremse_halte) &&
(L.L.doorEntriegelung_E_active_45) (C.L.electric_doors) && ! &&
{if}
(L.L.doorTarget_45) !
(L.L.bremse_halte_sw)
(L.L.door_4) 0 >
(L.L.door_5) 0 > || || &&
{if}
(T.L.ev_doortriggeropen_4)
1 (S.L.doorTarget_45)
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_45) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_45)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{else}
1 (S.L.doorEntriegelung_doorActive_45)
{endif}
0 (S.L.doorAftLastOpen) (S.L.doorTarget_45_delay)
{endif}
{end}

{macro:DoorAftCalc}

(L.L.bremse_halte_sw) !
(L.L.door_20h_sw) ! &&
(L.L.door_hstbremse_knickschutz) ! &&
(L.L.bremse_kneeling) ! && s0

(C.L.door_ManBackDoorFrontDoorCombined) !
{if}
l0
(L.L.door_2) 0 = &&
(L.L.door_3) 0 = &&
s0
{endif}
l0
(L.L.door_4) 0 = &&
(L.L.door_5) 0 = &&
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) <= ||
(L.L.bremse_halte) &&
(L.L.throttle) 0.1 > &&
{if}
0 (S.L.bremse_halte) (S.L.doorMidLastOpen)
(T.L.ev_haltebremse_aus)
{endif}

(L.L.elec_busbar_main) (C.L.elec_busbar_minV) >
{if}
(L.L.bremse_halte) &&
{if}
(C.L.door_ManBackDoorFrontDoorCombined) !
{if}
(L.L.doorMidLastOpen) (L.S.Timegap) + (S.L.doorMidLastOpen)
{endif}
(L.L.doorAftLastOpen) (L.S.Timegap) + (S.L.doorAftLastOpen)
{endif}

(L.L.doorTarget_23)
(L.L.doorMidLastOpen) (C.L.doorMidOpenTime) > &&
{if}
(T.L.ev_doortriggerclose_2)
0 (S.L.doorTarget_23)
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_23) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_23)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{endif}

(L.L.doorTarget_45)
(L.L.doorAftLastOpen) (C.L.doorAftOpenTime) > &&
{if}
(C.L.door_delay) 0 >
{if}
(L.L.doorTarget_45_delay) 0 =
{if}
(T.L.ev_tuer3_piep)
1 (S.L.doorTarget_45_delay)
{endif}
(L.L.doorTarget_45_delay_timer) (L.S.Timegap) + (C.L.door_delay) min (S.L.doorTarget_45_delay_timer)
(C.L.door_delay) =
{if}
(T.L.ev_doortriggerclose_4)
0 (S.L.doorTarget_45) (S.L.doorTarget_45_delay_timer)
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_45) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_45)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{endif}
{else}
(T.L.ev_doortriggerclose_4)
0 (S.L.doorTarget_45)
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_45) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_45)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.94 * 100000 + (S.L.bremse_p_Tank04)
{endif}
{endif}
{endif}
{endif}
{end}

'###############################################################################​################
' Door Calc Türenpaar 2
'###############################################################################​################

{macro:Door2_Calc}
(C.L.electric_doors) (L.L.doorEntriegelung_E_active_23) ! &&
{if}
(L.L.doorEntriegelung_doorActive_23)
{if}
(L.L.doorTarget_23)
{if}
(L.L.door_2) (F.L.door_2_opn_speed) (S.L.doorMaxSpeed_2)
{else}
(L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
{endif}

(C.L.bdoor_acc) (S.L.doorAcc_2)

(L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_2) <
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
{else}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
{endif}
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
(L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
{if}
l0 (L.L.doorMaxSpeed_2) <
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
{else}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
{endif}
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
0 (S.L.doorSpeed_2)
{endif}
{endif}
(L.L.elec_busbar_Rinv_summe)
(L.L.doorSpeed_2) abs (C.L.door_Rinv) * +
(S.L.elec_busbar_Rinv_summe)
{else}
0 (S.L.doorSpeed_2)
{endif}
'Pneumatisch: .................................
{else}
(L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || (L.L.doorDragAcc_2) 0 = ! || &&
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.L.door_pressure_close_2) (L.L.doorDragAcc_2) - * (L.S.Timegap) * -
(L.L.doorDamper_2) (L.L.doorDamper_2_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_2)
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
(L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorDragAcc_2) 0 = ! || (L.L.doorTarget_23) &&
{if}
(L.L.doorSpeed_2) (L.L.doorAcc_2) (L.L.door_pressure_open_2) (L.L.doorDragAcc_2) + * (L.S.Timegap) * +
(L.L.doorDamper_2) (L.L.doorDamper_2_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_2)
(L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
{else}
0 (S.L.doorSpeed_2)
{endif}
{endif}
{endif}

(L.L.door_2) 1 >
{if}
(T.L.ev_doorhitopen_2)
1 (S.L.door_2)
(L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
{else}
(L.L.door_2) 0 <
{if}
(T.L.ev_doorhitclose_2)
0 (S.L.door_2)
(L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
{endif}
{endif}
{end}

{macro:Door3_Calc}
(C.L.electric_doors) (L.L.doorEntriegelung_E_active_23) ! &&
{if}
(L.L.doorEntriegelung_doorActive_23)
{if}
(L.L.doorTarget_23)
{if}
(L.L.door_3) (F.L.door_3_opn_speed) (S.L.doorMaxSpeed_3)
{else}
(L.L.door_3) (F.L.door_3_cls_speed) (S.L.doorMaxSpeed_3)
{endif}

(C.L.bdoor_acc) (S.L.doorAcc_3)

(L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_3) <
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
{else}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
{endif}
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
(L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
{if}
l0 (L.L.doorMaxSpeed_3) <
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
{else}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
{endif}
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
0 (S.L.doorSpeed_3)
{endif}
{endif}
(L.L.elec_busbar_Rinv_summe)
(L.L.doorSpeed_3) abs (C.L.door_Rinv) * +
(S.L.elec_busbar_Rinv_summe)
{else}
0 (S.L.doorSpeed_3)
{endif}
'Pneumatisch: .................................
{else}
(L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || (L.L.doorDragAcc_3) 0 = ! || &&
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.L.door_pressure_close_3) (L.L.doorDragAcc_3) - * (L.S.Timegap) * -
(L.L.doorDamper_3) (L.L.doorDamper_3_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_3)
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
(L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorDragAcc_3) 0 = ! || (L.L.doorTarget_23) &&
{if}
(L.L.doorSpeed_3) (L.L.doorAcc_3) (L.L.door_pressure_open_3) (L.L.doorDragAcc_3) + * (L.S.Timegap) * +
(L.L.doorDamper_3) (L.L.doorDamper_3_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_3)
(L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
{else}
0 (S.L.doorSpeed_3)
{endif}
{endif}
{endif}

(L.L.door_3) 1 >
{if}
(T.L.ev_doorhitopen_3)
1 (S.L.door_3)
(L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
{else}
(L.L.door_3) 0 <
{if}
(T.L.ev_doorhitclose_3)
0 (S.L.door_3)
(L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
{endif}
{endif}

{end}

'###############################################################################​################
' Door Calc Türenpaar 3
'###############################################################################​################

{macro:Door4_Calc}
(C.L.electric_doors) (L.L.doorEntriegelung_E_active_45) ! &&
{if}
(L.L.doorEntriegelung_doorActive_45)
{if}
(L.L.doorTarget_45)
{if}
(L.L.door_4) (F.L.door_4_opn_speed) (S.L.doorMaxSpeed_4)
{else}
(L.L.door_4) (F.L.door_4_cls_speed) (S.L.doorMaxSpeed_4)
{endif}

(C.L.bdoor_acc) (S.L.doorAcc_4)

(L.L.doorTarget_45) ! (L.L.doorSpeed_4) s0 abs 0.05 > (L.L.door_4) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_4) <
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * - (S.L.doorSpeed_4)
{else}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * + (S.L.doorSpeed_4)
{endif}
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{else}
(L.L.doorSpeed_4) abs 0.05 > (L.L.door_4) 1 < || (L.L.doorTarget_45) &&
{if}
l0 (L.L.doorMaxSpeed_4) <
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * + (S.L.doorSpeed_4)
{else}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.S.Timegap) * - (S.L.doorSpeed_4)
{endif}
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{else}
0 (S.L.doorSpeed_4)
{endif}
{endif}
(L.L.elec_busbar_Rinv_summe)
(L.L.doorSpeed_4) abs (C.L.door_Rinv) * +
(S.L.elec_busbar_Rinv_summe)
{else}
0 (S.L.doorSpeed_4)
{endif}
'Pneumatisch: .................................
{else}
(L.L.doorTarget_45) ! (L.L.doorSpeed_4) s0 abs 0.05 > (L.L.door_4) 0 > || (L.L.doorDragAcc_4) 0 = ! || &&
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.L.door_pressure_close_4) (L.L.doorDragAcc_4) - * (L.S.Timegap) * -
(L.L.doorDamper_4) (L.L.doorDamper_4_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_4)
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{else}
(L.L.doorSpeed_4) abs 0.05 > (L.L.door_4) 1 < || (L.L.doorDragAcc_4) 0 = ! || (L.L.doorTarget_45) &&
{if}
(L.L.doorSpeed_4) (L.L.doorAcc_4) (L.L.door_pressure_open_4) (L.L.doorDragAcc_4) + * (L.S.Timegap) * +
(L.L.doorDamper_4) (L.L.doorDamper_4_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_4)
(L.L.door_4) (L.L.doorSpeed_4) (L.S.Timegap) * + (S.L.door_4)
{else}
0 (S.L.doorSpeed_4)
{endif}
{endif}
{endif}

(L.L.door_4) 1 >
{if}
(T.L.ev_doorhitopen_4)
1 (S.L.door_4)
(L.L.doorSpeed_4) /-/ (L.L.doorRefl_4) * (S.L.doorSpeed_4)
{else}
(L.L.door_4) 0 <
{if}
(T.L.ev_doorhitclose_4)
0 (S.L.door_4)
(L.L.doorSpeed_4) /-/ (L.L.doorRefl_4) * (S.L.doorSpeed_4)
{endif}
{endif}
{end}

{macro:Door5_Calc}
(C.L.electric_doors) (L.L.doorEntriegelung_E_active_45) ! &&
{if}
(L.L.doorEntriegelung_doorActive_45)
{if}
(L.L.doorTarget_45)
{if}
(L.L.door_5) (F.L.door_5_opn_speed) (S.L.doorMaxSpeed_5)
{else}
(L.L.door_5) (F.L.door_5_cls_speed) (S.L.doorMaxSpeed_5)
{endif}

(C.L.bdoor_acc) (S.L.doorAcc_5)

(L.L.doorTarget_45) ! (L.L.doorSpeed_5) s0 abs 0.05 > (L.L.door_5) 0 > || &&
{if}
l0 /-/ (L.L.doorMaxSpeed_5) <
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
{else}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
{endif}
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
{else}
(L.L.doorSpeed_5) abs 0.05 > (L.L.door_5) 1 < || (L.L.doorTarget_45) &&
{if}
l0 (L.L.doorMaxSpeed_5) <
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * + (S.L.doorSpeed_5)
{else}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.S.Timegap) * - (S.L.doorSpeed_5)
{endif}
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
{else}
0 (S.L.doorSpeed_5)
{endif}
{endif}
(L.L.elec_busbar_Rinv_summe)
(L.L.doorSpeed_5) abs (C.L.door_Rinv) * +
(S.L.elec_busbar_Rinv_summe)
{else}
0 (S.L.doorSpeed_5)
{endif}
'Pneumatisch: .................................
{else}
(L.L.doorTarget_45) ! (L.L.doorSpeed_5) s0 abs 0.05 > (L.L.door_5) 0 > || (L.L.doorDragAcc_5) 0 = ! || &&
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.L.door_pressure_close_5) (L.L.doorDragAcc_5) - * (L.S.Timegap) * -
(L.L.doorDamper_5) (L.L.doorDamper_5_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_5)
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
{else}
(L.L.doorSpeed_5) abs 0.05 > (L.L.door_5) 1 < || (L.L.doorDragAcc_5) 0 = ! || (L.L.doorTarget_45) &&
{if}
(L.L.doorSpeed_5) (L.L.doorAcc_5) (L.L.door_pressure_open_5) (L.L.doorDragAcc_5) + * (L.S.Timegap) * +
(L.L.doorDamper_5) (L.L.doorDamper_5_kennwert) (L.S.Timegap) * * -
(S.L.doorSpeed_5)
(L.L.door_5) (L.L.doorSpeed_5) (L.S.Timegap) * + (S.L.door_5)
{else}
0 (S.L.doorSpeed_5)
{endif}
{endif}
{endif}

(L.L.door_5) 1 >
{if}
(T.L.ev_doorhitopen_5)
1 (S.L.door_5)
(L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
{else}
(L.L.door_5) 0 <
{if}
(T.L.ev_doorhitclose_5)
0 (S.L.door_5)
(L.L.doorSpeed_5) /-/ (L.L.doorRefl_5) * (S.L.doorSpeed_5)
{endif}
{endif}

{end}


'###############################################################################​################

{macro:trg_bus_doorfront0}

(L.L.doorEntriegelung_E_active_01) (C.L.electric_doors) && !
{if}
(L.L.doorTarget_0) ! (S.L.doorTarget_0)
{if}
(T.L.ev_doortriggeropen_0)
{else}
(T.L.ev_doortriggerclose_0)
{endif}
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_01) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_01)
{else}
1 (S.L.doorEntriegelung_doorActive_01)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
1 (S.L.doorEntriegelung_doorActive_01)
{endif}
{endif}
{end}

{macro:trg_bus_doorfront1}

(L.L.doorEntriegelung_E_active_01) (C.L.electric_doors) && !
{if}
(L.L.doorTarget_1) ! (S.L.doorTarget_1)
{if}
(T.L.ev_doortriggeropen_1)
{else}
(T.L.ev_doortriggerclose_1)
{endif}
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_01) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_01)
{else}
1 (S.L.doorEntriegelung_doorActive_01)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
1 (S.L.doorEntriegelung_doorActive_01)
{endif}
{endif}
{end}

{macro:trg_bus_dooraft23}

(L.L.doorEntriegelung_E_active_23) (C.L.electric_doors) && !
{if}
(C.L.door_delay) 0 >
(C.L.door_ManBackDoorFrontDoorCombined) &&
{if}
(L.L.doorTarget_23_delay) ! (S.L.doorTarget_23_delay)
(C.L.door_delay) (S.L.doorTarget_23_delay_timer)

(L.L.door_2) 1 =
{if}
(T.L.ev_tuer2_piep)
{endif}

(L.L.doorTarget_23) !
{if}
1 (S.L.doorTarget_23)
(T.L.ev_doortriggeropen_2)

(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_23) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_23)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
1 (S.L.doorEntriegelung_doorActive_23)
{endif}
{endif}
{else}
(L.L.doorTarget_23) ! (S.L.doorTarget_23)
{if}
(T.L.ev_doortriggeropen_2)
{else}
(T.L.ev_doortriggerclose_2)
{endif}
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_23) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_23)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
1 (S.L.doorEntriegelung_doorActive_23)
{endif}
{endif}
{endif}
{end}

{macro:trg_bus_dooraft45}

(L.L.doorEntriegelung_E_active_45) (C.L.electric_doors) && !
{if}
(L.L.doorTarget_45) ! (S.L.doorTarget_45)
{if}
(T.L.ev_doortriggeropen_4)
{else}
(T.L.ev_doortriggerclose_4)
{endif}
(C.L.door_druckluft)
{if}
(L.L.doorEntriegelung_doorActive_45) -1 =
{if}
0 (S.L.doorEntriegelung_doorActive_45)
{endif}
(L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
{else}
1 (S.L.doorEntriegelung_doorActive_45)
{endif}
{endif}
{end}

{macro:trg_bus_dooraft}
(L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)

(L.L.bremse_halte_sw)
{if}
(T.L.ev_haltebremse_sw_an)
{else}
(T.L.ev_haltebremse_sw_aus)
{endif}
{end}

{macro:trg_bus_20h-switch}
(L.L.door_20h_sw) ! (S.L.door_20h_sw)

(L.L.door_20h_sw)
{if}
(T.L.ev_haltebremse_sw_an)
{else}
(T.L.ev_haltebremse_sw_aus)
{endif}
{end}


{macro:traegheit}

'Simuliert träges Verhalten (exponentiell)

'Ladekonventionen:
' Sollwert l0
' Istwert l1
' Konstante Anlauf l2 (Einheiten/s)
' Konstante Ablauf l3 (Einheiten/s)

'Anlauf oder Auslauf?
l0 l1 >
{if}
l2 (L.S.Timegap) * 1 min -1 max s4
{else}
l3 (L.S.Timegap) * 1 min -1 max s4
{endif}


'Sollwert:
l0
'Istwert:
l1
'Beschleunigung:
- l4 *
'Addition zum Istwert:
l1 + s1
{end}

Plik - door-3_varlist.txt

door_0
door_1
door_2
door_3
door_4
door_5
doorTarget_0
doorTarget_1
doorTarget_23
doorTarget_23_delay
doorTarget_23_delay_timer
doorTarget_45
doorTarget_45_delay
doorTarget_45_delay_timer
doorSpeed_0
doorSpeed_1
doorSpeed_2
doorSpeed_3
doorSpeed_4
doorSpeed_5
doorMaxSpeed_0
doorMaxSpeed_1
doorMaxSpeed_2
doorMaxSpeed_3
doorMaxSpeed_4
doorMaxSpeed_5
doorMaxSpeed_0_norm
doorMaxSpeed_1_norm
doorMaxSpeed_2_norm
doorMaxSpeed_3_norm
doorMaxSpeed_4_norm
doorMaxSpeed_5_norm
doorDamper_0_kennwert
doorDamper_1_kennwert
doorDamper_2_kennwert
doorDamper_3_kennwert
doorDamper_4_kennwert
doorDamper_5_kennwert
doorDamper_0
doorDamper_1
doorDamper_2
doorDamper_3
doorDamper_4
doorDamper_5
doorDragAcc_0
doorDragAcc_1
doorDragAcc_2
doorDragAcc_3
doorDragAcc_4
doorDragAcc_5
door_pressure_open_0
door_pressure_close_0
door_pressure_open_1
door_pressure_close_1
door_pressure_open_2
door_pressure_close_2
door_pressure_open_3
door_pressure_close_3
door_pressure_open_4
door_pressure_close_4
door_pressure_open_5
door_pressure_close_5
door_pressure_factor_01
door_pressure_factor_23
door_pressure_factor_45
doorAcc_0
doorAcc_1
doorAcc_2
doorAcc_3
doorAcc_4
doorAcc_5
doorRefl_0
doorRefl_1
doorRefl_2
doorRefl_3
doorRefl_4
doorRefl_5
door_1_locked
doorEntriegelung_01
doorEntriegelung_23
doorEntriegelung_45
doorEntriegelung_E_active_01
doorEntriegelung_E_active_23
doorEntriegelung_E_active_45
doorEntriegelung_doorActive_01
doorEntriegelung_doorActive_23
doorEntriegelung_doorActive_45
door0_umkehr
door0_warten
door0_physblock
door1_physblock
bremse_halte
bremse_halte_sw
doorMidLastOpen
doorAftLastOpen
haltewunsch
haltewunsch_2
prev_haltewunsch
haltewunschlampe
haltewunschlampe_2
haltewunschlampe_all
door_handsteuerung
door_haltewunsch_knopfdruck
door_haltewunsch_2_knopfdruck
door_kinderwagenwunsch
door_AI_timer
door_light_1
door_light_2
door_light_3
door_20h_sw
door_freigabe
door_hstbremse_knickschutz

Z góry dzięki za pomoc, sugestie, rozwiązanie tej kwestii!
Próbujesz dokonać zmiany na ustawienia z domyślnego MANa NL/NG?
Jeśli tak to prawdopodobnie wystarczy zmiana

[const]
door_ManBackDoorFrontDoorCombined
1

na 0

[const]
door_ManBackDoorFrontDoorCombined
0

Nie jestem jednak stuprocentowo pewny. Jeśli chcesz wprowadzać dalsze zmiany wymają większych ingerencji w skrypt i wątpię, by ktoś prowadził cię za rączkę. W informatorze są potrzebne poradniki, korzystając z nich rozszerzysz odpowiednio swoją wiedzę i będziesz w stanie wykonać taką modyfikację.
Przekierowanie