18.09.2024

Программирование контроллера овен: ПЛК1хх базовый курс (программирование в среде CODESYS 2.3)

Содержание

ПЛК100 контроллер для малых систем автоматизации с DI/DO

ОВЕН ПЛК100 – моноблочный контроллер с дискретными входами/выходами на борту для автоматизации малых систем

Назначение контроллера ОВЕН ПЛК100

  • Создание систем управления малыми и средними объектами.
  • Построение систем диспетчеризации.

Особенности ОВЕН ПЛК100

  • Компактный DIN-реечный корпус.
  • Дискретные входы/выходы на борту.
  • Наличие последовательных портов (RS-485, RS-232) и Ethernet.
  • Расширение количества точек ввода/вывода осуществляется путем подключения внешних модулей ввода/вывода по любому из встроенных интерфейсов.
  • Два варианта питания: 220 В переменного тока и 24 В постоянного тока.

Конкурентные преимущества ОВЕН ПЛК100

  1. Отсутствие ОС, что повышает надежность работы контроллеров.
  2. Скорость работы дискретных входов – до 10 КГц при использовании подмодулей счетчика.
  3. Большое количество интерфейсов на борту, работающих независимо друг от друга: Ethernet, 3 последовательных порта, USB Device для программирования контроллера.
  4. Встроенный аккумулятор, позволяющий «пережидать» пропадание питания: выполнение программы при пропадании питания и перевод выходных элементов в «безопасное состояние».
  5. Встроенные часы реального времени.
  6. Контроллер поддерживает работу с нестандартными протоколами по любому из портов, что позволяет подключать такие устройства как электро-, газо-, водосчетчики, считыватели штрих-кодов и т.п.

Программирование контроллеров ОВЕН ПЛК100

Программирование контроллеров ОВЕН ПЛК100 осуществляется профессиональной системой программирования CODESYS v.2.

Система программирования CODESYS для покупателей контроллеров ОВЕН предоставляется бесплатно.

Получить более подробную информацию по системе программирования CODESYS и скачать её можно с нашего сайта или с сайта производителя www. 3s-software.ru. 

Сервисное программное обеспечение ОВЕН ПЛК100

Программа обновления прошивки (внутреннее ПО) контроллера ОВЕН ПЛК100 и таргет-файлы можно скачать в разделе «Сервисное ПО контроллеров ОВЕН ПЛК100».

Дополнительные утилиты

Для удобства пользователей специалистами компании ОВЕН созданы дополнительные утилиты:

  • EasyWorkPLC – утилита для технолога, позволяющая изменять значения параметров, не изменяя при этом программу контроллера. Работает без CODESYS.
  • PLC_IO – утилита для работы с файловой системой контроллера, например, запись/считывание файлов с ПЛК. Работает без CODESYS.

Подробнее узнать про утилиты и скачать их можно на странице Утилиты EasyWorkPLC и PLC_IO. 

Ознакомиться с сертификатами можно скачать на странице сертификатов к приборам.

Функциональная схема

ПЛК160 Программируемый логический контроллер ОВЕН

Рекомендуется к использованию

  • В системах HVAC
  • В сфере ЖКХ (ИТП, ЦТП)
  • В АСУ водоканалов
  • Для управления малыми станками и механизмами
  • Для управления пищеперерабатывающими и упаковочными аппаратами
  • Для управления климатическим оборудованием
  • Для автоматизации торгового оборудования
  • В сфере производства строительных материалов

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

 

ОВЕН ПЛК160

Программируемые логические контроллеры ОВЕН ПЛК160 выполнены в полном соответствии со стандартом ГОСТ Р 51840-2001 (IEC 61131-2), что обеспечивает высокую аппаратную надежность.

По электромагнитной совместимости контроллеры соответствуют классу А по ГОСТ Р 51522-99 (МЭК 61326-1-97) и ГОСТ Р 51841-2001, что подтверждено неоднократными испытаниями изделия.

 

Вычислительные ресурсы

В контроллере изначально заложены мощные вычислительные ресурсы при отсутствии операционной системы:

  • высокопроизводительный процессор RISC архитектуры ARM9, с частотой 180МГц компании Atmel;
  • большой объем оперативной памяти — 8МБ;
  • большой объем постоянной памяти — Flash память, 4МБ;
  • объем энергонезависимой памяти, для хранения значений переменных — до 16КБ;
  • время цикла по умолчанию составляет 1мс при 50 логических операциях, при отсутствии сетевого обмена.

 

Дополнительно

Широкие возможности самодиагностики контроллера.

Встроенный аккумулятор, позволяющий «пережидать» пропадание питания — выполнять программу при пропадании питания, и переводить выходные элементы в «безопасное состояние». Время «пережидания» настраивается пользователем при создании проекта.

Встроенные часы реального времени.

Возможность создавать и сохранять архивы на Flash контроллера.

 

Условия эксплуатации

  • Расширенный температурный рабочий диапазон окружающего воздуха: от минус 10 °С до +50 °С
  • Закрытые взрывобезопасные помещения или шкафы электрооборудования без агрессивных паров и газов
  • Верхний предел относительной влажности воздуха — 80 % при 25 °С и более низких температурах без конденсации влаги
  • Атмосферное давление от 84 до 106,7 кПа

По устойчивости к климатическим воздействиям при эксплуатации ПЛК160 соответствует группе исполнения В4 по ГОСТ 12997-84.

По устойчивости к механическим воздействиям при эксплуатации ПЛК160 соответствует группе исполнения N2 по ГОСТ 12997.

По устойчивости к воспламенению и распространению пламени FV1 корпус контроллера соответствует ГОСТ Р 51841, разделу 6.

 

Конструктивные особенности

Контроллеры выполнены в компактном DIN-реечном корпусе. Габаритные и установочные размеры отличаются в зависимости от модификации, и приведены в конце раздела.

Расширение количества точек ввода\вывода осуществляется путем подключения внешних модулей ввода\вывода по любому из встроенных интерфейсов.

 

Электрические параметры

Два варианта питания для каждого контроллера:

  • переменный ток: (90-265)В, (47…63)Гц;
  • постоянный ток: (18-29)В.

Небольшая потребляемая мощность до 10Вт.

 

Контроллер

ПЛК160

Дискретные входы

16

Дискретные выходы

12

Аналоговые входы

8

Аналоговые выходы

4

 

Все дискретные входы контроллера измеряют сигнал 24В.

Тип сигнала может быть как n-p-n, так и p-n-p.

Количество «быстрых» дискретных входов зависит от модификации контроллера.

Дискретные выходы типа: Р — реле.

Количество быстрых дискретных выходов зависит от модификации контроллера.

«Быстрые» аналоговые входы, для подключения унифицированных датчиков тока, напряжения. Дискретные выходы контроллеров данной линейки могут быть настроены на выдачу ШИМ, или генератора с высокой точностью.

 

Аналоговые выходы могут быть

  • По току 4-20мА
  • По напряжению 0-10В
  • Универсальные — программно переключаемые ток\напряжение

 

Интерфейсы и протоколы

Все контроллеры данной линейки имеют большое количество интерфейсов на борту, работающих независимо друг от друга:

  • Ethernet;
  • До трех последовательных портов;
  • USB Device для программирования контроллера.

 

Сервисное программное обеспечение ОВЕН ПЛК160

Программа обновления прошивки (внутреннее ПО) контроллера ОВЕН ПЛК160 и таргет файлы можно скачать в разделе «Сервисное ПО контроллеров ОВЕН ПЛК ПЛК110-30, ПЛК110-32, ПЛК110-60, ПЛК160».

 

Поддерживаемые интерфейсы и протоколы

Протокол

Интерфейс

Применение

ОВЕН

RS-232

RS-485

Поддержка модулей ОВЕН Мх110.

Работа в сетях ОВЕН совместно с ТРМ2хх, ТРМ151, ТРМ148, ТРМ133 и т.д.

Modbus RTU

Modbus ASCII

RS-232

RS-485

Поддержка модулей ввода/вывода и операторских панелей, связь со SCADA-системами

Modbus TCP

Ethernet 10/100 Mbps

Поддержка модулей ввода/вывода, например ADAM-6000, связь со SCADA-системами

DCON

RS-232

RS-485

Поддержка модулей ввода/вывода I-7000, АDAM-4000, операторских панелей

GateWay (протокол CoDeSys)

RS-232

Ethernet 10/100 Mbps

USB-Device

Программирование контроллера, отладка пользовательской программы (в т. ч. высокоскоростная отладка в режиме Realtime по Ethernet).

Работа с файлами на встроенном Flash-диске. Связь с контроллерами других производителей, сделанных на базе CoDeSys.

Работа с OPC-сервером CoDeSys

Mass Storage Device

USB-Device

Представление Flash-диска ПЛК как внешнего файлового накопителя.

Работа с файлами архивов данных и файлами проекта

Так же в контроллерах данной линейки поддержана возможность работы по любому нестандартному протоколу по любому из портов, что позволяет подключать устройства с нестандартным протоколом (электро-, газо-, водосчетчики, считыватели штрих — кодов и т.д.).

 

Программирование

Программирование контроллеров осуществляется в профессиональной, распространенной среде CoDeSys v.2.3.x, максимально соответствующей стандарту МЭК 61131:

  • поддержка 5 языков программирования, для с

Программируемый логический контроллер ОВЕН ПЛК160


Отгрузка осуществляется в любой город России, а также: Белгород, Алексеевка, Беловское, Северный, Октябрский, Разумное, Стрелецкое, Таврово, Борисовка, Валуйки, Вейделевка, Волоконовка, Головчино, Губкин, Мелихово, Бехтеевка, Короча, Погореловка, Алексеевка, Красное, Бирюч, Ливенка, Красная Яруга, Новый Оскол, Прохоровка, Беленихино, Пролетарский, Сумовский, Ракитное, Ровеньки, Старый Оскол, Чернянка, Шебекино, Маслова Пристань, Яковлево, Строитель, Томаровка, Ржевка


Контроллер предназначен для:


  • Измерения аналоговых сигналов тока или напряжения и преобразования их к выбранной пользователем физической величине

  • Измерения дискретных входных сигналов

  • Управления дискретными (релейными) выходами

  • Управления аналоговыми выходами

  • Приема и передачи данных по интерфейсам RS-485, RS-232, Ethernet

  • Выполнения пользовательской программы по анализу результатов измерения дискретных и аналоговых входов, управления дискретными входами и выходами, передачи и приема данных по интерфейсам RS-485, RS-232, Ethernet

Госповерка: не требуется


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


Контроллер может быть применен на промышленных объектах, подконтрольных Ростехнадзору.


Логика работы контроллера определяется потребителем в процессе программирования контроллера. Программирование осуществляется с помощью программного обеспечения CoDeSys 2.3.


Особенности:


  • Широкие возможности самодиагностики контроллера

  • Встроенный аккумулятор

  • Встроенные часы реального времени

  • Возможность создавать и сохранять архивы во Flash-памяти контроллера


Контроллер может быть использован как:


  • Специализированное устройство управления выделенным локализованным объектом

  • Устройство мониторинга локализованного объекта в составе комплексной информационной сети

  • Специализированное устройство управления и мониторинга группой локализованных объектов в составе комплексной информационной сети


