Здравствуйте!
Вопрос по CASE в MasterSCADE.

IF CMD THEN (*Если появилась команда на запуск и*)
IF MONITOR AND NOT I_KM THEN (*мониторится по сигналу и нет сигнала, что он в работе,*)
SSW := ST_RUNNING; (*переводим в состояние "Запускается" *)
ELSE
SSW := ST_RUNNED; (*иначе переводим в состояние "Запущен"*)
END_IF;
ELSIF NOT MONITOR OR (NOT I_KM) THEN (*Если не мониторится по сигналу или нет сигнала, что он в работе*)
SSW := ST_STOPPED; (*переводим в состояние "Остановлен"*)
ELSIF COUNT <= 0 THEN (*Если мотор не остановился за отведенное для этого время*)
SSW := ST_UNKNOWN; (*переводим в неопределенное состояние (ошибка останова)*)
ELSE
COUNT := COUNT - PLC_CYCLE; (*декрементируем счетчик оставшегося времени*)
END_IF;

8: (*Если в состоянии "Запущен"*)

IF CMD AND (NOT I_KM) AND MONITOR THEN (*Если состояние мотора мониторится и нет сигнала, что он в работе, с командой на запуск*)
SSW := ST_UNKNOWN; (*переводим мотор в неопределенное состояние (самопроизвольное выключение)*)
ELSIF NOT CMD THEN (*Если пропала команда на запуск и*)
IF MONITOR THEN (*если мониторится по сигналу*)
SSW := ST_STOPPING; (*переводим мотор в состояние "Останавливается"*)
ELSE
SSW := ST_STOPPED; (*иначе переводим мотор в состояние "Остановлен"*)
END_IF;
END_IF;

16: (*Если в состоянии "Запускается"*)

IF NOT CMD THEN (*Если пропала команда на запуск и*)
IF MONITOR AND I_KM THEN (*мониторится по сигналу и есть сигнал, что он в работе,*)
SSW := ST_STOPPING; (*переводим в состояние "Останавливается"*)
ELSE
SSW := ST_STOPPED; (*иначе переводим в состояние "Остановлен"*)
END_IF;
ELSIF NOT MONITOR OR I_KM THEN (*Если не мониторится по сигналу или есть сигнал, что он в работе*)
SSW := ST_RUNNED; (*переводим в состояние "Запущен"*)
ELSIF COUNT <= 0 THEN (*Если время запуска превысило максимальное время на запуск*)
SSW := ST_UNKNOWN; (*переводим в неопределенное состояние (ошибка запуска)*)
ELSE
COUNT := COUNT - PLC_CYCLE; (*декрементируем счетчик оставшегося времени*)
END_IF;

32: (*Если в неопределенном состоянии*)

IF RESET AND NOT I_QF THEN (*По фронту сигнала "Сброс" и нет аварий*)
SSW := ST_STOPPING; (*переводим в состояние "Выключается"*)
(* #RESET := FALSE; обнуляем сигнал "Сброс"*)
Q_ALARM_W := 0; (*обнуляем cлово аварийных сообщений*)
END_IF;

(*#RESET := FALSE; обнуляем сигнал "Сброс"*)

ELSE (*если ошибочный шаг*)
SSW := ST_STOPPING;

END_CASE;

Выдает ошибку "ожидается определение переменной", подсвечивает строчку "CASE SSW OF (*Анализируем состояние*)". Блин, все переменные перепроверил, там все ок