Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лр5-1

.docx
Скачиваний:
0
Добавлен:
26.03.2021
Размер:
211.67 Кб
Скачать

ПРАКТИЧНА РОБОТА № 5

Тема: Вивчення середовища CodeSys для програмування ПЛК ОВЕН. Програмування на мові CFC та ST.

Мета: Вивчити методи програмування мікроконтролерів ПЛК ОВЕН 110-60М на мовах CFC та ST.

Завдання

Розробити програму (на мові CFC) для контролю оператором переміщення об’єкта. Оператор повинен періодично підтверджувати правильність переміщення об’єкта. У протилежному випадку слід видати попередження та зупинити роботу. Об’єкт повинен здійснювати циклічний рух по периметру прямокутника (рух об’єкта описати у програмному компоненті «Machine» на мові ST). У програмі використати тригери і таймери.

№ з/п

Час t1 до увімкнення лампи

«Увага», c

Час t2 до увімкнення лампи

«Стоп», c

Переміщення об’єкта по горизонтальній осі до зміни напрямку

Переміщення об’єкта по вертикальній осі до зміни напрямку

4

8

8

110

80

Лістинг програми PLC_PRG

PROGRAM PLC_PRG

VAR

TRIG1: F_TRIG;

TRIG2: R_TRIG;

TIMER1: TOF;

TIMER2: TON;

OBJECT: PLC_PRG1;

END_VAR

Рисунок 1 – Лістинг програми PLC_PRG

Лістинг програми PLC_PRG1

FUNCTION_BLOCK PLC_PRG1

VAR_INPUT

START: BOOL;

END_VAR

VAR_OUTPUT

END_VAR

VAR

X_POS:INT;

Y_POS:INT;

GO_RIGHT:BOOL;

GO_LEFT:BOOL;

GO_UP:BOOL;

GO_DOWN:BOOL;

COUNTER: INT;

PUSK: BOOL;

END_VAR

IF START= TRUE AND PUSK THEN

IF Y_POS=0 AND X_POS<110 THEN

GO_RIGHT:=TRUE;

ELSE

GO_RIGHT:=FALSE;

END_IF

IF Y_POS=80 AND X_POS> 0 THEN

GO_LEFT:=TRUE;

ELSE

GO_LEFT:=FALSE;

END_IF

IF X_POS=0 AND Y_POS>0 THEN

GO_UP:=TRUE;

ELSE

GO_UP:=FALSE;

END_IF

IF X_POS=110 AND Y_POS<80 THEN

GO_DOWN:=TRUE;

ELSE

GO_DOWN:=FALSE;

END_IF

IF GO_RIGHT=TRUE THEN

X_POS:=X_POS+1;

END_IF

IF GO_DOWN=TRUE THEN

Y_POS:=Y_POS+1;

END_IF

IF GO_LEFT=TRUE THEN

X_POS:=X_POS-1;

END_IF

IF GO_UP=TRUE THEN

Y_POS:=Y_POS-1;

END_IF

IF Y_POS=0 AND X_POS=0 THEN

COUNTER:=COUNTER+1;

END_IF

END_IF

Додаткове завдання 1.

Запрограмуйте даний алгоритм роботи згідно вашого варіанту використовуючи лише один програмний компонент PLC_PRG на мові програмування CFC та командний вхід для арифметичних операторів.

Лістинг програми

PROGRAM PLC_PRG

VAR

TRIG1: F_TRIG;

TRIG2: R_TRIG;

TIMER1: TOF;

TIMER2: TON;

X_POS:INT;

Y_POS:INT;

GO_RIGHT:BOOL;

GO_LEFT:BOOL;

GO_UP:BOOL;

GO_DOWN:BOOL;

COUNTER: INT;

PUSK: BOOL;

END_VAR

Рисунок 2 – Лістинг програми

Додаткове завдання 2

Запрограмуйте даний алгоритм роботи згідно вашого варіанту використовуючи лише один програмний компонент PLC_PRG на мові програмування ST.

Лістинг програми

PROGRAM PLC_PRG

VAR_INPUT

END_VAR

VAR_OUTPUT

END_VAR

VAR

X_POS:INT;

Y_POS:INT;

GO_RIGHT:BOOL;

GO_LEFT:BOOL;

GO_UP:BOOL;

GO_DOWN:BOOL;

COUNTER: INT;

PUSK: BOOL;

TRIG1: F_TRIG;

TRIG2: R_TRIG;

TIMER1: TOF;

TIMER2: TON;

WARNINGINV: BOOL;

END_VAR

TRIG1(CLK:=OBSERVER, Q=>);

TRIG2(CLK:=OBSERVER, Q=>);

TIMER1(IN:=TRIG1.Q OR TRIG2.Q , PT:=T#6S , Q=> WARNINGINV, ET=> );

IF WARNINGINV=TRUE THEN WARNING:=FALSE;

ELSE

WARNING:=TRUE; END_IF

TIMER2(IN:= WARNING, PT:=T#10S , Q=>STOP , ET=> );

IF STOP=FALSE AND PUSK=TRUE THEN

IF Y_POS=0 AND X_POS<110 THEN GO_RIGHT:=TRUE;

ELSE

GO_RIGHT:=FALSE;

END_IF

IF X_POS=110 AND Y_POS<80 THEN

GO_DOWN:=TRUE;

ELSE

GO_DOWN:=FALSE;

END_IF

IF Y_POS=80 AND X_POS>0 THEN

GO_LEFT:=TRUE;

ELSE

GO_LEFT:=FALSE;

END_IF

IF X_POS=0 AND Y_POS>0 THEN

GO_UP:=TRUE;

ELSE

GO_UP:=FALSE;

END_IF

IF GO_RIGHT=TRUE THEN

X_POS:=X_POS+1;

END_IF

IF GO_DOWN=TRUE THEN

Y_POS:=Y_POS+1;

END_IF

IF GO_LEFT=TRUE THEN

X_POS:=X_POS-1;

END_IF

IF GO_UP=TRUE THEN

Y_POS:=Y_POS-1;

END_IF

IF Y_POS=0 AND X_POS=0 THEN

COUNTER:=COUNTER+1;

END_IF

END_IF

Рисунок 3 – Візуалізація програми

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]