Описание функционала программы ПЛК
Описание входов и выходов ПЛК Inovance Easy320
| Индикатор | Клемма | Описание | Индикатор | Клемма | Описание |
|---|---|---|---|---|---|
| X0 | A1 | Энкодер | Y0 | B1 | Камера |
| X1 | A2 | Датчик продукта | Y1 | B2 | Отбраковщик |
| X2 | A3 | Датчик продукта для сортировщика | Y2 | B3 | Старт/Стоп линии |
| X3 | A4 | Y3 | B4 | Зеленый сигнал светофора | |
| X4 | A5 | Датчик корзины отбракованных продуктов | Y4 | B5 | Сигнал о переполнении корзины отбракованных продуктов |
| X5 | A6 | Y5 | B6 | Красный сигнал светофора | |
| X6 | A7 | Y6 | B7 | Звуковой сигнал | |
| X7 | A8 | Кнопка сброса счетчиков | Y7 | B8 | Сортировщик |
Определения
- Сигнал с выхода ПЛК – физический контакт ПЛК, выдающий дискретный сигнал
- Сигнал на вход ПЛК – физический контакт ПЛК, принимающий дискретный сигнал
- Момент подачи сигнала на оборудование – непосредственно сама подача сигнала от ПЛК на оборудование
- Момент получения сигнала от оборудования – непосредственно само получение сигнала на ПЛК от оборудования
Взаимодействие с ПЛК
TCP сервер
ПЛК имеет собственный TCP сервер, который рассчитан на 6 одновременных подключений. Сервер разворачивается на 5001 порту.
TCP сервер обрабатывает сообщения, на основании которых ПЛК действует определённым образом:
| Строка, формат строки | Действие ПЛК |
|---|---|
1~код_продукта |
Разбирает строку: 1 – ПЛК установит флаг "Пропустить продукт" для продукта в очереди с кодом, соответствующим код_продукта из строки, ~ – разделитель |
0~код_продукта |
Разбирает строку: 0 – ПЛК установит флаг "Браковать продукт" для продукта в очереди с кодом, соответствующим код_продукта из строки, для такого продукта будет включаться отбраковщик, ~ – разделитель |
get-program-version |
В ответ возвращает строку с информацией о текущей версии программы |
turn-on:Bn |
Включает физический выходn – номер выхода от 1 до 8, кроме 3 |
turn-on:Bn$t |
Включает физический выход на заданное количество времениn – номер выхода от 1 до 8, кроме 3t – количество времени в мс |
turn-off:Bn |
Отключает физический выходn – номер выхода от 1 до 8, кроме 3 |
stop-line |
Регистрирует событие "Получено сообщение stop-line" |
Применение TCP сервера:
- для работы с ETL:
- ETL при старте задания подключается к серверу, используя от 1-го до 5 подключений (настраивается в настройках подключения)
- ETL посылает на сервер ПЛК строки в формате
1~код_продукта,0~код_продукта: пропустить, либо отбраковать продукт - ETL посылает строку
stop-lineв момент, заданный в схеме оборудования пользователем, например. для включения оборудования для остановки линии
- узнать текущую версию программы ПЛК: подключиться по TCP, отправить строку
get-program-version
OPC UA сервер
ПЛК имеет OPC UA сервер, который развёрнут на порту 4840. Данный сервер предназначен для предоставления информации и установки значений переменных.
Внимание
Данный сервер принимает только авторизованные подключения, которые имеют только Encode Track Line 2 и PLC Tuner. Это означает, что для установки значений переменных, доступных по OPC UA, необходимо использовать Encode Track Line 2, либо PLC Tuner.
Описание основного функционала
Оборудование, под которое рассчитан основой функционал:
- Датчик продукта
- Энкодер, если имеется
- Камера
- Моноблок с ETL
- Отбраковщик
Режимы работы программы ПЛК
Режимы работы программы ПЛК определяют способ расчёта моментов подачи сигналов на управляемое оборудование:
- работа по таймеру
- работа по энкодеру
Выбор режима зависит от наличия энкодера:
- если есть энкодер – работа по энкодеру
- если нет энкодера – работа по таймеру
Режим работы по таймеру
В режиме работы по таймеру ПЛК будет определять моменты подачи сигналов на оборудование на основании временных интервалов движения продукта от одного оборудования к другому на линии последовательно:
- датчик продукта → камера
- камера → отбраковщик
Интервалы нужно замерить в мс.
Режим работы по энкодеру
В режиме работы по энкодеру ПЛК будет определять моменты подачи сигналов на оборудование на основании расчёта расстояний, преодолеваемых продуктом от одного оборудования к другому на линии последовательно:
- датчик продукта → камера
- камера → отбраковщик
Расстояния нужно замерить в мм.
Основной поток выполнения программы
Предварительные условия
- Включена камера, и она доступна по TCP
- Моноблок с ETL подключён к ПЛК
Датчик продукта
Датчик регистрирует продукт и подаёт сигнал на вход ПЛК X1 (A2).
В этот же момент ПЛК сохраняет у себя в памяти значения:
- временной метки при работе по таймеру
- расстояния, которое насчитал энкодер, при работе по энкодеру
Для предотвращения ложных срабатываний датчика продукта ПЛК отсчитывает заданное количество времени, в течение которого не регистрирует новые срабатывания датчика (устранение дребезга датчика продукта).
Камера
На основании сохранённых значений временной метки/расстояния в момент регистрации продукта датчиком ПЛК рассчитывает момент подачи сигнала на камеру. Сигнал подаётся с выхода Y0 (B1) на заданное количество времени.
Отправка кода с камеры на ПЛК, отправка сообщения от ETL на ПЛК
После подачи сигнала на камеру ПЛК ожидает по TCP соединению от неё код. Если камера присылает код, то ПЛК сохраняет его в памяти в порядке очереди продуктов.
Затем ПЛК ожидает по TCP соединению сообщение от ETL, на основании которого происходит поиск продукта по коду внутри памяти ПЛК и установка флага: браковать продукт, либо пропустить. Если продукт нужно браковать, то будет включаться отбраковщик, в момент, когда продукт будет находится возле него.
Отбраковщик
ПЛК подаёт сигнал на отбраковщик с выхода Y1 (B2). Сигнал подаётся заданное количество времени.
Момент подачи сигнала рассчитывается на основании времени движения продукта, либо расстояния, преодолеваемого продуктом, от места датчика до места отбраковщика. Расчёт времени или расстояния определяется режимом работы ПЛК.
Описание дополнительного функционала
Программа поддерживает дополнительный функционал, который рассчитан на работу с определённым оборудованием, либо изменяет основной поток выполнения программы.
Пропуск заданного количества срабатываний датчика продукта
Данный функционал может пригодиться, если невозможно рассчитать расстояние, либо время движения продукта в начале линии. Программа начнёт записывать временную метку или позицию продукта в зависимости от режима работы программы после пропуска заданного количества срабатываний датчика продукта.
Применение
Неизвестно время/расстояние от датчика продукта до камеры, но известно количество продуктов, которое можно отсчитать в этот промежуток линии:
- установить значение в переменную countOfMissedProductSensorTriggers
- значение для включения камеры установить
1(delayForTriggerCam, lengthToTriggerCam) - значение для включения отбраковщика подобрать опытным путём (delayForDecisionMaking, lengthToDecisionMaking)
Останов линии, авария, сигнал, что программа запущена
В программе заложен функционал, отвечающий за подачу сигнала с выхода ПЛК Y2 (B3), обозначающего несколько событий:
- "Достигнуто заданное количество отбракованной продукции подряд"
- "Задание в ETL запущено, программа ПЛК запущена"
- "Произошло залипание датчика продукта"
- "Получено сообщение stop-line"
По умолчанию выход ПЛК Y2 (B3) при запуске задания в ETL подаёт сигнал, что соответствует событию "Задание в ETL запущено, программа ПЛК запущена". При наступлении двух других событий выход перестаёт подавать сигнал.
Сигнал с выхода ПЛК Y2 (B3) можно инвертировать. В таком случае при событии "Задание в ETL запущено, программа ПЛК запущена" выход не будет подавать сигнал, а при наступлении двух других событий сигнал с выхода будет подаваться.
Сигнальная колонна
Данный функционал предназначен для включения сигналов на сигнальной колонне со следующими функциями:
- красный – подаётся в момент отбраковки продукта
- зелёный – подаётся в момент пропуска продукта
- звук – подаётся в момент отбраковки продукта
Под сигнальную колонну выделены выходы ПЛК:
Y3(B4) – зелёныйY5(B6) – красныйY6(B7) – звук
Каждый сигнал включается на заданное количество времени.
Сортировщик
ПЛК может управлять сортировщиком на 2 положения. За это отвечает сигнал с выхода Y7 (B8). Выход включён – одно положение сортировщика, выход выключен – другое положение сортировщика. Положение сортировщика изменяется согласно заданному количеству продуктов на каждую сторону.
Варианты расчёта момента переключения положения сортировщика:
- работа по таймеру, либо по энкодеру – зависит от режима работы программы ПЛК: нужно рассчитать время движения, либо расстояние, преодолеваемое продуктом, от датчика продукта в начале линии до сортировщика
- используется второй датчик продукта, находящийся рядом с сортировщиком: в таком случае нужно рассчитать время на переключение сортировщика из одного положения в другое
Корзина отбракованных продуктов
Данный функционал предназначен для регистрации сигналов от датчика переполнения корзины отбракованных продуктов.
Если датчик на вход X4 (A5) подаёт сигнал непрерывно по времени больше заданного значения, то включается сигнал с выхода Y4 (B5). Если сигнал от датчика подавался меньше заданного количества времени, сигнал с выхода подаваться не будет, и при следующем срабатывании датчика отсчёт времени начнётся заново.
После того, как датчик перестал подавать сигнал на вход X4 (A5), сигнал с выхода Y4 (B5) перестанет подаваться по прошествии заданного количества времени, но если данное время ещё не прошло, и датчик снова начал подавать сигнал, сигнал с выхода продолжит подаваться.