Repeater

Материал из Dwarf Fortress Wiki
Перейти к навигацииПерейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

Генератор импульсов или повторитель — устройство, генерирующее периодически команды включить-выключить. Самая простая конструкция повторителя — это дварф тянущий рычаг на повторе. Однако возможны многочисленные полностью автоматизированные конструкции, которые можно заставить работать с различной скоростью и связать с другими системами для точного расчета времени. Большинство повторителей используют вагонетки, жидкости или существ для циклического срабатывания нажимных пластин.

В качестве общей предосторожности всегда имейте возможность отключить повторитель и/или обеспечить вашим дварфам последующий доступ для ремонта или модификации.

(* Практически в любом другом контексте, особенно в инженерных или "технических" обсуждениях, термин "повторитель" относится к ретранслятору сигнала, а то, что описывается в этой статье, обычно называется "генератором" или "генератором тактовых импульсов".)

Генератор импульсов от рычага

Рычаг с задачей нажимания на рычаг при повторении обеспечивает самый простой цикл повторения. После выполнения первой работы дварф обычно продолжает тянуть рычаг до тех пор, пока не почувствует голод, жажду или усталость, после чего другой дварф притупит к работе. Рычажный повторитель обычно работает быстро (менее 100 тактов за цикл) с различной продолжительностью бездействия при смене дварфов. К сожалению, длину цикла нельзя изменить, а ретранслятор нельзя синхронизировать с другими системами. Случайные периоды бездействия также могут оказаться проблематичными в критически важных применениях, хотя вампир может быть значительно надежнее, чем группа живых дварфов.

Генератор импульсов от трафика

Для задач с низким приоритетом запускаемая гражданами крепости нажимная пластина, установленная в где-нибудь коридоре, может автоматически подавать простой колебательный сигнал. Сигнал от такого ретранслятора варьируется в широких пределах, однако его можно несколько подрегулировать, выбирая коридоры с большим или меньшим трафиком. Отсутствие точности означает, что повторители от трафика лучше всего использовать там, где задача должна выполняться время от времени, но время не имеет значения (например, запуск атомного дезинтегратора на дне мусоропровода).

Волновой генератор импульсов

Простейшим генератором импульсов является волна, проходящая через канал, как описано в этом сообщении на форуме.

   
^.....-->777776
   

Единственный тайл воды высотой 6/7 проходит через канал, время от времени переключая нажимную плиту, отжимаемую при уровне воды 0-6/7. Чтобы получить нужное количество воды в канале, проще всего заполнить его полностью, затем назначить его в качестве источника воды (и, возможно, пруда), после чего дварфы заберут одно ведро воды.

В соответствии с проектом (1 тайл воды из 6 запускает переключение), эта установка срабатывает быстро, на одном уровне с описанными ниже генераторами импульсов. Что не сразу очевидно, строительство канала меньшей длины или удаление большего количества воды замедляет действие генератора импульсов. Это происходит потому, что нажимная плита никогда не сможет вернуться в первоначальное состояние, для чего ей нужно 100 тиков. К сожалению, жидкости ведут себя полуслучайно, а это означает, что период этого повторителя может меняться, что делает его непригодным для точного измерения времени.

Обратите внимание, что пруды/ямы могут быть заполнены только до 6/7, поэтому вам нужно будет установить нажимную пластину соответственно так, чтобы она сработала на 0-5/7.

Возможно сделать другой проект, который можно легко запускать и останавливать, при этом даже сберегая воду, но такие системы являются сложными, в то время как красота этой конструкции — это её простота. Если нужно остановить её для технического обслуживания, одним из лучших вариантов будет просто доливание ещё ведра воды.

Генератор импульсов на жидкостной логике

Традиционный проект генератора импульсов на основе жидкости предложен на форуме Bay12 участником AncientEnemy):

    бесконечный источник воды                                           
    стена, ограничивающая канал после строительства                     
  X    запорный шлюз (связан с внешним рычагом)                            
  #    1-тайловый подъёмный мост (связан с нажимной плитой)                
  ^    нажимная плита (срабатывает на уровень воды 7/7) и дверь для доступа
  X    шлюз (связанный с нажимной плитой)                                  
                                                                           

Пока запорный шлюз не закрыт, вода из бесконечного источника течет к нажимной плите, что приводит к поднятию моста, что перекрывает доступ к источнику воды и уничтожает воду в схеме, в то время как открытие южного шлюза компенсирует пространство, занимаемое мостом. Такая механика уничтожения воды означает, что, в отличие от многих схем на жидкостной логике, этот генератор импульсов не нуждается в отводе воды (дренаже). Единственная нажимная плита одновременно как регулирует генератор импульсов, так и работает в качестве вывода.

