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>