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

А. А. Шалит
Федеральний науково-виробничий центр ГУП “НВО” Аврора “”

Санкт-Петербурзький державний інститут точної механіки й оптики
(Технічний університет)
SoftCraft

Викладаються основи технології алгоритмізації та програмування задач логічного керування, що забезпечує підвищення “безпеки” програмного забезпечення. Описувана технологія може бути названа технологією станів або, більш точно, автоматною технологією, а відповідна область програмування – автоматним програмуванням.

Введення

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

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

Ця проблема є актуальною і для інших класів задач. Так, Е. Дейкстра у вступі до [1] пише: “Я знав, що програми можуть зачаровувати глибиною свого логічного витонченості, але мені постійно доводилося переконуватися, що більшість з них з’являються у вигляді, розрахованому на механічне виконання, і що вони абсолютно непридатні для людського сприйняття. Мене не задовольняло також і те, що програми часто наводяться у формі готових виробів, майже без згадки тих міркувань, які проводилися в процесі розробки і служили обгрунтуванням для остаточного вигляду завершеної програми “. Просування в напрямку вирішення цієї проблеми для завдань логічного керування має особливу важливість у зв’язку з великою відповідальністю їх вирішення для багатьох об’єктів управління, наприклад, для ядерних або хімічних реакторів, а передумови для такого просування визначаються наявністю розвиненого математичного апарату теорії автоматів.

В рамках розробленої технології пропонується використовувати два рівні мов: мови алгоритмізації або специфікації (мови спілкування) і мови програмування (мови реалізації). Мови цих класів можуть як збігатися (за наявності транслятора з мови алгоритмізації), так і різнитися між собою.

Так, наприклад, при апаратній реалізації систем логічного керування в базисі релейно-контактних схем в якості мови алгоритмізації застосовувалися функціональні схеми, а в якості мови реалізації – власне релейно-контактні схеми. Однак, погана “читаність” як функціональних схем, так і релейно-контактних схем призвела до необхідності використання проміжного мови – функціонально-принципових схем, які в релейно-контактному вигляді відображали лише алгоритм управління і не містили іншої інформації, характерної для принципових схем (наприклад, позначень роз’ємів, що гасять опорів, пристроїв контролю і т.д.). Однак і ці схеми, вельми зручні для представлення автоматів без пам’яті, важко читаються для автоматів з пам’яттю, так як вони зазвичай реалізують, але не відображають у своїй структурі динаміку переходів і зміну станів синтезованого автомата.

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

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

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

При логічному управлінні можуть використовуватися традиційні (класичні) шляхи формалізації, як процедур управління, так і описів об’єктів управління, що відрізняє цей клас задач, наприклад від ситуаційного управління [5].

Для відповідальних технологічних об’єктів системи логічного та ситуаційного управління можуть застосовуватися спільно.

[Вперед]

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*