Advertisement
Guest User

Untitled

a guest
Aug 18th, 2013
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.27 KB | None | 0 0
  1. '##############
  2. 'Door Script
  3. '##############
  4.  
  5. 'Controls Doors
  6.  
  7. '(c) 2007-2009 Rüdiger Hülsmann
  8. '(c) 2007-2009 Marcel Kuhnt
  9.  
  10. 'Script Version: 1.1
  11. 'Omsi release: 1.0
  12.  
  13. 'Needs:
  14. '- elec
  15.  
  16. 'Revision History:
  17. '- Marcel Kuhnt 13.06.2009 Batterietrennschalter => elec_busbar_main
  18. '- Marcel Kuhnt 21.06.2009 AI-Unterstützung hinzugefügt
  19. '- Rüdiger Hülsmann 24.10.2009 Ansteuerung des Kinderwagenwunsches modifiziert
  20. '- 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
  21. '- RÜdiger Hülsmann 22.09.2010 Door light trigger value set to 0.1
  22. '- RÜdiger Hülsmann 07.11.2010 Door speed based on reservoir pressure, air-operated doors made an option
  23. '- Marcel Kuhnt 08.11.2010 AI procedure closing doors debugged
  24. '- Rüdiger Hülsmann 21.11.2010 Front doors only operable when busbar on
  25. '- Rüdiger Hülsmann 23.12.2010 External front door operation included, option: doors only operable with actual stop brake
  26. '- Rüdiger Hülsmann 31.12.2010 Electric door function debugged
  27. '- Rüdiger Hülsmann 05.01.2011 20h-switch
  28. '- Rüdiger Hülsmann 07.01.2011 Backdoor manual switch sound debugged, 20h switch depending on bus type
  29. '- Rüdiger Hülsmann 19.01.2011 Electric door support
  30.  
  31. '--------------------------------------------------------------------------------
  32.  
  33. {trigger:bus_doorfront0}
  34. (L.L.elec_busbar_avail)
  35. {if}
  36. (M.L.trg_bus_doorfront1)
  37. {endif}
  38. 1 (S.L.cockpit_tuertaster2)
  39. {end}
  40.  
  41. {trigger:bus_doorfront1_off}
  42. 0 (S.L.cockpit_tuertaster2)
  43. {end}
  44.  
  45. {trigger:bus_doorfront1}
  46. (L.L.elec_busbar_avail)
  47. {if}
  48. (M.L.trg_bus_doorback2)
  49. {endif}
  50. 1 (S.L.cockpit_tuertaster3)
  51. {end}
  52.  
  53. {trigger:bus_doorfront3_off}
  54. 0 (S.L.cockpit_tuertaster3)
  55. {end}
  56.  
  57. {trigger:bus_dooraft}
  58. (M.L.trg_bus_dooraft)
  59. {end}
  60.  
  61. {trigger:bus_20h-switch}
  62. (C.L.cockpit_has_20h_switch)
  63. {if}
  64. (M.L.trg_bus_20h-switch)
  65. {endif}
  66. {end}
  67.  
  68. {trigger:int_haltewunsch}
  69. 1 (S.L.haltewunsch)
  70. {end}
  71.  
  72. {trigger:door_haltewunsch}
  73. 1 (S.L.haltewunsch) (S.L.door_haltewunsch_knopfdruck)
  74. {end}
  75.  
  76. {trigger:door_haltewunsch_off}
  77. 0 (S.L.door_haltewunsch_knopfdruck)
  78. {end}
  79.  
  80. {trigger:cp_schalter_kinderwagen}
  81. (L.L.door_handsteuerung) ! (S.L.door_handsteuerung)
  82. {if}
  83. 0 (S.L.door_kinderwagenwunsch)
  84. (T.L.ev_kippschalter_ein)
  85. {else}
  86. (T.L.ev_kippschalter_aus)
  87. {endif}
  88.  
  89. {end}
  90.  
  91. {trigger:door_kinderwagenwunsch}
  92. (L.L.bremse_halte) (L.L.door_handsteuerung) ! &&
  93. {if}
  94. 1 (S.L.door_kinderwagenwunsch)
  95. {endif}
  96. {end}
  97.  
  98.  
  99. {macro:Door_Init}
  100. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0)
  101. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_1)
  102. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_2)
  103. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_3)
  104.  
  105. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
  106. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
  107. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
  108. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)
  109.  
  110. (C.L.door_refl) (S.L.doorRefl_0)
  111. (C.L.door_refl) (S.L.doorRefl_1)
  112. (C.L.door_refl) (S.L.doorRefl_2)
  113. (C.L.door_refl) (S.L.doorRefl_3)
  114.  
  115.  
  116. {end}
  117.  
  118. {macro:Door_Frame}
  119. (M.L.Door0_Calc)
  120. (M.L.Door1_Calc)
  121. (M.L.DoorAftCalc)
  122. (M.L.Door2_Calc)
  123. (M.L.Door3_Calc)
  124.  
  125. (L.L.door_0) 0.9 > (S.L.PAX_Entry2_Open) (S.L.PAX_Exit2_Open)
  126. (L.L.door_1) 0.9 > (S.L.PAX_Exit0_Open) (S.L.PAX_Entry0_Open)
  127. (L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Entry1_Open) (S.L.PAX_Exit1_Open)
  128.  
  129.  
  130. ' "Dauerfeuer"-Haltewunsch über Kinderwagenschalter (macht genau dasselbe wie der "trigger:int_haltewunsch"):
  131. (L.L.door_handsteuerung) (L.L.door_haltewunsch_knopfdruck) ||
  132. {if}
  133. 1 (S.L.haltewunsch)
  134. {endif}
  135.  
  136. ' Setzen der Haltestellenbremse erst bei Stillstand des Busses:
  137. (L.L.bremse_halte_sw) (L.L.door_20h_sw) ||
  138. (L.L.bremse_halte) ! (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) < && &&
  139. {if}
  140. (L.L.elec_busbar_main)
  141. {if}
  142. (T.L.ev_haltebremse_an)
  143. 1 (S.L.bremse_halte)
  144. {endif}
  145. {endif}
  146.  
  147. ' Anhand dieser Bedingungen kann nun die Automatiktür geöffnet werden:
  148.  
  149.  
  150. ' Türfreigabekriterium
  151.  
  152. (L.L.bremse_halte_sw) (L.L.bremse_halte) && (S.L.door_freigabe)
  153.  
  154. ' Haltewunschlampe:
  155. (L.L.haltewunsch) (L.L.door_2) 0.2 < (L.L.elec_busbar_main) && &&
  156. {if}
  157. 1 (S.L.haltewunschlampe)
  158. {else}
  159. 0 (S.L.haltewunschlampe) (S.L.haltewunsch)
  160. {endif}
  161.  
  162. ' Abfall des Kinderwagenwunsch-Relais bei fehlender Stromversorgung:
  163.  
  164. (L.L.elec_busbar_main) 0 =
  165. {if}
  166. 0 (S.L.door_kinderwagenwunsch)
  167. {endif}
  168.  
  169. ' Beleuchtung der Einstiege
  170.  
  171. (L.L.elec_busbar_main)
  172. {if}
  173. (L.L.door_0) 0.1 > (L.L.door_0) 0.1 > || (S.L.door_light_1)
  174. (L.L.door_1) 0.1 > (L.L.door_1) 0.1 > || (S.L.door_light_2)
  175. (L.L.door_2) 0.1 > (L.L.door_3) 0.1 > || (S.L.door_light_3)
  176. {else}
  177. 0 (S.L.door_light_1) (S.L.door_light_2) (S.L.door_light_3)
  178. {endif}
  179.  
  180. ' Druckabhängige Türgeschwindigkeit
  181.  
  182. (C.L.door_druckluft)
  183. {if}
  184. (L.L.doorMaxSpeed_0_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_0)
  185. (L.L.doorMaxSpeed_1_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_1)
  186. (L.L.doorMaxSpeed_2_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_2)
  187. (L.L.doorMaxSpeed_3_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_3)
  188. {endif}
  189. '----------------------
  190. ' AI-Ablauf:
  191.  
  192. (L.L.AI_Scheduled_AtStation) s0
  193. 1 =
  194. {if}
  195. 'Wenn Türen geöffnet werden sollen:
  196. (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) <
  197. {if}
  198. 'Nur, wenn v < maxkmh, sonst warten
  199. 'Taster jeweils nur betätigen, falls noch nicht an
  200. (L.L.bremse_halte_sw) !
  201. {if}
  202. (M.L.trg_bus_dooraft)
  203. {endif}
  204. (L.L.doorTarget_0) ! (L.L.door_AI_timer) 0.3 > &&
  205. {if}
  206. (M.L.trg_bus_doorfront0)
  207. {endif}
  208. (L.L.doorTarget_1) ! (L.L.door_AI_timer) 0.6 > &&
  209. {if}
  210. (M.L.trg_bus_doorfront1)
  211. {endif}
  212. (L.L.doorTarget_23) ! (L.L.door_AI_timer) 0.6 > &&
  213. {if}
  214. (M.L.trg_bus_doorfront3)
  215. {endif}
  216.  
  217. {else}
  218. 0 (S.L.door_AI_timer)
  219. {endif}
  220. (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
  221. {else}
  222. l0 -1 =
  223. {if}
  224. 'Wenn Türen geschlossen werden sollen:
  225. 'Taster jeweils nur betätigen, falls noch nicht aus:
  226. (L.L.doorTarget_1)
  227. {if}
  228. (M.L.trg_bus_doorfront1)
  229. 0 (S.L.door_AI_timer)
  230. {endif}
  231. (L.L.doorTarget_0) (L.L.door_AI_timer) 0.3 > &&
  232. {if}
  233. (M.L.trg_bus_doorfront0)
  234. {endif}
  235. (L.L.doorTarget_23) (L.L.door_AI_timer) 0.3 > &&
  236. {if}
  237. (M.L.trg_bus_doorfront3)
  238. {endif}
  239. 'Haltestellenbremse erst wegnehmen, wenn alle Türen zu. Dann auch erst den Bus AI-mäßig freigeben:
  240. (L.L.door_0) 0.1 <
  241. (L.L.door_1) 0.1 < &&
  242. (L.L.door_2) 0.1 < &&
  243. {if}
  244. (L.L.bremse_halte_sw) (L.L.door_AI_timer) 0.3 > &&
  245. {if}
  246. (M.L.trg_bus_dooraft)
  247. {endif}
  248. (L.L.bremse_halte_sw) !
  249. {if}
  250. 0 (S.L.AI_Scheduled_AtStation)
  251. {endif}
  252. {else}
  253. 'Sollte eine der Türen auf sein und die Haltestellenbremse aus, dann sofort diese einlegen
  254. (L.L.bremse_halte_sw) !
  255. {if}
  256. (M.L.trg_bus_dooraft)
  257. {endif}
  258. (L.L.doorTarget_0) !
  259. (L.L.doorTarget_1) ! &&
  260. {if}
  261. 0 (S.L.door_AI_timer)
  262. {endif}
  263. {endif}
  264. (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
  265. {endif}
  266. {endif}
  267.  
  268.  
  269. {end}
  270.  
  271.  
  272.  
  273.  
  274. {macro:Door0_Calc}
  275. (L.L.door_Warncounter) 0 <
  276. (L.L.doorTarget_0) 1 = ||
  277. {if}
  278. (L.L.door_Warnung) 1 =
  279. {if}
  280. (T.L.ev_doortriggerclose_0)
  281. 0 (S.L.door_Warnung)
  282. {endif}
  283. (C.L.electric_doors)
  284. {if}
  285. (L.L.doorTarget_0)
  286. {if}
  287. (L.L.door_0) (F.L.door_0_opn_speed) (S.L.doorMaxSpeed_0)
  288. {else}
  289. (L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
  290. {endif}
  291.  
  292. (C.L.fdoor_acc) (S.L.doorAcc_0)
  293.  
  294. (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
  295. {if}
  296. l0 /-/ (L.L.doorMaxSpeed_0) <
  297. {if}
  298. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
  299. {else}
  300. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
  301. {endif}
  302. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  303. {else}
  304. (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
  305. {if}
  306. l0 (L.L.doorMaxSpeed_0) <
  307. {if}
  308. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
  309. {else}
  310. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
  311. {endif}
  312. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  313. {else}
  314. 0 (S.L.doorSpeed_0)
  315. {endif}
  316. {endif}
  317. {else}
  318. (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
  319. {if}
  320. l0 /-/ (L.L.doorMaxSpeed_0) <
  321. {if}
  322. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
  323. {endif}
  324. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  325. {else}
  326. (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
  327. {if}
  328. l0 (L.L.doorMaxSpeed_0) <
  329. {if}
  330. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
  331. {endif}
  332. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  333. {else}
  334. 0 (S.L.doorSpeed_0)
  335. {endif}
  336. {endif}
  337. {endif}
  338.  
  339. (L.L.door_0) 1 >
  340. {if}
  341. (T.L.ev_doorhitopen_0)
  342. 1 (S.L.door_0)
  343. (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
  344. {else}
  345. (L.L.door_0) 0 <
  346. {if}
  347. (T.L.ev_doorhitclose_0)
  348. 0 (S.L.door_0)
  349. (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
  350. {endif}
  351. {endif}
  352. {else}
  353. (L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
  354. {endif}
  355. {end}
  356.  
  357. {macro:Door1_Calc}
  358. (L.L.door_Warncounter) 0 <
  359. (L.L.doorTarget_1) 0 = ||
  360. {if}
  361. (L.L.door_Warnung) 1 =
  362. {if}
  363. (T.L.ev_doortriggerclose_1)
  364. 0 (S.L.door_Warnung)
  365. {endif}
  366. (C.L.electric_doors)
  367. {if}
  368. (L.L.doorTarget_1)
  369. {if}
  370. (L.L.door_1) (F.L.door_1_opn_speed) (S.L.doorMaxSpeed_1)
  371. {else}
  372. (L.L.door_1) (F.L.door_1_cls_speed) (S.L.doorMaxSpeed_1)
  373. {endif}
  374.  
  375. (C.L.fdoor_acc) (S.L.doorAcc_1)
  376.  
  377. (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
  378. {if}
  379. l0 /-/ (L.L.doorMaxSpeed_1) <
  380. {if}
  381. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
  382. {else}
  383. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
  384. {endif}
  385. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  386. {else}
  387. (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
  388. {if}
  389. l0 (L.L.doorMaxSpeed_1) <
  390. {if}
  391. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
  392. {else}
  393. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
  394. {endif}
  395. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  396. {else}
  397. 0 (S.L.doorSpeed_1)
  398. {endif}
  399. {endif}
  400. {else}
  401. (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
  402. {if}
  403. l0 /-/ (L.L.doorMaxSpeed_1) <
  404. {if}
  405. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
  406. {endif}
  407. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  408. {else}
  409. (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
  410. {if}
  411. l0 (L.L.doorMaxSpeed_1) <
  412. {if}
  413. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
  414. {endif}
  415. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  416. {else}
  417. 0 (S.L.doorSpeed_1)
  418. {endif}
  419. {endif}
  420. {endif}
  421. (L.L.door_1) 1 >
  422. {if}
  423. (T.L.ev_doorhitopen_1)
  424. 1 (S.L.door_1)
  425. (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
  426. {else}
  427. (L.L.door_1) 0 <
  428. {if}
  429. (T.L.ev_doorhitclose_1)
  430. 0 (S.L.door_1)
  431. (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
  432. {endif}
  433. {endif}
  434. {else}
  435. (L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
  436. {endif}
  437. {end}
  438.  
  439. {macro:DoorAftCalc}
  440.  
  441. (L.L.bremse_halte_sw) !
  442. (L.L.door_20h_sw) ! &&
  443. (L.L.door_2) 0 = &&
  444. (L.L.door_3) 0 = &&
  445. (L.L.elec_busbar_main) ! ||
  446. (L.L.bremse_halte) &&
  447. {if}
  448. 0 (S.L.bremse_halte) (S.L.doorAftLastOpen)
  449. (T.L.ev_haltebremse_aus)
  450. {endif}
  451.  
  452. (L.L.elec_busbar_main)
  453. {if}
  454. (L.L.bremse_halte)
  455. {if}
  456. (L.L.doorAftLastOpen) (L.S.Timegap) + (S.L.doorAftLastOpen)
  457. {endif}
  458.  
  459.  
  460. {endif}
  461. {end}
  462.  
  463. {macro:Door2_Calc}
  464. (L.L.door_Warncounter) 0 <
  465. (L.L.doorTarget_23) 1 = ||
  466. {if}
  467. (L.L.door_Warnung) 1 =
  468. {if}
  469. (T.L.ev_doortriggerclose_2)
  470. 0 (S.L.door_Warnung)
  471. {endif}
  472. (C.L.electric_doors)
  473. {if}
  474. (L.L.doorTarget_23)
  475. {if}
  476. (L.L.door_2) (F.L.door_2_opn_speed) (S.L.doorMaxSpeed_2)
  477. {else}
  478. (L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
  479. {endif}
  480.  
  481. (C.L.bdoor_acc) (S.L.doorAcc_2)
  482.  
  483. (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
  484. {if}
  485. l0 /-/ (L.L.doorMaxSpeed_2) <
  486. {if}
  487. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
  488. {else}
  489. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
  490. {endif}
  491. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  492. {else}
  493. (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
  494. {if}
  495. l0 (L.L.doorMaxSpeed_2) <
  496. {if}
  497. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
  498. {else}
  499. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
  500. {endif}
  501. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  502. {else}
  503. 0 (S.L.doorSpeed_2)
  504. {endif}
  505. {endif}
  506. {else}
  507. (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
  508. {if}
  509. l0 /-/ (L.L.doorMaxSpeed_2) <
  510. {if}
  511. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
  512. {endif}
  513. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  514. {else}
  515. (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
  516. {if}
  517. l0 (L.L.doorMaxSpeed_2) <
  518. {if}
  519. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
  520. {endif}
  521. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  522. {else}
  523. 0 (S.L.doorSpeed_2)
  524. {endif}
  525. {endif}
  526. {endif}
  527.  
  528. (L.L.door_2) 1 >
  529. {if}
  530. (T.L.ev_doorhitopen_2)
  531. 1 (S.L.door_2)
  532. (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
  533. {else}
  534. (L.L.door_2) 0 <
  535. {if}
  536. (T.L.ev_doorhitclose_2)
  537. 0 (S.L.door_2)
  538. (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
  539. {endif}
  540. {endif}
  541. {else}
  542. (L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
  543. {endif}
  544. {end}
  545.  
  546. {macro:Door3_Calc}
  547. (L.L.door_Warncounter) 0 <
  548. (L.L.doorTarget_23) 1 = ||
  549. {if}
  550. (L.L.door_Warnung) 1 =
  551. {if}
  552. (T.L.ev_doortriggerclose_3)
  553. 0 (S.L.door_Warnung)
  554. {endif}
  555. (C.L.electric_doors)
  556. {if}
  557. (L.L.doorTarget_23)
  558. {if}
  559. (L.L.door_3) (F.L.door_3_opn_speed) (S.L.doorMaxSpeed_3)
  560. {else}
  561. (L.L.door_3) (F.L.door_3_cls_speed) (S.L.doorMaxSpeed_3)
  562. {endif}
  563.  
  564. (C.L.bdoor_acc) (S.L.doorAcc_3)
  565.  
  566. (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
  567. {if}
  568. l0 /-/ (L.L.doorMaxSpeed_3) <
  569. {if}
  570. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
  571. {else}
  572. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
  573. {endif}
  574. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  575. {else}
  576. (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
  577. {if}
  578. l0 (L.L.doorMaxSpeed_3) <
  579. {if}
  580. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
  581. {else}
  582. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
  583. {endif}
  584. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  585. {else}
  586. 0 (S.L.doorSpeed_3)
  587. {endif}
  588. {endif}
  589. {else}
  590. (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
  591. {if}
  592. l0 /-/ (L.L.doorMaxSpeed_3) <
  593. {if}
  594. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
  595. {endif}
  596. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  597. {else}
  598. (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
  599. {if}
  600. l0 (L.L.doorMaxSpeed_3) <
  601. {if}
  602. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
  603. {endif}
  604. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  605. {else}
  606. 0 (S.L.doorSpeed_3)
  607. {endif}
  608. {endif}
  609. {endif}
  610.  
  611. (L.L.door_3) 1 >
  612. {if}
  613. (T.L.ev_doorhitopen_3)
  614. 1 (S.L.door_3)
  615. (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
  616. {else}
  617. (L.L.door_3) 0 <
  618. {if}
  619. (T.L.ev_doorhitclose_3)
  620. 0 (S.L.door_3)
  621. (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
  622. {endif}
  623. {endif}
  624. {else}
  625. (L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
  626. {endif}
  627. {end}
  628.  
  629. {macro:trg_bus_doorfront0}
  630. (L.L.doorTarget_0) 1 = &&
  631. (L.L.doorTarget_0) 0 = ||
  632. {if}
  633. (L.L.doorTarget_0) ! (S.L.doorTarget_0)
  634. {if}
  635. (T.L.ev_doortriggeropen_0)
  636. 2 (S.L.door_Warncounter)
  637. {else}
  638. 0 (S.L.door_Warncounter)
  639. 1 (S.L.door_Warnung)
  640. {endif}
  641. (C.L.door_druckluft)
  642. {if}
  643. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  644. {endif}
  645. {endif}
  646. {end}
  647.  
  648. {macro:trg_bus_doorfront1}
  649. (L.L.doorTarget_1) 1 = &&
  650. (L.L.doorTarget_1) 0 = ||
  651. {if}
  652. (L.L.doorTarget_1) ! (S.L.doorTarget_1)
  653. {if}
  654. (T.L.ev_doortriggeropen_1)
  655. 2 (S.L.door_Warncounter)
  656. {else}
  657. 0 (S.L.door_Warncounter)
  658. 1 (S.L.door_Warnung)
  659. {endif}
  660. (C.L.door_druckluft)
  661. {if}
  662. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  663. {endif}
  664. {endif}
  665. {end}
  666.  
  667. {macro:trg_bus_doorback2}
  668. (L.L.doorTarget_23) 1 = &&
  669. (L.L.doorTarget_23) 0 = ||
  670. {if}
  671. (L.L.doorTarget_23) ! (S.L.doorTarget_23)
  672. {if}
  673. (T.L.ev_doortriggeropen_2)
  674. 2 (S.L.door_Warncounter)
  675. {else}
  676. 0 (S.L.door_Warncounter)
  677. 1 (S.L.door_Warnung)
  678. {endif}
  679. (C.L.door_druckluft)
  680. {if}
  681. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  682. {endif}
  683. {endif}
  684. {end}
  685.  
  686. {macro:trg_bus_doorback3}
  687. (L.L.doorTarget_23) 1 = &&
  688. (L.L.doorTarget_23) 0 = ||
  689. {if}
  690. (L.L.doorTarget_23) ! (S.L.doorTarget_23)
  691. {if}
  692. (T.L.ev_doortriggeropen_3)
  693. 2 (S.L.door_Warncounter)
  694. {else}
  695. 0 (S.L.door_Warncounter)
  696. 1 (S.L.door_Warnung)
  697. {endif}
  698. (C.L.door_druckluft)
  699. {if}
  700. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  701. {endif}
  702. {endif}
  703. {end}
  704.  
  705. {macro:trg_bus_doorfront3}
  706. (L.L.doorTarget_23) ! (S.L.doorTarget_23)
  707. {if}
  708. (T.L.ev_doortriggeropen_2)
  709. (T.L.ev_doortriggeropen_3)
  710. {else}
  711. (T.L.ev_doortriggerclose_2)
  712. (T.L.ev_doortriggerclose_3)
  713. {endif}
  714. (C.L.door_druckluft)
  715. {if}
  716. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  717. {endif}
  718. {end}
  719.  
  720. {macro:trg_bus_dooraft}
  721. (L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)
  722.  
  723. (L.L.bremse_halte_sw)
  724. {if}
  725. (T.L.ev_haltebremse_sw_an)
  726. {else}
  727. (T.L.ev_haltebremse_sw_aus)
  728. {endif}
  729. {end}
  730.  
  731. {macro:trg_bus_20h-switch}
  732. (L.L.door_20h_sw) ! (S.L.door_20h_sw)
  733.  
  734. (L.L.door_20h_sw)
  735. {if}
  736. (T.L.ev_haltebremse_sw_an)
  737. {else}
  738. (T.L.ev_haltebremse_sw_aus)
  739. {endif}
  740. {end}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement