Двухмашинный вариант, глава 5. Программирование

Юрий Ушев
    Анонс:  http://proza.ru/2023/12/17/1399

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

    В состав поставляемого с М-6000 программного обеспечения, помимо ОСРВ, входили транслятор с ассемблера и символьный редактор. Техническими средствами программирования служили дисплей СИД-1000, считыватель с перфоленты, перфоратор, матричный принтер.

    Программировал обычно в кабинете, отлаживал программы в машзале. Один дисплей был установлен на рабочем столе, считыватель и перфоратор располагались рядом со столом на тумбе. Витые телефонные пары от устройств аккуратно подвели к М-6000.

    Перед началом программирования нужно было ввести в М-6000 через считыватель перфоленты транслятора и редактора. Транслятор позволял набирать на клавиатуре дисплея программу, выдавать ошибки, распечатывать листинг с адресами и кодами и в конце, когда все ошибки исправлены, можно было получить перфоленту с программой, ввести ее в М-6000 и запустить.
    Перед этим должна быть введена перфолента с ОСРВ, а это бумажная бобина диаметром около 20 сантиметров. Имелась, конечно, ее копия, не дай Бог порвется.

    Для отладки программ использовался пульт управления в стойке М-6000. Рядом находился СИД-1000, перфоратор, фотосчитыватель, принтер и можно было откорректировать или, при желании, разрабатывать программы прямо в машзале.
    При отладке кнопками пульта задавались остановы по нужным адресам в соответствии с листингом. По интересующим адресам можно наблюдать результаты работы и логические переходы.

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

    В первой очереди АСУ «Город» к координированному управлению было подключено около 50 перекрестков. Наири-2 могла обмениваться с 80 дорожными контроллерами, переключающими сигналы светофора по командам из центра.
    Для каждого дорожного контроллера имелись массивы входной информации: «фаза», «проехавшие», «остановившиеся». В массив «фаза» записывался номер текущей фазы регулирования. В массив «проехавшие» записывалось количество транспорта, зафиксированного датчиком при зеленом сигнале, в массив «остановившиеся» зафиксированного при красном сигнале. Для перекрестков, оборудованных датчиками, формировалась относительная задержка на каждом направлении, равная количеству остановившегося транспорта, деленного на общее число пересекшего датчик. Затем формировалась глобальная относительная задержка, являющаяся главным критерием регулирования. Основные алгоритмы были направлены на минимизацию этой задержки.

    Для каждого канала передачи имелся массив передачи, в котором содержалось время включения фазы регулирования, номер фазы и режим работы контроллера.
    Для обеспечения обмена с дорожными контроллерами Валя Полякова дорабатывала программы обмена Наири-2 с контроллерами, обеспечивая прием сигналов от датчиков и драйвер обмена с М-6000; я разрабатывал драйвер обмена с Наири-2 через канал УСО М-6000. Драйвер принимал данные от Наири-2 в массив входной информации, и передавал команды из массива передачи в Наири-2.

    На ассемблере 580 серии программировать было удобно. Пробовал использовать фортран, но для работы с аппаратурой он не годился – это язык экономистов.
    Примерно две недели неустанной работы ушло на написание и отладку драйверов формирования входных и выходных массивов. По индикаторам панели М-6000 можно было наблюдать смену значений по адресам массивов. Это конечно неудобно - для проверки данных в динамике, нужна была визуализация.

    Я начал программировать выдачу на СИД-1000, которая подключалась к машине телефонной парой через УВВ^15. На курсах в Северодонецке программирование УСО и УВВ мы изучали, поэтому я знал, как выдать символы на СИД-1000 и принять символы с клавиатуры.

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

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

    Кроме того нужно было аналогичные формы выдавать на широкую печать по заданному перекрестку. Чтобы не терять времени, я попросил главного инженера Михаила Анатольевича разрешить мне привлечь к этой работе моего знакомого Сашу Бурмистрова – талантливого программиста АХБК^16. 
    Я засел за разработку программ вывода кадров на СИД-1000 и заполнения соответствующих полей. 

    Продолжение:  http://proza.ru/2023/04/24/1352