PDA

Просмотр полной версии : ошибка контрольной суммы в ответе



Денис Гладышев
29.11.2023, 15:08
Добрый день!
Произвел закупку модулей ввода/вывода.
Список модулей:
Модуль дискретного ввода МВ110-224.16ДН
Модуль аналогового ввода МВ110-24.8АС
Модуль аналогового ввода МВ110-224.2А
Модуль дискретного вывода МУ110-224.8Р - 2шт.
Модуль дискретного вывода МУ110-224.8К

Столкнулся с проблемой по модулю аналогового ввода МВ110-24.8АС
Стоит в линии с оставшимися модулями. Мастером является рабочая станция с установленной платой MOXA. Конфигурация проходит через конфигуратор М110 (старый, т.к. на модулях не было информирующей таблички о использовании нового конфигуратор).
Параметры у всех модулей одинаковые: скорость 115200, задержка ответов по RS-485 - 10 мс, протокол - MODBUS, контроль четности - ODD, кол-во стоп-бит - 1
Адреса у модулей от 1 до 6 включительно. Проблемный модуль по адресу 2.
При включении опроса через OPC сервер все блоки опрашиваются штатно, кроме аналогового ввода МВ110-24.8АС. Он выдает постоянно ошибки "ошибка контрольной суммы в ответе".
Все остальные модули работают штатно.
Пробовал подключать к другим устройствам-мастерам.
Были попытки посмотреть осциллограммы обмена, в итоге видно картину, что время начала ответа модуля после окончания запроса мастера очень короткое, порядка 160 мкс.
Прошу Вас проконсультировать о возможных решениях данной проблемы и были ли подобные ситуации с данным модулем.
Заранее благодарен!

kondor3000
29.11.2023, 15:30
Добрый день!
Произвел закупку модулей ввода/вывода.
Список модулей:

Прошу Вас проконсультировать о возможных решениях данной проблемы и были ли подобные ситуации с данным модулем.
Заранее благодарен!
Модули МВ110-24.8АС программируются старым конфигуратором "Конфигуратор M110", так же в нём можно и опросить входы, поставив нужные галки. Естественно входы надо настроить и подключить датчики, проверьте их работу сначала.
Кофигуратор работает по протоколу Овен, поэтому подключать блоки надо по одному, после программирования перезагрузить по питанию.
И только по Модбас RTU, можно включить все блоки сразу. Советую настраивать блоки всегда по умолчанию 8N1, меньше будет проблем.
Потом уже проверять через OPC сервер, проверив что Модбас RTU, правильность настроек сети и адресов регистров. Для Float, как правило надо переставить регистры.

Евгений Кислов
29.11.2023, 16:27
Были попытки посмотреть осциллограммы обмена, в итоге видно картину, что время начала ответа модуля после окончания запроса мастера очень короткое, порядка 160 мкс.

Для таких ситуаций в модуле предусмотрен параметр Rs.dl - это задержка модуля перед отправкой ответа мастеру. Попробуйте увеличить его значение.

fatlortroll
29.11.2023, 17:29
Добавлю к вопросу -- МВ110-8АС был подключен к СПК107 с runtime v3.5.17.30 к COM1 (Modbus-RTU) на скорости 9600 (parity-ODD) используя графический конфигуратор.
В процессе опроса МВ110-8АС периодически выдаёт ошибку 'The bus is no running'. Прочие модули серии Мx110 устойчиво работают с СПК107 на любых допустимых скоростях.
Нет ли каких-либо специфичных проблем именно с МВ110-8АС ?

Евгений Кислов
29.11.2023, 19:01
Добавлю к вопросу -- МВ110-8АС был подключен к СПК107 с runtime v3.5.17.30 к COM1 (Modbus-RTU) на скорости 9600 (parity-ODD) используя графический конфигуратор.
В процессе опроса МВ110-8АС периодически выдаёт ошибку 'The bus is no running'. Прочие модули серии Мx110 устойчиво работают с СПК107 на любых допустимых скоростях.
Нет ли каких-либо специфичных проблем именно с МВ110-8АС ?

Известных специфических проблем нет.
Для начала я, как уже писали выше, рекомендовал бы поменять ODD на NONE.
А вообще - лучше связаться с нашей техподдержкой и предоставить им удаленный доступ, чтобы можно было увидеть больше деталей происходящего.

fatlortroll
30.11.2023, 07:58
Без чётности стало лучше, да, но это-ж не решение.
С удалённым доступом у нас совсем никак. Разве что физически выслать вам эти блочки.
Заводской номер того, которого с СПК тестировал -- 60616180432124106, если это вдруг может быть нужно.

Евгений Кислов
30.11.2023, 08:05
Без чётности стало лучше, да, но это-ж не решение.
С удалённым доступом у нас совсем никак. Разве что физически выслать вам эти блочки.
Заводской номер того, которого с СПК тестировал -- 60616180432124106, если это вдруг может быть нужно.

Свяжитесь с саппортом, пожалуйста, чтобы обсудить вашу проблему в технических терминах.
"Периодически", "стало лучше" и т.п. - это не особо проясняет, что именно вы наблюдаете.

Денис Гладышев
01.12.2023, 10:14
Добрый день!
Спасибо всем за советы
Попробовали - результат следующий: помогло изменение с ODD на None. Также увеличили параметр "Пауза между запросами" в OPC сервере.
При этом параметр конфигурации модуля - Rs.dl никак не влиял на ситуацию с параметром ODD
Единственный вопрос в следующем: почему модуль отказывается работать с ODD. Ведь он рассчитан под подобную работу. Является ли это типичным для данного модуля?
Поддержка также советовала параметр без контроля четности. Но вопрос почему не работает с ODD остается открытым.
Есть ли у кого мысли по этому поводу?
Спасибо!

In_Da_Cher_A
01.12.2023, 11:02
а зачем вам контроль чётности?
какие задачи вы решаете с его "помощью" и почему это не решается без него?

МихаилГл
01.12.2023, 11:19
а зачем вам контроль чётности?
какие задачи вы решаете с его "помощью" и почему это не решается без него?

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

In_Da_Cher_A
01.12.2023, 11:52
Не знаю как у ТС,
смотри сообщение 1

МихаилГл
01.12.2023, 11:56
смотри сообщение 1

Я это видел, но это же может быть не вся информация...
Ну а в моей ситуации такое бы не прошло.

Купили МКЗиД, а у них не оказалось требуемого режима. Пришлось у всех старых частотников и плавников менять сетевые параметры.

Денис Гладышев
01.12.2023, 13:18
а зачем вам контроль чётности?
какие задачи вы решаете с его "помощью" и почему это не решается без него?

Дело не в том, что мне оно необходимо, а в том, что производитель предусмотрел такой параметр и выпустил продукт с документированной поддержкой такого режима. Сейчас работа с включенным данным параметром нестабильна. Соответственно возникает вопрос: а не будет ли еще каких то проблем по тем вещам, которые производитель в своей документации указывает. Прибор должен работать в режимах, заверенных производителем. А если нет, то возникает вопрос. Хотелось бы тогда знать, вдруг схемотехнически или программно в этом блоке невозможна реализация данного параметра. Ведь таких вещей с ним не должно происходить (по крайней мере в моем понимании)

Денис Гладышев
01.12.2023, 13:33
уточните про какого производителя идет речь?

Овен, МВ110-24.8АС
Он поддерживает выставление параметра четности ODD. Но с ним работает некорректно, постоянно выдавая ошибку контрольной суммы. Если параметр поменять на None, то полет нормальный. Но все таки это не решение проблемы, а убегание от симптомов. В моем понимании производитель добавляя возможность выбрать ODD гарантирует работу с этим параметром.

Денис Гладышев
01.12.2023, 14:16
гарантирует, а вдруг Вы не обеспечиваете качественный канал связи и микросхема(а не ПО) отбрасывает посылку с отсутствием паритета. Вы что то предпринимали, кроме как перейти на отсутствие контроля, проверяли прибор отдельно не с панелью а с ПК в режиме odd?

Я как раз и не спорю, что проблема может быть не в производителе, поэтому и хочу услышать мнение со стороны, потому что по идее должно все работать (совсем не исключаю проблему вне прибора).
По поводу проверок:

1) проводили тестирование модуля МВ110-24.8АС не только в связке с платой moxa в ПК, но и с внешнем usb адаптером moxa и с спк107. Результат не меняется
2) пробовал еще 2 таких же модуля - результат не меняется
3) пробовал отключать остальные модули в линии - результат не меняется
4) пробовал отключать резистор 120 ом с конца линии и с стороны master'а - результат не меняется
5) смотрел осциллограмму пакетов (в самом первом сообщении приложил) - из отличительного по сравнению с другими модулями то, что длительность между концом передачи мастера и началом ответа слейва на ПОРЯДОК меньше, чем у остальных блоков. (хотя непонятно на сколько данный факт важен, т.к. в режиме None данный промежуток такой же, но ошибок по контрольной сумме не наблюдается)
6) пробовал менять Rs.dl - результат не меняется
7) на осциллограмме особо заметны шумов я не наблюдаю
8) пробовал ставить прошивку последнюю с сайта - результат не меняется

Единственное, что действительно повлияло и было странным то, что с одним единственным СПК107 (стареньким) модуль не выдавал ошибки по контрольной сумме и все было ОК.
К справке - все модули МВ110-24.8АС 2021 года.

Денис Гладышев
01.12.2023, 14:27
скрин приложите настроек соединения через конфигуратор
ЗЫ естественно в режиме ODD когда не получается работать по модбас

72048
72049
72050
72051

capzap
01.12.2023, 14:39
выбор стоп бита, в выпадающем списке какие значения есть, просто по модбас другие значения 72052

Денис Гладышев
01.12.2023, 14:44
выбор стоп бита, в выпадающем списке какие значения есть, просто по модбас другие значения 72052

Выбор: 1 и 2

In_Da_Cher_A
01.12.2023, 17:28
Дело не в том, что мне оно необходимо, а в том, что производитель предусмотрел такой параметр и выпустил продукт с документированной поддержкой такого режима.
я конечно не адский профессионал модбаса
но вспоминая когда-то увиденное в умных сайтах в интернете, хочется предложить автору перстать теребонькать модуль
а вернуться к основам, так сказать к истокам - что такое чётность и для чего она в протоколе

melky
02.12.2023, 09:28
In_Da_Cher_A ODD, Even 1 или 2 стоп бита как бы к протоколу(ам) отношения не имеют, это проверка целостности на физическом уровне передачи данных.
Тут скорее железо и прошивка самого прибора не успевает что-то отрабатывать и обрабатывать.

In_Da_Cher_A
02.12.2023, 11:10
ODD, Even 1 или 2 стоп бита как бы к протоколу(ам) отношения не имеют,с чего бы это

это проверка целостностицелостности чего?

In_Da_Cher_A
02.12.2023, 11:17
Even 1 или 2 стоп битатак вот они вроде как раз для того, чтобы не использовать контроль чётности

скорее железо и прошивка самого прибора не успевает что-то отрабатывать и обрабатыватьжелезо и прошивка работает с данными, им вообще наплевать, если данные нормальные, а вот если данные "ломаются" по дороге, то вот тогда и будет "ошибка контрольной суммы"

Валенок
02.12.2023, 11:35
целостности чего?
Конкретного байта.
И да - я тоже всегда юзаю 8n1



.. железо и прошивка самого прибора не успевает что-то отрабатывать и обрабатывать.
Если Вы про 8AC, то коли нечто от него таки приходит в ответ - успевает. А учитывая #1 последний абзац и #15 5) - слишком успевает ))
Если мы про модбас, то на 115200 минимально - в 2 раза больше.

Валенок
02.12.2023, 11:48
to Денис Гладышев
А есть возможность привести побайтный состав запросов/ответов к 8AC ?
особенно тех которые битые по ответу

melky
02.12.2023, 12:26
Ну есть проверки целостности байта до протокола и уже на уровне протокола, вместо Modbus может быть что угодно.
Кстати да, если 8АС отвечает, то она то точно успела принять запрос и он корректный.
з.ы. у меня как-то вместе 8АС и МЭ110-1М вместе не работали на одной линии, кажется в МЭ пришлось ждать обновления прошивки, после чего все заработало. Опрос тогда был со стороны ПЛК100 через конфигурацию.
Может и тут какой-то из модулей "фонит" в линии?

melky
02.12.2023, 12:28
Вариант, что не хватает времени принять весь ответ от 8АС и нет проверки длины ответа, сразу попытка проверять контрольную сумму?

In_Da_Cher_A
02.12.2023, 14:23
Конкретного байта.данных? значит это имеет прямое отношение к протоколу, хотя коллега melky утверждает, что нет
вот я читаю описание протокола

Структура данных в режиме RTU
В режиме RTU данные передаются младшими разрядами вперед (рис. 2.26).

По умолчанию в RTU режиме бит паритета устанавливают равным 1, если количество двоичных единиц в байте нечетное, и равным 0, если оно четное. Такой паритет называют четным (even parity) и метод контроля называют контролем четности.

72064
Рис. 2.26. Последовательность битов в режиме RTU; МЗР – младший значащий разряд. При отсутствии бита паритета на его место записывается второй стоп-бит

При четном количестве двоичных единиц в байте бит паритета может быть равен 1. В этом случае говорят, что паритет является нечетным (odd parity).

Контроль четности может отсутствовать вообще. В этом случае вместо бита паритета должен использоваться второй стоповый бит. Для обеспечения максимальной совместимости с другими продуктами рекомендуется использовать возможность замены бита паритета на второй стоповый бит.

Ведомые устройства могут воспринимать любой из вариантов: четный, нечетный паритет или его отсутствие.

Структура Modbus RTU сообщения
Сообщения Modbus RTU передаются в виде кадров, для каждого из которых известно начало и конец. Признаком начала кадра является пауза (тишина) продолжительностью не менее 3,5 шестнадцатеричных символов (14 бит). Кадр должен передаваться непрерывно. Если при передаче кадра обнаруживается пауза продолжительностью более 1,5 шестнадцатеричных символа (6 бит), то считается, что кадр содержит ошибку и должен быть отклонен принимающим модулем. Эти величины пауз должны строго соблюдаться при скоростях ниже 19200 бит/с, однако при более высоких скоростях рекомендуется использовать фиксированные значения паузы, 1,75 мс и 750 мкс соответственно.

Контроль ошибок
В режиме RTU имеется два уровня контроля ошибок в сообщении:

контроль паритета для каждого байта (опционно);

контроль кадра в целом с помощью CRC метода.

CRC метод используется независимо от проверки паритета. Значение CRC устанавливается в ведущем устройстве перед передачей.
При приеме сообщения вычисляется CRC для всего сообщения и сравнивается с его значением, указанным в поле CRC кадра. Если оба значения совпадают, считается, что сообщение не содержит ошибки.

Стартовые, стоповые биты и бит паритета в вычислении CRC не участвуют.

а у автора - ошибка контрольной суммы в ответе
сдаётся мне, что проблема совсем не в модуле

Валенок
02.12.2023, 14:29
Вариант,...
Ну на фоне того что 8AC слишком шустрый:

.. из отличительного по сравнению с другими модулями то, что длительность между концом передачи мастера и началом ответа слейва на ПОРЯДОК меньше, чем у остальных блоков..
вытекает что мастер не успевает переключается в чтение. И проблема - в мастере.
Да и подтверждается другим мастером:

было странным то, что с одним единственным СПК107 (стареньким) модуль не выдавал ошибки по контрольной сумме и все было ОК..
Но мастер имеет право предъявить про непротокольную шустрость ))


Но! Не бьётся с этим:

.. помогло изменение с ODD на None...

... в режиме None данный промежуток такой же, но ошибок по контрольной сумме не наблюдается).


--
поэтому и попросил п#24

Валенок
02.12.2023, 14:30
данных?
Причем тут данные ? Сказано же - конкретного байта. К остальным - пофиг.

Васильев
03.12.2023, 01:32
1. в одном мануале от овен написано, что аппаратно не поддерживается контроль четности
(надо поискать)
2. в проекте (который я думаю решил) при обмене периодически возникала ошибка кс,
модули на дин рейке рядом, соединение хорошими обычными одножильными проводами :)
банальное решение - простая витая пара из кабеля UTP и терминальный резистор 120 ом и нет ни одной ошибки кс.

fatlortroll
08.12.2023, 15:26
Вот осциллограммы работы 8АС с несколькими драйверами RS485:

72244
8АС подключен к СПК107, графическим конфигуратором на скорости 115200, 8odd1, ошибки обмена есть.

72246
8АС подключен к компу через адаптер MOXA UPort-1150 на скорости 115200, 8odd1, читается Owen OPCServer-ом, ошибки обмена есть.

72247
8АС подключен к компу через noname-китайский адаптер на CH340 на скорости 115200, 8odd1, читается Owen OPCServer-ом, ошибок обмена НЕТ.

Я не очень понимаю, что творится.

Валенок
08.12.2023, 18:48
...
Я не очень понимаю, что творится.

...
А есть возможность привести побайтный состав запросов/ответов к 8AC ?
особенно тех которые битые по ответу
......................

fatlortroll
08.12.2023, 21:10
Попробую в понедельник.