Hallo in die Runde,
ich beschäftige mich gerade zum ersten Mal mit Scripten, ohne dass ich wirklich Ahnung davon habe. Ursache hierfür ist die Türfunktion im Ikarus 256.50V, die mir in ihrer Bewegung zu unrealistisch erschien. Da ich nun keine Ahnung vom Scripten habe, entschloss ich mich, das Script samt varlist und constfile aus dem Ikarus 250.59 zu übernehmen. Also hab ich alle Einträge in der .bus umgebaut und die Dateien kopiert. Siehe da, die Tür bewegt sich nun auch im 256 wie ich's nett finde. Aber die Sache hat einen Haken wie ich im Linienbetrieb herausfand: Die Fahrgäste laufen zwar zur Tür, steigen aber nicht aus. Der Ikarus 256.50V hat vorn eine Schwenktür, hinten eine außer Betrieb gesetzte Schlagtür, ist also defacto ein Eintürer. Der Ikarus 250.59 hat hingegen zwei Schwenktüren, die von den Fahrgästen im Einbahnstraßenbetrieb benutzt werden. Vorn rein, hinten raus. Ich nehme an, dass der Fehler da zu suchen ist, aber ab hier blicke ich wie das berühmte Schwein ins Uhrwerk. Kann einer von den Script-Profis hier mal drüber sehen?
====================
Start logging
====================
Date: 25.06.2016
Time: 19:19:07
Version: 2.2.017
0 19:19:07 - - Information: OMSI is working in fullscreen mode
1 19:19:07 - - Information: TIR - looking for DLL path...
2 19:19:07 - - Information: TIR - DLL path not found - TIR disabled [0]
3 19:19:16 - - Information: Options dialog created
4 19:19:16 - - Information: Weather dialog created
5 19:19:16 - - Information: Profiles dialog created
6 19:19:16 - - Information: Time table running dialog created
7 19:19:16 - - Information: Start dialog created
8 19:19:16 - - Information: Menu 2 created
9 19:19:16 - - Information: Menu 3 created
10 19:19:16 - - Information: Tut dialog created
11 19:19:16 - - Information: Menu pos set
12 19:19:16 - - Information: Bro initialized
13 19:19:16 - - Information: Human engine initialized
14 19:19:16 - - Information: Forms set
15 19:19:16 - - Information: Captions set
16 19:19:16 - - Information: Screen ration set
17 19:19:16 - - Information: Init3D: BackBufferFormat = 22
18 19:19:16 - - Information: Init3D: Hardware vertex processing
19 19:19:16 - - Information: Init3D: Max iso = 16
20 19:19:16 - - Information: Init3D: Hal active
21 19:19:16 - - Information: Creating 3D device procedure finished
22 19:19:16 - - Information: 3D initialized
23 19:19:16 - - Information: Direct sound initialized
24 19:19:16 - - Information: Create main manager...
25 19:19:16 - - Information: Veh array created
26 19:19:16 - - Information: CS initialized
27 19:19:16 - - Information: Station manager created
28 19:19:16 - - Information: OBB created
29 19:19:16 - - Information: Tex managers created
30 19:19:16 - - Information: Tex manager started
31 19:19:16 - - Information: Tutorial manager created
32 19:19:16 - - Information: Material manager created
33 19:19:16 - - Information: Scenery object manager created
34 19:19:16 - - Information: Human manager created
35 19:19:16 - - Information: RV type manager created
36 19:19:16 - - Information: RV lists created
37 19:19:16 - - Information: Spline manager created
38 19:19:16 - - Information: Time table manager created
39 19:19:16 - - Information: Currency manager created
40 19:19:16 - - Warning: Did not find texture file "30er_reihensiedlung01.bmp"!
41 19:19:16 - - Warning: Did not find texture file "SD_Rad_v.bmp"!
42 19:19:16 - - Warning: Did not find texture file "reifen.bmp"!
43 19:19:16 - - Information: Visual helpers created
44 19:19:16 - - Information: Audio Mixer erstellen...
45 19:19:16 - - Information: ---
46 19:19:16 - - Information: Download Internet Textures...
47 19:19:17 - - Information: Input Manager erstellen...
48 19:19:17 - - Information: Tastaturbefehle laden...
49 19:19:17 - - Information: Game Controller laden...
50 19:19:17 - - Information: Progman initialisieren...
51 19:19:17 - - Information: Partikelvertices initialisieren...
52 19:19:17 - - Information: Lichtquellen initialisieren...
53 19:19:17 - - Information: System-Scriptvariablen initialisieren...
54 19:19:17 - - Information: Redline initialisieren...
55 19:19:17 - - Information: Traffic Path Manager initialisieren...
56 19:19:17 - - Information: Plugins initialisieren...
57 19:19:17 - - Information: Spline-Helper initialisieren...
58 19:19:17 - - Warning: Did not find texture file "path_car_1.bmp"!
59 19:19:32 - - Information: Loading Situation maps\Fikcyjne_Pomorze_3.0.0\laststn.osn...
60 19:19:32 - - Information: Date: 2016 0623, Time: 103920
61 19:19:32 - - Information: Load maps\Fikcyjne_Pomorze_3.0.0\global.cfg map...
62 19:19:32 - - Information: Load Cloud and Snowfall objects...
63 19:19:32 - - Warning: Did not find texture file "texture.tga"!
64 19:19:32 - - Warning: Did not find texture file "Snow_1.bmp.001"!
65 19:19:32 - - Information: Load Precip. Part. System...
66 19:19:32 - - Information: Load Precip. Sound...
67 19:19:32 - - Information: Sound erstellen...
68 19:19:32 - - Information: Sound laden...
69 19:19:32 - - Information: Set Weather System vars...
70 19:19:32 - - Information: Sky and Weather created
71 19:19:32 - - Information: Date: 2016 0623, Time: 103920
72 19:19:34 - - Information: Fonts initialized
73 19:19:34 - - Information: Map created
74 19:19:35 - - Information: Map Global File loaded
75 19:19:35 - - Information: Registrations loaded
76 19:19:35 - - Information: Parked Cars loaded
77 19:19:35 - - Information: Map AILists loaded
78 19:19:35 - - Information: New Centerkachel set
79 19:19:35 - - Information: VarParents loaded
80 19:19:35 - - Information: Special Objects refreshed
81 19:19:35 - - Information: Object and Spline Matrices refreshed
82 19:19:35 - - Information: Map loaded
83 19:19:36 - - Information: Humans created
84 19:19:36 - - Information: Editor refreshed
85 19:19:36 - - Warning: Cloudtype "-1" could not be found!
86 19:19:36 - - Information: Weather loaded
87 19:19:36 - - Information: Map camera loaded
88 19:19:36 - - Information: maps\Fikcyjne_Pomorze_3.0.0\global.cfg map loaded!
89 19:19:38 - - Information: Refresh Tile: 7, maps\Fikcyjne_Pomorze_3.0.0\tile_2_-4.map ...
90 19:19:39 - - Information: Refresh Tile: 8, maps\Fikcyjne_Pomorze_3.0.0\tile_2_-3.map ...
91 19:19:42 - - Warning: Did not find texture file "StrSchild_Text2.bmp"!
92 19:19:43 - - Warning: Did not find texture file "text.bmp"!
93 19:19:43 - - Warning: Did not find texture file "text.bmp"!
94 19:19:43 - - Information: Refresh Tile: 226, maps\Fikcyjne_Pomorze_3.0.0\tile_3_-2.map ...
95 19:19:46 - - Warning: File Sceneryobjects\Mega polish mod\Obiekty innych\by NightHauler\slupek\zakaz_palenia.sco: texture filename slupek.dds not found in mesh file Sceneryobjects\Mega polish mod\Obiekty innych\by NightHauler\slupek\model\zakaz_palenia.o3d!
96 19:19:47 - - Information: Refresh Tile: 227, maps\Fikcyjne_Pomorze_3.0.0\tile_3_-1.map ...
97 19:19:50 - - Information: Refresh Tile: 221, maps\Fikcyjne_Pomorze_3.0.0\tile_4_-4.map ...
98 19:19:51 - - Warning: File Sceneryobjects\mmiki26\Siatki ogrodzeniowe\Slup.sco: texture filename imago.png not found in mesh file Sceneryobjects\mmiki26\Siatki ogrodzeniowe\model\slup.o3d!
99 19:19:52 - - Warning: Did not find texture file "text.bmp"!
100 19:19:53 - - Information: Refresh Tile: 225, maps\Fikcyjne_Pomorze_3.0.0\tile_4_-2.map ...
101 19:19:54 - - Information: Refresh Tile: 222, maps\Fikcyjne_Pomorze_3.0.0\tile_5_-4.map ...
102 19:19:56 - - Information: Refresh Tile: 223, maps\Fikcyjne_Pomorze_3.0.0\tile_5_-3.map ...
103 19:20:00 - - Information: Refresh Tile: 224, maps\Fikcyjne_Pomorze_3.0.0\tile_5_-2.map ...
104 19:20:03 - - Error: Fehler: im Befehl "(S.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
105 19:20:03 - - Error: Fehler: im Befehl "(L.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
106 19:20:03 - - Error: Fehler: im Befehl "(S.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
107 19:20:03 - - Error: Fehler: im Befehl "(L.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
108 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
109 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
110 19:20:03 - - Error: Fehler: im Befehl "(S.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
111 19:20:03 - - Error: Fehler: im Befehl "(L.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
112 19:20:03 - - Error: Fehler: im Befehl "(S.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
113 19:20:03 - - Error: Fehler: im Befehl "(L.L.elec_busbar_Rinv_summe)" (vehicles\Ikarus 256\\script\door.osc) ist der Variablenname ungültig!
114 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
115 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
116 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
117 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
118 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
119 19:20:03 - - Error: Fehler: im Befehl "(C.L.elec_busbar_minV)" (vehicles\Ikarus 256\\script\door.osc) <SC_ErrorInCommand_constantinvalid>
120 19:20:04 - - Warning: Did not find texture file "569_CLRS.JPG"!
121 19:20:11 - - Information: Date: 2016 0623, Time: 103920
122 19:20:11 - - Warning: Cloudtype "-1" could not be found!
123 19:20:11 - - Information: Date: 2016 0623, Time: 103920
124 19:20:13 - - Information: Traffic loaded
125 19:20:13 - - Information: Reset Passengers...
126 19:20:13 - - Information: Initialize Scheduled AI...
127 19:20:13 - - Information: Refresh All Vehicle Indices...
128 19:20:13 - - Information: Date: 2016 0623, Time: 103920
129 19:20:13 - - Information: Reset Passengers...
130 19:20:13 - - Information: Initialize Scheduled AI...
131 19:20:13 - - Information: Refresh All Vehicle Indices...
132 19:20:13 - - Warning: Direct3D-Device lost!
133 19:20:13 - - Information: Direct3D-Device resetted!
134 19:20:13 - - Information: Reset State Matrices...
135 19:20:13 - - Information: Start Tex Thread...
136 19:20:13 - - Information: Init Red Line...
137 19:20:13 - - Information: Set Initial Render States...
138 19:20:13 - - Warning: Soundfile vehicles\Ikarus 256\sound\D_2566UHx@1280_bass.wav does not exist!
139 19:20:24 - - Information: Menu pos set
140 19:20:24 - - Warning: Did not find texture file "Kennz.bmp"!
141 19:20:35 - - Information: Menu pos set
142 19:20:37 - - Information: Menu pos set
143 19:20:42 - - Information: Menu pos set
144 19:20:46 - - Information: Menu pos set
145 19:20:46 - - Warning: Did not find texture file "Kennz.bmp"!
146 19:20:53 - - Information: Menu pos set
147 19:20:54 - - Warning: Did not find texture file "text.bmp"!
148 19:20:54 - - Warning: Did not find texture file "text.bmp"!
149 19:20:54 - - Warning: Did not find texture file "text.bmp"!
150 19:20:54 - - Warning: Did not find texture file "text.bmp"!
151 19:20:54 - - Information: Menu pos set
152 19:22:40 - - Information: Menu pos set
153 19:22:42 - - Information: Menu pos set
154 19:23:00 - - Information: Date: 2016 0623, Time: 105328
155 19:23:00 - - Information: Reset Passengers...
156 19:23:00 - - Information: Initialize Scheduled AI...
157 19:23:00 - - Information: Refresh All Vehicle Indices...
158 19:23:00 - - Information: Menu pos set
159 19:23:12 - - Information: Menu pos set
160 19:23:13 - - Information: Menu pos set
161 19:23:34 - - Warning: Soundfile Sounds\Passengers\..\..\TicketPacks\Pomorze\\F4\Hello_2.wav does not exist!
162 19:23:35 - - Warning: Soundfile Sounds\Passengers\..\..\TicketPacks\Pomorze\\M3\GoodMorning_1.wav does not exist!
163 19:24:10 - - Information: Refresh Tile: 10, maps\Fikcyjne_Pomorze_3.0.0\tile_3_-5.map ...
164 19:24:13 - - Warning: Did not find texture file "text.bmp"!
165 19:24:14 - - Information: Refresh Tile: 219, maps\Fikcyjne_Pomorze_3.0.0\tile_4_-5.map ...
166 19:24:54 - - Information: Menu pos set
167 19:24:55 - - Information: Menu pos set
168 19:25:00 - - Warning: Soundfile Sounds\Passengers\..\..\TicketPacks\Pomorze\\F4\GoodMorning_1.wav does not exist!
169 19:25:27 - - Information: Refresh Tile: 220, maps\Fikcyjne_Pomorze_3.0.0\tile_4_-6.map ...
170 19:25:55 - - Information: Refresh Tile: 245, maps\Fikcyjne_Pomorze_3.0.0\tile_2_-5.map ...
171 19:27:40 - - Warning: Did not find texture file "Kennz.bmp"!
172 19:28:21 - - Warning: Did not find texture file "Kennz.bmp"!
173 19:28:21 - - Information: Refresh Tile: 9, maps\Fikcyjne_Pomorze_3.0.0\tile_1_-5.map ...
174 19:28:22 - - Information: Refresh Tile: 5, maps\Fikcyjne_Pomorze_3.0.0\tile_1_-4.map ...
175 19:28:23 - - Information: Refresh Tile: 6, maps\Fikcyjne_Pomorze_3.0.0\tile_1_-3.map ...
176 19:28:50 - - Information: Refresh Tile: 247, maps\Fikcyjne_Pomorze_3.0.0\tile_0_-5.map ...
177 19:28:50 - - Warning: File Sceneryobjects\Objects_RS\Zaun_Tor_6m_02.sco: texture filename tex_a.bmp not found in mesh file Sceneryobjects\Objects_RS\model\Tor_6m_02.o3d!
178 19:28:51 - - Information: Refresh Tile: 4, maps\Fikcyjne_Pomorze_3.0.0\tile_0_-4.map ...
179 19:28:51 - - Information: Refresh Tile: 3, maps\Fikcyjne_Pomorze_3.0.0\tile_0_-3.map ...
180 19:28:58 - - Information: Menu pos set
181 19:28:59 - - Information: Menu pos set
182 19:29:07 - - Information: Try placing random bus:
183 19:29:26 - - Warning: Did not find texture file "Linienlisten\Pomorze_ANX.jpg"!
184 19:29:39 - - Information: Refresh Tile: 12, maps\Fikcyjne_Pomorze_3.0.0\tile_-1_-6.map ...
185 19:29:40 - - Information: Refresh Tile: 248, maps\Fikcyjne_Pomorze_3.0.0\tile_-1_-5.map ...
186 19:29:41 - - Information: Refresh Tile: 11, maps\Fikcyjne_Pomorze_3.0.0\tile_-1_-4.map ...
187 19:29:59 - - Information: Refresh Tile: 238, maps\Fikcyjne_Pomorze_3.0.0\tile_-2_-5.map ...
188 19:30:00 - - Information: Refresh Tile: 239, maps\Fikcyjne_Pomorze_3.0.0\tile_-2_-4.map ...
189 19:30:46 - - Information: Refresh Tile: 240, maps\Fikcyjne_Pomorze_3.0.0\tile_-3_-5.map ...
190 19:30:46 - - Warning: File Sceneryobjects\Objects_SN\Zaun_Tor_6m_02.sco: texture filename tex_a.bmp not found in mesh file Sceneryobjects\Objects_SN\model\Tor_6m_02.o3d!
191 19:30:47 - - Information: Refresh Tile: 237, maps\Fikcyjne_Pomorze_3.0.0\tile_-3_-4.map ...
192 19:30:47 - - Information: Refresh Tile: 243, maps\Fikcyjne_Pomorze_3.0.0\tile_-3_-3.map ...
193 19:30:56 - - Information: Refresh Tile: 2, maps\Fikcyjne_Pomorze_3.0.0\tile_0_-2.map ...
194 19:31:38 - - Warning: Did not find texture file "Kennz.bmp"!
195 19:31:43 - - Warning: Did not find texture file "text.bmp"!
196 19:31:43 - - Warning: Did not find texture file "text.bmp"!
197 19:31:43 - - Warning: Did not find texture file "text.bmp"!
198 19:31:43 - - Information: Refresh Tile: 241, maps\Fikcyjne_Pomorze_3.0.0\tile_-4_-5.map ...
199 19:31:43 - - Information: Refresh Tile: 242, maps\Fikcyjne_Pomorze_3.0.0\tile_-4_-4.map ...
200 19:33:28 - - Information: Deativating TIR...
201 19:33:28 - - Information: TIR was not available
202 19:33:28 - - Information: Closing actual map...
203 19:33:28 - - Information: Actual map closed!
204 19:33:29 - - Information: OMSI is closing...
'##############
'Door Script
'##############
'Controls Doors
'(c) 2007-2009 Rüdiger Hülsmann
'(c) 2007-2013 Marcel Kuhnt
'(c) 2011 Markus Rabe
'Script Version: 1.1
'Omsi release: 1.0
'Needs:
'- elec
'NrSpecRandom Seed Area:
'301 ... 312
'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 04.11.2012 Türvariation fester Wagennummer zugeordnet
'- Marcel Kuhnt 04.11.2012 Türanforderung mit neuen Variablen
'- 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
'- Marcel Kuhnt 05.08.2013 Automatic Backdoor Malfunction added
'- Rüdiger Hülsmann 28.10.2013 "needs stopbrake" function debugged
'--------------------------------------------------------------------------------
'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
'--- Billenytûzetrõl nyitás egy gombbal 1. ajtó ---'
{trigger:bus_doorfront0}
(L.L.elec_busbar_main)
{if}
(M.L.trg_bus_doorfront0)
{if}
1 (S.L.cockpit_tuertaster1_nyit)
(T.L.ev_ajtokapcs_be)
{else}
1 (S.L.cockpit_tuertaster1_zar) (T.L.ev_ajtokapcs_be)
{endif}
{endif}
{end}
{trigger:bus_doorfront0_off}
0 (S.L.cockpit_tuertaster1_nyit) (S.L.cockpit_tuertaster1_zar) (T.L.ev_ajtokapcs_ki)
{end}
'------'
{trigger:bus_doorfront0_nyit}
(L.L.door_0) 0.001 <
{if}
(L.L.elec_busbar_main)
{if}
(M.L.trg_bus_doorfront0)
{endif}
{endif}
1 (S.L.cockpit_tuertaster1_nyit) (T.L.ev_ajtokapcs_be)
{end}
{trigger:bus_doorfront0_nyit_off}
0 (S.L.cockpit_tuertaster1_nyit) (T.L.ev_ajtokapcs_ki)
{end}
{trigger:bus_doorfront0_external}
(L.L.elec_busbar_avail)
{if}
(M.L.trg_bus_doorfront0) (M.L.trg_bus_doorfront1)
{endif}
{end}
{trigger:bus_doorfront0_zar}
(L.L.door_0) 0.2 >
{if}
(L.L.elec_busbar_main)
{if}
(M.L.trg_bus_doorfront0)
{endif}
{endif}
1 (S.L.cockpit_tuertaster1_zar) (T.L.ev_ajtokapcs_be)
{end}
{trigger:bus_doorfront0_zar_off}
0 (S.L.cockpit_tuertaster1_zar) (T.L.ev_ajtokapcs_ki)
{end}
'--- Billenytûzetrõl nyitás egy gombbal 2. ajtó ---'
{trigger:bus_doorfront1}
(L.L.elec_busbar_main)
{if}
(M.L.trg_bus_dooraft23)
{if}
1 (S.L.cockpit_tuertaster2_nyit)
(T.L.ev_ajtokapcs_be)
{else}
1 (S.L.cockpit_tuertaster2_zar) (T.L.ev_ajtokapcs_be)
{endif}
{endif}
{end}
{trigger:bus_doorfront1_off}
0 (S.L.cockpit_tuertaster2_nyit) (S.L.cockpit_tuertaster2_zar) (T.L.ev_ajtokapcs_ki)
{end}
'------'
{trigger:bus_doorfront1_nyit}
(L.L.door_2) 0.001 <
{if}
(L.L.elec_busbar_main)
{if}
(M.L.trg_bus_dooraft23)
{endif}
{endif}
1 (S.L.cockpit_tuertaster2_nyit) (T.L.ev_ajtokapcs_be)
{end}
{trigger:bus_doorfront1_nyit_off}
0 (S.L.cockpit_tuertaster2_nyit) (T.L.ev_ajtokapcs_ki)
{end}
{trigger:bus_doorfront1_zar}
(L.L.door_2) 0.2 >
{if}
(L.L.elec_busbar_main)
{if}
(M.L.trg_bus_dooraft23)
{endif}
{endif}
1 (S.L.cockpit_tuertaster2_zar) (T.L.ev_ajtokapcs_be)
{end}
{trigger:bus_doorfront1_zar_off}
0 (S.L.cockpit_tuertaster2_zar) (T.L.ev_ajtokapcs_ki)
{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_dooraft0}
(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_aussenoeffner}
(L.L.door_freigabe)
{if}
1 (S.L.haltewunsch)
{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: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)
'Wenn Hintertür spinnt, dann bewirkt das Entriegeln Wunder - zumindest kurzfristig:
(L.L.door_malf_autobdoor_remcyc) 0 <
{if}
4 random 2 + (S.L.door_malf_autobdoor_remcyc)
0 (S.L.door_malf_autobdoor_closingOK)
{endif}
{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}
{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.bdoor_acc) + (S.L.doorAcc_2)
304 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_3)
305 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
306 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
307 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
308 (M.V.NrSpecRandom) 2 * 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)
'Beim Dämpfer wird der Wert bis auf 40% reduziert statt eine Varianz verwendet:
309 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door0_damper) * (S.L.doorDamper_0_kennwert)
310 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door1_damper) * (S.L.doorDamper_1_kennwert)
311 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door2_damper) * (S.L.doorDamper_2_kennwert)
312 (M.V.NrSpecRandom) 0.9 * 0.1 + (C.L.door3_damper) * (S.L.doorDamper_3_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)
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.doorDamper_0) (S.L.doorDamper_1) (S.L.doorDamper_2) (S.L.doorDamper_3)
1 (S.L.doorEntriegelung_doorActive_01)
1 (S.L.doorEntriegelung_doorActive_23)
(M.L.door_lifetimeinit)
{end}
{macro:Door_Frame}
'Anforderung mit neuen Variablen:
(L.L.haltewunsch) (L.L.PAX_Exit0_Req) (L.L.PAX_Exit1_Req)
'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) > ! &&
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) > ! &&
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)
{endif}
(M.L.Door0_Calc)
(M.L.Door1_Calc)
(M.L.DoorAftCalc)
(M.L.Door2_Calc)
(M.L.Door3_Calc)
0
(S.L.doorDragAcc_0)
(S.L.doorDragAcc_1)
(S.L.doorDragAcc_2)
(S.L.doorDragAcc_3)
(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.75 > (L.L.door_3) 0.75 > && (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open) (S.L.PAX_Entry2_Open) (S.L.PAX_Entry3_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}
' Setzen der Haltestellenbremse erst bei Stillstand des Busses:
(L.L.bremse_halte_sw) (L.L.door_20h_sw)
(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.DoorAft_Open)
{endif}
' 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}
' Bing:
(L.L.haltewunsch) (L.L.prev_haltewunsch) ! && (L.L.elec_busbar_main) (C.L.elec_busbar_minV) > &&
{if}
(T.L.ev_stop)
{endif}
(L.L.haltewunsch) (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}
'-------------------------------------------------------------------
'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_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)
'.....................
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)
{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_b_open)
{else}
(L.L.door_2) (F.L.damper_b_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_b_open)
{else}
(L.L.door_3) (F.L.damper_b_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)
'........................
'###############################################################################################
' 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 <
{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 >
{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 <
{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}
(L.L.door_0) s1 0.12 s2 <
l1 0 >= &&
{if}
l1 (S.L.door_0xz)
{else}
l2 (S.L.door_0xz)
{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 <
{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 >
{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 <
{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:DoorAft_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)
{else}
1 (S.L.doorEntriegelung_doorActive_23)
{endif}
{endif}
0 (S.L.doorAftLastOpen)
{endif}
{end}
{macro:DoorAftCalc}
(L.L.bremse_halte_sw) !
(L.L.door_20h_sw) ! && s0
(C.L.door_ManBackDoorFrontDoorCombined) !
{if}
l0
(L.L.door_2) 0 = &&
(L.L.door_3) 0 = &&
s0
{endif}
l0
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) <=
(L.L.bremse_halte) &&
{if}
0 (S.L.bremse_halte) (S.L.doorAftLastOpen)
(T.L.ev_haltebremse_aus)
{endif}
(L.L.elec_busbar_main) (C.L.elec_busbar_minV) >
{if}
(L.L.bremse_halte) (C.L.door_ManBackDoorFrontDoorCombined) ! &&
{if}
(L.L.doorAftLastOpen) (L.S.Timegap) + (S.L.doorAftLastOpen)
{endif}
(L.L.doorTarget_23)
(L.L.doorAftLastOpen) (C.L.doorAftOpenTime) > &&
{if}
(T.L.ev_doortriggerclose_2)
0 (S.L.doorTarget_23)
'Malfunction:
(M.L.door_malf_cyc_dec)
(L.L.door_malf_autobdoor_reopen_prob)
(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}
{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)
(M.L.door_malf_autobdoor_reopen)
{else}
(L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 <
{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 >
{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)
(M.L.door_malf_autobdoor_reopen)
{else}
(L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 <
{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}
(L.L.door_2) s1 0.12 s2 <
l1 0 >= &&
{if}
l1 (S.L.door_2xz)
{else}
l2 (S.L.door_2xz)
{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 <
{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 >
{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 <
{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}
'###############################################################################################
{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}
(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}
{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:door_malf_cyc_dec}
(L.L.door_malf_autobdoor_remcyc) s0 0 >=
{if}
0 (S.L.door_malf_autobdoor_closingOK)
l0 1 - (S.L.door_malf_autobdoor_remcyc) s0
l0 0 < (L.L.door_malf_autobdoor_reopen_prob) 0 < &&
{if}
100 random (S.L.door_malf_autobdoor_reopen_prob)
{endif}
{else}
(L.L.door_malf_autobdoor_closingOK) -1.5 >
{if}
0 (S.L.door_malf_autobdoor_closingOK)
{endif}
{endif}
{end}
{macro:door_malf_autobdoor_reopen}
(L.L.door_malf_autobdoor_remcyc) 0 <
(L.L.door_malf_autobdoor_closingOK) 0.5 <
(L.L.door_2) s0 0.5 < l0 0.1 > && && &&
{if}
100 random (L.L.door_malf_autobdoor_reopen_prob) <
(L.L.door_malf_autobdoor_closingOK) -0.5 <
{if}
1 (S.L.haltewunsch)
(L.L.door_malf_autobdoor_reopen_prob) 50 random 25 + >
(L.L.door_malf_autobdoor_closingOK) s0 -1.5 <
l0 -1.5 <
l0 -0.5 >
{if}
-2 (S.L.door_malf_autobdoor_closingOK)
{else}
-1 (S.L.door_malf_autobdoor_closingOK)
{endif}
{else}
1 (S.L.door_malf_autobdoor_closingOK)
{endif}
{endif}
{end}
{macro:door_lifetimeinit}
(C.L.door_malf_autobdoor_livetime_cyc) random (L.L.wearlifespan) * (S.L.door_malf_autobdoor_remcyc)
-1 (S.L.door_malf_autobdoor_reopen_prob)
{end}
{macro:door_repair}
(L.L.door_malf_autobdoor_reopen_prob) 0 >
{if}
(C.L.door_malf_autobdoor_livetime_cyc) random (S.L.door_malf_autobdoor_remcyc)
-1 (S.L.door_malf_autobdoor_reopen_prob)
{endif}
{end}
{macro:door_repair_timecalc}
'Berechnung der Zeit, die benötigt wird, um die Schäden zu reparieren:
s0
(L.L.door_malf_autobdoor_reopen_prob) 0 > 5 * l0 + s0
l0
{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}
door_0xz
door_2xz
door_0
door_1
door_2
door_3
doorTarget_0
doorTarget_1
doorTarget_23
doorSpeed_0
doorSpeed_1
doorSpeed_2
doorSpeed_3
doorMaxSpeed_0
doorMaxSpeed_1
doorMaxSpeed_2
doorMaxSpeed_3
doorMaxSpeed_0_norm
doorMaxSpeed_1_norm
doorMaxSpeed_2_norm
doorMaxSpeed_3_norm
doorDamper_0_kennwert
doorDamper_1_kennwert
doorDamper_2_kennwert
doorDamper_3_kennwert
doorDamper_0
doorDamper_1
doorDamper_2
doorDamper_3
doorDragAcc_0
doorDragAcc_1
doorDragAcc_2
doorDragAcc_3
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_factor_01
door_pressure_factor_23
doorAcc_0
doorAcc_1
doorAcc_2
doorAcc_3
doorRefl_0
doorRefl_1
doorRefl_2
doorRefl_3
door_1_locked
doorEntriegelung_01
doorEntriegelung_23
doorEntriegelung_E_active_01
doorEntriegelung_E_active_23
doorEntriegelung_doorActive_01
doorEntriegelung_doorActive_23
door0_umkehr
door0_warten
door0_physblock
door1_physblock
bremse_halte
bremse_halte_sw
doorAftLastOpen
haltewunsch
prev_haltewunsch
haltewunschlampe
door_handsteuerung
door_haltewunsch_knopfdruck
door_kinderwagenwunsch
door_AI_timer
door_light_1
door_light_2
door_20h_sw
door_freigabe
door_malf_autobdoor_remcyc
door_malf_autobdoor_reopen_prob
door_malf_autobdoor_closingOK
Front/Back Door Acceleration (100%/s²)
[const]
fdoor_acc
0.7
[const]
bdoor_acc
0.5
Door Acceleration Variation (100%/s²)
[const]
door_acc_var
0.2
Front/Back Door Max Speed (100%/s)
[const]
fdoor_maxspeed
0.05
[const]
bdoor_maxspeed
0.05
[const]
door_maxspeed_var
0.02
Front/Back Door Damper (100%/s)
[const]
door0_damper
6
[const]
door1_damper
6
[const]
door2_damper
2
[const]
door3_damper
12
Dämpferkennlinie über Öffnungzustand:
[newcurve]
damper_f_close
[pnt]
0.2
1
[pnt]
0.8
0
[newcurve]
damper_f_open
[pnt]
0.2
0
[pnt]
0.8
0.8
[newcurve]
damper_b_close
[pnt]
0.2
1
[pnt]
0.8
0
[newcurve]
damper_b_open
[pnt]
0.2
0
[pnt]
0.8
0.6
Door Stop Reflexion Coefficient
[const]
door_refl
0.2
Automatic Back Door Time
[const]
doorAftOpenTime
3
Busstop Brake will only be activated belov MaxKMH:
[const]
Door_Bremse_Halte_MaxKMH
2
'Vordertürflügel sind kombiniert und Hintertür 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
1
[const]
door_needs_stopbrake
0
[const]
door_needs_stopbrakeswitch
0
[const]
electric_doors
0
[const]
thinking_doors
0
[const]
door_blocking
1
[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.2
0.2
[pnt]
0.5
0.3
[pnt]
0.75
0.4
[pnt]
0.8
0.9
[pnt]
1
1
[newcurve]
door_0_cls_speed
[pnt]
0
0.1
[pnt]
0.2
0.2
[pnt]
0.5
0.3
[pnt]
0.75
0.4
[pnt]
0.8
0.9
[pnt]
1
1
[newcurve]
door_1_opn_speed
[pnt]
0
1
[newcurve]
door_1_cls_speed
[pnt]
0
1
[newcurve]
door_2_opn_speed
[pnt]
0
0.1
[pnt]
0.2
0.2
[pnt]
0.5
0.3
[pnt]
0.75
0.4
[pnt]
0.8
0.9
[pnt]
1
1
[newcurve]
door_2_cls_speed
[pnt]
0
0.1
[pnt]
0.2
0.2
[pnt]
0.5
0.3
[pnt]
0.75
0.4
[pnt]
0.8
0.9
[pnt]
1
1
[newcurve]
door_3_opn_speed
[pnt]
0
1
[newcurve]
door_3_cls_speed
[pnt]
0
1
=============================================
Inverse Widerstände (Leitwerte) in 1/Ohm.
Türflügelstromverbrauch: 500W/Geschwindigkeit 1 (0.87 1/Ohm)
[const]
door_Rinv
0
.............................
=============================================
Malfunction-Parameter
[const]
door_malf_autobdoor_livetime_cyc
1000
Vielen Dank im Voraus
Beste Grüße
Matze