- Распечатать
Управление состояниями машины и количеством деталей с помощью Edge IO и Node-RED
Управление состояниями станка и количеством деталей с помощью Edge IO и Node-RED
Узнайте, как использовать поток Node-RED для контроля состояния станка с помощью Edge IO.
В этой статье рассматривается рабочий процесс подключения датчика луча излома и датчика тока к Edge IO для управления состоянием и подсчета деталей в Tulip. Для этого используется поток библиотеки Tulip Node-RED, который может быть импортирован на граничное устройство клиента.
К концу этой статьи у вас будет следующий поток в Node-RED для отправки данных с подключенных датчиков на машину в Tulip.
Вам нужно будет выполнить следующие шаги:
- Настройка оборудования: Подключение пограничного входа-выхода
- Настройка машины: Создание машины в Tulip
- Установка Node-RED: Импорт, редактирование и развертывание потока Node-RED из библиотеки Tulip.
Что вам понадобится
Датчик тока: CR3111-3000 или другой аналогичный трансформатор тока
- резистор нагрузки правильного размера для трансформатора тока, рекомендуется 100 Ом для CR3111-3000 (см. раздел "Настройка оборудования" для определения размеров).
- Разрывная балка
- 3,5 мм плоская отвертка
1. Настройка оборудования - подключение краевого входа/выхода
Этот рабочий процесс предполагает, что вы будете использовать трансформатор тока и разрывную балку, подключенные к Edge IO.
Расчет размера резистора нагрузки: При использовании CR3111-3000 рекомендуется использовать резистор 100 Ом. Если используется другой токовый клещ, вы можете рассчитать максимально допустимый размер резистора(R_burden
) исходя из эффективного отношения витков(T_e
) и максимального измеряемого тока(I_max
) следующим образом: R_burden = 3,12 * T_e / I_max
. Ваш резистор может быть меньше, чем максимально допустимый размер резистора; это уменьшит разрешение датчика.
Подключите токовые клещи (CR3111-3000) и разрывной луч к Edge IO следующим образом:
Токовый клещ
- Измерение переменного тока через кабель питания в вашей машине
- Подключите резистор между двумя проводами токового зажима, как показано на рисунке.
- Присоедините один провод к клемме [+] дифференциального АЦП и один провод к клемме [-] дифференциального АЦП.
- Разрывной луч
- Захват создания детали
- Подсоедините коричневый провод (+24 В) к клемме +24 В на АЦП SAR.
- Подсоедините синий провод (gnd) к клемме заземления банка цифровых входов
- Подключите черный провод (out) к выводу 1 блока цифровых входов.
Кроме того, убедитесь, что вы подали питание на устройство и подключили его к сети, подключив кабель ethernet к порту WAN.
2. Настройка машины - создание машины в Tulip
Чтобы отправить данные с разрывной балки и датчика тока в Tulip, давайте сначала создадим машину, используя API Tulip в качестве источника данных. Подробный обзор см. в разделе Настройка новой машины статьи Как использовать API атрибутов машины.
В этом примере мы создали машину с двумя атрибутами:
- Current (float) - представляет ток, возвращаемый датчиком.
- Количество деталей (int) - сигнал от разрывной балки, указывающий на завершение изготовления детали.
Вы захотите записать значения attributeId и
machineId
для передачи в поток Node-RED.
Вы также можете настроить тип машины, чтобы присвоить его машине, если вы планируете использовать датчик тока для изменения таких аспектов, как состояние машины, или выполнять какие-либо подсчеты на основе выходов датчика. Обратитесь к разделу Как настроить типы машин, если это представляет интерес.
3. Настройка Node-RED
Откройте портал Edge Device Portal на Edge IO, подключенном к разрывной балке и датчикам тока. Запустите редактор Node-RED, используя следующие учетные данные:
- Имя пользователя: admin
- Пароль: пароль вашего Edge IO
Смотрите дополнительную информацию здесь, чтобы начать работу с Node-RED на Edge IO.
3a. Импорт потока библиотеки
Чтобы импортировать поток библиотеки, выполните шаги, описанные в документе Импортирование потоков Tulip Node-RED. Поток для импорта - machine_visibility.json, а импорт создает в редакторе вкладку Machine Visibility with Current Clamp and Breakbeam.
3b. Обзор потока
Этот поток состоит из двух отдельных рабочих потоков:
Счетчик деталей
Первый поток - это мониторинг количества деталей с помощью датчика траверсы. Этот поток состоит из четырех функциональных узлов:
Monitor Pin
- Назначение: Определить вывод(ы) GPIO на Edge IO для мониторинга через свойство enabled pin.
- Фильтр для pinUp
- Цель: Из полезной нагрузки сообщения определить, истинно ли событие на контролируемом выводе (выводах).
- Increment Part Count
- Цель: Увеличить количество частей переменной потока при истинном событии на выводе.
- Атрибут машины Tulip Machine: Part Count
- Назначение: Отправить полезную нагрузку (partCount) в Tulip через API.
Мониторинг среднеквадратичного тока
Второй путь - это мониторинг датчика тока, подключенного к входу АЦП (аналого-цифрового преобразователя). Этот поток состоит из шести функциональных узлов.
Дифференциальные показания АЦП
- Назначение: Назначение профиля аналоговой конфигурации на вход АЦП.
- Фильтр 1/5 показаний
- Цель: Извлечение каждого пятого измерения (5 секунд) для передачи в Tulip.
- Передать сообщение
- Цель: Сбросить счетчик показаний для каждого пятого сообщения до нуля.
- Сбросить сообщение и инкремент
- Цель: Для всех остальных показаний увеличить счетчик показаний на 1.
- Масштабирование CR-3111
- Назначение: Масштабирование измерения датчика в соответствии со спецификациями производителя.
- Атрибут машины Tulip: Среднеквадратичный ток
- Назначение: Отправка полезной нагрузки (partCount) в Tulip через API.
Есть также четыре дополнительных узла, которые по умолчанию отключены, но могут быть включены, чтобы состояние машины определялось Node-RED. Обратите внимание, что для выполнения этой же логики в Tulip можно использовать машинные триггеры.
Ток > 100 мА?
- Назначение: Проверьте, превышает ли значение тока 100 мА.
- Состояние = ВКЛ
- Цель: Установить полезную нагрузку в ON, если ток больше 100 мА.
- Состояние = ВЫКЛ
- Цель: Установить полезную нагрузку в положение OFF, если ток меньше или равен 100 мА.
- Атрибут машины "Тюльпан": Состояние
- Назначение: Отправить полезную нагрузку (состояние) в Tulip через API.
3c. Редактирование потока
Чтобы завершить настройку этого потока, информация об устройстве для атрибута Tulip Machine Attribute: Part Count и Tulip Machine Attribute: RMS Current узлы должны быть включены с полями
attributeId и
machineIdf
из машины, настроенной ранее.
В зависимости от используемого датчика можно дополнительно отредактировать узел CR-3111 Scaling, чтобы отразить коэффициент трансформации трансформатора тока.
3d. Развертывание потока
Когда поток Node-RED создан и необходимые параметры добавлены, можно развернуть поток и начать просматривать данные, поступающие в Tulip от разрывной балки и датчиков тока.
Выбрав опцию Debug message в правой части редактора Node-RED Editor, вы сможете увидеть ответы и соответствующие коды состояния от API Tulip.
Чтобы получить более подробную информацию о кодах состояния, перейдите к документации API в вашем экземпляре Tulip (т.е. .tulip.co/apidocs). В частности, обратитесь к документации по конечной точке POST /attributes/report
.
Теперь вы сможете увидеть данные и в Tulip, перейдя на вкладку конфигурации машины.
Технические детали потока Node-RED
Ниже приведена подробная информация об узлах и их параметрах конфигурации по умолчанию, импортированных с файлом machine_visibility.json.
Часть Счетчик
Контакт монитора
Назначение: Определите вывод(ы) GPIO на Edge IO для мониторинга через свойство включенного вывода.
Тип узла: Цифровой вход
Свойства по умолчанию:
- Режим работы -
Непрерывный
- Частота обновления -
1 секунда
- Включенные контакты -
1
- Фильтр для pinUp
- Режим работы -
Назначение: Из полезной нагрузки сообщения определить, истинно ли событие на контролируемом выводе (выводах).
Тип узла: Коммутатор
Свойства по умолчанию:
- Свойство -
msg.payload
- Правила -
истинно
- Increment Part Count
- Свойство -
Назначение: Увеличивает количество частей переменной потока при событии pin true.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить
flow.partCount
в выражение$flowContext('partCount') + 1
- Установить
msg.payload
в значениеflow.partCount
- Атрибут машины Tulip Machine: Part Count
- Установить
Назначение: Отправить полезную нагрузку (partCount) в Tulip через API.
Тип узла: Машинный атрибут
Свойства по умолчанию:
- Информация об устройстве* -
{"attributeId":"", "machineId":""}
. - Источник атрибута -
msg.payload
- Информация об устройстве* -
Монитор среднеквадратичного тока
Дифференциальные показания АЦП
Назначение: Присвоить аналоговый профиль конфигурации входу АЦП.
Тип узла: Высокоскоростной аналоговый
Свойства по умолчанию:
Analog Config -
Differential ADC RMS @ 1kHZ
- Выберите АЦП для конфигурирования -
дифференциальный АЦП
- Включенные выходы -
RMS
- Размер буфера -
1000
- Частота дискретизации (Гц) -
1000
+ Тип данных -RMS
+ Режим вывода -Непрерывный
+ Частота обновления (секунды) -1
- Фильтр 1/5 показаний
- Выберите АЦП для конфигурирования -
Назначение: Извлечение каждого пятого измерения (5 секунд) для передачи в Tulip.
Тип узла: Коммутатор
Свойства по умолчанию:
Свойство -
flow.numReadings
Правила:
== 4
иначе
- Передать сообщение
Назначение: Сбросить счетчик показаний для каждого пятого сообщения до нуля.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить
flow.numReadings
на0
. - Отбросить сообщение и увеличить
- Установить
Назначение: Для всех остальных показаний увеличить количество показаний на 1.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить
flow.numReadings
в выражение$flowContext('numReadings') + 1
- CR-3111 Масштабирование
- Установить
Назначение: Масштабирование измерения датчика в соответствии со спецификациями производителя.
Тип узла: Шаблон подпотока
Свойства по умолчанию:
- Свойство -
данные
- Масштаб* -
3000
- Смещение -
0
- Атрибут машины Tulip Machine: Среднеквадратичный ток
- Свойство -
Назначение: Отправить полезную нагрузку (partCount) в Tulip через API.
Тип узла: Машинный атрибут
Свойства по умолчанию:
- Информация об устройстве* -
{"attributeId":"", "machineId":""}
. - Источник атрибута -
msg.data[0]
- Информация об устройстве* -
Подпоток для вычисления состояния машины
Is Current > 100mA?
Назначение: Проверьте, превышает ли значение тока 100 мА.
Тип узла: Переключатель
Свойства по умолчанию:
Свойство -
msg.data[0]
Правила:
> 0.1
иначе
- Состояние = ВКЛ
Назначение: Установить полезную нагрузку в состояние ON, если ток больше 100 мА.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить
msg.payload
вON
- Состояние = ВЫКЛ
- Установить
Назначение: Установить полезную нагрузку в состояние OFF, если ток меньше или равен 100 мА.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить
msg.payload
вOFF
- Атрибут машины Tulip Machine: Состояние
- Установить
Назначение: Отправка полезной нагрузки (состояния) в Tulip через API.
Тип узла: Машинный атрибут
Свойства по умолчанию:
- Информация об устройстве* -
{"attributeId":"", "machineId":""}
. - Источник атрибута -
msg.payload
- Информация об устройстве* -
* Параметры должны быть обновлены, чтобы поток работал должным образом. Значение шкалы датчика тока должно быть изменено в соответствии с рекомендациями производителя.
Дополнительное чтение
- Документация Node-RED
- Подключение датчика 4-20 мА с помощью Edge IO и Node-RED
- Подключение аналогового осциллографа с помощью Edge IO и Node-RED
Вы нашли то, что искали?
Вы также можете зайти на community.tulip.co, чтобы задать свой вопрос или узнать, сталкивались ли другие с подобным вопросом!