This is topic Проблема с Modbus TCP/IP in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
Добрый день! Хотел написать в раздел для коммерческих продуктов, однако там у меня нет прав на создание новой темы(хотя продукт зарегистрировал)....не вполне понятно как получить такой доступ(что где надо пометить или отправить форму, куда?), поэтому пишу здесь...
Есть географически удаленные объекты. На каждом объекте стоит контроллер который при помощи GPRS модема подключается к частной виртуальной сети.Частная сеть организована оператором связи, центральный офис связан с этой частной виртуальной сетью при помощи оптического канала связи. Опрашивать объекты требуется не чаще чем 1 раз в минуту. Пинг до одного из объектов: Обмен пакетами с 10.22.64.2 по 32 байт: Ответ от 10.22.64.2: число байт=32 время=557мс TTL=62 Ответ от 10.22.64.2: число байт=32 время=536мс TTL=62 Ответ от 10.22.64.2: число байт=32 время=555мс TTL=62 Ответ от 10.22.64.2: число байт=32 время=574мс TTL=62
Проблема состоит в следующем.... при возникновении любой нештатной ситуации на линии связи МРВ не восстанавливает подключение к устройству или восстанавливает не в приемлемые сроки. Время восстановления связи с устройством варьируется от 5 минут до 3 часов и не поддается прогнозированию. Причины потери связи различны 1. кратковременное отсутствие электроэнергии на удаленном объекте 2. сбои канала оператора связи 3. сбои в ЛВС
Причем МРВ после потери соединения даже не пытается восстановить соединение с устройством в тайм-ауты указанные в файле конфигурации, что видно по отсутствию трафика между МРВ и контроллером, однако после перезапуска проекта целиком(включая перезапуск МРВ)соединение восстанавливается без проблем.
Что нам предпринять в данной ситуации? Вполне возможно какие-то параметры файла конфигурации неверны, какие?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Надо запустить профайлер с ключом DEBUG=400 и посмотреть, какие коды ошибок по сети регистрируются.
Posted by Анатолий Проскурня (Участник № / Member № 3799) on :
запустил, получил файл содержащий вот это (11:24:40) INF_LOAD:Starting... ЦДП_ГРП_0 (11:24:40) INF_RTM:Detected NT5.RTM 5.1 (11:24:40) ._.:Professional TRACE MODE 6 Profiler ver. 6.06.3 (11:24:40) INF_LOAD:Load Channels = 23 (11:24:40) INF_LOAD:Templates=7 (11:24:40) INF_LOAD:Objects = 3 (11:24:40) INF_RTM:Timer=0.1s CalcLoop=1000ms (11:24:40) WRN_DDE:Не удается связать службу диспетчера общих баз данных (DSDM) (11:24:40) INF_RTM:ModBus-IN P на входе в ГРП : IP=10.22.64.2 UNIT=1 CMD=3 CH=0001 Q=3 (11:24:40) INF_RTM:ModBus-IN Pна выходе из ГРП : IP=10.22.64.2 UNIT=1 CMD=3 CH=0002 Q=2 (11:24:40) INF_RTM:ModBus-IN dP после фильтра : IP=10.22.64.2 UNIT=1 CMD=3 CH=0003 Q=1 (11:24:40) INF_RTM:ModBus-IN T в помещении ГРП : IP=10.22.64.2 UNIT=1 CMD=3 CH=0004 Q=0 (11:24:40) INF_RTM:ModBus-IN Геркон двери : IP=10.22.64.2 UNIT=1 CMD=3 CH=0009 Q=0 (11:24:46) INF_RTM:start time is 1.734 s (11:24:46) INF_RTM:ModeSwitch e15=0000 e18=0000 e20=0000 [0] (11:24:46) INF_RTM:mode=2(Work) e15=00 e18=00 e20=00 [0-0] (11:43:24) INF_RTM:stoping... (11:43:25) INF_RTM:mode=5(Stop) e15=00 e18=00 e20=00 [0-0] (11:43:25) INF_IP:as=0 ls=0 ir=0 ( max_Q=2 (11:43:25) INF_TCP:TCP_Loop =0(0)(0) (11:43:25) INF_RTM:stop time is 4.766 s (11:43:25) INF_RTM:number of calculation = 1116 (11:43:25) ._.:END OF WORK
может быть я плохо объяснил? дело не в ошибках сети, они были есть и будут... дело в том что МРВ не восстанавливает подключение после сбоя. распишу по шагам 1. включил профайлер, запустил проект. дал поработать минут 5, все в порядке 2. имитирую сбой сети, а именно выдергиваю патч корд из свитча по которому на свитч приходит сеть, при этом аналоговые сигналы становятся недостоверными, а дискретные продолжают оставаться достоверными 3.Аська тоже говорит что коннекта нет и отваливается 4. включаю патч корд обратно, аська спустя минуту восстанавливает соединение 5. Профайлер молчит, все каналы остаются без изменений.
Я насколько понимаю МРВ должен восстанавливать соединение согласно интервалам переменной ERROR файла конфигурации, но этого не происходит.
изменил файл конфигурации теперь он выглядит так ;502 Port 90000 RECTIMEOUT 400 TIMEOUT 30000 ERROR 100000 OFFCOUNT 60000 TMDICONN 1 10.22.64.2
причем собственно не надо все это делать... достаточно запустить МРВ с проектом , затем сделать останов, а потом снова пуск ВСЕ. МРВ больше не соединяется с контроллером, помогает только полный перезапуск МРВ.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В приведенном Вами протоколе нет ни одной строки диагностики сети. Если Вы запускаете с ключом DEBUG=400 (в файле конфигурирования запуска узла), то Вы должны были бы получить подобный текст: 13:32:1) INF_RTM:ModBus-IN Rout_Word(3)#1 : IP=192.168.3.31 UNIT=1 CMD=3 CH=0000 Q=0 (13:32:1) INF_RTM:ModBus-IN Rout_Word(3)#3 : IP=192.168.3.31 UNIT=1 CMD=3 CH=0006 Q=0 (13:32:1) INF_RTM:ModBus-IN Rout_Word(3)#4 : IP=192.168.3.31 UNIT=1 CMD=3 CH=0008 Q=0 (13:32:1) INF_RTM:ModBus-OUT W_Word(16)#5 : IP=192.168.3.31 UNIT=1 CMD=11 CH=0000 Q=0 (13:32:1) INF_RTM:ModBus-IN Канал#3 : IP=192.168.3.31 UNIT=1 CMD=8 CH=0006 Q=0 (13:32:1) WRN_DDE:¤3o (13:32:1) INF_IP:name is afreedland1 ; cards=2 (13:32:1) INF_IP:card0 addr=0.0.0.0 (13:32:1) INF_IP:card1 addr=192.168.3.27 (13:32:1) INF_IP:Create InSocket = 1 (13:32:1) INF_IP:Mask for use cards 202 (13:32:1) INF_IP:Create OutSocket = 1 (13:32:1) INF_IP:Number of ind_block=256 Length of pocket=1452(70) IP Buffer =8kB queue=2048 (13:32:1) INF_TCP:listen 192.168.3.27 (13:32:1) INF_TCP:srv buffer size = 92928 (13:32:1) INF_RTM:start time is 0.016 s (13:32:4) INF_RTM:ModeSwitch e15=0000 e18=0000 e20=0000 [0] (13:32:4) INF_RTM:mode=2(Work) e15=00 e18=00 e20=00 [0-0] (13:32:4) INF_IP:node=0 addr=192.168.3.27 port=402 card=1 (13:34:34) ERR_TCP:invalid connect for 192.168.3.31 err=10060 (13:35:2) ERR_TCP:invalid connect for 192.168.3.31 err=10060 (13:35:35) ERR_TCP:invalid connect for 192.168.3.31 err=10060
Перезапустите проект и покажите, какие сообщения будут в протоколе.
Posted by v.cherepovich (Участник № / Member № 5325) on :
Очень жаль что ветка не достигла логического завершения. У нас имеет место аналогичная сложность. Такое чувство что ключи в файле ip_modbus не реагируют на настройки проекта. Тех. поддержка дала ответ "согласно документации, настраивается по - новому в последнем релизе 6.07.7" а в самой документации указано по - старому. Как же это понимать?
Posted by Nico (Участник № / Member № 5342) on :
В приведенном Вами протоколе версия 6.063. Текущая 6.077;
старт-стоп-старт без выхода в ОС не всегда корректна и техподдержка многим не рекомендует использовать такую возможность;
есть два сокета один на стороне контроллера другой на стороне ТМ-> становлено соединение->идет обмен-> "обрываем провод"-> обмена нет когда будет уничтожено соединение?
В TM6 : DISCONNxx=<значение в секундах> уничтожить соединение после сбоя через TCP_DIFCONNxx=<значение в секундах> установить соединение после неуспешного через
xx= номер протокола(например ModBus 09,Mitsubishi-11)
когда будет уничтожено соединение в контроллере? Mitsubishi c прошивкой 4-х летний давности: либо корректное завершение соединения либо перезагрузка контроллере пибо соединение с другого адреса/порта Японцы оперативно поправили
Отладка в TM6 нужна для того чтобы посмотреть коды сетевых ошибок техподдержке или ставьте диагностический канал и фиксируйте ошибки сами