Технические характеристики:
































Параметр

Значение

Напряжение питания:

— ПЛК160-24. Х-Х

— ПЛК160-220.Х-Х



=22…28В (номинальное 24В)

~90…264В (номинальное 110/220В)

Потребляемая мощность:

— ПЛК160-24.Х-Х

— ПЛК160-220.Х-Х



≤ 35ВА

≤ 40ВА

Параметры встроенного источника питания:

— Выходное напряжение

— Ток

24 ± 3В

≤ 620мА

Количество дискретных входов

16

Минимальная длительность импульса, воспринимаемого дискретным входом


0,02 мс (выводы DI1…DI2)


 1 мс (выводы DI3…DI18)


Напряжение питания дискретных входов

24 ± 3В

Максимальный входной ток дискретного входа


≤ 7мА при питании 24В

≤ 8,5мА при питании 27В


Количество релейных выходных каналов

12

Время переключения из состояния «0» в состояние «1» и обратно

Выходы DО1. ..DО14: 50 мс

Максимальный ток, коммутируемый контактами реле


 ≤ 3А (при напряжении не более 250В переменного тока и cos j > 0,4)


 ≤ 3А (при напряжении  ≤ 30В постоянного тока)


Механический ресурс реле

≥ 300 000 циклов переключений при максимальной коммутируемой нагрузке

 ≥ 500 000 циклов переключений при коммутации нагрузки менее половины от максимальной

Аналоговые входы

8

Тип поддерживаемых унифицированных сигналов

Ток 0 (4)…20мА

Ток 0…5мА

Напряжение 0…10В

Предел основной приведенной погрешности

0,25%

Разрешающая способность

≥ 12 бит

Входное сопротивление:

— В режиме измерения тока

— В режиме измерения напряжения



≤ 170 Ом

≥ 200 кОм

Количество аналоговых выходов

4

Разрядность ЦАП

10 бит

Тип выходного сигнала:

— ПЛК160-Х. И

— ПЛК160-Х.У

— ПЛК160-Х.А



Ток 4…20мА

Напряжение 0…10В

Ток 4…20мА или напряжение 0…10В

Центральный процессор

RISC-процессор, 32 разряда, 200 МГц, на базе ядра ARM-9

Объем оперативной памяти

8 МБ, из них 1 МБ для кода пользовательской программы, 128 кБ для переменных пользовательской программы

Объем энергонезависимой памяти

4 МБ, из них 3 МБ доступно для хранения файлов и архивов

Размер Retain-памяти

≤ 16 кБ (по умолчанию задано значение 4 кБ)

Время выполнения одного цикла программы:

— Минимальное (нестабилизируемое)

— Установленное по умолчанию (стабилизированное)



250 мкс

1 мс

Индикация на передней панели

Светодиодная

Степень защиты корпуса

IP20 со сторон передней панели, IP00 со стороны клемм

Условия эксплуатации:

— Температура окружающей среды

— Относительная влажность, при 25°С и более низких температурах без конденсации влаги

— Атмосферное давление

−10°С. ..50°С

80%RH

84…106,7 кПа

Крепление

На DIN-рейку

Вес

≤ 0,75 кг


 

Что такое ОВЕН ПЛК

ОВЕН ПЛК – контроллер с HMI для построения локальных систем автоматизации.

Домашняя автоматизация часто начинается с простой, насущной задачи управления освещением. Часто необходимо управлять включением и выключением света из разных мест или с общего пульта или набора кнопок. При этом количество осветительных приборов, помещений, выключателей всегда различно. И схема управления получается разной от задачи к задаче.

В этом материале мы рассмотрим универсальное средство решение такой задачи – свободно программируемый контроллер ОВЕН ПЛК.

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

Создание алгоритма работы начинается с загрузки программы CoDeSys. Она бесплатна и входит в комплект поставки ПЛК. 

В CoDeSys реализовано несколько способов (языков) разработки алгоритма. Один из наиболее наглядных – релейные схемы LD.

Программируемый контроллер ОВЕН ПЛК

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

В языке LD принято реализовывать дискретные (релейные) алгоритмы. На схеме собираются последовательно и параллельно соединенные контакты. Их порядок и размещение задают определенные логические функции. Последовательное соединение задает логику «И», параллельное – «ИЛИ». Кроме того, есть контакты нормально замкнутые и нормально разомкнутые.

Каждому контакту поставлена в соответствие переменная. Это может быть входной сигнал контроллера, например, выключатель. Это может быть промежуточная переменная. Результат работы алгоритма, переменная связанная с выходными реле, задается в виде обмотки. Этот элемент всегда ставится в конце цепи, справа. При прохождении сигнала через обмотку на схеме LD физическое выходное реле ПЛК замыкается. Когда в программе сигнал перестает проходить через обмотку – реле размыкается.

Пример реализации проходного выключателя для трех кнопок и общего тумблера включения приведен на рисунке.

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

Проверить работу этой схемы можно прямо в системе программирования. Для этого вам не нужно иметь ПЛК. В CoDeSys реализована система эмуляции контроллера. Таким образом изучать программирование и пробовать свои первые алгоритмы можно прямо на вашем компьютере.

Более подробная информация приведена в видеокурсе «Разработка АСУ ТП в Codesys». Видеокурс создан специально для начинающих без опыта программирования. В нем приведена пошаговая инструкция по созданию первых проектов в CoDeSys, так чтобы вы могли сразу приступить к разработке своих алгоритмов.

Ранее ЭлектроВести писали, что компания международных автобусных перевозок FlixBus запустила между европейскими городами первый автобус на солнечных батареях. Первый лайнер отправился по маршруту: Дортмунд (Германия) – Эйндховен (Нидерланды) – Антверпен, Брюгге (Бельгия) – Кале (Франция) и Лондон (Великобритания).

По материалам: electrik.info.

Программная эмуляция входов и выходов ОВЕН ПЛК

Программирование ОВЕН ПЛК производится в среде CodeSys2.3, которая позволяет проводить эмуляцию(имитацию, симуляцию) работы контроллера. Т.е. даже физически не имея на руках ПЛК, можно проверить работу его программы.

Но бывает так, что ПЛК уже на объекте смонтирован в шкафу, все соединения к нему подведены и нужно проверить работу алгоритма отдельно для входов и выходов. Например, без прихода на входа ПЛК реальных сигналов прогнать программу и поклацать выходами. Либо наоборот- посмотреть работу ПЛК при поступлении реальных сигналов на входа, но управляющие сигналы на выхода ПЛК не давать, а смотреть их состояние в программе.

Это нетрудно реализовать программно. Алгоритм такой:

  1. Создаем переменные-флаги режима симуляции входов и выходов ПЛК.
  2. Создаем битовые массивы, служащие промежуточными буферами хранения состояний входов и выходов.
  3. В начале рабочего цикла программы данные физических входов ПЛК копируются в промежуточный буфер входов в том случае, если отключен режим симуляции входов. Если режим симуляции входов включен, данные не копируются.
  4. Выполняется основной алгоритм программы ПЛК. При этом работа ведется не с адресами физических входов и выходов ПЛК, а исключительно с промежуточными буферами входов и выходов.
  5. В конце рабочего цикла программы данные из промежуточного буфера выходов копируются в физические выхода ПЛК в том случае, если отключен режим симуляции выходов. Если режим симуляции выходов включен, данные не копируются.

На примере ОВЕН ПЛК110-30 делается это так:

Архив с программой

 

Контроллер

ARIES LYNX

ARIES/LYNX принял Motionnet и актуализировал управление до 32 осей, подключив
LYNX (двухосевой подчиненный контроллер) максимум 15 единиц.
С помощью удобного терминала с сенсорной панелью «PYXIS», продаваемого отдельно, такие операции, как пробный запуск, настройка
и т. д., можно легко выполнять без ПК.

 

[ Особенности ]

Адаптированный Motionnet
Адаптированный Motionnet, возможно управление этапами максимум по 32 осям с хост-контроллера (ПК и т. д.).) через коммуникационный порт.
Количество осей управления может быть увеличено с помощью 2-х осевого блока путем подключения нескольких блоков LYNX к одному ARIES.

 

Драйвер двигателя Дискретный тип
Поскольку драйвер двигателя является отдельным типом, он может быть подключен к различным драйверам двигателя с типами необработанных импульсных команд, как показано ниже.
· Драйвер 5-фазного шагового двигателя
· Драйвер 2-фазного шагового двигателя
· Драйвер серводвигателя
· Драйвер шагового двигателя α
Доступен блок драйверов серии «TITAN», который позволяет легко собрать систему с помощью кабельного соединения.

 

Функция линейной интерполяции
Линейная интерполяция возможна с опциональными 2 или 3 осями.
Если необходима функция интерполяции дуги окружности (опция), свяжитесь с нашим отделом продаж.

 

Триггерный выход
Триггерный сигнал, синхронизированный либо с импульсом двигателя, либо с импульсом энкодера по 2 осям внутри ОВНА, может быть выведен для внешнего измерительного оборудования
.
Также может выводиться сигнал запуска с синхронизированным сигналом запуска с сигналом BUSY (вождение), постоянным сигналом, в начале движения и в конце движения,
и дополнительным временем (выдача команды).

 

Общий ввод/вывод
Имеется 8 точек общего выходного сигнала, которые могут опционально управлять ВКЛ/ВЫКЛ, и входного сигнала, который может контролировать состояние ВКЛ/ВЫКЛ
соответственно, и каждая из них изолирована оптопарой.

 

RS-232C, Ethernet 2 Типа коммуникационного порта
ОВЕН управляется командой от хост-контроллера (ПК и т. д.) через коммуникационный порт. Оснащены двумя выбираемыми коммуникационными портами
, RS-232C и Ethernet.

 

Вождение с ручным терминалом «PYXIS»
При использовании ручного терминала с сенсорной панелью «PYXIS» (продается отдельно) возможна работа на сцене с ручным управлением
. Возможны возврат в исходное положение, привод абсолютного положения, привод относительного положения, выбор таблицы скоростей
, изменение настроек различных системных параметров, изменение настроек каждой таблицы скоростей,
и аварийный останов с помощью аварийного выключателя.

 

* Прилагаемый кабель питания предназначен для использования в Японии.Пожалуйста, предоставьте его покупателю, если необходим другой кабель питания. (~125В)

 

Кабель TITAN-AⅡ/DⅡF для контроллера (кабель импульса/датчика)

Кабель для связи между контроллером(ARIES,LYNX) и драйвером(TITAN).

Пульт дистанционного управления для программирования датчиков движения для NextGen III

Пульт дистанционного управления для программирования датчиков движения для парковочных фонарей NextGen III, настенных блоков Durado III, ламп Pegasus II High Bay, лампочек для кукурузы Aries III и ламп Titan V High Bay — простое программирование Датчик движения после установки

Примечание: 1 пульт дистанционного управления может запрограммировать все источники света. Так что вам нужно только 1-2 (запасной) для каждой установки. Пожалуйста, приобретите хотя бы 1, иначе свет может работать не так, как хотелось бы. Настройки датчика по умолчанию без использования пульта дистанционного управления: яркость 70% в течение 10 секунд с обнаружением движения, за которым следует бесконечное время ожидания при яркости 10%, чувствительности 20% и отключении датчика дневного света.

