Вы находитесь на странице: 1из 12

Министерство образования и науки Республики Казахстан

Карагандинский государственный технический университет

Кафедра автоматизации
производственных
процессов им. В.Ф.Бырьки

Лабораторная работа №1
По дисциплине: «Языки программирования промышленных
контроллеров»
Тема: «Комбинируемые технические модели из деталей Fischer Technik,
участок сортировки (224002)»

Доктор PhD:
Паршина Г.И.
(фамилия, инициалы)

_______________________
(подпись) (дата)

Магистрант: АУМ-19-2
(группа)

Тарлыков М.В.
_______________________
(подпись) (дата)

Караганда 2020
1
Участок сортировки (224002)
Участок состоит из ленточного транспортера и двух сталкивателей.
Заготовки перемещаются по ленточному транспортеру мимо отводящих
карманов. Система считывает код заготовки и в зависимости от его значения
подает команду на сталкивание заготовки в соответствующий карман или
пропускает её на следующий участок. Внешний вид лабораторного стенда
изображен на рисунке 1.

Рисунок 1.4 – Лабораторный стенд «Участок сортировки»

Технические данные:
Датчики:
1. Герконы - 2 шт.
2. Механический переключатель - 6 шт.
Исполнительные устройства:
1. Реверсивный мотор - 3 шт.
2. Светодиод - 2 шт.
Требования к системе управления:
1. Цифровые входы - 10 шт.
2. Цифровые выходы - 8 шт.
Схематическое изображение лабораторного стенда «Участок сортировки»
представлено на рисунке 2.

2
Рисунок 2 – Схема лабораторного стенда «Участок сортировки»

Дискретные входы и выходы стенда «Участок сортировки» представлены


в таблице 1. Таблица 1.2
Таблица входных и выходных координат стенда «Участок сортировки»

Наименование Наименование Тип Примечание


входа/выхода сигнала, датчика или сигнала
исполнительного
механизма
1 2 3 4
X1 Толкатель 1 готов к дискретный Входной сигнал
движению
X2 Толкатель 1 готов к дискретный Входной сигнал
задвижению
X3 Датчик положения в дискретный Входной сигнал
толкателе 1
X4 Толкатель 2 готов к дискретный Входной сигнал
движению
X5 Толкатель 2 готов к дискретный Входной сигнал
задвижению
X6 Датчик положения в дискретный Входной сигнал
толкателе 2
X7 Геркон 1 дискретный Входной сигнал
X8 Геркон 2 дискретный Входной сигнал
3
X9 Кнопка 1 дискретный Входной сигнал
X10 Кнопка 2 дискретный Входной сигнал
Y1 Конвейер движется дискретный Выходной сигнал
вправо
Y2 Конвейер движется дискретный Выходной сигнал
влево
Y3 Толкатель 1 дискретный Выходной сигнал
выдвигается
Y4 Толкатель 1 дискретный Выходной сигнал
задвигается
Y5 Толкатель 2 дискретный Выходной сигнал
выдвигается
Y6 Толкатель 2 дискретный Выходной сигнал
задвигается
Y7 Лампочка 1 дискретный Выходной сигнал
Y8 Лампочка 2 дискретный Выходной сигнал

Результат выполненной работы


Мнемосхема участка сортировки деталей представлена на рисунке 3.

Рисунок 3 – Мнемосхема «Участка сортировки»

4
Листинг программы

Листинг блока анимации


(*Анамация Pusher 1*)
IF NOT X_3 AND NOT X_7 AND NOT X_9 AND NOT n THEN
Detail_1.bInvisible:=TRUE;
END_IF

IF X_3 AND NOT n1 THEN


Detail_1.nXOffset:=290;
Detail_1.nYOffset:=1;
Detail_1.bInvisible:=FALSE;
n:=1;
5
END_IF

IF X_7 AND X_9 THEN


Detail_1.bInvisible:=TRUE;
Detail_1.nXOffset:=0;
Detail_1.nYOffset:=0;
n:=0;
n1:=0;
END_IF

IF Y_3 AND NOT n2 AND X1 THEN


MOV:=MOV+1;
n1:=1;
n3:=0;
CASE MOV OF
10:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=6;
20:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=30;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=25;
30:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=40;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=35;
40:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=50;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=45;
50:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=60;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=55;
60:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=70;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=65;
6
70:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=80;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=75;
80:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=90;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=85;
90:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=100;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=95;
100:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=110;
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=105;
n2:=1;
END_CASE
ELSIF X7 AND n2 THEN
Detail_1.nXOffset:=290;
Detail_1.nYOffset:=135;
END_IF

IF Y_4 AND X2 AND NOT n3 THEN


MOV:=MOV-1;
n2:=0;
CASE MOV OF
90:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=100;
80:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=90;
70:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=80;
60:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=70;
7
50:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=60;
40:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=50;
30:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=40;
20:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=30;

10:
Pusher_1.nXOffset:=0;
Pusher_1.nYOffset:=0;
MOV:=0;
n3:=1;
END_CASE
END_IF

(*Анамация Pusher 2*)


IF NOT X_6 AND NOT X_8 AND NOT X_10 AND NOT nn THEN
Detail_2.bInvisible:=TRUE;
END_IF

IF X_4 AND NOT n11 THEN


Detail_2.nXOffset:=545;
Detail_2.nYOffset:=0;
Detail_2.bInvisible:=FALSE;
nn:=1;
END_IF

IF X_8 AND X_10 THEN


Detail_2.bInvisible:=TRUE;
Detail_2.nXOffset:=0;
Detail_2.nYOffset:=0;
nn:=0;
n11:=0;
END_IF

IF Y_5 AND NOT n22 AND X4 THEN


MOV1:=MOV1+1;
8
n11:=1;
n33:=0;
CASE MOV1 OF
10:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=6;
20:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=30;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=25;
30:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=40;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=35;
40:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=50;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=45;
50:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=60;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=55;
60:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=70;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=65;
70:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=80;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=75;
80:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=90;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=85;
90:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=100;
9
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=95;
100:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=110;
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=105;
n22:=1;
END_CASE
ELSIF X8 AND n22 THEN
Detail_2.nXOffset:=545;
Detail_2.nYOffset:=135;
END_IF

IF Y_6 AND X5 AND NOT n33 THEN


MOV1:=MOV1-1;
n22:=0;
CASE MOV1 OF
90:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=100;
80:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=90;
70:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=80;
60:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=70;
50:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=60;
40:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=50;
30:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=40;
20:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=30;

10
10:
Pusher_2.nXOffset:=0;
Pusher_2.nYOffset:=0;
MOV1:=0;
n33:=1;
END_CASE
END_IF

Рисунок 4 – Мнемосхема «Участка сортировки» в режиме выполнения


программы

11
Вывод
При выполнение лабораторной работы были выполнены все
поставленные задачи:
 создать проект в инструментальной среде codesys;
 создать программу имитации сортировки деталей.
Получил навыки в эксплуатации инструментальной среды codesys.
В ходе запуска программы заготовка на мнемосхеме не определяются, как
только код заготовки совпадёт запрограммированным кодом (дискретный
сигнал, соответствующий определённому карману) толкатель сбросит деталь
в карман. При начальном определении датчиком Х3, Х6 деталька
отображается под толкателем, но в первых циклах программы деталька
промелькнёт в начале конвейерной линии, что является необъяснимым
явлением.
В программу необходимо установить библиотеку SysLibVisu.lib,
библиотека в файле с программой.
Для плавной детализации частей установки в среде визуализации нужно
настроить в процессе пусконаладке на стенде.

12