Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 21

Тема: Парсинг JSON средствами ST в Codesys 3.5

  1. #11
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,067

    По умолчанию

    Цитата Сообщение от IgorKIV Посмотреть сообщение
    plk 210 03
    задача с моего сайта в сети интернет получить данные по запросу.
    нужно отправить запрос http get и разобрать ответ
    отправить запрос пост. делать это раз в 10 секунд.
    Посмотрите видео - пример из него близок к вашему вопросу:
    https://youtu.be/xFvN0BryJFk

    В интернете есть много примеров, как с помощью curl отправить HTTP-запрос.

  2. #12

    По умолчанию

    спасибо за направление

  3. #13

    По умолчанию

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

    скачал и освоился с HTTP Client, работает быстро но не работает по https или я не понял что надо сделать.
    IIoT пока не могу разобраться как сделать POST запрос с разбором ответа.
    вдруг есть такие же видео по упомянутым библиотекам и Вы о них знаете?

  4. #14
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,067

    По умолчанию

    скачал и освоился с HTTP Client, работает быстро но не работает по https или я не понял что надо сделать.
    Эта библиотека не поддерживает HTTPS.

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

    при выполнении основной задачи простейший запрос выполняется около 30 секунд. это долго.
    Команда, вызываемая через CmpSysExec, выполняется не в потоке реального времени, чтобы не блокировать приложение CODESYS, но 30 секунд звучит не очень реалистично.
    Например, здесь видно, что выполнение POST запроса занимает около 3 секунд:
    https://youtu.be/T6XfuDQIOk4?t=426

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

  5. #15

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Эта библиотека не поддерживает HTTPS.



    Эта библиотека не будет работать на наших контроллерах, так как она требует приобретение и активацию лицензии.
    Наши контроллеры не поддерживают активацию лицензий.



    Команда, вызываемая через CmpSysExec, выполняется не в потоке реального времени, чтобы не блокировать приложение CODESYS, но 30 секунд звучит не очень реалистично.
    Например, здесь видно, что выполнение POST запроса занимает около 3 секунд:
    https://youtu.be/T6XfuDQIOk4?t=426

    Возможно, наблюдаемые вами задержки связаны с особенностями вашего проекта или сервера.
    Сделайте простой проект, в котором будет только вызов блока из CmpSysExec, и посмотрите, сколько времени зайтем выполнение запроса в этом случае.
    останавливаю проект, захожу в конфигруатор - система - терминал пишу запрос https://polkomoda.ru/local/api/crm/?...get&user=18359 - ответ через 1-2 секунды
    запускаю проект - пишу то же самое в терминале - 23-30 секунд исполнение в терминале

    как сделать лучше?
    30 секунд совсем долго.

    iiot брал от сюда пишет что для 210 02 тестировано
    https://github.com/Allexd1992/iiot_t...ample_codesys3
    https://github.com/Allexd1992/iiot_tools
    уже из совершенно странных источников пытаешься что то получить лишь бы заработало - задача то весьма обычная и простая. получить данные с веб страницы а не получается...
    можете что то сказать про библиотеку iiot_tools и стоит ли пытаться в ней разобраться или искать дальше как

  6. #16
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,067

    По умолчанию

    запускаю проект
    Что это за проект? Это пустой проект, с одним вызовом блока из CmpSysExec?
    Если да - обеспечьте доступ по AeroAdmin, пожалуйста - посмотрим, что у вас происходит.

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

  7. #17

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    На форуме 3S один из пользователей выкладывал свою разработку:
    https://forge.codesys.com/lib/pro-json/home/Home/
    (для скачивания - справа кнопка Download package)
    Здравствуйте.
    А подскажите по этой библиотеке.
    Я сохраняю три разных переменных в строке Json. Получается строка:

    Код:
    {"stJson":{"var1":25,"var2":1025,"var3":-3.14}}
    Потом делаю обратное преобразование из строки, но получаю переменные другого типа. См. рисунок:

    json1.png

    Что я делаю не так? И как получить нужные типы данных (такие, какие были при формировании строки)?
    Вложения Вложения

  8. #18
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,067

    По умолчанию

    Добрый день.

    Ответ содержится в примерах использования библиотеки (интегрированных в библиотеку).

    Код:
    bVar2 := TO_BYTE(stJson.var1.Integer);
    wVar2 := TO_WORD(stJson.var2.Integer);
    rVar2 := TO_REAL(stJson.var3.AsString);
    Не забудьте объявить переменные (bVar2 и т.д.).

  9. #19

    По умолчанию

    В общем библиотека Json более-менее работоспособная. С открытым исходным кодом. Лицензия MIT ("она находится в Интернете, поэтому люди могут делать с ней все, что захотят").

    Заворачивает в JSON все виды данных.
    А вот обратно не разворачивает данные bool, array и array_of_struct. Ну или я просто чего-то не понимаю.
    Важно: имена структуры для fbStruct_to_json (сериализация) и структуры для fbJson_to_struct (десериализация) должны быть одинаковыми.
    Вложения Вложения
    Последний раз редактировалось ВладОвен; 08.11.2023 в 15:13.

  10. #20

    По умолчанию

    Здравствуйте.
    Вопрос на засыпку:
    Чем обмен через OPCua лучше обмена через TCP сокеты? Ведь можно похожим образом отправлять/получать переменные (заворачивая их в Json).
    Возможно, тем, что меньше действий в программе надо делать и меньше разбираться в мелочах и деталях?
    А как насчет шифрования?

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 12.09.2016, 17:51
  2. Ответов: 1
    Последнее сообщение: 01.09.2014, 15:52
  3. Ответов: 10
    Последнее сообщение: 15.04.2014, 06:27
  4. Архив типа shift mode средствами SysLibFile
    от Владимир Васильевич в разделе ПЛК1хх
    Ответов: 39
    Последнее сообщение: 31.08.2010, 17:07
  5. Ответов: 1
    Последнее сообщение: 12.11.2007, 11:34

Метки этой темы

Ваши права

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