While(cycle)

{

Switch(Y)

{

case 0:

if (X01) {Z01; Y=1;}

Else

...

if (X0i) {Z0i; Y=i;}

Else

...

if (X0N) {Z0N; Y=N;}

else Z00;

break;

case 1:

if (X10) {Z10; Y=0; cycle=0;}

Else

...

if (X1i) {Z1i; Y=i;}

Else

...

if (X1N) {Z1N; Y=N;}

else Z11;

break;

...

case i:

if (Xi0) {Zi0; Y=0; cycle=0;}

Else

...

if (Xi(i-1)) {Zi(i-1); Y=i-1;}

Else

if (Xi(i+1)) {Zi(i+1); Y=i+1;}

Else

...

if (XiN) {ZiN; Y=N;}

else Zii;

break;

...

case N:

if (XN0) {ZN0; Y=0; cycle=0;}

Else

...

if (XNi) {ZNi; Y=i;}

Else

...

if (XN(N-1)) {ZN(N-1); Y=N-1;}

else ZNN;

break;

}

}

 

Рассмотрим пример реализации алгоритма управления и контроля трехпозиционным клапаном (Кл) с памятью с помощью трех кнопок без памяти. Наличие памяти в исполнительных механизмах объекта управления (клапана) позволяет снимать с них управляющие сигналы после того, как клапан откроется или закроется, сохраняя это положение.

Приведем словесное описание алгоритма управления клапаном [Шалыто А.А. SWITCH-технология. Алгоритмизация и программирование задач логического управления. СПб.: Наука, 1998].

1. При нажатии кнопки “Откр.” (Х1) клапан начинает открываться.

2. После его открытия срабатывает сигнализатор открытого положения, зажигается лампа ”Откр.” (Х4) и снимается управляющий сигнал с клапана (Z2).

3. При нажатии кнопки “Закр.” (X2) клапан начинает закрываться.

4. После его закрытия срабатывает сигнализатор закрытого положения, зажигается лампа ”Закр.” (X3) и снимается управляющий сигнал с клапана (Z1).

5. Если в течение трех секунд (T=3) клапан не откроется или не закроется, то управляющий сигнал с клапана снимается и зажигается лампа контроля “Неисправность” (Z3).

6. Сброс сигнала контроля осуществляется нажатием кнопки “Разблок.” (Х5), после чего клапан принудительно закрывается.

7. Для фиксации события одновременного нажатия двух управляющих кнопок Х1 и Х2 включена лампа сигнализации «Ошибка» (Z4). Сброс сигнализации также осуществляется кнопкой Х5.

 

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

 

 

Рис. 2

 

По словесному описанию и приведенной схеме связей построим граф переходов автомата (рис. 3) в соответствии с концепцией, изложенной выше. Подробно методика разработки графа переходов излагается в курсе «Основы логического управления».

 

Рис. 3

 

Построенная схема связей и граф переходов автомата, входящего в эту схему, однозначно определяют техническое задание на разработку программного обеспечения.

Реализуем граф переходов с помощью программы, написанной на Си++.

 

# include <iostream.h>

# include <conio.h>

# include <dos.h>