- Распечатать
Управление состояниями машины и количеством деталей с помощью 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) - представляет собой ток, возвращаемый датчиком.
- Part Count (int) - сигнал от разрывной балки, указывающий на завершение изготовления детали.
Вы должны записать значения attributeId и
machineId
для передачи в поток Node-RED.
Вы также можете задать тип машины (Machine Type), если планируете использовать датчик тока для изменения таких параметров, как состояние машины, или выполнять какие-либо подсчеты на основе выходов датчика. Если это представляет интерес, обратитесь к разделу " Как настроить типы машин ".
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 Machine Attribute: Среднеквадратичный ток
- Назначение: Передача полезной нагрузки (partCount) в Tulip через API.
Имеются также четыре дополнительных узла, которые по умолчанию отключены, но могут быть включены, чтобы состояние машины определялось Node-RED. Обратите внимание, что для выполнения этой же логики в Tulip можно использовать машинные триггеры.
Is Current > 100mA?
- Назначение: Проверяет, превышает ли значение тока 100 мА.
- Состояние = ON
- Назначение: Установить полезную нагрузку в состояние ON, если ток больше 100 мА.
- Состояние = ВЫКЛ
- Цель: Установить полезную нагрузку в состояние OFF, если ток меньше или равен 100 мА.
- Атрибут Tulip Machine: Состояние
- Назначение: Отправить полезную нагрузку (состояние) в 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, вы сможете увидеть ответы и соответствующие коды состояния от API Tulip.
Чтобы получить более подробную информацию о кодах состояния, перейдите к документации по API в вашем экземпляре Tulip (например, .tulip.co/apidocs). В частности, обратитесь к документации по конечной точке POST /attributes/report
.
Теперь вы сможете увидеть данные и в Tulip, перейдя на вкладку конфигурации машины.
Технические детали потока Node-RED
Ниже приведена подробная информация об узлах и их параметрах конфигурации по умолчанию, импортированных с помощью файла machine_visibility.json.
Счетчик детали
Мониторный вывод
Назначение: Определите вывод(ы) GPIO на Edge IO для мониторинга с помощью свойства enabled pin.
Тип узла: Цифровой вход
Свойства по умолчанию:
- Режим работы -
непрерывный
- Частота обновления -
1 секунда
- Включенных выводов -
1
- Фильтр для pinUp
- Режим работы -
Назначение: Из полезной нагрузки сообщения определить, истинно ли событие на контролируемом выводе (выводах).
Тип узла: Switch .
Свойства по умолчанию:
- Свойство -
msg.payload
- Правила -
истинно
- Increment Part Count
- Свойство -
Назначение: Инкрементировать счетчик частей переменной потока по событию pin true.
Тип узла: Change .
Свойства по умолчанию:
Правила:
- Установить значение
flow.partCount
в выражение$flowContext('partCount') + 1
- Установить
msg.payload
в значениеflow.partCount
- Атрибут машины Tulip Machine: Part Count
- Установить значение
Назначение: Передача полезной нагрузки (partCount) в Tulip через API.
Тип узла: Машинный атрибут
Свойства по умолчанию:
- Device Info* -
{"attributeId":"", "machineId":""}
. - Источник атрибута -
msg.payload
- Device Info* -
Монитор среднеквадратичного тока
Дифференциальные показания АЦП
Назначение: Назначить аналоговый профиль конфигурации на вход АЦП.
Тип узла: Высокоскоростной аналоговый
Свойства по умолчанию:
Analog Config -
Differential ADC RMS @ 1kHZ
.- Select ADC to Configure -
Differential ADC
- Включенные выходы -
RMS
- Размер буфера -
1000
- Частота дискретизации (Гц) -
1000
+ Тип данных -RMS
+ Режим вывода -Непрерывный
+ Частота обновления (сек.) -1
- Фильтр 1/5 показаний
- Select ADC to Configure -
Назначение: Извлечение каждого пятого измерения (5 секунд) для передачи в Tulip.
Тип узла: Switch .
Свойства по умолчанию:
Свойство -
flow.numReadings
Правила:
== 4
иначе
- Передать сообщение
Назначение: Сбросить счетчик показаний для каждого пятого сообщения до нуля.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить значение
flow.numReadings
равным0
. - Сброс сообщения и инкремент
- Установить значение
Назначение: Для всех остальных считываний увеличить количество считываний на 1.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить значение
flow.numReadings
в выражение$flowContext('numReadings') + 1
- CR-3111 Масштабирование
- Установить значение
Назначение: Масштабирование измерений датчика в соответствии со спецификациями производителя.
Тип узла: Шаблон подпотока
Свойства по умолчанию:
- Свойство -
данные
- Масштаб* -
3000
- Смещение -
0
- Атрибут машины "Тюльпан": RMS Current
- Свойство -
Назначение: Передача полезной нагрузки (partCount) в Tulip через API.
Тип узла: Машинный атрибут
Свойства по умолчанию:
- Device Info* -
{"attributeId":"", "machineId":""}
. - Источник атрибута -
msg.data[0]
- Device Info* -
Подпоток для вычисления состояния машины
Is Current > 100mA?
Назначение: Проверяет, превышает ли значение тока 100 мА.
Тип узла: Switch .
Свойства по умолчанию:
Свойство -
msg.data[0]
Правила:
> 0.1
иначе
- Состояние = ON
Назначение: Установить полезную нагрузку в состояние ON, если ток больше 100 мА.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить для
msg.payload
значениеON
- Состояние = OFF
- Установить для
Назначение: Установить полезную нагрузку в состояние OFF, если ток меньше или равен 100 мА.
Тип узла: Изменить
Свойства по умолчанию:
Правила:
- Установить
msg.payload
вOFF
- Атрибут машины Tulip Machine: Состояние
- Установить
Назначение: Передача полезной нагрузки (состояния) в Tulip через API.
Тип узла: Машинный атрибут
Свойства по умолчанию:
- Device Info* -
{"attributeId":"", "machineId":""}
. - Источник атрибута -
msg.payload
- Device Info* -
* Для корректной работы потока необходимо обновить параметры. Значение шкалы датчика тока должно быть изменено в соответствии с рекомендациями производителя.
Дополнительное чтение
- Документация Node-RED
- Подключение датчика 4-20 мА с помощью Edge IO и Node-RED
- Подключение аналогового осциллографа с помощью Edge IO и Node-RED
Вы нашли то, что искали?
Вы также можете зайти на community.tulip.co, чтобы задать свой вопрос или узнать, сталкивались ли другие с подобным вопросом!