В новой редакции С23-TLS появилась поддержка TLS. Пожалуйста, убедитесь, что у вас установлена последняя версия программного обеспечения. Для этого откройте «Эмулятор», перейдите в раздел «Помощь» и выберите «Проверить обновления». После этого SAT-SDK будет обновлен.
После того как обновление завершится, в разделе помощи появится новый раздел Telegram . Здесь подробно расписан состав библиотеки которым вы можете пользоваться. С помощью этих функций вы сможете полноценно работать с чат-ботом.
Что такое Telegram бот
Telegram — это один из самых популярных мессенджеров, доступный на различных платформах. Он предоставляет возможность создавать ботов — искусственных пользователей, чьими действиями можно управлять через программу.
Бот может реагировать на ваши сообщения, отправляя в чат свои ответы, или действовать по собственной инициативе, посылая различные уведомления, включая аварийные.
Saturn-PLC может стать таким ботом, что открывает перед вами практически неограниченные возможности для управления вашим проектом на языке C23 из любой точки мира, и всё это абсолютно бесплатно!
Чтобы начать, зарегистрируйте своего бота в своём Telegram-аккаунте.
Как всё работает.
В интернете по адресу https://api.telegram.org/bot вы можете найти сервер системы Telegram, где хранится множество чатов. Каждый чат имеет свой уникальный числовой идентификатор id, который используется для взаимодействия с чатом как пользователями, так и ботами. Все пользователи и боты также имеют свои собственные уникальные идентификаторы id.
Фактически, в системе Telegram именно эти числовые идентификаторы являются адресом, в то время как имена, фамилии и псевдонимы используются лишь для информации.
Пользователи отправляют сообщения с текстами, изображениями и документами в чат, в котором они участвуют. Эти сообщения хранятся на сервере Telegram в течение суток, после чего удаляются. Каждое полученное в чате сообщение сервер последовательно нумерует, и у каждого сообщения есть свой числовой идентификатор (update_id).
В то же время пользователи получают все эти сообщения с сервера и отображают их на своих устройствах (телефонах, планшетах или компьютерах).
Бот функционирует подобно обычному пользователю: он принимает сообщения с сервера из чата, в котором участвует, и может сам отправлять сообщения на сервер Telegram.
Важные аспекты, касающиеся работы бота в контроллере Saturn-PLC
1. Как и любой другой пользователь, бот Saturn-PLC взаимодействует с сервером Telegram, используя методы POST и GET стандартного протокола HTTPS. Это подключение осуществляется через сеансовое TCP-соединение с TLS-шифрованием.
2. Данные между сервером и ботом передаются в виде JSON-массивов. Бот отправляет JSON-данные с определенным содержимым, а сервер возвращает ему другой JSON-ответ. Структура этих JSON-данных подробно описана на сайте https://core.telegram.org/bots/api . Однако в большинстве случаев вам не нужно вникать во все детали — процесс обмена с сервером, формирования JSON-запросов и анализа JSON-ответов скрыт от вас внутри вызываемых функций tg_...
3. Пользовательская программа, работающая с сервером Telegram, должна регулярно (например, раз в минуту или чаще) проверять наличие новых сообщений на сервере и, при их обнаружении, читать их. После этого программа анализирует эти новые сообщения и отправляет ответы на них, если это запросы от пользователей к боту.
Регистрация бота
Чтобы создать нового бота в Telegram, вам нужно воспользоваться официальным ботом, созданным специально для управления другими ботами — @BotFather. Вот пошаговая инструкция:
1. В приложении Telegram найдите @BotFather через поиск.
2. Начните диалог с ботом, нажав на кнопку "Start".
3. Чтобы создать нового бота, отправьте команду "/newbot".
4. @BotFather попросит вас выбрать имя для вашего бота и уникальный username, который должен заканчиваться на "bot".
Если вы успешно выберете имя, @BotFather поздравит вас с регистрацией и отправит вам идентификатор бота BOT API ID — длинный уникальный код, который даст вам полный контроль над созданным ботом.
Скопируйте этот код и сохраните его в надежном месте как пароль. Никому не сообщайте этот код! Он понадобится вам позже в программе C23 для работы бота в контроллере.
Важно надежно хранить этот токен, так как он дает вашему боту полный доступ к управлению.
@BotFather также предоставляет возможность настроить некоторые основные параметры вашего бота, такие как описание, аватар и команды. Вот как это сделать:
Установка описания: Это первое, что видят пользователи, когда находят вашего бота. Описание должно быть ясным и конкретным, четко описывающим функции вашего бота.
Добавление аватара: Аватар помогает сделать вашего бота узнаваемым. Вы можете использовать любое изображение, соответствующее целям и стилю вашего бота.
Мы успешно завершили работу над ботом, и теперь он будет нашей надёжной опорой в Telegram. С его помощью мы сможем получать своевременные уведомления о любых тревожных ситуациях на объекте, а также задавать вопросы о его текущем состоянии.
Теперь мы переходим к подготовке контроллера Saturn PLC к взаимодействию с нашим ботом.
Первым шагом мы подключаем к контроллеру питание и интернет-кабель. Затем мы проверяем подключение к сети, нажав синюю кнопку "Вверх". В результате мы должны увидеть что-то похожее на то, что представлено на картинке ниже. Это означает, что контроллер успешно получил IP-адрес и все сетевые параметры, так как в настройках по умолчанию активирована опция «Получить IP автоматически по DHCP».
Далее грузим из облака приложений МНПП САТУРН ПО С23-TLS.
Для этого заходим в меню контроллера, нажав зеленую кнопку ">".
Синими стрелками выбираем пункт (5. Параметры контроллера) и активируем выбор зеленой кнопкой ">".
Синими стрелками выбираем пункт (7. Сменить Программное Обеспечение) и активируем выбор зеленой кнопкой ">".
С помощью синих стрелок на экране выберите пункт (PLC контр. (С23-TLS) и подтвердите свой выбор, нажав зелёную кнопку ">". Затем ещё раз подтвердите процесс загрузки нового программного обеспечения.
Начнётся загрузка последней версии программного обеспечения (ПО) 1.4 из облака и процесс программирования внутренней флеш-памяти. Пожалуйста, подождите, пока процесс завершится. В это время категорически запрещается отключать питание контроллера.
Далее на компьютере запускаем среду разработки Visual Studio Code с установленными плагинами SAT-SDK (Как установить это с нуля в другой нашей статье). И настраиваем соединение с нашим контроллером.
Чтобы начать, в нижней части экрана нажмите кнопку "Эмулятор ПЛК". Появится белое окно "Имитатор контроллера Saturn-PLC". В строке меню выберите "Saturn PLC" -> "Настройка подключения". В строке "Адрес" введите IP-адрес контроллера, который находится в вашей локальной сети. Если вы не помните адрес, нажмите кнопку "Поиск" и выберите найденный контроллер.
Поздравляем! Теперь ваша среда разработки и контроллер связаны друг с другом.
Для начала никакой код писать не будем, а скопируем его из "примера" встроенной помощи в файл main.c
Ищем строку, где идет инициализация бота tg_ini копируем туда id Только что созданного вами бота.
нажимаем кнопочку "компилировать" , и видим что компиляция прошла успешно. после этого кнопочкой "Прошивка" заливаем наше ПО в контроллер.
Котроллер после загрузки обращается к боту и просит сообщите ему информацию о нашем боте. И случае если мы сделали все правильно бот сообщит нам информацию о себе и покажет ее на экране контроллера.
Смотри как это выглядит в коде.
После получения информации о боте, код , который вы видите в примере, будет обращаться к серверу Telegram каждые 20 секунд, чтобы проверить наличие новых сообщений от пользователя, то есть от вас.
В данном примере реализована всего одна команда которую вы можете подать, это SIG. И если мы напишем как на картинке ниже. то при очередной проверке контроллер "Увидит", что на сервере лежит сообщение "SIG". Для него это будет знаком что надо послать сообщение о состоянии всех входо DI и выходов DO нашего контроллера.
Мы запрашиваем у контроллера состояние входов и выходов через Telegram-бота, вводя команду SIG. Контроллер получает наш запрос и отвечает сообщением, например, «DI1=0, DI2=0 и так далее».
Вот так и происходит обмен сообщениями в Telegram.
Далее, внимательно изучите код на примере и внесите необходимые изменения в соответствии с вашими задачами.
На этом всё. Желаю вам успешной реализации ваших идей!