Автоматика

Статья описывает азы автоматики и предназначена как для начинающих игроков, так и тех кто хочет освежить свои знания.

Автоматика в игре действует немного иначе, чем в реальной жизни. Так например выходы нескольких датчиков можно объединять, ибо логический «0» означает отсутствие «1» на датчике (в реальной электронике логический «0» - подтяжка выхода микросхемы к земле и выходы датчиков/микросхем нельзя параллелить).

В статье я буду менять состояния входов циклическим сенсором (чаще всего с интервалом 2с активен, 2с неактивен), а состояния входов/выходов отображать лампочками.

Я не стал применять игровые термины "зеленый сигнал" и "красный сигнал", т.к. это не совсем верно. Все кто немного знаком с электроникой применяют "Таблицы истинности" и понятия логическая "1" и "0". Также для упрощения я не буду писать логический "0" и логическая "1", а просто 0 и 1.

Статья будет дополняться.

## Параллельное соединение

На скрине показано параллельное соединение нескольких выключателей. На проводе будет 1, если хотя бы один из выключателей/датчиков подает 1 (активный сигнал).

## НЕ-гейт

Этот элемент инвертирует сигнал (меняет 1 на 0 и наоборот 0 на 1) со входа на противоположный. Например, в схеме со сканером метеоритного дождя - сканер будет подавать 1 при начале дождя и двери нужно закрыть, т.е. подать им 0.

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

## И-гейт, ИЛИ-гейт, исключающее ИЛИ

И-гейт подаст 1, только если1 будет на обоих его входах (рис.1).

ИЛИ-гейт подаст 1, если 1 будет на любом его входе или на всех сразу (рис.2). Почти бесполезный элемент, т.к. тоже самое можно получить просто объединив несколько датчиков или выходов других элементов (рис.3).

Исключающее ИЛИ (рис.4) подаст 1, только если 1 будет на одном из его входов. Если на обоих входах будет 1, на выходе будет 0. Аналогично при обоих нулях на входах.

## Буфер, фильтр

Буфер (рис.1) подаст 1 на выход, сразу после появления 1 на входе, и будет продолжать подавать 1, после появления 0, в течении 2 сек (на гифке). Задержка меняется от 0,1 до 200сек.

Фильтр (рис.2) подаст 1 на выход, только после задержки (2 сек на гифке) после появления 1 на входе, и сразу подаст 0, поле появления 0 на входе. Задержка меняется от 0,1 до 200сек.

## Последовательное соединение

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

Если максимальной выдержки в 200сек, задаваемой буфером недостаточно, их можно соединять последовательно (рис.2.). Тоже относится и к фильтрам.

## Ячейка памяти

Ячейка памяти (триггер) подаст 1 на выход, когда получит 1 на вход. Для этого достаточно даже кратковременного сигнала (импульса).

Это состояние (1 на выходе) будет сохраняться до тех пор, пока на порте сброса (нижний на скрине) не появится 1.

Этот элемент используется например в механизмах, которым нужно задать диапазон работы. На скрине показан ледо-о-дуй (расположен на двери), работа которого разрешается при достижении высокой температуры и запрещается при низкой температуре (30 и 20°С в примере).

## Шины

Логическая шина служит для передачи нескольких сигналов по одному проводнику. Это может сэкономить место и материалы, если вам нужно передать сигнал с нескольких датчиков/выходов на большое расстояние или вы хотите построить сложную схему. С логической шиной напрямую может работать лишь один элемент - Индикаторная сборка.

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

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

И считыватели и записыватели не обязательно применять по 4 штуки, их может быть и 3 и 2 и даже 1. Боле того, записывателей может быть сколько угодно, если это не помешает логике работы. Количество считывателей неограниченно ничем.

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

Обычные элементы (И, ИЛИ, НЕ, датчики, выключатели и т.д.) работают с шиной также, как и с одиночным проводом (нижний скрин).

На выходе фильтра или буфера (см. скрин), появится 1, если она появится на входе любого проводе шины.

Битовый сдвиг можно получить с помощью записывателя, если выбрать в его меню 2-й порт.

Ознакомится с шиной подробнее вам поможет этот топик.

## Диод

Записыватель может использоваться как диод, т.е. пропускать "1" в одну сторону. На скрине левый выключатель управляет левой и центральной лампой, но не правой. И наоборот.

То же самое, но дешевле, можно достичь с помощью ИЛИ-гейта (предложил Prince Mandor), если другие элементы в схеме не помешают (расположить ИЛИ-гейт размером 4х4 бывает сложнее, чем два записывателя 2х1).

## Генераторы

Подавать (менять) сигнал с 1 на 0 циклично можно с помощью циклического сенсора (рис.1). В его настройках можно выбрать длительность 1 и нуля. Но его нельзя отключить ни автоматикой, ни через меню. Да, можно прервать передачу сигнала дальше, с помощью И-гейта, но сам сенсор продолжит противно пищать и мигать.

Этого лишена схема на дискретных элементах: буфере, фильтре, НЕ-гейте (рис.2). Одним из элементов (в зависимости от того где снимать сигнал) задается длительность 0, другим 1. Подачей 1 с датчика схему можно остановить (рис.3), а её состояние (0 или 1) будет зависеть от того, куда подать 1.

Генератор (рис.4) отличается тем, что 1 он выдает импульсно. Этого времени не хватит для работы механизмов, но достаточно чтобы переключить ячейку памяти.

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

В некоторых случаях вместо подачи постоянного сигнала (1 или 0) с выхода датчика/схемы, нужно подать короткий импульс (определенной продолжительности). Для этого служат 2 эти схемы (2-я тоже что и 3-я), отличия которых в том, что первая подает импульс по спаду сигнала, а вторая по фронту.

В момент появления 1 на входе схемы, на выходе продолжает оставаться 0, а 1 появится только после появления 0 на входе. Эта 1 будет длиться столько, сколько задано в настройках буфера. Таким образом схема реагирует импульсом на спад (переход с 1 на 0) на её входе.

Можно заметить, что схема на долю секунды все же реагирует на приход 1. Это происходит из-за несовершенства игровой механики (подробнее описано в НЕ-гейте). Обычно это не представляет проблемы, но этого «глюка» хватит, что бы переключить ячейку памяти.

Вторая схема работает аналогично, с той лишь разницей, что реагирует она на появление 1 на входе моментально, а на выходе 1 сменится на 0 спустя заданное время.

Третья схема аналогична второй, но не позволяет задать длительность мипульса.

## Счетчики

Этот элемент считает поступившие 1 на его вход и отображает на своем табло. По достижении заданного в его настройках числа, он подает сигнал на выход. Этот сигнал может быть подан на вход следующего счетчика. Таким образом один счетчик считает до 9-ти, два до 99-ти и т.д.

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

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

## Мультиплексор, демультиплексор

Мультиплексор служит для подачи сигнала с одного из его входов, на его единственный выход. Это могут быть сигналы с разных датчиков (как на рис.1) или выходы других схем и/или построек. То какой вход будет выбран для трансляции, зависит от состояния 2-х управляющих входов: 0 на обоих - на выходе сигнал от первого входа (датчика); 1 и 0 - от второго входа; 0 и 1 - от третьего, 1 и 1 от четвертого.

Демультиплексор действует наоборот - он подает сигнал со своего входа на один из выходов, в соответствии с состоянием управляющих входов (рис.2).

## Прочие элементы

Сенсор микробов - нужен для измерения кол-ва микробов в газах и жидкостях. В режиме игры "без напряга" вам не потребуется.

Жидкостный сенсор - вроде бы нужный сенсор, но применяется крайне редко.

КПП дубликанта - прекрасно заменяется обычными дверями, которые к тому же, не требуют энергии.

Автооповещатель и Музыкальный молоток могут применяться по желанию, для информирования о тех или иных событиях.

Мосты не задают приоритет как жидкостные или газовые, я служат лишь для прокладки одних проводов над другими без соединения. Как и все другие виды, логические мосты проводят тепло. Это нужно учитывать и применять при построении схем.

## Практические схемы

На рис.1 показано подключение датчика дубликантов – лампа включиться как только дубликант попадет в радиус её действия (7 клеток по горизонтали и 5 по вертикали). Более точно определить положение дубля можно с помощью нажимной пластины. Она же поможет понять наличие животного или любого груза на ней.

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

На рис.3. датчик газа и давления подключены через И-гейт. Насос заработает только если будет нужный газ И его давление будет достаточным.

Отключение генератора с помощью смарт-батареи служит для экономии топлива, что бы генератор не работал вхолостую.

Тремосенсор трубы запретит работу ТВР если температура воды опуститься ниже его настройки (14°С): выше - работает, ниже - ждет пока вода согреется. Иначе ТВР может охладить воду ниже 0°С и труба сломается.

Работа ТВР и прочие способы борьбы с температурой рассмотрены этой статье.

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

Таймер на интервал времени, больший чем может дать буфер (200 сек), изображен на скрине.

Временной интервал ничем не ограничен, и зависит от длинны трубы и настройки вентиля.

На скрине показан генератор случайных чисел.

Он таковым не является, т.к. его последовательность предсказуема, но для некоторых применений сгодится.

На этом скрине показан сбрасыватель существ, на 2-х разных датчиках: нажимной пластине и датчике животных.

Установки сенсоров по умолчанию.

Некоторые постройки, например энтропийник или ящик для растений не имеют порта для отключения.

В таком случае постройки можно отключить разместив её на механическом шлюзе.

Фильтр на сенсоре элемента трубы показан на рис.3. В настройках сенсора выбирается нужный газ и он пойдет в правую трубу. Недостаток серьезный - при пропадании напряжения, весь газ уйдет в главную трубу.

Датчик забитой трубы определяет, забилась ли труба.

На сенсоре выбирается нужный газ. В обычном режиме, газ идет, по правилу моста по главной трубе (левая на рис.1), и только если отходящая труба забилась, газ пойдет в правую трубу, через датчик. Датчик, через НЕ-гейт, отключит например лизерку (на скрине включает лампы).

На правом скрине показано тоже самое, но в более компактном виде.

На левом скрине показан индикатор, который я уже применял как градусник, а на правом индикатор мощности:

Здесь показаны 3 вида дверных сжимателей: классический на буферах и фильтрах, на жидкостных трубных датчиках и на нажимных
пластинах. Все они имеют свои недостатки и показаны лишь как пример того, что одну и туже задачу можно решать по разному.

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

В конце не будет никакой большой схемы.

Как правило 100500 датчиков/гейтов говорит лишь о чрезмерном не нужном переусложнении схемы, а не мастерстве автора. Ведь даже ракетную автоматику можно построить всего из 1-го НЕ-гейта и нескольких И-гейтов:

Но есть и исключения: