Система сигнализации 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.
TRam_,а можешь сделать нанесение номеров и литеров светофоров текстурой как на километровых столбиках Эрендира. Там получается чётко и красиво,а на Z7 это было обычным дефолтным шрифтом, неравномерно и расплывчато.
Это давно собираюсь сделать. Вот только для этого надо полностью убрать из пака все модели из z7 (у них корявая раскладка табичек), а у меня пока доступа к модеям нет, да и домашний комп не позволяет (это не тот что мой, который в общежитии), слабый сильно.
Такая мысль по поводу рандомной сортировки. Опишу весь процесс с прихода поезда.
Значит, обычными средствами грузовой поезд заходит в парк приема. Абсолютно обычными средствами, ботомашинистом, оттуда отцепдяется лок и уходит в депо, все это обычными средствами. Теперь далее, предположим, что у нас стоит несколько составов в парке приема. Теперь, маневровый локомотив, к примеру ТЭМ7, должен подъехать на такую точку, из которой можно попасть на любой из путей парка приема. Это обычными средствами. Теперь такая команда, которая, кстати, будет испольщоваться много где, помимо, как тут, это рандомный выбор пути для маневрового. Т.е. как сейчас по приоритетам выбирается путь для поездных команд, вот точь в точь, только равновероятный выбор пути и в маневровом режиме. Такая команда нужна будет достаточно много где. Так вот, этой командой, ТЭМ7 рандомно выбирает себе путь, чтобы взять состав в парке приема. Сцепился он, теперь по поводу маркеров в сортировочном парке. Значит, тут что-то вроде ДЕПО Эрендировского. Все пути, на которые возможен роспуск отмечается некими "путевыми" маркерами, типа деповских. Которые просчитывают длину пути между собой и количество путей. Конечно, записывают в какой-то один управляющий маркер. Потом, перед самой, собсна, горой стоит еще один маркер, который просчитывает варианты маршрутов от себя на все эти пути, которые уже задали маркеры. Все варианты маршрутов он тоже записывает в главный маркер. Теперь, некий "роспускной" маркер (в принципе, этот и предыдущий можно объединить), который расцепляет над собой вагоны. Расцеплять не все, ест-но, рандомно. То один вагон, то два и там до пяти, допустим. Было бы еще круто, чтобы в этот маркер можно было бы вносить максимальный предел по отцепляемым вагонам. И он должен учитывать, что действовать должен только на подвижные единицы с енжинспеком вагонов. И еще один маркер, который можно было бы тоже объединить с предыдущим, но тогда надо еще как-то учитывать длину отцепов. Так вот, роль этого маркера рандомно переключать маршруты, которые есть в списке главного контроллера горки, при чем он должен учитывать, что если кол-во вагонов на каком-то пути вышло за пределы "путевых" маркеров, то этот маршурт не включать. Самый проблематичный маркер этот, потому что он должен учитывать, что вагоны успели пройти стрелки. Хотя, если делать по типу маршрутизации, что типа очереди, и как только вагоны ушли, пути переводятся сами, короче я в скриптах не волоку, я вот только алгоритмы могу объяснить. В-общем, вот такая вот горка. Теперь, возвращаемся к ТЭМ7. Этот ТЭМ7 выполнил после сцепки команду, которая собрала маршрут до горочного маркера, а дальше будет уже горочный маркер действовать. Этот маркер должен только стрелки собрать туда, потом пользуемся уже существующей комнадой, которая держит одну и ту же скорость надвига на горку. А горочные маркеры должны сами, кстати, работать, независимо от маршрутизации и команды. Чтобы и игрок мог толкать вагоны, а они сами там разлетались, если такое возможно, конечно. Н, если нет, то и ф-г с ним, будем командой расталкивать вагоны. Вот, значит, вагоны все разлетелись, как только локомотив остался без вагонов, эта команда надвига заканчивается и начинается дальше, что там у него будет. И так все пришедшие составы. Затем, другой маневровый той же командой выбора рандомного пути в маневровом режиме, вытягивает какой-нибудь состав из сортировочного парка, при чем желательно синхронизировать эту команду с маркером горки, чтобы маршрут выбрался на заполненный вагонами путь. Чтобы вытащить это состав в парк приема. Путь в парке прием выбирается так же рандомно, но, чтобы путь был пустой выбран. Т.е. три, вроде одинаковых команды, но у всех поправки. Думаю, их можно объеидинть новым контекстным меню (Рандомный маневровый путь -> 1. На состав. 2. На состав на горке. 3. Из горки в парк, ну отличие понятно, думаю). Вот, маневровый новый вытянул состав в парк отправления, там уже готовыми командами, рандомно выбранный лок в депо едет, и цепляет состав (а состав выбирается снова командой рандомного выбора пути в маневровом режиме, но первый вариант, на состав.), а далее уже едет куда ему выбралось задание, в какую-либо след. сортировку, где все начинается сначала.
А теперь клевые фичи, которые реализовать легко будет, если все это будет. Ну, начиная с того, что горочный светофор будет работать с точнотью, как в ИСИ, на основе данных маркеров. Ну и заканчивая тем, что если реализовать рандомный расцеп вагонов посредоством массива, который будет заполняться рандомными цифрами, но заранее на несколько ячеек, то можно было бы реализовать и вот это вот, как в ссыли снизу (не знаю, как правильно он называется), т.е. там отображаются первые три цифры массива.
Да еще, на основе этой бесконечной сессии, которую я у себя сделаю, решил след., что куплю себе второй комп, на котором у меня будет включена круглые сутки моя бесконечная сессия по родине.
ТРамыч, ты там с морей вернулся? Выложишь СУ с комплектом светофоров з7, как я предлагал? А то у меня вся пре-вся сигналка на карте упала, ни один светоофор не работает. Вернее как, работает, но линзы не горят. И перегоны не могут у меня выбирать сами направление, из-за этого ездить нереально на скриптованных локах. Вот теперь-то, мне уж точно срочно нужна СУ.