ВИДЕО О ПРОГРАММИРОВАНИИ. ПОСМОТРИТЕ И ПОПРАКТИКУЙТЕСЬ ПЕРЕД УСТАНОВКОЙ

Как использовать пульт дистанционного управления датчиком движения Nextgen 3 для программирования — обучающее видео

Как использовать пульт дистанционного управления датчиком движения Nextgen 3 для программирования — обучающее видео по программированию светодиодных фонарей для парковки серии nextgen III

ХАРАКТЕРИСТИКИ
  • Пульт на 5.Микроволновый датчик движения 8 ГГц  (некоторые модели NextGen III и другие, см. список артикулов)
  • 1 пульт дистанционного управления может запрограммировать несколько источников света
  • Может использоваться в качестве лампы включения/выключения с помощью пульта дистанционного управления
  • Встроенная подсветка на пульте дистанционного управления для удобного просмотра настроек.
  • 1 пульт дистанционного управления может программировать все источники света. Так что вам нужно только 1-2 (запасной) для каждой установки. Пожалуйста, приобретите хотя бы 1, иначе свет может работать не так, как хотелось бы.
СОВЕТЫ ПО ИСПОЛЬЗОВАНИЮ И НАСТРОЙКЕ
  • Требуется 2 батарейки АА (не входят в комплект)
  • Лучше всего использовать пульт ночью или в сумерках.Пульт дистанционного управления (на самом пульте) может быть плохо виден, а инфракрасное расстояние лучше. Также легче увидеть свет на датчике (датчик имеет одиночную световую индикацию полученной команды).
  • Пульт дистанционного управления на основе ИК (инфракрасного) излучения; расстояние в среднем 30 футов в помещении. Требует прямой видимости. (без стекол, без помех, новые батареи). ПРИМЕЧАНИЕ. Солнечный свет, электромагнитные балласты и т. п. уменьшат удаленное расстояние до менее 10 футов. Мы рекомендуем вам запрограммировать свет выше 20 футов, прежде чем спускаться или пытаться снова ночью и ближе.
  • Настройки яркости: 70%/80%/90%/100%  . Это уровень яркости для режима С движением или просто включен.
  • Настройки дневного света  10 лк, 30 лк, 50 лк, 100 лк  (используйте более низкую настройку, если свет включается слишком рано или в пасмурные дни.  Если свет включается при 10 лк в темный день, это нормально)  ПРИМЕЧАНИЕ: задержка дневного света равна 3 минут. Это означает, что изменения в освещении будут заметны через 3 минуты. При программировании настроек от заката до рассвета вам нужно будет подождать 3 минуты, прежде чем он ответит. Длительная задержка позволяет избежать его включения и выключения при включении фар или других изменениях освещения.
  • Время удержания при настройке яркости с движением: 10 с/1 мин/10 мин/30 мин
  • Настройки чувствительности: 20%/50%/75%/100%. Примечание. Максимальное расстояние 100 % может составлять до 50 футов, но на ветру могут подниматься растения или другие объекты. Угол луча датчика составляет около 100 градусов, поэтому он похож на световой рисунок или немного уже.
  • Уровень затемнения в режиме ожидания: 10%/20%/30%/50%
  • Время затемнения в режиме ожидания: бесконечно (всегда немного света) /1 мин/30 мин/60 мин
  • Кнопка тестирования для проверки чувствительности к движению.Время удержания 3 секунды при движении в тестовом режиме.

О RuggedGrade Lighting 

Rugged Grade Lighting — это производитель коммерческого освещения, который находится в Калифорнии, США. Все наши продажи и поддержка базируются в США, и, в отличие от других, мы будем здесь в течение длительного времени. Мы стремимся разрабатывать только светодиодные продукты премиум-класса и обеспечивать их лучшей поддержкой и обслуживанием. Наш девиз — Решения промышленного класса, потому что наши светильники сделаны лучше и служат дольше.

Разработано в США. Copyright 2014-2022

Овен — Эконолит

Инструменты обслуживания системы управления дорожным движением Aries могут использоваться техническим специалистом в качестве инструмента обслуживания для удаленного опроса контроллера перекрестка, чтобы выполнить наблюдательное устранение неполадок путем отображения графики перекрестка в реальном времени и программирования контроллера. Aries также может получать журналы событий от главного устройства и контроллера.Способность Aries облегчать оповещение об отказах может передавать сообщения о критических отказах на пейджер, что существенно сокращает время реагирования на ситуации обслуживания. Программирование координации Контроллеры ASC автоматически рассчитывают значения локальной координации на основе простых процентных соотношений и длин циклов. Управление трафиком Aries вместе с главным устройством ASC/2M удовлетворяет многочисленные потребности в управлении трафиком. Мастер обеспечивает работу с учетом трафика (TR) для автоматического выбора плана на основе измерения масштабируемого объема, масштабируемой занятости или большего значения каждого из них.ASC/2M также обеспечивает операцию Time-of-Day (TOD) для предсказуемых изменений плана и отмены TR в случае, когда длина цикла, выбранная операцией TR, больше, чем длина, выбранная TOD. Мастер позволяет координировать пересечение артерий при пересечении двух основных улиц и может быть отменен путем ручного выбора плана с помощью клавиатуры или центральной команды при возникновении особых условий. Инструменты анализа Aries предоставляет два мощных инструмента для определения эффективности запрограммированных параметров координации: динамическое отображение зеленой полосы и разделенный монитор.Динамическое отображение зеленой полосы Aries обеспечивает графическое отображение в реальном времени до 8 перекрестков и 32 системных детекторов. Дисплей зеленой полосы показывает сквозную зеленую полосу, а также фактическую зеленую полосу главной улицы. Aries отслеживает замыкание или блокировку зеленой полосы и указывает точку, в которой это произошло. Этот инструмент можно использовать для распознавания раннего возврата Main Street Green или пропуска этапов Main Street из-за позднего возврата. Характеристики • Распределенная замкнутая система управления трафиком • Архитектура клиент/сервер на базе ПК • Простой в использовании графический пользовательский интерфейс (GUI) • Многозадачный коммуникационный сервер позволяет несколько одновременных подключений к On-Street Masters (OSM) • Поддерживает Коммутируемое соединение на напрямую подключенных OSM • Гибкая архитектура связи между ведущими и локальными сетями, поддержка проводных, оптоволоконных или беспроводных сетей • Гибкий планировщик операций TOD • Мощный менеджер файлов журналов и событий • Поддержка контроллеров NEMA и 2070 • Дополнительный модуль пейджинга www. econolite.com

Стать разработчиком Hyperledger Aries — Начало работы

Вы хотите начать разработку с помощью Hyperledger Aries и Aries Cloud Agent Python (ACA-py), но считаете, что документация разбросана, а примеры неясны. Тогда это руководство для вас. Мы начинаем с шага 0. В этом пошаговом руководстве я объясню, как настроить локальную среду разработки, запустить два экземпляра ACA-py, которые создают соединение между ними, и выдавать учетные данные от одного к другому. .

VON-сеть

Прежде чем мы сможем выдать учетные данные, нам нужно создать определение учетных данных, а прежде чем мы сможем создать определение учетных данных, нам нужна схема. И схема, и определение учетных данных записываются в бухгалтерскую книгу Hyperledger Indy. Вы можете подключить ACA-py к существующему размещенному реестру, но в этом руководстве мы собираемся подключиться к локально работающему реестру. Локальный реестр имеет то преимущество, что у вас есть полный контроль над происходящим, что значительно упрощает отладку.

Репозиторий von-network упрощает запуск сети Hyperledger Indy на вашем компьютере. Чтобы запустить VON-сеть на вашем компьютере, на вашем компьютере должны быть доступны команды docker и docker-compose .

Сделать заказ VON-сети:

  1
  
 $ клон git https://github.com/bcgov/von-network
  

Запустить VON-сеть:

  1
2
  
 $ cd фон-сети
$ ./manage start --logs
  

Это запустит 4 узла Indy и один веб-сервер. Он покажет вывод журнала всех из них. Вы можете остановить просмотр журналов, нажав Ctrl-C , но это не остановит узлы и веб-сервер. Вы можете увидеть, что они все еще работают, запустив docker ps . Чтобы остановить VON-сеть, вы можете запустить:

Веб-сервер сети VON доступен в вашем браузере по адресу localhost:9000. Он должен выглядеть аналогично test.bcovrin.vonx.io.

Есть две важные вещи, которые нужно знать о бухгалтерской книге Инди. Во-первых, чтобы подключиться к леджеру, вам нужно получить его исходный файл/транзакцию. В сети VON вы можете использовать URL-адрес файла генезиса напрямую localhost:9000/genesis. С другими регистрами это может работать по-другому. Второе, что нужно знать, это то, что для создания схемы и определения учетных данных вам необходимо зарегистрировать DID в леджере. Здесь вы можете использовать часть «Аутентификация нового DID».

Когда сеть VON работает, пришло время настроить ACA-py.

АСА-ру

Существуют разные способы запуска ACA-py. Вы можете запустить его как отдельное приложение, а можете запустить в контейнере докеров.

Автономный

ACA-py — это приложение Python (да!), которое можно запускать как приложение командной строки. Он доступен в виде пакета Python:

.

  1
  
  $ pip3 установить aries-cloudagent
  

Или вы можете установить последнюю версию из репозитория:

  1
2
3
4
  
  $ git clone https://github. com/hyperledger/aries-cloudagent-python
$ cd Овен-облачный агент-питон
$ pip3 установить -r требования.txt -r требования.dev.txt -r требования.indy.txt
$ pip3 установить --no-cache-dir -e .
  

В любом случае, оба они зависят от зависимости python3-indy . python3-indy — это клиентская библиотека для связи с libindy . libindy — это пакет Ubuntu (написанный на Rust), который может создавать и управлять кошельком. Кошелек будет хранить такую ​​информацию, как записи о подключении, записи об обмене учетными данными и сами учетные данные.

В Ubuntu 18.04 вы можете установить libindy , используя:

  1
2
3
4
  
  $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68DB5E88
$ sudo add-apt-repository "deb https://repo.sovrin.org/sdk/deb бионический мастер"
$ sudo apt-получить обновление
$ sudo apt-get install -y libindy
  

Если установка ACA-py и libindy прошла успешно, вы сможете запустить:

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  
  $ aca-py --help
использование: aca-py [-h] [-v] {предоставление, начало} . ..

позиционные аргументы:
  {предоставление, начало}
    предоставление агента
    start Запустить новый процесс агента

необязательные аргументы:
  -h, --help показать это справочное сообщение и выйти
  -v, --version вывести версию приложения и выйти
  

Докер

Если вы не хотите устанавливать все это на свой компьютер, вы также можете запустить ACA-py в док-контейнере. На hub.docker.com/r/bcgovimages/aries-cloudagent доступны готовые образы, которые содержат ACA-py и все необходимые зависимости.Вы можете запустить его как:

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  
  $ docker run --net=host bcgovimages/aries-cloudagent:py36-1.16-0_0.6.0 --help
