Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка Индивидуальное задание.doc
Скачиваний:
77
Добавлен:
10.06.2015
Размер:
704.51 Кб
Скачать

If iAuto then (* Если дистанционный режим включен, *)

(* то рассчитываем состояние автомата*)

case State of

1: if cMotorOn then

qMotorOn := TRUE;

State := 2;

end_if;

2: if iMotorOn then

qMotorOn := FALSE;

sMotorOn := TRUE;

State := 3;

end_if;

if tNotRun then

qMotorOn := FALSE;

sNotRun := TRUE;

State := 6;

end_if;

3: if cMotorOff then

qMotorOff := TRUE;

State := 4;

end_if;

if iOverHeat then

sMotorOn := FALSE;

sOverHeat := TRUE;

State := 5;

end_if;

4: if NOT iMotorOn then

sMotorOn := FALSE;

qMotorOff := FALSE;

State := 1;

end_if;

5: if cMotorOff then

sOverHeat := FALSE;

State := 1;

end_if;

6: if cMotorOff then

sNotRun := FALSE;

State := 1;

end_if;

else (* инициализация состояния автомата *)

if iMotorOn then

sMotorOn := TRUE;

State := 3;

else

sMotorOn := FALSE;

State := 1;

end_if;

end_case;

ELSE (* Если находимся в ручном режиме *)

(* Сбрасываем выходы контроллера *)

qMotorOn := FALSE;

qMotorOff := FALSE;

(* Определяем состояние двигателя насоса *)

if iMotorOn then

sMotorOn := TRUE;

State := 3;

else

sMotorOn := FALSE;

State := 1;

end_if;

END_IF;

Отладка программы с помощью rde

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

Просмотр и изменение любых переменных проекта возможно с помощью других средств – редактора RDE(рис. 10). РедакторRDEвызывается с помощью командыOnline\Reference Data Editorили с помощью сочетания клавишCtrl+R.

Пользователь сам указывает имена переменных, которые значения которых он хочет видеть в процессе отладки в колонке Variable Name (Имя переменной). Чтобы изменить значение переменной нужно записать новое значение в колонкеValue(Значение) и нажатьEnter. Если значение переменной недоступно для редактирования, например, если переменная связана со входом контроллера, то её можно «отключить» от входа с помощью колонкиDisable(Недоступно). В этом случае, значение переменной будет «форсироваться» (принудительно задаваться) значением, указанным в колонкеValue.

Рис.10. РедакторRDE

Вызов функций и функциональных блоков из программы на языке st

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

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

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

Функциональными блоками являются таймеры, счётчики и т.п.