toxachilag
Forum Member / Участник форума
Участник № / Member № 6040
отправлено / posted
Здравствуйте. У меня такой вопрос к Вам. Необходимо настроить связь с устройством по протоколу MODBUS. Физически - это RS-485 через радио модемы (радио модемы создают прозрачный канал). В связи с этим нужна очень тонкая настройка приемо-передачи. при использовании стороннего OPC-сервера всё работает отлично, так как явно присутствуют настроики всевозможных таймаутов, периодов опроса и т.д. Хотелось бы от вас получить продробнейшие инструкции по настройке как говорится "от и до", в т.ч. настроики диагностики связи. Заранее благодарен за ответ.
Сообщения / Posts 45 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Специфической настройкой, применяемой на практике при работе через прозрачный радиоканал, является "Включение передатчика – задержка (в миллисекундах) начала передачи данных после включения передатчика (реализуется только для узла со статусом MASTER);"
Остальные таймауты задаются в настройках COM-порта согласно документации.
Период опроса задается периодом обработки канала, реализующего соответствующий запрос. При необходимости может задаваться "RS-передача – задержка (в миллисекундах) между транзакциями (процедурами ЗАПРОС/КОМАНДА+ОТВЕТ)." Этот параметр тоже влияет на общую периодичность запросов в полудуплексном режиме обмена.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
toxachilag
Forum Member / Участник форума
Участник № / Member № 6040
отправлено / posted
Спасибо, разобрался, связь стала адекватной по крайней мере. Скажите, можно от вас получить подробные инструкции по диагностике связи по средствам ModBus. Я создал в источники/приемники группу диагностика и сервис, там группа диагностика и в ней компонент @e_MODBUS_1.Как его разобрать далее - не очень понимаю..подскажите пожалуйста. Да и что в этом компоненте настраивается? В разделе дополнительно есть некий "параметр" за что он отвечает?
Сообщения / Posts 45 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Канал, привязанный к диагностической переменной @e_MODBUS, возвращает результат диагностики - код ошибки в соответствии с "Приложения/Коды диагностируемых ошибок". У этой переменной никакие настройки не предусмотрены.
Кроме этого можно установить в конфигурационном файле узла *.cnf ключ DEBUGON=200 Тогда в протоколе профайлера будет дополнительная информация по обмену по последовательному интерфейсу.
Можно также перехватить трафик COM-порта с помощью внешних утилит, например, PortMon. Тогда в протоколе перехвата будет полная информация по COM-порту.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
toxachilag
Forum Member / Участник форума
Участник № / Member № 6040
отправлено / posted
В разделе дополнительно (при вызове окна редактора переменной @e_MODBUS) есть некий "параметр" за что он отвечает?Если выставляю 0, то в начале опроса 2-х устройств по протоколу Modbus сначала данная переменная возвращает 0, а через некоторое время 1033 - что это значит?
Сообщения / Posts 45 | Из / From: Россия
| IP / IP: IP адрес / IP address |
toxachilag
Forum Member / Участник форума
Участник № / Member № 6040
отправлено / posted
Если данная переменная возвращает 0 - это означает что всё хорошо?Сбрасывается ли она в 0 при исправлении ошибки?
Сообщения / Posts 45 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
После исчезновения ошибки автоматически сбрасывается в 0 признак недостоверности в соответствующем канале обмена.
Диагностическая переменная запоминает даже сбойную ошибку. Сброс этой переменной в 0 осуществляется принудительно после исправления ситуации. Для этого надо создать аналогичную переменную типа OUT и в привязанный к ней канал типа OUT послать "0".
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
denchik
Junior Member / Новичок
Участник № / Member № 6225
отправлено / posted
Дабы не плодить темы, задам вопрос здесь. Задача практически такая же. С одной стороны - контроллеры расхода(slave)FloBoss 107 3 шт с другой - ПК(master) с TM6 Передача от slave`ов к master`у через радио модемы с прозрачным радиоканалом. Протокол - modbus rtu. С ПК регистры прекрасно читаются с помощью Modbus Poll. Параметры slave 19200-8-n-1 (данные(2-х байтовое число) лежит в 100(без смещения) holding(4xxxxx)регистре) Настройка порта на ПК такая же. Настройка com-порта в ТМ: Номер порта - СОМ1 Назначение - Мастер Скорость - 19200 Базовый адрес - 0х3f8 Контроль четности - 8-1-n Прерывание - 4(везде копался, так и не понял что это за прерывание) Управление передачей - no(в modbus poll проверял при отключенных DSR,CTS,RTS) Таймаут - 2000 RS - передача - 700 Вкл передатчика - 0 Задержка запроса - 0 CRC16 - no Переменная: 1. Создал в Источники/Приемники Rout_Word(3) 2. Drag-n-dropнул ее в каналы 3. Добавил экран -> добавил переменную в аргументы экрана(тип - IN, тип данных оставил REAL(пробовал менять на int и usint)) 4. Создал элемент "текст", drag-n-dropнул созданный аргумент в поле текста. не работает Перечитал все темы этом форуме - все делаю вроде правильно. Смотрел видео - то же самое Даже пробовал брандмауэр отключать Сканирую порт Portmon-ом: Когда опрашиваю Modbus Poll-ом - идет 00000493 mbpoll.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXCLEAR RXCLEAR 00004311 mbpoll.exe IRP_MJ_WRITE Serial0 SUCCESS Length 8: ...d.... 40835289 mbpoll.exe IRP_MJ_READ Serial0 SUCCESS Length 7: ....8.. Опрашиваю RTM: 00000369 rtc.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXCLEAR RXCLEAR 00000369 rtc.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXCLEAR RXCLEAR 00000369 rtc.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXCLEAR RXCLEAR Посмотрите пожалуйста, подскажите, может я чего то упустил ?
Сообщения / Posts 30 | Из / From: Казахстан
| IP / IP: IP адрес / IP address |
отправлено / posted
Судя по протоколу перехватчика, RTC не осуществляет обмена. Задайте в файле конфигурирования запуска узла *.cnf (см."Приложения/Задание параметров работы мониторов") ключ DEBUGON=")) В протоколе профайлера будет дополнительная информация об инициализации COM-порта, количестве каналов, найденных для обмена по этому COM-порту и ошибках обмена.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
denchik
Junior Member / Новичок
Участник № / Member № 6225
отправлено / posted
DEBUGON=200? Я пробовал добавлять файл TMcom_0.cnf Протокол профайлера сохраняется в <имя_проекта>.txt? Я так понимаю в профайлере будет запись кода ошибки, а где посмотреть значение кода?
Сообщения / Posts 30 | Из / From: Казахстан
| IP / IP: IP адрес / IP address |
denchik
Junior Member / Новичок
Участник № / Member № 6225
отправлено / posted
(14:8:3) ERR_RS:COM1 err=9 ch=Rin_Word(4)[4] В справке, в "Коды диагностируемых ошибок" не нашел...
Сообщения / Posts 30 | Из / From: Казахстан
| IP / IP: IP адрес / IP address |
отправлено / posted
Коды диагностируемых ошибок DEC-коды ошибок, диагностируемых МРВ:
1, ERR_RT_FILE – файл не открыт;
В CALL.Document(Report) – ошибка открытия/создания документа;
2, ERR_RT_SEEK – ошибка позиционирования (в архиве, списке и т.п.);
3, ERR_RT_WRITE – ошибка записи;
В CALL.Document(Report) – ошибка записи документа;
4, ERR_RT_READ – ошибка чтения;
5, ERR_RT_MEM – ошибка работы с памятью;
В CALL.Document(Report) – не хватает памяти для генерации документа;
6, ERR_RT_LIST – ошибка списка;
7, ERR_RT_FORMAT – ошибка формата;
В CALL.Document(Report) – невозможно вставить картинку или документ в документ;
8, ERR_RT_COUNT – неверное число символов;
9, ERR_RT_TIMEOUT – превышен таймаут; !!!!!!!!
10, ERR_RT_RESP – ошибка ответа;
11, ERR_RT_FUNC – ошибка внутренней функции. Такая ошибка при обмене по GSM означает переход модема в состояние OFF; при переходе в режим READY ошибка сбрасывается;
denchik
Junior Member / Новичок
Участник № / Member № 6225
отправлено / posted
Это я видел. Но подумал, что ошибка должна быть расписана поподробнее. Таймаут превышен потому что поллинга нет - это тоже понятно. Вот строки с Portmon: 0.00000082 rtc.exe IOCTL_SERIAL_PURGE Serial0 SUCCESS Purge: TXCLEAR RXCLEAR 0.00004967 rtc.exe IRP_MJ_WRITE Serial0 SUCCESS Length 8: ...d..p& 2.00687133 rtc.exe IRP_MJ_READ Serial0 TIMEOUT Length 0: Я уже все перепробовал
Сообщения / Posts 30 | Из / From: Казахстан
| IP / IP: IP адрес / IP address |
отправлено / posted
Устройство не отвечает. Надо проверять правильность настройки компонента "Источника/Приемника" (тип Modbus-функции, адрес - номер устройства в Modbus-сети, канал - адрес переменной) и COM-порта, заданного в узле.
Перехватите трафик обмена с использованием Modbus Poll. Надо сравнить перехваты от Modbus Poll и от Trace Mode 6. При этом выводимый в протокол PortMon текст ввода/вывода надо записывать не в текстовом формате, а в HEX.
Сообщения / Posts 17317 | Из / From: Россия
| IP / IP: IP адрес / IP address |
denchik
Junior Member / Новичок
Участник № / Member № 6225
отправлено / posted
Можно нескромный вопрос: А где есть описание на тестовые примеры? Спасибо
Сообщения / Posts 30 | Из / From: Казахстан
| IP / IP: IP адрес / IP address |
denchik
Junior Member / Новичок
Участник № / Member № 6225