Показано с 1 по 10 из 10

Тема: непонятное поведение SysLibCom

  1. #1

    По умолчанию непонятное поведение SysLibCom

    Подскажите, кто знает: с помощью ПЛК100 нужно опрашивать регулятор температуры ТЕРМОДАТ 12 каналов. Прибор понимает только modbus ASCII. Текущая температура находится в регистрах начиная с 0. Параметры порта- 8 бит данных, один стоп бит, без контроля четности. При настройке опроса в ПЛК через конфигуратор всё прекрасно работает. И текущая температура и заданная считывается без проблем. Попытался организовать опрос через библиотеку MODBUS.lib по примеру из описания библиотеки. Опрашивать решил пока один канал. Прибор отвечает, но очень долго. Подключившись параллельно линии RS485 сниффером видно, что прибор отвечает бессвязным набором символов, которые не интерпретируются в посылку modbus ASCII. Причем ответ всегда одинаковый, судя по набору символов. А примерно 1 раз в 50 посылок ответ приходит нормальный. Далее опять белиберда и через 50 посылок верный ответ. Решил опять организовать опрос через конфигуратор. Также один кaнaл, тот же самый. Сниффер показал адекватный ответ от прибора. Попробовал просто через терминал с компа отправлять посылку аналогичную той, что отправляет ПЛК. Ответ также адекватный. Выкинул прослойку MODBUS.lib и решил опрашивать просто библиотекой SysLibCom, посылая ту же посылку, что и через терминал. Тоже белиберда в ответ приходит. В попытках понять причину установил скорость обмена на приборе и в библиотеке на 57600 и обмен пошел нормальный. Вернул на 9600- белиберда. Любая другая скорость кроме 57600-белиберда. Посылка одна и таже. Настройки порта в библиотеке не меняю кроме скорости. Что я не так делаю? овен-термодат-через конфигуратор.pdfовен-термодат.pdf
    Вложения Вложения
    • Тип файла: pro afd2.pro (66.3 Кб, Просмотров: 7)

  2. #2

    По умолчанию

    Не знаю какой пример вы использовали, только у вас половины нет в программе. Посмотрите Скрин и сравните со своей программой.

    Термодат на 12 каналов настраивается и на modbus ASCII и на modbus RTU, почему скорость 9600, в Термодате по умолчанию по моему 115200. 1 Опрос термодат.jpg
    Вот скрин, переделанный пример c сайта, для опроса Термодат 22-M5 ( Modbus RTU, адрес 32, 115200, 8N1 ) 12 каналов INT, начиная с адреса 0

    Примеры сетевого обмена,
    5) Обмен через библиотеки Modbus и OwenNet
    https://owen.ru/product/codesys_v2/example_program
    Последний раз редактировалось kondor3000; 09.02.2023 в 14:43.

  3. #3

    По умолчанию

    Новые термодаты умеют RTU. Старые могли только ascii и свой собственный "термодат". У меня необходимость опрашивать именно термодат старого образца. И причем именно на скорости 9600. В моей программе нет "половины" которая относится к библиотеке MODBUS.lib. В программе я тупо открываю порт и шлю в него готовую посылку, которая спрашивает текущую температуру 6-го канала у прибора с адресом 30. Эту же самую посылку я отправляю просто терминалом из винды и получаю нормальный ответ. А после отправки её же с ПЛК получаю ерунду (это видно на приложенных картинках). Собственно это я и описал в своем посте

  4. #4

    По умолчанию

    Все примеры, которые находил, я перепробовал. Также обновил прошивку ПЛК до последней. Ничего не помогает. Я бы обвинил во всём термодат, но ту же самую посылку из терминала с компа он принимает и отдает корректный ответ. Причем на любой скорости

  5. #5

    По умолчанию

    Цитата Сообщение от alexx12 Посмотреть сообщение
    Все примеры, которые находил, я перепробовал. Также обновил прошивку ПЛК до последней. Ничего не помогает. Я бы обвинил во всём термодат, но ту же самую посылку из терминала с компа он принимает и отдает корректный ответ. Причем на любой скорости
    Начинаем сначала. Вы прибор опросить хотите или записать уставки в него? Пишите про чтение 6 канала, а выкладываете проект на запись с какой то билебердой.

    Переделать пример с сайта, надо 10 мин.
    Протокол и скорость можно в примере поставить ASCII и 9600
    Последний раз редактировалось kondor3000; 09.02.2023 в 17:54.

  6. #6

    По умолчанию

    В проекте я посылаю посылку " 31 45 30 33 30 30 30 35 30 30 30 31 44 39 0D 0A" что соответствует ":1E0300050001D9" в формате ASCII. Где 1Е-адрес прибора, 05- адрес регистра. Не пойму, где вы тут увидели про 58 адрес? Переменная "a" у меня инкримируется каждый цикл ПЛК. При достижении 350 происходит собственно посылка, после чего переменная обнуляется. Своеобразная пауза между посылками на скорую руку
    Последний раз редактировалось alexx12; 13.02.2023 в 09:55. Причина: пропустил первый байт посылки

  7. #7
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,290

    По умолчанию

    в t чего ?

  8. #8

    По умолчанию

    t-количество переданных байт (из описания функции SysComWrite)

  9. #9
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,290

    По умолчанию

    Цитата Сообщение от alexx12 Посмотреть сообщение
    t-количество переданных байт (из описания функции SysComWrite)
    Не что должно, а что есть?

  10. #10

    По умолчанию

    Число 17. Появляется сразу после передачи посылки. Криминала не увидел

Похожие темы

  1. ТРМ210 вошел в непонятное состояние.
    от Serge32 в разделе Эксплуатация
    Ответов: 5
    Последнее сообщение: 24.11.2021, 15:25
  2. Непонятное поведение СП310+МУ110-16Р
    от Юрий Агапов в разделе Панели оператора (HMI)
    Ответов: 41
    Последнее сообщение: 22.02.2018, 19:41
  3. Непонятное поведение ПР
    от Sergh_Cherenkov в разделе Программируемые реле
    Ответов: 30
    Последнее сообщение: 28.06.2011, 09:53
  4. Непонятное в СП270
    от BoraBora в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 16.03.2011, 09:51
  5. Непонятное поведение ПЛК150
    от nnesterov в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 30.06.2010, 18:40

Ваши права

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