Рубрики
Без рубрики

Как обнаружить аномалии данных, используя симулятор и модульную модель IIT

Обнаружение аномалий данных в постоянном потоке событий в потоке данных датчика IIOT … Помечено Ruby, Python, RaspberryPi, IoT.

Обнаружение аномалий данных в постоянном потоке событий данных датчика IIT

Производственные компании ищут способы автоматического анализа данных записанного датчика, обнаруживать ошибки и улучшить производственные процессы. Обнаружение аномалии в промышленном данном датчике является проблемой многих производственных компаний, поскольку существует большое разнообразие типов и производителей датчиков на IIOT.

Популярные приложения IIT часто требуют обнаружения аномалии, такие как мониторинг и оповещение активов, прогнозирующее обслуживание машин и безопасности и безопасности на заводском этаже.

В этом посте мы покажем, как создать постоянный поток событий данных датчиков с использованием нашей заводской модели IIT и как вручную добавлять аномалии данных. Запишите данные потока событий и добавьте записи на наш симулятор для воспроизведения их по желанию. Настройте трубопроводы данных для обнаружения этих аномалий данных и отвечают на них, отправляя текстовые уведомления.

Создание непрерывного потока действительных данных с читателем продукта на основе камеры

В оформлении Предыдущий блог Post Мы объяснили, как построить модель ленточного лента IIT. Мы сделали модель читателя продукта на основе камеры, которые читают данные продукта из QR-кода полос. Мы также показали, как гибко создавать такие QR-коды из файла JSON с данными продукта.

В этом посте мы используем тот же метод и добавляем измерения измерений в качестве атрибутов «X_MM» и «Y_MM» и значения около 800,0 к файлу входных данных. Измените каждую измерение измерений менее чем плюс или минус 0,5 мм допуска и генерируют QR-коды. Это образец нашего продукта данных:

[                            
  [ {"name":"product_id","value":"123456","data":{"variant":"2b","color":"green","x_mm":"800.21","y_mm":"799.85"}},    {"name":"product_id","value":"123451","data":{"variant":"2b","color":"green","x_mm":"800.49","y_mm":"799.96"}}
  ] //,...
]

Распечатайте QR-коды и приклейте их вместе в полосу достаточно долго, чтобы обернуть вокруг конвейерной ленты. Запустите заводскую модель IIT, и она производит постоянный поток данных продукта, включая меры измерений.

Вручную добавлять аномалии данных к потоку данных продукта

Опять же, используйте сценарий производителя QR Code для создания и печати данных продукта, кодируемых в QR-кодах. На этот раз они должны содержать аномалии данных. Создайте новый файл JSON и варьируйте, по меньшей мере, одно значение измерения на вводу более чем Plus или минус 0,5 мм допуска.

[
  [
{"name":"product_id","value":"123456","data":{"variant":"2b","color":"green","x_mm":"800.21","y_mm":"799.45"}},
{"name":"product_id","value":"123451","data":{"variant":"2b","color":"green","x_mm":"800.51","y_mm":"799.96"}}
  ],
  [
{"name":"product_id","value":"123452","data":{"variant":"2b","color":"green","x_mm":"799.81","y_mm":"798.85"}},    {"name":"product_id","value":"123457","data":{"variant":"2d","color":"red","x_mm":"801.22","y_mm":"800.35"}}
  ]
]

Создайте QR-коды, распечатайте их и вырежьте их ножницами. Приклейте QR-коды к задней части приставок, поэтому мы можем бросить их на конвейерную ленту нашего заводской модели IIT.

Запись потока событий данных датчика IIOT для симулятора

С помощью прокладки QR-кода и подвески с закодированными данными продукта на месте запускают заводскую модель и посмотрите, как поток событий будет напечатан на монитор вашего Raspberry Pi. По умолчанию модель будет создавать только действительные данные продукта, как кодируются на полосе QR в бесконечной цикле. Выбросьте кабеля на конвейерную ленту, а модель добавит соответствующие данные аномалии на поток событий. Заводская модель не знает, что представляет собой аномалию данных и будет сообщать только данные датчика, как измерено.

Запустите модуль IIOT Factory в два раза в течение пяти минут каждый и запишите данные. Первый раз ничего не делают с подсасителями и, следовательно, записывать безупречный поток действительных данных продукта. Второй раз используйте подстанчицы, чтобы добавить несколько аномалий данных на записанный поток событий. HTTP API нашей Raspberry Pi предоставляет конечные точки после начала и остановки записи. Орган ответа конечной точки остановки содержит записанные данные.

