сетевой сбой непонятного происхождения

Вопросы по программе Lectus Modbus OPC/DDE server
sim31
Сообщения: 12
Зарегистрирован: 08 окт 2014, 15:37

сетевой сбой непонятного происхождения

Сообщение sim31 »

Подключаюсь к modbus устройству через TCP соединение. Опрашиваю Овен МВА8 (настроен как modbus rtu), сетевой шлюз типичный Moxa Nport 5130 (в RS485). При опросе МВА8 отвечает, в логе появляется ответ мгновенно:

Код: Выделить всё

14:59:34.125 [2356] (192.168.120.26:4001) Подключение - ОК
14:59:34.125 [2356] (192.168.120.26:4001) Tx: [8] 01 03 00 04 00 2C 05 D6
14:59:34.265 [2356] (192.168.120.26:4001) Rx: [93] 01 03 58 42 65 31 47 00 00 00 4C 00 00 89 EC 42 98 20 07 00 00 00 2F 00 00 8A 10 42 3E 91 83 00 00 00 01 00 00 89 5B 3F 80 00 00 00 00 00 21 00 00 89 6D 42 05 07 37 00 00 00 18 00 00 89 7F 41 C4 C2 C0 00 00 00 1B 00 00
14:59:34.265 [2356]  89 91 41 D8 AF F1 00 00 00 1C 00 00 89 A3 41 E1 6B 07 CE 01
Но Лектус не понимает этого ответа и бесконечно долго ждет чего-то. На Moxa NPort есть настройка innactivity timeout = 0 по умолчанию, сделал 2000 мс, сокет обрубается и Lectus разрывает зависшее соединение, так всё работает хорошо, опрос несколько раз в минуту. Только в логах постоянно сообщения о ошибке.

Код: Выделить всё

14:59:34.296 [3592] TQueueTasks.OnDataChange
14:59:34.296 [3592] [DDE] Чтение переменной "ITP30.float8": "28,1772594451904"
14:59:34.296 [3592] [DDE] Чтение переменной "ITP30.float1": "57,2981224060059"
14:59:34.296 [3592] [DDE] Чтение переменной "ITP30.float2": "76,0625534057617"
14:59:34.296 [3592] [DDE] Чтение переменной "ITP30.float3": "47,6421012878418"
14:59:34.296 [3592] [DDE] Чтение переменной "ITP30.float5": "33,2570457458496"
14:59:34.296 [3592] [DDE] Чтение переменной "ITP30.float6": "24,5950927734375"
14:59:34.296 [3592] [DDE] Чтение переменной "ITP30.float7": "27,0859088897705"
14:59:34.296 [3592] TQueueTasks.OnDataChange - OK, Result=OK (0x0), DDE

(тут ненужные данные)
14:59:36.015 [2292] (192.168.120.122:4001) Tx: [8] 01 03 00 01 00 1F 55 C2
14:59:36.171 [2292] (192.168.120.122:4001) Rx: [67] 01 03 3E 00 04 00 00 80 8F 40 80 00 00 00 00 00 01 00 00 80 B3 3F 80 00 00 00 00 00 01 00 00 80 D7 3F 80 00 00 00 00 00 01 00 00 80 FB 3F 80 00 00 00 00 00 01 00 00 81 1F 3F 80 00 00 00 00 00 03 9B 77
14:59:36.187 [2292] (192.168.120.122:4001) Tx: [8] 01 03 00 2E 00 02 A4 02
14:59:36.281 [2292] (192.168.120.122:4001) Rx: [9] 01 03 04 41 08 8F B0 0A 49
14:59:36.328 [3592] TQueueTasks.OnDataChange
14:59:36.328 [3592] [DDE] Чтение переменной "kns.float8": "8,53507995605469"
14:59:36.328 [3592] TQueueTasks.OnDataChange - OK, Result=OK (0x0), DDE

(тут связь оборвала Moxa NPort)
14:59:36.781 [2356] (192.168.120.26:4001) Ошибка при получении данных (Socket Error # 10054 Connection reset by peer.)

...
07:00:06.781 [2356] (192.168.120.26:4001) Ошибка при получении данных (Socket Error # 10054 Connection reset by peer.)
07:00:06.781 [2356] (192.168.120.26:4001) Отключение - ОК
Если связь не разорвать, соединение висит бесконечно и новых запросов не проходит.

Вообще непонятно в чем может быть причина. Пробовал с разных компов, возможно ошибка в глубине конфигурации Lectus, но отличий в настройках от аналогичных узлов что работают без ошибок не нашел. Moxa вроде тоже делает что нужно. Позже попробую удалить узел и создать заново, так как этот долго модифицировал, работал сначала как modbus asci параллельно с modbus rtu на одной линии RS485.

Код ошибки Лектус выдает совершенно правильно, так как соединение разорвано принудительно Moxa.
"An existing connection was forcibly closed by the remote host."
Непонятно почему без разрыва оно "подвисает". Даже если в Лектусе таймаут 1 секунда в настройках, все равно именно это соединение не разрывает.
admin
Администратор
Сообщения: 578
Зарегистрирован: 05 сен 2010, 00:51

Re: сетевой сбой непонятного происхождения

Сообщение admin »

1) Используйте актуальную версию
3.10 сборка 14
http://lectussoft.com/programs/opcserv.zip
3.9 сборка 133
http://lectussoft.com/programs/old/opcserv.zip

2) Для предметного ответа нужны данные.
Вышлите на lectussoft@gmail.com:
- Суть проблемы;
- Используемую конфигурацию *.cfg;
- Лог работы *.log из каталога Log папки профиля (через меню "Настройка" - "Папка профиля");
- Отчеты об ошибке *.txt из каталога BugReport папки профиля (если есть).
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей