Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки пр в Concept.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.87 Mб
Скачать

5.5. Примеры программ на языке st

Ниже приведен текст возможного варианта программы управления установкой для смешивания жидкостей, алгоритм работы которой, подключение датчиков и выходных устройств, объявление переменных приведены в п. 2.3.

(*Declaration EFB*)

VAR

RS_Tr1, RS_Tr2: RS;

Timer: TON;

END_VAR

(*Invocation EFB*)

RS_Tr1 (S:=Start, R1:=RS_Tr2.Q1);

RS_Tr2 (S:=TUpp, R1:=NOT DU1);

Timer (IN:=RS_Tr2.Q1 AND Stop, PT:=t#10s);

(*Transformation of a code temperature*)

TUpp:= (UINT_TO_REAL(DTemp) - 6400.0)/256.0 > 70.0;

(*Control*)

IF RS_Tr1.Q1=1 THEN

K1:=NOT DU2 AND Stop;

K2:=DU2 AND NOT DU3 AND Stop;

Nagr:=DU3 AND NOT TUpp AND Stop;

KM:=DU2 AND Stop;

ELSE KM:=0;

END_IF;

K3:= RS_Tr2.Q1 AND Stop AND Timer.Q;

Ниже приведен текст другого возможного варианта программы управления установкой для смешивания жидкостей. В программе дополнительно введена переменная SA типа UDINT, которая используется (вместо триггеров) для реализации трех состояний (State) конечного автомата (вместо триггеров).

(*Declaration EFB*)

VAR

Timer: TON;

END_VAR

(*Invocation EFB*)

Timer (IN:=SA=2 AND DU1, PT:=t#10s);

(*Transformation of a code temperature*)

TUpp:= (UINT_TO_REAL(DTemp) - 6400.0)/256.0 > 70.0;

(*Control*)

(*State 0*)

IF SA=0 AND Start THEN

SA:=1;

END_IF;

(*State 1*)

IF SA=1 THEN

K1:=NOT DU2 AND Stop;

K2:=DU2 AND NOT DU3 AND Stop;

Nagr:=DU3 AND NOT TUpp AND Stop;

KM:=DU2 AND Stop;

IF TUpp THEN

SA:=2;

END_IF;

END_IF;

(*State 2*)

IF SA=2 THEN

KM:=DU3 AND Stop;

K3:=Stop AND DU1 AND Timer.Q;

IF NOT DU1 THEN

SA:=0;

END_IF;

END_IF;

5.6. Пример программы на языках sfc и st

Здесь рассматривается возможный вариант программы управления установкой для смешивания жидкостей, алгоритм работы которой описан в п. 2.3. В отличие от ранее рассмотренных программ на ST в данном варианте программа реализована в двух программных секциях – в первой на языке SFC, во второй – на языке ST. На языке SFC реализованы переключения состояний (SA1 и SA2) конечного автомата и временная задержка 10 с. На языке ST реализовано управление выходными устройствами ПЛК. Такое построение программы позволяет сделать ее более понятной и устраняет некоторые недостатки языка SFC.

Таблица 5.2

Свойства шагов

Step

Qualifier

Time

Variable

Delay

S_1_1

R

SA2

R

D_K3

S_1_2

S

SA1

S_1_3

R

SA1

t#10s

S

SA2

DS

t#10s

D_K3

На рис. 5.3 приведена программа в секции SFC, а в табл. 5.2 действия, выполняемые в шагах.

Текст программы в секции ST:

(*Transformation of a code temperature*)

TUpp:= (UINT_TO_REAL(DTemp) - 6400.0)/256.0 > 70.0;

(*Control*)

IF S1=1 THEN

K1:=NOT DU2 AND Stop;

K2:=DU2 AND NOT DU3 AND Stop;

Nagr:=DU3 AND NOT TUpp AND Stop;

END_IF;

KM:=(S1 AND DU2 OR S2 AND DU3) AND Stop;

K3:= S2 AND Stop AND D_K3;

Вопросы для самоконтроля

1. Перечислите особенности языка ST.

2. Что такое операнды, операторы и выражения?

3. Опишите порядок выполнения инструкций выбора IF ... THEN ... ELSEIF ... ELSE … END _IF и CASE ... OF ... ELSE ... END_CASE.

4. Опишите порядок выполнения инструкций цикла с известным количеством повторений, с предусловием и с постусловием.

5. Как в языке ST осуществляется использование функций и функциональных блоков?

Задания для самостоятельной работы

1. Приведите пример реализации функции: переменная Aalarm=1, если выполняется неравенство и равна 0, если неравенство не выполняется. Здесь переменная Aalarm типа BOOL. Остальные переменные типа REAL.

2. Приведите пример реализации логической функции для переменных типа BOOL.

3. Приведите программу реализации функции:

если FLAG=0, то MOTOR_1=0, MOTOR_2=0, FAN=0;

если FLAG=1, то MOTOR_1=1, MOTOR_2=0, FAN=1;

если FLAG=2, то MOTOR_1=0, MOTOR_2=0, FAN=1;

если FLAG=3, то MOTOR_1=0, MOTOR_2=1, FAN=0;

5. Приведите программу управления установкой по п. 2.3 при измененном алгоритме – при нажатии кнопки «Авария» установка должна вернуться в исходное состояние.