Этот генератор импульсов переключается довольно медленно, с периодом примерно в 300 шагов, что делает его пригодным для управления мостами, шлюзами и выдвижными шипами. Выключение обычно происходит примерно через 200 тиков после отдачи команды. В качестве дополнительного бонуса, южную стену можно убрать и подключить к цистерне, уровень воды которой будет автоматически поддерживаться на глубине 3/7-4/7 — идеальное место для плавания!

Альтернативным генератором импульсов на основе воды является проект на странице en:User:SL/Logic_Gates#Repeater, демонстрирующий двухуровневый, гибридный генератор импульсов.

Гоблинский генератор импульсов

Также возможны проекты на основе логики существ. Следующий пример компактен, надёжен и легко предсказуем.

     
¢
p¢^¢¢^¢p
¢
     

Пойманный гоблин, помещённый между двумя нажимными плитами, приводит эту систему в действие своими попытками достигнуть края карты по путям ¢p. ^ связана со всеми ¢, а ^ связана со всеми ¢,так же как и с выходом. Таким образом, у гоблина появляется путь наружу с навязанного ему тайла каждые 100 тиков. Задержки в появлении пути заставляют его бегать по кругу каждые 250 тиков с сигналами включения/выключения, расходящимися примерно на 120 тиков. Частоту повторения можно удвоить сцеплением обеих ^ с выходом, однако это приведёт к сближению сигналов включения и выключения.

Генератор с вагонеткой

В простейшей реализации дварф толкает вагонетку по заданному расписанию по замкнутому пути, на котором расположена нажимная плита. Установка станции на маршруте в режиме guide after X days задаёт минимальный интервал времени (X дней), через который начинается очередной цикл работы генератора, но максимальная продолжительность цикла может варьироваться (в зависимости от того, как много времени потребуется носильщику, чтобы приступить к работе и дойти до вагонетки). Данный тип генератора может быть полезен для инициирования случайных событий, для которых не важна строгая периодичность – вроде включения генератора тумана на несколько дней каждый месяц.

Чтобы исключить неопределённость, связанную с задержкой прибытия дварфа-толкателя, можно заставить вагонетку двигаться по замкнутому контуру с помощью роллеров. Благодаря тому, что роллер даёт фиксированную прибавку к скорости и детерминированной механике движения вагонеток, такой тип конструкции позволяет добиться генерации импульсов со строго постоянным периодом. Значение последнего относительно просто регулировать заданием даваемой роллером прибавки к скорости, варьированием длины пути или добавлением остановок со средним или низким значением трения.

Импульсные рампы (являющиеся эксплойтом) позволяют создавать полностью автономные (без использования внешних источников энергии) генераторы с вагонетками. Точная настройка периода осуществляется путём изменения длины маршрута и трения на нём.

В этой конструкции используется область 7 на 8 на 3 Z-уровня, и она применяется для вертикальных ловушек с шипами. Первоначально оно было опубликовано в этой ветке форума.

z              z-1            z-2
1234567890     1234567890     1234567890     
wwwwwwwwww  1  wwwwwwwwww  1  wwwwwwwwww     где
wwwwwwwwww  2  wwwwwwwwww  2  wDDDDDDDDw     w = неизменённая стена
wwwwwwwwww  3  wwwwwwwwww  3  wDwwwwwwDw     D = копать с приоритетом 4
wwwwwwwwww  4  wwwwwwwwww  4  wDwwwwwwDw     h = рыть канал с приоритетом 4
wwwwwwwwww  5  wwwwwwwwww  5  wDwwwwwwDw     H = рыть канал с приоритетом 5
wwwwwwwwww  6  wwwwwwwwww  6  wDwwwwwwDw     
wwwwwwwwww  7  wwwwwwwwww  7  wDwwwwwwDw     
wwwwwwhDhw  8  wwwwwhwwHw  8  wDDDDwwwww     
wwwwwwwwww  9  wwwwwwwwDw  9  wwwwwwwwww     

  1. Вырежьте рельсы на всех тайлах с буквой D в очевидном направлении.
  2. Вырежьте импульсные N/E рампы на трех пандусах (2 на Z-2, один на Z-1).
  3. Поместите крышку люка на восточный склон на Z и разметьте там остановку.
    1. Удалить приказы движения по умолчанию для остановки.
    2. Подсоедините люк к рычагу пуска/останова. (нет на изображении)
  4. Постройте нажимную пластину, активирующую вагонетку, в любом месте ровной дороги (т. е. не на рампе), например, на 2 клетках к северу от склона, запускающего повторитель.
  5. Подсоедините нажимную пластину к повторителю (ловушку с шипами, опасную комнату, мост и т. д.).
  6. Уберите или запретите весь мусор в туннеле, иначе вы рискуете получить летальное дорожно-транспортное происшествие, когда кто-то пойдет его забирать.
  7. Используйте рычаг, чтобы запускать и остановливаь процесс.