использование: aca-py [-h] [-v] {provision,start} ...

позиционные аргументы:
  {предоставление, начало}
    предоставление агента
    start Запустить новый процесс агента

необязательные аргументы:
  -h, --help показать это справочное сообщение и выйти
  -v, --version вывести версию приложения и выйти
  

Как видите, добавленные в конец команды передаются непосредственно в ACA-py. В приведенных ниже примерах предполагается, что у вас есть доступная команда aca-py , но вы также можете заменить ее командой docker run --net=host bcgovimages/aries-cloudagent:py36-1.16-0_0.6.0 .

Запуск двух экземпляров ACA-py

В этом примере я собираюсь запустить два экземпляра ACA-py, один с именем Алиса, другой с именем Боб. Алиса будет действовать как эмитент. Вы можете представить Алису стороной, которая выдаст вам учетные данные, такие как водительские права, сертификат пади или учетные данные для вашего варианта использования.Боб будет получателем и держателем учетных данных. Как конечный пользователь вы, вероятно, не будете запускать экземпляр ACA-py для хранения учетных данных, вместо этого вы будете использовать приложение Wallet, например приложение Trinsic.id. Однако при локальной разработке проще использовать экземпляр ACA-py, который сделает это за вас.

Что насчет демо?

Репозиторий aries-cloudagent-python содержит папку demo . Вы можете запустить демонстрацию, которая демонстрирует, как два экземпляра могут подключаться, выдавать учетные данные и многое другое.В чем разница между демонстрацией и примерами, которые я показываю здесь?

В демоверсии вы запускаете вещь, которую они называют «бегуном». Бенер состоит из «агента» и «контроллера». Все эти термины действительно сбивают с толку и не помогут вам понять, что это такое. «Агент» в данном случае — это экземпляр ACA-py. «Контроллер» в данном случае — это код, который взаимодействует с конечными точками администратора HTTP ACA-py. Если вы посмотрите на код, то увидите, что ACA-py запускается здесь:

.

  1
2
3
4
5
6
  
  по определению get_process_args (я):
        список возврата(
            сгладить (
                ([PYTHON, "-m", "aries_cloudagent", "start"], self.get_agent_args())
            )
        )
  

Вместо запуска ACA-py в терминале, как мы делаем здесь, они используют python -m . .. , чтобы сделать то же самое.

Часть «контроллер» — это часть, которая взаимодействует с конечными точками администратора ACA-py. Например, вы можете найти код, который вызывает конечную точку для создания приглашения, прямо здесь:

.

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
  
  асинхронное определение get_invite (я, use_did_exchange: bool, auto_accept: bool = True):
        себя.connection_id = Нет
        если use_did_exchange:
            # TODO можно ли использовать посредничество с соединениями обмена DID?
            invi_rec = ожидание self.admin_POST(
                "/вне диапазона/создать-приглашение",
                {"рукопожатие_протоколы": ["rfc23"]},
                params={"auto_accept": json.dumps(auto_accept)},
            )
        еще:
            если самопосредничество:
                invi_rec = ожидание self.admin_POST(
                    "/соединения/создать-приглашение",
                    {"mediation_id": сам. mediator_request_id},
                    params={"auto_accept": json.dumps(auto_accept)},
                )
            еще:
                invi_rec = ожидание self.admin_POST("/connections/create-invitation")

        вернуть invi_rec
  

Чтобы облегчить вам жизнь, демонстрация объединяет запуск экземпляра ACA-py и часть контроллера и называет его «раннером». Таким образом, всякий раз, когда вы запускаете раннер, ACA-py будет запускаться для вас.

В примерах, которые я привожу ниже, мы не будем использовать демо-раннеры, так как это то, что вы, вероятно, не хотите запускать для своего приложения.Вместо этого мы собираемся запустить ACA-py самостоятельно. Части «контроллера» будут выполнены с использованием команд curl . Это в основном то же самое, что и использование документации Swagger/OpenAPI, поставляемой с ACA-py.

Разрабатываемое вами приложение, которое взаимодействует с конечными точками администратора ACA-py, называется контроллером . В этих примерах контроллер — это всего лишь curl команд, но, конечно, вы можете разработать свой контроллер на любом языке, таком как Python, JavaScript или Go.

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

Запуск Алисы

Алиса — наш эмитент. Эмитент создаст схему и определение учетных данных, которые будут зарегистрированы в реестре. Чтобы эмитент мог зарегистрировать их в реестре, требуется общедоступный DID.Публичный DID — это DID, зарегистрированный в реестре. ACA-py не регистрирует DID сам по себе в леджере, вам нужно сделать это самостоятельно. В производственных реестрах регистрация DID в реестре стоит денег. Как владельцу вам не нужен общедоступный DID.

DID получен из открытого ключа. Открытый ключ является частью пары открытый-закрытый ключ. Пара ключей создается на основе начального значения. Во-первых, мы собираемся зарегистрировать DID в леджере, используя начальное число.

Пример начального числа: Алиса0000000000000000000000000001 .В производственной книге для вас будет зарегистрирован DID, и вы получите начальное значение.

Вы можете зарегистрировать DID на основе начального значения, используя веб-сервер von-network по адресу localhost:9000, используя раздел «Аутентификация нового DID». Введите семя, оставьте DID пустым, а для «Псевдоним» вы можете использовать «Алиса».

Вы можете сделать то же самое с помощью команды curl :

Алиса

  1
2
3
4
5
6
7
  
  $ curl -X POST "http://localhost:9000/register" \
-d '{"seed": "Алиса0000000000000000000000000001", "роль": "TRUST_ANCHOR", "псевдоним": "Алиса"}'
> {
  "сделал": "PLEVLDPJQMJvPLyX3LgB6S",
  "seed": "Алиса0000000000000000000000000001",
  "verkey": "DAwrZwgMwkTVHUQ8ZYAmuvzwprDmX8vFNXzFioxrWpCA"
}
  

Чтобы запустить ACA-py, необходимо указать аргументы командной строки. Помните упомянутый ранее URL-адрес генезиса [localhost:9000/genesis]? Вот где нам это нужно. Попробуйте запустить эту команду, чтобы узнать, сможете ли вы запустить Алису:

Алиса

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  
  $ aca-py start \
--метка Алиса \
-это http 0.0.0.0 8000 \
-от http\
--admin 0.0.0.0 11000 \
--admin-небезопасный-режим \
--genesis-url http://localhost:9000/genesis \
--seed Алиса0000000000000000000000000001 \
--конечная точка http://localhost:8000/ \
--отладка-соединения \
--авто-предоставление \
--wallet-тип инди \
--wallet-name Алиса1 \
--секретный ключ кошелька

::::::::::::::::::::::::::::::::::::::::::::::::
:: Алиса ::
:: ::
:: ::
:: Входящие перевозки: ::
:: ::
:: - http://0.0.0.0:8000 ::
:: ::
:: Исходящие перевозки: ::
:: ::
:: - http::
:: - https ::
:: ::
:: Общедоступная информация DID: ::
:: ::
:: - СДЕЛАЛ: PLEVLDPJQMJvPLyX3LgB6S ::
:: ::
:: API администрирования: ::
:: ::
:: - http://0. 0.0.0:11000 ::
:: ::
:: версия: 0.6.0 ::
::::::::::::::::::::::::::::::::::::::::::::::::

Слушаю...
  

Давайте рассмотрим параметры командной строки, чтобы увидеть, что они означают:

  • --label Алиса Это метка или имя, которое вы даете своему экземпляру. Это имя, которое, например, увидит приложение Wallet, когда вы попытаетесь установить соединение или когда вы получите учетные данные.
  • -it http 0.0.0.0 8000 и -ot http — это входящие и исходящие транспортные методы, которые ACA-py использует для связи с другими экземплярами ACA-py. Запомните здесь порт 8000 , он нужен для конечной точки .
  • --admin 0.0.0.0 11000 и --admin-insecure-mode — это параметры, которые настраивают, как ваше приложение контроллера может взаимодействовать с ACA-py. В этом случае конечные точки администратора доступны через порт 11000 и небезопасны, то есть аутентификация не требуется. Вперед, откройте localhost:11000. Вы должны увидеть документы Swagger, и вы должны увидеть предоставленную метку, в данном случае Alice. Это конечные точки, с которыми ваше приложение контроллера будет взаимодействовать
  • .

  • --genesis-url http://localhost:9000/genesis Это URL-адрес файла генезиса. Когда вы создаете схему и определение учетных данных, вы создаете транзакции в регистре Indy. Чтобы иметь возможность создавать эти транзакции, ACA-py должен знать о генезисной транзакции, это распространено в блокчейнах и распределенных реестрах.
  • --seed Alice000000000000000000000000001 Это начальное значение, которое мы использовали для регистрации DID. Это начальное значение доказывает, что вы являетесь владельцем общедоступного DID.
  • --endpoint http://localhost:8000/ Это URL-адрес, который ACA-py отправит в бухгалтерскую книгу, чтобы указать, где можно получить доступ к экземпляру ACA-py для вашего DID. Если вы запустили aca-py без ошибок, вы сможете найти эту конечную точку на своем веб-сервере von-network. Проверьте localhost:9000/browse/domain, вы должны увидеть что-то вроде:
  • --debug-connections Этот параметр обеспечивает печать дополнительной информации о соединениях, когда мы начинаем устанавливать соединение между Алисой и Бобом в следующем разделе.
  • --auto-provision Этот параметр гарантирует, что ACA-py создаст для вас кошелек, когда он не существует. Обычно вы должны создать кошелек только один раз, используя команду aca-py provision , но это выходит за рамки этой статьи.
  • --wallet-type indy , --wallet-name Алиса и --wallet-key secret — это параметры, которые используются для создания кошелька. В этой настройке кошелек хранится в файлах вашей системы.Вы можете найти кошельки в ~/.indy_client/wallet/ . Ключ необходим для записи и чтения в кошелек.

Если вы успешно запустите Алису, вы можете остановить ее, запустить снова с теми же параметрами, и она продолжит работу с того места, где остановилась. Если вы запустите Алису с другим именем кошелька , будет создан новый кошелек, поэтому у вас не будет доступа ко всем предыдущим данным, хранящимся в кошельке. Если вы измените значение seed здесь, не зарегистрировав его в реестре, вы получите сообщение об ошибке, например:

.

  1
  
  Ledger отклонил запрос на транзакцию: запрос клиента недействителен: не удалось аутентифицировать, невозможно найти verkey для xxxx
  

Начиная с Боба

Мы можем запустить Боба так же, как и Алису.Тем не менее, Боб будет нашим держателем. Боб не собирается создавать схему или определение учетных данных, поэтому ему не требуется общедоступный DID. На самом деле, если вы используете приложение-кошелек, у вас вообще не будет общедоступного DID. Помните, что регистрация DID стоит денег? Это означает, что только эмитент платит за регистрацию своего DID, а не держатель.

Бобу не нужен общедоступный DID, поэтому мы не собираемся регистрировать DID в реестре. Это означает, что наши параметры команды немного меняются. Откройте другой терминал и запустите:

