Система сигнализации sU и система маршрутизации zxPath
Сигнализация, в котором отсутствуют какие-либо "автоматические" или "полуватоматические" открытия светофоров. То есть светофоры должны открываться либо вручную, либо маршрутизациями zxPath или RE sU DSP. Варианта данной сигналки под а-ля дефолтное управление реализовываться не будет.
Условие наличия кодов на стрелках при движении по горловие при приёме - "кодирование от светофора" во входном + "кодирование съездов" на выходных прямого и обратного направлений этого пути. Условие наличия кодов на стрелках при отправлении - "кодирование съездов" на выходных прямого и обратного направлений + "кодирование до светофора" на входном.
Преимущества:
1) динамический розжиг (на светофоре можно развесить практически любой набор линз в любом порядке)
2) возможность копи-паста скоростных ограничений из светофора в светофор
3) опциональная установка маршрутного указателя и стрелок короткого блок-участка (в том числе одновременно) на любой из доступных мачтовых светофоров
4) отсутствие станционных контроллеров - все настройки производятся непосредственно в светофоре
5) возможность вращать головку и её крепление на любой угол
6) регулируемое расстояние до оси пути и высоты над уровнем головки рельса (в широких пределах)
7) выкалывание любых линз у мачтовых светофоров (ограничение - в 3-линзовой головке можно выколоть только одну из линз)
8) шрифт табличек светофоров создан на основе трафаретов, приведённых в "Руководстве по эксплуатации щитков (литерных табличек)"
9) При подписывании карликовых светофоров скрипт автоматически отделяет номер пути в нижнюю строку табличек
10) высокая степень оптимизации, на порядок превосходящая таковую у z7
11) все типы комбинаций линз, указанные в "типовых проектах", добавлены в стандартные наборы розжигов светофоров
Преимущества маршрутизации zxPath
1) автоматизирует замыкание маршрута - перевод стрелок, открытие сигналов и изменение направления перегона происходят автоматически
2) возможность работы на станциях любой сложности
3) снятие некоторых ограничений, которые имела z7-xPath (например теперь возможна работа перегона на петле вокруг станции)
4) три типа поездных маршрута-
а) "стандартный" - маршрут будет замкнут как только освободятся все рельсовые цепи и установлено необходимое направление перегона, разбирается при проследовании поезда
б) "очередной" - маршрут будет замыкаться так же как и "стандартный", но только после того, как замкнётся предыдущий маршрут по этой же станции
в) "авто" - маршрут, самовозобновляющийся после проследования поезда (эмулирует "автодействие" светофоров)
5) возможность замыкания маневровых маршрутов путём ввода названий светофора начала и конца маршрута, в пределах парка станции или до ближайшего светофора соседнего парка
6) "маневровый маршрут на свободный путь" - маневровый маршрут не строится, если на пути, к которому он должен быть построен, есть ПС
7) набор правил и команд и автоматического выбора и замыкания маршрутов поездам
8) система приоритетов поездных маршрутов, позволяющая автоматически выбирать путь приёма из числа свободных с учётом категории прибывающего поезда
9) значительно более высокая, чем у z7-xPath, стабильность работы
Исходники моделей светофоров старого образца - https://yadi.sk/d/n6PSaij330Uea (автор исходных моделей - Rokky)
О настройке розжига:
В качестве примера, убирание зелёной линзы из 5-линзовика...
1) выставляем режим, наиболее близкий к необходимому (чтоб потом меньше мучаться)
2) нажимаем на "линзовый набор". Появляется строка розжига.
3) поясняю что здесь что. В строке, по порядку, задаются расположение линз:
первый символ в строке соответствует краной линзе. В данном случае этот символ - цифра 2, это значит что красную линзу надо повесить в 3е гнездо на светофоре, начиная от верха мачты (тут нумерация не с 1, а с 0, поэтому 2+1 = 3 ), что мы собственно и видим - красная линза под 3им козырьком
второй символ соответствует основной зелёной линзе. Это цифра 1, то есть линзу вешать во второе гнездо от верха мачты.
третий соответствует дополнительной зелёной линзе, используемой в сигнале "два зелёных" - в этом розжиге не вешается ни в какую ячейку, так как символ - прочерк.
четвёртый соответствует основной жёлтой линзе. Это 0, то есть линза в самом верхнем гнезде.
пятый соответствует дополнительной жёлтой линзе (нижняя для сигнала Жм-Ж). Это цифра 3, то данная линза в 4ом гнезде.
шестой соответствует второй дополнительная жёлтая линза (для сигнала три жёлтых). На светофор эта линза не вешается.
седьмой соответствует основной белой линзе (которая зажигается для маневров). Это 4, то есть линза вешается в 5ое гнездо сверху.
восьмой соответствует белой линзе повторительной головки (если используется и основная, и повторительная линзы на одном светофоре, то светофор будет давать сигнал "два белых".) Там прочерк, то есть линза не ставится.
девятый символ соответствует синему огню, на светофоре его тоже нет.
И последний, десятый символ указывает на расположение зелёной полосы (да, система могла бы повесить полосу в любое гнездо на светофоре ), но пока что светофоры для неё и она сама не готовы .
Итак, мы хотим убрать из нашего светофора зелёную линзу. Это значит в её символе строки розжига (тоесть втором) надо указать прочерк.
Указали, теперь можно подтвердить строку розжига и проверить результат (после установки розжига светофор светит всеми линзами). Зелёная линза пропала вместе со своим козырьком.
Остаётся добавить в опции галочку "выходной" и светофором можно пользоваться...
Информация
после задания нестандартного розжига заново выставляйте назначение светофора
Совмещение "выходного" и "не участвует в рельсовых цепях" используется, если нужно сделать невидимый выходной из парка с групповым светофором и повторителями.
Использование опции "не участвует в рельсовых цепях" вместе с "автооткрытие" нужно для повторительного, предупредительного, либо для светофора, в точности повторяющего показания невидимых светофоров.
Для маршрутного с синим (и жёлтым, зелёным) нужна опция "маршрутно-разделительный".
Для заградительных (кроме совмещённых маневровых с заградительными) и совмещённых предупредительных с заградительными нужны опции "не участвует в рельсовых цепях", "автомат без маневрового режима" и "заградительный".
Для маневрового с розжигом БСК нужна опция "выходной/маршрутный" либо, если это совмещение маневрового с заградительным, опции "маневровый без поездного режима" и "заградительный".
Опция заградительного "перекрывает соседние светофоры" убирается в том случае, если его закрытие не приводит к перекрытию предыдущего поездного светофора. Например, для ограждения переезда на перегоне с ПАБом.
Информация
Если светофоры расположены в слое карты, при изменении настроек перезаписывайте карту, а не сессию.
Информация
На кольцах , где нету входных и выходных светофоров (только маневровые, либо только проходные) обязательно расставлять маркеры-прерыватели автоблокировки.
Информация
Маневровые маршруты из одного парка в другой не строятся. Необходимо строить маршрут до ближайшего светофора соседнего парка и только затем от него до конечного светофора.
Информация
Для ограждения переезда в пределах горловины станции рекомендуется применять невидимые заградительные, либо совмещённые маневровые с заградительными.
Использование букв в МУ.
В маркеры с опцией MRN допустимо заносить арабские цифры и следующие значения в качестве номера пути:
Буквы:
А А
Б B
В V
Г G
Д D
Е E
Ж J
И I
К K
Л L
М M
Н N
О О
П P
Р R
С S
Т T
У U
Ф F
Х H
Ц C
Ч Q
Ш X
Э e
Ю Y
Я Z
Римские цифры:
I a
II b
III c
IV d
Положения:
\ l
/ r
| f
- h
Э e
Пример подключения обработчика проездов светофоров поездами
вариант 1
Код:
include "Trackside.gs"
include "zx_specs.gs"
class sUsniffingObject isclass Trackside, zxExtraLinkBase // унаследоваться и от класса zxExtraLinkBase
{
public void Init(Asset asset)
{
inherited(asset);
zxExtraLinkContainer contaner = new zxExtraLinkContainer();
contaner.extra_link = cast<zxExtraLinkBase>me;
GSObject[] GSO=new GSObject[1];
GSO[0] = cast<GSObject>contaner;
KUID sUcoreLibKUID = asset.LookupKUIDTable("sU_core_lib");
World.GetLibrary(sUcoreLibKUID).LibraryCall("add_extra_obj_base",null,GSO);
}
public void UpdateSignalState(zxSignal zxsign, int reason, int priority)
{
// и при проездах любых изостыков/светофоров будет вызываться аналогично вызову UpdateState() в светофоре/изостыке, сразу после исполнения этого вызова в самом светофоре + передаётся этот светофор
Interface.Print("signal "+zxsign.privateName+"@"+zxsign.stationName+" changed for "+reason+ " priority "+priority);
}
};
вариант 2
Код:
include "Trackside.gs"
include "zx_core.gs"
class sUsniffingObject2 isclass Trackside, zxExtraLinkBase // унаследоваться и от класса zxExtraLinkBase
{
public void Init(Asset asset)
{
inherited(asset);
KUID sUcoreLibKUID = asset.LookupKUIDTable("sU_core_lib");
Library lib = World.GetLibrary(sUcoreLibKUID);
lib.LibraryCall("",null,null); // для возможного запуска
(cast<zxLibruary_core>lib).AddExtraLink(cast<zxExtraLinkBase>me);
}
public void UpdateSignalState(zxSignal zxsign, int reason, int priority)
{
// и при проездах любых изостыков/светофоров будет вызываться аналогично вызову UpdateState() в светофоре/изостыке, сразу после исполнения этого вызова в самом светофоре + передаётся этот светофор
Interface.Print("signal "+zxsign.privateName+"@"+zxsign.stationName+" changed for "+reason+ " priority "+priority);
}
};
Последний раз редактировалось TRam_; 22.02.2022 в 01:40.
Через "браузер"!!! Где Вы там его увидели? Браузер - прикладное программное обеспечение для просмотра веб-страниц.
Но данный интерфейс сгенерирован именно в виде веб-страницы . Как кстати и вообще все менюшки и окна в trainz. Так что формально trainz является игрой с интегрированным браузером, в одном из окон которого и отображаются маршруты и светофоры маршрутизации. Так что формально окно браузера можно называть браузером..
Последний раз редактировалось TRam_; 08.09.2017 в 11:57.
Там два пути всего на станции, а перегоны однопутные. Т.е. оставлять стоять эти вагоны на пути, не вариант, тогда поезда скрещиваться не смогут на станции. Можно конечно выдать станции маневровый и им потом вагоны убрать в тупик, но очень хочется напрячь игрока этой задачей, для разнообразия.
Volaner, возможно это предохранительный тупик и оставлять вагоны там нельзя.
Предохранительный тупик предназначен для предупреждения выхода подвижного состава на маршруты следования поездов.
Улавливающий тупик служит для остановки потерявшего управление поезда или его части при движении по затяжному спуску.
Маневровые - нельзя. Можно разбирать только поездные через AddPath
---------- Сообщение добавлено в 11:49 ---------- Предыдущее сообщение размещено в 11:39 ----------
Вариант - поставить эти вагоны в голову, оставлять отцеп из оставшихся 5и на главном пути (осадив за стрелку к входному Н), с этими 2мя вагонами заехать за ЧII и за М2, потом вернуться за ЧII и забрать те 5 вагонов.
А как именно через AddPath, поездные разбирать? Просто другой маршрут не получится добавить.
---------- Сообщение добавлено в 20:09 ---------- Предыдущее сообщение размещено в 20:08 ----------
Сообщение от kemal
Из предохранительных тупиков светофор обычно не ставят.
Кстати, тут перепутана чётность - должен быть М1.
Ну да, нечётная горловина.
---------- Сообщение добавлено в 20:10 ---------- Предыдущее сообщение размещено в 20:09 ----------
Там два пути всего на станции, а перегоны однопутные. Т.е. оставлять стоять эти вагоны на пути, не вариант, тогда поезда скрещиваться не смогут на станции. Можно конечно выдать станции маневровый и им потом вагоны убрать в тупик, но очень хочется напрячь игрока этой задачей, для разнообразия.
Volaner, возможно это предохранительный тупик и оставлять вагоны там нельзя.
Предохранительный тупик предназначен для предупреждения выхода подвижного состава на маршруты следования поездов.
Улавливающий тупик служит для остановки потерявшего управление поезда или его части при движении по затяжному спуску.
Да не, там склад и даже территория забором обнесена.
но если в это время по такому маршруту следует поезд, за перевод стрелки под ним не отвечаю
---------- Сообщение добавлено в 20:19 ---------- Предыдущее сообщение размещено в 20:17 ----------
Сообщение от Volaner
Просто другой маршрут не получится добавить.
я уже сказал - меняй порядок манёвров, чтобы вместе с локомотивом уходить в тупик за этот М2 полностью.
Переставлять эти вагоны вперёд состава, это слишком много чего переделывать надо, что уже отлажено. Придётся видимо маневровый станции выдать.
В реале, он бы просто взял и хвост туда затолкал, с помощью маневровой бригады. Вообще, вопрос о разборе маневровых встаёт постоянно. Есть вот такая фундаментальная проблема:
Имеем большую горловину:
Надо нам состав с 7-ого на 5-ый перегнать. Если бы надо было перегнать один локомотив, то нет проблем, маневрируем от Н7 за М8, потом от М8 за Н5 ну или до Ч5. А вот с составом такое не прокатывает, потому, что для того, чтоб хвост оказался за М8, голова должна пройти за М6 далеко, а на пути то у нас две стрелки, и ZxPath их переводить не будет, маршрут то построен только до М8. И если Стрелка-1 переведена налево, то бот просто остановится до неё, врезать стрелку он не будет, и всё, сценарий застопорен. А если Стрелка-1 в правильном положении, то возникает вопрос по Стрелка-2, если она на право, то состав раскорячится на оба главных пути. А в этот же момент, могут быть построены маршруты Ч -> ЧII и от НI на выход, наш то маневровый им не мешает, маневровый у нас только до М8. И будет эпик-фэйл...
В приведённом примере, приходится все манёвры составов производить исключительно через М2. Получается совершенно идиотская ситуация, светофоры маневровые есть, а толку от них ноль, ну или почти ноль, маневрировать можно только одним локомотивом.
Когда мы маневрируем за светофор, совершенно не возможно гарантировать безопасность такого манёвра. Ещё вот конкретный пример, маневрировал за светофор, после моей остановки, должен был построится обратный манёвр от этого светофора. Стою жду, а что то маневровый не открывается, и дождался:
Поезд этот должен был приехать когда-нибудь, ну вот он и приехал очень во время, очевидно, он стоял у закрытого входного, пока я маневрировал, как только я проследовал стрелку, маневровый разобрался, ему поездной собрался, ну и всё, Джамшут кран открыл, напор пошёл, и трах-ба-бах.
Если бы можно было разбирать маневровые, тогда для манёвров за светофор можно было бы делать маршрут с запасом на голову/хвост, и потом разбирать, каким-либо правилом. И это решало бы проблему, как перевода стрелок, так и безопасности манёвра.
В первом примере, можно было бы создать Н7 -> М2, маневрировать за М8, потом разобрать маршрут и собрать М8 -> Н5. И стрелки бы все перевелись куда надо, и была бы гарантия, что там поездной не соберётся.
На данный момент, манёвры за светофор можно производить только в тупики какие, и то не всегда, нам нужно непременно целиком в этот тупик залезть, иначе маршрут потом не разберётся. Была у меня мысль, понатыкать маневровых так, чтоб можно было везде маневрировать ДО какого-нибудь маневрового, но это резко увеличит кол-во маневровых, и тогда многие маневровые будут установлены там, где в реале они нафиг не нужны.
О, я очень рад, что подобные вопросы интересуют не только меня. Я уже писал Эрендиру в список хотелок для пульта ДСП. Предлагаю обсудить возможные алгоритмы, чтобы потом можно было внедрить их в обе маршрутизации.
1 это называется угловые заезды. Если мы собрали новый маршрут и уехали в противоположную сторону, то неиспользованная часть предыдущего маршрута должна разомкнутся.
2 да, нужно строить маршруты ДО светофора. И было бы хорошо, если бы такое "продление" осуществлялось автоматически.
3 в этой ситуации стрелка перед светофором не должна была освободиться. И вообще, как теперь подъехать к светофору? Стрелка-то не в маршруте. И никаким маршрутом её не замкнуть уже.
---------- Сообщение добавлено в 00:47 ---------- Предыдущее сообщение размещено в 00:42 ----------
Сообщение от Volaner
и тогда многие маневровые будут установлены там, где в реале они нафиг не нужны.
Вот тут я бы не был столь категоричен. Делать манёвр за М8 на месте ДСП я бы не стал. То есть или делаем маршрут дальше и замыкаем стрелку на главном пути (вне зависимости от длины состава), или светофор перед стрелкой всё же нужен.
О, я очень рад, что подобные вопросы интересуют не только меня. Я уже писал Эрендиру в список хотелок для пульта ДСП. Предлагаю обсудить возможные алгоритмы, чтобы потом можно было внедрить их в обе маршрутизации.
1 это называется угловые заезды. Если мы собрали новый маршрут и уехали в противоположную сторону, то неиспользованная часть предыдущего маршрута должна разомкнутся.
2 да, нужно строить маршруты ДО светофора. И было бы хорошо, если бы такое "продление" осуществлялось автоматически.
3 в этой ситуации стрелка перед светофором не должна была освободиться. И вообще, как теперь подъехать к светофору? Стрелка-то не в маршруте. И никаким маршрутом её не замкнуть уже.
---------- Сообщение добавлено в 00:47 ---------- Предыдущее сообщение размещено в 00:42 ----------
Сообщение от Volaner
и тогда многие маневровые будут установлены там, где в реале они нафиг не нужны.
Вот тут я бы не был столь категоричен. Делать манёвр за М8 на месте ДСП я бы не стал. То есть или делаем маршрут дальше и замыкаем стрелку на главном пути (вне зависимости от длины состава), или светофор перед стрелкой всё же нужен.
А светофор перед стрелкой ничего и не даст, до него состав не войдёт, значит надо будет маневрировать за М6, и проблема со стрелкой-2 остаётся.
Я подозреваю, что нету правила разбора маршрута, потому, что не понятно как указывать маршрут, который надо будет разобрать, когда в данный момент этот маршрут ещё не построен, он только будет построен потом. Есть у меня идея на этот счёт:
Можно сделать правило "Разбор маневрового маршрута через стрелку", и в правиле выбирать стрелку, стрелки то постоянно присутствуют. А когда это правило будет вызываться родительским, TrigerCheck или ещё как, ZxPath будет смотреть, в какой маршрут входит указанная стрелка, и разбирать этот маршрут, стрелка ведь не может входить сразу в два маршрута, по определению, проблем быть не должно.
Вот тогда можно будет на заморачиваясь строить маршрут до входного, тем самым блокируя участок, чтоб поездной не построился, и маневрировать куда надо, а потом этот маршрут разбирать.
Volaner, тут проблема просто в том, что когда "обратный маршрут" (уже после заезда за маневровый с продлённым маршрутом) разбирается, то первой переключается его бывшая стрелка. А значит теряется направление до того "продлённого хвоста", который остался и мог бы разобраться. Если придумаем способ, как "не дать стрелке маневрового маршрута перевестись раньше, чем будет разобран хвост продлённого маршрута" то так можно будет делать. А пока что zxPath умеет только блокировать стрелку рядом с М6 или М8, если давать команду "маневрировать на свободный путь за М8", и маневровый должен на эту стрелку обязательно наехать.