В этой теме на форуме приводятся проекты, настроеные для управления мостами и ловушек с кольями.

Эта тема посвящена сверхкомпактным проектам генераторов.

Генератор с вагонеткой может быть откалиброван на значения периода, пригодные для создания часов, – такие как 100, 200, 300 тиков и т.д. Конструкция этого типа, использующая внешний источник энергии, требует для создания единственный роллер (и энергию для его запуска), одну нажимную плиту и немного места для размещения путей. Генератору на основе импульсных рамп для поддержания вечного движения не нужен подвод энергии извне, однако калибровать его на полезные значения периода (т.е. кратные 100 тикам) несколько сложнее. Также потребуются дополнительные элементы, чтобы можно было по желанию останавливать его работу.

Генератор с вагонеткой может быть синхронизирован с другими системами. Добавление дополнительных нажимных плит на путях позволяет одному устройству генерировать за цикл множество сигналов со сдвигом по времени друг относительно друга, или же использовать их для синтеза высокочастотного сигнала. Нажимные плиты, инициируемые каждая в свою очередь, могут запускать асинхронно работающие системы.

Генерация тактового сигнала

Хотя закон больших чисел означает, что в течение достаточно больших интервалов времени вышеупомянутые нерегулярные повторители (повторители на жидкостной и гоблинской логике) могут использоваться для создания часов, есть и конструкции, генерирующие идеальные тактовые сигналы.

Данный механически-жидкостный генератор импульсов будет отправлять регулярные сигналы с частотой, определяемой скоростью восстановления нажимной плиты. Базовая конфигурация требует 4 помп и 4 нажимных плит, но возможны модификации, в зависимости от числа необходимых отдельных этапов.

Level Level Level 
0     -1    -2    
                  
       ÷÷   ^  ^ 
  ÷  ÷       
     ÷  ÷       
       ÷÷   ^  ^ 
                  

÷÷ — помпа, качает со светлой стороны на тёмную. ^ — нажимная плита, которая высвобождает шестерню , когда вода глубиной 1-7 давит на неё. Цвета плит и шестерёнок лишь указывают на связи друг с другом. В игре они все будут выглядеть как ^ и . Постройка помпы после питающей шестерни или шестерни после управляющей нажимной плиты создаёт задержку в 1 шаг. Если строить строго помпы, затем шестерни, затем плиты, то вся система работает с периодом 400 шагов. Если в обратном порядке, то за 408. Для запуска генератора понадобится 2 ведра воды, вылитые на одну плиту. Это делается через разметку пруда.

Устройство, изображенное на рисунке, во время работы потребляет 47–62 энергии, а для запуска требуется 62 энергии. Добавление поезда может, конечно, привести к более высоким требованиям. Как только в систему вводятся две единицы воды, вода полностью сохраняется.

См. также: NStepCyclicRepeater, масштабируемый n-шаговый генератор тактового сигнала.

SelfPoweredHaltableRepeater, генератор тактового сигнала с водным двигателем.

Тред форума, который содержит ещё больше описаний и пояснений.

DFMA видео, показывающее в действии генератор тактового сигнала на помпах.

Задержка

Генерация тактового сигнала тесно связана с понятием задержки: сигнал достигает цели через определенное время после его генерации. Любая немеханическая схема вносит задержку в сигнал. Самая простая форма задержки — это логический вентиль эквивалентности (т. е. не меняющий сигнал, операция a=a). Описанный выше генератор тактового сигнала примечателен тем, что обеспечивает постоянную задержку. Любая постоянная задержка может использоваться для генерации тактового сигнала. До появления вагонеток в игре было три известных постоянных интервала, с помощью которых можно было создать генератор тактовых сигналов: задержка сброса, связанная с нажимной пластиной, посылающей сигнал "закрытия"; скорость, с которой существо падает; и время, в течение которого винтовой насос будет продолжать перекачивать воду после прекращения подачи энергии.