Форум АСУ в Україні

форум з автоматизації для викладачів, студентів та спеціалістів
Сьогодні: 19 березня 2024, 08:51

Часовий пояс UTC + 2 годин [ DST ]




Створити нову тему Відповісти  [ 9 повідомлень ] 
Автор Повідомлення
 Тема повідомлення: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 12 квітня 2018, 15:09 
Офлайн

З нами з: 21 березня 2018, 10:29
Повідомлення: 4
Здравствуйте!
Пожалуйста, помогите разобраться с возможными причинами возникновения ошибок
при использовании промышленной сети 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» не содержит никакого технического смысла (ИМХО)


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 12 квітня 2018, 15:44 
Офлайн
Викладач

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


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 12 квітня 2018, 18:03 
Офлайн

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


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 12 квітня 2018, 18:49 
Офлайн
Викладач

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


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 13 квітня 2018, 12:52 
Офлайн

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


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 13 квітня 2018, 13:58 
Офлайн
Викладач

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


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 19 квітня 2018, 18:40 
Офлайн

З нами з: 21 березня 2018, 10:29
Повідомлення: 4
Пробачте, що з такою перервою, але як я обіцяв,
у приведеному файлі запис обміну по 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


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 20 квітня 2018, 09:44 
Офлайн
Викладач

З нами з: 29 листопада 2013, 17:11
Повідомлення: 5033
В пакетах нічого особливого не побачив. Пробуйте 8E1.


Догори
 Профіль  
 
 Тема повідомлення: Re: Ошибка Communication Report = 07 при завершении READ_VAR
ПовідомленняДодано: 20 квітня 2018, 14:18 
Офлайн

З нами з: 31 березня 2018, 10:14
Повідомлення: 12
Звідки: Киев
Спробуйте в модулі NOM 0200 збільшити параметр "Delay between frames" до 20 мс.


Догори
 Профіль  
 
Відображати повідомлення за:  Сортувати за  
Створити нову тему Відповісти  [ 9 повідомлень ] 

Часовий пояс UTC + 2 годин [ DST ]



Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 1 гість


Ви не можете створювати нові теми у цьому форумі
Ви не можете відповідати на теми у цьому форумі
Ви не можете редагувати ваші повідомлення у цьому форумі
Ви не можете видаляти ваші повідомлення у цьому форумі
Ви не можете додавати файли у цьому форумі

Знайти:
Вперед:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете бесплатно создать форум PHPBB2 на MyBB2.ru, Также возможно создать форум бесплатно PHPBB3 на Getbb.ru
Український переклад © 2005-2007 Українська підтримка phpBB