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