Боб

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  
  $ aca-py start \
  --метка Боб \
  -это http 0.0.0.0 8001 \
  -от http\
  --admin 0.0.0.0 11001 \
  --admin-небезопасный-режим \
  --конечная точка http://localhost:8001/ \
  --genesis-url http://localhost:9000/genesis \
  --отладка-соединения \
  --авто-предоставление \
  --wallet-local-did \
  --wallet-тип инди \
  --имя-кошелька Bob1 \
  --секретный ключ кошелька

::::::::::::::::::::::::::::::::::::::::::::::::
:: Боб ::
:: ::
:: ::
:: Входящие перевозки: ::
:: ::
:: - http://0.0.0.0:8001 ::
:: ::
:: Исходящие перевозки: ::
:: ::
:: - http::
:: - https ::
:: ::
:: API администрирования: ::
:: ::
:: - http://0. 0.0.0:11001 ::
:: ::
:: версия: 0.6.0 ::
::::::::::::::::::::::::::::::::::::::::::::::::

Слушаю...
  

Добавлен один новый параметр: --wallet-local-did . У Боба нет общедоступного DID, но ему нужен локальный DID. Локальный DID будет использоваться Алисой для создания учетных данных, но об этом позже.

Экземпляр Bob ACA-py также имеет Admin API, вы получаете доступ к нему localhost:11001.

Теперь у вас должно быть два экземпляра ACA-py, работающих рядом друг с другом. Один для Алисы (эмитент) и один для Боба (держатель).Когда два агента работают, пришло время поиграть в контроллер для них обоих!

Соединение

Давайте пройдемся по шагам соединения Алисы и Боба.

1

Алиса создает приглашение

Алиса может создать приглашение типа:

Алиса

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  
  $ curl -X POST "http://localhost:11000/out-of-band/create-invitation" \
   -H 'Тип содержимого: приложение/json' \
   -д '{
  "рукопожатие_протоколы": [
    "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/didexchange/1. 0"
  ],
  "use_public_did": ложь
}'
> {
  "приглашение": {
    "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/out-of-band/1.0/invitation",
    "@id": "e20d3d8f-8958-4201-89eb-e74d28b5806a",
    "рукопожатие_протоколы": [
      "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/didexchange/1.0"
    ],
    "этикетка": "Алиса",
    "оказание услуг": [
      {
        "id": "#встроенный",
        "type": "сделал-связь",
        "ключи получателя": [
          "сделал: ключ: z6MkecMK1KjwHv9W7SvF3jhzBzhkAiuYHqADzvAKHu2wS6E6"
        ],
        "serviceEndpoint": "http://localhost:8000/"
      }
    ]
  },
  "след": ложь,
  "invi_msg_id": "e20d3d8f-8958-4201-89eb-e74d28b5806a",
  "invitation_url": "http://localhost:8000/?oob=eyJAdHl...",
  "состояние": "начальное"
}
  

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

 Публичное и непубличное приглашение

Общедоступные приглашения содержат DID для подключения других агентов. Для публичного приглашения реестр должен знать, в какой конечной точке можно связаться с агентом. Это означает, что приглашенному агенту требуется поиск в реестре. Непубличное приглашение не использует общедоступный DID, вместо этого оно содержит URL-адрес конечной точки службы, поэтому приглашенный агент может напрямую подключиться к приглашающему.

Пример публичного приглашения:

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  
  {
  "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/out-of-band/1.0/invitation",
  "@id": "c927b4a7-1901-433e-ac3f-16158431fd0a",
  "рукопожатие_протоколы": [
    "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/didexchange/1.0"
  ],
  "этикетка": "Алиса",
  "оказание услуг": [
    "делал:sov:UpFt248WuA5djSFThNjBhq"
  ]
}
  

Пример закрытого приглашения:

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  
  {
  "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/out-of-band/1. 0/приглашение",
  "@id": "e20d3d8f-8958-4201-89eb-e74d28b5806a",
  "рукопожатие_протоколы": [
    "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/didexchange/1.0"
  ],
  "этикетка": "Алиса",
  "оказание услуг": [
    {
      "id": "#встроенный",
      "type": "сделал-связь",
      "ключи получателя": [
        "сделал: ключ: z6MkecMK1KjwHv9W7SvF3jhzBzhkAiuYHqADzvAKHu2wS6E6"
      ],
      "serviceEndpoint": "http://localhost:8000/"
    }
  ]
}
  

serviceEndpoint имеет значение, которое вы установили с помощью --endpoint .

Когда Алиса создаст приглашение, экземпляр ACA-py зарегистрирует, что он создал приглашение:

Алиса

  1
2
3
4
5
  
  Создано новое соединение
    соединение: {'routing_state': 'none', 'invitation_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'accept': 'manual', 'updated_at': '2021-03-11 08:01:16. 546248Z', 'created_at 2021-03-11 08:01:16.546248Z', 'connection_id': '9ebac177-a3d4-4a74-be42-82f4e0cafefa', 'состояние': 'приглашение', 'invitation_mode': 'один раз', ​​'их_роль': ' приглашенный», «rfc23_state»: «приглашение отправлено»}

Добавлено приглашение
    соединение: {'routing_state': 'none', 'invitation_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'accept': 'manual', 'updated_at': '2021-03-11 08:01:16.550301Z», «created_at»: «2021-03-11 08:01:16.546248Z», «connection_id»: «9ebac177-a3d4-4a74-be42-82f4e0cafefa», «invitation_msg_id»: «638728b4-63b1-4a9a-82b c07d72925196', 'состояние': 'приглашение', 'invitation_mode': 'один раз', ​​'их_роль': 'приглашенный', 'rfc23_state': 'приглашение отправлено'}
  

2

Боб получает приглашение

Приглашение, которое должен получить Боб, представляет собой объект приглашения в ответе на вызов /out-of-band/create-invitation , сделанный Алисой.Боб может получить это приглашение, например:

.

Боб

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  
  $ curl -X POST "http://localhost:11001/out-of-band/receive-invitation" \
   -H 'Тип содержимого: приложение/json' \
   -д '{
  "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/out-of-band/1.0/invitation",
  "@id": "638728b4-63b1-4a9a-82b8-c07d72925196",
  "этикетка": "Алиса",
  "рукопожатие_протоколы": [
    "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/didexchange/1.0"
  ],
  "оказание услуг": [
    {
      "id": "#встроенный",
      "type": "сделал-связь",
      "ключи получателя": [
        "сделал: ключ: z6Mkf3KhZvnLoUV6ZQrDzcXnFzYczi9xZZrYiWy2jVSzyJJa"
      ],
      "serviceEndpoint": "http://localhost:8000/"
    }
  ]
}'
> {
  "created_at": "2021-03-11 08:02:52.641290Z",
  "состояние": "приглашение",
  "updated_at": "2021-03-11 08:02:52.641290Z",
  "ir_role": "пригласитель",
  "invitation_msg_id": "638728b4-63b1-4a9a-82b8-c07d72925196",
  "принять": "ручной",
  "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
  "invitation_mode": "один раз",
  "routing_state": "нет",
  "invitation_key": "b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC",
  "rfc23_state": "приглашение получено",
  "ir_label": "Алиса"
}
  

Если вы запустите два экземпляра ACA-py рядом друг с другом, вы можете просто скопировать и вставить приглашение. В реальном мире приглашение Алисы обычно отправляется Бобу либо в виде QR-кода, либо в виде ссылки. Приложение-кошелек Боба отсканирует QR-код, тем самым получив приглашение.

Когда Боб получит приглашение, экземпляр ACA-py зарегистрирует его:

Боб

  1
2
3
4
  
  Создана новая запись подключения из приглашения
    соединение: {'created_at': '2021-03-11 08:02:52.641290Z', 'state': 'приглашение', 'updated_at': '2021-03-11 08:02:52.641290Z», «их_роль»: «пригласитель», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8-c07d72925196», «принять»: «вручную», «connection_id»: «6c770a37-64ad-43f4-99c7-58c46c6-12c46c6-12c46 , 'invitation_mode': 'один раз', ​​'routing_state': 'нет', 'invitation_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'rfc23_state': 'приглашение получено', 'их_метка': 'Алиса'}
    приглашение: , label='Alice', handshake_protocols=['did:sov:BzCbsNYhMrjHiqZDTUg; /1. 0'], request_attach=[], service_blocks=[], service_dids=[])>
    их_роль: ответчик
  

3

Боб принимает приглашение

Теперь, когда Боб получил приглашение, он может его принять. Для этого ему нужен connection_id из ответа /out-of-band/receive-invitation , в данном случае это 6c770a37-64ad-43f4-99c6-12c467c58dba , но для вас он будет другим.

Боб

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
  
  $ curl -X POST "http://localhost:11001/didexchange/6c770a37-64ad-43f4-99c6-12c467c58dba/accept-invitation" -H 'Тип содержимого: приложение/json'
> {
  "created_at": "2021-03-11 08:02:52. 641290Z",
  "состояние": "запрос",
  "updated_at": "2021-03-11 08:03:52.760366Z",
  "ir_role": "пригласитель",
  "invitation_msg_id": "638728b4-63b1-4a9a-82b8-c07d72925196",
  "принять": "ручной",
  "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
  "request_id": "e598b0dc-9582-4979-9104-00c35ebf2c32",
  "invitation_mode": "один раз",
  "routing_state": "нет",
  "invitation_key": "b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC",
  "my_did": "HzWWzUg5hnjycPCAM8ko2X",
  "rfc23_state": "запрос отправлен",
  "ir_label": "Алиса"
}
  

ACA-py Боба зарегистрирует это как

Боб

  1
