Лабораторна робота №11.2. Читання сенсора та керування конвеєром у DobotStudio Pro
Мета: навчитися безпечно перевіряти дискретні входи й виходи MG400, читати стан конвеєрного сенсора в DobotStudio Pro, керувати реле конвеєра через підтверджений канал і створити Blockly-цикл «запуск конвеєра — очікування деталі — зупинка» з тайм-аутом і безпечним станом.
Результати навчання та передумови
Після виконання студент уміє:
зіставляти фізичний сигнал із каналом DI/DO без копіювання номерів із відео;
пояснювати різницю між електричним рівнем, станом входу та подією «деталь виявлена»;
читати DI у панелі I/O та Blockly-журналі;
керувати конвеєром тільки через перевірений релейний канал;
визначати активний рівень сенсора експериментально;
реалізовувати очікування сенсора з тайм-аутом;
переводити конвеєр у стан OFF при запуску, завершенні, помилці та тайм-ауті;
пояснювати, чому E-Stop MG400 може не зупинити окремо живлений конвеєр.
Передумови: успішно виконана ЛР-11, допуск до фізичного комплексу, знання PNP-логіки 24 В, присутність оператора й підписана карта I/O конкретного MERC-I5.
Середовище виконання
Середовище
Статус
Примітка
Google Colab
не використовується
Немає доступу до фізичних I/O
Локальний ПК
основне
Windows і DobotStudio Pro; версію записати
Raspberry Pi
частина сигнального тракту
Конфігурацію GPIO, мережі й сервісів не змінювати
Фізичний комплекс MERC-I5
потрібен
MG400, Power Hub, один сенсор і конвеєр; оператор обов'язковий
Необхідні знання та матеріали
відеоурок «Robot Arm Programming (Dobot MG400) Ep2: Sensor State Reading and Conveyor Belt Control» тривалістю близько 14 хв 04 с;
ЛР-11 і збережений проєкт із перевіреними точками;
мультиметр, легка навчальна деталь, секундомір і підписана оператором таблиця каналів;
окремий доступний вимикач живлення або реле конвеєра: E-Stop MG400 не вважається засобом гарантованої зупинки конвеєра.
Ризики та правила безпеки
Ризики
Небезпека
Наслідок
Захист у цій роботі
Неправильний DO
запуск іншого механізму
робота лише з підписаним псевдонімом CONVEYOR_RUN_DO
Неправильний активний рівень
конвеєр працює замість зупинки
рівні ON/OFF вимірюються й перевіряються до Blockly-запуску
Защемлення стрічкою або валом
травма рук, волосся, одягу
мінімальна механічна швидкість, очищена зона, окремий вимикач
E-Stop MG400 не зупиняє конвеєр
рух стрічки після аварії робота
оператор одночасно контролює E-Stop і живлення конвеєра
Нескінченне очікування сенсора
безперервний рух конвеєра
обов'язковий тайм-аут і CONVEYOR OFF
Брязкіт або хибне спрацювання
повторний/неочікуваний цикл
стабілізаційна затримка та перевірка повторюваності
Пряме з'єднання 24 В і GPIO
пошкодження Raspberry Pi
тільки Power Hub з оптопарною розв'язкою; перевірка мультиметром
Заборонені дії
використовувати DI_03, DI_04, DO_01 або DO_02 лише тому, що вони показані у відео;
подавати 24 В MG400 безпосередньо на GPIO Raspberry Pi;
перемикати невідомий DO методом перебору;
змінювати проводку під напругою або без електричної схеми;
запускати конвеєр без оператора біля окремого вимикача;
використовувати forever без тайм-ауту, умови виходу та гарантованого OFF;
вважати відсутність сигналу підтвердженням проходження деталі;
керувати адаптивним грипером через DO MG400;
одночасно налагоджувати рух MG400 і невідомі I/O.
Умови негайної зупинки
Зупинити конвеєр окремим вимикачем/реле при потраплянні руки, одягу чи предмета до вала, заклинюванні, сходженні стрічки, падінні деталі, невідповідності DO, перегріві або незвичному звуку. Натиснути E-Stop при небезпеці від MG400, але окремо перевірити, що конвеєр справді зупинений.
Безпечний стан
CONVEYOR_RUN_DO перебуває у перевіреному стані OFF;
стрічка фізично нерухома;
програма DobotStudio зупинена, MG400 Disabled;
деталь не затиснута в приводі або напрямній;
невідомий або втрачений сигнал сенсора блокує продовження циклу.
Передпусковий чекліст
ЛР-11 завершена, MG400 підключається через 172.16.21.250.
Оператор присутній; E-Stop MG400 і окремий вимикач конвеєра доступні.
Підписана карта I/O; у ній визначені PART_SENSOR_DI і CONVEYOR_RUN_DO.
Виміряні активні рівні сенсора та стани CONVEYOR ON/OFF.
Power Hub забезпечує розв'язку; прямого з'єднання 24 В із GPIO немає.
Стрічка, вал і напрямні оглянуті; сторонніх предметів немає.
Механічний регулятор конвеєра встановлений на мінімум.
Створити одноцикловий алгоритм конвеєра з тайм-аутом.
Виконати 10 проходів деталі й оцінити повторюваність.
Зупинити конвеєр, виконати Disable/Disconnect і оформити журнал.
Методичні вказівки й теоретичні відомості
1. Що показано у відео
У відеоуроці показано DobotStudio Pro 2.7.1, панель I/O, Remote I/O, читання двох сенсорів через DI_03 і DI_04, друк станів у Running log, перемикання DO_01/DO_02 та Blockly-цикл із точками P1–P6.
Елемент відео
Адаптація для MERC-I5
два сенсори
у паспорті підтверджено один конвеєрний сенсор
DI_03, DI_04
замінити підписаним PART_SENSOR_DI
DO_01, DO_02
використовувати лише підтверджений CONVEYOR_RUN_DO; DO грипера не застосовувати
цикл forever
замінити одним циклом із тайм-аутом; повтор — лише вручну
точки P1–P6
рух робота не є обов'язковим у ЛР-11.2
global speed із відео
не копіювати; швидкість стрічки задається механічно
Відео не має субтитрів. Незрозумілі налаштування не відтворюють на обладнанні без звірки з офіційним посібником і локальною схемою.
2. Логічні псевдоніми
У звіті та алгоритмі використовуються функціональні імена:
Text
PART_SENSOR_DI = DI_ПІСЛЯ_ПРОЗВОНЮВАННЯ
PART_DETECTED_LEVEL = 0 або 1 після вимірювання
CONVEYOR_RUN_DO = DO_ПІСЛЯ_ПРОЗВОНЮВАННЯ
CONVEYOR_ON_LEVEL = 0 або 1 після перевірки
CONVEYOR_OFF_LEVEL = протилежний перевірений рівень
TIMEOUT_S = значення за виміряним часом проходження + запас оператора
Псевдонім не приховує невідоме значення: його дозволено замінити номером лише після підписаної перевірки.
3. Безпечний автомат
Mermaid
flowchart TD
A["START: conveyor OFF"] --> B["Read sensor baseline"]
B -->|invalid| X["FAULT: conveyor OFF"]
B -->|valid| C["Conveyor ON"]
C --> D["Wait for detection with timeout"]
D -->|detected| E["Conveyor OFF"]
D -->|timeout| X
E --> F["Log result; END"]
Рис. 1. Одноцикловий автомат конвеєра з безпечним станом
Для першої реалізації рух MG400 і грипер не додаються: це дозволяє окремо перевірити сигнали та зупинку конвеєра.
Виконання лабораторної роботи
Крок 1. Проаналізувати відеоурок
Перегляньте другу частину відеокурсу. Заповніть таблицю «час — DI/DO або дія — стан — фізичний результат — адаптація MERC-I5».
Очікуваний результат: зафіксовані читання двох DI, перемикання DO, журнал і повний Blockly-цикл із відео.
Критерій правильності: номери каналів із відео позначені як чужа конфігурація, а не як карта MERC-I5.
Якщо результат не отримано: не переходьте до I/O; опишіть доступні кадри й позначте незрозумілі кроки Потребує перевірки.
Крок 2. Скласти карту I/O без запуску механізмів
При вимкненому живленні звірте маркування проводів Power Hub. Після дозволу оператора виміряйте рівні кожного потрібного каналу без підключення навантаження або з безпечним тестовим навантаженням.
Функція
Клема/провід
Канал MG400
Неактивний рівень
Активний рівень
Безпечний стан
Підпис
PART_SENSOR_DI
деталь не підтверджена
CONVEYOR_RUN_DO
конвеєр OFF
Очікуваний результат: два функціональні канали однозначно ідентифіковані й підписані.
Критерій правильності: зміна сенсора впливає лише на визначений DI; безпечний рівень DO фізично зупиняє реле.
Якщо результат не отримано: не перебирайте канали; фізична частина завершується без перемикання DO.
Крок 3. Підключити DobotStudio Pro і перевірити I/O
Підключіться до MG400 за 172.16.21.250, залишивши робот Disabled. Відкрийте I/O monitoring. Переконайтеся, що CONVEYOR_RUN_DO має безпечний рівень OFF.
Очікуваний результат: стан обох підтверджених каналів видно, робот не рухається, конвеєр зупинений.
Критерій правильності: обрано канали з підписаної карти; інші DO не перемикаються.
Якщо результат не отримано: Disconnect, перевірка версій і карти разом з оператором.
Крок 4. Визначити логіку сенсора
Запишіть DI без деталі, потім повільно внесіть деталь у зону сенсора нерухомого конвеєра й знову запишіть DI. Повторіть 10 разів без руху стрічки.
Очікуваний результат: визначено PART_DETECTED_LEVEL; усі 10 внесень дають однаковий результат.
Критерій правильності: 10/10 спрацювань, а при вилученні деталі вхід повертається до базового стану.
Якщо результат не отримано: не підлаштовуйте сенсор без дозволу; перевірте живлення, геометрію й сигнал мультиметром.
Крок 5. Перевірити ручну зупинку й DO конвеєра
Оператор встановлює мінімальну механічну швидкість. Коротко встановіть CONVEYOR_RUN_DO у перевірений рівень ON, потім одразу OFF. Виміряйте час фактичної зупинки стрічки. Окремо перевірте фізичний вимикач.
Очікуваний результат: конвеєр запускається лише від підтвердженого DO і гарантовано зупиняється від OFF та окремого вимикача.
Критерій правильності: інші механізми не активуються; після OFF стрічка нерухома.
Якщо результат не отримано: окремо вимкніть живлення конвеєра, виконайте Disconnect і зафіксуйте інцидент.
Крок 6. Створити Blockly-монітор сенсора
Створіть окремий проєкт, який читає тільки PART_SENSOR_DI, додає зрозумілий підпис до значення й друкує його в Running log з обмеженою частотою. Рухові блоки та DO не додавайте.
Text
repeat 20 times
print "PART_SENSOR=" + read(PART_SENSOR_DI)
sleep 0.2 s
end
Очікуваний результат: у журналі 20 значень; внесення деталі змінює стан відповідно до таблиці.
Критерій правильності: проєкт сам завершується; немає forever, руху й перемикання DO.
Якщо результат не отримано: Stop, перевірте канал і активний рівень; не переходьте до керування конвеєром.
Крок 7. Створити одноцикловий алгоритм конвеєра
Побудуйте Blockly-проєкт за таким псевдокодом, підставивши лише підтверджені канали й рівні:
Text
set CONVEYOR_RUN_DO = OFF
if sensor state is invalid:
log "FAULT_BASELINE"
end
set CONVEYOR_RUN_DO = ON
start timer
while sensor != PART_DETECTED_LEVEL and elapsed < TIMEOUT_S:
sleep 0.05 s
set CONVEYOR_RUN_DO = OFF
if sensor == PART_DETECTED_LEVEL:
log "PART_DETECTED"
else:
log "TIMEOUT"
end
Якщо використовувана версія Blockly не має доступного таймера, реалізуйте лічильник обмеженої кількості ітерацій. wait until без межі часу заборонено.
Очікуваний результат: одноцикловий проєкт завжди виконує OFF після виявлення або тайм-ауту.
Критерій правильності: немає руху MG400, грипера, другого сенсора, forever або автоматичного повтору.
Якщо результат не отримано: не запускайте проєкт; виправте всі шляхи завершення так, щоб вони приводили до OFF.
Крок 8. Виконати позитивний і негативний тести
Позитивний: покладіть одну деталь на початок стрічки, запустіть один цикл і виміряйте час до сенсора.
Негативний: запустіть цикл без деталі й дочекайтеся тайм-ауту, залишаючись біля вимикача.
Очікуваний результат: у позитивному тесті — PART_DETECTED і зупинка; у негативному — TIMEOUT і зупинка.
Критерій правильності: після обох тестів CONVEYOR_RUN_DO=OFF і стрічка фізично нерухома.
Якщо результат не отримано: негайно вимкніть конвеєр фізично; не повторюйте тест до аналізу причини.
Крок 9. Перевірити повторюваність
Виконайте 10 одиночних проходів однієї деталі на незмінній механічній швидкості. Після кожного проходу вручну поверніть систему в початковий стан лише при вимкненому конвеєрі.
Очікуваний результат: 10 записів часу, стану DI й результату зупинки.
Критерій правильності: 10/10 виявлень; жодного автоматичного повтору; кожен цикл завершився OFF.
Якщо результат не отримано: зупиніть серію, зафіксуйте хибне/пропущене спрацювання й перевірте геометрію сенсора.
Крок 10. Завершити роботу
Установіть CONVEYOR_RUN_DO=OFF, фізично переконайтеся в нерухомості, виконайте Stop, Disable і Disconnect. Оператор вимикає живлення у затвердженому порядку.
Очікуваний результат: конвеєр нерухомий, MG400 вимкнений, журнали й проєкти збережені.
Критерій правильності: у звіті є фінальний доказ OFF і відсутності руху.
Якщо результат не отримано: не залишайте стенд; передайте керування оператору й відключіть конвеєр окремим засобом.
Сценарії перевірки
Тип
Сценарій
Очікування
позитивний
деталь внесена в нерухомий сенсор
DI змінюється до PART_DETECTED_LEVEL
позитивний
деталь рухається конвеєром
PART_DETECTED, потім OFF
негативний
деталі немає
тайм-аут і OFF
негативний
DI не повернувся до baseline
новий цикл заблокований
негативний
канал не відповідає карті
запуск заборонений
граничний
короткий імпульс/брязкіт
не спричиняє повторного циклу
аварійний
E-Stop MG400 натиснуто
робот зупинено; конвеєр перевірено й зупинено окремо
Таблиці вимірювань і метрики
№
Baseline DI
Detected DI
Час до сенсора, с
Результат
DO після циклу
Фізично зупинено
1
…
10
Додатково зафіксуйте: версії ПЗ/контролера, фактичні DI/DO, активні рівні, механічне положення регулятора, TIMEOUT_S, час зупинки й результат окремого вимикача.
активні рівні, час проходження, хибні спрацювання, відмінності від відео
Звіт
10%
журнал, скриншоти, таблиці, підписи й статус апробації
Разом
100%
Перебір DO, пряме підключення 24 В до GPIO, робота без окремого засобу зупинки конвеєра або нескінченний цикл без тайм-ауту є критичною помилкою.
Контрольні питання
Чому не можна копіювати DI_03, DI_04, DO_01 і DO_02 із відео?
Як визначити активний рівень сенсора?
Навіщо використовувати логічні псевдоніми каналів?
Чому wait until без тайм-ауту небезпечний для конвеєра?
Яким має бути безпечний стан реле конвеєра?
Чому E-Stop MG400 може не зупинити стрічку?
Для чого Power Hub потрібна оптопарна розв'язка?
Чому швидкість конвеєра не можна прочитати програмно?
Чому відсутність сигналу сенсора блокує, а не продовжує цикл?
Чому рух MG400 і грипер не включено до першої перевірки I/O?
Висновки
ЛР-11.2 адаптує другу частину відеокурсу до фактичної архітектури MERC-I5: замість копіювання двох сенсорів і номерів каналів студент спочатку підтверджує один реальний сенсор і реле конвеєра, потім читає DI, перевіряє DO та реалізує обмежений у часі одноцикловий автомат. Будь-який невідомий сигнал або тайм-аут переводить конвеєр у OFF; рух MG400 і грипер відокремлені від первинної перевірки I/O.