AlexKharkov
Junior Member / Новичок
Участник № / Member № 2116
отправлено / posted
Добрый день! 1) Есть тестовый ТМ6 проект, который обращается по сети к некоему МОДБАС-серверу, работающему на удаленной ДОС-машине. Прием запросов согласно спецификации МОДБАС/ТСР происходит и отправляется ответ, НО на экране ТМ6 значения регистров не изменяются (остаются равными нулю). При этом значение e_TCP_MODBUS равно нулю. В этих же условиях собственная программа, написанная на С++Builder, а также ModScan32 (www.win-tech.com) нормально принимают ответы от МОДБАС-сервера. Кроме того, этот же проект, если канал обмена СОМ-порт, работает нормально. Значения получаются и отображаются. В чем причина - непонятно! 2) Если в момент обмена программа МОДБАС-сервера прекращает работу (сокет-соединение разрывается), значение e_TCP_MODBUS становится равным 265 и 521 (периодически по циклу, а иногда и 273), хотя, судя по документации, коды диагностических параметров должны быть от 1 до 40. 3) В случае прекращения работы МОДБАС-сервера а затем его повторного запуска, связь не восстанавливается (запросы не принимаются и значение e_TCP_MODBUS отлично от нуля),хотя значение ERROR в файле ip_modbus установлено на 20 секунд. 4) Можно ли сформировать лог-файл обмена проекта ТМ6 с МОДБАС-сервером или, хотя бы, увидеть, то что он получает в ответ по сети? 5) Если надо получить значения от 3-х последовательных регистров, например 2,3 и 4, то запрашиваются сначала 3 регистра начиная с адреса 2, затем 2 с адреса 3 и далее один с адреса 4. Потом это повторяется. Хотя, с точки зрения здравого смысла, лучше постоянно запрашивать 3 регистра с адреса 2. Можно ли управлять этим процессом?
отправлено / posted
Чтобы получить дополнительную информацию о реальных процедурах обмена, надо воспользоваться флажком "Отладка" у этих каналов и ввести системный канал DEBUG, который надо настроить на вывод интересующей Вас информации по каналам связи в протокол профайлера. Кроме того, надо обязательно в настройках каналов связи по MODBUS TCP вторую настройку (адрес устройства) устанавливать ненулевую.
Сообщения / Posts 17344 | Из / From: Россия
| IP / IP: IP адрес / IP address |
AlexKharkov
Junior Member / Новичок
Участник № / Member № 2116
отправлено / posted
Адрес устройств естественно не нулевые. Два регистра запрашиваются по адресу=1, а два по адресу=2.
Сообщения / Posts 6 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
AlexKharkov
Junior Member / Новичок
Участник № / Member № 2116
отправлено / posted
Пункт 4 в принципе можно снять, но все остальные вопросы остаются.
Сообщения / Posts 6 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
bspinbrain
Junior Member / Новичок
Участник № / Member № 2113
отправлено / posted
Присоединяюсь к вопросу №3 - возникает такая же проблема в проекте при чтении параметров по Modbus/TCP. Проблема серьезная - если это "фича" системы, то говорить о ее серьезном применении в работающих Modbus сетях не имеет смысла. Как это можно исправить?
Проблема №1 не возникает - текстовые элементы до потери связи честно отображают параметры и их изменения.
По вопросу №2 - так глубоко в отладку не залазили. Вопрос №5 для нашего проекта не актуален, но теоретически интересен.
Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В релизе 6.04 были обнаружены ошибки (в частности и ошибка описанная в пункте 3)при работе с ModBus TCP. Данные ошибки локализованы и исправлены в новом релизе 6.05. Выход релиза намечен на конец ноября.
Сообщения / Posts 17344 | Из / From: Россия
| IP / IP: IP адрес / IP address |
AlexKharkov
Junior Member / Новичок
Участник № / Member № 2116
отправлено / posted
1) Ответ на вопрос №2 не получен (что это за коды и где о них почитать), а хотелось бы. 2) Когда выйдет релиз 6.05, может быть имеет смысл выложить кроме полной бесплатной версии и только те файлы, которые изменились, дабы не качать более 100 Мб по сети ( это предложение). ************* Кстати тот же проект, о котором шла речь в п.1 если значения получаются через ОРС-сервер, тоже работает. По всей видимости причина где-то во встроенном MODBUS/TCP драйвере.
Сообщения / Posts 6 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
AlexKharkov
Junior Member / Новичок
Участник № / Member № 2116
отправлено / posted
В дополнение. Вопрос №5 становиться актуальным, если диапазон запрашиваемых адресов достаточно большой. Очень хочется получить какую-то информацию по этому вопросу, в частности, можно ли самому задавать какие функции посылать для получения значений регистров.
Сообщения / Posts 6 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
Прошу прощения за длительную паузу. По пункту 2: Данные значения выдаваемые диагностической переменной указывают на номер сетевого узла в соответствии с файлом IP_Modbus. 265 = 256 + 9(номер устройства), 521 = 512 + 9 (номер устройства). По пункту 3: Проверьте параметр OFFCOUNT в файле IP_Modbus. Желательно, чтобы данный параметр был равен "0". По пункту 4: Средствами ТМ6 данный логфайл создать нельзя. По пункту 5: Управлять этим процессом нельзя. Релиз 6.05 выйдет 10 декабря. К сожалению выложить только "изменённые" файлы не представляется возможным.
Сообщения / Posts 17344 | Из / From: Россия
| IP / IP: IP адрес / IP address |