Поэтому программное обеспечение — что в виде электрической схемы, составленной из операционных усилителей, что в виде нулей и единиц в памяти цифрового компьютера — постоянно эволюционировало. Так, для аналоговых программ в начале работ по автоматизации еще не было устоявшейся системы разделения алгоритмов по блокам. Некоторые конструктора пытались создать для каждой установки, что они собирали из "кубиков", одну большую управляющую схему, куда заводили все сигналы от датчиков и затем набором операционников пытались выудить из нее нужные управляющие сигналы для приводов исполнительных устройств — двигателей и электромагнитов. Вот это мне как-то не понравилось — большинство попыток создать монолит заканчивалось тем, что его просто переписывали под модульную структуру, которую хоть как-то можно было сопровождать — отлаживать отдельные ошибки или расширять алгоритмы обработки. Для небольших схем это еще как-то могло сработать, но, раз мы создавали Систему, то ее надо было создавать не только в части железа, но и в части схем управления. Поэтому я хотел разбивать все на блоки с самого начала. Но тут меня раз за разом малость обламывали, создавая вполне рабочие агрегаты с единым управляющим блоком — просто на тот момент, в начале сорок третьего, мы еще не дошли до комплексных систем, требовавших сложного управления — все наши помыслы были направлены на то, как бы побыстрее все размолоть, навесить и смешать, а потом спечь или выпарить — просто не где было появиться заковыристым алгоритмам. Так что мне оставалось только терпеливо ждать, когда наши задачи дорастут до достаточно высокого уровня, требующего набора подсистем.
Например, то же устройство для подготовки смесей. Весы являются аналоговым прибором — тут спора нет. А вот задание набора смешиваемых веществ, точнее, контейнеров, из которых будут смешиваться вещества — это уже дискретный набор данных, он прерывист и скажем, десять миллиграмм из контейнера номер один никак не зависят от пятнадцати миллиграмм из контейнера номер два.
— … То есть подходы разные! И как вы это запихнете в одну схему? Явно надо делать отдельные блоки. — продолжал я свою мысль.
— Н-н-н-уууу…. Их ведь все-равно надо подавать последовательно, соответственно переключим вход на другой резистор, задающий вес из второго контейнера.
— Вот! А как переключите?
— Поставим компаратор, и как только сигнал от весов сравняется с сигналом от резистора первого контейнера — сработает реле или сразу электромагнит и, допустим, механический переключатель переключит вход на второй резистор.
Мда… вывернулись… Компараторы сигналов у нас были — в обратную связь операционного усилителя включалась мостовая схема ограничения тока на диодах, на один вход такого операционника подавалось опорное напряжение от регулировочного резистора, задававшего развесовку, на другой — напряжение от весов, обратное ему по знаку — и как только суммарное напряжение достигало нуля, операционник менял положительное напряжение выхода на отрицательное. Ну а уж электромагнит его не пропустит, только надо включить нормально, чтобы он толкнул переключатель на очередной шаг, ну, может еще добавить усилитель, чтобы хватило мощности. А после переключения на компараторе снова положительное напряжение — новый резистор следующего контейнера, на который переключилась схема, задает какое-то напряжение, которое явно меньше напряжения, идущего от весов, соответственно электромагнит возвращается и никого не толкает.
— Так! А почему напряжение от весов меньше? Мы же уже насыпали на них сколько-то вещества… весы будут выдавать сигнал.
— Ну, либо ссыпать перед очередной навеской, либо просто запомнить это напряжение, инвертировать его и просуммировать с напряжением от весов — вот их и обнулим.