Код Ruby Sinatra для записи потоков событий мы добавили в XAPIX с открытым исходным кодом IIOT Server Похоже:

$rec = nil

def recording?
  !$rec.nil?
end

def record_event!(event)
  event = event.slice('name', 'value', 'data').merge('timestamp' => Time.now.to_f)
  $rec << event if recording?
  event
end

post '/start_rec' do
  raise('already recording') if recording?
  $rec = []
  status 201
rescue StandardError => error
  status 400
  { error: error.message }.to_json
end

post '/stop_rec' do
  raise('not recording') unless recording?
  res_payload = $rec.to_json
  $rec = nil
  res_payload
rescue StandardError => error
  status 400
  { error: error.message }.to_json
end

# Make sure to call record_event! in your event endpoint
post '/event' do
  payload = parse_body(request)
  record_event!(payload)
  #...
end

Записанные данные, возвращаемые HTTP API, имеют много удваимых. Это связано с тем, что ограниченное количество кодов QR данных продукта на конвейерной ленте повторяется в петле. Чтобы получить уникальные идентификаторы продукта и сохранить записанные данные в файл трассировки, в котором каждая строка содержит запись данных одного события в формате JSON, запустите скрипт на данных, которые выглядят так:

require 'json'                 

res_body = '[{ YOUR JSON RESPONSE }, ...]' 
File.open("./iiot_factory_product_dimensions_regular.json", 'w') do |f| 
  JSON.parse(res_body).each.with_index do |row, i|
    row['value'] = (100000 + i).to_s; 
    f.puts(row.to_json)
  end
end

Дважды выполните заводскую модель, чтобы получить два файла трассировки, один с аномалиями и один без каких-либо. Файлы трассировки могут иметь сотни записей и выглядеть так:

{"name":"product_id","value":"100001","data":{"variant":"2b","color":"green","x_mm":"800.21","y_mm":"799.85"},"timestamp":1601371059.556218}
{"name":"product_id","value":"100002","data":{"variant":"2b","color":"green","x_mm":"799.81","y_mm":"799.85"},"timestamp":1601371062.339446}
{"name":"product_id","value":"100003","data":{"variant":"2c","color":"gray","x_mm":"800.11","y_mm":"800.05"},"timestamp":1601371065.3834803}
{"name":"product_id","value":"100004","data":{"variant":"2c","color":"gray","x_mm":"800.33","y_mm":"799.65"},"timestamp":1601371067.9262557}
{"name":"product_id","value":"100005","data":{"variant":"2b","color":"green","x_mm":"800.33","y_mm":"799.77"},"timestamp":1601371070.470316}

Воспроизведение нескольких потоков событий данных датчика IIOT с помощью симулятора

Мы в XAPix добавили наши два файла трассировки на наш симулятор для воспроизведения файлов трассировки на симуляторе по желанию. В предыдущем посте в блоге мы кратко объяснили, как создать такой симулятор самостоятельно, если вы не хотите использовать наши.

Воспроизведите файл трассировки без аномалий несколько раз одновременно для моделирования большого количества регулярных объемов данных. Затем воспроизведите один файл трассировки, содержащий аномалию в симуляторе. Аномалия трудно обнаружить в регулярном трафике данных и, следовательно, хороший тест для программного обеспечения для обнаружения аномалии.

Технические трубопроводы обнаружения аномалии

Вы можете либо строить вручную программный скрипт с помощью логики принятия решения о аномалиях данных, если инцидент записан на вашем собственном сервере KAFKA. Нужно хорошо работать с вашим симулятором.

Или > Продолжить чтение < Полная версия статьи о нашем блоге XAPIX и создать бесплатную XAPIX Community Edition учетная запись.

Присоединяйтесь к нашему сообществу IoT

Мы работаем над последующим совещанием в эту серию блога, чтобы вдохновить вас новыми идеями о том, как использовать XAPIX IIOT SERVER Как только вы настроили это. Мы хотели бы услышать ваши идеи и сотрудничать!

Свяжитесь со мной на Twitter Если вы хотите обсудить этот учебник или если у вас есть вопросы или отзывы о выпуске SCAPIX Community. Или действительно что-нибудь еще. Мы с нетерпением ждем ответа от вас!

Оригинал: “https://dev.to/oliverxapixio/how-to-detect-data-anomalies-using-a-simulator-and-an-iiot-factory-model-5hdm”