УНИВЕРСИТЕТ ИТМО
Кафедра «Технологии программирования»



Главная

Новости
 Новости науки
 Важное
 Почетные доктора
 Инновации
 Культура
 Люди
 Разное
 Скартел-Yota
 Стрим
 Смольный
Учебный процесс
 Образование
 Дипломы
 Курсовые проекты
 Лабораторные работы
 Учебные курсы
 Визуализаторы
 Unimod-проекты
 Семинары
 Стипендии
Наука
 События и факты
 Госконтракты
 Статьи
 Диссертации
 Книги
 Презентации
 Свидетельства
 Сотрудничество
Исследования
 Автоматы
 Верификация
 Биоинформатика
 Искусственный интеллект
 Генетические алгоритмы
 Движение
 UniMod
 Роботы и агенты
 Нейронные сети
 ФЦП ИТМО-Аалто
 Разное

О нас
 Премии
 Сертификаты и дипломы
 Соревнования по программированию
 Прорыв
 Автографы
 Рецензии

Беллетристика
 Мотивация
 Мысли
Медиа
 Видео
 Фотографии
 Аудио
 Интервью

English
 Home

 Articles
 Posters
 Automata-Based Programming
 Initiatives
 Projects
 Presentations
 UniMod
 UniMod Projects
 Visualizers


Поиск по сайту

Яndex



   Главная / Статьи / Автоматное проектирование программ. Алгоритмизация и программирование задач логического управления (версия для печати)


Автоматное проектирование программ. Алгоритмизация и программирование задач логического управления



[ Введение | 1 | 2 | 3 | 4, 5, Заключение | Литература | >> ]

Отсюда можно скачать полный текст статьи в формате pdf (279 кб)

УДК 681.3.06: 62-507

(с) А.А.Шалыто

Федеральный научно-производственный центр ГУП "НПО "Аврора"",
Санкт-Петербургский государственный институт точной механики и оптики
(технический университет)

Опубликована в журнале: "ИЗВЕСТИЯ АКАДЕМИИ НАУК. ТЕОРИЯ И СИСТЕМЫ УПРАВЛЕНИЯ"
Номер 6. Ноябрь-Декабрь 2000. c. 63-81.

Существует английская версия статьи: Shalyto A.A. Software Automation Design: Algoritmization and Programming of Problems of Logical Control //Journal of Computer and Systems Sciences International. 2000. N6, pp.899-916.

Излагаются основы технологии алгоритмизации и программирования задач логического управления, обеспечивающей повышение "безопасности" программного обеспечения. Описываемая технология может быть названа технологией состояний или, более точно, автоматной технологией, а соответствующая область программирования - автоматным программированием.

Введение

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

Актуальность разработки такой технологии определяется, во-первых, необходимостью того, чтобы Заказчик, Технолог (Проектант), Разработчик, Программист, Оператор (Пользователь) и Контролер однозначно и полностью понимали друг друга, а, во-вторых, целесообразностью создания для различных типов управляющих вычислительных устройств и языков программирования единого подхода к формальному и желательно изоморфному построению "хорошо понимаемых" алгоритмов и программ, позволяющих решать задачи рассматриваемого класса.

Эта проблема является актуальной и для других классов задач. Так, Э. Дейкстра во введении к [1] пишет: "Я знал, что программы могут очаровывать глубиной своего логического изящества, но мне постоянно приходилось убеждаться, что большинство из них появляются в виде, рассчитанном на механическое выполнение, и что они совершенно непригодны для человеческого восприятия. Меня не удовлетворяло также и то, что программы часто приводятся в форме готовых изделий, почти без упоминания тех рассуждений, которые проводились в процессе разработки и служили обоснованием для окончательного вида завершенной программы". Продвижение в направлении решения этой проблемы для задач логического управления имеет особую важность в связи с большой ответственностью их решения для многих объектов управления, например, для ядерных или химических реакторов, а предпосылки для такого продвижения определяются наличием развитого математического аппарата теории автоматов.

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

Так, например, при аппаратной реализации систем логического управления в базисе релейно-контактных схем в качестве языка алгоритмизации применялись функциональные схемы, а в качестве языка реализации - собственно релейно-контактные схемы. Однако, плохая "читаемость" как функциональных схем, так и релейно-контактных схем привела к необходимости использования промежуточного языка - функционально-принципиальных схем, которые в релейно-контактном виде отражали лишь алгоритм управления и не содержали другой информации, характерной для принципиальных схем (например, обозначений разъемов, гасящих сопротивлений, устройств контроля и т.д.). Однако и эти схемы, весьма удобные для представления автоматов без памяти, трудно читаются для автоматов с памятью, так как они обычно реализуют, но не отображают в своей структуре динамику переходов и смену состояний синтезируемого автомата.

При программной реализации на базе аппаратуры "Selma-2" фирмы ABB Stromberg (Финляндия) [2] в качестве как языка алгоритмизации, так и языка программирования, используются функциональные схемы, а для программируемых логических контроллеров "Autolog" фирмы "FF-Automation" (Финляндия) [3] в качестве языка программирования применяется язык инструкций ALPro, в то время как язык алгоритмизации не определен. Последний неопределен и для многих других типов программируемых логических контроллеров, таких, как, например, как "Melsec" фирмы "Mitsubishi Electric" (Япония) [4], языками программирования которых является язык инструкций и язык лестничных схем — язык релейно-контактных, дополненный большим числом вычислительных операций.

В настоящее время в качестве языков алгоритмизации в системах логического управления наиболее часто применяются лестничные и функциональные схемы и блок-схемы алгоритмов, называемые также граф-схемами алгоритмов или схемами алгоритмов, а в качестве языков программирования в зависимости от типов управляющих вычислительных устройств используются три типа языков: алгоритмические языки высокого уровня (например, Си, "Паскаль", ПЛ/М, "Форт"), алгоритмические языки низкого уровня (ассемблеры, языки инструкций) и специализированные языки (например, функциональные и лестничные схемы).

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

При логическом управлении могут использоваться традиционные (классические) пути формализации, как процедур управления, так и описаний объектов управления, что отличает этот класс задач, например от ситуационного управления [5].

Для ответственных технологических объектов системы логического и ситуационного управления могут применяться совместно.


[ Введение | 1 | 2 | 3 | 4, 5, Заключение | Литература | >> ]



© 2002—2024 По техническим вопросам сайта: alexvatyan@gmail.com