Подключение Neon PLC к Yandex Cloud (IoT Core) через MQTT
Предисловие
Для начала заметим, что у Яндекса есть собственные инструкции о том как подготовиться к работе в их облаке:
Начало работы с Yandex IoT Core
Пример консольного клиента на C#
Но написаны они на столько лаконично, что легко по ним пройтись едва ли удастся. Но как подспорье в непонятных моментах они очень пригодятся.
Подготовка облака Яндекс
Для начала необходимо создать аккаунт (если у Вас его нет) в Yandex Cloud - для этого переходим по ссылке и регистрируем новый аккаунт (необходимо указать реальный номер телефона).

Теперь нажимаем "Подключиться" в правом верхнем углу Облака.

Необходимо создать базовые элементы облака, начиная с консоли.

Создаём само облако.

Обязательно необходимо добавить платежную информацию (создать платёжный
аккаунт) - если облако Вы создаёте впервые, то какое-то время
пользоваться им можно будет бесплатно, в противном случае необходимо
будет пополнить счет.

Нажмите "Создать аккаунт" и заполните все поля реальными данными.

Добавьте сервис "IoT Core".

Войдя в созданный сервис Вы получите приглашение создать реестр устройств.

На начальном этапе мы рекомендуем организовать связь устройств с облаком без использования сертификатов.

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

Перейдя на вкладку "Устройства", нажмите кнопку в правом верхнем углу "Добавить устройство" и заполните его имя и пароль.

Указанный пароль будет необходимо прописать в ПЛК Neon для коммуникации с
облаком Яндекса, а логином будет идентификатор устройства.

Создание проекта для ПЛК Neon
* Ссылка на проект в конце статьи.
Откройте YartStudio (версии не ниже, чем 0.18) и создайте новый проект. Контроллер выберите Neon, установите период исполнения 20 мс.

Откройте раздел "Переменные пользователя" и создайте 3 переменные (для демонстрации этого будет достаточно).

Перейдите в структуру проекта и создайте новую программу.

Теперь откройте "Свойства проекта", раздел "Телеметрия" и заполните все
поля настройки коммуникации (обратите внимание на не стандартный порт и
на совпадение логина и ID устройства).

Во вкладке "Настройка публикации" выносим контейнер state и закидываем в
него оставшиеся переменные (контейнера "Подписка" у Вас может не быть).

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

Если выход "Ok" блока "Telemetry State" стал включенным, как на
скриншоте выше, значит Вы всё сделали правильно - контроллер вышел в
облако Яндекс и публикует туда свои данные.
Создание простого клиента для мониторинга
* Данный проект также находится во вложении к статье - можете скачать его.
Для
демонстрации возможностей мониторинга воспользуемся несколько
модифицированным примером консольного клиента на C# от Яндекса. Обратите
внимание на версию пакета MQTTnet - устанавливать более новую чем
3.0.8. нужно с осторожностью и пониманием своих действий - верификация
сертификатов там производится по другому и просто запустить решение на
более новом пакете не выйдет
В MS VisualStudio откройте решение из вложения
(NeonToYandexMqttConsole). Все значимые настройки (логины и пароли от
устройств и реестра) лежат в классе Program.cs

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

Идентификаторы 101 и 102 являются служебными полями переменных в YartStudio - их можно посмотреть, открыв переменную на редактирование, либо вынеся дополнительный столбец с идентификаторами в разделе "Переменные пользователя".
На основе данного решения не сложно реализовать любой сервис мониторинга контроллеров Neon, публикующих свои данные в облако Яндекс.