Статья про тонкости игрового процесса в игре Factorio.
В этой статье рассмотрим принцип работы простейшей автоматики (RS-триггер) для включения/выключения электрических механизмов в Factorio на примере включения/выключения электростанции.
-----------------------------------------
Важное замечание! Эта статья была написана для первой версии игры Factorio. Несмотря на некоторые несовпадающие механики игры, предметы или их свойства, статья по-прежнему актуальна и для текущей версии игры.
-----------------------------------------
Введение.
Если вы не понимаете принцип работы RS-триггера, на основе которого собрана логика для управления отключением электростанции, или знаете принцип его работы, а комбинаторы в Factorio вызывают у вас некоторые непонимания, то скорее всего эта статья для вас. Попытаюсь рассказать что это, как это работает, зачем это бывает нужно.
Вероятно, чужие чертежи с комбинаторами вы уже использовали или видели их где-то, и могли заметить там использование сигналов R и S. Собственно, думаю, нет смысла объяснять, почему RS-триггер так называется. Для установки сигнала в таких чертежах используется сигнал S созвучный первой букве английского слова «set», а для сброса или обнуления значения используется сигнал R созвучный первой букве английского слова «reset». Не будем отходить от традиции, и в дальнейшем так же будем использовать эти две буквы.
Примечание к статье.
Если вы считаете, что не можете разобраться в работе логики, или вам не даётся эта статья, или же по каким-то иным причинам вам сложно читать про работу комбинаторов, то для более простого понимания можете сразу прокрутить к картинке 19. На картинке 19 в упрощённом виде представлена схема принципов работы описываемой логики. Далее есть краткое объяснение.
Для самых неспособных к обучению в конце статьи есть отдельная глава «Краткий пересказ статьи для самых способных и одарённых».
Очень надеюсь, что до этой главы вы дочитаете и самостоятельно во всём разберётесь.
Включение/выключение.
Зачем?
Действительно, зачем выключать и снова включать то, что уже работает и не нуждается ни в каких сложных манипуляциях? Вот сейчас разберёмся. Возьмём холодильник. Нет, в игре Factorio холодильников нет. Мы его берём для примера, так сказать, для наглядности. Холодильник может работать в двух режимах:
1. Холодильник морозит всё время. В холодильнике холодно. Если уровень холодной температуры достиг нужного предела – холодильник всё равно работает. Впустую. У холодильника есть теплоизоляция и он хорошо держит температуру. Поэтому ему не нужно морозить без нужды. Но он работает. Всегда. И тратит лишнюю электроэнергию. Ваша бабушка приходит и ругается, швыряет на стол квитанцию за электричество и проклинает холодильник за его «прожорство».
2. Холодильник морозит только когда нужно. Холодильник достигает нужный уровень холодной температуры – после этого отключается. Он экономит электричество. У холодильника есть теплоизоляция и он хорошо держит температуру. Поэтому ему не нужно морозить без нужды. Поэтому он стоит выключенный пока внутри не начнёт теплеть выше нормы. Тогда холодильник включится и снова поработает до нужного предела. И снова выключится. Этим он сэкономит до 90% вашей электроэнергии. Ваша бабушка приходит и хвастается, что у неё очень маленькие счета за электричество, а чтобы вы порадовались вместе с ней, она угощает вас вкусняшками.
Согласитесь, второй вариант куда приятнее и полезнее?
В Factorio принцип работы устройств абсолютно такой же как и в жизни. Если мы тратим лишнюю электроэнергию впустую, то на это расходуются ресурсы. Например, научившись получать солнечную энергию, можно запасать её в аккумуляторах, и пока аккумуляторы не разрядились – выключать электростанцию для экономии топлива. Или, к примеру, чтобы не тратить лишние урановые топливные стержни в ядерной электростанции, так же можно отключать её автоматикой зависимой от паровых турбин – пока пар вырабатывается, топливные стержни в реакторы закладываться не будут.
Не станем сильно фантазировать, так как применять логику можно в разных местах. Нас интересует пример электростанции. Допустим, она работает на угле. Допустим, мы смогли собрать нужное количество солнечных панелей для получения электричества в дневное время. Допустим, мы собрали нужное количество аккумуляторов для хранения собранной электроэнергии. Теперь надо понять, как пользоваться ею пока она есть, и не гонять почём зря электростанцию, экономя уголь. И как включать эту самую электростанцию, если аккумуляторы разрядились, чтобы не остаться без электричества.
Наше оборудование.
Итак, схематично накидаем себе примерный вариант:
Вот угольная электростанция, которая будет иногда работать. Почитать про работу электростанций можно в этой статье и в этой статье.
Вот блок солнечных панелей, которые будут собирать электроэнергию в дневное время суток:
Вот блок аккумуляторов, которые будут хранить накопленную днём электроэнергию и выдавать её при нехватке в электросети.
Нужно понимать, что количество солнечных панелей и аккумуляторов мы здесь не рассчитываем, просто поставили и предположили, что по умолчанию для статьи нам хватает всего.
Теперь посмотрим на это общим планом.
Обратите внимание, что электростанция для нашего примера не имеет ни одного подключения к электросети. То есть, в обычной игре у нас стояли бы какие-то опоры ЛЭП, к которым тянулись бы медные кабели чтобы получать электроэнергию. Здесь же весь блок паровых генераторов (обведён пунктиром) полностью изолирован от внешней электросети. Это нужно чтобы электростанция не могла взаимодействовать с электрической сетью напрямую. Взаимодействовать она будет через логику, которую мы установим. Логика будет включать и выключать электростанцию, и передавать через себя электричество «наружу» в общую электросеть.
Для постройки автоматики включающей/выключающей электростанцию нам понадобятся: сравнивающие комбинаторы, выключатель питания, деревянные опоры ЛЭП, сигнальные зелёные и красные провода.
Проектирование.
Итак, первое, что мы, как инженеры-факторщики должны понимать в будущей логической схеме – это принцип разделения двух цепей: внешней электрической цепи и внутренней электрической цепи нашей электростанции. Чтобы никто не сомневался в вашей инженерной компетенции, я вам нарисую всё схематично, и вы поймёте. На словах это выглядит так:
- Есть электростанция, внутри неё есть электричество, которое она вырабатывает.
- Снаружи нашей электростанции полно разных опор ЛЭП, которые соединяются между собой медными кабелями – это всё вместе есть большая электросеть нашей фабрики.
- Внутреннее электричество электростанции никто не должен получить, пока наша будущая логика не решит, что это пора сделать.
- У нас в логике будут стоять: аккумулятор внешней электросети, который, естественно, будет питаться электричеством внешней электросети, и будут стоять комбинаторы, которые должны запитываться непосредственно от нашей электростанции.
Теперь давайте перед просмотром схемы ещё раз разжуём то, что уже многие и так поняли.
Будет аккумулятор, он будет заряжаться от внешней электросети. Это для нашей будущей схемы «пробник», с которого будут сниматься показания. Этот аккумулятор должен быть подключён именно к внешней электросети чтобы наша будущая логика всегда могла по его состоянию судить об электричестве в этой внешней электросети.
А вот комбинаторы нашей «думающей» логики будут находиться в зоне покрытия электричеством нашей электростанции. Думаю, понятно, для чего это будет сделано. Если аккумулятор внешней сети может заряжаться и может разряжаться, то наши комбинаторы не имеют права выключиться при нехватке электричества. Комбинаторы будут брать электроэнергию напрямую с электростанции, так как она даже отключённая от общей электросети всё равно продолжает на холостом ходу выдавать некоторое электричество для подпитывания комбинаторов, любых наших фонарей или прочего, что нам вздумается поставить. Наша электростанция всегда имеет запас топлива и пара, она подготовлена к резким блэкаутам и просадкам во внешней электросети (при условии, что вы соблюдаете меры энергетической безопасности, например, описанные в этой статье). Таким образом, электростанция обеспечит бесперебойную работу комбинаторов.
Теперь схема, визуально объясняющая разделение логики по питанию. Обратите внимание на направление стрелок указывающих подачу питания.
Итак, как видно из рисунка 6 у нас два отдельных контура: слева вся внешняя электрическая сеть обведённая оранжевым пунктиром, справа электростанция со своими внутренними потребителями электричества внутри жёлтого пунктирного контура.
Что происходит внутри внешней электрической сети нас не волнует вообще. Наша задача поставить аккумулятор, который будет подключён к этой внешней электросети. Аккумулятор будет как бы точкой связи внешнего контура и электростанции. Он заряжается от внешней электросети и разряжается вместе с потерей в ней электричества.
Этот аккумулятор на схеме соединён с комбинаторами сигнальным проводом. Комбинаторы определяют заряд аккумулятора и выдают вердикт: включить выключатель или выключить. Сами комбинаторы при этом находятся в жёлтом контуре электростанции и постоянно получают электричество от неё.
Как только аккумулятор начнёт разряжаться – комбинаторы будут уведомлены, что во внешней электросети началось падение электричества. Если комбинатор разрядится до установленного минимального порога – электричество, фактически закончилось. Во внешней сети может произойти отключение. Поэтому после достижения минимального порога комбинаторы дают сигнал выключателю, разрешая включиться и подать электричество от электростанции во внешнюю электросеть. Начинается работа внешней электросети от нашей электростанции.
Пока вся фабрика работает от электростанции, излишки электричества заряжают аккумуляторы внешней электросети. Аккумуляторы одной электрической сети заряжаются одновременно все разом, независимо от места, где они установлены. Всё электричество равномерно распределяется на все аккумуляторы, в том числе на наш «пробник» – аккумулятор установленный рядом с комбинаторами.
С наступлением светлого времени суток солнечные панели будут вырабатывать всё больше и больше электричества, пока не выйдут на свой полный максимум. Вот тогда электричества будет свыше нормы и вся лишняя электроэнергия успешно уйдёт в заряд аккумуляторов. Аккумулятор, с которого комбинаторы снимают показания через сигнальный провод тоже зарядится вместе с другими аккумуляторами на фабрике. Комбинаторы получат максимальное установленное значение заряда аккумулятора и сработает логическая команда выключателю – выключиться. Тем самым прекратится подача электричества от электростанции во внешнюю электросеть.
Для тех, кто проспал всё вышесказанное, обобщим:
- Во внешней электросети начинается нехватка электричества (например ночью, когда солнечные панели перестают работать).
- Аккумулятор разрядится и комбинаторы от него по сигнальному проводу узнают, что электричество кончилось.
- Комбинаторы дадут выключателю команду включиться. Электричество от электростанции начнёт подаваться во внешнюю электросеть.
- Фабрика будет работать на электричестве от электростанции.
- Электричество во внешней электросети станет нарастать (например днём, когда солнечные панели начнут работать в полную силу).
- Аккумулятор зарядится до максимума и комбинаторы от него по сигнальному проводу узнают, что электричества достаточно.
- Комбинаторы дадут выключателю команду выключиться. Электричество от электростанции перестанет подаваться во внешнюю электросеть.
- Фабрика снова будет работать без нашей электростанции.
Создание логики.
Усвоив урок из проектирования, будем ставить всё оборудование только в пределах тех опор ЛЭП, которые непосредственно относятся к устанавливаемому оборудованию.
Сначала поставим два сравнивающих комбинатора и от электростанции подведём к ним электричество.
Теперь установим тот самый аккумулятор «пробник», с которого будем снимать показания. Подводим к нему электричество от внешней электросети. Обязательно контролируем чтобы эта опора ЛЭП не соединилась медным кабелем с другой опорой – питающей комбинаторы. И вообще следим, чтобы ни одна опора ЛЭП не соединилась случайно с другой. Как мы помним – контур электростанции должен быть отделён от контура внешней электросети.
Зелёным сигнальным проводом щёлкаем по аккумулятору чтобы присоединиться. Затем протягиваем провод до ближайшего комбинатора и щёлкаем по его входу. Сигнальный провод соединит аккумулятор с комбинатором:
Теперь нужно так же соединить аккумулятор с другим комбинатором. Для этого есть два варианта на вкус игрока: соединить аккумулятор с каждым комбинатором отдельным сигнальным проводом или соединить сигнальным проводом аккумулятор с входом ближайшего комбинатора, а уже от него соединить сигнальным проводом вход другого комбинатора. И в том и в другом случае получается одно и то же – сигнал с аккумулятора поступает на оба входа комбинаторов.
В нашем случае для эстетики будем использовать вариант с одним сигнальным проводом и соединёнными входами комбинаторов.
Щёлкаем по аккумулятору и в открывшемся экране видим, что выходной сигнал называется «A» (от слова «аккумулятор»). Его можно заменить другим значком. Например, вместо значка с буквой «A» можно установить значок с рисунком аккумулятора. Для этого надо лишь щёлкнуть по букве «A» и произвести замену. Но вряд ли стоит этим заниматься, так как «A» уже установлен по умолчанию в Factorio и используется большинством игроков при создании чертежей.
Сигнал «A», выходящий из аккумулятора имеет определённое значение. Это значение – текущий заряд аккумулятора. Если аккумулятор разрядился и его заряд упал до 19%, то и сигнал «A» будет равен 19. Если же аккумулятор зарядился до 97%, то и сигнал «A» будет равен 97.
Получая от аккумулятора по сигнальному проводу сигнал «A», мы можем узнавать его значение и представлять себе насколько сейчас аккумулятор заряжен или разряжен.
Если аккумуляторы полностью разрядились, значит электричества в сети не хватило для их зарядки, и возможно, сейчас уже наступил блэкаут или электричество в сети сильно просело и фабрика почти полностью остановилась.
Сигнал «A» ясно даёт понять, что если аккумулятор заряжен, и сигнал имеет высокое значение – то с электричеством пока порядок, и электростанцию можно не включать. Если аккумулятор начал быстро разряжаться и уже почти дошёл до низких значений – значит электричество на минимуме, срочно нужно включить электростанцию.
Работают аккумуляторы как одно целое: не важно, где стоят аккумуляторы, сколько их – если они все подключены к одной электросети – они все синхронно заряжаются и разряжаются как один. Вот поэтому нам не важно, где на фабрике стоит наш блок с аккумуляторами, хранящий в себе заряд, ведь он подключён к электричеству к которому подключается и наш аккумулятор – «пробник». Этого достаточно чтобы аккумулятор – «пробник», с которого мы снимаем сигнал «A», показывал нам общий заряд всех аккумуляторов в этой электросети.
Продолжаем дальше.
Мы не зря присоединили сигнальный провод сразу к входам обоих комбинаторов. Нам требуется в этих двух комбинаторах одновременно узнавать значение сигнала «A». Один комбинатор будет следить за низким уровнем заряда аккумулятора, а второй будет следить за высоким уровнем заряда.
Если аккумулятор разрядится до установленного нами низкого уровня, то один комбинатор выдаст сигнал «S» со значением 1. А если аккумулятор зарядится до установленного нами высокого заряда, то другой комбинатор выдаст сигнал «R» со значением 1. Так мы сможем определять разрядился он или зарядился.
Давайте настроим сравнивающие комбинаторы. Установим условие в левом комбинаторе таким: если A<20, то на выход подать сигнал «S» равный 1:
Таким образом, после разряда аккумулятора ниже 20% сравнивающий комбинатор выдаст сигнал «S» равный единице. Если заряд аккумулятора поднимется до 20% и выше, сигнал «S» прекратится.
Настроить можно и на 25% и на 10% и на любое другое нижнее пороговое значение разряда. Каждый игрок решает сам, насколько ему хочется разряжать аккумуляторы до запуска электростанции. Но позволю себе дать маленькие советы по этому вопросу:
- Если на электростанции есть резервуары хранящие накопившийся пар, то электростанция запустится почти мгновенно. Если резервуаров нет или их мало, то бойлерам потребуется время чтобы получить топливо манипуляторами, разжечься и начать нагревать воду в пар. Пару потребуется время чтобы заполнить трубы и паровые двигатели. А ещё бойлерам потребуется время чтобы нагреть нужное количество пара из воды и создать давление в паровых двигателях. И, поэтому, полноценная работа электростанции может начаться не сразу, а с задержкой. За это время электричество может резко уйти в ноль и фабрика может испытать падение электричества, а то и отключение.
- Если аккумуляторные блоки, хранящие электричество, накапливают хороший объём заряда, то пока электростанция будет вводиться в полноценную работу, они могут ещё продержаться до полной разрядки и не дать фабрике остаться без электричества. Если аккумуляторов мало, и заряд в них небольшой, то при установленном низком пороговом значении в комбинаторе может случиться резкий разряд. Тогда электростанция не успеет запуститься, а аккумуляторы уже полностью иссякнут.
- Если имеется дополнительный источник электроэнергии, который не отключается никогда, например, мини-электростанция для сжигания отходов древесины, угля, твёрдого топлива, то она сможет поддержать «на плаву» фабрику, в момент разрядки аккумуляторов и запуска электростанции.
- Если в комбинаторе выставлен низкий пороговый уровень разряда, то нужно опираться на дополнительные условия, такие как описаны выше, чтобы электростанция успела запуститься раньше, чем аккумуляторы разрядятся полностью. Но лучше, если пороговый уровень разряда аккумуляторов выставлен с запасом, чтобы аккумуляторы не успевали разрядиться полностью ни при каких условиях, а электростанция всё равно включалась успешно.
Теперь установим значение второго комбинатора. В нём будет такое условие: если A=100, то на выход подать сигнал «R» равный 1:
При полном заряде аккумуляторов до 100% второй сравнивающий комбинатор выдаст сигнал «R» равный единице, чем укажет на необходимость отключения электростанции.
Максимальный уровеньзаряда можно выставить любым. Обычно игроки ставят условие и A>70, и A>85, и A>90, и ещё по-всякому. Каждый может использовать этот параметр обоснованно, на своё усмотрение. Но дам несколько советов по этому поводу:
- Установив условие на очень низкий уровень максимального заряда, к примеру A>50, нужно быть уверенным, что после отключения электростанции полный заряд аккумуляторов произойдёт за счёт других источников электроэнергии. Например, если имеется второстепенная электростанция, которая никогда не отключается. Или имеются солнечные панели, которые быстро дозарядят аккумуляторы. Иначе это грозит тем, что аккумуляторы никогда не будут заряжаться полностью, и работать будут при частично разряженном состоянии.
- Нужно понимать, что аккумуляторы, заряжающиеся не полностью работают в меньшем диапазоне своей эффективности: от высокого уровня заряда до низкого уровня заряда у них совсем маленький диапазон. Вот сравните диапазон аккумуляторов работающих от низкого уровня разряда в 20% до высокого уровня заряда в 100% и диапазон аккумуляторов работающих от 20% до 70%. На 30% вторые аккумуляторы проработают меньше. Это приведёт к частым включениям электростанции и к меньшей работе на заряде аккумуляторов.
- Бывает, что только в ночное время заряда аккумуляторов не хватает на всю фабрику. Буквально на пару часиков. В остальное время большие блоки солнечных панелей успевают зарядить аккумуляторы и обеспечивают фабрику электроэнергией с избытком. В таком случае, нет смысла экономить заряд аккумуляторов или искать эффективный способ их работы. Можно установить низкий и высокий пороги срабатывания усреднёнными для большинства случаев, например 25% и 90%. Разряд будет происходить не полностью, а заряд будет почти моментальным за счёт работы солнечных панелей.
Итак, научились выставлять в сравнивающих комбинаторах условие низкого разряда и условие высокого заряда аккумуляторов. В случае разряда получим с одного комбинатора сигнал «S» для включения электростанции, а в случае заряда получим с другого комбинатора сигнал «R» для выключения электростанции. Понятное дело, что фраза «выключение электростанции» не означает прямое отключение электростанции – это всего лишь разрыв в подаче электричества во внешнюю сеть.
Теперь надо научиться использовать сигналы «S» и «R» для выдачи нужной команды выключателю. Для этого установим третий сравнивающий комбинатор. Пусть это будет рядом с выходами двух предыдущих комбинаторов:
Далее требуется соединить выходы двух комбинаторов с входом третьего, чтобы оба сигнала с комбинаторов могли поступить в третий. Делается это либо соединением каждого отдельно со входом в третий комбинатор, либо как и в прошлый раз, сначала друг с другом, а затем уже одним сигнальным проводом дальше, на вход третьего комбинатора:
Давайте обсудим работу третьего комбинатора.
К нему на вход могут поступить либо сингал «S», когда аккумулятор разрядился, либо сигнал «R», когда аккумулятор зарядился. Сразу договоримся, что из него на выход будем подавать другой сигнал, но называться он будет также как и предыдущий – «S». Сигнал «S», который может прийти из предыдущего комбинатора на вход, и сигнал «S», который будет выходить из этого комбинатора на выход – это разные сигналы. Сигнал «S», который мы выдадим на выход третьего комбинатора – будет вообще не связан с предыдущими сигналами напрямую. Но он будет дублировать входящий сигнал «S» – об этом поговорим чуть позже.
Итак, нужно определиться, когда подавать из третьего комбинатора на выход сигнал «S» обозначающий, что пора включить электростанцию. Установим условие, что если S>R, тогда и подать на выход «S» равный 1.
Понятно, что S>R будет значить: аккумулятор разрядился, о чём пришёл сигнал «S» (S=1), зато полной зарядки не было, и поэтому сигнал «R» не поступил (R=0). Значит S больше R (S=1 R=0). Поэтому подаём на выход «S» размером в единицу. Но чтобы сигнал «S» не исчез после того как включится электростанция и начнёт заряжать аккумулятор (так как после исчезновения сигнала «S» отключится электростанция), надо его зациклить. Тогда он будет постоянно поступать на вход комбинатора и создавать ложный сигнал «S» для продолжения работы электростанции, пока не поступит сигнал «R». Для этих целей соединим выход третьего комбинатора со своим же входом сигнальным проводом другого цвета. В нашем случае это красный провод:
Соединив выход и вход третьего комбинатора сигнальным красным проводом мы создали второй канал для передачи сигналов. Первым каналом был сигнальный зелёный провод. И получается, что все сигналы приходили по первому каналу (зелёному проводу), а второй канал (красный провод) нужен нам только для того чтобы взять из выхода сигнал «S» и передать его себе же на вход. Тогда в комбинаторе снова появится сигнал «S», и комбинатор снова будет думать, что S>R, а значит на выход надо подать сигнал «S» чтобы электростанция была включена. А заодно сигнал «S» снова поступит на свой же вход по второму каналу (красному проводу), и снова всё повторится. И так будет продолжаться до тех пор, пока аккумулятор полностью не зарядится до установленного нами максимального уровня, а на вход не придёт сигнал «R» равный единице.
Посмотрите три состояния третьего комбинатора на схеме, далее мы это обсудим подробнее:
Как видно из схемы – зелёные стрелки показывают сигнальные зелёные провода и направление их сигналов. Красные стрелки, естественно – сигнальный красный провод. Всё, что на рисунке 18 изображено – это один и тот же третий комбинатор, в разных ситуациях.
Левый рисунок показывает, что из первого комбинатора на вход третьего комбинатора пришёл сигнал «S» по левому зелёному проводу. А по правому зелёному проводу сигнал «R» не пришёл, потому, что аккумулятор разрядился, а не зарядился. Соответственно, имеем S=1 и R=0. Отсюда выходит, что S>R, значит по условию комбинатор на выход подаст сигнал S=1. Так как на выход подключены два сигнальных провода: красный и зелёный, то сигнал «S» передастся на оба провода. По зелёному проводу сигнал «S» пойдёт включать электростанцию, а по красному проводу сигнал «S» вернётся на вход комбинатора (в текущей схеме, пока что, это нам не даёт ничего). Как только по зелёному проводу из первого комбинатора перестанет приходить сигнал «S» – для третьего комбинатора ничего не изменится, ведь по красному проводу по-прежнему приходит сигнал «S». А раз приходит только «S», но нет сигнала «R», то на выход справедливо поступит сигнал «S». И так он будет зациклен через красный сигнальный провод и комбинатор, выдавая на выход S=1 (а вот это нам уже что-то даёт – на зелёный провод из-за этого всегда поступает сигнал «S», значит электростанция всегда будет включена).
Рисунок посередине отображает переломную ситуацию, когда аккумулятор зарядился и второй комбинатор выдал сигнал «R» (мы помним из предыдущего рисунка, что с первого комбинатора уже давно не поступает сигнал «S», а вместо него используется зацикленный ложный сигнал «S»). Сигнал «R» поступил равный единице. А значит S=1 и R=1. «S» со значением 1 приходит по красному проводу, «R» со значением 1 мы получили только что по правому зелёному проводу. По условию S должен быть больше R чтобы на выход подать S=1. Но так как они сейчас равны, то на выход не поступит сигнал «S». Выход останется пустым. По зелёному сигнальному проводу не будет поступать сигнал – электростанция отключится от внешней электросети. По красному проводу не будет поступать зацикленный сигнал «S».
Правый рисунок показывает фактически тот же сюжет, что и на рисунке посередине, но теперь по красному проводу нет входящего сигнала «S» и в комбинатор приходит только сигнал «R» равный единице. А значит S<R, то есть условие не выполняется, на выход не поступает ни какой сигнал.
Что стало ясно из рассуждений про третий комбинатор:
- С помощью красного провода комбинатор был зациклен сам на себя и хранил одно и то же значение, то есть был простейшей ячейкой памяти.
- Приход другого значения нарушил условие зацикленности и сбросил хранимое значение.
- Комбинатор получил сигнал «S», транслировал его на выход и хранил его до прихода сигнала «R».
Теперь пришло время посмотреть на схему всех трёх комбинаторов в рабочем состоянии в зависимости от разряда/заряда аккумулятора:
На рисунке 19 всё просто.
Те, кто задремал, пока мы разбирались в работе третьего комбинатора, могут быстро наверстать упущенное посмотрев на все состояния нашей логической схемы. Как видно из рисунка, сигнал «S» подаётся на выключатель питания только в случае разряда аккумулятора до установленного нижнего уровня и при последующем заряде аккумулятора от включённой электростанции. После достижения максимального установленного заряда аккумулятора и при последующем разряде на выключатель питания не поступает никакой сигнал.
Итак, для того чтобы сигнал «S» мог включать/выключать подачу электричества от электростанции во внешнюю электросеть, наконец-то установим выключатель питания. Желательно поставить его в удобное место, чтобы легко дотягивались медные кабели от обеих опор ЛЭП, между которыми будет происходить соединение:
От выхода третьего сравнивающего комбинатора тянем сигнальный зелёный провод к выключателю питания:
Сразу щёлкаем по выключателю питания и производим настройки. Устанавливаем условие включения S=1. То есть, когда с выхода третьего комбинатора поступит сигнал «S» со значением 1, то это значит, что аккумулятор разряжен и требуется работа электростанции, и нужно включить выключатель питания.
Заметьте, что после подключения логической сети и выставлении условия срабатывания – вручную включать/выключать выключатель питания уже не получится. Теперь это будет делать автоматика.
Внимательно оценили взглядом все наши настройки, установки и соединения. Убедились, что ошибок нет, и приступили к соединению опор ЛЭП с выключателем питания медными кабелями. Для этого берём в руки медный кабель и щёлкаем им по той опоре, которая стоит возле комбинаторов, и дотянув кабель до выключателя – щёлкаем по нему. Затем щёлкаем по опоре возле аккумулятора и дотянув до выключателя снова щёлкаем по нему. Обе опоры ЛЭП соединены между собой через выключатель. Теперь вся автоматика настроена и подключена. Вот так выглядит наша схема с отображением сигналов и без отображения сигналов:
С этого момента работой нашей электросети управляет логика.
И вот, после очередной разрядки аккумуляторного блока автоматика включила электростанцию и аккумуляторы начали заряжаться, а электросеть получила стабильное электричество:
Краткий пересказ статьи для самых способных и одарённых.
В общем, дело так: надо поставить три сравнивающих комбинатора. Два снизу бок о бок. Попками вниз. Один поставить сверху, чтобы своей попкой на них смотрел. Потом надо взять зелёные провода из инвентаря. Если их там нет, то это фиаско, братан. Соединяем аккумулятор зелёным проводом с комбинаторами как на рисунке. Остальное тоже как на рисунке соединяем. Аккумулятор надо было поставить заранее где-то рядом, можно как на рисунке. Ещё красный провод берём и на верхний комбинатор накидываем сверху вниз или снизу вверх – это уже как звёзды покажут, или по настроению. Лишь бы как на рисунке.
Два деревянных столба ставим внизу и вверху как на рисунке. Но надо чтобы между ними проволока не появилась, а то всё зря. Когда верхний столб ставим, там надо чтобы он голубой поверхностью, которая от него расходится, на комбинаторы попадал. А когда нижний столб ставим надо чтобы аккумулятор тоже попал в голубую поверхность, которая от столба расходится.
Рядом выключатель ставим. К нему тоже проволоку надо прицепить как на рисунке.
Потом тупо каждый комбинатор открываем и туда копируем настройки с картинок. Потом выключатель открываем и тоже копируем настройки.
По идее так заработает.
Вот ещё картинка, можно выучить что как, потом где-то ляпнуть, типа умный.
Заключение.
Для кого-то настройка и понимание логических сигналов может быть сложным делом, кто-то разбирается в этом легко. Я надеюсь, что смог в этой статье хоть немного разжевать работу простейшего логического устройства. Если у меня всё же не получилось, то советую внимательно прочитать всё с самого начала ещё раз. Если снова мне не удалось, то нет, читатель не глупец, это просто я не очень громко объяснял – открывайте и читайте выразительно, моим голосом, с интонацией. Обязательно должно дойти.
И не путайте: никакой проволоки и никаких проводов на столбах – на опорах ЛЭП медные кабели, а между комбинаторами сигнальный зелёный провод и сигнальный красный провод.
Чертежи.
К этой статье прилагается чертёж той самой логики, которая разбирается в статье. Это не самый красивый и эстетичный чертёж, так как создавался он для простоты визуального восприятия. Каждый игрок, разобравшись, сможет самостоятельно переделать эту схему в более компактную.
Для желающих прилагаются два чертежа: «Солнечные панели в сетке дронстанций» и «Аккумуляторы в сетке дронстанций» для использования игроками при игре с сеткой дронстанций. Почитать про сетку дронстанций в Factorio можно здесь.
-----------------------------------------
Прямая ссылка на чертежи из статьи: https://t.me/format_aa/203
☕️ Если вы хотите угостить меня кофе или вкусняшкой за старания, сделать это можно с помощью доната: https://boosty.to/format_aa/donate
-----------------------------------------
Подпишись на канал и узнавай больше +
#Формат_АА
#Factorio
#схемы
#чертежи
#комбинатор
#аккумулятор
#логика
#автоматика