2
  
  Создан запрос на подключение
    соединение: {'created_at': '2021-03-11 08:02:52.641290Z», «состояние»: «запрос», «updated_at»: «2021-03-11 08:03:52.760366Z», «их_роль»: «приглашающий», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8- c07d72925196", "принять": "вручную", "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba", "request_id": "e598b0dc-9582-4979-9104-00c35ebf2c32", ":"oncemode , 'routing_state': 'none', 'invitation_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'my_did': 'HzWWzUg5hnjycPCAM8ko2X', 'rfc23_state': 'request-sent', 'their'All_label'}:
  

Алиса должна была получить запрос на подключение, который будет зарегистрирован как:

Алиса

  1
2
3
4
5
  
  Получение запроса на подключение
    запрос: }>, label='Bob', did='HzWWzUg5hnjycPCAm8ko2X', did_doc_attach=, защищенный =' eyJhbGciOiAiRWREU0EiLCAia2lkIjogImRpZDprZXk6ejJEWmdDaWYyaGhQWHA5RnlZS1JEeDk0VlpHVHJ0b0Z6WE1RVlppUXliNzFxRnoiLCAiandrIjogeyJrdHkiOiAiT0tQIiwgImNydiI6ICJFZDI1NTE5IiwgIngiOiAiaVpuTjB2ZWhoSFlFdjh2cEVzeEVPTE1zdjUyanc1ZnFHOGRzdnZaeUtFVSIsICJraWQiOiAiZGlkOmtleTp6MkRaZ0NpZjJoaFBYcDlGeVlLUkR4OTRWWkdUcnRvRnpYTVFWWmlReWI3MX FGeiJ9fQ», подпись = 'SI5Rc-0pjCclpQbeSnjqKFALoG4q296xDkZN8rW0dOc1dClQDDM_UlYMAaHaAP00yp-Rp-5yC6HnOb4Q4_WAAw', подписи = None)>, base64 _ = 'eyJAY29udGV4dCI6ICJodHRwczovL3czaWQub3JnL2RpZC92MSIsICJpZCI6ICJkaWQ6c292Okh6V1d6VWc1aG5qeWNQQ0FtOGtvMlgiLCAicHVibGljS2V5IjogW3siaWQiOiAiZGlkOnNvdjpIeldXelVnNWhuanljUENBbThrbzJYIzEiLCAidHlwZSI6ICJFZDI1NTE5VmVyaWZpY2F0aW9uS2V5MjAxOCIsICJjb250cm9sbGVyIjogImRpZDpzb3Y6SHpXV3pVZzVobmp5Y1BDQW04a28yWCIsICJwdWJsaWNLZXlCYXNlNTgiOiAiQUc4dDI1WVhFTTQyNVJ4S2Fkc3REQlRmRXBQQ2hmbnduUlZlUmZQQ2Q1dmMifV0sICJhdXRoZW50aWNhdGlvbiI6IFt7InR5cGUiOiAiRWQyNTUxOVNpZ25hdHVyZUF1dGhlbnRpY2F0aW9uMjAxOCIsICJwdWJsaWNLZXkiOiAiZGlkOnNvdjpIeldXelVnNWhuanljUENBbThrbzJYIzEifV0sICJzZXJ2aWNlIjogW3siaWQiOiAiZGlkOnNvdjpIeldXelVnNWhuanljUENBbThrbzJYO2luZHkiLCAidHlwZSI6ICJJbmR5QWdlbnQiLCAicHJpb3JpdHkiOiAwLCAicmVjaXBpZW50S2V5cyI6IFsiQUc4dDI1WVhFTTQyNVJ4S2Fkc3REQlRmRXBQQ2hmbnduUlZlUmZQQ2Q1dmMiXSwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwOi8vbG9jYWxob3N0OjgwMDEvIn1dfQ ==')>)>)>

Получен запрос на подключение из приглашения
    соединение: {'their_did': 'HzWWzUg5hnjycPCAm8ko2X', 'their_label': 'Bob', 'routing_state': 'none', 'invitation_key': 'b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC', 'accept': ''upted', 'accept': ''manual', 03-11 08:03:52. 794628Z», «created_at»: «2021-03-11 08:01:16.546248Z», «request_id»: «e598b0dc-9582-4979-9104-00c35ebf2c32», «connection_id»: «9ebac177-a3d4-4a74-be42- 82f4e0cafefa», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8-c07d72925196», «состояние»: «запрос», «invitation_mode»: «один раз», «их_роль»: «приглашенный», «rfc23_state»: «запрос- получено'}
  

Принимая приглашение, Боб отправляет Алисе запрос на соединение. Это происходит автоматически, когда Боб принимает приглашение.Запрос будет напрямую идти от экземпляра ACA-py Боба к экземпляру ACA-py Алисы.

Несмотря на то, что Алиса начала это взаимодействие, создав приглашение, на самом деле именно Боб отправляет Алисе запрос на соединение, поэтому Боб называется запросчиком . Алису называют ответчиком .

Алиса автоматически получает запрос на соединение.

4

Алиса принимает запрос на соединение

Теперь Алиса может принять запрос на подключение от Боба. Для этого ей нужен connection_id для подключения на ее стороне. В данном случае это 9ebac177-a3d4-4a74-be42-82f4e0cafefa . Обратите внимание, что connection_id отличается как для Алисы, так и для Боба. Они оба создают свой собственный уникальный идентификатор для соединения.

Алиса принимает запрос:

Алиса

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  
  $ curl -X POST "http://localhost:11000/didexchange/9ebac177-a3d4-4a74-be42-82f4e0cafefa/accept-request" -H 'Content-Type: application/json'
> {
  "their_did": "HzWWzUg5hnjycPCAM8ko2X",
  "ir_label": "Боб",
  "my_did": "D8mvHXoPsYE17ma3KgTRre",
  "routing_state": "нет",
  "invitation_key": "b4eygXuTvzdSv1XK3ZwQtzdB8t79gcC2W46uDUz45XC",
  "принять": "ручной",
  "updated_at": "2021-03-11 08:10:19.754596З",
  "created_at": "2021-03-11 08:01:16.546248Z",
  "request_id": "e598b0dc-9582-4979-9104-00c35ebf2c32",
  "connection_id": "9ebac177-a3d4-4a74-be42-82f4e0cafefa",
  "invitation_msg_id": "638728b4-63b1-4a9a-82b8-c07d72925196",
  "состояние": "ответ",
  "invitation_mode": "один раз",
  "ir_role": "приглашенный",
  "rfc23_state": "ответ отправлен"
}
  

ACA-py Алисы запишет это так:

Алиса

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  
  Создание ответа на подключение
    connection_id: 9ebac177-a3d4-4a74-be42-82f4e0cafefa

Ответ созданного соединения
    Подключение: {'your_did': 'hzwwzug5hnjycpcam8ko2x', 'iThy_label': «BOB», «My_did»: «D8MVHXXOPSYE17MA3KTRRE», «Routing_State»: «Нет», «Приглашение_key»: «B4EYGXUTVZDSV1XCK3ZWQTZDB8T79GCC2W46uduz45xcc», «Принять»: «Руководство» , 'updated_at': '2021-03-11 08:10:19. 754596Z», «created_at»: «2021-03-11 08:01:16.546248Z», «request_id»: «e598b0dc-9582-4979-9104-00c35ebf2c32», «connection_id»: «9ebac177-a3d4-4a74-be42- 82f4e0cafefa», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8-c07d72925196», «состояние»: «ответ», «invitation_mode»: «один раз», «их_роль»: «приглашенный», «rfc23_state»: «ответ- послал'}
    ответ: }>, did='D8mvHXoPsYE17ma3KgTRre', did_doc_attach= Защитить = 'подписи = None z2DR18Vcdh5d7kkdTbX9deCGD6EQBPhi1Lbea8AtXgtSpra eyJhbGciOiAiRWREU0EiLCAia2lkIjogImRpZDprZXk6ejJEUjE4VmNkaDVkN2trZFRiWDlkZUNHRDZFUUJQaGkxTGJlYThBdFhndFNwcmEiLCAiandrIjogeyJrdHkiOiAiT0tQIiwgImNydiI6ICJFZDI1NTE5IiwgIngiOiAiQ0xuaFJvQzFQWUM1WWJ0NTBuYkZ5MnZpNVUtVlpuS2pNOWx3U2RUQVprOCIsICJraWQiOiAiZGlkOmtleTp6MkRSMThWY2RoNWQ3a2tkVGJYOWRlQ0dENkVRQlBoaTFMYmVhOEF0WGd0U3ByYSJ9fQ', подпись = 'DwBrn7ecFD8xVnUgJPOP_m_p1mU23aguLMv3qXjRJGxp-Q2dN6sGFse6b1rY1l_5XjmDiiSiEKYmaX92SYuRBQ': ключ)>)>) >)>

Соединение повышено до активного
    Подключение: {'your_did': 'hzwwzug5hnjycpcam8ko2x', 'iThy_label': «BOB», «My_did»: «D8MVHXXOPSYE17MA3KTRRE», «Routing_State»: «Нет», «Приглашение_key»: «B4EYGXUTVZDSV1XCK3ZWQTZDB8T79GCC2W46uduz45xcc», «Принять»: «Руководство» , 'updated_at': '2021-03-11 08:10:19. 808614Z», «created_at»: «2021-03-11 08:01:16.546248Z», «request_id»: «e598b0dc-9582-4979-9104-00c35ebf2c32», «connection_id»: «9ebac177-a3d4-4a74-be42- 82f4e0cafefa», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8-c07d72925196», «состояние»: «активно», «invitation_mode»: «один раз», «их_роль»: «приглашенный», «rfc23_state»: «завершено» }

Полученное соединение завершено
    Подключение: {'your_did': 'hzwwzug5hnjycpcam8ko2x', 'iThy_label': «BOB», «My_did»: «D8MVHXXOPSYE17MA3KTRRE», «Routing_State»: «Нет», «Приглашение_key»: «B4EYGXUTVZDSV1XCK3ZWQTZDB8T79GCC2W46uduz45xcc», «Принять»: «Руководство» , 'updated_at': '2021-03-11 08:10:19.814402Z», «created_at»: «2021-03-11 08:01:16.546248Z», «request_id»: «e598b0dc-9582-4979-9104-00c35ebf2c32», «connection_id»: «9ebac177-a3d4-4a74-be42- 82f4e0cafefa», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8-c07d72925196», «состояние»: «завершено», «invitation_mode»: «один раз», «их_роль»: «приглашенный», «rfc23_state»: «завершено» }
  

ACA-py Боба зарегистрирует это как:

Боб

  1
2
3
4
5
  
  Принятый ответ соединения
    соединение: {'created_at': '2021-03-11 08:02:52. 641290Z», «состояние»: «ответ», «updated_at»: «2021-03-11 08:10:19.783479Z», «их_роль»: «приглашающий», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8- c07d72925196", "принять": "вручную", "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba", "request_id": "e598b0dc-9582-4979-9104-00c35ebf2c32", ":"oncemode , «Routing_State»: «Нет», «IS_DID»: «D8MVHXOPSYE17MA3KGTRRE», «Приглашение_Кой»: 'b4eygxutvzdsv1xk3zwqtzdb8t79gcc2wqtzdb8t79gcc2w46uduz45xc.,' my_did ':' hzwwzug5hnjycpcam8ko2x ',' rfc23_state ': «Ответ, полученный», «your_label»:' alice ' }

Отправлено соединение завершено
    соединение: {'created_at': '2021-03-11 08:02:52.641290Z», «состояние»: «завершено», «updated_at»: «2021-03-11 08:10:19.795287Z», «их_роль»: «приглашающий», «invitation_msg_id»: «638728b4-63b1-4a9a-82b8- c07d72925196», «принять»: «вручную», «connection_id»: «6c770a37-64ad-43f4-99c6-12c467c58dba», «request_id»: «e598b0dc-9582-4979-9104-00c35ebf2c32», «: 'oncemode , «Routing_State»: «Нет», «your_did ':' d8mvhxopsye17ma3kgtrre ',' invitation_key ':' b4eygxutvzdsv1xk3zwqtzdb8t79gcc2w46uduz45xc ',' my_did ':' hzwwzug5hnjycpcam8ko2x ',' rfc23_state ':« Завершено »,« your_label': 'alice'}
  

Поздравляем! Установлена ​​связь между Алисой и Бобом. Теперь вы можете сделать перерыв, не забудьте увлажнить кожу.

Автоматический прием

ACA-py поддерживает параметры командной строки для автоматического принятия приглашений и запросов при их поступлении. Это позволяет пропустить шаги 3 и 4. Флаги командной строки: --auto-accept-invites и --auto-accept -запросы .

Создание схемы и определения учетных данных

Алиса будет выдавать учетные данные Бобу. Прежде чем она сможет это сделать, ей необходимо создать схему и определение учетных данных.

Создать схему просто, отправив ее в конечную точку /schemas :

Алиса

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  
  $ curl -X POST http://localhost:11000/schemas \
  -H 'Тип содержимого: приложение/json' \
  -д '{
    "атрибуты": [
      "имя",
      "возраст"
    ],
    "имя_схемы": "моя-схема",
    "версия_схемы": "1. 0"
}'
> {
  "schema_id": "M6HJ1MQHKr98nuxobuzJJg:2:моя-схема:1.0",
  "схема": {
    "вер": "1.0",
    "id": "M6HJ1MQHKr98nuxobuzJJg:2:моя-схема:1.0",
    "имя": "моя-схема",
    "версия": "1.0",
    "атрибуты": [
      "имя",
      "возраст"
    ],
    "seqNo": 1006
  }
}
  

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

Алиса

  1
2
3
4
5
6
7
  
  $ curl -X POST http://localhost:11000/credential-definitions \
  -H 'Тип содержимого: приложение/json' \
  -д '{
    "schema_id": "M6HJ1MQHKr98nuxobuzJJg:2:моя-схема:1.0",
    "тег": "по умолчанию"
  }'
> {"credential_definition_id": "M6HJ1MQHKr98nuxobuzJJg:3:CL:1006:по умолчанию"}
  

Танец с удостоверением личности

Как и в случае с танго, при выдаче удостоверения участвуют две стороны. Есть эмитент (Алиса) и держатель (Боб.

Существует три потока выдачи учетных данных, в зависимости от того, какая сторона (эмитент, держатель) инициирует танец и с чем. Когда вы, как держатель, начинаете танец, вы начинаете с отправки предложения эмитенту (шаг 1).Предложение содержит то, что вы хотели бы получить от эмитента. На основании этого эмитент может направить оферту держателю. Когда эмитент начинает танец, он начинается с отправки предложения держателю (шаг 2). Держатель также может начать с прямой отправки запроса эмитенту, тем самым пропустив этапы предложения и предложения.

Процесс выдачи учетных данных:

  1. Держатель направляет предложение эмитенту (эмитент получает предложение)
  2. Эмитент отправляет предложение держателю на основании предложения (держатель получает предложение)
  3. Держатель отправляет запрос эмитенту (эмитент получает запрос)
  4. Эмитент отправляет учетные данные держателю (владелец получает учетные данные)
  5. Держатель хранит учетные данные (держатель отправляет подтверждение эмитенту)
  6. Эмитент получает подтверждение

Выдача удостоверения

1

Боб начинает с отправки предложения

Когда Боб начинает отправлять предложение, он может использовать /issue-credential-2. 0/send-proposal конечная точка. Обратите внимание, что Боб использует connection_id своего соединения с Алисой. Предложение отправляется по только что установленному соединению.

Боб

  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
  
  $ curl -X POST http://localhost:11001/issue-credential-2.0/отправить предложение \
 -H "Тип содержимого: приложение/json" -d '{
  "comment": "Я хочу это",
  "connection_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
  "credential_preview": {
    "@type": "выпуск-учетные данные/2.0/учетные-предварительный просмотр",
    "атрибуты": [
      {
        "MIME-тип": "обычный/текстовый",
        "имя": "имя",
        "значение": "Боб"
      },
      {
        "MIME-тип": "обычный/текстовый",
        "Назовите возраст",
        "значение": "30"
      }
    ]
  },
  "фильтр": {
    "разн": {},
    "Инди": {}
  }
}'
> {
  "роль": "держатель",
  "авто_предложение": ложь,
  "auto_issue": ложь,
  "auto_remove": правда,
  "cred_preview": {
    "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/issue-credential/2. 0/просмотр учетных данных",
    "атрибуты": [
      {
        "имя": "имя",
        "значение": "Боб"
      }
    ]
  },
  "cred_ex_id": "0ea86878-4369-41e8-8212-e4af42304f3d",
  "conn_id": "6c770a37-64ad-43f4-99c6-12c467c58dba",
  "состояние": "предложение отправлено",
  "updated_at": "2021-02-24 06:13:35.921424Z",
  "created_at": "2021-02-24 06:13:35.921424Z",
  "инициатор": "я",
  "cred_proposal": {
    "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/issue-credential/2.0/propose-credential",
    "@id": "d263c3a9-95b7-42ce-bfce-58d10b256809",
    "comment": "Я хочу это",
    "фильтры~прикрепить": [
      {
        "@id": "0",
        "MIME-тип": "приложение/json",
        "данные": {
          "base64": "e30="
        }
      },
      {
        "@id": "1",
        "MIME-тип": "приложение/json",
        "данные": {
          "base64": "e30="
        }
      }
    ],
    "credential_preview": {
      "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/issue-credential/2.0/просмотр учетных данных",
      "атрибуты": [
        {
          "имя": "имя",
          "значение": "Боб"
        }
      ]
    },
    "форматы": [
      {
        "attach_id": "0",
        "format": "dif/credential-manifest@v1. 0"
      },
      {
        "attach_id": "1",
        «формат»: «hlindy-zkp-v1.0»
      }
    ]
  },
  "thread_id": "d263c3a9-95b7-42ce-bfce-58d10b256809"
}
  

Результат, который вы возвращаете, — это Credential Exchange Record. Это запись, которая содержит состояние верительного танца.Эти записи хранятся в ACA-py и могут быть получены с помощью конечной точки /issue-credentials-2.0/records/{id} , где id — это cred_ex_id в результате.

2

Алиса отвечает предложением

Алиса получает предложение и может ответить предложением, используя конечную точку /issue-credential-2.0/records/{id}/send-offer . Обратите внимание, что идентификатор id , который использует эмитент, отличается от cred_ex_id , который получил держатель.Каждый экземпляр ACA-py создает свои собственные идентификаторы.

Алиса

  1
2
3
  
  $ curl -X POST http://localhost:11000/issue-credential-2. 0/records/bac31f8c-660d-4ac4-b9a1-4ed7de47746a/send-offer \
 -H "Тип контента: приложение/json"
> { <Запись обмена учетными данными> }
  

2

Боб запрашивает учетные данные

После того, как предложение было получено Бобом, он может отправить запрос на учетные данные Алисе.

Боб

  1
2
  
  $ curl -X POST http://localhost:11001/issue-credential-2.0/records/0ea86878-4369-41e8-8212-e4af42304f3d/send-request
> { <Запись обмена учетными данными> }
  

3

Алиса выдает учетные данные

Алиса

  1
2
3
  
  $ curl -X POST http://localhost:11000/issue-credential-2.0/записи/bac31f8c-660d-4ac4-b9a1-4ed7de47746a/выпуск \
  -H "Тип контента: application/json" -d '{"comment": "Пожалуйста, имейте это"}'
> { <Запись обмена учетными данными> }
  

4

Боб сохраняет полученные учетные данные

Боб

  1
2
3
  
  $ curl -X POST http://localhost:11001/issue-credential-2. 0/records/0ea86878-4369-41e8-8212-e4af42304f3d/store \
  -H "Тип контента: приложение/json" -d '{}'
> { <Запись обмена учетными данными> }
  

Автоматизация потока учетных данных выдачи

Есть еще одна конечная точка, которую мы не обсуждали, это /issue-credential-2.0/отправить . Это то же самое, что и /issue-credential-2.0/send-offer с точки зрения эмитента, но которое устанавливает флаг auto_offer и auto_issue в значение true. Если держатель автоматически принимает предложения и превращает их в запросы, то это полностью автоматизирует выдачу учетных данных.

Разработка и отладка

В целях разработки вы можете автоматизировать большую часть потока. Чтобы упростить отладку, вы можете указать --debug-credentials для ACA-py, который будет регистрировать информацию в консоли.

Процесс выдачи учетных данных можно автоматизировать с помощью:

  • --автоматический ответ-предложение-учетных данных
  • --auto-response-credential-offer
  • --автоответ-запрос-учетных данных
  • --auto-store-credential

Если вы уже читали этот пост в блоге, то эти параметры командной строки должны говорить сами за себя. Конечно, они предназначены для разработки и отладки, поэтому никогда не включайте их для производственного использования.

При создании предложения учетных данных или предложения учетных данных запись обмена учетными данными будет автоматически удалена после завершения выдачи учетных данных. Автоматическое удаление можно отключить, предоставив --preserve-exchange-records для ACA-py.

Заключение

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

Пожалуйста, дайте мне знать, было ли это руководство полезным, и если у вас есть какие-либо вопросы!

Адресная система

ARIES от Kidde |

ARIES NETLink™ является одним из наиболее технологически продвинутых интеллектуальных блоков управления, ориентированных на подавление пожарной тревоги, доступных сегодня в отрасли. Он сочетает в себе высокое качество, надежность системы и гибкость, необходимые для современных коммерческих, высокотехнологичных и промышленных приложений, в эстетически привлекательном и физически прочном корпусе. Его модульная архитектура обеспечивает простое расширение на местах от базового блока с 2 SLC, поддерживающего 510 адресных устройств (255 на канал), до системы с 8 SLC, поддерживающей 2040 адресуемых устройств. Несмотря на свои компактные размеры, которые помещаются между стойками стены, ARIES NETLink спроектирован так, чтобы его можно было быстро и легко установить.Передовые технологии, встроенные в конструкцию электроники, позволяют проводить диагностику для быстрого ввода в эксплуатацию.


Особенности и преимущества

  • Многоконтурный интеллектуальный блок управления подавлением
  • Готовые функции
    • 2 SmartOne SLC с 255 неограниченными адресами каждый – 4 x 40 дисплей-клавиатура
    • 2 NAC и 2 R-NAC
    • 3 программируемых реле и 1 реле неисправности Form-C
    • 2 дополнительных выхода питания
    • Порты USB для ПК и принтера
    • Порты RS-232 для графики
    • 4 программируемых переключателя – вход 120/240 В 50/60 Гц переменного тока
    • 5. Блок питания 4 А
    • 2-уровневый или 3-уровневый корпус NEMA 1 — подходит для шпилек 16 дюймов
    • Шина сигнализатора RS-485
  • Надежные и надежные функции управления подавлением Трехкратное резервирование
  • Системы пожаротушения включают
  • FM-200, FE-13, 3M Novec 1230 Противопожарная жидкость, двуокись углерода, аргонит и галоновые чистящие средства
    • Сухие химические вещества, влажные химические вещества
    • Водяной туман
    • Служба надзора за спринклерами
    • Дренчер, предварительное действие, пена, пено-водяные системы
  • Модульный расширяемый
    • От 2 до 8 SLC (2040 адресов)
    • Функциональные модули и модули расширения
    • Блок питания
    • Возможность подключения к сети до 64 узлов с 130 560 адресами в сети
  • Программирование событий-выходов-управления
  • Высокий уровень удобства обслуживания и диагностики
        Обнаружение замыкания на землю цепью
      Емкость журнала событий 10 000
  • Обратная совместимость с установленными инвестициями
    • Устройства SmartOne SLC и протокол
    • Головки управления Kidde
    • Приводы
    • Устаревшие панели PEGAsys с помощью простого комплекта модернизации
  • Полная интеграция HSSD, ASD и LHD
  • Подключение к Интернету с функцией уведомления по электронной почте
  • Приятная эстетика
  • Съемные клеммные колодки
  • FM Одобрено ANSI/UL864
  • Номер в списке ULS2422
  • № в списке cUL S2422
  • Одобрено CSFM: № 7165-1076:0194
  • Одобрено пожарной службой Нью-Йорка: № 6092
  • Одобрено городом Чикаго

Описание

ARIES NETLink™ является одним из наиболее технологически продвинутых интеллектуальных блоков управления, ориентированных на подавление пожарной тревоги, доступных сегодня в отрасли. Он сочетает в себе высокое качество, надежность системы и гибкость, необходимые для современных коммерческих, высокотехнологичных и промышленных приложений, в эстетически привлекательном и физически прочном корпусе.Его модульная архитектура обеспечивает простое расширение на местах от базового блока с 2 SLC, поддерживающего 510 адресных устройств (255 на канал), до системы с 8 SLC, поддерживающей 2040 адресуемых устройств. Несмотря на свои компактные размеры, которые помещаются между стойками стены, ARIES NETLink спроектирован так, чтобы его можно было быстро и легко установить. Передовые технологии, встроенные в конструкцию электроники, позволяют проводить диагностику для быстрого ввода в эксплуатацию.

Плата главного контроллера — MCB

Основная печатная плата ARIES NETLink содержит центральный процессор системы (ЦП) и все первичные цепи.MCB является сердцем системы, контролирующим работу и контроль всех системных модулей и программного обеспечения. Он получает данные устройства контура, обрабатывает данные на основе предварительно запрограммированных инструкций и передает команды вывода на модули вывода, полевые устройства и дисплеи. MCB крепится к корпусу с помощью шарнирных стоек специальной конструкции, которые позволяют поворачивать плату влево и обеспечивают легкий доступ к узлу PMU/PSU сзади.

Интерфейс пользователя

Пользовательский интерфейс состоит из встроенной клавиатуры и дисплея, которые обеспечивают физические средства, с помощью которых оператор и/или установщик выполняет системные функции, вводит пароль безопасности, работает с экранными клавишами, перемещается по системным меню, конфигурирует и тестирует всю систему ARIES NETLink.

Подножки с электроприводом ARIES ActionTrac – ПОИСК И УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ /задняя дверь, но не другая Доска открыта и не закрывается Доски скрипят при открытии,’закрытие светодиод не включается при открытой ступеньке Доски работают наоборот как должны (дверь открыта доска закрыта, дверь закрыта доска открыта ) После быстрой смены досок несколько раз доски больше не открываются.Платы не открываются Когда передняя и задняя двери открываются одновременно Возможная причина Переключатель питания в положении Off Плохое соединение аккумулятора Перегорел или удален предохранитель Модуль управления не подключен Плата не подключена Датчики двери не подключены Неисправен двигатель Неисправен модуль управления Датчик двери отключен Неисправный датчик двери Магнит несоосность Неисправный датчик двери Металлический контакт Металлический светодиод не подключен Неисправный светодиод Неправильные датчики Неправильная полярность жгута электродвигателя Достигнут запрограммированный предел безопасности.

Программное ограничение Возможные решения Убедитесь, что главный выключатель питания находится во включенном положении и питание подается.Убедитесь, что положительное и отрицательное соединение на аккумуляторе надежно. Убедитесь, что предохранитель вставлен и не перегорел. Убедитесь, что модуль управления подключен. Убедитесь, что соединения платы подключены и надежно закреплены. Убедитесь, что дверные датчики подключены. Замените плату. Замените модуль управления. Убедитесь, что датчик двери подключен. Замените датчик. Отрегулируйте положение магнита. Замените датчик. Нанесите графитовую смазку на все точки поворота. Убедитесь, что соединение со светодиодом подключено и закреплено.Осмотрите светодиод и жгут проводов на наличие повреждений. Замените датчики. Замените плату. С помощью главного выключателя выключите платы на 5-10 секунд и снова включите. Платы должны циклически повторяться при повторном включении. Закройте двери и откройте их по отдельности. Дополнительная информация Для проверки работы двигателя подайте 12 В непосредственно на провода двигателя. Если плата не открывается, поменяйте местами выводы и повторите попытку. Если плата размыкается, двигатель исправен, и замена проводов обратно приведет к закрытию платы.В редких случаях программирование модуля управления может быть ошибочным. Замените его. Модуль управления получает питание, но платы не работают должным образом. ЧТОБЫ проверить неисправность датчика, отсоедините датчик и проверьте целостность цепи с помощью мультиметра. Датчик обычно является замкнутым переключателем и должен иметь непрерывность при отсутствии магнита и не должен иметь непрерывности. Когда магнит находится рядом с датчиком, отсоедините оба датчика, и плата должна замкнуться. Подключите только один датчик двери и проверьте.Если доска закрывается, выравнивание для этой двери хорошее. Подключите второй датчик и повторите. Чтобы проверить неисправность датчика, отсоедините датчик и проверьте целостность цепи с помощью мультиметра. Датчик, как правило, представляет собой замкнутый переключатель и должен иметь непрерывность без присутствия магнита и не должен иметь непрерывности, когда магнит находится рядом с датчиком. Если все еще происходит чрезмерный писк, проверьте, нет ли изношенных втулок или очевидных областей контакта металла с металлом. Чтобы проверить работоспособность светодиода, подайте 12 вольт непосредственно на светодиод.Если светодиод не включается при прямом подключении, его необходимо заменить. Чтобы проверить неисправность датчика, отсоедините датчик и проверьте непрерывность цепи с помощью мультиметра. Датчик обычно представляет собой замкнутый переключатель и должен иметь непрерывность без присутствия магнита и не должен иметь непрерывности, когда магнит находится рядом с датчиком. Если датчики подтверждены правильно (нормально замкнуты) и плата все еще работает в обратном направлении, электрический жгут двигателя может быть перевернут. При возникновении этой проблемы светодиод мигнет 8 раз.Программное ограничение не позволит панелям открываться, если передняя и задняя дверца открыты одновременно. Закрытие дверей и открытие их по одной приведет к сбросу доски,

Документы / ресурсы

Ссылки

Навигация по почте

Практика с 3D-принтером Voxelab Aries, часть 1 « Fabbaloo

3D-принтер Voxelab Aries [Источник: Fabbaloo]

В последнее время наша тестовая лаборатория была очень загружена. На этот раз мы рассмотрели настольный 3D-принтер Voxelab Aries.

Это первая часть из двух частей. Вторая часть здесь.

Мы получили тестовый экземпляр нового настольного 3D-принтера Voxelab Aries. Если вы еще не слышали о Voxelab, не беспокойтесь: это новый бренд от Flashforge, давнего производителя 3D-принтеров. Из-за этого мы ожидали, что Aries будет устройством хорошего качества, и это именно то, что мы нашли.

Aries ориентирован на рынок STEM, так как его внешний вид немного отличается от большинства 3D-принтеров линейки Voxelab.Устройства Aquila имеют открытый портальный формат, в то время как Aries имеет распорки по всем осям своей кубической формы.

Стильные угловые блоки на 3D-принтере Voxelab Aries [Источник: Fabbaloo]

Чтобы было ясно, Aries НЕ является закрытым 3D-принтером, как вы можете подумать после беглого взгляда. Верх и бока полностью открыты. Тем не менее, я полагаю, вы могли бы приклеить немного акрила по бокам и сверху, чтобы заключить его в качестве будущей модификации.

Промышленный дизайн Aries может быть его самой впечатляющей особенностью: он действительно выглядит очень хорошо.Боковые стойки не только делают его более прочным, но и выглядят очень привлекательно. Красные углы тоже приятны.

Особенности 3D-принтера Aries

Сборка 3D-принтера Voxelab Aries [Источник: Fabbaloo]

Овен не комплект; в основном не нужно ничего собирать, кроме как снять упаковочный материал и подключить шнур. Это должно сделать его немедленно доступным для классов STEM.

Экструдер Боудена на 3D-принтере Voxelab Aries [Источник: Fabbaloo]

Одиночный, 1.Устройство экструдера 75 мм со стандартным соплом горячего конца 0,4 мм. Машина может легко печатать 3D PLA и PETG. Мы не тестировали 3D-печать ABS, но на устройстве должны быть возможны небольшие объекты ABS.

Горячий конец 3D-принтера Voxelab Aries [Источник: Fabbaloo]

Печатная пластина немного отличается от часто встречающихся в настоящее время магнитных пластин из пружинной стали. Вместо этого Aries оснащен пластиной из углеродно-кремниевого хрусталя.

Эта пластина не гибкая, но обеспечивает очень хорошую адгезию оттиска.Греется, причем прогревается довольно быстро и равномерно. При охлаждении отпечатки легко снимаются, хотя приходится ждать, пока остынет. Если вы спешите, вы можете поддеть их острым инструментом с плоским лезвием.

Подъем стеклянной рабочей пластины на 3D-принтере Voxelab Aries [Источник: Fabbaloo]

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

Объем сборки Aries разумен и составляет 200 x 200 x 200 мм, что достаточно для 3D-печати большинства предметов. Однако отсутствие второго материала означает, что вы не можете использовать растворимую поддержку, и вам придется утомительно выбирать поддерживающие структуры для сложных 3D-печатей.

Информационная панель управления 3D-принтером Voxelab Aries [Источник: Fabbaloo]

Цветной сенсорный экран Aries очень прост в использовании. Здесь вы можете увидеть представленное основное меню, и оно отображает 3D-графику моделей на карте памяти.Это очень удобно, когда вы не совсем уверены, что это за файл.

Исключительно удачно расположенный порт USB на 3D-принтере Voxelab Aries [Источник: Fabbaloo]

Что касается этой флешки, у Aries один из лучших портов, которые мы когда-либо видели на настольных 3D-принтерах. На этом изображении видно, что порт находится спереди, а не опасно выступает сбоку или сзади машины. Он также повернут к оператору, что является уникальной и полезной функцией.

Aries включает в себя схему обнаружения отсутствия нити, которая активируется, когда конец нити проходит датчик перед шестернями экструдера.Это предотвращает «воздушную печать» и позволяет оператору заменить катушку с нитью и возобновить печать. Подобный процесс способен восстанавливаться после внезапной потери питания.

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

Voxelmaker, специальное программное обеспечение для нарезки 3D-принтера Voxelab Aries [Источник: Fabbaloo]

В качестве программного обеспечения Aries использует проприетарный программный пакет под названием «VoxelMaker».В отличие от большинства других недорогих настольных 3D-принтеров, использующих Ultimaker Cura, PrusaSlicer или Simplify3D, Voxelab здесь пошел своим путем. К счастью, VoxelMaker поставляется с машиной без дополнительной оплаты.

Это первая часть из двух частей. Вторая часть здесь.

Через Voxelab

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *