Страница 2 из 6 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 52

Тема: Universal Modbus Device или библиотека Modbus.lib?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Мда сейчас открыл свой проект с таким блоком и...да при записи в МВ110-8д4р контроля ошибок и записанных байт нету.
    Просто я сначала читаю маску входов из модуля , там контроль связи работает , а следующим шагом пишу маску выходов и вот там да с контроля нет ...,по ходу да сейчас вспомнил то-же самое было - выход срабатывает , а ответ не правильный , просто забил на это и забыл , теперь вспомнил . ПО от Овена оно такое ... списифическое , путают робяты теплое с мягким постоянно...

  2. #2

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    Мда сейчас открыл свой проект с таким блоком и...да при записи в МВ110-8д4р контроля ошибок и записанных байт нету.
    Просто я сначала читаю маску входов из модуля , там контроль связи работает , а следующим шагом пишу маску выходов и вот там да с контроля нет ...,по ходу да сейчас вспомнил то-же самое было - выход срабатывает , а ответ не правильный , просто забил на это и забыл , теперь вспомнил . ПО от Овена оно такое ... списифическое , путают робяты теплое с мягким постоянно...
    так вот ошибка таймаута при записи возникает, потому что CRC неправильное...

    Это что же, проверять включились релюхи или нет нужно доп. опросом? И так миллисекунды считаю (
    Последний раз редактировалось Атаман; 29.01.2017 в 12:04.

  3. #3
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    При опросе модуля МДВВ (опять же из своих старых проектов) все нормально,полагаю что и с му110-8р то-же все ОК , может быть что-то не так с самим 8д4р...х.з (кокой-то он ... кастрированный)

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

    З.Ы
    По стандарту ошибка CRC - это не отсутствие ответа .
    Да и другие странности есть в работе этой библиотеки , для надежного обмена товарищи пишут используя SysLibCom , я тоже с этим согласен.
    Последний раз редактировалось Sergey666; 29.01.2017 в 12:50.

  4. #4

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    По стандарту ошибка CRC - это не отсутствие ответа .
    Как же не таймаут...

    If the server receives the request, but detects a communication error (parity, LRC,
    CRC, ...), no response is returned. The client program will eventually process a
    timeout condition for the request.

  5. #5
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Смотря кто курица , а кто яйцо..., ПЛК у нас - клиент , а модуль - сервер .Если модуль включил релюху , значит принял команду и,должен был отправить ответ .
    Щас от нефиг делать открыл библиотеку и... блок MB_UNI_IO - T_FRTU: TIME := T#3ms; (* межкадровый интервал режима RTU *) по ходу из-за этого на низких скоростях 19200 не работает
    .

    Ой ... та як воно тута...шедеврально , эдакий мастер... так и напрашивается на ...покусание сторожевой собакой:
    (* Чтение / запись данных по протоколу MODBUS. Complete -
    * выставляется на один цикл до начала следующего чтения / записи. *)
    Complete := FALSE; (* снять признак готовности результата *)
    Exception := EXC_NO; (* очистить регистр ошибок *)
    IF Active = FALSE THEN (* проверить доступность нового цикла обмена *)
    Active := TRUE; (* установить признак активности цикла обмена *)
    WHILE SysComRead(ComHandle, ADR(DataBuf), SIZEOF(DataBuf), 0) <> 0 DO;
    END_WHILE
    Read := FALSE; (* снять признак чтения кадра *)
    tonTimer(IN := FALSE); (* остановить таймер тайм-аута *)
    END_IF

    Овен в своем амплуа и репертуаре...
    Последний раз редактировалось Sergey666; 29.01.2017 в 13:39.

  6. #6

    По умолчанию

    У меня rs.dl= 2. Все настройки по умолчанию... неправильное crc

  7. #7
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Цитата Сообщение от Атаман Посмотреть сообщение
    У меня rs.dl= 2. Все настройки по умолчанию... неправильное crc
    Надо его модбас-тестером опросить... в принципе завтра смогу .
    А бибка modbus.lib -чудная какая-то...

  8. #8

    По умолчанию

    про тонкости работы с modbus.lib уже не раз говорилось... Не надо формировать буфер на запись в каждом цикле, т.к. ф.б. на запись не успеет отработать за один цикл, а буфер используется один и тот же и на отправку запроса и на прием ответа. Таким образом, при ответе от слейв-устройства в буфере будет "каша" из ответа от устройства и данных, которые вы отправляете на него.

  9. #9

    Thumbs up

    Цитата Сообщение от Гарчев Евгений Посмотреть сообщение
    про тонкости работы с modbus.lib уже не раз говорилось... Не надо формировать буфер на запись в каждом цикле, т.к. ф.б. на запись не успеет отработать за один цикл, а буфер используется один и тот же и на отправку запроса и на прием ответа. Таким образом, при ответе от слейв-устройства в буфере будет "каша" из ответа от устройства и данных, которые вы отправляете на него.
    пять лет прошло, а грабли как новые.
    попался мне плк 73 c платкой модбаса,
    залил тестовый проект в него Modbus чтение INT и REAL (ST),
    и к этому же компу через usb-rs485 модбас от контроллера пробросил, софт MasterOPCUniversal включил и смотрю.
    Ага, переключил в коде на MB_RTU , т.к. в MasterOPCUniversal так по умолчанию.
    забил цифры в регистры с 8 по 14 (как в примере) в slave устройстве на софте MasterOPCUniversal
    INT нормально считывает, REAL байты только переставил и все норм тоже.
    А считывание трех INT подряд - нули. что то не так....
    настроил цикл задачи на 500ms и увидел что код ошибки 255 прилетает как раз в тот момент как прошло завершение чтения.
    таким образом ничего в результат не попадает.
    вот в поиске и нашел эту ветку.
    уменьшив в запросе количество байт до 4х - ошибка пропадает, ставишь больше появляется.

    собственно вопрос тот же (как не наступить на грабли ?) как работать с modbus.lib?
    не совсем ясна фраза "Не надо формировать буфер на запись в каждом цикле" ? хотя чувствую что в ней зарыт смысл...
    где посмотреть подробнее?

    PS. не хочется лезть в библиотеку, благо можно открыть либу текстовым редактором и скопипастить это чудо и покопаться.
    Не попадись мне контроллер для опытов just for fun так сказать, не купил бы. А ведь цена на него стоит сейчас в 30 тысяч!
    (хоть и снят с производства) и при этом к нему бубен не прилагается!

  10. #10
    Пользователь Аватар для A.Simonov
    Регистрация
    11.07.2017
    Адрес
    Москва
    Сообщений
    623

    По умолчанию

    Цитата Сообщение от Schneider Посмотреть сообщение
    пять лет прошло, а грабли как новые.
    попался мне плк 73 c платкой модбаса,
    залил тестовый проект в него Modbus чтение INT и REAL (ST),
    и к этому же компу через usb-rs485 модбас от контроллера пробросил, софт MasterOPCUniversal включил и смотрю.
    Ага, переключил в коде на MB_RTU , т.к. в MasterOPCUniversal так по умолчанию.
    забил цифры в регистры с 8 по 14 (как в примере) в slave устройстве на софте MasterOPCUniversal
    INT нормально считывает, REAL байты только переставил и все норм тоже.
    А считывание трех INT подряд - нули. что то не так....
    настроил цикл задачи на 500ms и увидел что код ошибки 255 прилетает как раз в тот момент как прошло завершение чтения.
    таким образом ничего в результат не попадает.
    вот в поиске и нашел эту ветку.
    уменьшив в запросе количество байт до 4х - ошибка пропадает, ставишь больше появляется.

    собственно вопрос тот же (как не наступить на грабли ?) как работать с modbus.lib?
    не совсем ясна фраза "Не надо формировать буфер на запись в каждом цикле" ? хотя чувствую что в ней зарыт смысл...
    где посмотреть подробнее?

    PS. не хочется лезть в библиотеку, благо можно открыть либу текстовым редактором и скопипастить это чудо и покопаться.
    Не попадись мне контроллер для опытов just for fun так сказать, не купил бы. А ведь цена на него стоит сейчас в 30 тысяч!
    (хоть и снят с производства) и при этом к нему бубен не прилагается!
    Добрый день.
    Без кода не очень понятно что и как у вас реализовано.
    Но вообще, если успешность запроса зависит от числа запрашиваемых байт...
    Так может slave не поддерживает групповой опрос? и каждый параметр нужно отдельно опрашивать?

    Прикладываю примеры опроса, которые у меня завалялись.
    Вложения Вложения
    • Тип файла: zip primer.zip (67.2 Кб, Просмотров: 26)

    Александр Андреевич Симонов
    Инженер по продуктам «ПЛК, модули и OwenCloud»

    Не работаю в ОВЕН с 01.07.22
    По всем вопросам обращайтесь на почту: support@owen.ru

Страница 2 из 6 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. Чтение и запись в Universal Modbus device
    от super100 в разделе ПЛК1хх
    Ответов: 20
    Последнее сообщение: 30.10.2013, 12:18
  2. Адресация Universal Modbus device
    от super100 в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 04.10.2013, 13:05
  3. Universal device MODBUS ???
    от EFrol в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 17.01.2012, 09:43

Ваши права

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