Гайд по автоматизации атмосферы

## Изменения

Я Добавил реализацию на микропроцессоре.

**Внимание! В связи с последними изменениями игры предыдущие версии методов контроля состава воздуха не работают - могут взорваться. Замените приточную вентиляцию на регулятор давления газа и пассивную вентиляцию согласно схемам ниже. Красным цветом выделены обновления предыдущих схем.**

Дело в том, что теперь воздушные фильтры имеют ограниченную скорость фильтрации газов, а  **вентиляции** не контролирует внутреннее давление. Результат - накопление газов и взрыв.

Удалил один из методов: больше оборудования + дополнительные 500 Вт электричества.

Начат гайд по новому оптимизированному методу.

## Задача

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

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

## Автоматизация температуры

1. Установить нужное количество обогревателей и охладителей воздуха (не забыть подключить охладители к внешним газовым радиаторам). Кондиционер в данном гайде я не использую, так как температура на нём задаётся только вручную. Из-за относительно высокого энергопотребления обогревателей может понадобиться подключить обогреватели, охладители, датчик и автоматику на отдельную линию питания через маленький трансформатор.
2. Установить газовый датчик и регулятор (логический переключатель в режиме Dial). Подписать. С помощью отвёртки установить максимальное значение температуры на регуляторе, скажем, в 50 градусов.
3. Собрать схему автоматизации.
4. Схема использует так называемый гистерезис для управления температурой. Допустим задана температура T и величина гистерезиса 2 (можно установить любое в памяти). При нагреве помещения (датчика) до температуры T + 2, включаются охладители и охлаждают помещения до температуры T, затем выключаются. Аналогично, при охлаждении до T-2 включаются обогреватели и нагревают помещение до Т. Таким образом температура удерживается на отметке Т ± 2.
5. При сборке схемы внимательно следите за номерами (маркировкой) входов чипов.
6. Если на Вашей базе не используются охладители или обогреватели можно не делать соответственно верхнюю или нижнюю часть схемы.
7. Полезно было бы еще поставить чипы-повторители перед чипами множественной записи и включать/выключать их. Это полезно для развязки схемы. Дело в том, что схемы лучше соединять дешевыми обычными проводами, а нагревательное оборудование - дорогими силовыми кабелями. Обычный кабель может сгореть от мощностей нагревателей.

### Дополнительная система обогрева

1. Устанавливаем снаружи базы Печь или Газовый генератор.
2. Устанавливаем внутри базы радиаторы, соединяем их трубами с выходом печи или генератора.
3. Устанавливаем газовый электровентиль между радиаторами и печью.
4. Устанавливаем в схему выше чип записи. На вход подаём сигнал включения обогрева (c Compare unit), на выход - электровентиль с параметром On.
5. Если печь топится и вентиль открыт, радиаторы нагреваются до высокой температуры, обеспечивая мощный нагрев помещений (аккуратно, что-то может расплавиться). Электрические нагреватели при этом работают гораздо меньшее время, существенно экономя электричество.
6. В данном случае требуется **топить печь очень аккуратно**, так как при высоком давлении и температуре даже при перекрытом вентиле в радиаторах остаётся много тепла, и оно нагревает помещение слишком сильно.
7. Для решение проблемы из пункта 6 можно до и после радиаторов установить регуляторы давления, а также пассивную вентиляцию после радиаторов (вентиляцию лучше немного отвести от базы, так как перегретый газ может повредить стены). Это обеспечит циркуляцию газов в радиаторах и не позволит набираться большому давлению. Вентиль в этом случае не понадобится - можно управлять через регулятор давления. Этот метод более реалистичен, но в данной игре менее эффективен.
8. Аналогичную систему можно построить и для охлаждения, только вместо печи будет пассивная или активная вентиляция, или наружные радиаторы, или всё вместе. С вентиляциями, конечно, работает только на Марсе. Система не очень эффективна, зато не тратит электричества.
9. При желании можно заменить чип чтения на чип множественного чтения, чтобы получать среднюю температуру по базе. Но делать это надо аккуратно. Как минимум, изолировать логическую схему от датчика (датчиков) шлюза чипом повторителя.

## Автоматизация состава воздуха и давления - вариант первый

### Базовое оборудование - система фильтрации

Для начала установим начальное оборудование, одинаковое в обоих методах.

1. Собрать следующую воздушную систему. При сборке оставить место для дополнительного оборудования, смотрите схемы ниже.
2. Стрелки на схеме показывают направление перекачки воздуха.
3. Воздух в систему закачивается тремя способами
	* из помещения через регулятор давления газа. Основной постоянный источник.
	* из печи. В печи можно плавить оксит, лёд или летучие вещества. Также, в печи можно сжигать летучее вещество с целью получения углекислого газа. Для этого надо ещё установить на выходной трубе печи регулятор давления (чтобы газы не утекали) и завести во входную трубу кислород. Примеси токсинов при горении системе не навредят. В случае сжигания газов печь устанавливать на улице, так как она огнеопасна. Газы сжигать осторожно, при неправильном сжигании можно перегреть воздух базы.
	* из наружной атмосферы с помощью насоса (можно заменить на активную вентиляцию). Медленный, зато стабильный источник углекислого газа (в случае Марса). При этом насос, даже если выключен, работает ещё как клапан, не позволяя воздуху с базы уходить наружу. Учитывайте, что температура закачиваемых газов достаточно низка.
4. Входной поток откачки воздуха не регулируется. Потенциально возможно создание вакуума в зоне работы вытяжной вентиляции. Хотя из-за низкой производительности фильтров этого происходить не должно. Если Вы всё же хотите регулировать входной поток, как раньше, в старой версии гайда, замените один регулятор давления газа на два регулятора обратного давления по следующей схеме.   Первый регулятор выкачивает воздух, пока в ячейке не останется 90 кПа (можно настроить). Второй - перекачивает воздух обратно, если в трубе больше 200 кПа. Это контрпродуктивно и требует +100 Вт энергии, поэтому в верхнюю схему эта подсхема не вошла. Экономным игрокам можно просто оставить только пассивную вентиляцию для фильтрации под естественным давлением. Однако, приведенная схема с двумя регуляторами позволяет не выкачивать воздух при слишком низком давлении, что ускоряет восстановление давления.
5. Входящий воздух разделяется на компоненты воздушными фильтрами. Отфильтрованный чистый газ закачивается в свой газовый резервуар, Остальные газы возвращаются во входную трубу и обрабатываются другими фильтрами. При желании можно заменить какие-то малые резервуары на большие. Резервуары, как и всю систему, рекомендую размещать внутри помещения, чтобы не терять температуру газов. Особенно это касается воды, которая без подогрева пойдёт к растениям. Исключение может составить резервуар с летучим веществом, который можно размещать везде.
6. От резервуарам идут трубы к потребителям газов (гидропоника, заправка скафандра, баллонов и т.д.)
7. Токсины после отфильтровывания выбрасываются в наружную атмосферу.
8. На каждом резервуаре установлен газовый манометр для контроля запасов. Рекомендую манометры вывести отдельными трубами куда-нибудь на удобное место - чтобы можно было всегда подойти и посмотреть показания.
9. Всё оборудование на схеме должно быть постоянно включено. Понятно, что без применения описанных ниже методов, это приведёт к полной откачке воздуха с базы, так как в системе пока нет приточной вентиляции.
10. Рекомендую в любом месте базы установить газоанализатор, подключённый одной трубой к пассивной вентиляции. Это позволит удобно контролировать реальный текущий состав воздуха, без использования планшета.
11. В любом удобном месте базы (имеющим прямое электрическое подключение к системе выше) установить 4 регулятора (логический переключатель в режиме Dial):
	* **Маркировка**: Давление x10 кПа **Предел регулировки**: 10 - 100 **Пояснение**: регулировка давления воздуха в десятках кПа, то есть значение 10 означает 10 х 10 кПа = 100 кПа = 1 атмосфера. Значение 20 - две атмосферы, 5 - пол атмосферы, 0 - откачать воздух. Так как регулятор может задавать значения только от 1 до 100 с шагом 1, приходится применять такие вот единицы измерения.
	* **Маркировка**: Мощность вентиляции кПа **Предел регулировки**: 10 - 100 **Пояснение**: регулировка воздушного потока активных вентиляций воздуха. Вытяжные вентиляции будут выкачивать воздух до установленного выше давления минус этот параметр, а приточные, наоборот, нагнетать воздух до установленного давления плюс этот параметр. Если задано давление 100 кПа (настройка 10) и мощность 10 кПа, то около вытяжной вентиляции будет давление 90 кПа, около приточной 110 кПа. То есть на базе удерживается давление 100 ± 10 кПа с ветрами (сквозняками) от перепада давления в 20 кПа. Чем выше параметр, тем активнее идёт перемешивание воздуха на базе и его фильтрация. На скорость нормализации состава атмосферы влияет не всегда. При установке в 0 со временем прокачка и фильтрация воздуха прекратится. Консоль с платой управления атмосферой использует эквивалент данного параметра со значением 2.
	* **Маркировка**: Процент азота **Предел регулировки**: 10 - 100 **Пояснение**: для второго метода удобнее задать процентное содержание азота, а не кислорода. Процентное содержание кислорода будет получено автоматически. процент кислорода = 100% - процент азота - процент углекислого газа
	* **Маркировка**: Процент углекислого газа Х 0.1% **Предел регулировки**: 10 - 100 **Пояснение**: регулировка требуемого процентного содержания углекислого газа. По причинам, описанным выше, в регуляторе давления, мы будем задавать параметр в десятых долях процента, то есть настройка 10 означает 10 \* 0.1% = 1%

### Несколько замечаний

1. Возможна ситуация, когда азот или углекислый газ заканчиваются, а требуемый состав воздуха не достигнут. В этом случае недостающие газы замещаются кислородом. Соответственно, получить точный состав атмосферы при этом не получится.
2. При недостатке кислорода, и, следовательно, невозможности достигнуть нужного давления, система полностью прекращают работу, даже если есть другие газы. Помимо прекращения нормализации состава воздуха, прекращается также фильтрация углекислого газа и токсинов. Поэтому, НИКОГДА НЕ УСТАНАВЛИВАЙТЕ ДАВЛЕНИЕ ВЫШЕ, ЧЕМ МОЖЕТ ОБЕСПЕЧИТЬ ЗАПАС КИСЛОРОДА (и других газов). Если уровень запасов кислорода низок, необходимо срочно его пополнить.
3. Нормализация состава воздуха происходит достаточно медленно.
4. Вытяжную и приточные активные вентиляции (приточные мы ещё не устанавливали) лучше установить подальше друг от друга (хотя бы в разных концах комнаты) для лучшей циркуляции воздуха. Я устанавливал приточные вентиляции на первом этаже, вытяжную над ними - на втором. Это обеспечило движение потока от приточных вентиляций к вытяжной через всю базу.
5. Установка дополнительных вентиляций на базе улучшит циркуляцию воздуха, но потребует дополнительных чипов в случае необходимости регулировки давления.
6. Маленькая хитрость. Если всю систему подключить через источник бесперебойного питания или маленький трансформатор, то при настройке чипов арифметики автоматики список видимых устройств будет гораздо меньше, что упростит поиск нужного.
7. Можно дополнительно на трубы, ведущие к резервуарам, установить радиаторы. Это позволит газам внутри резервуаров медленно нагреваться или охлаждаться до температуры окружающего воздуха.

### Метод автоматизации на активных вентиляциях

#### Оборудование

1. Схема оборудования.
2. По схеме видно, что для каждого газа установлена отдельная вентиляция, без использования смесителей и дополнительных регуляторов давления.
3. Регулировка состава воздуха осуществляется следующим образом. Если процент азота меньше установленного, включается АВА, добавляя азот в воздух, при этом АВК (вентиляция кислорода) выключается. Если наоборот, азота больше, чем надо, АВА не работает, а работает АВК, добавляя кислород. Со временем лишний азот из воздуха отфильтровывается. Всегда включена одна из вентиляций АВА или АВК, это нужно для поддержания давления. Абсолютно аналогично работает регулировка углекислого газа.
4. Постоянно должны быть включены все фильтры и АВВ. АВА, АВУ и АВК будут включаться автоматикой.
5. Вытяжную вентиляцию (АВВ) установить в режим OUTWARD (красный), приточные (АВК,АВА и АВУ) в режим INWARD (синий).
6. Газовый датчик ГД обязательно устанавливать как можно ближе к приточным вентиляциям, так как иначе в комнате может образовываться очень неправильный состав газа и система не будет работать вообще, или, по крайней мере, эффективно.
7. Из-за особенностей обработки атмосферы нельзя устанавливать все три приточные вентиляции в одной клетке - они будут перебивать друг друга.
8. Контроль давления осуществляется установкой ограничения внешнего давления для вентиляций (параметр PressureExternal). Из-за того, что всё время работает одна из вентиляций, давление удерживается в заданном диапазоне. Ограничение давления устанавливается на все вентиляции для того, чтобы ни одна из них не превысила допустимых пределов.

#### Автоматика - электрическая схема

1. Собираем следующую схему
2. Аналогично первому методу, настройка давления умножается на 10, вычисляются минимум и максимум давления и записываются в вентиляции. В р
3. Далее, с газового датчика считывается текущая доля азота в воздухе (параметр RatioNitrogen) и умножается на 100 для получения процентов.
4. Полученный процент сравнивается с заданным регулятором (операция "меньше"). Результат сравнения записывается в вентиляцию азота АВА параметр On (включает и выключает вентиляцию).
5. Из-за постоянного перемешивания воздуха и в целях упрощения схемы, гистерезис тут не реализован.
6. Для углекислого газа схема полностью аналогична схеме для азота с той только разницей, что значение регулятора углекислого газа надо дополнительно поделить на 10.

## Автоматизация состава воздуха и давления - вариант второй, оптимизированный и экономичный.

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

Итак, метод для тех, кто не хочет каждые 2 часа менять малые фильтры или тратиться на большие фильтры.

### Схема оборудования

1. Схема отличается от схемы предыдущего метода только забором газов. Этот вариант - улучшение метода выше. Замечания для предыдущего метода во многом верны и для этого.
2. Я полностью отказался от каких-либо насосов, вентиляций и регуляторов. Фильтрация происходит под естественным давлением в комнате (конечно, в зоне забора давление падает). Опыт показал, что фильтры достаточно неплохо справляются и без повышенного давления в трубе. Таким образом, имеем минус 100 - 200 Вт потребления.
3. Выделенные зелёным фильтры мы будем включать и выключать автоматикой. Не из экономии энергии - 5 Вт всё же крохи. Из экономии фильтров. Ну и плюс контроль давления.
4. При избыточном давлении включаются оба фильтра: кислородный (ФК) и азотный (ФА) (другие газы не в счёт - их мало). Из помещения отфильтровываются газы - давление падает. Затем состав воздуха приводится к норме описанными ниже методами (мы ведь фильтровали в пропорции 50 на 50 %).
5. При недостаточном давлении фильтры не работают, а включаются вентиляция азота (ВА) и вентиляция кислорода (ВК). Если в баках достаточно газов, давление вырастет. Затем опять же идёт выравнивание состава. Чтобы вентиляции и фильтры не включались постоянно, допускается разброс давления в пределах мощности потока.
6. При избытке азота, очевидно, будет недостаток кислорода. В этом случае включается ФА и ВК. Азот удаляется, кислород добавляется - состав выравнивается.
7. При недостатке азота (он же избыток кислорода) включается ФК и ВА. Теперь уже азот добавляется, кислород удаляется. Опять же, допускается некоторая погрешность состава, иначе оборудование будет работать всегда.
8. С углекислым газом аналогично. Если его мало - работает ВУ, если много - ФУ.
9. Для воды, токсинов и летучих веществ фильтры можно вообще никогда не выключать. Если в воздухе есть данные вещества, их надо отфильтровать полностью, если веществ нет, фильтр не тратит ресурс расходников. А потребление 15 Вт это очень мало.
10. Не забудьте установить регуляторы по описанию выше.
11. Минусом схемы является то, что к фильтрам нельзя подключить дополнительные источники газов - печи и внешние вентиляторы. Клапанов у нас, к сожалению, нет. Придётся ставить на печи отдельные фильтры, а неопасные газы просто выпускать в комнату.

### Схема автоматизации на чипах

1. Собираем схему. Она получилась не такой большой.
2. С газового датчика считываем текущее давление и сравниваем его с вычисленными порогами установленного давления. Верхний предел записываем в приточные вентиляции. Нижний предел никуда не записываем. Здесь и далее мы будем вычислять управляющие сигналы в выделенных зелёным чипах. Впоследствии мы будем использовать эти сигналы в логическом контроллере.
3. Вычисляем разницу текущего и установленного процента для азота и углекислого газа. Эта разница понадобится нам позже.
4. При желании можно заменить чипы чтения на чипы множественного чтения, чтобы получать средние значения давления и процентного состава по базе. Но делать это надо аккуратно. Как минимум, изолировать логическую схему от датчика (датчиков) шлюза чипом повторителя.
5. При желании обработка азота легко меняется на обработку кислорода, если кому-то так проще. Надо только учесть это в программе (просто поменять местами оборудование азота и кислорода).
6. Вся остальная логика реализуется в логическом контроллере.

### Программа №1 логического контроллера

1. Состояние азота и углекислого газа (низкий, нормальный или высокий уровень) определяется оценкой разницы процентных отношений. Если разница меньше 0 - уровень низкий, если больше некого порога - высокий. Если от 0 до этого порога - нормальный.
2. В начале идёт последовательная проверка условий - низкое и высокое давление, низкий и высокий азот (шаги 1-4). Если какое-то условие выполняется - включается и выключается нужное оборудование и дальше сразу переходим к проверке углекислого газа. Остальные условия в этом случае не проверяются. Это нужно, чтобы условия не конфликтовали и не переключали каждый раз оборудование.
3. Если условие шага на шагах 1-4 не выполняется, проверяется следующее условие. Если все условия не выполнены (везде ветвь "иначе"), значит у нас всё в порядке, переходим на шаг 5 и выключаем оборудование. Можно было бы здесь проверить кучу условий, но если программа дошла до этого шага, то они и так уже проверены.
4. Обратите внимание, при регулировании баланса азот-кислород проверяются запасы газов, если запасов нет - регулирование не производится, так как оно бессмысленно.
5. С углекислым газом аналогично. Что-то не в порядке - включаем оборудование. Всё в порядке - выключаем.
6. В данной программе стоит приоритет давления. Если давление не нормальное, состав воздуха не регулируется, а даже наоборот - портится. То есть сначала нормализуется давление и только затем состав. Это минус схемы.

### Программа №2 логического контроллера - альтернативная

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

1. Программа немного больше предыдущей.
2. Главное отличие - при пониженном или повышенном давлении обрабатываются дополнительно условия на состав воздуха.
3. Если, например, давление низкое и повышенный уровень азота, давление стабилизируется только добавлением кислорода. Это позволяет одновременно нормализовать давление и исправить состав воздуха, не прибегая к неэффективному регулированию состава после достижения нужного давления.
4. Обратите внимание, в программе не используется допуск нормального состава (0.5%) при обработке низкого и высокого давления. Дело в том, что одна из вентиляций (или фильтров) всё равно работают при проблемах с давлением. Допуск в 0.5% вводился, чтобы был диапазон нормального состава, при котором всё оборудование выключено. При неполадках с давлением нормальный состав обрабатывать необязательно (оборудование всё равно работает) - допуск не нужен. Особо педантичные могут вместо 0 поставить 0.25, чтобы регулировать состав не на нижней границе диапазона, а в центре.
5. При обработке давления проверяются запасы. Если запасов газов нет, шаги 1 и 2 не срабатывают, а срабатывает шаг 3 - включаются обе вентиляции и добавляется тот газ, который есть.
6. На практике при низким или высоком давлении вениляции (фильтры) кислорода и азота будут постоянно включаться и выключаться, сменяя друг друга. Это происходит от того, что добавляя (откачивая) один газ мы нарушаем состав воздуха, но делаем это достаточно эффективно - оборудование будет включаться примерно пропорционально установленному составу воздуха, постоянно восстанавливая баланс.
7. При нормальном давлении процент азота обрабатывается также, как в первой программе. Углекислый газ тоже.
8. При срабатывании одного из условий, остальные не обрабатываются - в этом нет смысла.
9. При ложности всех условий всё оборудование выключается.

## Реализация на микропроцессорах

Использование микропроцессоров имеет ряд преимуществ. Главное из них - малое количество и малый размер оборудования. С другой стороны процессоры относительно дороги - они в прямом смысле золотые (электрумные).

### Установка и настройка оборудования.

Удобством процессора для данной задачи будет полное отсутствие чипов. Для полной автоматизации (включая температуру) нам понадобится: 3 микропроцессора, 3 сокета, , 1 компьютер с платой программирования, 2 трансформатора (для включения нагревателей и охладителей). Компьютер потом можно будет использовать для других целей - сейчас он нужен только для настройки. Один из процессоров обеспечивает чисто независимый контроль температуры. Его можно исключить, если хотите. Всё устанавливаем и подключаем к остальному оборудованию. Все обогреватели и охладители подключить на две отдельные электрические линии (обогреватели на одну, охладители - на другую). Подключить эти линии через трансформаторы. Тут они будут работать в качестве выключателя. Не забудьте установить мощность на трансформаторах. Все обогреватели и охладители нужно включить. Сокет с процессором надо располагать до трансформаторов, вне отдельных линий.

Я буду реализовывать самые последние алгоритмы из тех, что описаны выше.

Каждый процессор имеет 6 портов ввода/вывода, поэтому распределим порты следующим образом.

Сокет 1 (главный) - производит вычисления для контроля давления и состава воздуха
 d0
 d1
 d2
 d3
 d4
 d5

Сокет 2 - переключает фильтры и вентиляции
 d0
 d1
 d2
 d3
 d4
 d5

Сокет 3 - производит контроль температуры
 d0
 d1
 d2
 d3
 d4

### **Готовые программы**

Большой плюс метода - программы не надо переписывать и даже можно не копировать.

Вот здесьhttp://sc1363bykova.usite.pro/files/scripts.zip можно взять **готовые программы.** Архив распаковать в папку **Мои документы/My Games/Stationeers/scripts/**. Затем в игре через компьютер войти в меню Edit, нажать кнопку библиотека и импортировать нужную программу. Повторить для каждого процессора. Если программы не появились, перезагрузить игру.

Для интересующихся в папках программ есть обычные текстовые файлы - там программы с комментариями, в рабочие программы комментарии помещаются плохо.

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

### Пояснения работы.

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

Главная фишка в том, что полученные результаты будут записываться в параметр Setting Сокета 2. Так как по логике схемы оборудования фильтр и вентиляция одного газа не могут включаться одновременно, введём кодировку состояний для каждого газа: 0 - оборудование выключено, 1 - включен фильтр, 2 - включена вентиляция. Коды состояний запишем подряд по схеме "код кислорода код азота код углекислого газа" без пробелов. Получится трёхзначное число, определяющее состояние всего оборудования. Например, код 121 означает, что включены фильтр кислорода, вентиляция азота и фильтр углекислого газа. Благо в процессоре мы избавлены от многих минусов чипов и контроллеров, а лишний десяток строк - не так много (хотя первая программа по объёму помещается с трудом).

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

Программа для терморегуляции полностью повторяет схему на чипах, разве что теперь я использовал трансформаторы для включения оборудования.