Форум АСУ в Україні
http://asu.in.ua/

Ошибка Communication Report = 07 при завершении READ_VAR
http://asu.in.ua/viewtopic.php?f=194&t=2043
Сторінка 1 з 1

Автор:  Rad [ 12 квітня 2018, 15:09 ]
Тема повідомлення:  Ошибка Communication Report = 07 при завершении READ_VAR

Здравствуйте!
Пожалуйста, помогите разобраться с возможными причинами возникновения ошибок
при использовании промышленной сети Modbus RTU.
В качестве мастера используется ПЛК M340 с процессорным модулем P34 2020 и двумя модулями
NOM 0200. Организовано 4 сети Modbus RTU, к которым подключен 21 слейв (приблизительно равномерно по количеству слейвов в каждой сети).
При работе системы с 3-я слейвами возникают спорадические (иногда довольно частые) ошибки.
С остальными 18 слейвами при обмене ошибок не возникает.
В случае возникновения ошибки при завершении функции READ_VAR возвращает Communication Report = 07 «Problem in sending to the destination».
Когда я отключаю линию с «проблемным» слейвом от соответствующего модуля NOM 0200 и подключаюсь к этому слейву при помощи ПК + конвертер Moxa 1130i + утилита MBPOLL, ‒ обмен происходит без ошибок.
Когда я подключаюсь к линии, на которой находится «проблемный» слейв при помощи ПК + конвертер Moxa 1130i + утилита MBSlave, записываю обмен между мастером и «проблемным» слейвом и анализирую этот обмен, выясняется следующее:
1. Мастер отправляет корректный запрос согласно контексту прикладного ПО;
2. «Проблемный» слейв возвращает корректный ответ, который содержит правильные данные (CRC я не проверял);
3. Мастер принимает этот ответ и выставляет Communication Report = 07.

Просмотр сигнала на данной линии при помощи цифрового осциллографа показал, что сигнал вполне приличного качества и уровень помех незначителен.
Режим работы данной сети 19200, 8N2.
Понижение скорости до 9600 абсолютно не изменило ситуацию.

Подскажите, пожалуйста, в каких случаях READ_VAR возвращает Communication Report = 07, т.к. фраза «Problem in sending to the destination» не содержит никакого технического смысла (ИМХО)

Автор:  san [ 12 квітня 2018, 15:44 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

1) Коректна відповідь вміщує правильну відповідь на запит? Можна побчаити скан пакетів, які приймаються погано?
2) 8N2 може теж грати не на руку. Можна спробувати 8E1.
3) Термінатори є?
4) Треба спробувати на слейвах зменшити таймаут між символами, якщо він більше 1,5 - то це вважається перериванням кадру.

Автор:  Rad [ 12 квітня 2018, 18:03 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

1. Скан - подразумевается цифровая осциллограмма или запись в HEX формате последовательности байт переданного и принятого пакетов?
2. Интересная мысль на счет 8N2 и 8E1. В этом же проекте работает другой ПЛК аналогичной конфигурации
и назначения, который имеет 3 сети Modbus и примерно такое же количество однотипных слейвов.
Он использует режим 19200, 8E1 (из-за наличия в сетях частотников, поддерживающих только 8E1).
В этом ПЛК таких ошибок нет, хотя и первый и второй ПЛК работают с однотипными слейвами в одном и том же здании, используя практически одни и те же трассы и длинны кабелей.
Получается, что NOM 0200 "не любит" режим 8N2 ??????????????
Обязательно переведу сеть с "проблемными" слейвами в режим 8E1.
3. Терминаторы есть на всех линиях.
4. Уменьшить тайм-аут между символами не удастся. ПЛК слейвов (Corrigo E28) не имеет такого настраиваемого параметра.

Автор:  san [ 12 квітня 2018, 18:49 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

1. HEX записи тільки проблемних пакетів
2. Моя "хитка" гіпотеза. Питання в тому, що у варіанті 8N2 завжди йдуть підряд 2 одиничних біта. Якщо перед тим підуть ще одиничні біти (наприклад 8 штук), то буде дуже довга одиниця (8+2=10), яка може сприйнятися як закінчення передачі (хто його знає, як вони там пиляють свої приймачі). Тобто, якщо в пакеті зустрінеться символ "F", то частина його може сприйнятися як відсутність передачі. Якщо за ним передавач ще трохи помовчить, то приймач може подумати що кадр перерваний. Якщо біт паритета буде парним, то ця довга одиниця у будь якому випадку буде перериватися 0-вим бітом паритета.

Автор:  Rad [ 13 квітня 2018, 12:52 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

В одному із експеріментів, що я проводив, я перевів мережу
modbus, до якої були під'єднані "проблемні" слейви у режим
9600, 8N1. Це не привело до жодних змін у порівнянні з
режимом 9600, 8N2.
HEX записи проблемних пакетів підготую і надішлю трохи
пізніше.

Автор:  san [ 13 квітня 2018, 13:58 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

8N1 не поможе, тим більше що в Модбас це не дозволено (У Modbus RTU завжди 11-бітний символ). Треба 8E1.

Автор:  Rad [ 19 квітня 2018, 18:40 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

Пробачте, що з такою перервою, але як я обіцяв,
у приведеному файлі запис обміну по Modbus RTU
(19200 8N2) між мастером і чотирьма слейвами.
При прийомі пакетів від слейвів 3 і 4 виникали
помилки Communication Report = 07


Master: 01 04 00 00 00 07 B1 C8
Slave1_1:01 04 0E 00 75 00 00 00 00 20 6E 1F 5F 00 00 00 AD C4 13

Master: 01 02 00 B8 00 01 39 EF
Slave1_2:01 02 01 00 A1 88

Master: 01 04 00 4B 00 01 41 DC
Slave1_3:01 04 02 00 01 78 F0

Master: 01 04 01 2E 00 01 50 3F
Slave1_4:01 04 02 00 01 78 F0

Master: 02 04 00 00 00 07 B1 FB
Slave2_1:02 04 0E 00 A8 00 00 00 00 13 E4 13 C6 00 00 00 AD 6C 26

Master: 02 02 00 B8 00 01 39 DC
Slave2_2:02 02 01 00 A1 CC

Master: 02 04 00 4B 00 01 41 EF
Slave2_3:02 04 02 00 01 3C F0

Master: 03 04 00 02 00 01 91 E8
Slave3_1: 03 04 02 00 00 C0 F0

Master: 03 02 00 B8 00 01 38 0D
Slave3_2:03 02 01 00 A0 30

Master: 03 04 00 4B 00 01 40 3E
Slave3_3:03 04 02 00 01 01 30

Master: 03 04 01 2E 00 01 51 DD
Slave3_4:03 04 02 00 01 01 30

Master: 04 04 00 02 00 01 90 5F
Slave4_1:04 04 02 00 00 75 30

Master: 04 02 00 B8 00 01 39 BA
Slave4_2:04 02 01 00 A1 44

Master: 04 04 00 4B 00 01 41 89
Slave4_3:04 04 02 00 01 B4 F0

Master: 04 04 01 2E 00 01 50 6A
Slave4_4:04 04 02 00 01 B4 F0

Автор:  san [ 20 квітня 2018, 09:44 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

В пакетах нічого особливого не побачив. Пробуйте 8E1.

Автор:  Sergey_P [ 20 квітня 2018, 14:18 ]
Тема повідомлення:  Re: Ошибка Communication Report = 07 при завершении READ_VAR

Спробуйте в модулі NOM 0200 збільшити параметр "Delay between frames" до 20 мс.

Сторінка 1 з 1 Часовий пояс UTC + 2 годин [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/