Advertisement
Guest User

door.osc z Merca

a guest
Apr 14th, 2013
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.86 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. '- Rüdiger Hülsmann 19.01.2011 Electric door support
  31. '- Julian Zimmermann 03.03.2012 Türsteuerung angepasst
  32. '--------------------------------------------------------------------------------
  33.  
  34. {trigger:bus_doorfront0}
  35. (L.L.elec_busbar_main) (L.L.bremse_halte_sw) (C.L.door_needs_stopbrake) ! && &&
  36. (L.L.elec_busbar_main) (L.L.bremse_halte) (C.L.door_needs_stopbrake) && && ||
  37. (L.L.Nothahn_1_sw) 0 = &&
  38. {if}
  39. (M.L.trg_bus_doorfront0)
  40. (M.L.trg_bus_doorfront1)
  41. {endif}
  42. 1 (S.L.cockpit_tuertaster1)
  43. {end}
  44.  
  45. {trigger:bus_doorfront0_off}
  46. 0 (S.L.cockpit_tuertaster1)
  47. {end}
  48.  
  49. {trigger:Kinderwagenwunsch}
  50. 1 (S.L.door_kinderwagenwunsch) (S.L.Schalter_Kinderwagenwunsch) (S.L.door_handsteuerung)
  51. (M.L.summer_abspielen)
  52. 1 (S.L.haltewunsch)
  53. {end}
  54.  
  55. {trigger:Kinderwagenwunsch_off}
  56. 0 (S.L.Schalter_Kinderwagenwunsch)
  57. {end}
  58.  
  59. {trigger:Rollstuhlwunsch}
  60. 1 (S.L.door_kinderwagenwunsch) (S.L.Schalter_Rollstuhl) (S.L.door_handsteuerung)
  61. (M.L.summer_abspielen)
  62. 1 (S.L.haltewunsch)
  63. {end}
  64.  
  65. {trigger:Rollstuhlwunsch_off}
  66. 0 (S.L.Schalter_Rollstuhl)
  67. {end}
  68.  
  69. {trigger:Nothahn_1}
  70. (L.L.Nothahn_1_sw) ! (S.L.Nothahn_1_sw)
  71. (T.L.ev_doornothahn_front)
  72. {end}
  73.  
  74. {trigger:Nothahn_2}
  75. (L.L.Nothahn_2_sw) ! (S.L.Nothahn_2_sw)
  76. (T.L.ev_doornothahn_back)
  77. {end}
  78.  
  79. {trigger:Door_0_drag}
  80. (L.L.Nothahn_1_sw)
  81. {if}
  82. (L.S.mouse_x) 1000 / (L.L.door_0) + -1 max 1 min (S.L.door_0) s1
  83. {endif}
  84. {end}
  85.  
  86. {trigger:Door_1_drag}
  87. (L.L.Nothahn_1_sw)
  88. {if}
  89. (L.S.mouse_x) 1000 / (L.L.door_1) + -1 max 1 min (S.L.door_1) s1
  90. {endif}
  91. {end}
  92.  
  93. {trigger:Door_2_drag}
  94. (L.L.Nothahn_2_sw)
  95. {if}
  96. (L.S.mouse_x) 1000 / (L.L.door_2) + -1 max 1 min (S.L.door_2) s1
  97. {endif}
  98. {end}
  99.  
  100.  
  101. {trigger:Door_3_drag}
  102. (L.L.Nothahn_2_sw)
  103. {if}
  104. (L.S.mouse_x) 1000 / (L.L.door_3) + -1 max 1 min (S.L.door_3) s1
  105. {endif}
  106. {end}
  107.  
  108.  
  109. {trigger:bus_doorfront0_external}
  110. (L.L.elec_busbar_avail)
  111. (L.L.Nothahn_1_sw) 0 = &&
  112. {if}
  113. (M.L.trg_bus_doorfront0)
  114. {endif}
  115. {end}
  116.  
  117. {trigger:cp_Tuerfluegelsperre_drag}
  118. (L.S.mouse_y) 20 / (L.L.cp_Tuerfluegelsperre_sw) + -1 max 1 min (S.L.cp_Tuerfluegelsperre_sw) s1
  119.  
  120. ' Stufen:
  121. ' -1: Flügel hinten gesperrt
  122. ' 0: kein Flügel gesperrt
  123. ' 1: Flügel vorne gesperrt
  124.  
  125. l1 -0.5 <
  126. {if}
  127. -1 (S.L.cp_Tuerfluegelsperre_modus)
  128. {else}
  129. l1 0.5 <
  130. {if}
  131. 0 (S.L.cp_Tuerfluegelsperre_modus)
  132. {else}
  133. 1 (S.L.cp_Tuerfluegelsperre_modus)
  134. {endif}
  135. {endif}
  136. {end}
  137.  
  138. {trigger:cp_Tuerfluegelsperre_off}
  139. (L.L.cp_Tuerfluegelsperre_modus) (S.L.cp_Tuerfluegelsperre_sw)
  140. {end}
  141.  
  142. {trigger:bus_doorselect_F1}
  143. 1 (S.L.cp_Tuerfluegelsperre_modus)
  144. (L.L.cp_Tuerfluegelsperre_modus) (S.L.cp_Tuerfluegelsperre_sw)
  145. {end}
  146.  
  147. {trigger:bus_doorselect_F12}
  148. 0 (S.L.cp_Tuerfluegelsperre_modus)
  149. (L.L.cp_Tuerfluegelsperre_modus) (S.L.cp_Tuerfluegelsperre_sw)
  150. {end}
  151.  
  152. {trigger:bus_doorselect_F2}
  153. -1 (S.L.cp_Tuerfluegelsperre_modus)
  154. (L.L.cp_Tuerfluegelsperre_modus) (S.L.cp_Tuerfluegelsperre_sw)
  155. {end}
  156.  
  157. {trigger:bus_doorfront1}
  158. (L.L.elec_busbar_main) (L.L.bremse_halte_sw) (C.L.door_needs_stopbrake) ! && &&
  159. (L.L.elec_busbar_main) (L.L.bremse_halte) (C.L.door_needs_stopbrake) && && ||
  160. (L.L.door_20h_sw) ! &&
  161. (L.L.Nothahn_1_sw) 0 = &&
  162. {if}
  163. (L.L.cp_Tuerfreigabe_sw)
  164. {if}
  165. (L.L.door_handsteuerung) ! (S.L.door_handsteuerung)
  166. 0 (S.L.door_kinderwagenwunsch)
  167. {else}
  168. (M.L.trg_bus_doorback23)
  169. (L.L.doorTarget_23)
  170. {if}
  171. 0 (S.L.door_kinderwagenwunsch)
  172. {endif}
  173. 0 (S.L.door_handsteuerung)
  174. {endif}
  175. {endif}
  176. 1 (S.L.cockpit_tuertaster2)
  177. {end}
  178.  
  179. {trigger:bus_doorfront1_off}
  180. 0 (S.L.cockpit_tuertaster2)
  181. {end}
  182.  
  183. {trigger:bus_dooraft}
  184. (M.L.trg_bus_dooraft)
  185. {end}
  186.  
  187. {trigger:bus_20h-switch}
  188. (C.L.cockpit_has_20h_switch)
  189. {if}
  190. (M.L.trg_bus_20h-switch)
  191. {endif}
  192. {end}
  193.  
  194.  
  195. {trigger:int_haltewunsch}
  196. (M.L.summer_abspielen)
  197. 1 (S.L.haltewunsch)
  198. {end}
  199.  
  200. {trigger:door_haltewunsch}
  201. (M.L.summer_abspielen)
  202. 1 (S.L.haltewunsch) (S.L.door_haltewunsch_knopfdruck)
  203. {end}
  204.  
  205. {trigger:door_haltewunsch_off}
  206. 0 (S.L.door_haltewunsch_knopfdruck)
  207. {end}
  208.  
  209. {trigger:cp_schalter_kinderwagen}
  210. (L.L.door_handsteuerung) ! (S.L.door_handsteuerung)
  211. {if}
  212. 0 (S.L.door_kinderwagenwunsch)
  213. (T.L.ev_kippschalter_ein)
  214. {else}
  215. (T.L.ev_kippschalter_aus)
  216. {endif}
  217.  
  218. {end}
  219.  
  220. {trigger:door_kinderwagenwunsch}
  221. (L.L.bremse_halte) (L.L.door_handsteuerung) ! &&
  222. {if}
  223. 1 (S.L.door_kinderwagenwunsch) (S.L.door_handsteuerung)
  224. {endif}
  225. {end}
  226.  
  227.  
  228. {macro:Door_Init}
  229. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_0)
  230. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.fdoor_acc) + (S.L.doorAcc_1)
  231. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_2)
  232. 1000 random 500 / 1 - (C.L.door_acc_var) * (C.L.bdoor_acc) + (S.L.doorAcc_3)
  233.  
  234. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_0_norm)
  235. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.fdoor_maxspeed) + (S.L.doorMaxSpeed_1_norm)
  236. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_2_norm)
  237. 1000 random 500 / 1 - (C.L.door_maxspeed_var) * (C.L.bdoor_maxspeed) + (S.L.doorMaxSpeed_3_norm)
  238.  
  239. (C.L.door_refl) (S.L.doorRefl_0)
  240. (C.L.door_refl) (S.L.doorRefl_1)
  241. (C.L.door_refl) (S.L.doorRefl_2)
  242. (C.L.door_refl) (S.L.doorRefl_3)
  243.  
  244. {end}
  245.  
  246. {macro:Door_Frame}
  247.  
  248. (M.L.Door0_Calc)
  249. (M.L.Door1_Calc)
  250. (M.L.DoorAftCalc)
  251. (M.L.Door2_Calc)
  252. (M.L.Door3_Calc)
  253. (M.L.Nothahn_Loopsound)
  254.  
  255. (L.L.door_0) 0.9 > (S.L.PAX_Entry0_Open)
  256. (L.L.door_1) 0.9 > (S.L.PAX_Entry1_Open)
  257. (L.L.door_2) 0.9 > (L.L.door_3) 0.9 > && (S.L.PAX_Exit0_Open) (S.L.PAX_Exit1_Open)
  258.  
  259. ' "Dauerfeuer"-Haltewunsch über Kinderwagenschalter (macht genau dasselbe wie der "trigger:int_haltewunsch"):
  260. ' (L.L.door_handsteuerung) (L.L.door_haltewunsch_knopfdruck) ||
  261. ' {if}
  262. ' 1 (S.L.haltewunsch)
  263. ' {endif}
  264.  
  265. ' Setzen der Haltestellenbremse erst bei Stillstand des Busses:
  266. (L.L.bremse_halte_sw) (L.L.door_20h_sw) ||
  267. (L.L.bremse_halte) ! (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) < && &&
  268. {if}
  269. (L.L.elec_busbar_main)
  270. {if}
  271.  
  272. 1 (S.L.bremse_halte)
  273. {endif}
  274. {endif}
  275.  
  276. ' Türfreigabekriterium
  277.  
  278. (L.L.bremse_halte_sw) (L.L.bremse_halte) && (S.L.door_freigabe)
  279.  
  280. ' Haltewunschlampe:
  281. (L.L.haltewunsch) (L.L.door_2) 0.2 < (L.L.door_3) 0.2 < (L.L.elec_busbar_main) && && &&
  282. {if}
  283. 1 (S.L.haltewunschlampe_soll)
  284. {else}
  285. 0 (S.L.haltewunschlampe_soll) (S.L.haltewunsch)
  286. {endif}
  287.  
  288. ' Abfall des Kinderwagenwunsch-Relais bei fehlender Stromversorgung:
  289.  
  290. (L.L.elec_busbar_main) 0 =
  291. {if}
  292. 0 (S.L.door_kinderwagenwunsch)
  293. {endif}
  294.  
  295. ' Beleuchtung der Einstiege
  296.  
  297. (L.L.elec_busbar_main)
  298. {if}
  299. (L.L.door_0) 0.1 > (L.L.door_1) 0.1 > || (S.L.door_light_1)
  300. (L.L.door_2) 0.1 > (L.L.door_3) 0.1 > || (S.L.door_light_2)
  301. {else}
  302. 0 (S.L.door_light_1) (S.L.door_light_2)
  303. {endif}
  304.  
  305. ' Druckabhängige Türgeschwindigkeit
  306.  
  307. (C.L.door_druckluft)
  308. {if}
  309. (L.L.doorMaxSpeed_0_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_0)
  310. (L.L.doorMaxSpeed_1_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_1)
  311. (L.L.doorMaxSpeed_2_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_2)
  312. (L.L.doorMaxSpeed_3_norm) (L.L.bremse_p_Tank04) 100000 - 850000 / (S.L.doorMaxSpeed_3)
  313. {endif}
  314. '----------------------
  315. ' AI-Ablauf:
  316.  
  317. (L.L.AI_Scheduled_AtStation) s0
  318. 1 =
  319. {if}
  320. 'Wenn Türen geöffnet werden sollen:
  321. (L.L.Velocity) (C.L.Door_Bremse_Halte_MaxKMH) <
  322. {if}
  323. 'Nur, wenn v < maxkmh, sonst warten
  324. 'Taster jeweils nur betätigen, falls noch nicht an
  325. (L.L.bremse_halte_sw) !
  326. {if}
  327. (M.L.trg_bus_dooraft)
  328. {endif}
  329. (L.L.doorTarget_0) ! (L.L.doorTarget_1) ! && (L.L.door_AI_timer) 0.3 > &&
  330. {if}
  331. (M.L.trg_bus_doorfront0)
  332. {endif}
  333. (L.L.doorTarget_23) ! (L.L.door_AI_timer) 0.6 > (L.L.haltewunsch) && &&
  334. {if}
  335. (M.L.trg_bus_doorback23)
  336. {endif}
  337. {else}
  338. 0 (S.L.door_AI_timer)
  339. {endif}
  340. (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
  341. {else}
  342. l0 -1 =
  343. {if}
  344. 'Wenn Türen geschlossen werden sollen:
  345. 'Taster jeweils nur betätigen, falls noch nicht aus:
  346. (L.L.doorTarget_1) (L.L.doorTarget_0) ||
  347. {if}
  348. (M.L.trg_bus_doorfront0)
  349. 0 (S.L.door_AI_timer)
  350. {endif}
  351. (L.L.doorTarget_23) (L.L.door_AI_timer) 0.3 > &&
  352. {if}
  353. (M.L.trg_bus_doorback23)
  354. {endif}
  355. 'Haltestellenbremse erst wegnehmen, wenn alle Türen zu. Dann auch erst den Bus AI-mäßig freigeben:
  356. (L.L.door_0) 0.1 <
  357. (L.L.door_1) 0.1 < &&
  358. (L.L.door_2) 0.1 < &&
  359. {if}
  360. (L.L.bremse_halte_sw) (L.L.door_AI_timer) 0.3 > &&
  361. {if}
  362. (M.L.trg_bus_dooraft)
  363. {endif}
  364. (L.L.bremse_halte_sw) !
  365. {if}
  366. 0 (S.L.AI_Scheduled_AtStation)
  367. {endif}
  368. {else}
  369. 'Sollte eine der Türen auf sein und die Haltestellenbremse aus, dann sofort diese einlegen
  370. (L.L.bremse_halte_sw) !
  371. {if}
  372. (M.L.trg_bus_dooraft)
  373. {endif}
  374. (L.L.doorTarget_0) !
  375. (L.L.doorTarget_1) ! &&
  376. (L.L.doorTarget_23) ! &&
  377. {if}
  378. 0 (S.L.door_AI_timer)
  379. {endif}
  380. {endif}
  381. (L.L.door_AI_timer) (L.S.Timegap) + (S.L.door_AI_timer)
  382. {endif}
  383. {endif}
  384.  
  385.  
  386. {end}
  387.  
  388. {macro:Nothahn_Loopsound}
  389.  
  390. (L.L.elec_busbar_main) 1 =
  391. {if}
  392. (L.L.Nothahn_1_sw) 1 =
  393. (L.L.Nothahn_2_sw) 1 = ||
  394. {if}
  395. 1 (S.L.ev_door_Nothahnwarnloop)
  396. {else}
  397. 0 (S.L.ev_door_Nothahnwarnloop)
  398. {endif}
  399. {else}
  400. 0 (S.L.ev_door_Nothahnwarnloop)
  401. {endif}
  402. {end}
  403.  
  404. {macro:Door0_Calc}
  405. (C.L.electric_doors)
  406. (L.L.Nothahn_1_sw) 0 = &&
  407. {if}
  408. (L.L.doorTarget_0)
  409. {if}
  410. (L.L.door_0) (F.L.door_0_opn_speed) (S.L.doorMaxSpeed_0)
  411. {else}
  412. (L.L.door_0) (F.L.door_0_cls_speed) (S.L.doorMaxSpeed_0)
  413. {endif}
  414.  
  415. (C.L.fdoor_acc) (S.L.doorAcc_0)
  416.  
  417. (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
  418. {if}
  419. l0 /-/ (L.L.doorMaxSpeed_0) <
  420. {if}
  421. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
  422. {else}
  423. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
  424. {endif}
  425. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  426. {else}
  427. (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
  428. {if}
  429. l0 (L.L.doorMaxSpeed_0) <
  430. {if}
  431. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
  432. {else}
  433. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
  434. {endif}
  435. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  436. {else}
  437. 0 (S.L.doorSpeed_0)
  438. {endif}
  439. {endif}
  440. {else}
  441. (L.L.Nothahn_1_sw) 0 =
  442. {if}
  443. (L.L.doorTarget_0) ! (L.L.doorSpeed_0) s0 abs 0.05 > (L.L.door_0) 0 > || &&
  444. {if}
  445. l0 /-/ (L.L.doorMaxSpeed_0) <
  446. {if}
  447. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * - (S.L.doorSpeed_0)
  448. {endif}
  449. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  450. {else}
  451. (L.L.doorSpeed_0) abs 0.05 > (L.L.door_0) 1 < || (L.L.doorTarget_0) &&
  452. {if}
  453. l0 (L.L.doorMaxSpeed_0) <
  454. {if}
  455. (L.L.doorSpeed_0) (L.L.doorAcc_0) (L.S.Timegap) * + (S.L.doorSpeed_0)
  456. {endif}
  457. (L.L.door_0) (L.L.doorSpeed_0) (L.S.Timegap) * + (S.L.door_0)
  458. {else}
  459. 0 (S.L.doorSpeed_0)
  460. {endif}
  461. {endif}
  462. {endif}
  463. {endif}
  464.  
  465. (L.L.door_0) 1 >
  466. {if}
  467. (T.L.ev_doorhitopen_0)
  468. 1 (S.L.door_0)
  469. (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
  470. {else}
  471. (L.L.door_0) 0 <
  472. {if}
  473. (T.L.ev_doorhitclose_0)
  474. 0 (S.L.door_0)
  475. (L.L.doorSpeed_0) /-/ (L.L.doorRefl_0) * (S.L.doorSpeed_0)
  476. {endif}
  477. {endif}
  478. {end}
  479.  
  480. {macro:Door1_Calc}
  481. (C.L.electric_doors)
  482. (L.L.Nothahn_1_sw) 0 = &&
  483. {if}
  484. (L.L.doorTarget_1)
  485. {if}
  486. (L.L.door_1) (F.L.door_1_opn_speed) (S.L.doorMaxSpeed_1)
  487. {else}
  488. (L.L.door_1) (F.L.door_1_cls_speed) (S.L.doorMaxSpeed_1)
  489. {endif}
  490.  
  491. (C.L.fdoor_acc) (S.L.doorAcc_1)
  492.  
  493. (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
  494. {if}
  495. l0 /-/ (L.L.doorMaxSpeed_1) <
  496. {if}
  497. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
  498. {else}
  499. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
  500. {endif}
  501. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  502. {else}
  503. (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
  504. {if}
  505. l0 (L.L.doorMaxSpeed_1) <
  506. {if}
  507. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
  508. {else}
  509. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
  510. {endif}
  511. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  512. {else}
  513. 0 (S.L.doorSpeed_1)
  514. {endif}
  515. {endif}
  516. {else}
  517. (L.L.Nothahn_1_sw) 0 =
  518. {if}
  519. (L.L.doorTarget_1) ! (L.L.doorSpeed_1) s0 abs 0.05 > (L.L.door_1) 0 > || &&
  520. {if}
  521. l0 /-/ (L.L.doorMaxSpeed_1) <
  522. {if}
  523. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * - (S.L.doorSpeed_1)
  524. {endif}
  525. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  526. {else}
  527. (L.L.doorSpeed_1) abs 0.05 > (L.L.door_1) 1 < || (L.L.doorTarget_1) &&
  528. {if}
  529. l0 (L.L.doorMaxSpeed_1) <
  530. {if}
  531. (L.L.doorSpeed_1) (L.L.doorAcc_1) (L.S.Timegap) * + (S.L.doorSpeed_1)
  532. {endif}
  533. (L.L.door_1) (L.L.doorSpeed_1) (L.S.Timegap) * + (S.L.door_1)
  534. {else}
  535. 0 (S.L.doorSpeed_1)
  536. {endif}
  537. {endif}
  538. {endif}
  539. {endif}
  540.  
  541. (L.L.door_1) 1 >
  542. {if}
  543. (T.L.ev_doorhitopen_1)
  544. 1 (S.L.door_1)
  545. (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
  546. {else}
  547. (L.L.door_1) 0 <
  548. {if}
  549. (T.L.ev_doorhitclose_1)
  550. 0 (S.L.door_1)
  551. (L.L.doorSpeed_1) /-/ (L.L.doorRefl_1) * (S.L.doorSpeed_1)
  552. {endif}
  553. {endif}
  554. {end}
  555.  
  556. {macro:DoorAftCalc}
  557.  
  558. (L.L.bremse_halte_sw) !
  559. (L.L.door_20h_sw) ! &&
  560. (L.L.door_2) 0 = &&
  561. (L.L.door_3) 0 = &&
  562. (L.L.elec_busbar_main) ! ||
  563. (L.L.bremse_halte) &&
  564. (L.L.throttle) 0.2 > &&
  565. {if}
  566. 0 (S.L.bremse_halte)
  567. ' (T.L.ev_haltebremse_aus)
  568. {endif}
  569.  
  570. ' Türfreigabe
  571. (L.L.cp_Tuerfreigabe_sw)
  572. (L.L.bremse_halte) &&
  573. (L.L.elec_busbar_main) &&
  574. (L.L.haltewunsch)
  575. (L.L.door_handsteuerung) || &&
  576. (L.L.doorTarget_23) ! &&
  577. {if}
  578. (M.L.trg_bus_doorback23)
  579. {endif}
  580.  
  581. (L.L.cp_Tuerfreigabe_sw)
  582. (L.L.bremse_halte) &&
  583. (L.L.elec_busbar_main) &&
  584. (L.L.haltewunsch) ! &&
  585. (L.L.door_handsteuerung) ! &&
  586. (L.L.doorTarget_23) &&
  587. (L.L.door_2) 1 = &&
  588. (L.L.door_3) 1 = &&
  589. {if}
  590. (M.L.trg_bus_doorback23)
  591. {endif}
  592.  
  593. {end}
  594.  
  595. {macro:Door2_Calc}
  596. (L.L.door_Warncounter) 0 <
  597. (L.L.doorTarget_23) 1 = ||
  598. {if}
  599. (L.L.door_Warnung) 1 =
  600. {if}
  601. (T.L.ev_doortriggerclose_2)
  602. 0 (S.L.door_Warnung)
  603. {endif}
  604. (C.L.electric_doors)
  605. (L.L.Nothahn_2_sw) 0 = &&
  606. {if}
  607. (L.L.doorTarget_23)
  608. {if}
  609. (L.L.door_2) (F.L.door_2_opn_speed) (S.L.doorMaxSpeed_2)
  610. {else}
  611. (L.L.door_2) (F.L.door_2_cls_speed) (S.L.doorMaxSpeed_2)
  612. {endif}
  613.  
  614. (C.L.bdoor_acc) (S.L.doorAcc_2)
  615.  
  616. (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
  617. {if}
  618. l0 /-/ (L.L.doorMaxSpeed_2) <
  619. {if}
  620. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
  621. {else}
  622. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
  623. {endif}
  624. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  625. {else}
  626. (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
  627. {if}
  628. l0 (L.L.doorMaxSpeed_2) <
  629. {if}
  630. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
  631. {else}
  632. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
  633. {endif}
  634. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  635. {else}
  636. 0 (S.L.doorSpeed_2)
  637. {endif}
  638. {endif}
  639. {else}
  640. (L.L.Nothahn_2_sw) 0 =
  641. {if}
  642. (L.L.doorTarget_23) ! (L.L.doorSpeed_2) s0 abs 0.05 > (L.L.door_2) 0 > || &&
  643. {if}
  644. l0 /-/ (L.L.doorMaxSpeed_2) <
  645. {if}
  646. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * - (S.L.doorSpeed_2)
  647. {endif}
  648. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  649. {else}
  650. (L.L.doorSpeed_2) abs 0.05 > (L.L.door_2) 1 < || (L.L.doorTarget_23) &&
  651. {if}
  652. l0 (L.L.doorMaxSpeed_2) <
  653. {if}
  654. (L.L.doorSpeed_2) (L.L.doorAcc_2) (L.S.Timegap) * + (S.L.doorSpeed_2)
  655. {endif}
  656. (L.L.door_2) (L.L.doorSpeed_2) (L.S.Timegap) * + (S.L.door_2)
  657. {else}
  658. 0 (S.L.doorSpeed_2)
  659. {endif}
  660. {endif}
  661. {endif}
  662. {endif}
  663.  
  664. (L.L.door_2) 1 >
  665. {if}
  666. (T.L.ev_doorhitopen_2)
  667. 1 (S.L.door_2)
  668. (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
  669. {else}
  670. (L.L.door_2) 0 <
  671. {if}
  672. (T.L.ev_doorhitclose_2)
  673. 0 (S.L.door_2)
  674. (L.L.doorSpeed_2) /-/ (L.L.doorRefl_2) * (S.L.doorSpeed_2)
  675. {endif}
  676. {endif}
  677. {else}
  678. (L.L.door_Warncounter) (L.S.Timegap) - (S.L.door_Warncounter)
  679. {endif}
  680. {end}
  681.  
  682. {macro:Door3_Calc}
  683. (L.L.door_Warncounter) 0 <
  684. (L.L.doorTarget_23) 1 = ||
  685. {if}
  686. (C.L.electric_doors)
  687. (L.L.Nothahn_2_sw) 0 = &&
  688. {if}
  689. (L.L.doorTarget_23)
  690. {if}
  691. (L.L.door_3) (F.L.door_3_opn_speed) (S.L.doorMaxSpeed_3)
  692. {else}
  693. (L.L.door_3) (F.L.door_3_cls_speed) (S.L.doorMaxSpeed_3)
  694. {endif}
  695.  
  696. (C.L.bdoor_acc) (S.L.doorAcc_3)
  697.  
  698. (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
  699. {if}
  700. l0 /-/ (L.L.doorMaxSpeed_3) <
  701. {if}
  702. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
  703. {else}
  704. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
  705. {endif}
  706. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  707. {else}
  708. (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
  709. {if}
  710. l0 (L.L.doorMaxSpeed_3) <
  711. {if}
  712. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
  713. {else}
  714. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
  715. {endif}
  716. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  717. {else}
  718. 0 (S.L.doorSpeed_3)
  719. {endif}
  720. {endif}
  721. {else}
  722. (L.L.Nothahn_2_sw) 0 =
  723. {if}
  724. (L.L.doorTarget_23) ! (L.L.doorSpeed_3) s0 abs 0.05 > (L.L.door_3) 0 > || &&
  725. {if}
  726. l0 /-/ (L.L.doorMaxSpeed_3) <
  727. {if}
  728. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * - (S.L.doorSpeed_3)
  729. {endif}
  730. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  731. {else}
  732. (L.L.doorSpeed_3) abs 0.05 > (L.L.door_3) 1 < || (L.L.doorTarget_23) &&
  733. {if}
  734. l0 (L.L.doorMaxSpeed_3) <
  735. {if}
  736. (L.L.doorSpeed_3) (L.L.doorAcc_3) (L.S.Timegap) * + (S.L.doorSpeed_3)
  737. {endif}
  738. (L.L.door_3) (L.L.doorSpeed_3) (L.S.Timegap) * + (S.L.door_3)
  739. {else}
  740. 0 (S.L.doorSpeed_3)
  741. {endif}
  742. {endif}
  743. {endif}
  744. {endif}
  745.  
  746. (L.L.door_3) 1 >
  747. {if}
  748. (T.L.ev_doorhitopen_3)
  749. 1 (S.L.door_3)
  750. (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
  751. {else}
  752. (L.L.door_3) 0 <
  753. {if}
  754. (T.L.ev_doorhitclose_3)
  755. 0 (S.L.door_3)
  756. (L.L.doorSpeed_3) /-/ (L.L.doorRefl_3) * (S.L.doorSpeed_3)
  757. {endif}
  758. {endif}
  759. {endif}
  760.  
  761. {end}
  762.  
  763. {macro:trg_bus_doorfront0}
  764.  
  765. (L.L.cp_Tuerfluegelsperre_modus) -1 =
  766. {if}
  767. (L.L.doorTarget_0) 0 = (L.L.doorTarget_1) 1 = &&
  768. {if}
  769. 0 (S.L.doorTarget_1)
  770. (T.L.ev_doortriggerclose_1)
  771. (C.L.door_druckluft)
  772. {if}
  773. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  774. {endif}
  775. {else}
  776. (L.L.doorTarget_1) !
  777. {if}
  778. 1 (S.L.doorTarget_1)
  779. (T.L.ev_doortriggeropen_1)
  780. (C.L.door_druckluft)
  781. {if}
  782. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  783. {endif}
  784. {endif}
  785. {endif}
  786. (L.L.doorTarget_0)
  787. {if}
  788. 0 (S.L.doorTarget_0)
  789. (T.L.ev_doortriggerclose_0)
  790. (C.L.door_druckluft)
  791. {if}
  792. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  793. {endif}
  794. {endif}
  795. {else}
  796. (L.L.cp_Tuerfluegelsperre_modus) 0 =
  797. {if}
  798. (L.L.doorTarget_0) 1 = (L.L.doorTarget_1) 1 = &&
  799. {if}
  800. 0 (S.L.doorTarget_0) (S.L.doorTarget_1)
  801. (T.L.ev_doortriggerclose_0)
  802. (C.L.door_druckluft)
  803. {if}
  804. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  805. {endif}
  806. (T.L.ev_doortriggerclose_1)
  807. (C.L.door_druckluft)
  808. {if}
  809. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  810. {endif}
  811. {else}
  812. (L.L.doorTarget_0) !
  813. {if}
  814. 1 (S.L.doorTarget_0)
  815. (T.L.ev_doortriggeropen_0)
  816. (C.L.door_druckluft)
  817. {if}
  818. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  819. {endif}
  820. {endif}
  821. (L.L.doorTarget_1) !
  822. {if}
  823. 1 (S.L.doorTarget_1)
  824. (T.L.ev_doortriggeropen_1)
  825. (C.L.door_druckluft)
  826. {if}
  827. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  828. {endif}
  829. {endif}
  830. {endif}
  831. {else}
  832. (L.L.doorTarget_0) 1 = (L.L.doorTarget_1) 0 = &&
  833. {if}
  834. 0 (S.L.doorTarget_0)
  835. (T.L.ev_doortriggerclose_0)
  836. (C.L.door_druckluft)
  837. {if}
  838. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  839. {endif}
  840. {else}
  841. (L.L.doorTarget_0) !
  842. {if}
  843. 1 (S.L.doorTarget_0)
  844. (T.L.ev_doortriggeropen_0)
  845. (C.L.door_druckluft)
  846. {if}
  847. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  848. {endif}
  849. {endif}
  850. {endif}
  851. (L.L.doorTarget_1)
  852. {if}
  853. 0 (S.L.doorTarget_1)
  854. (T.L.ev_doortriggerclose_1)
  855. (C.L.door_druckluft)
  856. {if}
  857. (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  858. {endif}
  859. {endif}
  860. {endif}
  861. {endif}
  862.  
  863. ' (L.L.doorTarget_0) ! (S.L.doorTarget_0)
  864. ' {if}
  865. ' (T.L.ev_doortriggeropen_0)
  866. ' {else}
  867. ' (T.L.ev_doortriggerclose_0)
  868. ' {endif}
  869. ' (C.L.door_druckluft)
  870. ' {if}
  871. ' (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  872. ' {endif}
  873. '
  874. ' (L.L.doorTarget_1) ! (S.L.doorTarget_1)
  875. ' {if}
  876. ' (T.L.ev_doortriggeropen_1)
  877. ' {else}
  878. ' (T.L.ev_doortriggerclose_1)
  879. ' {endif}
  880. ' (C.L.door_druckluft)
  881. ' {if}
  882. ' (L.L.bremse_p_Tank04) 100000 - 0.98 * 100000 + (S.L.bremse_p_Tank04)
  883. ' {endif}
  884. {end}
  885.  
  886. {macro:trg_bus_doorfront1}
  887. ' Überbleibsel vom M&R-Bus, bleibt nur drin, damit keine Fehlermeldungen kommen
  888. {end}
  889.  
  890. {macro:trg_bus_doorback23}
  891. (L.L.haltewunsch) 0 =
  892. (L.L.doorTarget_23) 1 = &&
  893. (L.L.doorTarget_23) 0 = ||
  894. {if}
  895. (L.L.doorTarget_23) ! (S.L.doorTarget_23)
  896. {if}
  897. (T.L.ev_doortriggeropen_2)
  898. 0 (S.L.door_Warncounter)
  899. {else}
  900. ' (T.L.ev_doortriggerclose_2)
  901. (T.L.ev_door_Warnsound)
  902. 2 (S.L.door_Warncounter)
  903. 1 (S.L.door_Warnung)
  904. 0 (S.L.doorSpeed_2)
  905. 0 (S.L.doorSpeed_3)
  906. {endif}
  907. (C.L.door_druckluft)
  908. {if}
  909. (L.L.bremse_p_Tank04) 100000 - 0.96 * 100000 + (S.L.bremse_p_Tank04)
  910. {endif}
  911. {endif}
  912. {end}
  913.  
  914. {macro:trg_bus_dooraft}
  915. (L.L.bremse_halte_sw) ! (S.L.bremse_halte_sw)
  916.  
  917. (L.L.bremse_halte_sw)
  918. {if}
  919. (T.L.ev_haltebremse_sw_an)
  920. {else}
  921. (T.L.ev_haltebremse_sw_aus)
  922. {endif}
  923. {end}
  924.  
  925. {macro:trg_bus_20h-switch}
  926. (L.L.door_20h_sw) ! (S.L.door_20h_sw)
  927.  
  928. (L.L.door_20h_sw)
  929. {if}
  930. (T.L.ev_haltebremse_sw_an)
  931. {else}
  932. (T.L.ev_haltebremse_sw_aus)
  933. {endif}
  934. {end}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement