Северка - Николай Соловьев
Шрифт:
Интервал:
Закладка:
Каждый из нас может назвать соответствующую шестнадцатеричному коду команду процессора и наоборот. Каждый из нас знает, как на плате проходит любой сигнал или группа сигналов, сколько миллисекунд он продолжается.
На третьем занятии нашу группу завели в специальный класс с шестнадцатью мониторами. В соседней комнате стоит сервер. А мониторы
– суть терминалы пользователей. Мы должны набрать простейшую программу на ассемблере, десятка три строчек, откомпилировать ее и распечатать. Администратор сказал, что теперь мы юзеры и что после включения монитора, в ответ на юзер следует ввести слово, написанное мелом на мониторе: юзер1; юзер2;…юзер16. А в ответ на пароль просто нажать 'ентер'.
В библиотеке на втором этаже я взял книгу по операционной системе
Юникс, в которой мы работали. Оказывается, монитор не привязан жестко к определенному юзеру. На следующий день, когда Сергей вышел курить, я со своего монитора вошел в сеть под его юзером и изменил его пароль с 'ентер' на '12345678900987654321'. Сергей покурил, пробует войти в сеть и не может. Я не томил его, сразу рассказал.
Пользуясь тем, что администратор не рассматривает нашу группу, как серьезных пользователей Юникса, и оставил нам много возможностей, мы стали дурачиться. Посылаем друг другу сообщения файловые или на экран. Любой пользователь в состоянии защититься от таких шуток, но только знающий пользователь. А у нас большинство впервые сидят за клавиатурой. Уткнувшись в экран, они внимательно читают: 'Товарищ юзер номер 7 это не Вы потеряли на углу талон на повидло? Скорее бегите, он еще там лежит', 'Новости из гардероба. Уважаемые юзера, заявления о пропаже пальто принимаются только у членов профсоюза'.
Мой сосед с большими паузами ищет очередную букву, чтобы набрать положенные двадцать строчек ассемблерной программы. И вдруг эти строчки начинают уползать вверх и скрываются за горизонтом. Сосед замирает и, приоткрыв рот, провожает результат своего часового труда. Успокаиваю его и возвращаю все в исходное.
Наш отдел переехал в лабораторный корпус у четвертой проходной. А мы с Шурой остались на старом месте в бытовом корпусе АСК. Шура сидит в лаборатории, а я в соседней комнате. Нас редко навещают сослуживцы или начальство, потому что идти пешком двадцать минут. А заводские автобусы ходят вглубь завода и лишь пересекают дорогу к нам. Все сотрудники отдела и всего управления утром сдают пропуска в кадры, а мы с Шурой предоставлены сами себе.
В 83 году на заводе появились автоматические турникеты. До этого времени у каждой вертушки сидела вахтерша в темно-синем костюме и берете. После появления автоматических турникетов полгода они открывались свободно на вход и выход. Потом в бюро пропусков поставили аппарат, который кодирует пропуск на выход. Теперь выход с завода без ведома бюро пропусков невозможен. Выйти можно в обед или по заявлению. У нас с Шурой, по причине удаленности пропуска на руках. По договоренности мы кодируем их у соседей в отделе АСУ, и держим в своих карманах. Однажды я проспал на работу. Проснулся в одиннадцатом часу, а начало работы в 8.20. Через час прилетел. И никто не узнал об этом.
Конструкторы нашего отдела разрабатывают электрические схемы управления механизмами, станками и автоматическими линиями не на реле или триггерах, а на промышленных контроллерах. Промышленный контроллер похож на книжную полку, в которой вместо книг стоят платы. Обязателен источник питания и процессорная плата. Конструктор рассчитывает, сколько в схеме будет датчиков и кнопок и ставит плату для входных сигналов. Тоже с выходными сигналами. Есть платы с таймерами, которые считают время и счетчиками, которые считают события. Электрические схемы конструктора рисуют по-старому – в релейном виде. Переход на контроллеры не заставил конструкторов переобучаться. К контроллеру придается комод – программатор. Он позволяет с клавиатуры ввести электрическую схему. И даже печатает ее, но слишком расточительно – одну цепь на листе. Вот бы найти участок программы, который рисует цепь. Дать ему на вход все цепочки схемы и печатать их подряд. И я стал рыть среди десяти тысяч шестнадцатеричных цифр. Жаль, у программатора нет возможности сделать аппаратный или программный останов. Все-таки нашел этот участок. Похоже, программа написана на большом языке, а не на ассемблере – единицу к аккумулятору прибавляют двухбайтной командой, а не однобайтным инкрементом.
Отдел получил программатор Сименс. Винчестер на восемь мегабайт!
Процессор 8086, он в два раза мощнее, чем 8080 (580), экран черно-белый, но уже с графикой! Пятидюймовые дискеты! Можно писать на Си! Мечта. Первым делом мы распечатали и переплели в нескольких экземплярах книгу Руфь Диксон 'Человек ли женщина' – Игорь принес на дискете.
На этом программаторе, на Си я открыл и закрыл свой первый файл.
Лабораторию нашу в бытовом корпусе забрали асушники, нас с Шурой перевели в инженерный корпус. У него своя комната и у меня своя.
Вскоре в отделе и вообще на заводе стали появляться
IBM-персоналки. Первые шли с 286-м процессором, диск сорок мегабайт, дисплей – CGA или EGA, цветной.
Мне захотелось сделать программный комплекс на базе компьютера для программирования промышленных контроллеров. На Си я работаю уже сносно. Время для проекта найду. Меня никто не дергает – до начальства десять минут ходьбы. Михалычу, начальнику ничего не сказал. Во-первых, он сможет догадаться, что у меня есть свободное время. А во-вторых, будет взвешивать, обдумывать, согласовывать, что-нибудь урежет или исказит.
И я приступил к проекту. Работаю днем и вечером. В будни ухожу со второй сменой в одиннадцать. В субботу выхожу с девяти-десяти, работаю до пяти, в воскресенье с десяти до трех часов. Питаюсь на месте: чай, бульонные кубики в желтой фольге, сосиски, которые разрезаны вдоль и уложены между кусками белого хлеба. Хочу сделать полноценный редактор для релейных электросхем. Такой, который позволит не только вводить или удалять элементы цепи: замкнутые/разомкнутые контакты, таймеры, счетчики и другое, но и работать с цепями: выделять группу цепей, перемещать, копировать или удалять их, осуществлять поиск элементов или цепей. Хочу предусмотреть возможность преобразования релейных цепей в булевы мнемокоды и обратно. Хочу предусмотреть трансляцию харьковских релейных кодов в Сименс коды и обратно. Хочу распечатывать и хранить релейные схемы. Хочу сделать общее меню с выпадающими окнами. У Си окон пока нет. В Си можно нарисовать прямоугольник, написать в нем строку или несколько и подкрасить фон у текущей.
Если все это удастся, то покупка промышленных контроллеров других фирм будет безболезненна для отдела и потребует лишь небольшого дополнительного программного модуля декодирования.
Вторая часть идеи – хочу на компьютере эмулировать программатор.
Представьте: на экране изображен контроллер. Пользователь выбирает и расставляет в его ячейки входные и выходные модули, таймеры, счетчики. Запускает отлаживаемую электросхему. Включает и выключает виртуальные тумблеры, имитируя внешнее воздействие. Входные и выходные виртуальные светодиоды показывают реакцию схемы на это воздействие. Можно предусмотреть пошаговый режим и демонстрационный.
Работа шла хорошо. За день решаю какую-нибудь конкретную задачу.
То есть кусок уже отлажен. По мере продвижения вижу – объем работ все увеличивается. Через месяц понял, что это задача для пятерых, а не одного. Еще несколько месяцев такой режим мне не выдержать.
Десять тысяч строк написал и отладил и бросил.
В начале 90-х появился СУБД Clarion 2.0. С его помощью просто создавать меню, окна экранных форм, формы для отчета (печати).
Кнопок еще нет, мышка не поддерживается, кнопки и мышь появились в третьей версии. Это первый продукт, который познакомил меня с базами данных.
Отдел получил персоналку с 386-м процессором, диск 110 мегабайт и планшетный плоттер формата А0. Всего у нас пять компьютеров. На двух работают конструктора, чертят в Автокаде-2.1. Собственно за компьютерами работают уже четыре человека: Витя, Сергей, Игорь и я.
Постепенно Витю, Сергея и Игоря перевели на разработку электрических схем для промышленных контроллеров, то есть они практически стали конструкторами с отличным знанием ПК, создают и чертят схемы с применением Автокада. У них план, а я вольный человек – разрабатываю какую-то мелочь для планового отдела и бухгалтерии.
Подвернулась интересная задача на Автокаде. На Лиспе написал программу, которая создает таблицу элементов электросхемы и таблицу перекрестных ссылок. Это очень упрощает работу конструкторов.
Электросхема может состоять из одного или нескольких листов. На последнем листе программа рисует таблицу элементов и в соответствии с ГОСТом располагает в ней резисторы, конденсаторы, реле, другие элементы, указывает их количество и тип. На схеме, справа от каждого реле программа формирует список номеров цепей, в которых можно найти замкнутые или разомкнутые контакты этого реле. Таблица перекрестных ссылок представляет собой список всех реле, со списком всех цепей, где встречаются их замкнутые/разомкнутые контакты. Отдельным пунктом программа вырисовывает все необходимые угловые штампы в соответствии с ГОСТом и вписывает фамилии разработчика и проверяющего. Даже подписи делаются автоматически. Они хранятся в отдельных файлах.